ifireside.fm.rss.xml - sfeed_tests - sfeed tests and RSS and Atom files Err codemadness.org 70 hgit clone git://git.codemadness.org/sfeed_tests URL:git://git.codemadness.org/sfeed_tests codemadness.org 70 1Log /git/sfeed_tests/log.gph codemadness.org 70 1Files /git/sfeed_tests/files.gph codemadness.org 70 1Refs /git/sfeed_tests/refs.gph codemadness.org 70 1README /git/sfeed_tests/file/README.gph codemadness.org 70 1LICENSE /git/sfeed_tests/file/LICENSE.gph codemadness.org 70 i--- Err codemadness.org 70 ifireside.fm.rss.xml (5523779B) Err codemadness.org 70 i--- Err codemadness.org 70 i 1 Err codemadness.org 70 i 2 Err codemadness.org 70 i 3 Err codemadness.org 70 i 4 feed03.fireside.fm Err codemadness.org 70 i 5 Thu, 12 Nov 2020 05:56:22 -0600 Err codemadness.org 70 i 6 Fireside (https://fireside.fm) Err codemadness.org 70 i 7 BSD Now Err codemadness.org 70 i 8 https://www.bsdnow.tv Err codemadness.org 70 i 9 Thu, 12 Nov 2020 11:45:06 -0000 Err codemadness.org 70 i 10 Created by three guys who love BSD, we cover the latest news and have an extensive series of tutorials, as well as interviews with various people from all areas of the BSD community. It also serves as a platform for support and questions. We love and advocate FreeBSD, OpenBSD, NetBSD, DragonFlyBSD and TrueOS. Our show aims to be helpful and informative for new users that want to learn about them, but still be entertaining for the people who are already pros. Err codemadness.org 70 i 11 The show airs on Wednesdays at 2:00PM (US Eastern time) and the edited version is usually up the following day. Err codemadness.org 70 i 12 Err codemadness.org 70 i 13 en-us Err codemadness.org 70 i 14 episodic Err codemadness.org 70 i 15 A weekly podcast and the place to B...SD Err codemadness.org 70 i 16 Allan Jude Err codemadness.org 70 i 17 Created by three guys who love BSD, we cover the latest news and have an extensive series of tutorials, as well as interviews with various people from all areas of the BSD community. It also serves as a platform for support and questions. We love and advocate FreeBSD, OpenBSD, NetBSD, DragonFlyBSD and TrueOS. Our show aims to be helpful and informative for new users that want to learn about them, but still be entertaining for the people who are already pros. Err codemadness.org 70 i 18 The show airs on Wednesdays at 2:00PM (US Eastern time) and the edited version is usually up the following day. Err codemadness.org 70 i 19 Err codemadness.org 70 i 20 Err codemadness.org 70 i 21 no Err codemadness.org 70 i 22 berkeley,freebsd,openbsd,netbsd,dragonflybsd,trueos,trident,hardenedbsd,tutorial,howto,guide,bsd,interview Err codemadness.org 70 i 23 Err codemadness.org 70 i 24 Allan Jude Err codemadness.org 70 i 25 feedback@bsdnow.tv Err codemadness.org 70 i 26 Err codemadness.org 70 i 27 yes Err codemadness.org 70 i 28 Err codemadness.org 70 i 29 Err codemadness.org 70 i 30 Err codemadness.org 70 i 31 Err codemadness.org 70 i 32 Err codemadness.org 70 i 33 Err codemadness.org 70 i 34 Err codemadness.org 70 i 35 376: Build stable packages Err codemadness.org 70 i 36 https://www.bsdnow.tv/376 Err codemadness.org 70 i 37 f32e4d71-13e3-4cfa-a98d-c3806ac0c665 Err codemadness.org 70 i 38 Thu, 12 Nov 2020 03:00:00 -0800 Err codemadness.org 70 i 39 Allan Jude Err codemadness.org 70 i 40 Err codemadness.org 70 i 41 full Err codemadness.org 70 i 42 Allan Jude Err codemadness.org 70 i 43 FreeBSD 12.2 is available, ZFS Webinar, Enhancing Syzkaller support for NetBSD, how the OpenBSD -stable packages are built, OPNsense 20.7.4 released, and more Err codemadness.org 70 i 44 46:20 Err codemadness.org 70 i 45 no Err codemadness.org 70 i 46 Err codemadness.org 70 i 47 FreeBSD 12.2 is available, ZFS Webinar, Enhancing Syzkaller support for NetBSD, how the OpenBSD -stable packages are built, OPNsense 20.7.4 released, and more Err codemadness.org 70 i 48 NOTES Err codemadness.org 70 i 49 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow) Err codemadness.org 70 i 50 Headlines Err codemadness.org 70 i 51 FreeBSD 12.2 Release (https://www.freebsd.org/releases/12.2R/relnotes.html) Err codemadness.org 70 i 52 The release notes for FreeBSD 12.2-RELEASE contain a summary of the changes made to the FreeBSD base system on the 12-STABLE development line. This document lists applicable security advisories that were issued since the last release, as well as significant changes to the FreeBSD kernel and userland. Some brief remarks on upgrading are also presented. Err codemadness.org 70 i 53 ZFS Webinar: November 18th (https://klarasystems.com/learning/best-practices-for-optimizing-zfs1/) Err codemadness.org 70 i 54 Join us on November 18th for a live discussion with Allan Jude (VP of Engineering at Klara Inc) in this webinar centred on “best practices of ZFS” Err codemadness.org 70 i 55 Building Your Storage Array – Everything from picking the best hardware to RAID-Z and using mirrors. Err codemadness.org 70 i 56 Keeping up with Data Growth – Expanding and growing your pool, and of course, shrinking with device evacuation. Err codemadness.org 70 i 57 Datasets and Properties – Controlling settings with properties and many other tricks! Err codemadness.org 70 i 58 News Roundup Err codemadness.org 70 i 59 Google Summer of Code 2020: [Final Report] Enhancing Syzkaller support for NetBSD (https://blog.netbsd.org/tnf/entry/google_summer_of_code_20202) Err codemadness.org 70 i 60 Sys2syz would give an extra edge to Syzkaller for NetBSD. It has a potential of efficiently automating the conversion of syscall definitions to syzkaller’s grammar. This can aid in increasing the number of syscalls covered by Syzkaller significantly with the minimum possibility of manual errors. Let’s delve into its internals. Err codemadness.org 70 i 61 How the OpenBSD -stable packages are built (https://dataswamp.org/~solene/2020-10-29-official-openbsd-stable-architecture.html) Err codemadness.org 70 i 62 In this long blog post, I will write about the technical details of the OpenBSD stable packages building infrastructure. I have setup the infrastructure with the help of Theo De Raadt who provided me the hardware in summer 2019, since then, OpenBSD users can upgrade their packages using pkg_add -u for critical updates that has been backported by the contributors. Many thanks to them, without their work there would be no packages to build. Thanks to pea@ who is my backup for operating this infrastructure in case something happens to me. Err codemadness.org 70 i 63 OPNsense 20.7.4 released (https://opnsense.org/opnsense-20-7-4-released/) Err codemadness.org 70 i 64 This release finally wraps up the recent Netmap kernel changes and tests. Err codemadness.org 70 i 65 The Realtek vendor driver was updated as well as third party software cURL, Err codemadness.org 70 i 66 libxml2, OpenSSL, PHP, Suricata, Syslog-ng and Unbound just to name a couple Err codemadness.org 70 i 67 of them. Err codemadness.org 70 i 68 Beastie Bits Err codemadness.org 70 i 69 Binutils and linker changes (https://www.dragonflydigest.com/2020/11/03/25120.html) Err codemadness.org 70 i 70 28 Years of NetBSD contributions (https://github.com/NetBSD/src/graphs/contributors) Err codemadness.org 70 i 71 Bluetooth Audio on OpenBSD (https://ifconfig.se/bluetooth-audio-openbsd.html) Err codemadness.org 70 i 72 K8s Bhyve (https://k8s-bhyve.convectix.com) Err codemadness.org 70 i 73 *** Err codemadness.org 70 i 74 Tarsnap Err codemadness.org 70 i 75 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 76 Feedback/Questions Err codemadness.org 70 i 77 Sean - C Flags (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/376/feedback/Sean%20-%20C%20Flags.md) Err codemadness.org 70 i 78 Thierry - RPI ZFS question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/376/feedback/Thierry%20-%20RPI%20ZFS%20question.md) Err codemadness.org 70 i 79 Thierry's script (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/376/feedback/script.md) Err codemadness.org 70 i 80 *** Err codemadness.org 70 i 81 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 82 *** Err codemadness.org 70 i 83 Err codemadness.org 70 i 84 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, shell, unix, os, berkeley, software, distribution, zfs, zpool, dataset, interview, 12.2, webinar, syzkaller, stable, packages, package building, opnsense, release Err codemadness.org 70 i 85 Err codemadness.org 70 i 86 FreeBSD 12.2 is available, ZFS Webinar, Enhancing Syzkaller support for NetBSD, how the OpenBSD -stable packages are built, OPNsense 20.7.4 released, and more

Err codemadness.org 70 i 87 Err codemadness.org 70 i 88

NOTES
Err codemadness.org 70 i 89 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 90 Err codemadness.org 70 i 91

Headlines

Err codemadness.org 70 i 92 Err codemadness.org 70 i 93

FreeBSD 12.2 Release

Err codemadness.org 70 i 94 Err codemadness.org 70 i 95
Err codemadness.org 70 i 96

The release notes for FreeBSD 12.2-RELEASE contain a summary of the changes made to the FreeBSD base system on the 12-STABLE development line. This document lists applicable security advisories that were issued since the last release, as well as significant changes to the FreeBSD kernel and userland. Some brief remarks on upgrading are also presented.

Err codemadness.org 70 i 97 Err codemadness.org 70 i 98
Err codemadness.org 70 i 99 Err codemadness.org 70 i 100

ZFS Webinar: November 18th

Err codemadness.org 70 i 101 Err codemadness.org 70 i 102

Join us on November 18th for a live discussion with Allan Jude (VP of Engineering at Klara Inc) in this webinar centred on “best practices of ZFS”
Err codemadness.org 70 i 103 Building Your Storage Array – Everything from picking the best hardware to RAID-Z and using mirrors.
Err codemadness.org 70 i 104 Keeping up with Data Growth – Expanding and growing your pool, and of course, shrinking with device evacuation.
Err codemadness.org 70 i 105 Datasets and Properties – Controlling settings with properties and many other tricks!

Err codemadness.org 70 i 106 Err codemadness.org 70 i 107
Err codemadness.org 70 i 108
Err codemadness.org 70 i 109 Err codemadness.org 70 i 110

News Roundup

Err codemadness.org 70 i 111 Err codemadness.org 70 i 112

Google Summer of Code 2020: [Final Report] Enhancing Syzkaller support for NetBSD

Err codemadness.org 70 i 113 Err codemadness.org 70 i 114
Err codemadness.org 70 i 115

Sys2syz would give an extra edge to Syzkaller for NetBSD. It has a potential of efficiently automating the conversion of syscall definitions to syzkaller’s grammar. This can aid in increasing the number of syscalls covered by Syzkaller significantly with the minimum possibility of manual errors. Let’s delve into its internals.

Err codemadness.org 70 i 116 Err codemadness.org 70 i 117
Err codemadness.org 70 i 118
Err codemadness.org 70 i 119 Err codemadness.org 70 i 120

How the OpenBSD -stable packages are built

Err codemadness.org 70 i 121 Err codemadness.org 70 i 122
Err codemadness.org 70 i 123

In this long blog post, I will write about the technical details of the OpenBSD stable packages building infrastructure. I have setup the infrastructure with the help of Theo De Raadt who provided me the hardware in summer 2019, since then, OpenBSD users can upgrade their packages using pkg_add -u for critical updates that has been backported by the contributors. Many thanks to them, without their work there would be no packages to build. Thanks to pea@ who is my backup for operating this infrastructure in case something happens to me.

Err codemadness.org 70 i 124 Err codemadness.org 70 i 125
Err codemadness.org 70 i 126
Err codemadness.org 70 i 127 Err codemadness.org 70 i 128

OPNsense 20.7.4 released

Err codemadness.org 70 i 129 Err codemadness.org 70 i 130
Err codemadness.org 70 i 131

This release finally wraps up the recent Netmap kernel changes and tests.
Err codemadness.org 70 i 132 The Realtek vendor driver was updated as well as third party software cURL,
Err codemadness.org 70 i 133 libxml2, OpenSSL, PHP, Suricata, Syslog-ng and Unbound just to name a couple
Err codemadness.org 70 i 134 of them.

Err codemadness.org 70 i 135 Err codemadness.org 70 i 136
Err codemadness.org 70 i 137
Err codemadness.org 70 i 138 Err codemadness.org 70 i 139

Beastie Bits

Err codemadness.org 70 i 140 Err codemadness.org 70 i 141 Err codemadness.org 70 i 148 Err codemadness.org 70 i 149

Tarsnap

Err codemadness.org 70 i 150 Err codemadness.org 70 i 151
    Err codemadness.org 70 i 152
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 153
Err codemadness.org 70 i 154 Err codemadness.org 70 i 155

Feedback/Questions

Err codemadness.org 70 i 156 Err codemadness.org 70 i 157
    Err codemadness.org 70 i 158
  • Sean - C Flags
  • Err codemadness.org 70 i 159
  • Thierry - RPI ZFS question Err codemadness.org 70 i 160 Err codemadness.org 70 i 161
      Err codemadness.org 70 i 162
    • Thierry's script Err codemadness.org 70 i 163 ***
    • Err codemadness.org 70 i 164
  • Err codemadness.org 70 i 165
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 166 ***
  • Err codemadness.org 70 i 167
]]> Err codemadness.org 70 i 168
Err codemadness.org 70 i 169 Err codemadness.org 70 i 170 FreeBSD 12.2 is available, ZFS Webinar, Enhancing Syzkaller support for NetBSD, how the OpenBSD -stable packages are built, OPNsense 20.7.4 released, and more

Err codemadness.org 70 i 171 Err codemadness.org 70 i 172

NOTES
Err codemadness.org 70 i 173 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 174 Err codemadness.org 70 i 175

Headlines

Err codemadness.org 70 i 176 Err codemadness.org 70 i 177

FreeBSD 12.2 Release

Err codemadness.org 70 i 178 Err codemadness.org 70 i 179
Err codemadness.org 70 i 180

The release notes for FreeBSD 12.2-RELEASE contain a summary of the changes made to the FreeBSD base system on the 12-STABLE development line. This document lists applicable security advisories that were issued since the last release, as well as significant changes to the FreeBSD kernel and userland. Some brief remarks on upgrading are also presented.

Err codemadness.org 70 i 181 Err codemadness.org 70 i 182
Err codemadness.org 70 i 183 Err codemadness.org 70 i 184

ZFS Webinar: November 18th

Err codemadness.org 70 i 185 Err codemadness.org 70 i 186

Join us on November 18th for a live discussion with Allan Jude (VP of Engineering at Klara Inc) in this webinar centred on “best practices of ZFS”
Err codemadness.org 70 i 187 Building Your Storage Array – Everything from picking the best hardware to RAID-Z and using mirrors.
Err codemadness.org 70 i 188 Keeping up with Data Growth – Expanding and growing your pool, and of course, shrinking with device evacuation.
Err codemadness.org 70 i 189 Datasets and Properties – Controlling settings with properties and many other tricks!

Err codemadness.org 70 i 190 Err codemadness.org 70 i 191
Err codemadness.org 70 i 192
Err codemadness.org 70 i 193 Err codemadness.org 70 i 194

News Roundup

Err codemadness.org 70 i 195 Err codemadness.org 70 i 196

Google Summer of Code 2020: [Final Report] Enhancing Syzkaller support for NetBSD

Err codemadness.org 70 i 197 Err codemadness.org 70 i 198
Err codemadness.org 70 i 199

Sys2syz would give an extra edge to Syzkaller for NetBSD. It has a potential of efficiently automating the conversion of syscall definitions to syzkaller’s grammar. This can aid in increasing the number of syscalls covered by Syzkaller significantly with the minimum possibility of manual errors. Let’s delve into its internals.

Err codemadness.org 70 i 200 Err codemadness.org 70 i 201
Err codemadness.org 70 i 202
Err codemadness.org 70 i 203 Err codemadness.org 70 i 204

How the OpenBSD -stable packages are built

Err codemadness.org 70 i 205 Err codemadness.org 70 i 206
Err codemadness.org 70 i 207

In this long blog post, I will write about the technical details of the OpenBSD stable packages building infrastructure. I have setup the infrastructure with the help of Theo De Raadt who provided me the hardware in summer 2019, since then, OpenBSD users can upgrade their packages using pkg_add -u for critical updates that has been backported by the contributors. Many thanks to them, without their work there would be no packages to build. Thanks to pea@ who is my backup for operating this infrastructure in case something happens to me.

Err codemadness.org 70 i 208 Err codemadness.org 70 i 209
Err codemadness.org 70 i 210
Err codemadness.org 70 i 211 Err codemadness.org 70 i 212

OPNsense 20.7.4 released

Err codemadness.org 70 i 213 Err codemadness.org 70 i 214
Err codemadness.org 70 i 215

This release finally wraps up the recent Netmap kernel changes and tests.
Err codemadness.org 70 i 216 The Realtek vendor driver was updated as well as third party software cURL,
Err codemadness.org 70 i 217 libxml2, OpenSSL, PHP, Suricata, Syslog-ng and Unbound just to name a couple
Err codemadness.org 70 i 218 of them.

Err codemadness.org 70 i 219 Err codemadness.org 70 i 220
Err codemadness.org 70 i 221
Err codemadness.org 70 i 222 Err codemadness.org 70 i 223

Beastie Bits

Err codemadness.org 70 i 224 Err codemadness.org 70 i 225 Err codemadness.org 70 i 232 Err codemadness.org 70 i 233

Tarsnap

Err codemadness.org 70 i 234 Err codemadness.org 70 i 235
    Err codemadness.org 70 i 236
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 237
Err codemadness.org 70 i 238 Err codemadness.org 70 i 239

Feedback/Questions

Err codemadness.org 70 i 240 Err codemadness.org 70 i 241
    Err codemadness.org 70 i 242
  • Sean - C Flags
  • Err codemadness.org 70 i 243
  • Thierry - RPI ZFS question Err codemadness.org 70 i 244 Err codemadness.org 70 i 245
      Err codemadness.org 70 i 246
    • Thierry's script Err codemadness.org 70 i 247 ***
    • Err codemadness.org 70 i 248
  • Err codemadness.org 70 i 249
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 250 ***
  • Err codemadness.org 70 i 251
]]> Err codemadness.org 70 i 252
Err codemadness.org 70 i 253 https://fireside.fm/player/v2/FYhhasNR+L190wi99 Err codemadness.org 70 i 254 Err codemadness.org 70 i 255 ]]> Err codemadness.org 70 i 256 Err codemadness.org 70 i 257
Err codemadness.org 70 i 258 Err codemadness.org 70 i 259 375: Virtually everything Err codemadness.org 70 i 260 https://www.bsdnow.tv/375 Err codemadness.org 70 i 261 66a4f529-c2fb-4a8e-83db-9f6cd6ff0809 Err codemadness.org 70 i 262 Thu, 05 Nov 2020 03:00:00 -0800 Err codemadness.org 70 i 263 Allan Jude Err codemadness.org 70 i 264 Err codemadness.org 70 i 265 full Err codemadness.org 70 i 266 Allan Jude Err codemadness.org 70 i 267 bhyve - The FreeBSD Hypervisor, udf information leak, being a vim user instead of classic vi, FreeBSD on ESXi ARM Fling: Fixing Virtual Hardware, new FreeBSD Remote Process Plugin in LLDB, OpenBSD Laptop, and more. Err codemadness.org 70 i 268 44:48 Err codemadness.org 70 i 269 no Err codemadness.org 70 i 270 Err codemadness.org 70 i 271 bhyve - The FreeBSD Hypervisor, udf information leak, being a vim user instead of classic vi, FreeBSD on ESXi ARM Fling: Fixing Virtual Hardware, new FreeBSD Remote Process Plugin in LLDB, OpenBSD Laptop, and more. Err codemadness.org 70 i 272 NOTES Err codemadness.org 70 i 273 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow) Err codemadness.org 70 i 274 Headlines Err codemadness.org 70 i 275 bhyve - The FreeBSD Hypervisor (https://klarasystems.com/articles/bhyve-the-freebsd-hypervisor/) Err codemadness.org 70 i 276 FreeBSD has had varying degrees of support as a hypervisor host throughout its history. For a time during the mid-2000s, VMWare Workstation 3.x could be made to run under FreeBSD’s Linux Emulation, and Qemu was ported in 2004, and later the kQemu accelerator in 2005. Then in 2009 a port for VirtualBox was introduced. All of these solutions suffered from being a solution designed for a different operating system and then ported to FreeBSD, requiring constant maintenance. Err codemadness.org 70 i 277 ZFS and FreeBSD Support Err codemadness.org 70 i 278 Klara offers flexible Support Subscriptions for your ZFS and FreeBSD infrastructure. Get a world class team of experts to back you up. Check it out on our website! (https://klarasystems.com/support/) Err codemadness.org 70 i 279 udf info leak (https://gist.github.com/CTurt/a00fb4164e13342567830b052aaed94b) Err codemadness.org 70 i 280 FreeBSD UDF driver info leak Err codemadness.org 70 i 281 Analysis done on FreeBSD release 11.0 because that's what I had around. Err codemadness.org 70 i 282 + Fix committed to FreeBSD (https://svnweb.freebsd.org/changeset/base/366005) Err codemadness.org 70 i 283 News Roundup Err codemadness.org 70 i 284 I'm now a user of Vim, not classical Vi (partly because of windows) (https://utcc.utoronto.ca/~cks/space/blog/unix/VimNowAUser) Err codemadness.org 70 i 285 In the past I've written entries (such as this one) where I said that I was pretty much a Vi user, not really a Vim user, because I almost entirely stuck to Vi features. In a comment on my entry on not using and exploring Vim features, rjc reinforced this, saying that I seemed to be using vi instead of vim (and that there was nothing wrong with this). For a long time I thought this way myself, but these days this is not true any more. These days I really want Vim, not classical Vi. Err codemadness.org 70 i 286 FreeBSD on ESXi ARM Fling: Fixing Virtual Hardware (https://vincerants.com/freebsd-on-esxi-arm-fling-fixing-virtual-hardware/) Err codemadness.org 70 i 287 With the current state of FreeBSD on ARM in general, a number of hardware drivers are either set to not auto-load on boot, or are entirely missing altogether. This page is to document my findings with various bits of hardware, and if possible, list fixes. Err codemadness.org 70 i 288 Introduction of a new FreeBSD Remote Process Plugin in LLDB (https://www.moritz.systems/blog/introduction-of-a-new-freebsd-remote-process-plugin-in-lldb/) Err codemadness.org 70 i 289 Moritz Systems have been contracted by the FreeBSD Foundation to modernize the LLDB debugger’s support for FreeBSD. We are writing a new plugin utilizing the more modern client-server layout that is already used by Darwin, Linux, NetBSD and (unofficially) OpenBSD. The new plugin is going to gradually replace the legacy one. Err codemadness.org 70 i 290 OpenBSD Laptop (https://functionallyparanoid.com/2020/10/14/openbsd-laptop/) Err codemadness.org 70 i 291 Hi, I know it’s been a while. I recently had to nuke and re-pave my personal laptop and I thought it would be a nice thing to share with the community how I set up OpenBSD on it so that I have a useful, modern, secure environment for getting work done. I’m not going to say I’m the expert on this or that this is the BEST way to set up OpenBSD, but I thought it would be worthwhile for folks doing Google searches to at least get my opinion on this. So, given that, let’s go… Err codemadness.org 70 i 292 Tarsnap Err codemadness.org 70 i 293 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 294 Feedback/Questions Err codemadness.org 70 i 295 Ethan - Linux user wanting to try out OpenBSD (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/375/feedback/Ethan%20-%20Linux%20user%20wanting%20to%20try%20out%20OpenBSD.md) Err codemadness.org 70 i 296 iian - Learning IT (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/375/feedback/iian%20-%20Learning%20IT.md) Err codemadness.org 70 i 297 johnny - bsd swag (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/375/feedback/johnny%20-%20bsd%20swag.md) Err codemadness.org 70 i 298 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 299 *** Err codemadness.org 70 i 300 Err codemadness.org 70 i 301 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, shell, unix, os, berkeley, software, distribution, zfs, zpool, dataset, interview, bhyve, hypervisor, udf, udf driver, information leak, vim, vi, esxi, arm, virtual hardware, remote process plugin, lldb, laptop Err codemadness.org 70 i 302 Err codemadness.org 70 i 303 bhyve - The FreeBSD Hypervisor, udf information leak, being a vim user instead of classic vi, FreeBSD on ESXi ARM Fling: Fixing Virtual Hardware, new FreeBSD Remote Process Plugin in LLDB, OpenBSD Laptop, and more.

Err codemadness.org 70 i 304 Err codemadness.org 70 i 305

NOTES
Err codemadness.org 70 i 306 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 307 Err codemadness.org 70 i 308

Headlines

Err codemadness.org 70 i 309 Err codemadness.org 70 i 310

bhyve - The FreeBSD Hypervisor

Err codemadness.org 70 i 311 Err codemadness.org 70 i 312
Err codemadness.org 70 i 313

FreeBSD has had varying degrees of support as a hypervisor host throughout its history. For a time during the mid-2000s, VMWare Workstation 3.x could be made to run under FreeBSD’s Linux Emulation, and Qemu was ported in 2004, and later the kQemu accelerator in 2005. Then in 2009 a port for VirtualBox was introduced. All of these solutions suffered from being a solution designed for a different operating system and then ported to FreeBSD, requiring constant maintenance.

Err codemadness.org 70 i 314 Err codemadness.org 70 i 315
Err codemadness.org 70 i 316 Err codemadness.org 70 i 317

ZFS and FreeBSD Support

Err codemadness.org 70 i 318 Err codemadness.org 70 i 319

Klara offers flexible Support Subscriptions for your ZFS and FreeBSD infrastructure. Get a world class team of experts to back you up. Check it out on our website!

Err codemadness.org 70 i 320
Err codemadness.org 70 i 321 Err codemadness.org 70 i 322

udf info leak

Err codemadness.org 70 i 323 Err codemadness.org 70 i 324
Err codemadness.org 70 i 325

FreeBSD UDF driver info leak
Err codemadness.org 70 i 326 Analysis done on FreeBSD release 11.0 because that's what I had around.

Err codemadness.org 70 i 327 Err codemadness.org 70 i 328 Err codemadness.org 70 i 332
Err codemadness.org 70 i 333 Err codemadness.org 70 i 334

News Roundup

Err codemadness.org 70 i 335 Err codemadness.org 70 i 336

I'm now a user of Vim, not classical Vi (partly because of windows)

Err codemadness.org 70 i 337 Err codemadness.org 70 i 338
Err codemadness.org 70 i 339

In the past I've written entries (such as this one) where I said that I was pretty much a Vi user, not really a Vim user, because I almost entirely stuck to Vi features. In a comment on my entry on not using and exploring Vim features, rjc reinforced this, saying that I seemed to be using vi instead of vim (and that there was nothing wrong with this). For a long time I thought this way myself, but these days this is not true any more. These days I really want Vim, not classical Vi.

Err codemadness.org 70 i 340 Err codemadness.org 70 i 341
Err codemadness.org 70 i 342 Err codemadness.org 70 i 343

FreeBSD on ESXi ARM Fling: Fixing Virtual Hardware

Err codemadness.org 70 i 344 Err codemadness.org 70 i 345

With the current state of FreeBSD on ARM in general, a number of hardware drivers are either set to not auto-load on boot, or are entirely missing altogether. This page is to document my findings with various bits of hardware, and if possible, list fixes.

Err codemadness.org 70 i 346 Err codemadness.org 70 i 347
Err codemadness.org 70 i 348 Err codemadness.org 70 i 349

Introduction of a new FreeBSD Remote Process Plugin in LLDB

Err codemadness.org 70 i 350 Err codemadness.org 70 i 351

Moritz Systems have been contracted by the FreeBSD Foundation to modernize the LLDB debugger’s support for FreeBSD. We are writing a new plugin utilizing the more modern client-server layout that is already used by Darwin, Linux, NetBSD and (unofficially) OpenBSD. The new plugin is going to gradually replace the legacy one.

Err codemadness.org 70 i 352
Err codemadness.org 70 i 353 Err codemadness.org 70 i 354
Err codemadness.org 70 i 355 Err codemadness.org 70 i 356

OpenBSD Laptop

Err codemadness.org 70 i 357 Err codemadness.org 70 i 358
Err codemadness.org 70 i 359

Hi, I know it’s been a while. I recently had to nuke and re-pave my personal laptop and I thought it would be a nice thing to share with the community how I set up OpenBSD on it so that I have a useful, modern, secure environment for getting work done. I’m not going to say I’m the expert on this or that this is the BEST way to set up OpenBSD, but I thought it would be worthwhile for folks doing Google searches to at least get my opinion on this. So, given that, let’s go…

Err codemadness.org 70 i 360 Err codemadness.org 70 i 361
Err codemadness.org 70 i 362
Err codemadness.org 70 i 363 Err codemadness.org 70 i 364

Tarsnap

Err codemadness.org 70 i 365 Err codemadness.org 70 i 366
    Err codemadness.org 70 i 367
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 368
Err codemadness.org 70 i 369 Err codemadness.org 70 i 370

Feedback/Questions

Err codemadness.org 70 i 371 Err codemadness.org 70 i 372 Err codemadness.org 70 i 377 Err codemadness.org 70 i 378
Err codemadness.org 70 i 379 Err codemadness.org 70 i 380
    Err codemadness.org 70 i 381
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 382 ***
  • Err codemadness.org 70 i 383
]]> Err codemadness.org 70 i 384
Err codemadness.org 70 i 385 Err codemadness.org 70 i 386 bhyve - The FreeBSD Hypervisor, udf information leak, being a vim user instead of classic vi, FreeBSD on ESXi ARM Fling: Fixing Virtual Hardware, new FreeBSD Remote Process Plugin in LLDB, OpenBSD Laptop, and more.

Err codemadness.org 70 i 387 Err codemadness.org 70 i 388

NOTES
Err codemadness.org 70 i 389 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 390 Err codemadness.org 70 i 391

Headlines

Err codemadness.org 70 i 392 Err codemadness.org 70 i 393

bhyve - The FreeBSD Hypervisor

Err codemadness.org 70 i 394 Err codemadness.org 70 i 395
Err codemadness.org 70 i 396

FreeBSD has had varying degrees of support as a hypervisor host throughout its history. For a time during the mid-2000s, VMWare Workstation 3.x could be made to run under FreeBSD’s Linux Emulation, and Qemu was ported in 2004, and later the kQemu accelerator in 2005. Then in 2009 a port for VirtualBox was introduced. All of these solutions suffered from being a solution designed for a different operating system and then ported to FreeBSD, requiring constant maintenance.

Err codemadness.org 70 i 397 Err codemadness.org 70 i 398
Err codemadness.org 70 i 399 Err codemadness.org 70 i 400

ZFS and FreeBSD Support

Err codemadness.org 70 i 401 Err codemadness.org 70 i 402

Klara offers flexible Support Subscriptions for your ZFS and FreeBSD infrastructure. Get a world class team of experts to back you up. Check it out on our website!

Err codemadness.org 70 i 403
Err codemadness.org 70 i 404 Err codemadness.org 70 i 405

udf info leak

Err codemadness.org 70 i 406 Err codemadness.org 70 i 407
Err codemadness.org 70 i 408

FreeBSD UDF driver info leak
Err codemadness.org 70 i 409 Analysis done on FreeBSD release 11.0 because that's what I had around.

Err codemadness.org 70 i 410 Err codemadness.org 70 i 411 Err codemadness.org 70 i 415
Err codemadness.org 70 i 416 Err codemadness.org 70 i 417

News Roundup

Err codemadness.org 70 i 418 Err codemadness.org 70 i 419

I'm now a user of Vim, not classical Vi (partly because of windows)

Err codemadness.org 70 i 420 Err codemadness.org 70 i 421
Err codemadness.org 70 i 422

In the past I've written entries (such as this one) where I said that I was pretty much a Vi user, not really a Vim user, because I almost entirely stuck to Vi features. In a comment on my entry on not using and exploring Vim features, rjc reinforced this, saying that I seemed to be using vi instead of vim (and that there was nothing wrong with this). For a long time I thought this way myself, but these days this is not true any more. These days I really want Vim, not classical Vi.

Err codemadness.org 70 i 423 Err codemadness.org 70 i 424
Err codemadness.org 70 i 425 Err codemadness.org 70 i 426

FreeBSD on ESXi ARM Fling: Fixing Virtual Hardware

Err codemadness.org 70 i 427 Err codemadness.org 70 i 428

With the current state of FreeBSD on ARM in general, a number of hardware drivers are either set to not auto-load on boot, or are entirely missing altogether. This page is to document my findings with various bits of hardware, and if possible, list fixes.

Err codemadness.org 70 i 429 Err codemadness.org 70 i 430
Err codemadness.org 70 i 431 Err codemadness.org 70 i 432

Introduction of a new FreeBSD Remote Process Plugin in LLDB

Err codemadness.org 70 i 433 Err codemadness.org 70 i 434

Moritz Systems have been contracted by the FreeBSD Foundation to modernize the LLDB debugger’s support for FreeBSD. We are writing a new plugin utilizing the more modern client-server layout that is already used by Darwin, Linux, NetBSD and (unofficially) OpenBSD. The new plugin is going to gradually replace the legacy one.

Err codemadness.org 70 i 435
Err codemadness.org 70 i 436 Err codemadness.org 70 i 437
Err codemadness.org 70 i 438 Err codemadness.org 70 i 439

OpenBSD Laptop

Err codemadness.org 70 i 440 Err codemadness.org 70 i 441
Err codemadness.org 70 i 442

Hi, I know it’s been a while. I recently had to nuke and re-pave my personal laptop and I thought it would be a nice thing to share with the community how I set up OpenBSD on it so that I have a useful, modern, secure environment for getting work done. I’m not going to say I’m the expert on this or that this is the BEST way to set up OpenBSD, but I thought it would be worthwhile for folks doing Google searches to at least get my opinion on this. So, given that, let’s go…

Err codemadness.org 70 i 443 Err codemadness.org 70 i 444
Err codemadness.org 70 i 445
Err codemadness.org 70 i 446 Err codemadness.org 70 i 447

Tarsnap

Err codemadness.org 70 i 448 Err codemadness.org 70 i 449
    Err codemadness.org 70 i 450
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 451
Err codemadness.org 70 i 452 Err codemadness.org 70 i 453

Feedback/Questions

Err codemadness.org 70 i 454 Err codemadness.org 70 i 455 Err codemadness.org 70 i 460 Err codemadness.org 70 i 461
Err codemadness.org 70 i 462 Err codemadness.org 70 i 463
    Err codemadness.org 70 i 464
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 465 ***
  • Err codemadness.org 70 i 466
]]> Err codemadness.org 70 i 467
Err codemadness.org 70 i 468 https://fireside.fm/player/v2/FYhhasNR+sVFXzFru Err codemadness.org 70 i 469 Err codemadness.org 70 i 470 ]]> Err codemadness.org 70 i 471 Err codemadness.org 70 i 472
Err codemadness.org 70 i 473 Err codemadness.org 70 i 474 374: OpenBSD’s 25th anniversary Err codemadness.org 70 i 475 https://www.bsdnow.tv/374 Err codemadness.org 70 i 476 4e2796a1-1895-47bd-81ca-fc3c80f043e6 Err codemadness.org 70 i 477 Thu, 29 Oct 2020 04:00:00 -0700 Err codemadness.org 70 i 478 Allan Jude Err codemadness.org 70 i 479 Err codemadness.org 70 i 480 full Err codemadness.org 70 i 481 Allan Jude Err codemadness.org 70 i 482 OpenBSD 6.8 has been released, NetBSD 9.1 is out, OpenZFS devsummit report, BastilleBSD’s native container management for FreeBSD, cleaning up old tarsnap backups, Michael W. Lucas’ book sale, and more. Err codemadness.org 70 i 483 54:40 Err codemadness.org 70 i 484 no Err codemadness.org 70 i 485 Err codemadness.org 70 i 486 OpenBSD 6.8 has been released, NetBSD 9.1 is out, OpenZFS devsummit report, BastilleBSD’s native container management for FreeBSD, cleaning up old tarsnap backups, Michael W. Lucas’ book sale, and more. Err codemadness.org 70 i 487 NOTES Err codemadness.org 70 i 488 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow) Err codemadness.org 70 i 489 Headlines Err codemadness.org 70 i 490 OpenBSD 6.8 (https://www.openbsd.org/68.html) Err codemadness.org 70 i 491 Released Oct 18, 2020. (OpenBSD's 25th anniversary) Err codemadness.org 70 i 492 NetBSD 9.1 Released (https://www.netbsd.org/releases/formal-9/NetBSD-9.1.html) Err codemadness.org 70 i 493 The NetBSD Project is pleased to announce NetBSD 9.1, the first update of the NetBSD 9 release branch. It represents a selected subset of fixes deemed important for security or stability reasons, as well as new features and enhancements. Err codemadness.org 70 i 494 OpenZFS Developer Summit 2020 (https://klarasystems.com/articles/openzfs-developer-summit-part-1/) Err codemadness.org 70 i 495 As with most other conferences in the last six months, this year’s OpenZFS Developer’s Summit was a bit different than usual. Held via Zoom to accommodate for 2020’s new normal in terms of social engagements, the conference featured a mix of talks delivered live via webinars, and breakout sessions held as regular meetings. This helped recapture some of the “hallway track” that would be lost in an online conference. Err codemadness.org 70 i 496 • After attending the conference, I wrote up some of my notes from each of the talks Err codemadness.org 70 i 497 • Part 2 (https://klarasystems.com/articles/openzfs-developer-summit-part-2/) Err codemadness.org 70 i 498 ZFS and FreeBSD Support Err codemadness.org 70 i 499 Klara offers flexible Support Subscriptions for your ZFS and FreeBSD infrastructure, simply sign up for our monthly subscription! What's even better is that for the month of October we are giving away 3 months for free, for every yearly subscription, and one month free when you sign up for a 6-months subscription! Check it out on our website! (https://klarasystems.com/support/) Err codemadness.org 70 i 500 News Roundup Err codemadness.org 70 i 501 BastilleBSD - native container management for FreeBSD (https://fibric.hashnode.dev/bastillebsd-native-container-management-for-freebsd) Err codemadness.org 70 i 502 Some time ago, I had the requirement to use FreeBSD in a project, and soon the question came up if Docker and Kubernetes can be used. Err codemadness.org 70 i 503 On FreeBSD, Docker is not very well supported, and even if you can get it running, Linux is used in a Docker container. My experience with Docker on FreeBSD is awful, and so I started looking for alternatives. Err codemadness.org 70 i 504 A quick search on one of the most significant online search engines led me to Jails and then to BastilleBSD. Err codemadness.org 70 i 505 Tarsnap – cleaning up old backups (https://dan.langille.org/2020/09/10/tarsnap-cleaning-up-old-backups/) Err codemadness.org 70 i 506 I use Tarsnap for my critical data. Case in point, I use it to backup my Bacula database dump. I use Bacula to backup my hosts. The database in question keeps track of what was backed up, from what host, the file size, checksum, where that backup is now, and many other items. Losing this data is annoying but not a disaster. It can be recreated from the backup volumes, but that is time consuming. As it is, the file is dumped daily, and rsynced to multiple locations. Err codemadness.org 70 i 507 MWL - BookSale (https://mwl.io/archives/8009) Err codemadness.org 70 i 508 For those interested in such things, I recently posted my 60,000th tweet. This prodded me to try an experiment I’ve been pondering for a while. Err codemadness.org 70 i 509 Over at my ebookstore, two of my books are now on a “Name Your Own Price” sale. You can get git commit murder and PAM Mastery for any price you wish, with a minimum of $1. Err codemadness.org 70 i 510 Beastie Bits Err codemadness.org 70 i 511 Brian Kernighan: UNIX, C, AWK, AMPL, and Go Programming | Lex Fridman Podcast #109 (https://www.youtube.com/watch?v=O9upVbGSBFo) Err codemadness.org 70 i 512 The UNIX Time-Sharing System - Dennis M. Ritchie and Ken Thompson - July 1974 (https://chsasank.github.io/classic_papers/unix-time-sharing-system.html#) Err codemadness.org 70 i 513 Using a 1930 Teletype as a Linux Terminal (https://www.youtube.com/watch?v=2XLZ4Z8LpEE) Err codemadness.org 70 i 514 *** Err codemadness.org 70 i 515 ###Tarsnap Err codemadness.org 70 i 516 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 517 Feedback/Questions Err codemadness.org 70 i 518 lars - infosec handbook (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/374/feedback/lars%20-%20infosec%20handbook.md) Err codemadness.org 70 i 519 scott - zfs import (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/374/feedback/scott%20-%20zfs%20import.md) Err codemadness.org 70 i 520 zhong - first episode (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/374/feedback/zhong%20-%20first%20episode.md) Err codemadness.org 70 i 521 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 522 *** Err codemadness.org 70 i 523 Err codemadness.org 70 i 524 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, shell, unix, os, berkeley, software, distribution, zfs, zpool, dataset, interview, backup, 25th anniversary, release, openzfs, devsummit, report, bastillebsd, container, container management, backup, book, books, book sale, Err codemadness.org 70 i 525 Err codemadness.org 70 i 526 OpenBSD 6.8 has been released, NetBSD 9.1 is out, OpenZFS devsummit report, BastilleBSD’s native container management for FreeBSD, cleaning up old tarsnap backups, Michael W. Lucas’ book sale, and more.

Err codemadness.org 70 i 527 Err codemadness.org 70 i 528

NOTES
Err codemadness.org 70 i 529 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 530 Err codemadness.org 70 i 531

Headlines

Err codemadness.org 70 i 532 Err codemadness.org 70 i 533

OpenBSD 6.8

Err codemadness.org 70 i 534 Err codemadness.org 70 i 535
Err codemadness.org 70 i 536

Released Oct 18, 2020. (OpenBSD's 25th anniversary)

Err codemadness.org 70 i 537 Err codemadness.org 70 i 538
Err codemadness.org 70 i 539 Err codemadness.org 70 i 540

NetBSD 9.1 Released

Err codemadness.org 70 i 541 Err codemadness.org 70 i 542

The NetBSD Project is pleased to announce NetBSD 9.1, the first update of the NetBSD 9 release branch. It represents a selected subset of fixes deemed important for security or stability reasons, as well as new features and enhancements.

Err codemadness.org 70 i 543 Err codemadness.org 70 i 544
Err codemadness.org 70 i 545
Err codemadness.org 70 i 546 Err codemadness.org 70 i 547

OpenZFS Developer Summit 2020

Err codemadness.org 70 i 548 Err codemadness.org 70 i 549
Err codemadness.org 70 i 550

As with most other conferences in the last six months, this year’s OpenZFS Developer’s Summit was a bit different than usual. Held via Zoom to accommodate for 2020’s new normal in terms of social engagements, the conference featured a mix of talks delivered live via webinars, and breakout sessions held as regular meetings. This helped recapture some of the “hallway track” that would be lost in an online conference.
Err codemadness.org 70 i 551 • After attending the conference, I wrote up some of my notes from each of the talks
Err codemadness.org 70 i 552 • Part 2

Err codemadness.org 70 i 553 Err codemadness.org 70 i 554
Err codemadness.org 70 i 555
Err codemadness.org 70 i 556 Err codemadness.org 70 i 557

ZFS and FreeBSD Support

Err codemadness.org 70 i 558 Err codemadness.org 70 i 559

Klara offers flexible Support Subscriptions for your ZFS and FreeBSD infrastructure, simply sign up for our monthly subscription! What's even better is that for the month of October we are giving away 3 months for free, for every yearly subscription, and one month free when you sign up for a 6-months subscription! Check it out on our website!

Err codemadness.org 70 i 560 Err codemadness.org 70 i 561

News Roundup

Err codemadness.org 70 i 562 Err codemadness.org 70 i 563

BastilleBSD - native container management for FreeBSD

Err codemadness.org 70 i 564 Err codemadness.org 70 i 565
Err codemadness.org 70 i 566

Some time ago, I had the requirement to use FreeBSD in a project, and soon the question came up if Docker and Kubernetes can be used.
Err codemadness.org 70 i 567 On FreeBSD, Docker is not very well supported, and even if you can get it running, Linux is used in a Docker container. My experience with Docker on FreeBSD is awful, and so I started looking for alternatives.
Err codemadness.org 70 i 568 A quick search on one of the most significant online search engines led me to Jails and then to BastilleBSD.

Err codemadness.org 70 i 569
Err codemadness.org 70 i 570 Err codemadness.org 70 i 571
Err codemadness.org 70 i 572 Err codemadness.org 70 i 573

Tarsnap – cleaning up old backups

Err codemadness.org 70 i 574 Err codemadness.org 70 i 575
Err codemadness.org 70 i 576

I use Tarsnap for my critical data. Case in point, I use it to backup my Bacula database dump. I use Bacula to backup my hosts. The database in question keeps track of what was backed up, from what host, the file size, checksum, where that backup is now, and many other items. Losing this data is annoying but not a disaster. It can be recreated from the backup volumes, but that is time consuming. As it is, the file is dumped daily, and rsynced to multiple locations.

Err codemadness.org 70 i 577
Err codemadness.org 70 i 578 Err codemadness.org 70 i 579
Err codemadness.org 70 i 580 Err codemadness.org 70 i 581

MWL - BookSale

Err codemadness.org 70 i 582 Err codemadness.org 70 i 583
Err codemadness.org 70 i 584

For those interested in such things, I recently posted my 60,000th tweet. This prodded me to try an experiment I’ve been pondering for a while.
Err codemadness.org 70 i 585 Over at my ebookstore, two of my books are now on a “Name Your Own Price” sale. You can get git commit murder and PAM Mastery for any price you wish, with a minimum of $1.

Err codemadness.org 70 i 586 Err codemadness.org 70 i 587
Err codemadness.org 70 i 588
Err codemadness.org 70 i 589 Err codemadness.org 70 i 590

Beastie Bits

Err codemadness.org 70 i 591 Err codemadness.org 70 i 592 Err codemadness.org 70 i 600 Err codemadness.org 70 i 601

Feedback/Questions

Err codemadness.org 70 i 602 Err codemadness.org 70 i 603 Err codemadness.org 70 i 608 Err codemadness.org 70 i 609
Err codemadness.org 70 i 610 Err codemadness.org 70 i 611
    Err codemadness.org 70 i 612
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 613 ***
  • Err codemadness.org 70 i 614
]]> Err codemadness.org 70 i 615
Err codemadness.org 70 i 616 Err codemadness.org 70 i 617 OpenBSD 6.8 has been released, NetBSD 9.1 is out, OpenZFS devsummit report, BastilleBSD’s native container management for FreeBSD, cleaning up old tarsnap backups, Michael W. Lucas’ book sale, and more.

Err codemadness.org 70 i 618 Err codemadness.org 70 i 619

NOTES
Err codemadness.org 70 i 620 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 621 Err codemadness.org 70 i 622

Headlines

Err codemadness.org 70 i 623 Err codemadness.org 70 i 624

OpenBSD 6.8

Err codemadness.org 70 i 625 Err codemadness.org 70 i 626
Err codemadness.org 70 i 627

Released Oct 18, 2020. (OpenBSD's 25th anniversary)

Err codemadness.org 70 i 628 Err codemadness.org 70 i 629
Err codemadness.org 70 i 630 Err codemadness.org 70 i 631

NetBSD 9.1 Released

Err codemadness.org 70 i 632 Err codemadness.org 70 i 633

The NetBSD Project is pleased to announce NetBSD 9.1, the first update of the NetBSD 9 release branch. It represents a selected subset of fixes deemed important for security or stability reasons, as well as new features and enhancements.

Err codemadness.org 70 i 634 Err codemadness.org 70 i 635
Err codemadness.org 70 i 636
Err codemadness.org 70 i 637 Err codemadness.org 70 i 638

OpenZFS Developer Summit 2020

Err codemadness.org 70 i 639 Err codemadness.org 70 i 640
Err codemadness.org 70 i 641

As with most other conferences in the last six months, this year’s OpenZFS Developer’s Summit was a bit different than usual. Held via Zoom to accommodate for 2020’s new normal in terms of social engagements, the conference featured a mix of talks delivered live via webinars, and breakout sessions held as regular meetings. This helped recapture some of the “hallway track” that would be lost in an online conference.
Err codemadness.org 70 i 642 • After attending the conference, I wrote up some of my notes from each of the talks
Err codemadness.org 70 i 643 • Part 2

Err codemadness.org 70 i 644 Err codemadness.org 70 i 645
Err codemadness.org 70 i 646
Err codemadness.org 70 i 647 Err codemadness.org 70 i 648

ZFS and FreeBSD Support

Err codemadness.org 70 i 649 Err codemadness.org 70 i 650

Klara offers flexible Support Subscriptions for your ZFS and FreeBSD infrastructure, simply sign up for our monthly subscription! What's even better is that for the month of October we are giving away 3 months for free, for every yearly subscription, and one month free when you sign up for a 6-months subscription! Check it out on our website!

Err codemadness.org 70 i 651 Err codemadness.org 70 i 652

News Roundup

Err codemadness.org 70 i 653 Err codemadness.org 70 i 654

BastilleBSD - native container management for FreeBSD

Err codemadness.org 70 i 655 Err codemadness.org 70 i 656
Err codemadness.org 70 i 657

Some time ago, I had the requirement to use FreeBSD in a project, and soon the question came up if Docker and Kubernetes can be used.
Err codemadness.org 70 i 658 On FreeBSD, Docker is not very well supported, and even if you can get it running, Linux is used in a Docker container. My experience with Docker on FreeBSD is awful, and so I started looking for alternatives.
Err codemadness.org 70 i 659 A quick search on one of the most significant online search engines led me to Jails and then to BastilleBSD.

Err codemadness.org 70 i 660
Err codemadness.org 70 i 661 Err codemadness.org 70 i 662
Err codemadness.org 70 i 663 Err codemadness.org 70 i 664

Tarsnap – cleaning up old backups

Err codemadness.org 70 i 665 Err codemadness.org 70 i 666
Err codemadness.org 70 i 667

I use Tarsnap for my critical data. Case in point, I use it to backup my Bacula database dump. I use Bacula to backup my hosts. The database in question keeps track of what was backed up, from what host, the file size, checksum, where that backup is now, and many other items. Losing this data is annoying but not a disaster. It can be recreated from the backup volumes, but that is time consuming. As it is, the file is dumped daily, and rsynced to multiple locations.

Err codemadness.org 70 i 668
Err codemadness.org 70 i 669 Err codemadness.org 70 i 670
Err codemadness.org 70 i 671 Err codemadness.org 70 i 672

MWL - BookSale

Err codemadness.org 70 i 673 Err codemadness.org 70 i 674
Err codemadness.org 70 i 675

For those interested in such things, I recently posted my 60,000th tweet. This prodded me to try an experiment I’ve been pondering for a while.
Err codemadness.org 70 i 676 Over at my ebookstore, two of my books are now on a “Name Your Own Price” sale. You can get git commit murder and PAM Mastery for any price you wish, with a minimum of $1.

Err codemadness.org 70 i 677 Err codemadness.org 70 i 678
Err codemadness.org 70 i 679
Err codemadness.org 70 i 680 Err codemadness.org 70 i 681

Beastie Bits

Err codemadness.org 70 i 682 Err codemadness.org 70 i 683 Err codemadness.org 70 i 691 Err codemadness.org 70 i 692

Feedback/Questions

Err codemadness.org 70 i 693 Err codemadness.org 70 i 694 Err codemadness.org 70 i 699 Err codemadness.org 70 i 700
Err codemadness.org 70 i 701 Err codemadness.org 70 i 702
    Err codemadness.org 70 i 703
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 704 ***
  • Err codemadness.org 70 i 705
]]> Err codemadness.org 70 i 706
Err codemadness.org 70 i 707 https://fireside.fm/player/v2/FYhhasNR+f6UgaFgV Err codemadness.org 70 i 708 Err codemadness.org 70 i 709 ]]> Err codemadness.org 70 i 710 Err codemadness.org 70 i 711
Err codemadness.org 70 i 712 Err codemadness.org 70 i 713 373: Kyle Evans Interview Err codemadness.org 70 i 714 https://www.bsdnow.tv/373 Err codemadness.org 70 i 715 acdecc6a-f7b7-4d64-b64d-f7be713b78e2 Err codemadness.org 70 i 716 Thu, 22 Oct 2020 04:00:00 -0700 Err codemadness.org 70 i 717 Allan Jude Err codemadness.org 70 i 718 Err codemadness.org 70 i 719 full Err codemadness.org 70 i 720 Allan Jude Err codemadness.org 70 i 721 We have an interview with Kyle Evans for you this week. We talk about his grep project, lua and flua in base, as well as bectl, being on the core team and a whole lot of other stuff. Err codemadness.org 70 i 722 33:33 Err codemadness.org 70 i 723 no Err codemadness.org 70 i 724 Err codemadness.org 70 i 725 We have an interview with Kyle Evans for you this week. We talk about his grep project, lua and flua in base, as well as bectl, being on the core team and a whole lot of other stuff. Err codemadness.org 70 i 726 NOTES Err codemadness.org 70 i 727 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow) Err codemadness.org 70 i 728 Interview - Kyle Evans - kevans@freebsd.org (mailto:kevans@freebsd.org) / @kaevans91 (https://twitter.com/kaevans91) Err codemadness.org 70 i 729 Tarsnap Err codemadness.org 70 i 730 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 731 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 732 Err codemadness.org 70 i 733 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, unix, os, berkeley, software, distribution, zfs, zpool, dataset, interview, kyle evans, bsd grep, lua, flua, bectl, core team, certctl, Err codemadness.org 70 i 734 Err codemadness.org 70 i 735 We have an interview with Kyle Evans for you this week. We talk about his grep project, lua and flua in base, as well as bectl, being on the core team and a whole lot of other stuff.

Err codemadness.org 70 i 736 Err codemadness.org 70 i 737

NOTES
Err codemadness.org 70 i 738 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 739 Err codemadness.org 70 i 740

Interview - Kyle Evans - kevans@freebsd.org / @kaevans91

Err codemadness.org 70 i 741 Err codemadness.org 70 i 742
Err codemadness.org 70 i 743 Err codemadness.org 70 i 744

Tarsnap

Err codemadness.org 70 i 745 Err codemadness.org 70 i 746
    Err codemadness.org 70 i 747
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.

  • Err codemadness.org 70 i 748
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

    Err codemadness.org 70 i 749 Err codemadness.org 70 i 750
  • Err codemadness.org 70 i 751
]]> Err codemadness.org 70 i 752
Err codemadness.org 70 i 753 Err codemadness.org 70 i 754 We have an interview with Kyle Evans for you this week. We talk about his grep project, lua and flua in base, as well as bectl, being on the core team and a whole lot of other stuff.

Err codemadness.org 70 i 755 Err codemadness.org 70 i 756

NOTES
Err codemadness.org 70 i 757 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 758 Err codemadness.org 70 i 759

Interview - Kyle Evans - kevans@freebsd.org / @kaevans91

Err codemadness.org 70 i 760 Err codemadness.org 70 i 761
Err codemadness.org 70 i 762 Err codemadness.org 70 i 763

Tarsnap

Err codemadness.org 70 i 764 Err codemadness.org 70 i 765
    Err codemadness.org 70 i 766
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.

  • Err codemadness.org 70 i 767
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

    Err codemadness.org 70 i 768 Err codemadness.org 70 i 769
  • Err codemadness.org 70 i 770
]]> Err codemadness.org 70 i 771
Err codemadness.org 70 i 772 https://fireside.fm/player/v2/FYhhasNR+6GkMlMGe Err codemadness.org 70 i 773 Err codemadness.org 70 i 774 ]]> Err codemadness.org 70 i 775 Err codemadness.org 70 i 776
Err codemadness.org 70 i 777 Err codemadness.org 70 i 778 372: Slow SSD scrubs Err codemadness.org 70 i 779 https://www.bsdnow.tv/372 Err codemadness.org 70 i 780 30f77e86-34d4-4e1a-a1c7-32e62f393980 Err codemadness.org 70 i 781 Thu, 15 Oct 2020 03:00:00 -0700 Err codemadness.org 70 i 782 Allan Jude Err codemadness.org 70 i 783 Err codemadness.org 70 i 784 full Err codemadness.org 70 i 785 Allan Jude Err codemadness.org 70 i 786 Wayland on BSD, My BSD sucks less than yours, Even on SSDs, ongoing activity can slow down ZFS scrubs drastically, OpenBSD on the Desktop, simple shell status bar for OpenBSD and cwm, and more. Err codemadness.org 70 i 787 48:04 Err codemadness.org 70 i 788 no Err codemadness.org 70 i 789 Err codemadness.org 70 i 790 Wayland on BSD, My BSD sucks less than yours, Even on SSDs, ongoing activity can slow down ZFS scrubs drastically, OpenBSD on the Desktop, simple shell status bar for OpenBSD and cwm, and more. Err codemadness.org 70 i 791 NOTES Err codemadness.org 70 i 792 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow) Err codemadness.org 70 i 793 Headlines Err codemadness.org 70 i 794 Wayland on BSD (https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and) Err codemadness.org 70 i 795 After I posted about the new default window manager in NetBSD I got a few questions, including "when is NetBSD switching from X11 to Wayland?", Wayland being X11's "new" rival. In this blog post, hopefully I can explain why we aren't yet! Err codemadness.org 70 i 796 My BSD sucks less than yours (https://www.bsdfrog.org/pub/events/my_bsd_sucks_less_than_yours-full_paper.pdf) Err codemadness.org 70 i 797 This paper will look at some of the differences between the FreeBSD and OpenBSD operating systems. It is not intended to be solely technical but will also show the different "visions" and design decisions that rule the way things are implemented. It is expected to be a subjective view from two BSD developers and does not pretend to represent these projects in any way. Err codemadness.org 70 i 798 Video Err codemadness.org 70 i 799 + EuroBSDCon 2017 Part 1 (https://www.youtube.com/watch?v=ZhpaKuXKob4) Err codemadness.org 70 i 800 + EuroBSDCon 2017 Part 2 (https://www.youtube.com/watch?v=cYp70KWD824) Err codemadness.org 70 i 801 News Roundup Err codemadness.org 70 i 802 Even on SSDs, ongoing activity can slow down ZFS scrubs drastically (https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSSSDActivitySlowsScrubs) Err codemadness.org 70 i 803 Back in the days of our OmniOS fileservers, which used HDs (spinning rust) across iSCSI, we wound up changing kernel tunables to speed up ZFS scrubs and saw a significant improvement. When we migrated to our current Linux fileservers with SSDs, I didn't bother including these tunables (or the Linux equivalent), because I expected that SSDs were fast enough that it didn't matter. Indeed, our SSD pools generally scrub like lightning. Err codemadness.org 70 i 804 OpenBSD on the Desktop (Part I) (https://paedubucher.ch/articles/2020-09-05-openbsd-on-the-desktop-part-i.html) Err codemadness.org 70 i 805 Let's install OpenBSD on a Lenovo Thinkpad X270. I used this computer for my computer science studies. It has both Arch Linux and Windows 10 installed as dual boot. Now that I'm no longer required to run Windows, I can ditch the dual boot and install an operating system of my choice. Err codemadness.org 70 i 806 A simple shell status bar for OpenBSD and cwm(1) (https://www.tumfatig.net/20200923/a-simple-shell-status-bar-for-cwm/) Err codemadness.org 70 i 807 These days, I try to use simple and stock software as much as possible on my OpenBSD laptop. I’ve been playing with cwm(1) for weeks and I was missing a status bar. After trying things like Tint2, Polybar etc, I discovered @gonzalo’s termbar. Thanks a lot! Err codemadness.org 70 i 808 As I love scripting, I decided to build my own. Err codemadness.org 70 i 809 Beastie Bits Err codemadness.org 70 i 810 DragonFly v5.8.3 released to address to issues (http://lists.dragonflybsd.org/pipermail/commits/2020-September/769777.html) Err codemadness.org 70 i 811 OpenSSH 8.4 released (http://www.openssh.com/txt/release-8.4) Err codemadness.org 70 i 812 Tarsnap Err codemadness.org 70 i 813 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 814 Feedback/Questions Err codemadness.org 70 i 815 Dane - FreeBSD vs Linux in Microservices and Containters (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/372/feedback/Dane%20-%20FreeBSD%20vs%20Linux%20in%20Microservices%20and%20Containters.md) Err codemadness.org 70 i 816 Mason - questions.md (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/372/feedback/Mason%20-%20questions.md) Err codemadness.org 70 i 817 Michael - Tmux License.md (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/372/feedback/Michael%20-%20Tmux%20License.md) Err codemadness.org 70 i 818 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 819 *** Err codemadness.org 70 i 820 Err codemadness.org 70 i 821 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, unix, os, berkeley, software, distribution, zfs, zpool, dataset, interview, wayland, ssd, scrub, desktop, shell, status, status bar, cwm Err codemadness.org 70 i 822 Err codemadness.org 70 i 823 Wayland on BSD, My BSD sucks less than yours, Even on SSDs, ongoing activity can slow down ZFS scrubs drastically, OpenBSD on the Desktop, simple shell status bar for OpenBSD and cwm, and more.

Err codemadness.org 70 i 824 Err codemadness.org 70 i 825

NOTES
Err codemadness.org 70 i 826 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 827 Err codemadness.org 70 i 828

Headlines

Err codemadness.org 70 i 829 Err codemadness.org 70 i 830

Wayland on BSD

Err codemadness.org 70 i 831 Err codemadness.org 70 i 832
Err codemadness.org 70 i 833

After I posted about the new default window manager in NetBSD I got a few questions, including "when is NetBSD switching from X11 to Wayland?", Wayland being X11's "new" rival. In this blog post, hopefully I can explain why we aren't yet!

Err codemadness.org 70 i 834 Err codemadness.org 70 i 835
Err codemadness.org 70 i 836 Err codemadness.org 70 i 837

My BSD sucks less than yours

Err codemadness.org 70 i 838 Err codemadness.org 70 i 839

This paper will look at some of the differences between the FreeBSD and OpenBSD operating systems. It is not intended to be solely technical but will also show the different "visions" and design decisions that rule the way things are implemented. It is expected to be a subjective view from two BSD developers and does not pretend to represent these projects in any way.

Err codemadness.org 70 i 840 Err codemadness.org 70 i 841

Video

Err codemadness.org 70 i 842 Err codemadness.org 70 i 843 Err codemadness.org 70 i 847
Err codemadness.org 70 i 848 Err codemadness.org 70 i 849
Err codemadness.org 70 i 850 Err codemadness.org 70 i 851

News Roundup

Err codemadness.org 70 i 852 Err codemadness.org 70 i 853

Even on SSDs, ongoing activity can slow down ZFS scrubs drastically

Err codemadness.org 70 i 854 Err codemadness.org 70 i 855
Err codemadness.org 70 i 856

Back in the days of our OmniOS fileservers, which used HDs (spinning rust) across iSCSI, we wound up changing kernel tunables to speed up ZFS scrubs and saw a significant improvement. When we migrated to our current Linux fileservers with SSDs, I didn't bother including these tunables (or the Linux equivalent), because I expected that SSDs were fast enough that it didn't matter. Indeed, our SSD pools generally scrub like lightning.

Err codemadness.org 70 i 857 Err codemadness.org 70 i 858
Err codemadness.org 70 i 859 Err codemadness.org 70 i 860

OpenBSD on the Desktop (Part I)

Err codemadness.org 70 i 861 Err codemadness.org 70 i 862

Let's install OpenBSD on a Lenovo Thinkpad X270. I used this computer for my computer science studies. It has both Arch Linux and Windows 10 installed as dual boot. Now that I'm no longer required to run Windows, I can ditch the dual boot and install an operating system of my choice.

Err codemadness.org 70 i 863 Err codemadness.org 70 i 864
Err codemadness.org 70 i 865 Err codemadness.org 70 i 866

A simple shell status bar for OpenBSD and cwm(1)

Err codemadness.org 70 i 867 Err codemadness.org 70 i 868

These days, I try to use simple and stock software as much as possible on my OpenBSD laptop. I’ve been playing with cwm(1) for weeks and I was missing a status bar. After trying things like Tint2, Polybar etc, I discovered @gonzalo’s termbar. Thanks a lot!
Err codemadness.org 70 i 869 As I love scripting, I decided to build my own.

Err codemadness.org 70 i 870 Err codemadness.org 70 i 871
Err codemadness.org 70 i 872 Err codemadness.org 70 i 873

Beastie Bits

Err codemadness.org 70 i 874 Err codemadness.org 70 i 875

DragonFly v5.8.3 released to address to issues
Err codemadness.org 70 i 876 OpenSSH 8.4 released

Err codemadness.org 70 i 877 Err codemadness.org 70 i 878
Err codemadness.org 70 i 879 Err codemadness.org 70 i 880

Tarsnap

Err codemadness.org 70 i 881 Err codemadness.org 70 i 882
    Err codemadness.org 70 i 883
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 884
Err codemadness.org 70 i 885
Err codemadness.org 70 i 886 Err codemadness.org 70 i 887

Feedback/Questions

Err codemadness.org 70 i 888 Err codemadness.org 70 i 889 Err codemadness.org 70 i 894 Err codemadness.org 70 i 895
Err codemadness.org 70 i 896 Err codemadness.org 70 i 897
    Err codemadness.org 70 i 898
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 899 ***
  • Err codemadness.org 70 i 900
]]> Err codemadness.org 70 i 901
Err codemadness.org 70 i 902 Err codemadness.org 70 i 903 Wayland on BSD, My BSD sucks less than yours, Even on SSDs, ongoing activity can slow down ZFS scrubs drastically, OpenBSD on the Desktop, simple shell status bar for OpenBSD and cwm, and more.

Err codemadness.org 70 i 904 Err codemadness.org 70 i 905

NOTES
Err codemadness.org 70 i 906 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 907 Err codemadness.org 70 i 908

Headlines

Err codemadness.org 70 i 909 Err codemadness.org 70 i 910

Wayland on BSD

Err codemadness.org 70 i 911 Err codemadness.org 70 i 912
Err codemadness.org 70 i 913

After I posted about the new default window manager in NetBSD I got a few questions, including "when is NetBSD switching from X11 to Wayland?", Wayland being X11's "new" rival. In this blog post, hopefully I can explain why we aren't yet!

Err codemadness.org 70 i 914 Err codemadness.org 70 i 915
Err codemadness.org 70 i 916 Err codemadness.org 70 i 917

My BSD sucks less than yours

Err codemadness.org 70 i 918 Err codemadness.org 70 i 919

This paper will look at some of the differences between the FreeBSD and OpenBSD operating systems. It is not intended to be solely technical but will also show the different "visions" and design decisions that rule the way things are implemented. It is expected to be a subjective view from two BSD developers and does not pretend to represent these projects in any way.

Err codemadness.org 70 i 920 Err codemadness.org 70 i 921

Video

Err codemadness.org 70 i 922 Err codemadness.org 70 i 923 Err codemadness.org 70 i 927
Err codemadness.org 70 i 928 Err codemadness.org 70 i 929
Err codemadness.org 70 i 930 Err codemadness.org 70 i 931

News Roundup

Err codemadness.org 70 i 932 Err codemadness.org 70 i 933

Even on SSDs, ongoing activity can slow down ZFS scrubs drastically

Err codemadness.org 70 i 934 Err codemadness.org 70 i 935
Err codemadness.org 70 i 936

Back in the days of our OmniOS fileservers, which used HDs (spinning rust) across iSCSI, we wound up changing kernel tunables to speed up ZFS scrubs and saw a significant improvement. When we migrated to our current Linux fileservers with SSDs, I didn't bother including these tunables (or the Linux equivalent), because I expected that SSDs were fast enough that it didn't matter. Indeed, our SSD pools generally scrub like lightning.

Err codemadness.org 70 i 937 Err codemadness.org 70 i 938
Err codemadness.org 70 i 939 Err codemadness.org 70 i 940

OpenBSD on the Desktop (Part I)

Err codemadness.org 70 i 941 Err codemadness.org 70 i 942

Let's install OpenBSD on a Lenovo Thinkpad X270. I used this computer for my computer science studies. It has both Arch Linux and Windows 10 installed as dual boot. Now that I'm no longer required to run Windows, I can ditch the dual boot and install an operating system of my choice.

Err codemadness.org 70 i 943 Err codemadness.org 70 i 944
Err codemadness.org 70 i 945 Err codemadness.org 70 i 946

A simple shell status bar for OpenBSD and cwm(1)

Err codemadness.org 70 i 947 Err codemadness.org 70 i 948

These days, I try to use simple and stock software as much as possible on my OpenBSD laptop. I’ve been playing with cwm(1) for weeks and I was missing a status bar. After trying things like Tint2, Polybar etc, I discovered @gonzalo’s termbar. Thanks a lot!
Err codemadness.org 70 i 949 As I love scripting, I decided to build my own.

Err codemadness.org 70 i 950 Err codemadness.org 70 i 951
Err codemadness.org 70 i 952 Err codemadness.org 70 i 953

Beastie Bits

Err codemadness.org 70 i 954 Err codemadness.org 70 i 955

DragonFly v5.8.3 released to address to issues
Err codemadness.org 70 i 956 OpenSSH 8.4 released

Err codemadness.org 70 i 957 Err codemadness.org 70 i 958
Err codemadness.org 70 i 959 Err codemadness.org 70 i 960

Tarsnap

Err codemadness.org 70 i 961 Err codemadness.org 70 i 962
    Err codemadness.org 70 i 963
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 964
Err codemadness.org 70 i 965
Err codemadness.org 70 i 966 Err codemadness.org 70 i 967

Feedback/Questions

Err codemadness.org 70 i 968 Err codemadness.org 70 i 969 Err codemadness.org 70 i 974 Err codemadness.org 70 i 975
Err codemadness.org 70 i 976 Err codemadness.org 70 i 977
    Err codemadness.org 70 i 978
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 979 ***
  • Err codemadness.org 70 i 980
]]> Err codemadness.org 70 i 981
Err codemadness.org 70 i 982 https://fireside.fm/player/v2/FYhhasNR+QUB2QlXN Err codemadness.org 70 i 983 Err codemadness.org 70 i 984 ]]> Err codemadness.org 70 i 985 Err codemadness.org 70 i 986
Err codemadness.org 70 i 987 Err codemadness.org 70 i 988 371: Wildcards running wild Err codemadness.org 70 i 989 https://www.bsdnow.tv/371 Err codemadness.org 70 i 990 8f2644a5-d6f7-49ca-bcd6-1a6336110611 Err codemadness.org 70 i 991 Thu, 08 Oct 2020 03:00:00 -0700 Err codemadness.org 70 i 992 Allan Jude Err codemadness.org 70 i 993 Err codemadness.org 70 i 994 full Err codemadness.org 70 i 995 Allan Jude Err codemadness.org 70 i 996 New Project: zedfs.com, TrueNAS CORE Ready for Deployment, IPC in FreeBSD 11: Performance Analysis, Unix Wildcards Gone Wild, Unix Wars, and more Err codemadness.org 70 i 997 41:17 Err codemadness.org 70 i 998 no Err codemadness.org 70 i 999 Err codemadness.org 70 i 1000 New Project: zedfs.com, TrueNAS CORE Ready for Deployment, IPC in FreeBSD 11: Performance Analysis, Unix Wildcards Gone Wild, Unix Wars, and more Err codemadness.org 70 i 1001 NOTES Err codemadness.org 70 i 1002 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow) Err codemadness.org 70 i 1003 Headlines Err codemadness.org 70 i 1004 My New Project: zedfs.com (https://www.oshogbo.vexillium.org/blog/80/) Err codemadness.org 70 i 1005 Have you ever had an idea that keeps coming back to you over and over again? For a week? For a month? I know that feeling. My new project was born from this feeling. Err codemadness.org 70 i 1006 On this blog, I mix content a lot. I have written personal posts (not many of them, but still), FreeBSD development posts, development posts, security posts, and ZFS posts. This mixed content can be problematic sometimes. I share a lot of stuff here, and readers don’t know what to expect next. I am just excited by so many things, and I want to share that excitement with you! Err codemadness.org 70 i 1007 TrueNAS CORE is Ready for Deployment (https://www.ixsystems.com/blog/truenas-12-rc-1/) Err codemadness.org 70 i 1008 TrueNAS 12.0 RC1 was released yesterday and with it, TrueNAS CORE is ready for deployment. The merger of FreeNAS and TrueNAS into a unified software image can now begin its path into mainstream use. TrueNAS CORE is the new FreeNAS and is on schedule. Err codemadness.org 70 i 1009 The TrueNAS 12.0 BETA process started in June and has been the most successful BETA release ever with more than 3,000 users and only minor issues. Ars Technica provided a detailed technical walkthrough of the original BETA. There is a long list of features and performance improvements. During the BETA process, TrueNAS 12.0 demonstrated over 1.2 Million IOPS and over 23GB/s on a TrueNAS M60. Err codemadness.org 70 i 1010 News Roundup Err codemadness.org 70 i 1011 Interprocess Communication in FreeBSD 11: Performance Analysis (https://arxiv.org/pdf/2008.02145.pdf) Err codemadness.org 70 i 1012 Interprocess communication, IPC, is one of the most fundamental functions of a modern operating system, playing an essential role in the fabric of contemporary applications. This report conducts an investigation in FreeBSD of the real world performance considerations behind two of the most common IPC mechanisms; pipes and sockets. A simple benchmark provides a fair sense of effective bandwidth for each, and analysis using DTrace, hardware performance counters and the operating system’s source code is presented. We note that pipes outperform sockets by 63% on average across all configurations, and further that the size of userspace transmission buffers has a profound effect on performance — larger buffers are beneficial up to a point (∼ 32-64 KiB) after which performance collapses as a result of devastating cache exhaustion. A deep scrutiny of the probe effects at play is also presented, justifying the validity of conclusions drawn from these experiments. Err codemadness.org 70 i 1013 Back To The Future: Unix Wildcards Gone Wild (https://www.defensecode.com/public/DefenseCode_Unix_WildCards_Gone_Wild.txt) Err codemadness.org 70 i 1014 First of all, this article has nothing to do with modern hacking techniques like ASLR bypass, ROP exploits, 0day remote kernel exploits or Chrome's Chain-14-Different-Bugs-To-Get-There... Nope, nothing of the above. This article will cover one interesting old-school Unix hacking technique, that will still work nowadays in 2013. Err codemadness.org 70 i 1015 Unix Wars (https://www.livinginternet.com/i/iw_unix_war.htm) Err codemadness.org 70 i 1016 Dozens of different operating systems have been developed over the years, but only Unix has grown in so many varieties. There are three main branches. Four factors have facilitated this growth... Err codemadness.org 70 i 1017 Tarsnap Err codemadness.org 70 i 1018 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 1019 Feedback/Questions Err codemadness.org 70 i 1020 Chris - installing FreeBSD 13-current (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/371/feedback/Chris%20-%20installing%20FreeBSD%2013-current.md) Err codemadness.org 70 i 1021 Dane - FreeBSD History Lesson (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/371/feedback/Dane%20-%20FreeBSD%20History%20Lesson.md) Err codemadness.org 70 i 1022 Marc - linux compat (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/371/feedback/Marc%20-%20linux%20compat.md) Err codemadness.org 70 i 1023 Mason - apropos battery (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/371/feedback/Mason%20-%20apropos%20battery.md) Err codemadness.org 70 i 1024 Paul - a topic idea (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/371/feedback/Paul%20-%20a%20topic%20idea.md) Err codemadness.org 70 i 1025 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 1026 Err codemadness.org 70 i 1027 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, berkeley, software, distribution, zfs, zpool, dataset, interview, truenas, truenas core, IPC, interprocess, communication, performance, performance analysis, Unix, wildcards, Unix wars Err codemadness.org 70 i 1028 Err codemadness.org 70 i 1029 New Project: zedfs.com, TrueNAS CORE Ready for Deployment, IPC in FreeBSD 11: Performance Analysis, Unix Wildcards Gone Wild, Unix Wars, and more

Err codemadness.org 70 i 1030 Err codemadness.org 70 i 1031

NOTES
Err codemadness.org 70 i 1032 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 1033 Err codemadness.org 70 i 1034

Headlines

Err codemadness.org 70 i 1035 Err codemadness.org 70 i 1036

My New Project: zedfs.com

Err codemadness.org 70 i 1037 Err codemadness.org 70 i 1038
Err codemadness.org 70 i 1039

Have you ever had an idea that keeps coming back to you over and over again? For a week? For a month? I know that feeling. My new project was born from this feeling.
Err codemadness.org 70 i 1040 On this blog, I mix content a lot. I have written personal posts (not many of them, but still), FreeBSD development posts, development posts, security posts, and ZFS posts. This mixed content can be problematic sometimes. I share a lot of stuff here, and readers don’t know what to expect next. I am just excited by so many things, and I want to share that excitement with you!

Err codemadness.org 70 i 1041 Err codemadness.org 70 i 1042
Err codemadness.org 70 i 1043
Err codemadness.org 70 i 1044 Err codemadness.org 70 i 1045

TrueNAS CORE is Ready for Deployment

Err codemadness.org 70 i 1046 Err codemadness.org 70 i 1047
Err codemadness.org 70 i 1048

TrueNAS 12.0 RC1 was released yesterday and with it, TrueNAS CORE is ready for deployment. The merger of FreeNAS and TrueNAS into a unified software image can now begin its path into mainstream use. TrueNAS CORE is the new FreeNAS and is on schedule.
Err codemadness.org 70 i 1049 The TrueNAS 12.0 BETA process started in June and has been the most successful BETA release ever with more than 3,000 users and only minor issues. Ars Technica provided a detailed technical walkthrough of the original BETA. There is a long list of features and performance improvements. During the BETA process, TrueNAS 12.0 demonstrated over 1.2 Million IOPS and over 23GB/s on a TrueNAS M60.

Err codemadness.org 70 i 1050 Err codemadness.org 70 i 1051
Err codemadness.org 70 i 1052
Err codemadness.org 70 i 1053 Err codemadness.org 70 i 1054

News Roundup

Err codemadness.org 70 i 1055 Err codemadness.org 70 i 1056

Interprocess Communication in FreeBSD 11: Performance Analysis

Err codemadness.org 70 i 1057 Err codemadness.org 70 i 1058
Err codemadness.org 70 i 1059

Interprocess communication, IPC, is one of the most fundamental functions of a modern operating system, playing an essential role in the fabric of contemporary applications. This report conducts an investigation in FreeBSD of the real world performance considerations behind two of the most common IPC mechanisms; pipes and sockets. A simple benchmark provides a fair sense of effective bandwidth for each, and analysis using DTrace, hardware performance counters and the operating system’s source code is presented. We note that pipes outperform sockets by 63% on average across all configurations, and further that the size of userspace transmission buffers has a profound effect on performance — larger buffers are beneficial up to a point (∼ 32-64 KiB) after which performance collapses as a result of devastating cache exhaustion. A deep scrutiny of the probe effects at play is also presented, justifying the validity of conclusions drawn from these experiments.

Err codemadness.org 70 i 1060 Err codemadness.org 70 i 1061
Err codemadness.org 70 i 1062
Err codemadness.org 70 i 1063 Err codemadness.org 70 i 1064

Back To The Future: Unix Wildcards Gone Wild

Err codemadness.org 70 i 1065 Err codemadness.org 70 i 1066
Err codemadness.org 70 i 1067

First of all, this article has nothing to do with modern hacking techniques like ASLR bypass, ROP exploits, 0day remote kernel exploits or Chrome's Chain-14-Different-Bugs-To-Get-There... Nope, nothing of the above. This article will cover one interesting old-school Unix hacking technique, that will still work nowadays in 2013.

Err codemadness.org 70 i 1068 Err codemadness.org 70 i 1069
Err codemadness.org 70 i 1070
Err codemadness.org 70 i 1071 Err codemadness.org 70 i 1072

Unix Wars

Err codemadness.org 70 i 1073 Err codemadness.org 70 i 1074
Err codemadness.org 70 i 1075

Dozens of different operating systems have been developed over the years, but only Unix has grown in so many varieties. There are three main branches. Four factors have facilitated this growth...

Err codemadness.org 70 i 1076 Err codemadness.org 70 i 1077
Err codemadness.org 70 i 1078
Err codemadness.org 70 i 1079 Err codemadness.org 70 i 1080

Tarsnap

Err codemadness.org 70 i 1081 Err codemadness.org 70 i 1082
    Err codemadness.org 70 i 1083
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 1084
Err codemadness.org 70 i 1085 Err codemadness.org 70 i 1086

Feedback/Questions

Err codemadness.org 70 i 1087 Err codemadness.org 70 i 1088 ]]> Err codemadness.org 70 i 1100
Err codemadness.org 70 i 1101 Err codemadness.org 70 i 1102 New Project: zedfs.com, TrueNAS CORE Ready for Deployment, IPC in FreeBSD 11: Performance Analysis, Unix Wildcards Gone Wild, Unix Wars, and more

Err codemadness.org 70 i 1103 Err codemadness.org 70 i 1104

NOTES
Err codemadness.org 70 i 1105 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 1106 Err codemadness.org 70 i 1107

Headlines

Err codemadness.org 70 i 1108 Err codemadness.org 70 i 1109

My New Project: zedfs.com

Err codemadness.org 70 i 1110 Err codemadness.org 70 i 1111
Err codemadness.org 70 i 1112

Have you ever had an idea that keeps coming back to you over and over again? For a week? For a month? I know that feeling. My new project was born from this feeling.
Err codemadness.org 70 i 1113 On this blog, I mix content a lot. I have written personal posts (not many of them, but still), FreeBSD development posts, development posts, security posts, and ZFS posts. This mixed content can be problematic sometimes. I share a lot of stuff here, and readers don’t know what to expect next. I am just excited by so many things, and I want to share that excitement with you!

Err codemadness.org 70 i 1114 Err codemadness.org 70 i 1115
Err codemadness.org 70 i 1116
Err codemadness.org 70 i 1117 Err codemadness.org 70 i 1118

TrueNAS CORE is Ready for Deployment

Err codemadness.org 70 i 1119 Err codemadness.org 70 i 1120
Err codemadness.org 70 i 1121

TrueNAS 12.0 RC1 was released yesterday and with it, TrueNAS CORE is ready for deployment. The merger of FreeNAS and TrueNAS into a unified software image can now begin its path into mainstream use. TrueNAS CORE is the new FreeNAS and is on schedule.
Err codemadness.org 70 i 1122 The TrueNAS 12.0 BETA process started in June and has been the most successful BETA release ever with more than 3,000 users and only minor issues. Ars Technica provided a detailed technical walkthrough of the original BETA. There is a long list of features and performance improvements. During the BETA process, TrueNAS 12.0 demonstrated over 1.2 Million IOPS and over 23GB/s on a TrueNAS M60.

Err codemadness.org 70 i 1123 Err codemadness.org 70 i 1124
Err codemadness.org 70 i 1125
Err codemadness.org 70 i 1126 Err codemadness.org 70 i 1127

News Roundup

Err codemadness.org 70 i 1128 Err codemadness.org 70 i 1129

Interprocess Communication in FreeBSD 11: Performance Analysis

Err codemadness.org 70 i 1130 Err codemadness.org 70 i 1131
Err codemadness.org 70 i 1132

Interprocess communication, IPC, is one of the most fundamental functions of a modern operating system, playing an essential role in the fabric of contemporary applications. This report conducts an investigation in FreeBSD of the real world performance considerations behind two of the most common IPC mechanisms; pipes and sockets. A simple benchmark provides a fair sense of effective bandwidth for each, and analysis using DTrace, hardware performance counters and the operating system’s source code is presented. We note that pipes outperform sockets by 63% on average across all configurations, and further that the size of userspace transmission buffers has a profound effect on performance — larger buffers are beneficial up to a point (∼ 32-64 KiB) after which performance collapses as a result of devastating cache exhaustion. A deep scrutiny of the probe effects at play is also presented, justifying the validity of conclusions drawn from these experiments.

Err codemadness.org 70 i 1133 Err codemadness.org 70 i 1134
Err codemadness.org 70 i 1135
Err codemadness.org 70 i 1136 Err codemadness.org 70 i 1137

Back To The Future: Unix Wildcards Gone Wild

Err codemadness.org 70 i 1138 Err codemadness.org 70 i 1139
Err codemadness.org 70 i 1140

First of all, this article has nothing to do with modern hacking techniques like ASLR bypass, ROP exploits, 0day remote kernel exploits or Chrome's Chain-14-Different-Bugs-To-Get-There... Nope, nothing of the above. This article will cover one interesting old-school Unix hacking technique, that will still work nowadays in 2013.

Err codemadness.org 70 i 1141 Err codemadness.org 70 i 1142
Err codemadness.org 70 i 1143
Err codemadness.org 70 i 1144 Err codemadness.org 70 i 1145

Unix Wars

Err codemadness.org 70 i 1146 Err codemadness.org 70 i 1147
Err codemadness.org 70 i 1148

Dozens of different operating systems have been developed over the years, but only Unix has grown in so many varieties. There are three main branches. Four factors have facilitated this growth...

Err codemadness.org 70 i 1149 Err codemadness.org 70 i 1150
Err codemadness.org 70 i 1151
Err codemadness.org 70 i 1152 Err codemadness.org 70 i 1153

Tarsnap

Err codemadness.org 70 i 1154 Err codemadness.org 70 i 1155
    Err codemadness.org 70 i 1156
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 1157
Err codemadness.org 70 i 1158 Err codemadness.org 70 i 1159

Feedback/Questions

Err codemadness.org 70 i 1160 Err codemadness.org 70 i 1161 ]]> Err codemadness.org 70 i 1173
Err codemadness.org 70 i 1174 https://fireside.fm/player/v2/FYhhasNR+WJtuVorY Err codemadness.org 70 i 1175 Err codemadness.org 70 i 1176 ]]> Err codemadness.org 70 i 1177 Err codemadness.org 70 i 1178
Err codemadness.org 70 i 1179 Err codemadness.org 70 i 1180 370: Testing shutdown Err codemadness.org 70 i 1181 https://www.bsdnow.tv/370 Err codemadness.org 70 i 1182 4bc93957-8853-4c7a-b016-604d770c5b71 Err codemadness.org 70 i 1183 Thu, 01 Oct 2020 03:15:00 -0700 Err codemadness.org 70 i 1184 Allan Jude Err codemadness.org 70 i 1185 Err codemadness.org 70 i 1186 full Err codemadness.org 70 i 1187 Allan Jude Err codemadness.org 70 i 1188 The world’s first OpenZFS based live image, FreeBSD Subversion to Git Migration video, FreeBSD Instant-workstation 2020, testing the shutdown mechanism, login_ldap added to OpenBSD, and more Err codemadness.org 70 i 1189 45:12 Err codemadness.org 70 i 1190 no Err codemadness.org 70 i 1191 Err codemadness.org 70 i 1192 The world’s first OpenZFS based live image, FreeBSD Subversion to Git Migration video, FreeBSD Instant-workstation 2020, testing the shutdown mechanism, login_ldap added to OpenBSD, and more Err codemadness.org 70 i 1193 NOTES Err codemadness.org 70 i 1194 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow) Err codemadness.org 70 i 1195 Headlines Err codemadness.org 70 i 1196 FuryBSD 2020-Q3 The world’s first OpenZFS based live image (https://www.furybsd.org/furybsd-2020-q3-the-worlds-first-openzfs-based-live-image/) Err codemadness.org 70 i 1197 FuryBSD is a tool to test drive stock FreeBSD desktop images in read write mode to see if it will work for you before installing. In order to provide the most reliable experience possible while preserving the integrity of the system the LiveCD now leverages ZFS, compression, replication, a memory file system, and reroot (pivot root). Err codemadness.org 70 i 1198 FreeBSD Subversion to Git Migration: Pt 1 Why? (https://bsdimp.blogspot.com/2020/09/freebsd-subversion-to-git-migration.html) Err codemadness.org 70 i 1199 FreeBSD moving to Git: Why? With luck, I'll be writing a few blogs on FreeBSD's move to git later this year. Today, we'll start with "why"? Err codemadness.org 70 i 1200 Video from Warner Losh (https://www.youtube.com/watch?v=Lx9lKr_M-DI) Err codemadness.org 70 i 1201 News Roundup Err codemadness.org 70 i 1202 FreeBSD Instant-workstation 2020 (https://euroquis.nl/freebsd/2020/09/17/instant-workstation.html) Err codemadness.org 70 i 1203 A little over a year ago I published an instant-workstation script for FreeBSD. The idea is to have an installed FreeBSD system, then run a shell script that uses only base-system utilities and installs and configures a workstation setup for you. Err codemadness.org 70 i 1204 nut – testing the shutdown mechanism (https://dan.langille.org/2020/09/10/nut-testing-the-shutdown-mechanism/) Err codemadness.org 70 i 1205 Following on from my recent nut setup, this is the second in a series of three posts. Err codemadness.org 70 i 1206 The next post will deal with adjusting startup and shutdown times to be sure everything proceeds as required. Err codemadness.org 70 i 1207 login_ldap added to OpenBSD -current (https://undeadly.org/cgi?action=article;sid=20200913081040) Err codemadness.org 70 i 1208 With this commit, Martijn van Duren (martijn@) added login_ldap(8) to -current Err codemadness.org 70 i 1209 + https://marc.info/?l=openbsd-cvs&m=159992319027593&w=2 Err codemadness.org 70 i 1210 Beastie Bits Err codemadness.org 70 i 1211 NetBSD current now has GCC 9.3.0 for x86/ARM (https://twitter.com/netbsd/status/1305082782457245696) Err codemadness.org 70 i 1212 MidnightBSD 1.2.8 (https://www.justjournal.com/users/mbsd/entry/33802) Err codemadness.org 70 i 1213 MidnightBSD 2.0-Current (https://www.justjournal.com/users/mbsd/entry/33806) Err codemadness.org 70 i 1214 Retro UNIX 8086 v1 operating system has been developed by Erdogan Tan as a special purposed derivation of original UNIX v1 (https://www.singlix.com/runix/) Err codemadness.org 70 i 1215 *** Err codemadness.org 70 i 1216 Tarsnap Err codemadness.org 70 i 1217 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 1218 Feedback/Questions Err codemadness.org 70 i 1219 Rick - rcorder (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/370/feedback/Rick%20-%20rcorder.md) Err codemadness.org 70 i 1220 Dan - machiatto bin (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/370/feedback/dan%20-%20machiatto%20bin.md) Err codemadness.org 70 i 1221 Luis - old episodes (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/370/feedback/luis%20-%20old%20episodes.md) Err codemadness.org 70 i 1222 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 1223 Err codemadness.org 70 i 1224 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, berkeley, software, distribution, zfs, zpool, dataset, interview, live image, migration, git, video, workstation, testing, shutdown, mechanism, login_ldap, ldap, login Err codemadness.org 70 i 1225 Err codemadness.org 70 i 1226 The world’s first OpenZFS based live image, FreeBSD Subversion to Git Migration video, FreeBSD Instant-workstation 2020, testing the shutdown mechanism, login_ldap added to OpenBSD, and more

Err codemadness.org 70 i 1227 Err codemadness.org 70 i 1228

NOTES
Err codemadness.org 70 i 1229 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 1230 Err codemadness.org 70 i 1231

Headlines

Err codemadness.org 70 i 1232 Err codemadness.org 70 i 1233

FuryBSD 2020-Q3 The world’s first OpenZFS based live image

Err codemadness.org 70 i 1234 Err codemadness.org 70 i 1235
Err codemadness.org 70 i 1236

FuryBSD is a tool to test drive stock FreeBSD desktop images in read write mode to see if it will work for you before installing. In order to provide the most reliable experience possible while preserving the integrity of the system the LiveCD now leverages ZFS, compression, replication, a memory file system, and reroot (pivot root).

Err codemadness.org 70 i 1237 Err codemadness.org 70 i 1238
Err codemadness.org 70 i 1239
Err codemadness.org 70 i 1240 Err codemadness.org 70 i 1241

FreeBSD Subversion to Git Migration: Pt 1 Why?

Err codemadness.org 70 i 1242 Err codemadness.org 70 i 1243
Err codemadness.org 70 i 1244

FreeBSD moving to Git: Why? With luck, I'll be writing a few blogs on FreeBSD's move to git later this year. Today, we'll start with "why"?
Err codemadness.org 70 i 1245 Video from Warner Losh

Err codemadness.org 70 i 1246 Err codemadness.org 70 i 1247
Err codemadness.org 70 i 1248
Err codemadness.org 70 i 1249 Err codemadness.org 70 i 1250

News Roundup

Err codemadness.org 70 i 1251 Err codemadness.org 70 i 1252

FreeBSD Instant-workstation 2020

Err codemadness.org 70 i 1253 Err codemadness.org 70 i 1254
Err codemadness.org 70 i 1255

A little over a year ago I published an instant-workstation script for FreeBSD. The idea is to have an installed FreeBSD system, then run a shell script that uses only base-system utilities and installs and configures a workstation setup for you.

Err codemadness.org 70 i 1256 Err codemadness.org 70 i 1257
Err codemadness.org 70 i 1258
Err codemadness.org 70 i 1259 Err codemadness.org 70 i 1260

nut – testing the shutdown mechanism

Err codemadness.org 70 i 1261 Err codemadness.org 70 i 1262
Err codemadness.org 70 i 1263

Following on from my recent nut setup, this is the second in a series of three posts.
Err codemadness.org 70 i 1264 The next post will deal with adjusting startup and shutdown times to be sure everything proceeds as required.

Err codemadness.org 70 i 1265 Err codemadness.org 70 i 1266
Err codemadness.org 70 i 1267
Err codemadness.org 70 i 1268 Err codemadness.org 70 i 1269

login_ldap added to OpenBSD -current

Err codemadness.org 70 i 1270 Err codemadness.org 70 i 1271
Err codemadness.org 70 i 1272

With this commit, Martijn van Duren (martijn@) added login_ldap(8) to -current

Err codemadness.org 70 i 1273 Err codemadness.org 70 i 1274 Err codemadness.org 70 i 1278
Err codemadness.org 70 i 1279 Err codemadness.org 70 i 1280

Beastie Bits

Err codemadness.org 70 i 1281 Err codemadness.org 70 i 1282 Err codemadness.org 70 i 1289 Err codemadness.org 70 i 1290

Tarsnap

Err codemadness.org 70 i 1291 Err codemadness.org 70 i 1292
    Err codemadness.org 70 i 1293
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 1294
Err codemadness.org 70 i 1295 Err codemadness.org 70 i 1296

Feedback/Questions

Err codemadness.org 70 i 1297 Err codemadness.org 70 i 1298
    Err codemadness.org 70 i 1299
  • Rick - rcorder
  • Err codemadness.org 70 i 1300
  • Dan - machiatto bin
  • Err codemadness.org 70 i 1301
  • Luis - old episodes

    Err codemadness.org 70 i 1302 Err codemadness.org 70 i 1303
  • Err codemadness.org 70 i 1304
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

    Err codemadness.org 70 i 1305 Err codemadness.org 70 i 1306
  • Err codemadness.org 70 i 1307
]]> Err codemadness.org 70 i 1308
Err codemadness.org 70 i 1309 Err codemadness.org 70 i 1310 The world’s first OpenZFS based live image, FreeBSD Subversion to Git Migration video, FreeBSD Instant-workstation 2020, testing the shutdown mechanism, login_ldap added to OpenBSD, and more

Err codemadness.org 70 i 1311 Err codemadness.org 70 i 1312

NOTES
Err codemadness.org 70 i 1313 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 1314 Err codemadness.org 70 i 1315

Headlines

Err codemadness.org 70 i 1316 Err codemadness.org 70 i 1317

FuryBSD 2020-Q3 The world’s first OpenZFS based live image

Err codemadness.org 70 i 1318 Err codemadness.org 70 i 1319
Err codemadness.org 70 i 1320

FuryBSD is a tool to test drive stock FreeBSD desktop images in read write mode to see if it will work for you before installing. In order to provide the most reliable experience possible while preserving the integrity of the system the LiveCD now leverages ZFS, compression, replication, a memory file system, and reroot (pivot root).

Err codemadness.org 70 i 1321 Err codemadness.org 70 i 1322
Err codemadness.org 70 i 1323
Err codemadness.org 70 i 1324 Err codemadness.org 70 i 1325

FreeBSD Subversion to Git Migration: Pt 1 Why?

Err codemadness.org 70 i 1326 Err codemadness.org 70 i 1327
Err codemadness.org 70 i 1328

FreeBSD moving to Git: Why? With luck, I'll be writing a few blogs on FreeBSD's move to git later this year. Today, we'll start with "why"?
Err codemadness.org 70 i 1329 Video from Warner Losh

Err codemadness.org 70 i 1330 Err codemadness.org 70 i 1331
Err codemadness.org 70 i 1332
Err codemadness.org 70 i 1333 Err codemadness.org 70 i 1334

News Roundup

Err codemadness.org 70 i 1335 Err codemadness.org 70 i 1336

FreeBSD Instant-workstation 2020

Err codemadness.org 70 i 1337 Err codemadness.org 70 i 1338
Err codemadness.org 70 i 1339

A little over a year ago I published an instant-workstation script for FreeBSD. The idea is to have an installed FreeBSD system, then run a shell script that uses only base-system utilities and installs and configures a workstation setup for you.

Err codemadness.org 70 i 1340 Err codemadness.org 70 i 1341
Err codemadness.org 70 i 1342
Err codemadness.org 70 i 1343 Err codemadness.org 70 i 1344

nut – testing the shutdown mechanism

Err codemadness.org 70 i 1345 Err codemadness.org 70 i 1346
Err codemadness.org 70 i 1347

Following on from my recent nut setup, this is the second in a series of three posts.
Err codemadness.org 70 i 1348 The next post will deal with adjusting startup and shutdown times to be sure everything proceeds as required.

Err codemadness.org 70 i 1349 Err codemadness.org 70 i 1350
Err codemadness.org 70 i 1351
Err codemadness.org 70 i 1352 Err codemadness.org 70 i 1353

login_ldap added to OpenBSD -current

Err codemadness.org 70 i 1354 Err codemadness.org 70 i 1355
Err codemadness.org 70 i 1356

With this commit, Martijn van Duren (martijn@) added login_ldap(8) to -current

Err codemadness.org 70 i 1357 Err codemadness.org 70 i 1358 Err codemadness.org 70 i 1362
Err codemadness.org 70 i 1363 Err codemadness.org 70 i 1364

Beastie Bits

Err codemadness.org 70 i 1365 Err codemadness.org 70 i 1366 Err codemadness.org 70 i 1373 Err codemadness.org 70 i 1374

Tarsnap

Err codemadness.org 70 i 1375 Err codemadness.org 70 i 1376
    Err codemadness.org 70 i 1377
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 1378
Err codemadness.org 70 i 1379 Err codemadness.org 70 i 1380

Feedback/Questions

Err codemadness.org 70 i 1381 Err codemadness.org 70 i 1382
    Err codemadness.org 70 i 1383
  • Rick - rcorder
  • Err codemadness.org 70 i 1384
  • Dan - machiatto bin
  • Err codemadness.org 70 i 1385
  • Luis - old episodes

    Err codemadness.org 70 i 1386 Err codemadness.org 70 i 1387
  • Err codemadness.org 70 i 1388
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

    Err codemadness.org 70 i 1389 Err codemadness.org 70 i 1390
  • Err codemadness.org 70 i 1391
]]> Err codemadness.org 70 i 1392
Err codemadness.org 70 i 1393 https://fireside.fm/player/v2/FYhhasNR+XvT_6M-Z Err codemadness.org 70 i 1394 Err codemadness.org 70 i 1395 ]]> Err codemadness.org 70 i 1396 Err codemadness.org 70 i 1397
Err codemadness.org 70 i 1398 Err codemadness.org 70 i 1399 369: Where rc.d belongs Err codemadness.org 70 i 1400 https://www.bsdnow.tv/369 Err codemadness.org 70 i 1401 3594bb2c-b1c8-4f13-bcb9-6ad5094179a5 Err codemadness.org 70 i 1402 Thu, 24 Sep 2020 09:00:00 -0700 Err codemadness.org 70 i 1403 Allan Jude Err codemadness.org 70 i 1404 Err codemadness.org 70 i 1405 full Err codemadness.org 70 i 1406 Allan Jude Err codemadness.org 70 i 1407 High Availability Router/Firewall Using OpenBSD, CARP, pfsync, and ifstated, Building the Development Version of Emacs on NetBSD, rc.d belongs in libexec, not etc, FreeBSD 11.3 EOL, OPNsense 20.7.1 Released, MidnightBSD 1.2.7 out, and more. Err codemadness.org 70 i 1408 44:09 Err codemadness.org 70 i 1409 no Err codemadness.org 70 i 1410 Err codemadness.org 70 i 1411 High Availability Router/Firewall Using OpenBSD, CARP, pfsync, and ifstated, Building the Development Version of Emacs on NetBSD, rc.d belongs in libexec, not etc, FreeBSD 11.3 EOL, OPNsense 20.7.1 Released, MidnightBSD 1.2.7 out, and more. Err codemadness.org 70 i 1412 NOTES Err codemadness.org 70 i 1413 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow) Err codemadness.org 70 i 1414 Headlines Err codemadness.org 70 i 1415 High Availability Router/Firewall Using OpenBSD, CARP, pfsync, and ifstated (https://dzone.com/articles/high-availability-routerfirewall-using-openbsd-car) Err codemadness.org 70 i 1416 I have been running OpenBSD on a Soekris net5501 for my router/firewall since early 2012. Because I run a multitude of services on this system (more on that later), the meager 500Mhz AMD Geode + 512MB SDRAM was starting to get a little sluggish while trying to do anything via the terminal. Despite the perceived performance hit during interactive SSH sessions, it still supported a full 100Mbit connection with NAT, so I wasn’t overly eager to change anything. Luckily though, my ISP increased the bandwidth available on my plan tier to 150Mbit+. Unfortunately, the Soekris only contained 4xVIA Rhine Fast Ethernet. So now, I was using a slow system and wasting money by not being able to fully utilize my connection. Err codemadness.org 70 i 1417 Building the Development Version of Emacs on NetBSD (https://lars.ingebrigtsen.no/2020/08/25/building-the-development-version-of-emacs-on-netbsd/) Err codemadness.org 70 i 1418 I hadn’t really planned on installing a NetBSD VM (after doing all the other two BSDs), but then a NetBSD-related Emacs bug report arrived. Err codemadness.org 70 i 1419 News Roundup Err codemadness.org 70 i 1420 rc.d belongs in libexec, not etc (https://jmmv.dev/2020/08/rcd-libexec-etc.html) Err codemadness.org 70 i 1421 Let’s open with the controversy: the scripts that live under /etc/rc.d/ in FreeBSD, NetBSD, and OpenBSD are in the wrong place. They all should live in /libexec/rc.d/ because they are code, not configuration. Err codemadness.org 70 i 1422 This misplacement is something that has bugged me for ages but I never had the energy to open this can of worms back when I was very involved in NetBSD. I suspect it would have been a draining discussion and a very difficult thing to change. Err codemadness.org 70 i 1423 FreeBSD 11.3 EOL (https://lists.freebsd.org/pipermail/freebsd-announce/2020-September/001982.html) Err codemadness.org 70 i 1424 As of September 30, 2020, FreeBSD 11.3 will reach end-of-life and will no longer Err codemadness.org 70 i 1425 be supported by the FreeBSD Security Team. Users of FreeBSD 11.3 are strongly Err codemadness.org 70 i 1426 encouraged to upgrade to a newer release as soon as possible. Err codemadness.org 70 i 1427 OPNsense 20.7.1 Released (https://opnsense.org/opnsense-20-7-1-released/) Err codemadness.org 70 i 1428 Overall, the jump to HardenedBSD 12.1 is looking promising from our end. From the reported issues we still have more logging quirks to investigate and especially Netmap support (used in IPS and Sensei) is lacking in some areas that were previously working. Patches are being worked on already so we shall get there soon enough. Stay tuned. Err codemadness.org 70 i 1429 MidnightBSD 1.2.7 out (https://www.justjournal.com/users/mbsd/entry/33801) Err codemadness.org 70 i 1430 MidnightBSD 1.2.7 is available via the FTP/HTTP and mirrors as well as github. Err codemadness.org 70 i 1431 It includes several bug fixes and security updates over the last ISO release and is recommended for new installations. Err codemadness.org 70 i 1432 Users who don't want to updatee the whole OS, should consider at least updating libmport as there are many package management fixes Err codemadness.org 70 i 1433 Beastie Bits Err codemadness.org 70 i 1434 Tarsnap podcast (https://blog.firosolutions.com/2020/08/tarsnap-podcast/) Err codemadness.org 70 i 1435 NetBSD Tips and Tricks (http://students.engr.scu.edu/~sschaeck/netbsd/index.html) Err codemadness.org 70 i 1436 FreeBSD mini-git Primer (https://hackmd.io/hJgnfzd5TMK-VHgUzshA2g) Err codemadness.org 70 i 1437 GhostBSD Financial Reports (https://ghostbsd.org/financial_reports_from_January_to_June_2020) Err codemadness.org 70 i 1438 *** Err codemadness.org 70 i 1439 Tarsnap Err codemadness.org 70 i 1440 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 1441 Feedback/Questions Err codemadness.org 70 i 1442 Daniel - Documentation Tooling (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/369/feedback/Daniel%20-%20Documentation%20Tooling.md) Err codemadness.org 70 i 1443 Fongaboo - Where did the ZFS tutorial Go? (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/369/feedback/Fongaboo%20-%20Where%20did%20the%20ZFS%20Tutorial%20Go.md) Err codemadness.org 70 i 1444 Johnny - Browser Cold Wars (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/369/feedback/Johnny%20-%20Browser%20Cold%20Wars.md) Err codemadness.org 70 i 1445 *** Err codemadness.org 70 i 1446 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 1447 Err codemadness.org 70 i 1448 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, berkeley, software, distribution, zfs, zpool, dataset, interview, ha, high availability, carp, pfsync, ifstated, development, emacs, rc.d, libexec, etc, end of life, release, opnsense, midnightbsd Err codemadness.org 70 i 1449 Err codemadness.org 70 i 1450 High Availability Router/Firewall Using OpenBSD, CARP, pfsync, and ifstated, Building the Development Version of Emacs on NetBSD, rc.d belongs in libexec, not etc, FreeBSD 11.3 EOL, OPNsense 20.7.1 Released, MidnightBSD 1.2.7 out, and more.

Err codemadness.org 70 i 1451 Err codemadness.org 70 i 1452

NOTES
Err codemadness.org 70 i 1453 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 1454 Err codemadness.org 70 i 1455

Headlines

Err codemadness.org 70 i 1456 Err codemadness.org 70 i 1457

High Availability Router/Firewall Using OpenBSD, CARP, pfsync, and ifstated

Err codemadness.org 70 i 1458 Err codemadness.org 70 i 1459
Err codemadness.org 70 i 1460

I have been running OpenBSD on a Soekris net5501 for my router/firewall since early 2012. Because I run a multitude of services on this system (more on that later), the meager 500Mhz AMD Geode + 512MB SDRAM was starting to get a little sluggish while trying to do anything via the terminal. Despite the perceived performance hit during interactive SSH sessions, it still supported a full 100Mbit connection with NAT, so I wasn’t overly eager to change anything. Luckily though, my ISP increased the bandwidth available on my plan tier to 150Mbit+. Unfortunately, the Soekris only contained 4xVIA Rhine Fast Ethernet. So now, I was using a slow system and wasting money by not being able to fully utilize my connection.

Err codemadness.org 70 i 1461
Err codemadness.org 70 i 1462 Err codemadness.org 70 i 1463
Err codemadness.org 70 i 1464 Err codemadness.org 70 i 1465

Building the Development Version of Emacs on NetBSD

Err codemadness.org 70 i 1466 Err codemadness.org 70 i 1467
Err codemadness.org 70 i 1468

I hadn’t really planned on installing a NetBSD VM (after doing all the other two BSDs), but then a NetBSD-related Emacs bug report arrived.

Err codemadness.org 70 i 1469
Err codemadness.org 70 i 1470 Err codemadness.org 70 i 1471
Err codemadness.org 70 i 1472 Err codemadness.org 70 i 1473

News Roundup

Err codemadness.org 70 i 1474 Err codemadness.org 70 i 1475

rc.d belongs in libexec, not etc

Err codemadness.org 70 i 1476 Err codemadness.org 70 i 1477
Err codemadness.org 70 i 1478

Let’s open with the controversy: the scripts that live under /etc/rc.d/ in FreeBSD, NetBSD, and OpenBSD are in the wrong place. They all should live in /libexec/rc.d/ because they are code, not configuration.
Err codemadness.org 70 i 1479 This misplacement is something that has bugged me for ages but I never had the energy to open this can of worms back when I was very involved in NetBSD. I suspect it would have been a draining discussion and a very difficult thing to change.

Err codemadness.org 70 i 1480
Err codemadness.org 70 i 1481 Err codemadness.org 70 i 1482
Err codemadness.org 70 i 1483 Err codemadness.org 70 i 1484

FreeBSD 11.3 EOL

Err codemadness.org 70 i 1485 Err codemadness.org 70 i 1486
Err codemadness.org 70 i 1487

As of September 30, 2020, FreeBSD 11.3 will reach end-of-life and will no longer
Err codemadness.org 70 i 1488 be supported by the FreeBSD Security Team. Users of FreeBSD 11.3 are strongly
Err codemadness.org 70 i 1489 encouraged to upgrade to a newer release as soon as possible.

Err codemadness.org 70 i 1490
Err codemadness.org 70 i 1491 Err codemadness.org 70 i 1492
Err codemadness.org 70 i 1493 Err codemadness.org 70 i 1494

OPNsense 20.7.1 Released

Err codemadness.org 70 i 1495 Err codemadness.org 70 i 1496
Err codemadness.org 70 i 1497

Overall, the jump to HardenedBSD 12.1 is looking promising from our end. From the reported issues we still have more logging quirks to investigate and especially Netmap support (used in IPS and Sensei) is lacking in some areas that were previously working. Patches are being worked on already so we shall get there soon enough. Stay tuned.

Err codemadness.org 70 i 1498
Err codemadness.org 70 i 1499 Err codemadness.org 70 i 1500
Err codemadness.org 70 i 1501 Err codemadness.org 70 i 1502

MidnightBSD 1.2.7 out

Err codemadness.org 70 i 1503 Err codemadness.org 70 i 1504
Err codemadness.org 70 i 1505

MidnightBSD 1.2.7 is available via the FTP/HTTP and mirrors as well as github.

Err codemadness.org 70 i 1506 It includes several bug fixes and security updates over the last ISO release and is recommended for new installations.

Err codemadness.org 70 i 1507 Users who don't want to updatee the whole OS, should consider at least updating libmport as there are many package management fixes

Err codemadness.org 70 i 1508
Err codemadness.org 70 i 1509 Err codemadness.org 70 i 1510
Err codemadness.org 70 i 1511 Err codemadness.org 70 i 1512

Beastie Bits

Err codemadness.org 70 i 1513 Err codemadness.org 70 i 1514 Err codemadness.org 70 i 1521 Err codemadness.org 70 i 1522

Tarsnap

Err codemadness.org 70 i 1523 Err codemadness.org 70 i 1524
    Err codemadness.org 70 i 1525
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 1526
Err codemadness.org 70 i 1527 Err codemadness.org 70 i 1528

Feedback/Questions

Err codemadness.org 70 i 1529 Err codemadness.org 70 i 1530 Err codemadness.org 70 i 1537 Err codemadness.org 70 i 1538
]]> Err codemadness.org 70 i 1539
Err codemadness.org 70 i 1540 Err codemadness.org 70 i 1541 High Availability Router/Firewall Using OpenBSD, CARP, pfsync, and ifstated, Building the Development Version of Emacs on NetBSD, rc.d belongs in libexec, not etc, FreeBSD 11.3 EOL, OPNsense 20.7.1 Released, MidnightBSD 1.2.7 out, and more.

Err codemadness.org 70 i 1542 Err codemadness.org 70 i 1543

NOTES
Err codemadness.org 70 i 1544 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 1545 Err codemadness.org 70 i 1546

Headlines

Err codemadness.org 70 i 1547 Err codemadness.org 70 i 1548

High Availability Router/Firewall Using OpenBSD, CARP, pfsync, and ifstated

Err codemadness.org 70 i 1549 Err codemadness.org 70 i 1550
Err codemadness.org 70 i 1551

I have been running OpenBSD on a Soekris net5501 for my router/firewall since early 2012. Because I run a multitude of services on this system (more on that later), the meager 500Mhz AMD Geode + 512MB SDRAM was starting to get a little sluggish while trying to do anything via the terminal. Despite the perceived performance hit during interactive SSH sessions, it still supported a full 100Mbit connection with NAT, so I wasn’t overly eager to change anything. Luckily though, my ISP increased the bandwidth available on my plan tier to 150Mbit+. Unfortunately, the Soekris only contained 4xVIA Rhine Fast Ethernet. So now, I was using a slow system and wasting money by not being able to fully utilize my connection.

Err codemadness.org 70 i 1552
Err codemadness.org 70 i 1553 Err codemadness.org 70 i 1554
Err codemadness.org 70 i 1555 Err codemadness.org 70 i 1556

Building the Development Version of Emacs on NetBSD

Err codemadness.org 70 i 1557 Err codemadness.org 70 i 1558
Err codemadness.org 70 i 1559

I hadn’t really planned on installing a NetBSD VM (after doing all the other two BSDs), but then a NetBSD-related Emacs bug report arrived.

Err codemadness.org 70 i 1560
Err codemadness.org 70 i 1561 Err codemadness.org 70 i 1562
Err codemadness.org 70 i 1563 Err codemadness.org 70 i 1564

News Roundup

Err codemadness.org 70 i 1565 Err codemadness.org 70 i 1566

rc.d belongs in libexec, not etc

Err codemadness.org 70 i 1567 Err codemadness.org 70 i 1568
Err codemadness.org 70 i 1569

Let’s open with the controversy: the scripts that live under /etc/rc.d/ in FreeBSD, NetBSD, and OpenBSD are in the wrong place. They all should live in /libexec/rc.d/ because they are code, not configuration.
Err codemadness.org 70 i 1570 This misplacement is something that has bugged me for ages but I never had the energy to open this can of worms back when I was very involved in NetBSD. I suspect it would have been a draining discussion and a very difficult thing to change.

Err codemadness.org 70 i 1571
Err codemadness.org 70 i 1572 Err codemadness.org 70 i 1573
Err codemadness.org 70 i 1574 Err codemadness.org 70 i 1575

FreeBSD 11.3 EOL

Err codemadness.org 70 i 1576 Err codemadness.org 70 i 1577
Err codemadness.org 70 i 1578

As of September 30, 2020, FreeBSD 11.3 will reach end-of-life and will no longer
Err codemadness.org 70 i 1579 be supported by the FreeBSD Security Team. Users of FreeBSD 11.3 are strongly
Err codemadness.org 70 i 1580 encouraged to upgrade to a newer release as soon as possible.

Err codemadness.org 70 i 1581
Err codemadness.org 70 i 1582 Err codemadness.org 70 i 1583
Err codemadness.org 70 i 1584 Err codemadness.org 70 i 1585

OPNsense 20.7.1 Released

Err codemadness.org 70 i 1586 Err codemadness.org 70 i 1587
Err codemadness.org 70 i 1588

Overall, the jump to HardenedBSD 12.1 is looking promising from our end. From the reported issues we still have more logging quirks to investigate and especially Netmap support (used in IPS and Sensei) is lacking in some areas that were previously working. Patches are being worked on already so we shall get there soon enough. Stay tuned.

Err codemadness.org 70 i 1589
Err codemadness.org 70 i 1590 Err codemadness.org 70 i 1591
Err codemadness.org 70 i 1592 Err codemadness.org 70 i 1593

MidnightBSD 1.2.7 out

Err codemadness.org 70 i 1594 Err codemadness.org 70 i 1595
Err codemadness.org 70 i 1596

MidnightBSD 1.2.7 is available via the FTP/HTTP and mirrors as well as github.

Err codemadness.org 70 i 1597 It includes several bug fixes and security updates over the last ISO release and is recommended for new installations.

Err codemadness.org 70 i 1598 Users who don't want to updatee the whole OS, should consider at least updating libmport as there are many package management fixes

Err codemadness.org 70 i 1599
Err codemadness.org 70 i 1600 Err codemadness.org 70 i 1601
Err codemadness.org 70 i 1602 Err codemadness.org 70 i 1603

Beastie Bits

Err codemadness.org 70 i 1604 Err codemadness.org 70 i 1605 Err codemadness.org 70 i 1612 Err codemadness.org 70 i 1613

Tarsnap

Err codemadness.org 70 i 1614 Err codemadness.org 70 i 1615
    Err codemadness.org 70 i 1616
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 1617
Err codemadness.org 70 i 1618 Err codemadness.org 70 i 1619

Feedback/Questions

Err codemadness.org 70 i 1620 Err codemadness.org 70 i 1621 Err codemadness.org 70 i 1628 Err codemadness.org 70 i 1629
]]> Err codemadness.org 70 i 1630
Err codemadness.org 70 i 1631 https://fireside.fm/player/v2/FYhhasNR+ZB3tUsid Err codemadness.org 70 i 1632 Err codemadness.org 70 i 1633 ]]> Err codemadness.org 70 i 1634 Err codemadness.org 70 i 1635
Err codemadness.org 70 i 1636 Err codemadness.org 70 i 1637 368: Changing OS roles Err codemadness.org 70 i 1638 https://www.bsdnow.tv/368 Err codemadness.org 70 i 1639 4d186dc4-b8ee-4824-bfcc-3bacf18ba5da Err codemadness.org 70 i 1640 Thu, 17 Sep 2020 03:00:00 -0700 Err codemadness.org 70 i 1641 Allan Jude Err codemadness.org 70 i 1642 Err codemadness.org 70 i 1643 full Err codemadness.org 70 i 1644 Allan Jude Err codemadness.org 70 i 1645 Modernizing the OpenBSD Console, OS roles have changed, FreeBSD Cluster with Pacemaker and Corosync, Wine in a 32-bit sandbox on 64-bit NetBSD, Find package which provides a file in OpenBSD, and more. Err codemadness.org 70 i 1646 48:32 Err codemadness.org 70 i 1647 no Err codemadness.org 70 i 1648 Err codemadness.org 70 i 1649 Modernizing the OpenBSD Console, OS roles have changed, FreeBSD Cluster with Pacemaker and Corosync, Wine in a 32-bit sandbox on 64-bit NetBSD, Find package which provides a file in OpenBSD, and more. Err codemadness.org 70 i 1650 NOTES Err codemadness.org 70 i 1651 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 1652 Headlines Err codemadness.org 70 i 1653 Modernizing the OpenBSD Console (https://www.cambus.net/modernizing-the-openbsd-console/) Err codemadness.org 70 i 1654 At the beginning were text mode consoles. Traditionally, *BSD and Linux on i386 and amd64 used text mode consoles which by default provided 25 rows of 80 columns, the "80x25 mode". This mode uses a 8x16 font stored in the VGA BIOS (which can be slightly different across vendors). Err codemadness.org 70 i 1655 OpenBSD uses the wscons(4) console framework, inherited from NetBSD Err codemadness.org 70 i 1656 OS roles have changed (https://rubenerd.com/the-roles-of-oss-have-changed/) Err codemadness.org 70 i 1657 Though I do wonder sometimes, with just a slight tweak to history, how things might have been different. In another dimension somewhere, I’m using the latest BeOS-powered PowerPC laptop, and a shiny new Palm smartphone. Both of these represented the pinnacle of UI design in the 1990s, and still in the 2020s have yet to be surpassed. People call me an Apple fanboy, but I’d drop all of it in a second for that gear. Err codemadness.org 70 i 1658 News Roundup Err codemadness.org 70 i 1659 FreeBSD Cluster with Pacemaker and Corosync (https://vermaden.wordpress.com/2020/09/03/freebsd-cluster-with-pacemaker-and-corosync/) Err codemadness.org 70 i 1660 I always missed ‘proper’ cluster software for FreeBSD systems. Recently I got to run several Pacemaker/Corosync based clusters on Linux systems. I thought how to make similar high availability solutions on FreeBSD and I was really shocked when I figured out that both Pacemaker and Corosync tools are available in the FreeBSD Ports and packages as net/pacemaker2 and net/corosync2 respectively. Err codemadness.org 70 i 1661 Wine in a 32-bit sandbox on 64-bit NetBSD (https://washbear.neocities.org/wine-sandbox.html) Err codemadness.org 70 i 1662 "Mainline pkgsrc" can't do strange multi-arch Wine builds yet, so a 32-bit sandbox seems like a reasonable way to use 32-bit Wine on amd64 without resorting to running real Windows in NVMM. We'll see if this was a viable alternative to re-reviewing the multi-arch support in pkgsrc-wip... Err codemadness.org 70 i 1663 We're using sandboxctl, which is a neat tool for quickly shelling into a different NetBSD userspace. Maybe you also don't trust the Windows applications you're running too much - sandboxctl creates a chroot based on a fresh system image, and chroot on NetBSD is fairly bombproof. Err codemadness.org 70 i 1664 Find package which provides a file in OpenBSD (https://dataswamp.org/~solene/2020-09-04-pkglocate-openbsd.html) Err codemadness.org 70 i 1665 There is one very handy package on OpenBSD named pkglocatedb which provides the command pkglocate. Err codemadness.org 70 i 1666 If you need to find a file or binary/program and you don’t know which package contains it, use pkglocate. Err codemadness.org 70 i 1667 Beastie Bits Err codemadness.org 70 i 1668 OpenBSD for 1.5 Years: Confessions of a Linux Heretic (https://www.youtube.com/watch?v=oTShQIXSdqM) Err codemadness.org 70 i 1669 OpenBSD 6.8 Beta Tagged (https://undeadly.org/cgi?action=article;sid=20200831192811) Err codemadness.org 70 i 1670 Hammer2 and growth (https://www.dragonflydigest.com/2020/09/08/24933.html) Err codemadness.org 70 i 1671 Understanding a FreeBSD kernel vulnerability (https://www.thezdi.com/blog/2020/9/1/cve-2020-7460-freebsd-kernel-privilege-escalation) Err codemadness.org 70 i 1672 *** Err codemadness.org 70 i 1673 Tarsnap Err codemadness.org 70 i 1674 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 1675 Feedback/Questions Err codemadness.org 70 i 1676 Rob - 7 years (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/368/feedback/Bruce%20-%207%20years.md) Err codemadness.org 70 i 1677 Kurt - Microserver (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/368/feedback/Kurt%20-%20Microserver.md) Err codemadness.org 70 i 1678 Rob - Interviews (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/368/feedback/Rob%20-%20Interviews.md) Err codemadness.org 70 i 1679 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 1680 *** Err codemadness.org 70 i 1681 Err codemadness.org 70 i 1682 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, berkeley, software, distribution, zfs, zpool, dataset, interview, console, modernizing, modern, operating system, role, cluster, pacemaker, corosync, wine, 32-bit, 64-bit, sandbox, package manager Err codemadness.org 70 i 1683 Err codemadness.org 70 i 1684 Modernizing the OpenBSD Console, OS roles have changed, FreeBSD Cluster with Pacemaker and Corosync, Wine in a 32-bit sandbox on 64-bit NetBSD, Find package which provides a file in OpenBSD, and more.

Err codemadness.org 70 i 1685 Err codemadness.org 70 i 1686

NOTES
Err codemadness.org 70 i 1687 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 1688 Err codemadness.org 70 i 1689

Headlines

Err codemadness.org 70 i 1690 Err codemadness.org 70 i 1691

Modernizing the OpenBSD Console

Err codemadness.org 70 i 1692 Err codemadness.org 70 i 1693
Err codemadness.org 70 i 1694

At the beginning were text mode consoles. Traditionally, *BSD and Linux on i386 and amd64 used text mode consoles which by default provided 25 rows of 80 columns, the "80x25 mode". This mode uses a 8x16 font stored in the VGA BIOS (which can be slightly different across vendors).
Err codemadness.org 70 i 1695 OpenBSD uses the wscons(4) console framework, inherited from NetBSD

Err codemadness.org 70 i 1696 Err codemadness.org 70 i 1697
Err codemadness.org 70 i 1698
Err codemadness.org 70 i 1699 Err codemadness.org 70 i 1700

OS roles have changed

Err codemadness.org 70 i 1701 Err codemadness.org 70 i 1702
Err codemadness.org 70 i 1703

Though I do wonder sometimes, with just a slight tweak to history, how things might have been different. In another dimension somewhere, I’m using the latest BeOS-powered PowerPC laptop, and a shiny new Palm smartphone. Both of these represented the pinnacle of UI design in the 1990s, and still in the 2020s have yet to be surpassed. People call me an Apple fanboy, but I’d drop all of it in a second for that gear.

Err codemadness.org 70 i 1704 Err codemadness.org 70 i 1705
Err codemadness.org 70 i 1706
Err codemadness.org 70 i 1707 Err codemadness.org 70 i 1708

News Roundup

Err codemadness.org 70 i 1709 Err codemadness.org 70 i 1710

FreeBSD Cluster with Pacemaker and Corosync

Err codemadness.org 70 i 1711 Err codemadness.org 70 i 1712
Err codemadness.org 70 i 1713

I always missed ‘proper’ cluster software for FreeBSD systems. Recently I got to run several Pacemaker/Corosync based clusters on Linux systems. I thought how to make similar high availability solutions on FreeBSD and I was really shocked when I figured out that both Pacemaker and Corosync tools are available in the FreeBSD Ports and packages as net/pacemaker2 and net/corosync2 respectively.

Err codemadness.org 70 i 1714 Err codemadness.org 70 i 1715
Err codemadness.org 70 i 1716
Err codemadness.org 70 i 1717 Err codemadness.org 70 i 1718

Wine in a 32-bit sandbox on 64-bit NetBSD

Err codemadness.org 70 i 1719 Err codemadness.org 70 i 1720
Err codemadness.org 70 i 1721

"Mainline pkgsrc" can't do strange multi-arch Wine builds yet, so a 32-bit sandbox seems like a reasonable way to use 32-bit Wine on amd64 without resorting to running real Windows in NVMM. We'll see if this was a viable alternative to re-reviewing the multi-arch support in pkgsrc-wip...
Err codemadness.org 70 i 1722 We're using sandboxctl, which is a neat tool for quickly shelling into a different NetBSD userspace. Maybe you also don't trust the Windows applications you're running too much - sandboxctl creates a chroot based on a fresh system image, and chroot on NetBSD is fairly bombproof.

Err codemadness.org 70 i 1723 Err codemadness.org 70 i 1724
Err codemadness.org 70 i 1725
Err codemadness.org 70 i 1726 Err codemadness.org 70 i 1727

Find package which provides a file in OpenBSD

Err codemadness.org 70 i 1728 Err codemadness.org 70 i 1729
Err codemadness.org 70 i 1730

There is one very handy package on OpenBSD named pkglocatedb which provides the command pkglocate.
Err codemadness.org 70 i 1731 If you need to find a file or binary/program and you don’t know which package contains it, use pkglocate.

Err codemadness.org 70 i 1732
Err codemadness.org 70 i 1733 Err codemadness.org 70 i 1734
Err codemadness.org 70 i 1735 Err codemadness.org 70 i 1736

Beastie Bits

Err codemadness.org 70 i 1737 Err codemadness.org 70 i 1738 Err codemadness.org 70 i 1745 Err codemadness.org 70 i 1746

Tarsnap

Err codemadness.org 70 i 1747 Err codemadness.org 70 i 1748
    Err codemadness.org 70 i 1749
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 1750
Err codemadness.org 70 i 1751 Err codemadness.org 70 i 1752

Feedback/Questions

Err codemadness.org 70 i 1753 Err codemadness.org 70 i 1754 Err codemadness.org 70 i 1759 Err codemadness.org 70 i 1760
Err codemadness.org 70 i 1761 Err codemadness.org 70 i 1762
    Err codemadness.org 70 i 1763
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 1764 ***
  • Err codemadness.org 70 i 1765
]]> Err codemadness.org 70 i 1766
Err codemadness.org 70 i 1767 Err codemadness.org 70 i 1768 Modernizing the OpenBSD Console, OS roles have changed, FreeBSD Cluster with Pacemaker and Corosync, Wine in a 32-bit sandbox on 64-bit NetBSD, Find package which provides a file in OpenBSD, and more.

Err codemadness.org 70 i 1769 Err codemadness.org 70 i 1770

NOTES
Err codemadness.org 70 i 1771 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 1772 Err codemadness.org 70 i 1773

Headlines

Err codemadness.org 70 i 1774 Err codemadness.org 70 i 1775

Modernizing the OpenBSD Console

Err codemadness.org 70 i 1776 Err codemadness.org 70 i 1777
Err codemadness.org 70 i 1778

At the beginning were text mode consoles. Traditionally, *BSD and Linux on i386 and amd64 used text mode consoles which by default provided 25 rows of 80 columns, the "80x25 mode". This mode uses a 8x16 font stored in the VGA BIOS (which can be slightly different across vendors).
Err codemadness.org 70 i 1779 OpenBSD uses the wscons(4) console framework, inherited from NetBSD

Err codemadness.org 70 i 1780 Err codemadness.org 70 i 1781
Err codemadness.org 70 i 1782
Err codemadness.org 70 i 1783 Err codemadness.org 70 i 1784

OS roles have changed

Err codemadness.org 70 i 1785 Err codemadness.org 70 i 1786
Err codemadness.org 70 i 1787

Though I do wonder sometimes, with just a slight tweak to history, how things might have been different. In another dimension somewhere, I’m using the latest BeOS-powered PowerPC laptop, and a shiny new Palm smartphone. Both of these represented the pinnacle of UI design in the 1990s, and still in the 2020s have yet to be surpassed. People call me an Apple fanboy, but I’d drop all of it in a second for that gear.

Err codemadness.org 70 i 1788 Err codemadness.org 70 i 1789
Err codemadness.org 70 i 1790
Err codemadness.org 70 i 1791 Err codemadness.org 70 i 1792

News Roundup

Err codemadness.org 70 i 1793 Err codemadness.org 70 i 1794

FreeBSD Cluster with Pacemaker and Corosync

Err codemadness.org 70 i 1795 Err codemadness.org 70 i 1796
Err codemadness.org 70 i 1797

I always missed ‘proper’ cluster software for FreeBSD systems. Recently I got to run several Pacemaker/Corosync based clusters on Linux systems. I thought how to make similar high availability solutions on FreeBSD and I was really shocked when I figured out that both Pacemaker and Corosync tools are available in the FreeBSD Ports and packages as net/pacemaker2 and net/corosync2 respectively.

Err codemadness.org 70 i 1798 Err codemadness.org 70 i 1799
Err codemadness.org 70 i 1800
Err codemadness.org 70 i 1801 Err codemadness.org 70 i 1802

Wine in a 32-bit sandbox on 64-bit NetBSD

Err codemadness.org 70 i 1803 Err codemadness.org 70 i 1804
Err codemadness.org 70 i 1805

"Mainline pkgsrc" can't do strange multi-arch Wine builds yet, so a 32-bit sandbox seems like a reasonable way to use 32-bit Wine on amd64 without resorting to running real Windows in NVMM. We'll see if this was a viable alternative to re-reviewing the multi-arch support in pkgsrc-wip...
Err codemadness.org 70 i 1806 We're using sandboxctl, which is a neat tool for quickly shelling into a different NetBSD userspace. Maybe you also don't trust the Windows applications you're running too much - sandboxctl creates a chroot based on a fresh system image, and chroot on NetBSD is fairly bombproof.

Err codemadness.org 70 i 1807 Err codemadness.org 70 i 1808
Err codemadness.org 70 i 1809
Err codemadness.org 70 i 1810 Err codemadness.org 70 i 1811

Find package which provides a file in OpenBSD

Err codemadness.org 70 i 1812 Err codemadness.org 70 i 1813
Err codemadness.org 70 i 1814

There is one very handy package on OpenBSD named pkglocatedb which provides the command pkglocate.
Err codemadness.org 70 i 1815 If you need to find a file or binary/program and you don’t know which package contains it, use pkglocate.

Err codemadness.org 70 i 1816
Err codemadness.org 70 i 1817 Err codemadness.org 70 i 1818
Err codemadness.org 70 i 1819 Err codemadness.org 70 i 1820

Beastie Bits

Err codemadness.org 70 i 1821 Err codemadness.org 70 i 1822 Err codemadness.org 70 i 1829 Err codemadness.org 70 i 1830

Tarsnap

Err codemadness.org 70 i 1831 Err codemadness.org 70 i 1832
    Err codemadness.org 70 i 1833
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 1834
Err codemadness.org 70 i 1835 Err codemadness.org 70 i 1836

Feedback/Questions

Err codemadness.org 70 i 1837 Err codemadness.org 70 i 1838 Err codemadness.org 70 i 1843 Err codemadness.org 70 i 1844
Err codemadness.org 70 i 1845 Err codemadness.org 70 i 1846
    Err codemadness.org 70 i 1847
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 1848 ***
  • Err codemadness.org 70 i 1849
]]> Err codemadness.org 70 i 1850
Err codemadness.org 70 i 1851 https://fireside.fm/player/v2/FYhhasNR+MbyMomIr Err codemadness.org 70 i 1852 Err codemadness.org 70 i 1853 ]]> Err codemadness.org 70 i 1854 Err codemadness.org 70 i 1855
Err codemadness.org 70 i 1856 Err codemadness.org 70 i 1857 367: Changing jail datasets Err codemadness.org 70 i 1858 https://www.bsdnow.tv/367 Err codemadness.org 70 i 1859 056d15d3-4908-4073-955a-88e7700ba566 Err codemadness.org 70 i 1860 Thu, 10 Sep 2020 03:00:00 -0700 Err codemadness.org 70 i 1861 Allan Jude Err codemadness.org 70 i 1862 Err codemadness.org 70 i 1863 full Err codemadness.org 70 i 1864 Allan Jude Err codemadness.org 70 i 1865 A 35 Year Old Bug in Patch, Sandbox for FreeBSD, Changing from one dataset to another within a jail, You don’t need tmux or screen for ZFS, HardenedBSD August 2020 Status Report and Call for Donations, and more. Err codemadness.org 70 i 1866 45:28 Err codemadness.org 70 i 1867 no Err codemadness.org 70 i 1868 Err codemadness.org 70 i 1869 A 35 Year Old Bug in Patch, Sandbox for FreeBSD, Changing from one dataset to another within a jail, You don’t need tmux or screen for ZFS, HardenedBSD August 2020 Status Report and Call for Donations, and more. Err codemadness.org 70 i 1870 NOTES Err codemadness.org 70 i 1871 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 1872 Headlines Err codemadness.org 70 i 1873 A 35 Year Old Bug in Patch (http://bsdimp.blogspot.com/2020/08/a-35-year-old-bug-in-patch-found-in.html) Err codemadness.org 70 i 1874 Larry Wall posted patch 1.3 to mod.sources on May 8, 1985. A number of versions followed over the years. It's been a faithful alley for a long, long time. I've never had a problem with patch until I embarked on the 2.11BSD restoration project. In going over the logs very carefully, I've discovered a bug that bites this effort twice. It's quite interesting to use 27 year old patches to find this bug while restoring a 29 year old OS... Err codemadness.org 70 i 1875 Sandbox for FreeBSD (https://www.relkom.sk/en/fbsd_sandbox.shtml) Err codemadness.org 70 i 1876 A sandbox is a software which artificially limits access to the specific resources on the target according to the assigned policy. The sandbox installs hooks to the kernel syscalls and other sub-systems in order to interrupt the events triggered by the application. From the application point of view, application working as usual, but when it wants to access, for instance, /dev/kmem the sandbox software decides against the assigned sandbox scheme whether to grant or deny access. Err codemadness.org 70 i 1877 In our case, the sandbox is a kernel module which uses MAC (Mandatory Access Control) Framework developed by the TrustedBSD team. All necessary hooks were introduced to the FreeBSD kernel. Err codemadness.org 70 i 1878 Source Code (https://gitlab.com/relkom/sandbox) Err codemadness.org 70 i 1879 Documentation (https://www.relkom.sk/en/fbsd_sandbox_docs.shtml) Err codemadness.org 70 i 1880 News Roundup Err codemadness.org 70 i 1881 Changing from one dataset to another within a jail (https://dan.langille.org/2020/08/16/changing-from-one-dataset-to-another-within-a-freebsd-iocage-jail/) Err codemadness.org 70 i 1882 ZFS has a the ability to share itself within a jail. That gives the jail some autonomy, and I like that. Err codemadness.org 70 i 1883 I’ve written briefly about that, specifically for iocage. More recently, I started using a zfs snapshot for caching clearing. Err codemadness.org 70 i 1884 The purpose of this post is to document the existing configuration of the production FreshPorts webserver and outline the plan on how to modify it for more zfs-snapshot-based cache clearing. Err codemadness.org 70 i 1885 You don’t need tmux or screen for ZFS (https://rubenerd.com/you-dont-need-tmux-or-screen-for-zfs/) Err codemadness.org 70 i 1886 Back in January I mentioned how to add redundancy to a ZFS pool by adding a mirrored drive. Someone with a private account on Twitter asked me why FreeBSD—and NetBSD!—doesn’t ship with a tmux or screen equivilent in base in order to daemonise the process and let them run in the background. Err codemadness.org 70 i 1887 ZFS already does this for its internal commands. Err codemadness.org 70 i 1888 HardenedBSD August 2020 Status Report and Call for Donations (https://hardenedbsd.org/article/shawn-webb/2020-08-15/hardenedbsd-august-2020-status-report-and-call-donations) Err codemadness.org 70 i 1889 This last month has largely been a quiet one. I've restarted work on porting five-year-old work from the Code Pointer Integrity (CPI) project into HardenedBSD. Chiefly, I've started forward-porting the libc and rtld bits from the CPI project and now need to look at llvm compiler/linker enhancements. We need to be able to apply SafeStack to shared objects, not just application binaries. This forward-porting work I'm doing is to support that effort. Err codemadness.org 70 i 1890 The infrastructure has settled and is now churning normally and happily. We're still working out bandwidth issues. We hope to have a new fiber line ran by the end of September. Err codemadness.org 70 i 1891 As part of this status report, I'm issuing a formal call for donations. I'm aiming for $4,000.00 USD for a newer self-hosted Gitea server. I hope to purchase the new server before the end of 2020. Err codemadness.org 70 i 1892 Important parts of Unix's history happened before readline support was common (https://utcc.utoronto.ca/~cks/space/blog/unix/TimeBeforeReadline) Err codemadness.org 70 i 1893 Unix and things that run on Unix have been around for a long time now. In particular, GNU Readline was first released in 1989 (as was Bash), which is long enough ago for it (or lookalikes) to become pretty much pervasive, especially in Unix shells. Today it's easy to think of readline support as something that's always been there. But of course this isn't the case. Unix in its modern form dates from V7 in 1979 and 4.2 BSD in 1983, so a lot of Unix was developed before readline and was to some degree shaped by the lack of it. Err codemadness.org 70 i 1894 Tarsnap Err codemadness.org 70 i 1895 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 1896 Feedback/Questions Err codemadness.org 70 i 1897 Mason - mailserver (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/367/feedback/Mason%20-%20mailserver.md) Err codemadness.org 70 i 1898 casey - freebsd on decline (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/367/feedback/casey%20-%20freebsd%20on%20decline.md) Err codemadness.org 70 i 1899 denis - postgres (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/367/feedback/denis%20-%20postgres.md) Err codemadness.org 70 i 1900 *** Err codemadness.org 70 i 1901 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 1902 *** Err codemadness.org 70 i 1903 Err codemadness.org 70 i 1904 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, berkeley, software, distribution, zfs, interview, patch, bug, bugfix, sandbox, dataset, jail, tmux, screen, status, status report, call for donations, donation Err codemadness.org 70 i 1905 Err codemadness.org 70 i 1906 A 35 Year Old Bug in Patch, Sandbox for FreeBSD, Changing from one dataset to another within a jail, You don’t need tmux or screen for ZFS, HardenedBSD August 2020 Status Report and Call for Donations, and more.

Err codemadness.org 70 i 1907 Err codemadness.org 70 i 1908

NOTES
Err codemadness.org 70 i 1909 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 1910 Err codemadness.org 70 i 1911

Headlines

Err codemadness.org 70 i 1912 Err codemadness.org 70 i 1913

A 35 Year Old Bug in Patch

Err codemadness.org 70 i 1914 Err codemadness.org 70 i 1915
Err codemadness.org 70 i 1916

Larry Wall posted patch 1.3 to mod.sources on May 8, 1985. A number of versions followed over the years. It's been a faithful alley for a long, long time. I've never had a problem with patch until I embarked on the 2.11BSD restoration project. In going over the logs very carefully, I've discovered a bug that bites this effort twice. It's quite interesting to use 27 year old patches to find this bug while restoring a 29 year old OS...

Err codemadness.org 70 i 1917
Err codemadness.org 70 i 1918 Err codemadness.org 70 i 1919
Err codemadness.org 70 i 1920 Err codemadness.org 70 i 1921

Sandbox for FreeBSD

Err codemadness.org 70 i 1922 Err codemadness.org 70 i 1923
Err codemadness.org 70 i 1924

A sandbox is a software which artificially limits access to the specific resources on the target according to the assigned policy. The sandbox installs hooks to the kernel syscalls and other sub-systems in order to interrupt the events triggered by the application. From the application point of view, application working as usual, but when it wants to access, for instance, /dev/kmem the sandbox software decides against the assigned sandbox scheme whether to grant or deny access.
Err codemadness.org 70 i 1925 In our case, the sandbox is a kernel module which uses MAC (Mandatory Access Control) Framework developed by the TrustedBSD team. All necessary hooks were introduced to the FreeBSD kernel.

Err codemadness.org 70 i 1926
Err codemadness.org 70 i 1927 Err codemadness.org 70 i 1928 Err codemadness.org 70 i 1932 Err codemadness.org 70 i 1933
Err codemadness.org 70 i 1934 Err codemadness.org 70 i 1935

News Roundup

Err codemadness.org 70 i 1936 Err codemadness.org 70 i 1937

Changing from one dataset to another within a jail

Err codemadness.org 70 i 1938 Err codemadness.org 70 i 1939
Err codemadness.org 70 i 1940

ZFS has a the ability to share itself within a jail. That gives the jail some autonomy, and I like that.
Err codemadness.org 70 i 1941 I’ve written briefly about that, specifically for iocage. More recently, I started using a zfs snapshot for caching clearing.
Err codemadness.org 70 i 1942 The purpose of this post is to document the existing configuration of the production FreshPorts webserver and outline the plan on how to modify it for more zfs-snapshot-based cache clearing.

Err codemadness.org 70 i 1943
Err codemadness.org 70 i 1944 Err codemadness.org 70 i 1945
Err codemadness.org 70 i 1946 Err codemadness.org 70 i 1947

You don’t need tmux or screen for ZFS

Err codemadness.org 70 i 1948 Err codemadness.org 70 i 1949
Err codemadness.org 70 i 1950

Back in January I mentioned how to add redundancy to a ZFS pool by adding a mirrored drive. Someone with a private account on Twitter asked me why FreeBSD—and NetBSD!—doesn’t ship with a tmux or screen equivilent in base in order to daemonise the process and let them run in the background.
Err codemadness.org 70 i 1951 ZFS already does this for its internal commands.

Err codemadness.org 70 i 1952
Err codemadness.org 70 i 1953 Err codemadness.org 70 i 1954
Err codemadness.org 70 i 1955 Err codemadness.org 70 i 1956

HardenedBSD August 2020 Status Report and Call for Donations

Err codemadness.org 70 i 1957 Err codemadness.org 70 i 1958
Err codemadness.org 70 i 1959

This last month has largely been a quiet one. I've restarted work on porting five-year-old work from the Code Pointer Integrity (CPI) project into HardenedBSD. Chiefly, I've started forward-porting the libc and rtld bits from the CPI project and now need to look at llvm compiler/linker enhancements. We need to be able to apply SafeStack to shared objects, not just application binaries. This forward-porting work I'm doing is to support that effort.
Err codemadness.org 70 i 1960 The infrastructure has settled and is now churning normally and happily. We're still working out bandwidth issues. We hope to have a new fiber line ran by the end of September.
Err codemadness.org 70 i 1961 As part of this status report, I'm issuing a formal call for donations. I'm aiming for $4,000.00 USD for a newer self-hosted Gitea server. I hope to purchase the new server before the end of 2020.

Err codemadness.org 70 i 1962
Err codemadness.org 70 i 1963 Err codemadness.org 70 i 1964
Err codemadness.org 70 i 1965 Err codemadness.org 70 i 1966

Important parts of Unix's history happened before readline support was common

Err codemadness.org 70 i 1967 Err codemadness.org 70 i 1968
Err codemadness.org 70 i 1969

Unix and things that run on Unix have been around for a long time now. In particular, GNU Readline was first released in 1989 (as was Bash), which is long enough ago for it (or lookalikes) to become pretty much pervasive, especially in Unix shells. Today it's easy to think of readline support as something that's always been there. But of course this isn't the case. Unix in its modern form dates from V7 in 1979 and 4.2 BSD in 1983, so a lot of Unix was developed before readline and was to some degree shaped by the lack of it.

Err codemadness.org 70 i 1970
Err codemadness.org 70 i 1971 Err codemadness.org 70 i 1972
Err codemadness.org 70 i 1973 Err codemadness.org 70 i 1974

Tarsnap

Err codemadness.org 70 i 1975 Err codemadness.org 70 i 1976
    Err codemadness.org 70 i 1977
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 1978
Err codemadness.org 70 i 1979 Err codemadness.org 70 i 1980

Feedback/Questions

Err codemadness.org 70 i 1981 Err codemadness.org 70 i 1982
    Err codemadness.org 70 i 1983
  • Mason - mailserver
  • Err codemadness.org 70 i 1984
  • casey - freebsd on decline
  • Err codemadness.org 70 i 1985
  • denis - postgres Err codemadness.org 70 i 1986 ***
  • Err codemadness.org 70 i 1987
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 1988 ***
  • Err codemadness.org 70 i 1989
]]> Err codemadness.org 70 i 1990
Err codemadness.org 70 i 1991 Err codemadness.org 70 i 1992 A 35 Year Old Bug in Patch, Sandbox for FreeBSD, Changing from one dataset to another within a jail, You don’t need tmux or screen for ZFS, HardenedBSD August 2020 Status Report and Call for Donations, and more.

Err codemadness.org 70 i 1993 Err codemadness.org 70 i 1994

NOTES
Err codemadness.org 70 i 1995 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 1996 Err codemadness.org 70 i 1997

Headlines

Err codemadness.org 70 i 1998 Err codemadness.org 70 i 1999

A 35 Year Old Bug in Patch

Err codemadness.org 70 i 2000 Err codemadness.org 70 i 2001
Err codemadness.org 70 i 2002

Larry Wall posted patch 1.3 to mod.sources on May 8, 1985. A number of versions followed over the years. It's been a faithful alley for a long, long time. I've never had a problem with patch until I embarked on the 2.11BSD restoration project. In going over the logs very carefully, I've discovered a bug that bites this effort twice. It's quite interesting to use 27 year old patches to find this bug while restoring a 29 year old OS...

Err codemadness.org 70 i 2003
Err codemadness.org 70 i 2004 Err codemadness.org 70 i 2005
Err codemadness.org 70 i 2006 Err codemadness.org 70 i 2007

Sandbox for FreeBSD

Err codemadness.org 70 i 2008 Err codemadness.org 70 i 2009
Err codemadness.org 70 i 2010

A sandbox is a software which artificially limits access to the specific resources on the target according to the assigned policy. The sandbox installs hooks to the kernel syscalls and other sub-systems in order to interrupt the events triggered by the application. From the application point of view, application working as usual, but when it wants to access, for instance, /dev/kmem the sandbox software decides against the assigned sandbox scheme whether to grant or deny access.
Err codemadness.org 70 i 2011 In our case, the sandbox is a kernel module which uses MAC (Mandatory Access Control) Framework developed by the TrustedBSD team. All necessary hooks were introduced to the FreeBSD kernel.

Err codemadness.org 70 i 2012
Err codemadness.org 70 i 2013 Err codemadness.org 70 i 2014 Err codemadness.org 70 i 2018 Err codemadness.org 70 i 2019
Err codemadness.org 70 i 2020 Err codemadness.org 70 i 2021

News Roundup

Err codemadness.org 70 i 2022 Err codemadness.org 70 i 2023

Changing from one dataset to another within a jail

Err codemadness.org 70 i 2024 Err codemadness.org 70 i 2025
Err codemadness.org 70 i 2026

ZFS has a the ability to share itself within a jail. That gives the jail some autonomy, and I like that.
Err codemadness.org 70 i 2027 I’ve written briefly about that, specifically for iocage. More recently, I started using a zfs snapshot for caching clearing.
Err codemadness.org 70 i 2028 The purpose of this post is to document the existing configuration of the production FreshPorts webserver and outline the plan on how to modify it for more zfs-snapshot-based cache clearing.

Err codemadness.org 70 i 2029
Err codemadness.org 70 i 2030 Err codemadness.org 70 i 2031
Err codemadness.org 70 i 2032 Err codemadness.org 70 i 2033

You don’t need tmux or screen for ZFS

Err codemadness.org 70 i 2034 Err codemadness.org 70 i 2035
Err codemadness.org 70 i 2036

Back in January I mentioned how to add redundancy to a ZFS pool by adding a mirrored drive. Someone with a private account on Twitter asked me why FreeBSD—and NetBSD!—doesn’t ship with a tmux or screen equivilent in base in order to daemonise the process and let them run in the background.
Err codemadness.org 70 i 2037 ZFS already does this for its internal commands.

Err codemadness.org 70 i 2038
Err codemadness.org 70 i 2039 Err codemadness.org 70 i 2040
Err codemadness.org 70 i 2041 Err codemadness.org 70 i 2042

HardenedBSD August 2020 Status Report and Call for Donations

Err codemadness.org 70 i 2043 Err codemadness.org 70 i 2044
Err codemadness.org 70 i 2045

This last month has largely been a quiet one. I've restarted work on porting five-year-old work from the Code Pointer Integrity (CPI) project into HardenedBSD. Chiefly, I've started forward-porting the libc and rtld bits from the CPI project and now need to look at llvm compiler/linker enhancements. We need to be able to apply SafeStack to shared objects, not just application binaries. This forward-porting work I'm doing is to support that effort.
Err codemadness.org 70 i 2046 The infrastructure has settled and is now churning normally and happily. We're still working out bandwidth issues. We hope to have a new fiber line ran by the end of September.
Err codemadness.org 70 i 2047 As part of this status report, I'm issuing a formal call for donations. I'm aiming for $4,000.00 USD for a newer self-hosted Gitea server. I hope to purchase the new server before the end of 2020.

Err codemadness.org 70 i 2048
Err codemadness.org 70 i 2049 Err codemadness.org 70 i 2050
Err codemadness.org 70 i 2051 Err codemadness.org 70 i 2052

Important parts of Unix's history happened before readline support was common

Err codemadness.org 70 i 2053 Err codemadness.org 70 i 2054
Err codemadness.org 70 i 2055

Unix and things that run on Unix have been around for a long time now. In particular, GNU Readline was first released in 1989 (as was Bash), which is long enough ago for it (or lookalikes) to become pretty much pervasive, especially in Unix shells. Today it's easy to think of readline support as something that's always been there. But of course this isn't the case. Unix in its modern form dates from V7 in 1979 and 4.2 BSD in 1983, so a lot of Unix was developed before readline and was to some degree shaped by the lack of it.

Err codemadness.org 70 i 2056
Err codemadness.org 70 i 2057 Err codemadness.org 70 i 2058
Err codemadness.org 70 i 2059 Err codemadness.org 70 i 2060

Tarsnap

Err codemadness.org 70 i 2061 Err codemadness.org 70 i 2062
    Err codemadness.org 70 i 2063
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 2064
Err codemadness.org 70 i 2065 Err codemadness.org 70 i 2066

Feedback/Questions

Err codemadness.org 70 i 2067 Err codemadness.org 70 i 2068
    Err codemadness.org 70 i 2069
  • Mason - mailserver
  • Err codemadness.org 70 i 2070
  • casey - freebsd on decline
  • Err codemadness.org 70 i 2071
  • denis - postgres Err codemadness.org 70 i 2072 ***
  • Err codemadness.org 70 i 2073
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 2074 ***
  • Err codemadness.org 70 i 2075
]]> Err codemadness.org 70 i 2076
Err codemadness.org 70 i 2077 https://fireside.fm/player/v2/FYhhasNR+3cJUa1-D Err codemadness.org 70 i 2078 Err codemadness.org 70 i 2079 ]]> Err codemadness.org 70 i 2080 Err codemadness.org 70 i 2081
Err codemadness.org 70 i 2082 Err codemadness.org 70 i 2083 366: Bootloader zpool checkpoints Err codemadness.org 70 i 2084 https://www.bsdnow.tv/366 Err codemadness.org 70 i 2085 ac66cef0-02a8-44b9-b915-813b8e26c643 Err codemadness.org 70 i 2086 Thu, 03 Sep 2020 03:00:00 -0700 Err codemadness.org 70 i 2087 Allan Jude Err codemadness.org 70 i 2088 Err codemadness.org 70 i 2089 full Err codemadness.org 70 i 2090 Allan Jude Err codemadness.org 70 i 2091 OpenZFS with ZSTD lands in FreeBSD 13, LibreSSL doc status update, FreeBSD on SPARC64 (is dead), Bringing zpool checkpoints to a FreeBSD bootloader, and more Err codemadness.org 70 i 2092 53:02 Err codemadness.org 70 i 2093 no Err codemadness.org 70 i 2094 Err codemadness.org 70 i 2095 OpenZFS with ZSTD lands in FreeBSD 13, LibreSSL doc status update, FreeBSD on SPARC64 (is dead), Bringing zpool checkpoints to a FreeBSD bootloader, and more Err codemadness.org 70 i 2096 NOTES Err codemadness.org 70 i 2097 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 2098 Headlines Err codemadness.org 70 i 2099 OpenZFS with ZSTD land in FreeBSD 13 (https://svnweb.freebsd.org/base?view=revision&revision=364746) Err codemadness.org 70 i 2100 ZStandard Compression for OpenZFS (https://github.com/openzfs/zfs/commit/10b3c7f5e424f54b3ba82dbf1600d866e64ec0a0) Err codemadness.org 70 i 2101 > The primary benefit is maintaining a completely shared code base with the community allowing FreeBSD to receive new features sooner and with less effort. Err codemadness.org 70 i 2102 > I would advise against doing 'zpool upgrade' or creating indispensable pools using new features until this change has had a month+ to soak. Err codemadness.org 70 i 2103 Rebasing FreeBSD’s OpenZFS on the new upstream was sponsored by iXsystems Err codemadness.org 70 i 2104 The competition of ZSTD support for OpenZFS was sponsored by the FreeBSD Foundation Err codemadness.org 70 i 2105 *** Err codemadness.org 70 i 2106 LibreSSL documentation status update (https://undeadly.org/cgi?action=article;sid=20200817063735) Err codemadness.org 70 i 2107 More than six years ago, LibreSSL was forked from OpenSSL, and almost two years ago, i explained the status of LibreSSL documentation during EuroBSDCon 2018 in Bucuresti. So it seems providing an update might be in order. Err codemadness.org 70 i 2108 Note that this is not an update regarding LibreSSL status in general because i'm not the right person to talk about the big picture of working on the LibreSSL code, my work has been quite focussed on documentation. All the same, it is fair to say that even though the number of developers working on it is somewhat limited, the LibreSSL project is quite alive, typically having a release every few months. Progress continues being made with respect to porting and adding new functionality (for example regarding TLSv1.3, CMS, RSA-PSS, RSA-OAEP, GOST, SM3, SM4, XChaCha20 during the last two years), OpenSSL compatibility improvements (including providing additional OpenSSL-1.1 APIs), and lots of bug fixes and code cleanup. Err codemadness.org 70 i 2109 FreeBSD on SPARC64 (is dead) (https://eerielinux.wordpress.com/2020/02/15/freebsd-on-sparc64-is-dead/) Err codemadness.org 70 i 2110 ’m coming pretty late to the party, because SPARC64 support in FreeBSD is apparently doomed: After the POWER platform made the switch to a LLVM/Clang-based toolchain, SPARC64 is one of the last ones that still uses the ancient GCC 4.2-based toolchain that the project wants to finally get rid off (it has already happened as I was writing this – looks like the firm plan was not so firm after all, since they killed it off early). And compared to the other platforms it has seen not too much love in recent times… SPARC64 being a great platform, I’d be quite sad to see it go. But before that happens let’s see what the current status is and what would need to be done if it were to survive, shall we? Err codemadness.org 70 i 2111 News Roundup Err codemadness.org 70 i 2112 Bringing zpool checkpoints to a FreeBSD bootloader (https://www.oshogbo.vexillium.org/blog/79/) Err codemadness.org 70 i 2113 Almost two years ago I wrote a blog post about checkpoints in ZFS. I didn’t hide that I was a big fan of them. That said, after those two years, I still feel that there are underappreciated features in the ZFS world, so I decided to do something about that. Err codemadness.org 70 i 2114 Currently, one of the best practices for upgrading your operating system is to use boot environments. They are a great feature for managing multiple kernels and userlands. They are based on juggling which ZFS datasets are mounted. Each dataset has its own version of the system. Unfortunately, boot environments have their limitations. If we, for example, upgrade our ZFS pool, we may not be able to use older versions of the system anymore. Err codemadness.org 70 i 2115 The big advantage of boot environments is that they have very good tools. Two main tools are beadm (which was created by vermaden) and bectl (which currently is in the FreeBSD base system). These tools allow us to create and manage boot environments. Err codemadness.org 70 i 2116 Beastie Bits Err codemadness.org 70 i 2117 The First Unix Port (https://documents.uow.edu.au/content/groups/public/@web/@inf/@scsse/documents/doc/uow103747.pdf) Err codemadness.org 70 i 2118 TLS Mastery updates, August 2020 (https://mwl.io/archives/7346) Err codemadness.org 70 i 2119 What is the Oldest BSD Distribution still around today (https://www.youtube.com/watch?v=ww60o940kEk) Err codemadness.org 70 i 2120 Tarsnap Err codemadness.org 70 i 2121 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 2122 Feedback/Questions Err codemadness.org 70 i 2123 ben - zfs send questions (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/366/feedback/ben%20-%20zfs%20send%20questions.md) Err codemadness.org 70 i 2124 lars - zfs pool question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/366/feedback/lars%20-%20zfs%20pool%20question.md) Err codemadness.org 70 i 2125 neutron - bectl vs beadm (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/366/feedback/neutron%20-%20bectl%20vs%20beadm.md) Err codemadness.org 70 i 2126 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 2127 Err codemadness.org 70 i 2128 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, berkeley, software, distribution, zfs, interview, libressl, ssl, documentation, doc, status, status update, sparc64, zpool, checkpoint, bootloader Err codemadness.org 70 i 2129 Err codemadness.org 70 i 2130 OpenZFS with ZSTD lands in FreeBSD 13, LibreSSL doc status update, FreeBSD on SPARC64 (is dead), Bringing zpool checkpoints to a FreeBSD bootloader, and more

Err codemadness.org 70 i 2131 Err codemadness.org 70 i 2132

NOTES
Err codemadness.org 70 i 2133 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 2134 Err codemadness.org 70 i 2135

Headlines

Err codemadness.org 70 i 2136 Err codemadness.org 70 i 2137

OpenZFS with ZSTD land in FreeBSD 13

Err codemadness.org 70 i 2138 Err codemadness.org 70 i 2139
    Err codemadness.org 70 i 2140
  • ZStandard Compression for OpenZFS Err codemadness.org 70 i 2141 > The primary benefit is maintaining a completely shared code base with the community allowing FreeBSD to receive new features sooner and with less effort. Err codemadness.org 70 i 2142 > I would advise against doing 'zpool upgrade' or creating indispensable pools using new features until this change has had a month+ to soak.
  • Err codemadness.org 70 i 2143
  • Rebasing FreeBSD’s OpenZFS on the new upstream was sponsored by iXsystems
  • Err codemadness.org 70 i 2144
  • The competition of ZSTD support for OpenZFS was sponsored by the FreeBSD Foundation Err codemadness.org 70 i 2145 ***
  • Err codemadness.org 70 i 2146
Err codemadness.org 70 i 2147 Err codemadness.org 70 i 2148

LibreSSL documentation status update

Err codemadness.org 70 i 2149 Err codemadness.org 70 i 2150
Err codemadness.org 70 i 2151

More than six years ago, LibreSSL was forked from OpenSSL, and almost two years ago, i explained the status of LibreSSL documentation during EuroBSDCon 2018 in Bucuresti. So it seems providing an update might be in order.
Err codemadness.org 70 i 2152 Note that this is not an update regarding LibreSSL status in general because i'm not the right person to talk about the big picture of working on the LibreSSL code, my work has been quite focussed on documentation. All the same, it is fair to say that even though the number of developers working on it is somewhat limited, the LibreSSL project is quite alive, typically having a release every few months. Progress continues being made with respect to porting and adding new functionality (for example regarding TLSv1.3, CMS, RSA-PSS, RSA-OAEP, GOST, SM3, SM4, XChaCha20 during the last two years), OpenSSL compatibility improvements (including providing additional OpenSSL-1.1 APIs), and lots of bug fixes and code cleanup.

Err codemadness.org 70 i 2153
Err codemadness.org 70 i 2154 Err codemadness.org 70 i 2155
Err codemadness.org 70 i 2156 Err codemadness.org 70 i 2157

FreeBSD on SPARC64 (is dead)

Err codemadness.org 70 i 2158 Err codemadness.org 70 i 2159
Err codemadness.org 70 i 2160

’m coming pretty late to the party, because SPARC64 support in FreeBSD is apparently doomed: After the POWER platform made the switch to a LLVM/Clang-based toolchain, SPARC64 is one of the last ones that still uses the ancient GCC 4.2-based toolchain that the project wants to finally get rid off (it has already happened as I was writing this – looks like the firm plan was not so firm after all, since they killed it off early). And compared to the other platforms it has seen not too much love in recent times… SPARC64 being a great platform, I’d be quite sad to see it go. But before that happens let’s see what the current status is and what would need to be done if it were to survive, shall we?

Err codemadness.org 70 i 2161
Err codemadness.org 70 i 2162 Err codemadness.org 70 i 2163
Err codemadness.org 70 i 2164 Err codemadness.org 70 i 2165

News Roundup

Err codemadness.org 70 i 2166 Err codemadness.org 70 i 2167

Bringing zpool checkpoints to a FreeBSD bootloader

Err codemadness.org 70 i 2168 Err codemadness.org 70 i 2169
Err codemadness.org 70 i 2170

Almost two years ago I wrote a blog post about checkpoints in ZFS. I didn’t hide that I was a big fan of them. That said, after those two years, I still feel that there are underappreciated features in the ZFS world, so I decided to do something about that.
Err codemadness.org 70 i 2171 Currently, one of the best practices for upgrading your operating system is to use boot environments. They are a great feature for managing multiple kernels and userlands. They are based on juggling which ZFS datasets are mounted. Each dataset has its own version of the system. Unfortunately, boot environments have their limitations. If we, for example, upgrade our ZFS pool, we may not be able to use older versions of the system anymore.
Err codemadness.org 70 i 2172 The big advantage of boot environments is that they have very good tools. Two main tools are beadm (which was created by vermaden) and bectl (which currently is in the FreeBSD base system). These tools allow us to create and manage boot environments.

Err codemadness.org 70 i 2173
Err codemadness.org 70 i 2174 Err codemadness.org 70 i 2175
Err codemadness.org 70 i 2176 Err codemadness.org 70 i 2177

Beastie Bits

Err codemadness.org 70 i 2178 Err codemadness.org 70 i 2179 Err codemadness.org 70 i 2184 Err codemadness.org 70 i 2185
Err codemadness.org 70 i 2186 Err codemadness.org 70 i 2187

Tarsnap

Err codemadness.org 70 i 2188 Err codemadness.org 70 i 2189
    Err codemadness.org 70 i 2190
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 2191
Err codemadness.org 70 i 2192 Err codemadness.org 70 i 2193

Feedback/Questions

Err codemadness.org 70 i 2194 Err codemadness.org 70 i 2195 Err codemadness.org 70 i 2200 Err codemadness.org 70 i 2201
Err codemadness.org 70 i 2202 Err codemadness.org 70 i 2203
    Err codemadness.org 70 i 2204
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 2205
Err codemadness.org 70 i 2206 Err codemadness.org 70 i 2207
]]> Err codemadness.org 70 i 2208
Err codemadness.org 70 i 2209 Err codemadness.org 70 i 2210 OpenZFS with ZSTD lands in FreeBSD 13, LibreSSL doc status update, FreeBSD on SPARC64 (is dead), Bringing zpool checkpoints to a FreeBSD bootloader, and more

Err codemadness.org 70 i 2211 Err codemadness.org 70 i 2212

NOTES
Err codemadness.org 70 i 2213 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 2214 Err codemadness.org 70 i 2215

Headlines

Err codemadness.org 70 i 2216 Err codemadness.org 70 i 2217

OpenZFS with ZSTD land in FreeBSD 13

Err codemadness.org 70 i 2218 Err codemadness.org 70 i 2219
    Err codemadness.org 70 i 2220
  • ZStandard Compression for OpenZFS Err codemadness.org 70 i 2221 > The primary benefit is maintaining a completely shared code base with the community allowing FreeBSD to receive new features sooner and with less effort. Err codemadness.org 70 i 2222 > I would advise against doing 'zpool upgrade' or creating indispensable pools using new features until this change has had a month+ to soak.
  • Err codemadness.org 70 i 2223
  • Rebasing FreeBSD’s OpenZFS on the new upstream was sponsored by iXsystems
  • Err codemadness.org 70 i 2224
  • The competition of ZSTD support for OpenZFS was sponsored by the FreeBSD Foundation Err codemadness.org 70 i 2225 ***
  • Err codemadness.org 70 i 2226
Err codemadness.org 70 i 2227 Err codemadness.org 70 i 2228

LibreSSL documentation status update

Err codemadness.org 70 i 2229 Err codemadness.org 70 i 2230
Err codemadness.org 70 i 2231

More than six years ago, LibreSSL was forked from OpenSSL, and almost two years ago, i explained the status of LibreSSL documentation during EuroBSDCon 2018 in Bucuresti. So it seems providing an update might be in order.
Err codemadness.org 70 i 2232 Note that this is not an update regarding LibreSSL status in general because i'm not the right person to talk about the big picture of working on the LibreSSL code, my work has been quite focussed on documentation. All the same, it is fair to say that even though the number of developers working on it is somewhat limited, the LibreSSL project is quite alive, typically having a release every few months. Progress continues being made with respect to porting and adding new functionality (for example regarding TLSv1.3, CMS, RSA-PSS, RSA-OAEP, GOST, SM3, SM4, XChaCha20 during the last two years), OpenSSL compatibility improvements (including providing additional OpenSSL-1.1 APIs), and lots of bug fixes and code cleanup.

Err codemadness.org 70 i 2233
Err codemadness.org 70 i 2234 Err codemadness.org 70 i 2235
Err codemadness.org 70 i 2236 Err codemadness.org 70 i 2237

FreeBSD on SPARC64 (is dead)

Err codemadness.org 70 i 2238 Err codemadness.org 70 i 2239
Err codemadness.org 70 i 2240

’m coming pretty late to the party, because SPARC64 support in FreeBSD is apparently doomed: After the POWER platform made the switch to a LLVM/Clang-based toolchain, SPARC64 is one of the last ones that still uses the ancient GCC 4.2-based toolchain that the project wants to finally get rid off (it has already happened as I was writing this – looks like the firm plan was not so firm after all, since they killed it off early). And compared to the other platforms it has seen not too much love in recent times… SPARC64 being a great platform, I’d be quite sad to see it go. But before that happens let’s see what the current status is and what would need to be done if it were to survive, shall we?

Err codemadness.org 70 i 2241
Err codemadness.org 70 i 2242 Err codemadness.org 70 i 2243
Err codemadness.org 70 i 2244 Err codemadness.org 70 i 2245

News Roundup

Err codemadness.org 70 i 2246 Err codemadness.org 70 i 2247

Bringing zpool checkpoints to a FreeBSD bootloader

Err codemadness.org 70 i 2248 Err codemadness.org 70 i 2249
Err codemadness.org 70 i 2250

Almost two years ago I wrote a blog post about checkpoints in ZFS. I didn’t hide that I was a big fan of them. That said, after those two years, I still feel that there are underappreciated features in the ZFS world, so I decided to do something about that.
Err codemadness.org 70 i 2251 Currently, one of the best practices for upgrading your operating system is to use boot environments. They are a great feature for managing multiple kernels and userlands. They are based on juggling which ZFS datasets are mounted. Each dataset has its own version of the system. Unfortunately, boot environments have their limitations. If we, for example, upgrade our ZFS pool, we may not be able to use older versions of the system anymore.
Err codemadness.org 70 i 2252 The big advantage of boot environments is that they have very good tools. Two main tools are beadm (which was created by vermaden) and bectl (which currently is in the FreeBSD base system). These tools allow us to create and manage boot environments.

Err codemadness.org 70 i 2253
Err codemadness.org 70 i 2254 Err codemadness.org 70 i 2255
Err codemadness.org 70 i 2256 Err codemadness.org 70 i 2257

Beastie Bits

Err codemadness.org 70 i 2258 Err codemadness.org 70 i 2259 Err codemadness.org 70 i 2264 Err codemadness.org 70 i 2265
Err codemadness.org 70 i 2266 Err codemadness.org 70 i 2267

Tarsnap

Err codemadness.org 70 i 2268 Err codemadness.org 70 i 2269
    Err codemadness.org 70 i 2270
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 2271
Err codemadness.org 70 i 2272 Err codemadness.org 70 i 2273

Feedback/Questions

Err codemadness.org 70 i 2274 Err codemadness.org 70 i 2275 Err codemadness.org 70 i 2280 Err codemadness.org 70 i 2281
Err codemadness.org 70 i 2282 Err codemadness.org 70 i 2283
    Err codemadness.org 70 i 2284
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 2285
Err codemadness.org 70 i 2286 Err codemadness.org 70 i 2287
]]> Err codemadness.org 70 i 2288
Err codemadness.org 70 i 2289 https://fireside.fm/player/v2/FYhhasNR+aus-j6B3 Err codemadness.org 70 i 2290 Err codemadness.org 70 i 2291 ]]> Err codemadness.org 70 i 2292 Err codemadness.org 70 i 2293
Err codemadness.org 70 i 2294 Err codemadness.org 70 i 2295 365: Whole year round Err codemadness.org 70 i 2296 https://www.bsdnow.tv/365 Err codemadness.org 70 i 2297 818d1dc0-da99-423a-a552-4ac52474c66c Err codemadness.org 70 i 2298 Thu, 27 Aug 2020 04:00:00 -0700 Err codemadness.org 70 i 2299 Allan Jude Err codemadness.org 70 i 2300 Err codemadness.org 70 i 2301 full Err codemadness.org 70 i 2302 Allan Jude Err codemadness.org 70 i 2303 FreeBSD USB Audio, Kyua: An introduction for NetBSD users, Keeping backup ZFS on Linux kernel modules around, CLI Tools 235x Faster than Hadoop, FreeBSD Laptop Battery Life Status Command, and more. Err codemadness.org 70 i 2304 46:54 Err codemadness.org 70 i 2305 no Err codemadness.org 70 i 2306 Err codemadness.org 70 i 2307 FreeBSD USB Audio, Kyua: An introduction for NetBSD users, Keeping backup ZFS on Linux kernel modules around, CLI Tools 235x Faster than Hadoop, FreeBSD Laptop Battery Life Status Command, and more. Err codemadness.org 70 i 2308 NOTES Err codemadness.org 70 i 2309 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 2310 Headlines Err codemadness.org 70 i 2311 FreeBSD USB Audio (https://www.davidschlachter.com/misc/freebsd-usb-audio) Err codemadness.org 70 i 2312 I recently got a Behringer UMC22 sound card for video conferencing and DJing. This page documents what I’ve learned about using this sound card, and USB audio in general, on FreeBSD. Err codemadness.org 70 i 2313 tl;dr: Everything works as long as the sound card follows the USB audio device class specification. Err codemadness.org 70 i 2314 Kyua: An introduction for NetBSD users (https://wiki.netbsd.org/kyua/) Err codemadness.org 70 i 2315 Kyua's current goal is to reimplement only the ATF tools while maintaining backwards compatibility with the tests written with the ATF libraries (i.e. with the NetBSD test suite). Err codemadness.org 70 i 2316 Because Kyua is a replacement of some ATF components, the end goal is to integrate Kyua into the NetBSD base system (just as ATF is) and remove the deprecated ATF components. Removing the deprecated components will allow us to make the above-mentioned improvements to Kyua, as well as many others, without having to deal with the obsolete ATF code base. Discussing how and when this transition might happen is out of the scope of this document at the moment. Err codemadness.org 70 i 2317 News Roundup Err codemadness.org 70 i 2318 Keeping backup ZFS on Linux kernel modules around (https://utcc.utoronto.ca/~cks/space/blog/linux/ZFSOnLinuxModuleBackups) Err codemadness.org 70 i 2319 I'm a long term user of ZFS on Linux and over pretty much all of the time I've used it, I've built it from the latest development version. Generally this means I update my ZoL build at the same time as I update my Fedora kernel, since a ZoL update requires a kernel reboot anyway. This is a little bit daring, of course, although the ZoL development version has generally been quite solid (and this way I get the latest features and improvements long before I otherwise would). Err codemadness.org 70 i 2320 Command-line Tools can be 235x Faster than your Hadoop Cluster (https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html) Err codemadness.org 70 i 2321 As I was browsing the web and catching up on some sites I visit periodically, I found a cool article from Tom Hayden about using Amazon Elastic Map Reduce (EMR) and mrjob in order to compute some statistics on win/loss ratios for chess games he downloaded from the millionbase archive, and generally have fun with EMR. Since the data volume was only about 1.75GB containing around 2 million chess games, I was skeptical of using Hadoop for the task, but I can understand his goal of learning and having fun with mrjob and EMR. Since the problem is basically just to look at the result lines of each file and aggregate the different results, it seems ideally suited to stream processing with shell commands. I tried this out, and for the same amount of data I was able to use my laptop to get the results in about 12 seconds (processing speed of about 270MB/sec), while the Hadoop processing took about 26 minutes (processing speed of about 1.14MB/sec). Err codemadness.org 70 i 2322 FreeBSD Laptop Find Out Battery Life Status Command (https://www.cyberciti.biz/faq/freebsd-finding-out-battery-life-state-on-laptop/) Err codemadness.org 70 i 2323 I know how to find out battery life status using Linux operating system. How do I monitor battery status on a laptop running FreeBSD version 9.x/10.x/11.x/12.x? Err codemadness.org 70 i 2324 You can use any one of the following commands to get battery status under FreeBSD laptop including remaining battery life and more. Err codemadness.org 70 i 2325 Beastie Bits Err codemadness.org 70 i 2326 BSD Beer (https://i.redd.it/hlh8luidzgg51.jpg) Err codemadness.org 70 i 2327 Awk for JSON (https://github.com/mohd-akram/jawk) Err codemadness.org 70 i 2328 Drawing Pictures The Unix Way - with pic and troff (https://youtu.be/oG2A_1vC6aM) Err codemadness.org 70 i 2329 Refactoring the FreeBSD Kernel with Checked C (https://www.cs.rochester.edu/u/jzhou41/papers/freebsd_checkedc.pdf) Err codemadness.org 70 i 2330 Tarsnap Err codemadness.org 70 i 2331 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 2332 Feedback/Questions Err codemadness.org 70 i 2333 Jason - German Locales (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/365/jason%20-%20german%20locale.md) Err codemadness.org 70 i 2334 pcwizz - Router Style Device (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/365/pcwizz%20-%20router%20style%20device.md) Err codemadness.org 70 i 2335 predrag - OpenBSD Router Hardware (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/365/predrag%20-%20openbsd%20router%20hardware.md) Err codemadness.org 70 i 2336 *** Err codemadness.org 70 i 2337 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 2338 *** Err codemadness.org 70 i 2339 Err codemadness.org 70 i 2340 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, berkeley, software, distribution, zfs, interview, USB, audio, kyua, testing, test framework, backup, ZFS, kernel, kernel module, command line, CLI, hadoop, laptop, battery, battery life, status, status command Err codemadness.org 70 i 2341 Err codemadness.org 70 i 2342 FreeBSD USB Audio, Kyua: An introduction for NetBSD users, Keeping backup ZFS on Linux kernel modules around, CLI Tools 235x Faster than Hadoop, FreeBSD Laptop Battery Life Status Command, and more.

Err codemadness.org 70 i 2343 Err codemadness.org 70 i 2344

NOTES
Err codemadness.org 70 i 2345 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 2346 Err codemadness.org 70 i 2347

Headlines

Err codemadness.org 70 i 2348 Err codemadness.org 70 i 2349

FreeBSD USB Audio

Err codemadness.org 70 i 2350 Err codemadness.org 70 i 2351
Err codemadness.org 70 i 2352

I recently got a Behringer UMC22 sound card for video conferencing and DJing. This page documents what I’ve learned about using this sound card, and USB audio in general, on FreeBSD.
Err codemadness.org 70 i 2353 tl;dr: Everything works as long as the sound card follows the USB audio device class specification.

Err codemadness.org 70 i 2354 Err codemadness.org 70 i 2355
Err codemadness.org 70 i 2356 Err codemadness.org 70 i 2357

Kyua: An introduction for NetBSD users

Err codemadness.org 70 i 2358 Err codemadness.org 70 i 2359

Kyua's current goal is to reimplement only the ATF tools while maintaining backwards compatibility with the tests written with the ATF libraries (i.e. with the NetBSD test suite).
Err codemadness.org 70 i 2360 Because Kyua is a replacement of some ATF components, the end goal is to integrate Kyua into the NetBSD base system (just as ATF is) and remove the deprecated ATF components. Removing the deprecated components will allow us to make the above-mentioned improvements to Kyua, as well as many others, without having to deal with the obsolete ATF code base. Discussing how and when this transition might happen is out of the scope of this document at the moment.

Err codemadness.org 70 i 2361 Err codemadness.org 70 i 2362
Err codemadness.org 70 i 2363
Err codemadness.org 70 i 2364 Err codemadness.org 70 i 2365

News Roundup

Err codemadness.org 70 i 2366 Err codemadness.org 70 i 2367

Keeping backup ZFS on Linux kernel modules around

Err codemadness.org 70 i 2368 Err codemadness.org 70 i 2369
Err codemadness.org 70 i 2370

I'm a long term user of ZFS on Linux and over pretty much all of the time I've used it, I've built it from the latest development version. Generally this means I update my ZoL build at the same time as I update my Fedora kernel, since a ZoL update requires a kernel reboot anyway. This is a little bit daring, of course, although the ZoL development version has generally been quite solid (and this way I get the latest features and improvements long before I otherwise would).

Err codemadness.org 70 i 2371 Err codemadness.org 70 i 2372
Err codemadness.org 70 i 2373
Err codemadness.org 70 i 2374 Err codemadness.org 70 i 2375

Command-line Tools can be 235x Faster than your Hadoop Cluster

Err codemadness.org 70 i 2376 Err codemadness.org 70 i 2377
Err codemadness.org 70 i 2378

As I was browsing the web and catching up on some sites I visit periodically, I found a cool article from Tom Hayden about using Amazon Elastic Map Reduce (EMR) and mrjob in order to compute some statistics on win/loss ratios for chess games he downloaded from the millionbase archive, and generally have fun with EMR. Since the data volume was only about 1.75GB containing around 2 million chess games, I was skeptical of using Hadoop for the task, but I can understand his goal of learning and having fun with mrjob and EMR. Since the problem is basically just to look at the result lines of each file and aggregate the different results, it seems ideally suited to stream processing with shell commands. I tried this out, and for the same amount of data I was able to use my laptop to get the results in about 12 seconds (processing speed of about 270MB/sec), while the Hadoop processing took about 26 minutes (processing speed of about 1.14MB/sec).

Err codemadness.org 70 i 2379
Err codemadness.org 70 i 2380 Err codemadness.org 70 i 2381
Err codemadness.org 70 i 2382 Err codemadness.org 70 i 2383

FreeBSD Laptop Find Out Battery Life Status Command

Err codemadness.org 70 i 2384 Err codemadness.org 70 i 2385
Err codemadness.org 70 i 2386

I know how to find out battery life status using Linux operating system. How do I monitor battery status on a laptop running FreeBSD version 9.x/10.x/11.x/12.x?
Err codemadness.org 70 i 2387 You can use any one of the following commands to get battery status under FreeBSD laptop including remaining battery life and more.

Err codemadness.org 70 i 2388 Err codemadness.org 70 i 2389
Err codemadness.org 70 i 2390
Err codemadness.org 70 i 2391 Err codemadness.org 70 i 2392

Beastie Bits

Err codemadness.org 70 i 2393 Err codemadness.org 70 i 2394

BSD Beer
Err codemadness.org 70 i 2395 Awk for JSON
Err codemadness.org 70 i 2396 Drawing Pictures The Unix Way - with pic and troff
Err codemadness.org 70 i 2397 Refactoring the FreeBSD Kernel with Checked C

Err codemadness.org 70 i 2398 Err codemadness.org 70 i 2399
Err codemadness.org 70 i 2400 Err codemadness.org 70 i 2401

Tarsnap

Err codemadness.org 70 i 2402 Err codemadness.org 70 i 2403
    Err codemadness.org 70 i 2404
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 2405
Err codemadness.org 70 i 2406 Err codemadness.org 70 i 2407

Feedback/Questions

Err codemadness.org 70 i 2408 Err codemadness.org 70 i 2409 ]]> Err codemadness.org 70 i 2417
Err codemadness.org 70 i 2418 Err codemadness.org 70 i 2419 FreeBSD USB Audio, Kyua: An introduction for NetBSD users, Keeping backup ZFS on Linux kernel modules around, CLI Tools 235x Faster than Hadoop, FreeBSD Laptop Battery Life Status Command, and more.

Err codemadness.org 70 i 2420 Err codemadness.org 70 i 2421

NOTES
Err codemadness.org 70 i 2422 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 2423 Err codemadness.org 70 i 2424

Headlines

Err codemadness.org 70 i 2425 Err codemadness.org 70 i 2426

FreeBSD USB Audio

Err codemadness.org 70 i 2427 Err codemadness.org 70 i 2428
Err codemadness.org 70 i 2429

I recently got a Behringer UMC22 sound card for video conferencing and DJing. This page documents what I’ve learned about using this sound card, and USB audio in general, on FreeBSD.
Err codemadness.org 70 i 2430 tl;dr: Everything works as long as the sound card follows the USB audio device class specification.

Err codemadness.org 70 i 2431 Err codemadness.org 70 i 2432
Err codemadness.org 70 i 2433 Err codemadness.org 70 i 2434

Kyua: An introduction for NetBSD users

Err codemadness.org 70 i 2435 Err codemadness.org 70 i 2436

Kyua's current goal is to reimplement only the ATF tools while maintaining backwards compatibility with the tests written with the ATF libraries (i.e. with the NetBSD test suite).
Err codemadness.org 70 i 2437 Because Kyua is a replacement of some ATF components, the end goal is to integrate Kyua into the NetBSD base system (just as ATF is) and remove the deprecated ATF components. Removing the deprecated components will allow us to make the above-mentioned improvements to Kyua, as well as many others, without having to deal with the obsolete ATF code base. Discussing how and when this transition might happen is out of the scope of this document at the moment.

Err codemadness.org 70 i 2438 Err codemadness.org 70 i 2439
Err codemadness.org 70 i 2440
Err codemadness.org 70 i 2441 Err codemadness.org 70 i 2442

News Roundup

Err codemadness.org 70 i 2443 Err codemadness.org 70 i 2444

Keeping backup ZFS on Linux kernel modules around

Err codemadness.org 70 i 2445 Err codemadness.org 70 i 2446
Err codemadness.org 70 i 2447

I'm a long term user of ZFS on Linux and over pretty much all of the time I've used it, I've built it from the latest development version. Generally this means I update my ZoL build at the same time as I update my Fedora kernel, since a ZoL update requires a kernel reboot anyway. This is a little bit daring, of course, although the ZoL development version has generally been quite solid (and this way I get the latest features and improvements long before I otherwise would).

Err codemadness.org 70 i 2448 Err codemadness.org 70 i 2449
Err codemadness.org 70 i 2450
Err codemadness.org 70 i 2451 Err codemadness.org 70 i 2452

Command-line Tools can be 235x Faster than your Hadoop Cluster

Err codemadness.org 70 i 2453 Err codemadness.org 70 i 2454
Err codemadness.org 70 i 2455

As I was browsing the web and catching up on some sites I visit periodically, I found a cool article from Tom Hayden about using Amazon Elastic Map Reduce (EMR) and mrjob in order to compute some statistics on win/loss ratios for chess games he downloaded from the millionbase archive, and generally have fun with EMR. Since the data volume was only about 1.75GB containing around 2 million chess games, I was skeptical of using Hadoop for the task, but I can understand his goal of learning and having fun with mrjob and EMR. Since the problem is basically just to look at the result lines of each file and aggregate the different results, it seems ideally suited to stream processing with shell commands. I tried this out, and for the same amount of data I was able to use my laptop to get the results in about 12 seconds (processing speed of about 270MB/sec), while the Hadoop processing took about 26 minutes (processing speed of about 1.14MB/sec).

Err codemadness.org 70 i 2456
Err codemadness.org 70 i 2457 Err codemadness.org 70 i 2458
Err codemadness.org 70 i 2459 Err codemadness.org 70 i 2460

FreeBSD Laptop Find Out Battery Life Status Command

Err codemadness.org 70 i 2461 Err codemadness.org 70 i 2462
Err codemadness.org 70 i 2463

I know how to find out battery life status using Linux operating system. How do I monitor battery status on a laptop running FreeBSD version 9.x/10.x/11.x/12.x?
Err codemadness.org 70 i 2464 You can use any one of the following commands to get battery status under FreeBSD laptop including remaining battery life and more.

Err codemadness.org 70 i 2465 Err codemadness.org 70 i 2466
Err codemadness.org 70 i 2467
Err codemadness.org 70 i 2468 Err codemadness.org 70 i 2469

Beastie Bits

Err codemadness.org 70 i 2470 Err codemadness.org 70 i 2471

BSD Beer
Err codemadness.org 70 i 2472 Awk for JSON
Err codemadness.org 70 i 2473 Drawing Pictures The Unix Way - with pic and troff
Err codemadness.org 70 i 2474 Refactoring the FreeBSD Kernel with Checked C

Err codemadness.org 70 i 2475 Err codemadness.org 70 i 2476
Err codemadness.org 70 i 2477 Err codemadness.org 70 i 2478

Tarsnap

Err codemadness.org 70 i 2479 Err codemadness.org 70 i 2480
    Err codemadness.org 70 i 2481
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 2482
Err codemadness.org 70 i 2483 Err codemadness.org 70 i 2484

Feedback/Questions

Err codemadness.org 70 i 2485 Err codemadness.org 70 i 2486 ]]> Err codemadness.org 70 i 2494
Err codemadness.org 70 i 2495 https://fireside.fm/player/v2/FYhhasNR+RnG_03K- Err codemadness.org 70 i 2496 Err codemadness.org 70 i 2497 ]]> Err codemadness.org 70 i 2498 Err codemadness.org 70 i 2499
Err codemadness.org 70 i 2500 Err codemadness.org 70 i 2501 364: FreeBSD Wireless Grind Err codemadness.org 70 i 2502 https://www.bsdnow.tv/364 Err codemadness.org 70 i 2503 7581b101-10df-4469-8e37-0ddb82f82696 Err codemadness.org 70 i 2504 Thu, 20 Aug 2020 04:00:00 -0700 Err codemadness.org 70 i 2505 Allan Jude Err codemadness.org 70 i 2506 Err codemadness.org 70 i 2507 full Err codemadness.org 70 i 2508 Allan Jude Err codemadness.org 70 i 2509 FreeBSD Qt WebEngine GPU Acceleration, the grind of FreeBSD’s wireless stack, thoughts on overlooking Illumos's syseventadm, when Unix learned to reboot, New EXT2/3/4 File-System driver in DragonflyBSD, and more. Err codemadness.org 70 i 2510 46:58 Err codemadness.org 70 i 2511 no Err codemadness.org 70 i 2512 Err codemadness.org 70 i 2513 FreeBSD Qt WebEngine GPU Acceleration, the grind of FreeBSD’s wireless stack, thoughts on overlooking Illumos's syseventadm, when Unix learned to reboot, New EXT2/3/4 File-System driver in DragonflyBSD, and more. Err codemadness.org 70 i 2514 NOTES Err codemadness.org 70 i 2515 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 2516 Headlines Err codemadness.org 70 i 2517 FreeBSD Qt WebEngine GPU Acceleration (https://euroquis.nl/freebsd/2020/07/21/webengine.html) Err codemadness.org 70 i 2518 FreeBSD has a handful of Qt WebEngine-based browsers. Falkon, and Otter-Browser, and qutebrowser and probably others, too. All of them can run into issues on FreeBSD with GPU-accelerated rendering not working. Let’s look at some of the workarounds. Err codemadness.org 70 i 2519 NetBSD on the Nanopi Neo2 (https://www.cambus.net/netbsd-on-the-nanopi-neo2/) Err codemadness.org 70 i 2520 The NanoPi NEO2 from FriendlyARM has been serving me well since 2018, being my test machine for OpenBSD/arm64 related things. Err codemadness.org 70 i 2521 As NetBSD/evbarm finally gained support for AArch64 in NetBSD 9.0, released back in February, I decided to give it a try on this device. The board only has 512MB of RAM, and this is where NetBSD really shines. Things have become a lot easier since jmcneill@ now provides bootable ARM images for a variety of devices, including the NanoPi NEO2. Err codemadness.org 70 i 2522 I'm back into the grind of FreeBSD's wireless stack and 802.11ac (https://adrianchadd.blogspot.com/2020/07/im-back-into-grind-of-freebsds-wireless.html) Err codemadness.org 70 i 2523 Yes, it's been a while since I posted here and yes, it's been a while since I was actively working on FreeBSD's wireless stack. Life's been .. well, life. I started the ath10k port in 2015. I wasn't expecting it to take 5 years, but here we are. My life has changed quite a lot since 2015 and a lot of the things I was doing in 2015 just stopped being fun for a while. Err codemadness.org 70 i 2524 But the stars have aligned and it's fun again, so here I am. Err codemadness.org 70 i 2525 News Roundup Err codemadness.org 70 i 2526 Some thoughts on us overlooking Illumos's syseventadm (https://utcc.utoronto.ca/~cks/space/blog/solaris/OverlookingSyseventadm) Err codemadness.org 70 i 2527 In a comment on my praise of ZFS on Linux's ZFS event daemon, Joshua M. Clulow noted that Illumos (and thus OmniOS) has an equivalent in syseventadm, which dates back to Solaris. I hadn't previously known about syseventadm, despite having run Solaris fileservers and OmniOS fileservers for the better part of a decade, and that gives me some tangled feelings. Err codemadness.org 70 i 2528 When Unix learned to reboot (https://bsdimp.blogspot.com/2020/07/when-unix-learned-to-reboot2.html) Err codemadness.org 70 i 2529 Recently, a friend asked me the history of halt, and when did we have to stop with the sync / sync / sync dance before running halt or reboot. The two are related, it turns out. Err codemadness.org 70 i 2530 DragonFlyBSD Lands New EXT2/3/4 File-System Driver (https://www.phoronix.com/scan.php?page=news_item&px=DragonFlyBSD-New-EXT2FS) Err codemadness.org 70 i 2531 While DragonFlyBSD has its own, original HAMMER2 file-system, for those needing to access data from EXT2/EXT3/EXT4 file-systems, there is a brand new "ext2fs" driver implementation for this BSD operating system. Err codemadness.org 70 i 2532 DragonFlyBSD has long offered an EXT2 file-system driver (that also handles EXT3 and EXT4) while hitting their Git tree this week is a new version. The new sys/vfs/ext2fs driver, which will ultimately replace their existing sys/gnu/vfs/ext2fs driver is based on a port from FreeBSD code. As such, this driver is BSD licensed rather than GPL. But besides the more liberal license to jive with the BSD world, this new driver has various feature/functionality improvements over the prior version. However, there are some known bugs so for the time being both file-system drivers will co-exist. Err codemadness.org 70 i 2533 Beastie Bits Err codemadness.org 70 i 2534 LibreOffice 7.0 call for testing (https://lists.freebsd.org/pipermail/freebsd-office/2020-July/005822.html) Err codemadness.org 70 i 2535 More touchpad support (https://www.dragonflydigest.com/2020/07/15/24747.html) Err codemadness.org 70 i 2536 Tarsnap Err codemadness.org 70 i 2537 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 2538 Feedback/Questions Err codemadness.org 70 i 2539 Casey - openbsd wirewall (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/364/feedback/casey%20-%20openbsd%20wirewall.md) Err codemadness.org 70 i 2540 Daryl - zfs (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/364/feedback/daryl%20-%20zfs.md) Err codemadness.org 70 i 2541 Raymond - hpe microserver (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/364/feedback/raymond%20-%20hpe%20microserver.md) Err codemadness.org 70 i 2542 - Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 2543 *** Err codemadness.org 70 i 2544 Err codemadness.org 70 i 2545 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, berkeley, software, distribution, zfs, interview, QT, WebEngine, acceleration, GPU, wireless, 802.11ac, syseventadm, reboot, sync, ext2, ext3, ext4, filesystem, driver Err codemadness.org 70 i 2546 Err codemadness.org 70 i 2547 FreeBSD Qt WebEngine GPU Acceleration, the grind of FreeBSD’s wireless stack, thoughts on overlooking Illumos's syseventadm, when Unix learned to reboot, New EXT2/3/4 File-System driver in DragonflyBSD, and more.

Err codemadness.org 70 i 2548 Err codemadness.org 70 i 2549

NOTES
Err codemadness.org 70 i 2550 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 2551 Err codemadness.org 70 i 2552

Headlines

Err codemadness.org 70 i 2553 Err codemadness.org 70 i 2554

FreeBSD Qt WebEngine GPU Acceleration

Err codemadness.org 70 i 2555 Err codemadness.org 70 i 2556
Err codemadness.org 70 i 2557

FreeBSD has a handful of Qt WebEngine-based browsers. Falkon, and Otter-Browser, and qutebrowser and probably others, too. All of them can run into issues on FreeBSD with GPU-accelerated rendering not working. Let’s look at some of the workarounds.

Err codemadness.org 70 i 2558
Err codemadness.org 70 i 2559 Err codemadness.org 70 i 2560
Err codemadness.org 70 i 2561 Err codemadness.org 70 i 2562

NetBSD on the Nanopi Neo2

Err codemadness.org 70 i 2563 Err codemadness.org 70 i 2564
Err codemadness.org 70 i 2565

The NanoPi NEO2 from FriendlyARM has been serving me well since 2018, being my test machine for OpenBSD/arm64 related things.
Err codemadness.org 70 i 2566 As NetBSD/evbarm finally gained support for AArch64 in NetBSD 9.0, released back in February, I decided to give it a try on this device. The board only has 512MB of RAM, and this is where NetBSD really shines. Things have become a lot easier since jmcneill@ now provides bootable ARM images for a variety of devices, including the NanoPi NEO2.

Err codemadness.org 70 i 2567
Err codemadness.org 70 i 2568 Err codemadness.org 70 i 2569
Err codemadness.org 70 i 2570 Err codemadness.org 70 i 2571

I'm back into the grind of FreeBSD's wireless stack and 802.11ac

Err codemadness.org 70 i 2572 Err codemadness.org 70 i 2573
Err codemadness.org 70 i 2574

Yes, it's been a while since I posted here and yes, it's been a while since I was actively working on FreeBSD's wireless stack. Life's been .. well, life. I started the ath10k port in 2015. I wasn't expecting it to take 5 years, but here we are. My life has changed quite a lot since 2015 and a lot of the things I was doing in 2015 just stopped being fun for a while.
Err codemadness.org 70 i 2575 But the stars have aligned and it's fun again, so here I am.

Err codemadness.org 70 i 2576
Err codemadness.org 70 i 2577 Err codemadness.org 70 i 2578
Err codemadness.org 70 i 2579 Err codemadness.org 70 i 2580

News Roundup

Err codemadness.org 70 i 2581 Err codemadness.org 70 i 2582

Some thoughts on us overlooking Illumos's syseventadm

Err codemadness.org 70 i 2583 Err codemadness.org 70 i 2584
Err codemadness.org 70 i 2585

In a comment on my praise of ZFS on Linux's ZFS event daemon, Joshua M. Clulow noted that Illumos (and thus OmniOS) has an equivalent in syseventadm, which dates back to Solaris. I hadn't previously known about syseventadm, despite having run Solaris fileservers and OmniOS fileservers for the better part of a decade, and that gives me some tangled feelings.

Err codemadness.org 70 i 2586
Err codemadness.org 70 i 2587 Err codemadness.org 70 i 2588
Err codemadness.org 70 i 2589 Err codemadness.org 70 i 2590

When Unix learned to reboot

Err codemadness.org 70 i 2591 Err codemadness.org 70 i 2592
Err codemadness.org 70 i 2593

Recently, a friend asked me the history of halt, and when did we have to stop with the sync / sync / sync dance before running halt or reboot. The two are related, it turns out.

Err codemadness.org 70 i 2594
Err codemadness.org 70 i 2595 Err codemadness.org 70 i 2596
Err codemadness.org 70 i 2597 Err codemadness.org 70 i 2598

DragonFlyBSD Lands New EXT2/3/4 File-System Driver

Err codemadness.org 70 i 2599 Err codemadness.org 70 i 2600
Err codemadness.org 70 i 2601

While DragonFlyBSD has its own, original HAMMER2 file-system, for those needing to access data from EXT2/EXT3/EXT4 file-systems, there is a brand new "ext2fs" driver implementation for this BSD operating system.
Err codemadness.org 70 i 2602 DragonFlyBSD has long offered an EXT2 file-system driver (that also handles EXT3 and EXT4) while hitting their Git tree this week is a new version. The new sys/vfs/ext2fs driver, which will ultimately replace their existing sys/gnu/vfs/ext2fs driver is based on a port from FreeBSD code. As such, this driver is BSD licensed rather than GPL. But besides the more liberal license to jive with the BSD world, this new driver has various feature/functionality improvements over the prior version. However, there are some known bugs so for the time being both file-system drivers will co-exist.

Err codemadness.org 70 i 2603
Err codemadness.org 70 i 2604 Err codemadness.org 70 i 2605
Err codemadness.org 70 i 2606 Err codemadness.org 70 i 2607

Beastie Bits

Err codemadness.org 70 i 2608 Err codemadness.org 70 i 2609 Err codemadness.org 70 i 2613 Err codemadness.org 70 i 2614
Err codemadness.org 70 i 2615 Err codemadness.org 70 i 2616

Tarsnap

Err codemadness.org 70 i 2617 Err codemadness.org 70 i 2618
    Err codemadness.org 70 i 2619
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 2620
Err codemadness.org 70 i 2621 Err codemadness.org 70 i 2622

Feedback/Questions

Err codemadness.org 70 i 2623 Err codemadness.org 70 i 2624

Casey - openbsd wirewall
Err codemadness.org 70 i 2625 Daryl - zfs
Err codemadness.org 70 i 2626 Raymond - hpe microserver

Err codemadness.org 70 i 2627 Err codemadness.org 70 i 2628
Err codemadness.org 70 i 2629 Err codemadness.org 70 i 2630
    Err codemadness.org 70 i 2631
  • - Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 2632 ***
  • Err codemadness.org 70 i 2633
]]> Err codemadness.org 70 i 2634
Err codemadness.org 70 i 2635 Err codemadness.org 70 i 2636 FreeBSD Qt WebEngine GPU Acceleration, the grind of FreeBSD’s wireless stack, thoughts on overlooking Illumos's syseventadm, when Unix learned to reboot, New EXT2/3/4 File-System driver in DragonflyBSD, and more.

Err codemadness.org 70 i 2637 Err codemadness.org 70 i 2638

NOTES
Err codemadness.org 70 i 2639 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 2640 Err codemadness.org 70 i 2641

Headlines

Err codemadness.org 70 i 2642 Err codemadness.org 70 i 2643

FreeBSD Qt WebEngine GPU Acceleration

Err codemadness.org 70 i 2644 Err codemadness.org 70 i 2645
Err codemadness.org 70 i 2646

FreeBSD has a handful of Qt WebEngine-based browsers. Falkon, and Otter-Browser, and qutebrowser and probably others, too. All of them can run into issues on FreeBSD with GPU-accelerated rendering not working. Let’s look at some of the workarounds.

Err codemadness.org 70 i 2647
Err codemadness.org 70 i 2648 Err codemadness.org 70 i 2649
Err codemadness.org 70 i 2650 Err codemadness.org 70 i 2651

NetBSD on the Nanopi Neo2

Err codemadness.org 70 i 2652 Err codemadness.org 70 i 2653
Err codemadness.org 70 i 2654

The NanoPi NEO2 from FriendlyARM has been serving me well since 2018, being my test machine for OpenBSD/arm64 related things.
Err codemadness.org 70 i 2655 As NetBSD/evbarm finally gained support for AArch64 in NetBSD 9.0, released back in February, I decided to give it a try on this device. The board only has 512MB of RAM, and this is where NetBSD really shines. Things have become a lot easier since jmcneill@ now provides bootable ARM images for a variety of devices, including the NanoPi NEO2.

Err codemadness.org 70 i 2656
Err codemadness.org 70 i 2657 Err codemadness.org 70 i 2658
Err codemadness.org 70 i 2659 Err codemadness.org 70 i 2660

I'm back into the grind of FreeBSD's wireless stack and 802.11ac

Err codemadness.org 70 i 2661 Err codemadness.org 70 i 2662
Err codemadness.org 70 i 2663

Yes, it's been a while since I posted here and yes, it's been a while since I was actively working on FreeBSD's wireless stack. Life's been .. well, life. I started the ath10k port in 2015. I wasn't expecting it to take 5 years, but here we are. My life has changed quite a lot since 2015 and a lot of the things I was doing in 2015 just stopped being fun for a while.
Err codemadness.org 70 i 2664 But the stars have aligned and it's fun again, so here I am.

Err codemadness.org 70 i 2665
Err codemadness.org 70 i 2666 Err codemadness.org 70 i 2667
Err codemadness.org 70 i 2668 Err codemadness.org 70 i 2669

News Roundup

Err codemadness.org 70 i 2670 Err codemadness.org 70 i 2671

Some thoughts on us overlooking Illumos's syseventadm

Err codemadness.org 70 i 2672 Err codemadness.org 70 i 2673
Err codemadness.org 70 i 2674

In a comment on my praise of ZFS on Linux's ZFS event daemon, Joshua M. Clulow noted that Illumos (and thus OmniOS) has an equivalent in syseventadm, which dates back to Solaris. I hadn't previously known about syseventadm, despite having run Solaris fileservers and OmniOS fileservers for the better part of a decade, and that gives me some tangled feelings.

Err codemadness.org 70 i 2675
Err codemadness.org 70 i 2676 Err codemadness.org 70 i 2677
Err codemadness.org 70 i 2678 Err codemadness.org 70 i 2679

When Unix learned to reboot

Err codemadness.org 70 i 2680 Err codemadness.org 70 i 2681
Err codemadness.org 70 i 2682

Recently, a friend asked me the history of halt, and when did we have to stop with the sync / sync / sync dance before running halt or reboot. The two are related, it turns out.

Err codemadness.org 70 i 2683
Err codemadness.org 70 i 2684 Err codemadness.org 70 i 2685
Err codemadness.org 70 i 2686 Err codemadness.org 70 i 2687

DragonFlyBSD Lands New EXT2/3/4 File-System Driver

Err codemadness.org 70 i 2688 Err codemadness.org 70 i 2689
Err codemadness.org 70 i 2690

While DragonFlyBSD has its own, original HAMMER2 file-system, for those needing to access data from EXT2/EXT3/EXT4 file-systems, there is a brand new "ext2fs" driver implementation for this BSD operating system.
Err codemadness.org 70 i 2691 DragonFlyBSD has long offered an EXT2 file-system driver (that also handles EXT3 and EXT4) while hitting their Git tree this week is a new version. The new sys/vfs/ext2fs driver, which will ultimately replace their existing sys/gnu/vfs/ext2fs driver is based on a port from FreeBSD code. As such, this driver is BSD licensed rather than GPL. But besides the more liberal license to jive with the BSD world, this new driver has various feature/functionality improvements over the prior version. However, there are some known bugs so for the time being both file-system drivers will co-exist.

Err codemadness.org 70 i 2692
Err codemadness.org 70 i 2693 Err codemadness.org 70 i 2694
Err codemadness.org 70 i 2695 Err codemadness.org 70 i 2696

Beastie Bits

Err codemadness.org 70 i 2697 Err codemadness.org 70 i 2698 Err codemadness.org 70 i 2702 Err codemadness.org 70 i 2703
Err codemadness.org 70 i 2704 Err codemadness.org 70 i 2705

Tarsnap

Err codemadness.org 70 i 2706 Err codemadness.org 70 i 2707
    Err codemadness.org 70 i 2708
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 2709
Err codemadness.org 70 i 2710 Err codemadness.org 70 i 2711

Feedback/Questions

Err codemadness.org 70 i 2712 Err codemadness.org 70 i 2713

Casey - openbsd wirewall
Err codemadness.org 70 i 2714 Daryl - zfs
Err codemadness.org 70 i 2715 Raymond - hpe microserver

Err codemadness.org 70 i 2716 Err codemadness.org 70 i 2717
Err codemadness.org 70 i 2718 Err codemadness.org 70 i 2719
    Err codemadness.org 70 i 2720
  • - Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 2721 ***
  • Err codemadness.org 70 i 2722
]]> Err codemadness.org 70 i 2723
Err codemadness.org 70 i 2724 https://fireside.fm/player/v2/FYhhasNR+d-2_vYWR Err codemadness.org 70 i 2725 Err codemadness.org 70 i 2726 ]]> Err codemadness.org 70 i 2727 Err codemadness.org 70 i 2728
Err codemadness.org 70 i 2729 Err codemadness.org 70 i 2730 363: Traditional Unix toolchains Err codemadness.org 70 i 2731 https://www.bsdnow.tv/363 Err codemadness.org 70 i 2732 5152316f-4859-4e73-8c1c-18f2b9965f5d Err codemadness.org 70 i 2733 Thu, 13 Aug 2020 04:00:00 -0700 Err codemadness.org 70 i 2734 Allan Jude Err codemadness.org 70 i 2735 Err codemadness.org 70 i 2736 full Err codemadness.org 70 i 2737 Allan Jude Err codemadness.org 70 i 2738 FreeBSD Q2 Quarterly Status report of 2020, Traditional Unix Toolchains, BastilleBSD 0.7 released, Finding meltdown on DragonflyBSD, and more Err codemadness.org 70 i 2739 34:45 Err codemadness.org 70 i 2740 no Err codemadness.org 70 i 2741 Err codemadness.org 70 i 2742 FreeBSD Q2 Quarterly Status report of 2020, Traditional Unix Toolchains, BastilleBSD 0.7 released, Finding meltdown on DragonflyBSD, and more Err codemadness.org 70 i 2743 NOTES Err codemadness.org 70 i 2744 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 2745 Headlines Err codemadness.org 70 i 2746 FreeBSD Quarterly Report (https://www.freebsd.org/news/status/report-2020-04-2020-06.html) Err codemadness.org 70 i 2747 This report will be covering FreeBSD related projects between April and June, and covers a diverse set of topics ranging from kernel updates over userland and ports, as well to third-party work. Err codemadness.org 70 i 2748 Some highlights picked with the roll of a d100 include, but are not limited to, the ability to forcibly unmounting UFS when the underlying media becomes inaccessible, added preliminary support for Bluetooth Low Energy, a introduction to the FreeBSD Office Hours, and a repository of software collections called potluck to be installed with the pot utility, as well as many many more things. Err codemadness.org 70 i 2749 As a little treat, readers can also get a rare report from the quarterly team. Err codemadness.org 70 i 2750 Finally, on behalf of the quarterly team, I would like to extend my deepest appreciation and thank you to salvadore@, who decided to take down his shingle. His contributions not just the quarterly reports themselves, but also the surrounding tooling to many-fold ease the work, are immeasurable. Err codemadness.org 70 i 2751 Traditional Unix Toolchains (https://bsdimp.blogspot.com/2020/07/traditional-unix-toolchains.html?m=1) Err codemadness.org 70 i 2752 Older Unix systems tend to be fairly uniform in how they handle the so-called 'toolchain' for creating binaries. This blog will give a quick overview of the toolchain pipeline for Unix systems that follow the V7 tradition (which evolved along with Unix, a topic for a separate blog maybe). Err codemadness.org 70 i 2753 Unix is a pipeline based system, either physically or logically. One program takes input, process the data and produces output. The input and output have some interface they obey, usually text-based. The Unix toolchain is no different. Err codemadness.org 70 i 2754 News Roundup Err codemadness.org 70 i 2755 Bastille Day 2020 : v0.7 released (https://github.com/BastilleBSD/bastille/releases/tag/0.7.20200714) Err codemadness.org 70 i 2756 This release matures the project from 0.6.x -> 0.7.x. Continued testing and bug fixes are proving Bastille capable for a range of use-cases. New (experimental) features are examples of innovation from community contribution and feedback. Thank you. Err codemadness.org 70 i 2757 Beastie Bits Err codemadness.org 70 i 2758 Finding meltdown on DragonFly (https://www.dragonflydigest.com/2020/07/28/24787.html) Err codemadness.org 70 i 2759 NetBSD Server Outage (https://mobile.twitter.com/netbsd/status/1286898183923277829) Err codemadness.org 70 i 2760 *** Err codemadness.org 70 i 2761 Tarsnap Err codemadness.org 70 i 2762 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 2763 Feedback/Questions Err codemadness.org 70 i 2764 Vincent - Gnome 3 question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/363/feedback/vincent%20-%20gnome3.md) Err codemadness.org 70 i 2765 Malcolm - ZFS question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/363/feedback/malcolm%20-%20zfs.md) Err codemadness.org 70 i 2766 Hassan - Video question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/363/feedback/hassan%20-%20video.md) Err codemadness.org 70 i 2767 For those that watch on youtube, don’t forget to subscribe to our new YouTube Channel if you want updates when we post them on YT (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/363/feedback/new-bsdnow-youtube-channel.md) Err codemadness.org 70 i 2768 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 2769 *** Err codemadness.org 70 i 2770 Err codemadness.org 70 i 2771 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, berkeley, software, distribution, zfs, quarterly status, status report, traditional, Unix, toolchain, meltdown Err codemadness.org 70 i 2772 Err codemadness.org 70 i 2773 FreeBSD Q2 Quarterly Status report of 2020, Traditional Unix Toolchains, BastilleBSD 0.7 released, Finding meltdown on DragonflyBSD, and more

Err codemadness.org 70 i 2774 Err codemadness.org 70 i 2775

NOTES
Err codemadness.org 70 i 2776 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 2777 Err codemadness.org 70 i 2778

Headlines

Err codemadness.org 70 i 2779 Err codemadness.org 70 i 2780

FreeBSD Quarterly Report

Err codemadness.org 70 i 2781 Err codemadness.org 70 i 2782
Err codemadness.org 70 i 2783

This report will be covering FreeBSD related projects between April and June, and covers a diverse set of topics ranging from kernel updates over userland and ports, as well to third-party work.
Err codemadness.org 70 i 2784 Some highlights picked with the roll of a d100 include, but are not limited to, the ability to forcibly unmounting UFS when the underlying media becomes inaccessible, added preliminary support for Bluetooth Low Energy, a introduction to the FreeBSD Office Hours, and a repository of software collections called potluck to be installed with the pot utility, as well as many many more things.
Err codemadness.org 70 i 2785 As a little treat, readers can also get a rare report from the quarterly team.
Err codemadness.org 70 i 2786 Finally, on behalf of the quarterly team, I would like to extend my deepest appreciation and thank you to salvadore@, who decided to take down his shingle. His contributions not just the quarterly reports themselves, but also the surrounding tooling to many-fold ease the work, are immeasurable.

Err codemadness.org 70 i 2787 Err codemadness.org 70 i 2788
Err codemadness.org 70 i 2789
Err codemadness.org 70 i 2790 Err codemadness.org 70 i 2791

Traditional Unix Toolchains

Err codemadness.org 70 i 2792 Err codemadness.org 70 i 2793
Err codemadness.org 70 i 2794

Older Unix systems tend to be fairly uniform in how they handle the so-called 'toolchain' for creating binaries. This blog will give a quick overview of the toolchain pipeline for Unix systems that follow the V7 tradition (which evolved along with Unix, a topic for a separate blog maybe).
Err codemadness.org 70 i 2795 Unix is a pipeline based system, either physically or logically. One program takes input, process the data and produces output. The input and output have some interface they obey, usually text-based. The Unix toolchain is no different.

Err codemadness.org 70 i 2796 Err codemadness.org 70 i 2797
Err codemadness.org 70 i 2798
Err codemadness.org 70 i 2799 Err codemadness.org 70 i 2800

News Roundup

Err codemadness.org 70 i 2801 Err codemadness.org 70 i 2802

Bastille Day 2020 : v0.7 released

Err codemadness.org 70 i 2803 Err codemadness.org 70 i 2804
Err codemadness.org 70 i 2805

This release matures the project from 0.6.x -> 0.7.x. Continued testing and bug fixes are proving Bastille capable for a range of use-cases. New (experimental) features are examples of innovation from community contribution and feedback. Thank you.

Err codemadness.org 70 i 2806 Err codemadness.org 70 i 2807
Err codemadness.org 70 i 2808
Err codemadness.org 70 i 2809 Err codemadness.org 70 i 2810

Beastie Bits

Err codemadness.org 70 i 2811 Err codemadness.org 70 i 2812 Err codemadness.org 70 i 2817 Err codemadness.org 70 i 2818

Tarsnap

Err codemadness.org 70 i 2819 Err codemadness.org 70 i 2820
    Err codemadness.org 70 i 2821
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 2822
Err codemadness.org 70 i 2823 Err codemadness.org 70 i 2824

Feedback/Questions

Err codemadness.org 70 i 2825 Err codemadness.org 70 i 2826 Err codemadness.org 70 i 2835 Err codemadness.org 70 i 2836
Err codemadness.org 70 i 2837 Err codemadness.org 70 i 2838
    Err codemadness.org 70 i 2839
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 2840 ***
  • Err codemadness.org 70 i 2841
]]> Err codemadness.org 70 i 2842
Err codemadness.org 70 i 2843 Err codemadness.org 70 i 2844 FreeBSD Q2 Quarterly Status report of 2020, Traditional Unix Toolchains, BastilleBSD 0.7 released, Finding meltdown on DragonflyBSD, and more

Err codemadness.org 70 i 2845 Err codemadness.org 70 i 2846

NOTES
Err codemadness.org 70 i 2847 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 2848 Err codemadness.org 70 i 2849

Headlines

Err codemadness.org 70 i 2850 Err codemadness.org 70 i 2851

FreeBSD Quarterly Report

Err codemadness.org 70 i 2852 Err codemadness.org 70 i 2853
Err codemadness.org 70 i 2854

This report will be covering FreeBSD related projects between April and June, and covers a diverse set of topics ranging from kernel updates over userland and ports, as well to third-party work.
Err codemadness.org 70 i 2855 Some highlights picked with the roll of a d100 include, but are not limited to, the ability to forcibly unmounting UFS when the underlying media becomes inaccessible, added preliminary support for Bluetooth Low Energy, a introduction to the FreeBSD Office Hours, and a repository of software collections called potluck to be installed with the pot utility, as well as many many more things.
Err codemadness.org 70 i 2856 As a little treat, readers can also get a rare report from the quarterly team.
Err codemadness.org 70 i 2857 Finally, on behalf of the quarterly team, I would like to extend my deepest appreciation and thank you to salvadore@, who decided to take down his shingle. His contributions not just the quarterly reports themselves, but also the surrounding tooling to many-fold ease the work, are immeasurable.

Err codemadness.org 70 i 2858 Err codemadness.org 70 i 2859
Err codemadness.org 70 i 2860
Err codemadness.org 70 i 2861 Err codemadness.org 70 i 2862

Traditional Unix Toolchains

Err codemadness.org 70 i 2863 Err codemadness.org 70 i 2864
Err codemadness.org 70 i 2865

Older Unix systems tend to be fairly uniform in how they handle the so-called 'toolchain' for creating binaries. This blog will give a quick overview of the toolchain pipeline for Unix systems that follow the V7 tradition (which evolved along with Unix, a topic for a separate blog maybe).
Err codemadness.org 70 i 2866 Unix is a pipeline based system, either physically or logically. One program takes input, process the data and produces output. The input and output have some interface they obey, usually text-based. The Unix toolchain is no different.

Err codemadness.org 70 i 2867 Err codemadness.org 70 i 2868
Err codemadness.org 70 i 2869
Err codemadness.org 70 i 2870 Err codemadness.org 70 i 2871

News Roundup

Err codemadness.org 70 i 2872 Err codemadness.org 70 i 2873

Bastille Day 2020 : v0.7 released

Err codemadness.org 70 i 2874 Err codemadness.org 70 i 2875
Err codemadness.org 70 i 2876

This release matures the project from 0.6.x -> 0.7.x. Continued testing and bug fixes are proving Bastille capable for a range of use-cases. New (experimental) features are examples of innovation from community contribution and feedback. Thank you.

Err codemadness.org 70 i 2877 Err codemadness.org 70 i 2878
Err codemadness.org 70 i 2879
Err codemadness.org 70 i 2880 Err codemadness.org 70 i 2881

Beastie Bits

Err codemadness.org 70 i 2882 Err codemadness.org 70 i 2883 Err codemadness.org 70 i 2888 Err codemadness.org 70 i 2889

Tarsnap

Err codemadness.org 70 i 2890 Err codemadness.org 70 i 2891
    Err codemadness.org 70 i 2892
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 2893
Err codemadness.org 70 i 2894 Err codemadness.org 70 i 2895

Feedback/Questions

Err codemadness.org 70 i 2896 Err codemadness.org 70 i 2897 Err codemadness.org 70 i 2906 Err codemadness.org 70 i 2907
Err codemadness.org 70 i 2908 Err codemadness.org 70 i 2909
    Err codemadness.org 70 i 2910
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 2911 ***
  • Err codemadness.org 70 i 2912
]]> Err codemadness.org 70 i 2913
Err codemadness.org 70 i 2914 https://fireside.fm/player/v2/FYhhasNR+lPxz4DVx Err codemadness.org 70 i 2915 Err codemadness.org 70 i 2916 ]]> Err codemadness.org 70 i 2917 Err codemadness.org 70 i 2918
Err codemadness.org 70 i 2919 Err codemadness.org 70 i 2920 362: 2.11-BSD restoration Err codemadness.org 70 i 2921 https://www.bsdnow.tv/362 Err codemadness.org 70 i 2922 5822b2f7-0440-44f4-8f73-70609c960a3d Err codemadness.org 70 i 2923 Thu, 06 Aug 2020 05:00:00 -0700 Err codemadness.org 70 i 2924 Allan Jude Err codemadness.org 70 i 2925 Err codemadness.org 70 i 2926 full Err codemadness.org 70 i 2927 Allan Jude Err codemadness.org 70 i 2928 Interview with Warner Losh about Unix history, the 2.11-BSD restoration project, the Unix heritage society, proper booting, and what devmatch is. Err codemadness.org 70 i 2929 1:02:30 Err codemadness.org 70 i 2930 no Err codemadness.org 70 i 2931 Err codemadness.org 70 i 2932 Interview with Warner Losh about Unix history, the 2.11-BSD restoration project, the Unix heritage society, proper booting, and what devmatch is. Err codemadness.org 70 i 2933 Interview - Warner Losh - imp@freebsd.org (mailto:imp@freebsd.org) / @bsdimp (https://twitter.com/bsdimp) Err codemadness.org 70 i 2934 BSD 2.11 restoration project Err codemadness.org 70 i 2935 Tarsnap Err codemadness.org 70 i 2936 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 2937 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 2938 Special Guest: Warner Losh. Err codemadness.org 70 i 2939 Err codemadness.org 70 i 2940 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, berkeley, software, distribution, zfs, interview Err codemadness.org 70 i 2941 Err codemadness.org 70 i 2942 Interview with Warner Losh about Unix history, the 2.11-BSD restoration project, the Unix heritage society, proper booting, and what devmatch is.

Err codemadness.org 70 i 2943 Err codemadness.org 70 i 2944

Interview - Warner Losh - imp@freebsd.org / @bsdimp

Err codemadness.org 70 i 2945 Err codemadness.org 70 i 2946

BSD 2.11 restoration project

Err codemadness.org 70 i 2947 Err codemadness.org 70 i 2948

Tarsnap

Err codemadness.org 70 i 2949 Err codemadness.org 70 i 2950
    Err codemadness.org 70 i 2951
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.

  • Err codemadness.org 70 i 2952
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

    Err codemadness.org 70 i 2953 Err codemadness.org 70 i 2954
  • Err codemadness.org 70 i 2955

Special Guest: Warner Losh.

]]> Err codemadness.org 70 i 2956
Err codemadness.org 70 i 2957 Err codemadness.org 70 i 2958 Interview with Warner Losh about Unix history, the 2.11-BSD restoration project, the Unix heritage society, proper booting, and what devmatch is.

Err codemadness.org 70 i 2959 Err codemadness.org 70 i 2960

Interview - Warner Losh - imp@freebsd.org / @bsdimp

Err codemadness.org 70 i 2961 Err codemadness.org 70 i 2962

BSD 2.11 restoration project

Err codemadness.org 70 i 2963 Err codemadness.org 70 i 2964

Tarsnap

Err codemadness.org 70 i 2965 Err codemadness.org 70 i 2966
    Err codemadness.org 70 i 2967
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.

  • Err codemadness.org 70 i 2968
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

    Err codemadness.org 70 i 2969 Err codemadness.org 70 i 2970
  • Err codemadness.org 70 i 2971

Special Guest: Warner Losh.

]]> Err codemadness.org 70 i 2972
Err codemadness.org 70 i 2973 https://fireside.fm/player/v2/FYhhasNR+0CTjOBcg Err codemadness.org 70 i 2974 Err codemadness.org 70 i 2975 ]]> Err codemadness.org 70 i 2976 Err codemadness.org 70 i 2977
Err codemadness.org 70 i 2978 Err codemadness.org 70 i 2979 361: Function-based MicroVM Err codemadness.org 70 i 2980 https://www.bsdnow.tv/361 Err codemadness.org 70 i 2981 e7930697-b2c2-4603-b015-19d1070a7c69 Err codemadness.org 70 i 2982 Thu, 30 Jul 2020 04:00:00 -0700 Err codemadness.org 70 i 2983 Allan Jude Err codemadness.org 70 i 2984 Err codemadness.org 70 i 2985 full Err codemadness.org 70 i 2986 Allan Jude Err codemadness.org 70 i 2987 Emulex: The Cheapest 10gbe for Your Homelab, In Search of 2.11BSD, as released, Fakecracker: NetBSD as a Function Based MicroVM, First powerpc64 snapshots available for OpenBSD, OPNsense 20.1.8 released, and more. Err codemadness.org 70 i 2988 Err codemadness.org 70 i 2989 1:02:10 Err codemadness.org 70 i 2990 no Err codemadness.org 70 i 2991 Err codemadness.org 70 i 2992 Emulex: The Cheapest 10gbe for Your Homelab, In Search of 2.11BSD, as released, Fakecracker: NetBSD as a Function Based MicroVM, First powerpc64 snapshots available for OpenBSD, OPNsense 20.1.8 released, and more. Err codemadness.org 70 i 2993 NOTES Err codemadness.org 70 i 2994 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 2995 Headlines Err codemadness.org 70 i 2996 Emulex: The Cheapest 10gbe for Your Homelab (https://vincerants.com/emulex-the-cheapest-10gbe/) Err codemadness.org 70 i 2997 Years ago, the hunt for the cheapest 10gbe NICs resulted in buying Mellanox ConnectX-2 single-port 10gbe network cards from eBay for around $10. Nowadays those cards have increased in cost to around $20-30. While still cheap, not quite the cheapest. There are now alternatives! Err codemadness.org 70 i 2998 Before diving into details, let’s get something very clear. If you want the absolute simplest plug-and-play 10gbe LAN for your homelab, pay the extra for Mellanox. If you’re willing to go hands-on, do some simple manual configuration and installation, read on for my experiences with Emulex 10gbe NICs. Err codemadness.org 70 i 2999 Emulex NICs can often be had for around $15 on eBay, sometimes even cheaper. I recently picked up a set of 4 of these cards, which came bundled with 6 SFP+ 10g-SR modules for a grand total of $47.48. Considering I can usually find SFP+ modules for about $5/ea, these alone were worth $30. Err codemadness.org 70 i 3000 + I have also tried some Solarflare cards that I found cheap, they work ok, but are pickier about optics, and tend to be focused on low-latency, so often don’t manage to saturate the full 10 gbps, topping out around 8 gbps. Err codemadness.org 70 i 3001 + I have been using fs.com for optics, patch cables, and DACs. I find DACs are usually cheaper if you are just going between a server and a switch in the same rack, or direct between 2 servers. Err codemadness.org 70 i 3002 In Search of 2.11BSD, as released (https://bsdimp.blogspot.com/2020/07/211bsd-original-tapes-recreation.html) Err codemadness.org 70 i 3003 Almost all of the BSD releases have been well preserved. If you want to find 1BSD, or 2BSD or 4.3-TAHOE BSD you can find them online with little fuss. However, if you search for 2.11BSD, you'll find it easily enough, but it won't be the original. You'll find either the latest patched version (2.11BSD pl 469), or one of the earlier popular version (pl 430 is popular). You can even find the RetroBSD project which used 2.11BSD as a starting point to create systems for tiny mips-based PIC controllers. You'll find every single patch that's been issued for the system. Err codemadness.org 70 i 3004 News Roundup Err codemadness.org 70 i 3005 Fakecracker: NetBSD as a Function Based MicroVM (https://imil.net/blog/posts/2020/fakecracker-netbsd-as-a-function-based-microvm/) Err codemadness.org 70 i 3006 In November 2018 AWS published an Open Source tool called Firecracker, mostly a virtual machine monitor relying on KVM, a small sized Linux kernel, and a stripped down version of Qemu. What baffled me was the speed at which the virtual machine would fire up and run the service. The whole process is to be compared to a container, but safer, as it does not share the kernel nor any resource, it is a separate and dedicated virtual machine. Err codemadness.org 70 i 3007 If you want to learn more on Firecracker‘s internals, here’s a very well put article. Err codemadness.org 70 i 3008 First powerpc64 snapshots available for OpenBSD (https://undeadly.org/cgi?action=article;sid=20200707001113) Err codemadness.org 70 i 3009 Since we reported the first bits of powerpc64 support going into the tree on 16 May, work has progressed at a steady pace, resulting in snapshots now being available for this platform. Err codemadness.org 70 i 3010 So, if you have a POWER9 system idling around, go to your nearest mirror and fetch this snapshot. Keep in mind that as this is still very early days, very little handholding is available - you are basically on your own. Err codemadness.org 70 i 3011 OPNsense 20.1.8 released (https://opnsense.org/opnsense-20-1-8-released/) Err codemadness.org 70 i 3012 Sorry about the delay while we chased a race condition in the updates back to an issue with the latest FreeBSD package manager updates. For now we reverted to our current version but all relevant third party packages have been updated as updates became available over the last weeks, e.g. cURL and Python, and hostapd / wpa_supplicant amongst others. Err codemadness.org 70 i 3013 Beastie Bits Err codemadness.org 70 i 3014 Old School Disk Partitioning (https://bsdimp.blogspot.com/2020/07/old-school-disk-partitioning.html) Err codemadness.org 70 i 3015 Nomad BSD 1.3.2 Released (http://nomadbsd.org/index.html#1.3.2) Err codemadness.org 70 i 3016 Chai-Fi (https://github.com/gonzoua/chaifi) Err codemadness.org 70 i 3017 Tarsnap Err codemadness.org 70 i 3018 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 3019 Feedback/Questions Err codemadness.org 70 i 3020 Poojan - ZFS Question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/361/feedback/Poojan%20-%20ZFS%20question.md) Err codemadness.org 70 i 3021 graceon - supermicro (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/361/feedback/graceon%20-%20supermicro.md) Err codemadness.org 70 i 3022 zenbum - groff (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/361/feedback/zenbum%20-%20groff.md) Err codemadness.org 70 i 3023 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 3024 *** Err codemadness.org 70 i 3025 Special Guest: Warner Losh. Err codemadness.org 70 i 3026 Err codemadness.org 70 i 3027 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, berkeley, software, distribution, zfs, interview, emulex, homelab, 2.11 BSD, function based microvm, microvm, powerpc64, snapshots, opnsense, release Err codemadness.org 70 i 3028 Err codemadness.org 70 i 3029 Emulex: The Cheapest 10gbe for Your Homelab, In Search of 2.11BSD, as released, Fakecracker: NetBSD as a Function Based MicroVM, First powerpc64 snapshots available for OpenBSD, OPNsense 20.1.8 released, and more.

Err codemadness.org 70 i 3030 Err codemadness.org 70 i 3031

NOTES
Err codemadness.org 70 i 3032 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 3033 Err codemadness.org 70 i 3034

Headlines

Err codemadness.org 70 i 3035 Err codemadness.org 70 i 3036

Emulex: The Cheapest 10gbe for Your Homelab

Err codemadness.org 70 i 3037 Err codemadness.org 70 i 3038
Err codemadness.org 70 i 3039

Years ago, the hunt for the cheapest 10gbe NICs resulted in buying Mellanox ConnectX-2 single-port 10gbe network cards from eBay for around $10. Nowadays those cards have increased in cost to around $20-30. While still cheap, not quite the cheapest. There are now alternatives!
Err codemadness.org 70 i 3040 Before diving into details, let’s get something very clear. If you want the absolute simplest plug-and-play 10gbe LAN for your homelab, pay the extra for Mellanox. If you’re willing to go hands-on, do some simple manual configuration and installation, read on for my experiences with Emulex 10gbe NICs.
Err codemadness.org 70 i 3041 Emulex NICs can often be had for around $15 on eBay, sometimes even cheaper. I recently picked up a set of 4 of these cards, which came bundled with 6 SFP+ 10g-SR modules for a grand total of $47.48. Considering I can usually find SFP+ modules for about $5/ea, these alone were worth $30.

Err codemadness.org 70 i 3042 Err codemadness.org 70 i 3043
    Err codemadness.org 70 i 3044
  • I have also tried some Solarflare cards that I found cheap, they work ok, but are pickier about optics, and tend to be focused on low-latency, so often don’t manage to saturate the full 10 gbps, topping out around 8 gbps.
  • Err codemadness.org 70 i 3045
  • I have been using fs.com for optics, patch cables, and DACs. I find DACs are usually cheaper if you are just going between a server and a switch in the same rack, or direct between 2 servers. Err codemadness.org 70 i 3046 ***
  • Err codemadness.org 70 i 3047
Err codemadness.org 70 i 3048
Err codemadness.org 70 i 3049 Err codemadness.org 70 i 3050

In Search of 2.11BSD, as released

Err codemadness.org 70 i 3051 Err codemadness.org 70 i 3052
Err codemadness.org 70 i 3053

Almost all of the BSD releases have been well preserved. If you want to find 1BSD, or 2BSD or 4.3-TAHOE BSD you can find them online with little fuss. However, if you search for 2.11BSD, you'll find it easily enough, but it won't be the original. You'll find either the latest patched version (2.11BSD pl 469), or one of the earlier popular version (pl 430 is popular). You can even find the RetroBSD project which used 2.11BSD as a starting point to create systems for tiny mips-based PIC controllers. You'll find every single patch that's been issued for the system.

Err codemadness.org 70 i 3054 Err codemadness.org 70 i 3055
Err codemadness.org 70 i 3056
Err codemadness.org 70 i 3057 Err codemadness.org 70 i 3058

News Roundup

Err codemadness.org 70 i 3059 Err codemadness.org 70 i 3060

Fakecracker: NetBSD as a Function Based MicroVM

Err codemadness.org 70 i 3061 Err codemadness.org 70 i 3062
Err codemadness.org 70 i 3063

In November 2018 AWS published an Open Source tool called Firecracker, mostly a virtual machine monitor relying on KVM, a small sized Linux kernel, and a stripped down version of Qemu. What baffled me was the speed at which the virtual machine would fire up and run the service. The whole process is to be compared to a container, but safer, as it does not share the kernel nor any resource, it is a separate and dedicated virtual machine.
Err codemadness.org 70 i 3064 If you want to learn more on Firecracker‘s internals, here’s a very well put article.

Err codemadness.org 70 i 3065 Err codemadness.org 70 i 3066
Err codemadness.org 70 i 3067
Err codemadness.org 70 i 3068 Err codemadness.org 70 i 3069

First powerpc64 snapshots available for OpenBSD

Err codemadness.org 70 i 3070 Err codemadness.org 70 i 3071
Err codemadness.org 70 i 3072

Since we reported the first bits of powerpc64 support going into the tree on 16 May, work has progressed at a steady pace, resulting in snapshots now being available for this platform.
Err codemadness.org 70 i 3073 So, if you have a POWER9 system idling around, go to your nearest mirror and fetch this snapshot. Keep in mind that as this is still very early days, very little handholding is available - you are basically on your own.

Err codemadness.org 70 i 3074 Err codemadness.org 70 i 3075
Err codemadness.org 70 i 3076
Err codemadness.org 70 i 3077 Err codemadness.org 70 i 3078

OPNsense 20.1.8 released

Err codemadness.org 70 i 3079 Err codemadness.org 70 i 3080
Err codemadness.org 70 i 3081

Sorry about the delay while we chased a race condition in the updates back to an issue with the latest FreeBSD package manager updates. For now we reverted to our current version but all relevant third party packages have been updated as updates became available over the last weeks, e.g. cURL and Python, and hostapd / wpa_supplicant amongst others.

Err codemadness.org 70 i 3082 Err codemadness.org 70 i 3083
Err codemadness.org 70 i 3084
Err codemadness.org 70 i 3085 Err codemadness.org 70 i 3086

Beastie Bits

Err codemadness.org 70 i 3087 Err codemadness.org 70 i 3088 Err codemadness.org 70 i 3093 Err codemadness.org 70 i 3094
Err codemadness.org 70 i 3095 Err codemadness.org 70 i 3096

Tarsnap

Err codemadness.org 70 i 3097 Err codemadness.org 70 i 3098
    Err codemadness.org 70 i 3099
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 3100
Err codemadness.org 70 i 3101 Err codemadness.org 70 i 3102

Feedback/Questions

Err codemadness.org 70 i 3103 Err codemadness.org 70 i 3104 Err codemadness.org 70 i 3109 Err codemadness.org 70 i 3110
Err codemadness.org 70 i 3111 Err codemadness.org 70 i 3112
    Err codemadness.org 70 i 3113
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 3114 ***
  • Err codemadness.org 70 i 3115

Special Guest: Warner Losh.

]]> Err codemadness.org 70 i 3116
Err codemadness.org 70 i 3117 Err codemadness.org 70 i 3118 Emulex: The Cheapest 10gbe for Your Homelab, In Search of 2.11BSD, as released, Fakecracker: NetBSD as a Function Based MicroVM, First powerpc64 snapshots available for OpenBSD, OPNsense 20.1.8 released, and more.

Err codemadness.org 70 i 3119 Err codemadness.org 70 i 3120

NOTES
Err codemadness.org 70 i 3121 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 3122 Err codemadness.org 70 i 3123

Headlines

Err codemadness.org 70 i 3124 Err codemadness.org 70 i 3125

Emulex: The Cheapest 10gbe for Your Homelab

Err codemadness.org 70 i 3126 Err codemadness.org 70 i 3127
Err codemadness.org 70 i 3128

Years ago, the hunt for the cheapest 10gbe NICs resulted in buying Mellanox ConnectX-2 single-port 10gbe network cards from eBay for around $10. Nowadays those cards have increased in cost to around $20-30. While still cheap, not quite the cheapest. There are now alternatives!
Err codemadness.org 70 i 3129 Before diving into details, let’s get something very clear. If you want the absolute simplest plug-and-play 10gbe LAN for your homelab, pay the extra for Mellanox. If you’re willing to go hands-on, do some simple manual configuration and installation, read on for my experiences with Emulex 10gbe NICs.
Err codemadness.org 70 i 3130 Emulex NICs can often be had for around $15 on eBay, sometimes even cheaper. I recently picked up a set of 4 of these cards, which came bundled with 6 SFP+ 10g-SR modules for a grand total of $47.48. Considering I can usually find SFP+ modules for about $5/ea, these alone were worth $30.

Err codemadness.org 70 i 3131 Err codemadness.org 70 i 3132
    Err codemadness.org 70 i 3133
  • I have also tried some Solarflare cards that I found cheap, they work ok, but are pickier about optics, and tend to be focused on low-latency, so often don’t manage to saturate the full 10 gbps, topping out around 8 gbps.
  • Err codemadness.org 70 i 3134
  • I have been using fs.com for optics, patch cables, and DACs. I find DACs are usually cheaper if you are just going between a server and a switch in the same rack, or direct between 2 servers. Err codemadness.org 70 i 3135 ***
  • Err codemadness.org 70 i 3136
Err codemadness.org 70 i 3137
Err codemadness.org 70 i 3138 Err codemadness.org 70 i 3139

In Search of 2.11BSD, as released

Err codemadness.org 70 i 3140 Err codemadness.org 70 i 3141
Err codemadness.org 70 i 3142

Almost all of the BSD releases have been well preserved. If you want to find 1BSD, or 2BSD or 4.3-TAHOE BSD you can find them online with little fuss. However, if you search for 2.11BSD, you'll find it easily enough, but it won't be the original. You'll find either the latest patched version (2.11BSD pl 469), or one of the earlier popular version (pl 430 is popular). You can even find the RetroBSD project which used 2.11BSD as a starting point to create systems for tiny mips-based PIC controllers. You'll find every single patch that's been issued for the system.

Err codemadness.org 70 i 3143 Err codemadness.org 70 i 3144
Err codemadness.org 70 i 3145
Err codemadness.org 70 i 3146 Err codemadness.org 70 i 3147

News Roundup

Err codemadness.org 70 i 3148 Err codemadness.org 70 i 3149

Fakecracker: NetBSD as a Function Based MicroVM

Err codemadness.org 70 i 3150 Err codemadness.org 70 i 3151
Err codemadness.org 70 i 3152

In November 2018 AWS published an Open Source tool called Firecracker, mostly a virtual machine monitor relying on KVM, a small sized Linux kernel, and a stripped down version of Qemu. What baffled me was the speed at which the virtual machine would fire up and run the service. The whole process is to be compared to a container, but safer, as it does not share the kernel nor any resource, it is a separate and dedicated virtual machine.
Err codemadness.org 70 i 3153 If you want to learn more on Firecracker‘s internals, here’s a very well put article.

Err codemadness.org 70 i 3154 Err codemadness.org 70 i 3155
Err codemadness.org 70 i 3156
Err codemadness.org 70 i 3157 Err codemadness.org 70 i 3158

First powerpc64 snapshots available for OpenBSD

Err codemadness.org 70 i 3159 Err codemadness.org 70 i 3160
Err codemadness.org 70 i 3161

Since we reported the first bits of powerpc64 support going into the tree on 16 May, work has progressed at a steady pace, resulting in snapshots now being available for this platform.
Err codemadness.org 70 i 3162 So, if you have a POWER9 system idling around, go to your nearest mirror and fetch this snapshot. Keep in mind that as this is still very early days, very little handholding is available - you are basically on your own.

Err codemadness.org 70 i 3163 Err codemadness.org 70 i 3164
Err codemadness.org 70 i 3165
Err codemadness.org 70 i 3166 Err codemadness.org 70 i 3167

OPNsense 20.1.8 released

Err codemadness.org 70 i 3168 Err codemadness.org 70 i 3169
Err codemadness.org 70 i 3170

Sorry about the delay while we chased a race condition in the updates back to an issue with the latest FreeBSD package manager updates. For now we reverted to our current version but all relevant third party packages have been updated as updates became available over the last weeks, e.g. cURL and Python, and hostapd / wpa_supplicant amongst others.

Err codemadness.org 70 i 3171 Err codemadness.org 70 i 3172
Err codemadness.org 70 i 3173
Err codemadness.org 70 i 3174 Err codemadness.org 70 i 3175

Beastie Bits

Err codemadness.org 70 i 3176 Err codemadness.org 70 i 3177 Err codemadness.org 70 i 3182 Err codemadness.org 70 i 3183
Err codemadness.org 70 i 3184 Err codemadness.org 70 i 3185

Tarsnap

Err codemadness.org 70 i 3186 Err codemadness.org 70 i 3187
    Err codemadness.org 70 i 3188
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 3189
Err codemadness.org 70 i 3190 Err codemadness.org 70 i 3191

Feedback/Questions

Err codemadness.org 70 i 3192 Err codemadness.org 70 i 3193 Err codemadness.org 70 i 3198 Err codemadness.org 70 i 3199
Err codemadness.org 70 i 3200 Err codemadness.org 70 i 3201
    Err codemadness.org 70 i 3202
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 3203 ***
  • Err codemadness.org 70 i 3204

Special Guest: Warner Losh.

]]> Err codemadness.org 70 i 3205
Err codemadness.org 70 i 3206 https://fireside.fm/player/v2/FYhhasNR+PKuj5dD2 Err codemadness.org 70 i 3207 Err codemadness.org 70 i 3208 ]]> Err codemadness.org 70 i 3209 Err codemadness.org 70 i 3210
Err codemadness.org 70 i 3211 Err codemadness.org 70 i 3212 360: Full circle Err codemadness.org 70 i 3213 https://www.bsdnow.tv/360 Err codemadness.org 70 i 3214 69d88af7-54da-4612-9fc2-84ffae001c46 Err codemadness.org 70 i 3215 Thu, 23 Jul 2020 05:00:00 -0700 Err codemadness.org 70 i 3216 Allan Jude Err codemadness.org 70 i 3217 Err codemadness.org 70 i 3218 full Err codemadness.org 70 i 3219 Allan Jude Err codemadness.org 70 i 3220 Chasing a bad commit, New FreeBSD Core Team elected, Getting Started with NetBSD on the Pinebook Pro, FreeBSD on the Intel 10th Gen i3 NUC, pf table size check and change, and more. Err codemadness.org 70 i 3221 42:27 Err codemadness.org 70 i 3222 no Err codemadness.org 70 i 3223 Err codemadness.org 70 i 3224 Chasing a bad commit, New FreeBSD Core Team elected, Getting Started with NetBSD on the Pinebook Pro, FreeBSD on the Intel 10th Gen i3 NUC, pf table size check and change, and more. Err codemadness.org 70 i 3225 NOTES Err codemadness.org 70 i 3226 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 3227 Headlines Err codemadness.org 70 i 3228 Chasing a bad commit (https://vishaltelangre.com/chasing-a-bad-commit/) Err codemadness.org 70 i 3229 While working on a big project where multiple teams merge their feature branches frequently into a release Git branch, developers often run into situations where they find that some of their work have been either removed, modified or affected by someone else's work accidentally. It can happen in smaller teams as well. Two features could have been working perfectly fine until they got merged together and broke something. That's a highly possible case. There are many other cases which could cause such hard to understand and subtle bugs which even continuous integration (CI) systems running the entire test suite of our projects couldn't catch. Err codemadness.org 70 i 3230 We are not going to discuss how such subtle bugs can get into our release branch because that's just a wild territory out there. Instead, we can definitely discuss about how to find a commit that deviated from an expected outcome of a certain feature. The deviation could be any behaviour of our code that we can measure distinctively — either good or bad in general. Err codemadness.org 70 i 3231 New FreeBSD Core Team Elected (https://www.freebsdnews.com/2020/07/14/new-freebsd-core-team-elected/) Err codemadness.org 70 i 3232 The FreeBSD Project is pleased to announce the completion of the 2020 Core Team election. Active committers to the project have elected your Eleventh FreeBSD Core Team.! Err codemadness.org 70 i 3233 Baptiste Daroussin (bapt) Err codemadness.org 70 i 3234 Ed Maste (emaste) Err codemadness.org 70 i 3235 George V. Neville-Neil (gnn) Err codemadness.org 70 i 3236 Hiroki Sato (hrs) Err codemadness.org 70 i 3237 Kyle Evans (kevans) Err codemadness.org 70 i 3238 Mark Johnston (markj) Err codemadness.org 70 i 3239 Scott Long (scottl) Err codemadness.org 70 i 3240 Sean Chittenden (seanc) Err codemadness.org 70 i 3241 Warner Losh (imp) Err codemadness.org 70 i 3242 *** Err codemadness.org 70 i 3243 News Roundup Err codemadness.org 70 i 3244 Getting Started with NetBSD on the Pinebook Pro (https://bentsukun.ch/posts/pinebook-pro-netbsd/) Err codemadness.org 70 i 3245 If you buy a Pinebook Pro now, it comes with Manjaro Linux on the internal eMMC storage. Let’s install NetBSD instead! Err codemadness.org 70 i 3246 The easiest way to get started is to buy a decent micro-SD card (what sort of markings it should have is a science of its own, by the way) and install NetBSD on that. On a warm boot (i.e. when rebooting a running system), the micro-SD card has priority compared to the eMMC, so the system will boot from there. Err codemadness.org 70 i 3247 + A FreeBSD developer has borrowed some of the NetBSD code to get audio working on RockPro64 and Pinebook Pro: https://twitter.com/kernelnomicon/status/1282790609778905088 Err codemadness.org 70 i 3248 FreeBSD on the Intel 10th Gen i3 NUC (https://adventurist.me/posts/00300) Err codemadness.org 70 i 3249 I have ended up with some 10th Gen i3 NUC's (NUC10i3FNH to be specific) to put to work in my testbed. These are quite new devices, the build date on the boxes is 13APR2020. Before I figure out what their true role is (one of them might have to run linux) I need to install FreeBSD -CURRENT and see how performance and hardware support is. Err codemadness.org 70 i 3250 pf table size check and change (https://www.dragonflydigest.com/2020/06/29/24698.html) Err codemadness.org 70 i 3251 Did you know there’s a default size limit to pf’s state table? I did not, but it makes sense that there is one. If for some reason you bump into this limit (difficult for home use, I’d think), here’s how you change it (http://lists.dragonflybsd.org/pipermail/users/2020-June/381261.html) Err codemadness.org 70 i 3252 There is a table-entries limit specified, you can see current settings with Err codemadness.org 70 i 3253 'pfctl -s all'. You can adjust the limits in the /etc/pf.conf file Err codemadness.org 70 i 3254 containing the rules with a line like this near the top: Err codemadness.org 70 i 3255 set limit table-entries 100000 Err codemadness.org 70 i 3256 + In the original mail thread, there is mention of the FreeBSD sysctl net.pf.request_maxcount, which controls the maximum number of entries that can be sent as a single ioctl(). This allows the user to adjust the memory limit for how big of a list the kernel is willing to allocate memory for. Err codemadness.org 70 i 3257 Beastie Bits Err codemadness.org 70 i 3258 tmux and bhyve (https://callfortesting.org/tmux/) Err codemadness.org 70 i 3259 Azure and FreeBSD (https://azuremarketplace.microsoft.com/en-us/marketplace/apps/thefreebsdfoundation.freebsd-12_1) Err codemadness.org 70 i 3260 Groff Tutorial (https://www.youtube.com/watch?v=bvkmnK6-qao&feature=youtu.be) Err codemadness.org 70 i 3261 *** Err codemadness.org 70 i 3262 ###Tarsnap Err codemadness.org 70 i 3263 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 3264 Tarsnap Mastery (https://mwl.io/nonfiction/tools#tarsnap) Err codemadness.org 70 i 3265 Feedback/Questions Err codemadness.org 70 i 3266 Chris - ZFS Question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/360/feedback/Chris%20-%20zfs%20question.md) Err codemadness.org 70 i 3267 Patrick - Tarsnap (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/360/feedback/Patrick%20-%20Tarsnap.md) Err codemadness.org 70 i 3268 Pin - pkgsrc (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/360/feedback/pin%20-%20pkgsrc.md) Err codemadness.org 70 i 3269 *** Err codemadness.org 70 i 3270 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 3271 *** Err codemadness.org 70 i 3272 Err codemadness.org 70 i 3273 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, berkeley, software, distribution, zfs, interview, commit, core team, freebsd core team, election, elected, pinebook, pinebook pro, i3, Intel, Intel i3, i3 NUC, pf, packet filter, table size, table size check Err codemadness.org 70 i 3274 Err codemadness.org 70 i 3275 Chasing a bad commit, New FreeBSD Core Team elected, Getting Started with NetBSD on the Pinebook Pro, FreeBSD on the Intel 10th Gen i3 NUC, pf table size check and change, and more.

Err codemadness.org 70 i 3276 Err codemadness.org 70 i 3277

NOTES
Err codemadness.org 70 i 3278 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 3279 Err codemadness.org 70 i 3280

Headlines

Err codemadness.org 70 i 3281 Err codemadness.org 70 i 3282

Chasing a bad commit

Err codemadness.org 70 i 3283 Err codemadness.org 70 i 3284
Err codemadness.org 70 i 3285

While working on a big project where multiple teams merge their feature branches frequently into a release Git branch, developers often run into situations where they find that some of their work have been either removed, modified or affected by someone else's work accidentally. It can happen in smaller teams as well. Two features could have been working perfectly fine until they got merged together and broke something. That's a highly possible case. There are many other cases which could cause such hard to understand and subtle bugs which even continuous integration (CI) systems running the entire test suite of our projects couldn't catch.
Err codemadness.org 70 i 3286 We are not going to discuss how such subtle bugs can get into our release branch because that's just a wild territory out there. Instead, we can definitely discuss about how to find a commit that deviated from an expected outcome of a certain feature. The deviation could be any behaviour of our code that we can measure distinctively — either good or bad in general.

Err codemadness.org 70 i 3287
Err codemadness.org 70 i 3288 Err codemadness.org 70 i 3289
Err codemadness.org 70 i 3290 Err codemadness.org 70 i 3291

New FreeBSD Core Team Elected

Err codemadness.org 70 i 3292 Err codemadness.org 70 i 3293
Err codemadness.org 70 i 3294

The FreeBSD Project is pleased to announce the completion of the 2020 Core Team election. Active committers to the project have elected your Eleventh FreeBSD Core Team.!

Err codemadness.org 70 i 3295
Err codemadness.org 70 i 3296 Err codemadness.org 70 i 3297
    Err codemadness.org 70 i 3298
  • Baptiste Daroussin (bapt)
  • Err codemadness.org 70 i 3299
  • Ed Maste (emaste)
  • Err codemadness.org 70 i 3300
  • George V. Neville-Neil (gnn)
  • Err codemadness.org 70 i 3301
  • Hiroki Sato (hrs)
  • Err codemadness.org 70 i 3302
  • Kyle Evans (kevans)
  • Err codemadness.org 70 i 3303
  • Mark Johnston (markj)
  • Err codemadness.org 70 i 3304
  • Scott Long (scottl)
  • Err codemadness.org 70 i 3305
  • Sean Chittenden (seanc)
  • Err codemadness.org 70 i 3306
  • Warner Losh (imp) Err codemadness.org 70 i 3307 ***
  • Err codemadness.org 70 i 3308
Err codemadness.org 70 i 3309 Err codemadness.org 70 i 3310

News Roundup

Err codemadness.org 70 i 3311 Err codemadness.org 70 i 3312

Getting Started with NetBSD on the Pinebook Pro

Err codemadness.org 70 i 3313 Err codemadness.org 70 i 3314
Err codemadness.org 70 i 3315

If you buy a Pinebook Pro now, it comes with Manjaro Linux on the internal eMMC storage. Let’s install NetBSD instead!
Err codemadness.org 70 i 3316 The easiest way to get started is to buy a decent micro-SD card (what sort of markings it should have is a science of its own, by the way) and install NetBSD on that. On a warm boot (i.e. when rebooting a running system), the micro-SD card has priority compared to the eMMC, so the system will boot from there.

Err codemadness.org 70 i 3317 Err codemadness.org 70 i 3318 Err codemadness.org 70 i 3322
Err codemadness.org 70 i 3323 Err codemadness.org 70 i 3324

FreeBSD on the Intel 10th Gen i3 NUC

Err codemadness.org 70 i 3325 Err codemadness.org 70 i 3326
Err codemadness.org 70 i 3327

I have ended up with some 10th Gen i3 NUC's (NUC10i3FNH to be specific) to put to work in my testbed. These are quite new devices, the build date on the boxes is 13APR2020. Before I figure out what their true role is (one of them might have to run linux) I need to install FreeBSD -CURRENT and see how performance and hardware support is.

Err codemadness.org 70 i 3328
Err codemadness.org 70 i 3329 Err codemadness.org 70 i 3330
Err codemadness.org 70 i 3331 Err codemadness.org 70 i 3332

pf table size check and change

Err codemadness.org 70 i 3333 Err codemadness.org 70 i 3334
Err codemadness.org 70 i 3335

Did you know there’s a default size limit to pf’s state table? I did not, but it makes sense that there is one. If for some reason you bump into this limit (difficult for home use, I’d think), here’s how you change it
Err codemadness.org 70 i 3336 There is a table-entries limit specified, you can see current settings with
Err codemadness.org 70 i 3337 'pfctl -s all'. You can adjust the limits in the /etc/pf.conf file
Err codemadness.org 70 i 3338 containing the rules with a line like this near the top:
Err codemadness.org 70 i 3339 set limit table-entries 100000

Err codemadness.org 70 i 3340 Err codemadness.org 70 i 3341
    Err codemadness.org 70 i 3342
  • In the original mail thread, there is mention of the FreeBSD sysctl net.pf.request_maxcount, which controls the maximum number of entries that can be sent as a single ioctl(). This allows the user to adjust the memory limit for how big of a list the kernel is willing to allocate memory for. Err codemadness.org 70 i 3343 ***
  • Err codemadness.org 70 i 3344
Err codemadness.org 70 i 3345
Err codemadness.org 70 i 3346 Err codemadness.org 70 i 3347

Beastie Bits

Err codemadness.org 70 i 3348 Err codemadness.org 70 i 3349
    Err codemadness.org 70 i 3350
  • tmux and bhyve
  • Err codemadness.org 70 i 3351
  • Azure and FreeBSD
  • Err codemadness.org 70 i 3352
  • Groff Tutorial Err codemadness.org 70 i 3353 *** Err codemadness.org 70 i 3354 ###Tarsnap
  • Err codemadness.org 70 i 3355
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 3356 Tarsnap Mastery
  • Err codemadness.org 70 i 3357
Err codemadness.org 70 i 3358 Err codemadness.org 70 i 3359

Feedback/Questions

Err codemadness.org 70 i 3360 Err codemadness.org 70 i 3361
    Err codemadness.org 70 i 3362
  • Chris - ZFS Question
  • Err codemadness.org 70 i 3363
  • Patrick - Tarsnap
  • Err codemadness.org 70 i 3364
  • Pin - pkgsrc Err codemadness.org 70 i 3365 ***
  • Err codemadness.org 70 i 3366
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 3367 ***
  • Err codemadness.org 70 i 3368
]]> Err codemadness.org 70 i 3369
Err codemadness.org 70 i 3370 Err codemadness.org 70 i 3371 Chasing a bad commit, New FreeBSD Core Team elected, Getting Started with NetBSD on the Pinebook Pro, FreeBSD on the Intel 10th Gen i3 NUC, pf table size check and change, and more.

Err codemadness.org 70 i 3372 Err codemadness.org 70 i 3373

NOTES
Err codemadness.org 70 i 3374 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 3375 Err codemadness.org 70 i 3376

Headlines

Err codemadness.org 70 i 3377 Err codemadness.org 70 i 3378

Chasing a bad commit

Err codemadness.org 70 i 3379 Err codemadness.org 70 i 3380
Err codemadness.org 70 i 3381

While working on a big project where multiple teams merge their feature branches frequently into a release Git branch, developers often run into situations where they find that some of their work have been either removed, modified or affected by someone else's work accidentally. It can happen in smaller teams as well. Two features could have been working perfectly fine until they got merged together and broke something. That's a highly possible case. There are many other cases which could cause such hard to understand and subtle bugs which even continuous integration (CI) systems running the entire test suite of our projects couldn't catch.
Err codemadness.org 70 i 3382 We are not going to discuss how such subtle bugs can get into our release branch because that's just a wild territory out there. Instead, we can definitely discuss about how to find a commit that deviated from an expected outcome of a certain feature. The deviation could be any behaviour of our code that we can measure distinctively — either good or bad in general.

Err codemadness.org 70 i 3383
Err codemadness.org 70 i 3384 Err codemadness.org 70 i 3385
Err codemadness.org 70 i 3386 Err codemadness.org 70 i 3387

New FreeBSD Core Team Elected

Err codemadness.org 70 i 3388 Err codemadness.org 70 i 3389
Err codemadness.org 70 i 3390

The FreeBSD Project is pleased to announce the completion of the 2020 Core Team election. Active committers to the project have elected your Eleventh FreeBSD Core Team.!

Err codemadness.org 70 i 3391
Err codemadness.org 70 i 3392 Err codemadness.org 70 i 3393
    Err codemadness.org 70 i 3394
  • Baptiste Daroussin (bapt)
  • Err codemadness.org 70 i 3395
  • Ed Maste (emaste)
  • Err codemadness.org 70 i 3396
  • George V. Neville-Neil (gnn)
  • Err codemadness.org 70 i 3397
  • Hiroki Sato (hrs)
  • Err codemadness.org 70 i 3398
  • Kyle Evans (kevans)
  • Err codemadness.org 70 i 3399
  • Mark Johnston (markj)
  • Err codemadness.org 70 i 3400
  • Scott Long (scottl)
  • Err codemadness.org 70 i 3401
  • Sean Chittenden (seanc)
  • Err codemadness.org 70 i 3402
  • Warner Losh (imp) Err codemadness.org 70 i 3403 ***
  • Err codemadness.org 70 i 3404
Err codemadness.org 70 i 3405 Err codemadness.org 70 i 3406

News Roundup

Err codemadness.org 70 i 3407 Err codemadness.org 70 i 3408

Getting Started with NetBSD on the Pinebook Pro

Err codemadness.org 70 i 3409 Err codemadness.org 70 i 3410
Err codemadness.org 70 i 3411

If you buy a Pinebook Pro now, it comes with Manjaro Linux on the internal eMMC storage. Let’s install NetBSD instead!
Err codemadness.org 70 i 3412 The easiest way to get started is to buy a decent micro-SD card (what sort of markings it should have is a science of its own, by the way) and install NetBSD on that. On a warm boot (i.e. when rebooting a running system), the micro-SD card has priority compared to the eMMC, so the system will boot from there.

Err codemadness.org 70 i 3413 Err codemadness.org 70 i 3414 Err codemadness.org 70 i 3418
Err codemadness.org 70 i 3419 Err codemadness.org 70 i 3420

FreeBSD on the Intel 10th Gen i3 NUC

Err codemadness.org 70 i 3421 Err codemadness.org 70 i 3422
Err codemadness.org 70 i 3423

I have ended up with some 10th Gen i3 NUC's (NUC10i3FNH to be specific) to put to work in my testbed. These are quite new devices, the build date on the boxes is 13APR2020. Before I figure out what their true role is (one of them might have to run linux) I need to install FreeBSD -CURRENT and see how performance and hardware support is.

Err codemadness.org 70 i 3424
Err codemadness.org 70 i 3425 Err codemadness.org 70 i 3426
Err codemadness.org 70 i 3427 Err codemadness.org 70 i 3428

pf table size check and change

Err codemadness.org 70 i 3429 Err codemadness.org 70 i 3430
Err codemadness.org 70 i 3431

Did you know there’s a default size limit to pf’s state table? I did not, but it makes sense that there is one. If for some reason you bump into this limit (difficult for home use, I’d think), here’s how you change it
Err codemadness.org 70 i 3432 There is a table-entries limit specified, you can see current settings with
Err codemadness.org 70 i 3433 'pfctl -s all'. You can adjust the limits in the /etc/pf.conf file
Err codemadness.org 70 i 3434 containing the rules with a line like this near the top:
Err codemadness.org 70 i 3435 set limit table-entries 100000

Err codemadness.org 70 i 3436 Err codemadness.org 70 i 3437
    Err codemadness.org 70 i 3438
  • In the original mail thread, there is mention of the FreeBSD sysctl net.pf.request_maxcount, which controls the maximum number of entries that can be sent as a single ioctl(). This allows the user to adjust the memory limit for how big of a list the kernel is willing to allocate memory for. Err codemadness.org 70 i 3439 ***
  • Err codemadness.org 70 i 3440
Err codemadness.org 70 i 3441
Err codemadness.org 70 i 3442 Err codemadness.org 70 i 3443

Beastie Bits

Err codemadness.org 70 i 3444 Err codemadness.org 70 i 3445
    Err codemadness.org 70 i 3446
  • tmux and bhyve
  • Err codemadness.org 70 i 3447
  • Azure and FreeBSD
  • Err codemadness.org 70 i 3448
  • Groff Tutorial Err codemadness.org 70 i 3449 *** Err codemadness.org 70 i 3450 ###Tarsnap
  • Err codemadness.org 70 i 3451
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 3452 Tarsnap Mastery
  • Err codemadness.org 70 i 3453
Err codemadness.org 70 i 3454 Err codemadness.org 70 i 3455

Feedback/Questions

Err codemadness.org 70 i 3456 Err codemadness.org 70 i 3457
    Err codemadness.org 70 i 3458
  • Chris - ZFS Question
  • Err codemadness.org 70 i 3459
  • Patrick - Tarsnap
  • Err codemadness.org 70 i 3460
  • Pin - pkgsrc Err codemadness.org 70 i 3461 ***
  • Err codemadness.org 70 i 3462
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 3463 ***
  • Err codemadness.org 70 i 3464
]]> Err codemadness.org 70 i 3465
Err codemadness.org 70 i 3466 https://fireside.fm/player/v2/FYhhasNR+Wa_ddHyR Err codemadness.org 70 i 3467 Err codemadness.org 70 i 3468 ]]> Err codemadness.org 70 i 3469 Err codemadness.org 70 i 3470
Err codemadness.org 70 i 3471 Err codemadness.org 70 i 3472 359: Throwaway Browser Err codemadness.org 70 i 3473 https://www.bsdnow.tv/359 Err codemadness.org 70 i 3474 b066740d-03a5-423b-9ab9-8936c3246979 Err codemadness.org 70 i 3475 Thu, 16 Jul 2020 04:00:00 -0700 Err codemadness.org 70 i 3476 Allan Jude Err codemadness.org 70 i 3477 Err codemadness.org 70 i 3478 full Err codemadness.org 70 i 3479 Allan Jude Err codemadness.org 70 i 3480 Throw-Away Browser on FreeBSD With "pot" within 5 minutes, OmniOS as OpenBSD guest with bhyve, BSD vs Linux distro development, My FreeBSD Laptop Build, FreeBSD CURRENT Binary Upgrades, and more. Err codemadness.org 70 i 3481 43:25 Err codemadness.org 70 i 3482 no Err codemadness.org 70 i 3483 Err codemadness.org 70 i 3484 Throw-Away Browser on FreeBSD With "pot" within 5 minutes, OmniOS as OpenBSD guest with bhyve, BSD vs Linux distro development, My FreeBSD Laptop Build, FreeBSD CURRENT Binary Upgrades, and more. Err codemadness.org 70 i 3485 NOTES Err codemadness.org 70 i 3486 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 3487 Headlines Err codemadness.org 70 i 3488 Throw-Away Browser on FreeBSD With "pot" Within 5 Minutes (https://honeyguide.eu/posts/pot-throwaway-firefox/) Err codemadness.org 70 i 3489 pot is a great and relatively new jail management tool. It offers DevOps style provisioning and can even be used to provide Docker-like, scalable cloud services together with nomad and consul (more about this in Orchestrating jails with nomad and pot). Err codemadness.org 70 i 3490 OpenBSD guest with bhyve - OmniOS (https://www.pbdigital.org/omniosce/bhyve/openbsd/2020/06/08/bhyve-zones-omnios.html) Err codemadness.org 70 i 3491 Today I will be creating a OpenBSD guest via bhyve on OmniOS. I will also be adding a Pass Through Ethernet Controller so I can have a multi-homed guest that will serve as a firewall/router. Err codemadness.org 70 i 3492 This post will cover setting up bhyve on OmniOS, so it will also be a good introduction to bhyve. As well, I look into OpenBSD’s uEFI boot loader so if you have had trouble with this, then you are in the right place. Err codemadness.org 70 i 3493 News Roundup Err codemadness.org 70 i 3494 BSD versus Linux distribution development (https://distrowatch.com/weekly.php?issue=20200622#qa) Err codemadness.org 70 i 3495 Q: Comparing-apples-to-BSDs asks: I was reading one of the old articles from the archive. One of the things mentioned was how the BSDs have a distinct approach in terms of packaging the base system relative to userland apps, and that the Linux distros at the time were not following the same practice. Are there Linux distros that have adopted the same approach in modern times? If not, are there technical limitations that are preventing them from doing so, such as some distros supporting multiple kernel versions maybe? Err codemadness.org 70 i 3496 DistroWatch answers: In the article mentioned above, I made the observation that Linux distributions tend to take one of two approaches when it comes to packaging software. Generally a Linux distribution will either offer a rolling release, where virtually all packages are regularly upgraded to their latest stable releases, or a fixed release where almost all packages are kept at a set version number and only receive bug fixes for the life cycle of the distribution. Projects like Arch Linux and Void are popular examples of rolling, always-up-to-date distributions while Fedora and Ubuntu offer fixed platforms. Err codemadness.org 70 i 3497 My FreeBSD Laptop Build (https://corrupted.io/2020/06/21/my-freebsd-laptop-build.html) Err codemadness.org 70 i 3498 I have always liked Thinkpad hardware and when I started to do more commuting I decided I needed something that had a decent sized screen but fit well on a bus. Luckily about this time Lenovo gave me a nice gift in the Thinkpad X390. Its basically the famous X2xx series but with a 13” screen and smaller bezel. Err codemadness.org 70 i 3499 So with this laptop I figured it was time to actually put the docs together on how I got my FreeBSD workstation working on it. I will here in the near future have another post that will cover this for HardenedBSD as well since the steps are similar but have a few extra gotchas due to the extra hardening. Err codemadness.org 70 i 3500 FreeBSD CURRENT Binary Upgrades (http://up.bsd.lv) Err codemadness.org 70 i 3501 Disclaimer Err codemadness.org 70 i 3502 This proof-of-concept is not a publication of FreeBSD. Err codemadness.org 70 i 3503 Description Err codemadness.org 70 i 3504 up.bsd.lv is a proof-of-concept of binary updates for FreeBSD/amd64 CURRENT/HEAD to facilitate the exhaustive testing of FreeBSD and the bhyve hypervisor and OpenZFS 2.0 specifically. Updates are based on the SVN revisions of official FreeBSD Release Engineering bi-monthly snapshots. Err codemadness.org 70 i 3505 Tarsnap Err codemadness.org 70 i 3506 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 3507 Feedback/Questions Err codemadness.org 70 i 3508 Karl - pfsense (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/359/Feedback/Karl%20-%20pfsense.md) Err codemadness.org 70 i 3509 Val - esxi question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/359/Feedback/Val%20-%20esxi%20question.md) Err codemadness.org 70 i 3510 lars - openbsd router hardware (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/359/Feedback/lars%20-%20openbsd%20router%20hardware.md) Err codemadness.org 70 i 3511 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 3512 Err codemadness.org 70 i 3513 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, zfs, interview, browser, throw-away, throw away, pot, omnios, vm, guest, virtualization, bhyve, linux, development, distribution, laptop, binary upgrades Err codemadness.org 70 i 3514 Err codemadness.org 70 i 3515 Throw-Away Browser on FreeBSD With "pot" within 5 minutes, OmniOS as OpenBSD guest with bhyve, BSD vs Linux distro development, My FreeBSD Laptop Build, FreeBSD CURRENT Binary Upgrades, and more.

Err codemadness.org 70 i 3516 Err codemadness.org 70 i 3517

NOTES
Err codemadness.org 70 i 3518 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 3519 Err codemadness.org 70 i 3520

Headlines

Err codemadness.org 70 i 3521 Err codemadness.org 70 i 3522

Throw-Away Browser on FreeBSD With "pot" Within 5 Minutes

Err codemadness.org 70 i 3523 Err codemadness.org 70 i 3524
Err codemadness.org 70 i 3525

pot is a great and relatively new jail management tool. It offers DevOps style provisioning and can even be used to provide Docker-like, scalable cloud services together with nomad and consul (more about this in Orchestrating jails with nomad and pot).

Err codemadness.org 70 i 3526
Err codemadness.org 70 i 3527 Err codemadness.org 70 i 3528
Err codemadness.org 70 i 3529 Err codemadness.org 70 i 3530

OpenBSD guest with bhyve - OmniOS

Err codemadness.org 70 i 3531 Err codemadness.org 70 i 3532
Err codemadness.org 70 i 3533

Today I will be creating a OpenBSD guest via bhyve on OmniOS. I will also be adding a Pass Through Ethernet Controller so I can have a multi-homed guest that will serve as a firewall/router.
Err codemadness.org 70 i 3534 This post will cover setting up bhyve on OmniOS, so it will also be a good introduction to bhyve. As well, I look into OpenBSD’s uEFI boot loader so if you have had trouble with this, then you are in the right place.

Err codemadness.org 70 i 3535
Err codemadness.org 70 i 3536 Err codemadness.org 70 i 3537
Err codemadness.org 70 i 3538 Err codemadness.org 70 i 3539

News Roundup

Err codemadness.org 70 i 3540 Err codemadness.org 70 i 3541

BSD versus Linux distribution development

Err codemadness.org 70 i 3542 Err codemadness.org 70 i 3543
Err codemadness.org 70 i 3544

Q: Comparing-apples-to-BSDs asks: I was reading one of the old articles from the archive. One of the things mentioned was how the BSDs have a distinct approach in terms of packaging the base system relative to userland apps, and that the Linux distros at the time were not following the same practice. Are there Linux distros that have adopted the same approach in modern times? If not, are there technical limitations that are preventing them from doing so, such as some distros supporting multiple kernel versions maybe?
Err codemadness.org 70 i 3545 DistroWatch answers: In the article mentioned above, I made the observation that Linux distributions tend to take one of two approaches when it comes to packaging software. Generally a Linux distribution will either offer a rolling release, where virtually all packages are regularly upgraded to their latest stable releases, or a fixed release where almost all packages are kept at a set version number and only receive bug fixes for the life cycle of the distribution. Projects like Arch Linux and Void are popular examples of rolling, always-up-to-date distributions while Fedora and Ubuntu offer fixed platforms.

Err codemadness.org 70 i 3546 Err codemadness.org 70 i 3547
Err codemadness.org 70 i 3548 Err codemadness.org 70 i 3549

My FreeBSD Laptop Build

Err codemadness.org 70 i 3550 Err codemadness.org 70 i 3551

I have always liked Thinkpad hardware and when I started to do more commuting I decided I needed something that had a decent sized screen but fit well on a bus. Luckily about this time Lenovo gave me a nice gift in the Thinkpad X390. Its basically the famous X2xx series but with a 13” screen and smaller bezel.
Err codemadness.org 70 i 3552 So with this laptop I figured it was time to actually put the docs together on how I got my FreeBSD workstation working on it. I will here in the near future have another post that will cover this for HardenedBSD as well since the steps are similar but have a few extra gotchas due to the extra hardening.

Err codemadness.org 70 i 3553 Err codemadness.org 70 i 3554
Err codemadness.org 70 i 3555 Err codemadness.org 70 i 3556

FreeBSD CURRENT Binary Upgrades

Err codemadness.org 70 i 3557 Err codemadness.org 70 i 3558
    Err codemadness.org 70 i 3559
  • Disclaimer Err codemadness.org 70 i 3560 This proof-of-concept is not a publication of FreeBSD.
  • Err codemadness.org 70 i 3561
  • Description Err codemadness.org 70 i 3562 up.bsd.lv is a proof-of-concept of binary updates for FreeBSD/amd64 CURRENT/HEAD to facilitate the exhaustive testing of FreeBSD and the bhyve hypervisor and OpenZFS 2.0 specifically. Updates are based on the SVN revisions of official FreeBSD Release Engineering bi-monthly snapshots.
  • Err codemadness.org 70 i 3563
Err codemadness.org 70 i 3564
Err codemadness.org 70 i 3565 Err codemadness.org 70 i 3566
Err codemadness.org 70 i 3567 Err codemadness.org 70 i 3568

Tarsnap

Err codemadness.org 70 i 3569 Err codemadness.org 70 i 3570
    Err codemadness.org 70 i 3571
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 3572
Err codemadness.org 70 i 3573 Err codemadness.org 70 i 3574

Feedback/Questions

Err codemadness.org 70 i 3575 Err codemadness.org 70 i 3576
    Err codemadness.org 70 i 3577
  • Karl - pfsense
  • Err codemadness.org 70 i 3578
  • Val - esxi question
  • Err codemadness.org 70 i 3579
  • lars - openbsd router hardware

    Err codemadness.org 70 i 3580 Err codemadness.org 70 i 3581
  • Err codemadness.org 70 i 3582
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

    Err codemadness.org 70 i 3583 Err codemadness.org 70 i 3584
  • Err codemadness.org 70 i 3585
]]> Err codemadness.org 70 i 3586
Err codemadness.org 70 i 3587 Err codemadness.org 70 i 3588 Throw-Away Browser on FreeBSD With "pot" within 5 minutes, OmniOS as OpenBSD guest with bhyve, BSD vs Linux distro development, My FreeBSD Laptop Build, FreeBSD CURRENT Binary Upgrades, and more.

Err codemadness.org 70 i 3589 Err codemadness.org 70 i 3590

NOTES
Err codemadness.org 70 i 3591 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 3592 Err codemadness.org 70 i 3593

Headlines

Err codemadness.org 70 i 3594 Err codemadness.org 70 i 3595

Throw-Away Browser on FreeBSD With "pot" Within 5 Minutes

Err codemadness.org 70 i 3596 Err codemadness.org 70 i 3597
Err codemadness.org 70 i 3598

pot is a great and relatively new jail management tool. It offers DevOps style provisioning and can even be used to provide Docker-like, scalable cloud services together with nomad and consul (more about this in Orchestrating jails with nomad and pot).

Err codemadness.org 70 i 3599
Err codemadness.org 70 i 3600 Err codemadness.org 70 i 3601
Err codemadness.org 70 i 3602 Err codemadness.org 70 i 3603

OpenBSD guest with bhyve - OmniOS

Err codemadness.org 70 i 3604 Err codemadness.org 70 i 3605
Err codemadness.org 70 i 3606

Today I will be creating a OpenBSD guest via bhyve on OmniOS. I will also be adding a Pass Through Ethernet Controller so I can have a multi-homed guest that will serve as a firewall/router.
Err codemadness.org 70 i 3607 This post will cover setting up bhyve on OmniOS, so it will also be a good introduction to bhyve. As well, I look into OpenBSD’s uEFI boot loader so if you have had trouble with this, then you are in the right place.

Err codemadness.org 70 i 3608
Err codemadness.org 70 i 3609 Err codemadness.org 70 i 3610
Err codemadness.org 70 i 3611 Err codemadness.org 70 i 3612

News Roundup

Err codemadness.org 70 i 3613 Err codemadness.org 70 i 3614

BSD versus Linux distribution development

Err codemadness.org 70 i 3615 Err codemadness.org 70 i 3616
Err codemadness.org 70 i 3617

Q: Comparing-apples-to-BSDs asks: I was reading one of the old articles from the archive. One of the things mentioned was how the BSDs have a distinct approach in terms of packaging the base system relative to userland apps, and that the Linux distros at the time were not following the same practice. Are there Linux distros that have adopted the same approach in modern times? If not, are there technical limitations that are preventing them from doing so, such as some distros supporting multiple kernel versions maybe?
Err codemadness.org 70 i 3618 DistroWatch answers: In the article mentioned above, I made the observation that Linux distributions tend to take one of two approaches when it comes to packaging software. Generally a Linux distribution will either offer a rolling release, where virtually all packages are regularly upgraded to their latest stable releases, or a fixed release where almost all packages are kept at a set version number and only receive bug fixes for the life cycle of the distribution. Projects like Arch Linux and Void are popular examples of rolling, always-up-to-date distributions while Fedora and Ubuntu offer fixed platforms.

Err codemadness.org 70 i 3619 Err codemadness.org 70 i 3620
Err codemadness.org 70 i 3621 Err codemadness.org 70 i 3622

My FreeBSD Laptop Build

Err codemadness.org 70 i 3623 Err codemadness.org 70 i 3624

I have always liked Thinkpad hardware and when I started to do more commuting I decided I needed something that had a decent sized screen but fit well on a bus. Luckily about this time Lenovo gave me a nice gift in the Thinkpad X390. Its basically the famous X2xx series but with a 13” screen and smaller bezel.
Err codemadness.org 70 i 3625 So with this laptop I figured it was time to actually put the docs together on how I got my FreeBSD workstation working on it. I will here in the near future have another post that will cover this for HardenedBSD as well since the steps are similar but have a few extra gotchas due to the extra hardening.

Err codemadness.org 70 i 3626 Err codemadness.org 70 i 3627
Err codemadness.org 70 i 3628 Err codemadness.org 70 i 3629

FreeBSD CURRENT Binary Upgrades

Err codemadness.org 70 i 3630 Err codemadness.org 70 i 3631
    Err codemadness.org 70 i 3632
  • Disclaimer Err codemadness.org 70 i 3633 This proof-of-concept is not a publication of FreeBSD.
  • Err codemadness.org 70 i 3634
  • Description Err codemadness.org 70 i 3635 up.bsd.lv is a proof-of-concept of binary updates for FreeBSD/amd64 CURRENT/HEAD to facilitate the exhaustive testing of FreeBSD and the bhyve hypervisor and OpenZFS 2.0 specifically. Updates are based on the SVN revisions of official FreeBSD Release Engineering bi-monthly snapshots.
  • Err codemadness.org 70 i 3636
Err codemadness.org 70 i 3637
Err codemadness.org 70 i 3638 Err codemadness.org 70 i 3639
Err codemadness.org 70 i 3640 Err codemadness.org 70 i 3641

Tarsnap

Err codemadness.org 70 i 3642 Err codemadness.org 70 i 3643
    Err codemadness.org 70 i 3644
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 3645
Err codemadness.org 70 i 3646 Err codemadness.org 70 i 3647

Feedback/Questions

Err codemadness.org 70 i 3648 Err codemadness.org 70 i 3649
    Err codemadness.org 70 i 3650
  • Karl - pfsense
  • Err codemadness.org 70 i 3651
  • Val - esxi question
  • Err codemadness.org 70 i 3652
  • lars - openbsd router hardware

    Err codemadness.org 70 i 3653 Err codemadness.org 70 i 3654
  • Err codemadness.org 70 i 3655
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

    Err codemadness.org 70 i 3656 Err codemadness.org 70 i 3657
  • Err codemadness.org 70 i 3658
]]> Err codemadness.org 70 i 3659
Err codemadness.org 70 i 3660 https://fireside.fm/player/v2/FYhhasNR+UVrL7cMz Err codemadness.org 70 i 3661 Err codemadness.org 70 i 3662 ]]> Err codemadness.org 70 i 3663 Err codemadness.org 70 i 3664
Err codemadness.org 70 i 3665 Err codemadness.org 70 i 3666 358: OpenBSD Kubernetes Clusters Err codemadness.org 70 i 3667 https://www.bsdnow.tv/358 Err codemadness.org 70 i 3668 dd2d31ad-23bc-492d-b813-caf9f661e315 Err codemadness.org 70 i 3669 Thu, 09 Jul 2020 06:00:00 -0700 Err codemadness.org 70 i 3670 Allan Jude Err codemadness.org 70 i 3671 Err codemadness.org 70 i 3672 full Err codemadness.org 70 i 3673 Allan Jude Err codemadness.org 70 i 3674 Yubikey-agent on FreeBSD, Managing Kubernetes clusters from OpenBSD, History of FreeBSD part 1, Running Jitsi-Meet in a FreeBSD Jail, Command Line Bug Hunting in FreeBSD, Game of Github, Wireguard official merged into OpenBSD, and more Err codemadness.org 70 i 3675 43:32 Err codemadness.org 70 i 3676 no Err codemadness.org 70 i 3677 Err codemadness.org 70 i 3678 Yubikey-agent on FreeBSD, Managing Kubernetes clusters from OpenBSD, History of FreeBSD part 1, Running Jitsi-Meet in a FreeBSD Jail, Command Line Bug Hunting in FreeBSD, Game of Github, Wireguard official merged into OpenBSD, and more Err codemadness.org 70 i 3679 NOTES Err codemadness.org 70 i 3680 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 3681 Headlines Err codemadness.org 70 i 3682 yubikey-agent on FreeBSD (https://kernelnomicon.org/?p=855) Err codemadness.org 70 i 3683 Some time ago Filippo Valsorda wrote yubikey-agent, seamless SSH agent for YubiKeys. I really like YubiKeys and worked on the FreeBSD support for U2F in Chromium and pyu2f, getting yubikey-agent ported looked like an interesting project. It took some hacking to make it work but overall it wasn’t hard. Following is the roadmap on how to get it set up on FreeBSD. The actual details depend on your system (as you will see) Err codemadness.org 70 i 3684 Manage Kubernetes clusters from OpenBSD (https://e1e0.net/manage-k8s-from-openbsd.html) Err codemadness.org 70 i 3685 This should work with OpenBSD 6.7. I write this while the source tree is locked for release, so even if I use -current this is as close as -current gets to -release Err codemadness.org 70 i 3686 Update 2020-06-05: we now have a port for kubectl. So, at least in -current things get a bit easier. Err codemadness.org 70 i 3687 News Roundup Err codemadness.org 70 i 3688 History of FreeBSD Part 1: Unix and BSD (https://klarasystems.com/articles/history-of-freebsd-unix-and-bsd/?utm_source=bsdnow) Err codemadness.org 70 i 3689 FreeBSD, a free and open-source Unix-like operating system has been around since 1993. However, its origins are directly linked to that of BSD, and further back, those of Unix. During this History of FreeBSD series, we will talk about how Unix came to be, and how Berkeley’s Unix developed at Bell Labs. Err codemadness.org 70 i 3690 Running Jitsi-Meet in a FreeBSD Jail (https://honeyguide.eu/posts/jitsi-freebsd/) Err codemadness.org 70 i 3691 Due to the situation with COVID-19 that also lead to people being confined to their homes in South Africa as well, we decided to provide a (freely usable of course) Jitsi Meet instance to the community being hosted in South Africa on our FreeBSD environment. Err codemadness.org 70 i 3692 That way, communities in South Africa and beyond have a free alternative to the commercial conferencing solutions with sometimes dubious security and privacy histories and at the same time improved user experience due to the lower latency of local hosting. Err codemadness.org 70 i 3693 + Grafana for Jitsi-Meet (https://honeyguide.eu/posts/jitsi-grafana/) Err codemadness.org 70 i 3694 Command Line Bug Hunting in FreeBSD (https://adventurist.me/posts/00301) Err codemadness.org 70 i 3695 FreeBSD uses bugzilla for tracking bugs, taking feature requests, regressions and issues in the Operating System. The web interface for bugzilla is okay, but if you want to do a lot of batch operations it is slow to deal with. We are planning to run a bugsquash on July 11th and that really needs some tooling to help any hackers that show up process the giant bug list we have. Err codemadness.org 70 i 3696 Beastie Bits Err codemadness.org 70 i 3697 Game of Github (https://glebbahmutov.com/game-of-github/) Err codemadness.org 70 i 3698 + Wireguard official merged into OpenBSD (https://marc.info/?l=openbsd-cvs&m=159274150512676&w=2) Err codemadness.org 70 i 3699 *** Err codemadness.org 70 i 3700 Tarsnap Err codemadness.org 70 i 3701 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 3702 Feedback/Questions Err codemadness.org 70 i 3703 Florian : Lua for $HOME (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/358/feedback/Florian%20-%20Lua%20for%20%24HOME) Err codemadness.org 70 i 3704 Kevin : FreeBSD Source Question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/358/feedback/Kevin%20-%20FreeBSD%20Source%20Question) Err codemadness.org 70 i 3705 Tom : HomeLabs (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/358/feedback/Tom%20-%20HomeLabs) Err codemadness.org 70 i 3706 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 3707 Err codemadness.org 70 i 3708 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, zfs, interview, yubikey, yubikey-agent, yubikey agent, agent, kubernetes, cluster, kubernetes cluster, history, jitsi, jitsi-meet, conference, video conferencing, conferencing, conferencing software, command line, bug, bug hunting, git, github, wireguard, merge Err codemadness.org 70 i 3709 Err codemadness.org 70 i 3710 Yubikey-agent on FreeBSD, Managing Kubernetes clusters from OpenBSD, History of FreeBSD part 1, Running Jitsi-Meet in a FreeBSD Jail, Command Line Bug Hunting in FreeBSD, Game of Github, Wireguard official merged into OpenBSD, and more

Err codemadness.org 70 i 3711 Err codemadness.org 70 i 3712

NOTES
Err codemadness.org 70 i 3713 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 3714 Err codemadness.org 70 i 3715

Headlines

Err codemadness.org 70 i 3716 Err codemadness.org 70 i 3717

yubikey-agent on FreeBSD

Err codemadness.org 70 i 3718 Err codemadness.org 70 i 3719
Err codemadness.org 70 i 3720

Some time ago Filippo Valsorda wrote yubikey-agent, seamless SSH agent for YubiKeys. I really like YubiKeys and worked on the FreeBSD support for U2F in Chromium and pyu2f, getting yubikey-agent ported looked like an interesting project. It took some hacking to make it work but overall it wasn’t hard. Following is the roadmap on how to get it set up on FreeBSD. The actual details depend on your system (as you will see)

Err codemadness.org 70 i 3721 Err codemadness.org 70 i 3722
Err codemadness.org 70 i 3723
Err codemadness.org 70 i 3724 Err codemadness.org 70 i 3725

Manage Kubernetes clusters from OpenBSD

Err codemadness.org 70 i 3726 Err codemadness.org 70 i 3727
Err codemadness.org 70 i 3728

This should work with OpenBSD 6.7. I write this while the source tree is locked for release, so even if I use -current this is as close as -current gets to -release
Err codemadness.org 70 i 3729 Update 2020-06-05: we now have a port for kubectl. So, at least in -current things get a bit easier.

Err codemadness.org 70 i 3730 Err codemadness.org 70 i 3731
Err codemadness.org 70 i 3732
Err codemadness.org 70 i 3733 Err codemadness.org 70 i 3734

News Roundup

Err codemadness.org 70 i 3735 Err codemadness.org 70 i 3736

History of FreeBSD Part 1: Unix and BSD

Err codemadness.org 70 i 3737 Err codemadness.org 70 i 3738
Err codemadness.org 70 i 3739

FreeBSD, a free and open-source Unix-like operating system has been around since 1993. However, its origins are directly linked to that of BSD, and further back, those of Unix. During this History of FreeBSD series, we will talk about how Unix came to be, and how Berkeley’s Unix developed at Bell Labs.

Err codemadness.org 70 i 3740 Err codemadness.org 70 i 3741
Err codemadness.org 70 i 3742
Err codemadness.org 70 i 3743 Err codemadness.org 70 i 3744

Running Jitsi-Meet in a FreeBSD Jail

Err codemadness.org 70 i 3745 Err codemadness.org 70 i 3746
Err codemadness.org 70 i 3747

Due to the situation with COVID-19 that also lead to people being confined to their homes in South Africa as well, we decided to provide a (freely usable of course) Jitsi Meet instance to the community being hosted in South Africa on our FreeBSD environment.
Err codemadness.org 70 i 3748 That way, communities in South Africa and beyond have a free alternative to the commercial conferencing solutions with sometimes dubious security and privacy histories and at the same time improved user experience due to the lower latency of local hosting.

Err codemadness.org 70 i 3749 Err codemadness.org 70 i 3750
    Err codemadness.org 70 i 3751
  • Grafana for Jitsi-Meet Err codemadness.org 70 i 3752 ***
  • Err codemadness.org 70 i 3753
Err codemadness.org 70 i 3754
Err codemadness.org 70 i 3755 Err codemadness.org 70 i 3756

Command Line Bug Hunting in FreeBSD

Err codemadness.org 70 i 3757 Err codemadness.org 70 i 3758
Err codemadness.org 70 i 3759

FreeBSD uses bugzilla for tracking bugs, taking feature requests, regressions and issues in the Operating System. The web interface for bugzilla is okay, but if you want to do a lot of batch operations it is slow to deal with. We are planning to run a bugsquash on July 11th and that really needs some tooling to help any hackers that show up process the giant bug list we have.

Err codemadness.org 70 i 3760 Err codemadness.org 70 i 3761
Err codemadness.org 70 i 3762
Err codemadness.org 70 i 3763 Err codemadness.org 70 i 3764

Beastie Bits

Err codemadness.org 70 i 3765 Err codemadness.org 70 i 3766 Err codemadness.org 70 i 3771 Err codemadness.org 70 i 3772

Tarsnap

Err codemadness.org 70 i 3773 Err codemadness.org 70 i 3774
    Err codemadness.org 70 i 3775
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 3776
Err codemadness.org 70 i 3777 Err codemadness.org 70 i 3778

Feedback/Questions

Err codemadness.org 70 i 3779 Err codemadness.org 70 i 3780
    Err codemadness.org 70 i 3781
  • Florian : Lua for $HOME
  • Err codemadness.org 70 i 3782
  • Kevin : FreeBSD Source Question
  • Err codemadness.org 70 i 3783
  • Tom : HomeLabs

    Err codemadness.org 70 i 3784 Err codemadness.org 70 i 3785
  • Err codemadness.org 70 i 3786
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

    Err codemadness.org 70 i 3787 Err codemadness.org 70 i 3788
  • Err codemadness.org 70 i 3789
]]> Err codemadness.org 70 i 3790
Err codemadness.org 70 i 3791 Err codemadness.org 70 i 3792 Yubikey-agent on FreeBSD, Managing Kubernetes clusters from OpenBSD, History of FreeBSD part 1, Running Jitsi-Meet in a FreeBSD Jail, Command Line Bug Hunting in FreeBSD, Game of Github, Wireguard official merged into OpenBSD, and more

Err codemadness.org 70 i 3793 Err codemadness.org 70 i 3794

NOTES
Err codemadness.org 70 i 3795 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 3796 Err codemadness.org 70 i 3797

Headlines

Err codemadness.org 70 i 3798 Err codemadness.org 70 i 3799

yubikey-agent on FreeBSD

Err codemadness.org 70 i 3800 Err codemadness.org 70 i 3801
Err codemadness.org 70 i 3802

Some time ago Filippo Valsorda wrote yubikey-agent, seamless SSH agent for YubiKeys. I really like YubiKeys and worked on the FreeBSD support for U2F in Chromium and pyu2f, getting yubikey-agent ported looked like an interesting project. It took some hacking to make it work but overall it wasn’t hard. Following is the roadmap on how to get it set up on FreeBSD. The actual details depend on your system (as you will see)

Err codemadness.org 70 i 3803 Err codemadness.org 70 i 3804
Err codemadness.org 70 i 3805
Err codemadness.org 70 i 3806 Err codemadness.org 70 i 3807

Manage Kubernetes clusters from OpenBSD

Err codemadness.org 70 i 3808 Err codemadness.org 70 i 3809
Err codemadness.org 70 i 3810

This should work with OpenBSD 6.7. I write this while the source tree is locked for release, so even if I use -current this is as close as -current gets to -release
Err codemadness.org 70 i 3811 Update 2020-06-05: we now have a port for kubectl. So, at least in -current things get a bit easier.

Err codemadness.org 70 i 3812 Err codemadness.org 70 i 3813
Err codemadness.org 70 i 3814
Err codemadness.org 70 i 3815 Err codemadness.org 70 i 3816

News Roundup

Err codemadness.org 70 i 3817 Err codemadness.org 70 i 3818

History of FreeBSD Part 1: Unix and BSD

Err codemadness.org 70 i 3819 Err codemadness.org 70 i 3820
Err codemadness.org 70 i 3821

FreeBSD, a free and open-source Unix-like operating system has been around since 1993. However, its origins are directly linked to that of BSD, and further back, those of Unix. During this History of FreeBSD series, we will talk about how Unix came to be, and how Berkeley’s Unix developed at Bell Labs.

Err codemadness.org 70 i 3822 Err codemadness.org 70 i 3823
Err codemadness.org 70 i 3824
Err codemadness.org 70 i 3825 Err codemadness.org 70 i 3826

Running Jitsi-Meet in a FreeBSD Jail

Err codemadness.org 70 i 3827 Err codemadness.org 70 i 3828
Err codemadness.org 70 i 3829

Due to the situation with COVID-19 that also lead to people being confined to their homes in South Africa as well, we decided to provide a (freely usable of course) Jitsi Meet instance to the community being hosted in South Africa on our FreeBSD environment.
Err codemadness.org 70 i 3830 That way, communities in South Africa and beyond have a free alternative to the commercial conferencing solutions with sometimes dubious security and privacy histories and at the same time improved user experience due to the lower latency of local hosting.

Err codemadness.org 70 i 3831 Err codemadness.org 70 i 3832
    Err codemadness.org 70 i 3833
  • Grafana for Jitsi-Meet Err codemadness.org 70 i 3834 ***
  • Err codemadness.org 70 i 3835
Err codemadness.org 70 i 3836
Err codemadness.org 70 i 3837 Err codemadness.org 70 i 3838

Command Line Bug Hunting in FreeBSD

Err codemadness.org 70 i 3839 Err codemadness.org 70 i 3840
Err codemadness.org 70 i 3841

FreeBSD uses bugzilla for tracking bugs, taking feature requests, regressions and issues in the Operating System. The web interface for bugzilla is okay, but if you want to do a lot of batch operations it is slow to deal with. We are planning to run a bugsquash on July 11th and that really needs some tooling to help any hackers that show up process the giant bug list we have.

Err codemadness.org 70 i 3842 Err codemadness.org 70 i 3843
Err codemadness.org 70 i 3844
Err codemadness.org 70 i 3845 Err codemadness.org 70 i 3846

Beastie Bits

Err codemadness.org 70 i 3847 Err codemadness.org 70 i 3848 Err codemadness.org 70 i 3853 Err codemadness.org 70 i 3854

Tarsnap

Err codemadness.org 70 i 3855 Err codemadness.org 70 i 3856
    Err codemadness.org 70 i 3857
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 3858
Err codemadness.org 70 i 3859 Err codemadness.org 70 i 3860

Feedback/Questions

Err codemadness.org 70 i 3861 Err codemadness.org 70 i 3862
    Err codemadness.org 70 i 3863
  • Florian : Lua for $HOME
  • Err codemadness.org 70 i 3864
  • Kevin : FreeBSD Source Question
  • Err codemadness.org 70 i 3865
  • Tom : HomeLabs

    Err codemadness.org 70 i 3866 Err codemadness.org 70 i 3867
  • Err codemadness.org 70 i 3868
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

    Err codemadness.org 70 i 3869 Err codemadness.org 70 i 3870
  • Err codemadness.org 70 i 3871
]]> Err codemadness.org 70 i 3872
Err codemadness.org 70 i 3873 https://fireside.fm/player/v2/FYhhasNR+P91Xgc5O Err codemadness.org 70 i 3874 Err codemadness.org 70 i 3875 ]]> Err codemadness.org 70 i 3876 Err codemadness.org 70 i 3877
Err codemadness.org 70 i 3878 Err codemadness.org 70 i 3879 357: Study the Code Err codemadness.org 70 i 3880 https://www.bsdnow.tv/357 Err codemadness.org 70 i 3881 3155c049-a0b4-4449-9ecb-1f820e68f542 Err codemadness.org 70 i 3882 Thu, 02 Jul 2020 04:00:00 -0700 Err codemadness.org 70 i 3883 Allan Jude Err codemadness.org 70 i 3884 Err codemadness.org 70 i 3885 full Err codemadness.org 70 i 3886 Allan Jude Err codemadness.org 70 i 3887 OpenBSD 6.7 on PC Engines, NetBSD code study, DRM Update on OpenBSD, Booting FreeBSD on HPE Microserver SATA port, 3 ways to multiboot, and more. Err codemadness.org 70 i 3888 37:59 Err codemadness.org 70 i 3889 no Err codemadness.org 70 i 3890 Err codemadness.org 70 i 3891 OpenBSD 6.7 on PC Engines, NetBSD code study, DRM Update on OpenBSD, Booting FreeBSD on HPE Microserver SATA port, 3 ways to multiboot, and more. Err codemadness.org 70 i 3892 NOTES Err codemadness.org 70 i 3893 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 3894 Headlines Err codemadness.org 70 i 3895 OpenBSD 6.7 on PC Engines APU4D4 (https://www.tumfatig.net/20200530/openbsd-6-7-on-pc-engines-apu4d4/) Err codemadness.org 70 i 3896 I just got myself a PC Engines APU4D4. I miss an OpenBSD box providing home services. It’s quite simple to install and run OpenBSD on this machine. And you can even update the BIOS from OpenBSD. Err codemadness.org 70 i 3897 NetBSD code study (http://silas.net.br/codereading/netbsd-code.html) Err codemadness.org 70 i 3898 News Roundup Err codemadness.org 70 i 3899 Booting FreeBSD off the HPE MicroServer Gen8 ODD SATA port (https://rubenerd.com/booting-freebsd-off-the-microserver-odd-sata-port/) Err codemadness.org 70 i 3900 My small homelab post generated a ton of questions and comments, most of them specific to running FreeBSD on the HP MicroServer. I’ll try and answer these over the coming week. Err codemadness.org 70 i 3901 Josh Paxton emailed to ask how I got FreeBSD booting on it, given the unconventional booting limitations of the hardware. I thought I wrote about it a few years ago, but maybe it’s on my proverbial draft heap. If you’re impatient, the script is in my lunchbox. Err codemadness.org 70 i 3902 3 ways to multiboot (https://marc.info/?l=openbsd-misc&m=159146428705118&w=2) Err codemadness.org 70 i 3903 multiboot installation of a BSD system with other operating systems Err codemadness.org 70 i 3904 (OSs) on UEFI hardware is not officially supported by any of the Err codemadness.org 70 i 3905 popular Err codemadness.org 70 i 3906 Beastie Bits Err codemadness.org 70 i 3907 pfSense2.4.5-Release-p1 now available (https://www.netgate.com/blog/pfsense-2-4-5-release-p1-now-available.html) Err codemadness.org 70 i 3908 BSDCan 2020 TomSmyth - OpenBSD And OpenBGPD As ISP Controlplane (https://www.youtube.com/watch?v=_eOVlaYWqS8) Err codemadness.org 70 i 3909 OpenBSD DRM Update (https://undeadly.org/cgi?action=article;sid=20200608075708) Err codemadness.org 70 i 3910 *** Err codemadness.org 70 i 3911 ###Tarsnap Err codemadness.org 70 i 3912 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 3913 Feedback/Questions Err codemadness.org 70 i 3914 James - Apple T2 (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/357/feedback/James%20-%20Apple%20T2) Err codemadness.org 70 i 3915 Michael - Jordyns ZFS Question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/357/feedback/Michael%20-%20Jordyns%20ZFS%20Question) Err codemadness.org 70 i 3916 Note from JT (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/357/feedback/Note%20from%20JT) Err codemadness.org 70 i 3917 Rob - FreeBSD Freindly Registrar (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/357/feedback/Rob%20-%20FreeBSD%20Freindly%20Registrar) Err codemadness.org 70 i 3918 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 3919 *** Err codemadness.org 70 i 3920 Err codemadness.org 70 i 3921 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, os, zfs, interview, pc engines, APU4D4, code study, code, study, drm, update, updates, booting, boot, HPE, MicroServer, SATA, SATA port Err codemadness.org 70 i 3922 Err codemadness.org 70 i 3923 OpenBSD 6.7 on PC Engines, NetBSD code study, DRM Update on OpenBSD, Booting FreeBSD on HPE Microserver SATA port, 3 ways to multiboot, and more.

Err codemadness.org 70 i 3924 Err codemadness.org 70 i 3925

NOTES
Err codemadness.org 70 i 3926 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 3927 Err codemadness.org 70 i 3928

Headlines

Err codemadness.org 70 i 3929 Err codemadness.org 70 i 3930

OpenBSD 6.7 on PC Engines APU4D4

Err codemadness.org 70 i 3931 Err codemadness.org 70 i 3932
Err codemadness.org 70 i 3933

I just got myself a PC Engines APU4D4. I miss an OpenBSD box providing home services. It’s quite simple to install and run OpenBSD on this machine. And you can even update the BIOS from OpenBSD.

Err codemadness.org 70 i 3934 Err codemadness.org 70 i 3935
Err codemadness.org 70 i 3936 Err codemadness.org 70 i 3937

NetBSD code study

Err codemadness.org 70 i 3938 Err codemadness.org 70 i 3939
Err codemadness.org 70 i 3940
Err codemadness.org 70 i 3941 Err codemadness.org 70 i 3942

News Roundup

Err codemadness.org 70 i 3943 Err codemadness.org 70 i 3944

Booting FreeBSD off the HPE MicroServer Gen8 ODD SATA port

Err codemadness.org 70 i 3945 Err codemadness.org 70 i 3946
Err codemadness.org 70 i 3947

My small homelab post generated a ton of questions and comments, most of them specific to running FreeBSD on the HP MicroServer. I’ll try and answer these over the coming week.
Err codemadness.org 70 i 3948 Josh Paxton emailed to ask how I got FreeBSD booting on it, given the unconventional booting limitations of the hardware. I thought I wrote about it a few years ago, but maybe it’s on my proverbial draft heap. If you’re impatient, the script is in my lunchbox.

Err codemadness.org 70 i 3949 Err codemadness.org 70 i 3950
Err codemadness.org 70 i 3951
Err codemadness.org 70 i 3952 Err codemadness.org 70 i 3953

3 ways to multiboot

Err codemadness.org 70 i 3954 Err codemadness.org 70 i 3955
Err codemadness.org 70 i 3956

multiboot installation of a BSD system with other operating systems
Err codemadness.org 70 i 3957 (OSs) on UEFI hardware is not officially supported by any of the
Err codemadness.org 70 i 3958 popular

Err codemadness.org 70 i 3959 Err codemadness.org 70 i 3960
Err codemadness.org 70 i 3961
Err codemadness.org 70 i 3962 Err codemadness.org 70 i 3963

Beastie Bits

Err codemadness.org 70 i 3964 Err codemadness.org 70 i 3965 Err codemadness.org 70 i 3973 Err codemadness.org 70 i 3974

Feedback/Questions

Err codemadness.org 70 i 3975 Err codemadness.org 70 i 3976 Err codemadness.org 70 i 3985 Err codemadness.org 70 i 3986
Err codemadness.org 70 i 3987 Err codemadness.org 70 i 3988
    Err codemadness.org 70 i 3989
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 3990 ***
  • Err codemadness.org 70 i 3991
]]> Err codemadness.org 70 i 3992
Err codemadness.org 70 i 3993 Err codemadness.org 70 i 3994 OpenBSD 6.7 on PC Engines, NetBSD code study, DRM Update on OpenBSD, Booting FreeBSD on HPE Microserver SATA port, 3 ways to multiboot, and more.

Err codemadness.org 70 i 3995 Err codemadness.org 70 i 3996

NOTES
Err codemadness.org 70 i 3997 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 3998 Err codemadness.org 70 i 3999

Headlines

Err codemadness.org 70 i 4000 Err codemadness.org 70 i 4001

OpenBSD 6.7 on PC Engines APU4D4

Err codemadness.org 70 i 4002 Err codemadness.org 70 i 4003
Err codemadness.org 70 i 4004

I just got myself a PC Engines APU4D4. I miss an OpenBSD box providing home services. It’s quite simple to install and run OpenBSD on this machine. And you can even update the BIOS from OpenBSD.

Err codemadness.org 70 i 4005 Err codemadness.org 70 i 4006
Err codemadness.org 70 i 4007 Err codemadness.org 70 i 4008

NetBSD code study

Err codemadness.org 70 i 4009 Err codemadness.org 70 i 4010
Err codemadness.org 70 i 4011
Err codemadness.org 70 i 4012 Err codemadness.org 70 i 4013

News Roundup

Err codemadness.org 70 i 4014 Err codemadness.org 70 i 4015

Booting FreeBSD off the HPE MicroServer Gen8 ODD SATA port

Err codemadness.org 70 i 4016 Err codemadness.org 70 i 4017
Err codemadness.org 70 i 4018

My small homelab post generated a ton of questions and comments, most of them specific to running FreeBSD on the HP MicroServer. I’ll try and answer these over the coming week.
Err codemadness.org 70 i 4019 Josh Paxton emailed to ask how I got FreeBSD booting on it, given the unconventional booting limitations of the hardware. I thought I wrote about it a few years ago, but maybe it’s on my proverbial draft heap. If you’re impatient, the script is in my lunchbox.

Err codemadness.org 70 i 4020 Err codemadness.org 70 i 4021
Err codemadness.org 70 i 4022
Err codemadness.org 70 i 4023 Err codemadness.org 70 i 4024

3 ways to multiboot

Err codemadness.org 70 i 4025 Err codemadness.org 70 i 4026
Err codemadness.org 70 i 4027

multiboot installation of a BSD system with other operating systems
Err codemadness.org 70 i 4028 (OSs) on UEFI hardware is not officially supported by any of the
Err codemadness.org 70 i 4029 popular

Err codemadness.org 70 i 4030 Err codemadness.org 70 i 4031
Err codemadness.org 70 i 4032
Err codemadness.org 70 i 4033 Err codemadness.org 70 i 4034

Beastie Bits

Err codemadness.org 70 i 4035 Err codemadness.org 70 i 4036 Err codemadness.org 70 i 4044 Err codemadness.org 70 i 4045

Feedback/Questions

Err codemadness.org 70 i 4046 Err codemadness.org 70 i 4047 Err codemadness.org 70 i 4056 Err codemadness.org 70 i 4057
Err codemadness.org 70 i 4058 Err codemadness.org 70 i 4059
    Err codemadness.org 70 i 4060
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 4061 ***
  • Err codemadness.org 70 i 4062
]]> Err codemadness.org 70 i 4063
Err codemadness.org 70 i 4064 https://fireside.fm/player/v2/FYhhasNR+vQ-bTN1- Err codemadness.org 70 i 4065 Err codemadness.org 70 i 4066 ]]> Err codemadness.org 70 i 4067 Err codemadness.org 70 i 4068
Err codemadness.org 70 i 4069 Err codemadness.org 70 i 4070 356: Dig in Deeper Err codemadness.org 70 i 4071 https://www.bsdnow.tv/356 Err codemadness.org 70 i 4072 666c3655-32bf-4341-a986-ab085baa9c10 Err codemadness.org 70 i 4073 Thu, 25 Jun 2020 04:00:00 -0700 Err codemadness.org 70 i 4074 Allan Jude Err codemadness.org 70 i 4075 Err codemadness.org 70 i 4076 full Err codemadness.org 70 i 4077 Allan Jude Err codemadness.org 70 i 4078 TrueNAS is Multi-OS, Encrypted ZFS on NetBSD, FreeBSD’s new Code of Conduct, Gaming on OpenBSD, dig a little deeper, Hammer2 and periodic snapshots, and more. Err codemadness.org 70 i 4079 32:08 Err codemadness.org 70 i 4080 no Err codemadness.org 70 i 4081 Err codemadness.org 70 i 4082 TrueNAS is Multi-OS, Encrypted ZFS on NetBSD, FreeBSD’s new Code of Conduct, Gaming on OpenBSD, dig a little deeper, Hammer2 and periodic snapshots, and more. Err codemadness.org 70 i 4083 NOTES Err codemadness.org 70 i 4084 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 4085 Headlines Err codemadness.org 70 i 4086 TrueNAS is Multi-OS (https://www.ixsystems.com/blog/truenas-multi-os/) Err codemadness.org 70 i 4087 There was a time in history where all that mattered was an Operating System (OS) and the hardware it ran on — the “pre-software era”, if you will. Your hardware dictated the OS you used. Err codemadness.org 70 i 4088 Once software applications became prominent, your hardware’s OS determined the applications you could run. Application vendors were forced to juggle the burden of “portability” between OS platforms, choosing carefully the operating systems they’d develop their software to. Then, there were the great OS Wars of the 1990s, replete with the rampant competition, licensing battles, and nasty lawsuits, which more or less gave birth to the “open source OS” era. Err codemadness.org 70 i 4089 The advent of the hypervisor simultaneously gave way to the “virtual era” which set us on a path of agnosticism toward the OS. Instead of choosing from the applications available for your chosen OS, you could simply install another OS on the same hardware for your chosen application. The OS became nothing but a necessary cog in the stack. Err codemadness.org 70 i 4090 TrueNAS open storage enables this “post-OS era” with support for storage clients of all UNIX flavors, Linux, FreeBSD, Windows, MacOS, VMware, Citrix, and many others. Containerization has carried that mentality even further. An operating system, like the hardware that runs it, is now just thought of as part of the “infrastructure”. Err codemadness.org 70 i 4091 Encrypted ZFS on NetBSD 9.0, for a FreeBSD guy (https://rubenerd.com/encrypted-zfs-on-netbsd-9-for-a-freebsd-guy/) Err codemadness.org 70 i 4092 I had one of my other HP Microservers brought back from the office last week to help with this working-from-home world we’re in right now. I was going to wipe an old version of Debian Wheezy/Xen and install FreeBSD to mirror my other machines before thinking: why not NetBSD? Err codemadness.org 70 i 4093 News Roundup Err codemadness.org 70 i 4094 FreeBSD's New Code of Conduct (https://www.freebsd.org/internal/code-of-conduct.html) Err codemadness.org 70 i 4095 FreeBSD Announcement Email (https://raw.githubusercontent.com/BSDNow/bsdnow.tv/master/episodes/356/FBSD-CoC-Email) Err codemadness.org 70 i 4096 Gaming on OpenBSD (https://dataswamp.org/~solene/2020-06-05-openbsd-gaming.html) Err codemadness.org 70 i 4097 While no one would expect this, there are huge efforts from a small team to bring more games into OpenBSD. In fact, now some commercial games works natively now, thanks to Mono or Java. There are no wine or linux emulation layer in OpenBSD. Err codemadness.org 70 i 4098 Here is a small list of most well known games that run on OpenBSD: Err codemadness.org 70 i 4099 'dig' a little deeper (https://vishaltelangre.com/dig-a-little-deeper/) Err codemadness.org 70 i 4100 I knew the existence of the dig command but didn't exactly know when and how to use it. Then, just recently I encountered an issue that allowed me to learn and make use of it. Err codemadness.org 70 i 4101 HAMMER2 and periodic snapshots (https://www.dragonflydigest.com/2020/06/15/24635.html) Err codemadness.org 70 i 4102 The first version of HAMMER took automatic snapshots, set within the config for each filesystem. HAMMER2 now also takes automatic snapshots, via periodic(8) like most every repeating task on your DragonFly system. Err codemadness.org 70 i 4103 + git: Implement periodic hammer2 snapshots (http://lists.dragonflybsd.org/pipermail/commits/2020-June/769247.html) Err codemadness.org 70 i 4104 Tarsnap Err codemadness.org 70 i 4105 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 4106 Feedback/Questions Err codemadness.org 70 i 4107 Cy - OpenSSL relicensing (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/356/feedback/Cy%20-%20OPenSSL%20relicensing.md) Err codemadness.org 70 i 4108 Christian - lagg vlans and iocage (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/356/feedback/Christian%20-%20lagg%20vlans%20and%20iocage) Err codemadness.org 70 i 4109 Brad - SMR (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/356/feedback/Brad%20-%20SMR) Err codemadness.org 70 i 4110 *** Err codemadness.org 70 i 4111 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 4112 *** Err codemadness.org 70 i 4113 Err codemadness.org 70 i 4114 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, truenas, multi os, os, operating system, code of conduct, code, conduct, encryption, encrypted, zfs, gaming, dig, hammer2, snapshot, snapshots, periodic, periodic snapshots Err codemadness.org 70 i 4115 Err codemadness.org 70 i 4116 TrueNAS is Multi-OS, Encrypted ZFS on NetBSD, FreeBSD’s new Code of Conduct, Gaming on OpenBSD, dig a little deeper, Hammer2 and periodic snapshots, and more.

Err codemadness.org 70 i 4117 Err codemadness.org 70 i 4118

NOTES
Err codemadness.org 70 i 4119 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 4120 Err codemadness.org 70 i 4121

Headlines

Err codemadness.org 70 i 4122 Err codemadness.org 70 i 4123

TrueNAS is Multi-OS

Err codemadness.org 70 i 4124 Err codemadness.org 70 i 4125
Err codemadness.org 70 i 4126

There was a time in history where all that mattered was an Operating System (OS) and the hardware it ran on — the “pre-software era”, if you will. Your hardware dictated the OS you used.
Err codemadness.org 70 i 4127 Once software applications became prominent, your hardware’s OS determined the applications you could run. Application vendors were forced to juggle the burden of “portability” between OS platforms, choosing carefully the operating systems they’d develop their software to. Then, there were the great OS Wars of the 1990s, replete with the rampant competition, licensing battles, and nasty lawsuits, which more or less gave birth to the “open source OS” era.
Err codemadness.org 70 i 4128 The advent of the hypervisor simultaneously gave way to the “virtual era” which set us on a path of agnosticism toward the OS. Instead of choosing from the applications available for your chosen OS, you could simply install another OS on the same hardware for your chosen application. The OS became nothing but a necessary cog in the stack.
Err codemadness.org 70 i 4129 TrueNAS open storage enables this “post-OS era” with support for storage clients of all UNIX flavors, Linux, FreeBSD, Windows, MacOS, VMware, Citrix, and many others. Containerization has carried that mentality even further. An operating system, like the hardware that runs it, is now just thought of as part of the “infrastructure”.

Err codemadness.org 70 i 4130 Err codemadness.org 70 i 4131
Err codemadness.org 70 i 4132 Err codemadness.org 70 i 4133

Encrypted ZFS on NetBSD 9.0, for a FreeBSD guy

Err codemadness.org 70 i 4134 Err codemadness.org 70 i 4135

I had one of my other HP Microservers brought back from the office last week to help with this working-from-home world we’re in right now. I was going to wipe an old version of Debian Wheezy/Xen and install FreeBSD to mirror my other machines before thinking: why not NetBSD?

Err codemadness.org 70 i 4136 Err codemadness.org 70 i 4137
Err codemadness.org 70 i 4138
Err codemadness.org 70 i 4139 Err codemadness.org 70 i 4140

News Roundup

Err codemadness.org 70 i 4141 Err codemadness.org 70 i 4142

FreeBSD's New Code of Conduct

Err codemadness.org 70 i 4143 Err codemadness.org 70 i 4144 Err codemadness.org 70 i 4147 Err codemadness.org 70 i 4148
Err codemadness.org 70 i 4149 Err codemadness.org 70 i 4150

Gaming on OpenBSD

Err codemadness.org 70 i 4151 Err codemadness.org 70 i 4152
Err codemadness.org 70 i 4153

While no one would expect this, there are huge efforts from a small team to bring more games into OpenBSD. In fact, now some commercial games works natively now, thanks to Mono or Java. There are no wine or linux emulation layer in OpenBSD.
Err codemadness.org 70 i 4154 Here is a small list of most well known games that run on OpenBSD:

Err codemadness.org 70 i 4155 Err codemadness.org 70 i 4156
Err codemadness.org 70 i 4157 Err codemadness.org 70 i 4158

'dig' a little deeper

Err codemadness.org 70 i 4159 Err codemadness.org 70 i 4160

I knew the existence of the dig command but didn't exactly know when and how to use it. Then, just recently I encountered an issue that allowed me to learn and make use of it.

Err codemadness.org 70 i 4161 Err codemadness.org 70 i 4162
Err codemadness.org 70 i 4163 Err codemadness.org 70 i 4164

HAMMER2 and periodic snapshots

Err codemadness.org 70 i 4165 Err codemadness.org 70 i 4166

The first version of HAMMER took automatic snapshots, set within the config for each filesystem. HAMMER2 now also takes automatic snapshots, via periodic(8) like most every repeating task on your DragonFly system.

Err codemadness.org 70 i 4167 Err codemadness.org 70 i 4168 Err codemadness.org 70 i 4172
Err codemadness.org 70 i 4173 Err codemadness.org 70 i 4174

Tarsnap

Err codemadness.org 70 i 4175 Err codemadness.org 70 i 4176
    Err codemadness.org 70 i 4177
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 4178
Err codemadness.org 70 i 4179 Err codemadness.org 70 i 4180

Feedback/Questions

Err codemadness.org 70 i 4181 Err codemadness.org 70 i 4182 ]]> Err codemadness.org 70 i 4190
Err codemadness.org 70 i 4191 Err codemadness.org 70 i 4192 TrueNAS is Multi-OS, Encrypted ZFS on NetBSD, FreeBSD’s new Code of Conduct, Gaming on OpenBSD, dig a little deeper, Hammer2 and periodic snapshots, and more.

Err codemadness.org 70 i 4193 Err codemadness.org 70 i 4194

NOTES
Err codemadness.org 70 i 4195 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 4196 Err codemadness.org 70 i 4197

Headlines

Err codemadness.org 70 i 4198 Err codemadness.org 70 i 4199

TrueNAS is Multi-OS

Err codemadness.org 70 i 4200 Err codemadness.org 70 i 4201
Err codemadness.org 70 i 4202

There was a time in history where all that mattered was an Operating System (OS) and the hardware it ran on — the “pre-software era”, if you will. Your hardware dictated the OS you used.
Err codemadness.org 70 i 4203 Once software applications became prominent, your hardware’s OS determined the applications you could run. Application vendors were forced to juggle the burden of “portability” between OS platforms, choosing carefully the operating systems they’d develop their software to. Then, there were the great OS Wars of the 1990s, replete with the rampant competition, licensing battles, and nasty lawsuits, which more or less gave birth to the “open source OS” era.
Err codemadness.org 70 i 4204 The advent of the hypervisor simultaneously gave way to the “virtual era” which set us on a path of agnosticism toward the OS. Instead of choosing from the applications available for your chosen OS, you could simply install another OS on the same hardware for your chosen application. The OS became nothing but a necessary cog in the stack.
Err codemadness.org 70 i 4205 TrueNAS open storage enables this “post-OS era” with support for storage clients of all UNIX flavors, Linux, FreeBSD, Windows, MacOS, VMware, Citrix, and many others. Containerization has carried that mentality even further. An operating system, like the hardware that runs it, is now just thought of as part of the “infrastructure”.

Err codemadness.org 70 i 4206 Err codemadness.org 70 i 4207
Err codemadness.org 70 i 4208 Err codemadness.org 70 i 4209

Encrypted ZFS on NetBSD 9.0, for a FreeBSD guy

Err codemadness.org 70 i 4210 Err codemadness.org 70 i 4211

I had one of my other HP Microservers brought back from the office last week to help with this working-from-home world we’re in right now. I was going to wipe an old version of Debian Wheezy/Xen and install FreeBSD to mirror my other machines before thinking: why not NetBSD?

Err codemadness.org 70 i 4212 Err codemadness.org 70 i 4213
Err codemadness.org 70 i 4214
Err codemadness.org 70 i 4215 Err codemadness.org 70 i 4216

News Roundup

Err codemadness.org 70 i 4217 Err codemadness.org 70 i 4218

FreeBSD's New Code of Conduct

Err codemadness.org 70 i 4219 Err codemadness.org 70 i 4220 Err codemadness.org 70 i 4223 Err codemadness.org 70 i 4224
Err codemadness.org 70 i 4225 Err codemadness.org 70 i 4226

Gaming on OpenBSD

Err codemadness.org 70 i 4227 Err codemadness.org 70 i 4228
Err codemadness.org 70 i 4229

While no one would expect this, there are huge efforts from a small team to bring more games into OpenBSD. In fact, now some commercial games works natively now, thanks to Mono or Java. There are no wine or linux emulation layer in OpenBSD.
Err codemadness.org 70 i 4230 Here is a small list of most well known games that run on OpenBSD:

Err codemadness.org 70 i 4231 Err codemadness.org 70 i 4232
Err codemadness.org 70 i 4233 Err codemadness.org 70 i 4234

'dig' a little deeper

Err codemadness.org 70 i 4235 Err codemadness.org 70 i 4236

I knew the existence of the dig command but didn't exactly know when and how to use it. Then, just recently I encountered an issue that allowed me to learn and make use of it.

Err codemadness.org 70 i 4237 Err codemadness.org 70 i 4238
Err codemadness.org 70 i 4239 Err codemadness.org 70 i 4240

HAMMER2 and periodic snapshots

Err codemadness.org 70 i 4241 Err codemadness.org 70 i 4242

The first version of HAMMER took automatic snapshots, set within the config for each filesystem. HAMMER2 now also takes automatic snapshots, via periodic(8) like most every repeating task on your DragonFly system.

Err codemadness.org 70 i 4243 Err codemadness.org 70 i 4244 Err codemadness.org 70 i 4248
Err codemadness.org 70 i 4249 Err codemadness.org 70 i 4250

Tarsnap

Err codemadness.org 70 i 4251 Err codemadness.org 70 i 4252
    Err codemadness.org 70 i 4253
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 4254
Err codemadness.org 70 i 4255 Err codemadness.org 70 i 4256

Feedback/Questions

Err codemadness.org 70 i 4257 Err codemadness.org 70 i 4258 ]]> Err codemadness.org 70 i 4266
Err codemadness.org 70 i 4267 https://fireside.fm/player/v2/FYhhasNR+HzIuofKd Err codemadness.org 70 i 4268 Err codemadness.org 70 i 4269 ]]> Err codemadness.org 70 i 4270 Err codemadness.org 70 i 4271
Err codemadness.org 70 i 4272 Err codemadness.org 70 i 4273 355: Man Page Origins Err codemadness.org 70 i 4274 https://www.bsdnow.tv/355 Err codemadness.org 70 i 4275 369decb7-b522-4745-b385-2339d05211d9 Err codemadness.org 70 i 4276 Thu, 18 Jun 2020 04:00:00 -0700 Err codemadness.org 70 i 4277 Allan Jude Err codemadness.org 70 i 4278 Err codemadness.org 70 i 4279 full Err codemadness.org 70 i 4280 Allan Jude Err codemadness.org 70 i 4281 Upgrading OpenBSD, Where do Unix man pages come from?, Help for NetBSD’s VAX port, FreeBSD on Dell Latitude 7390, PFS Tool changes in DragonflyBSD, and more. Err codemadness.org 70 i 4282 40:39 Err codemadness.org 70 i 4283 no Err codemadness.org 70 i 4284 Err codemadness.org 70 i 4285 Upgrading OpenBSD, Where do Unix man pages come from?, Help for NetBSD’s VAX port, FreeBSD on Dell Latitude 7390, PFS Tool changes in DragonflyBSD, and more. Err codemadness.org 70 i 4286 NOTES Err codemadness.org 70 i 4287 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 4288 Headlines Err codemadness.org 70 i 4289 How to Upgrade OpenBSD and Build a Kernel (https://cromwell-intl.com/open-source/openbsd-kernel.html) Err codemadness.org 70 i 4290 Let's see how to upgrade your OpenBSD system. Maybe you are doing this because the latest release just came out. If so, this is pretty simple: back up your data, boot from install media, and select "Upgrade" instead of "Install". But maybe the latest release has been out for a few months. Why would we go through the trouble of building and installing a new kernel or other core system components? Maybe some patches have been released to improve system security or stability. It is pretty easy to build and install a kernel on OpenBSD, easier and simpler in many ways than it is on Linux. Err codemadness.org 70 i 4291 The History of man pages (https://manpages.bsd.lv/history.html) Err codemadness.org 70 i 4292 Where do UNIX manpages come from? Who introduced the section-based layout of NAME, SYNOPSIS, and so on? And for manpage authors: where were those economical two- and three-letter instructions developed? Err codemadness.org 70 i 4293 VAX port needs help (http://blog.netbsd.org/tnf/entry/vax_port_needs_help) Err codemadness.org 70 i 4294 The VAX is the oldest machine architecture still supported by NetBSD. Err codemadness.org 70 i 4295 Unfortunately there is another challenge, totally outside of NetBSD, but affecting the VAX port big time: the compiler support for VAX is ... let's say sub-optimal. It is also risking to be dropped completely by gcc upstream. Err codemadness.org 70 i 4296 Now here is where people can help: there is a bounty campaign to finance a gcc hacker to fix the hardest and most immediate issue with gcc for VAX. Without this being resolved, gcc will drop support for VAX in a near future version. Err codemadness.org 70 i 4297 My new FreeBSD Laptop: Dell Latitude 7390 (http://www.daemonology.net/blog/2020-05-22-my-new-FreeBSD-laptop-Dell-7390.html) Err codemadness.org 70 i 4298 As a FreeBSD developer, I make a point of using FreeBSD whenever I can — including on the desktop. I've been running FreeBSD on laptops since 2004; this hasn't always been easy, but over the years I've found that the situation has generally been improving. One of the things we still lack is adequate documentation, however — so I'm writing this to provide an example for users and also Google bait in case anyone runs into some of the problems I had to address. Err codemadness.org 70 i 4299 PFS tool changes in DragonFly (https://www.dragonflydigest.com/2020/06/09/24612.html) Err codemadness.org 70 i 4300 HAMMER2 just became a little more DWIM: the pfs-list and pfs-delete directives will now look across all mounted filesystems, not just the current directory’s mount path. pfs-delete won’t delete any filesystem name that appears in more than one place, though Err codemadness.org 70 i 4301 + git: hammer2 - Enhance pfs-list and pfs-delete (http://lists.dragonflybsd.org/pipermail/commits/2020-June/769226.html) Err codemadness.org 70 i 4302 Enhance pfs-list to list PFSs available across all mounted hammer2 filesystems instead of just the current directory's mount. A specific mount may be specified via -s mountpt. Err codemadness.org 70 i 4303 Enhance pfs-delete to look for the PFS name across all mounted hammer2 filesystems instead of just the current directory's mount. Err codemadness.org 70 i 4304 As a safety, pfs-delete will refuse to delete PFS names which are duplicated across multiple mounts. A specific mount may be specified via -s mountpt. Err codemadness.org 70 i 4305 Beastie Bits Err codemadness.org 70 i 4306 BastilleBSD Templates (https://gitlab.com/bastillebsd-templates) Err codemadness.org 70 i 4307 Tianocore update (https://www.dragonflydigest.com/2020/06/08/24610.html) Err codemadness.org 70 i 4308 Reminder: FreeBSD Office Hours on June 24, 2020 (https://wiki.freebsd.org/OfficeHours) Err codemadness.org 70 i 4309 *** Err codemadness.org 70 i 4310 ###Tarsnap Err codemadness.org 70 i 4311 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 4312 Feedback/Questions Err codemadness.org 70 i 4313 Niclas - Regarding the Lenovo E595 user from Episode 340 (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/355/feedback/Niclas%20-%20Regarding%20the%20Lenovo%20E595%20user%20from%20Episode%20340.md) Err codemadness.org 70 i 4314 Erik - What happened with the video (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/355/feedback/Erik%20-%20What%20happened%20with%20the%20video.md) Err codemadness.org 70 i 4315 Igor - Boot Environments (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/355/feedback/Igor%20-%20Boot%20Environments.md) Err codemadness.org 70 i 4316 *** Err codemadness.org 70 i 4317 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 4318 *** Err codemadness.org 70 i 4319 Err codemadness.org 70 i 4320 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, upgrade, upgrading, manual, manual pages, man pages, manpages, VAX, dell, dell latitude, latitude 7390, dell latitude 7390, pfs Err codemadness.org 70 i 4321 Err codemadness.org 70 i 4322 Upgrading OpenBSD, Where do Unix man pages come from?, Help for NetBSD’s VAX port, FreeBSD on Dell Latitude 7390, PFS Tool changes in DragonflyBSD, and more.

Err codemadness.org 70 i 4323 Err codemadness.org 70 i 4324

NOTES
Err codemadness.org 70 i 4325 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 4326 Err codemadness.org 70 i 4327

Headlines

Err codemadness.org 70 i 4328 Err codemadness.org 70 i 4329

How to Upgrade OpenBSD and Build a Kernel

Err codemadness.org 70 i 4330 Err codemadness.org 70 i 4331
Err codemadness.org 70 i 4332

Let's see how to upgrade your OpenBSD system. Maybe you are doing this because the latest release just came out. If so, this is pretty simple: back up your data, boot from install media, and select "Upgrade" instead of "Install". But maybe the latest release has been out for a few months. Why would we go through the trouble of building and installing a new kernel or other core system components? Maybe some patches have been released to improve system security or stability. It is pretty easy to build and install a kernel on OpenBSD, easier and simpler in many ways than it is on Linux.

Err codemadness.org 70 i 4333
Err codemadness.org 70 i 4334 Err codemadness.org 70 i 4335
Err codemadness.org 70 i 4336 Err codemadness.org 70 i 4337

The History of man pages

Err codemadness.org 70 i 4338 Err codemadness.org 70 i 4339
Err codemadness.org 70 i 4340

Where do UNIX manpages come from? Who introduced the section-based layout of NAME, SYNOPSIS, and so on? And for manpage authors: where were those economical two- and three-letter instructions developed?

Err codemadness.org 70 i 4341 Err codemadness.org 70 i 4342
Err codemadness.org 70 i 4343
Err codemadness.org 70 i 4344 Err codemadness.org 70 i 4345

VAX port needs help

Err codemadness.org 70 i 4346 Err codemadness.org 70 i 4347
Err codemadness.org 70 i 4348

The VAX is the oldest machine architecture still supported by NetBSD.
Err codemadness.org 70 i 4349 Unfortunately there is another challenge, totally outside of NetBSD, but affecting the VAX port big time: the compiler support for VAX is ... let's say sub-optimal. It is also risking to be dropped completely by gcc upstream.
Err codemadness.org 70 i 4350 Now here is where people can help: there is a bounty campaign to finance a gcc hacker to fix the hardest and most immediate issue with gcc for VAX. Without this being resolved, gcc will drop support for VAX in a near future version.

Err codemadness.org 70 i 4351 Err codemadness.org 70 i 4352
Err codemadness.org 70 i 4353
Err codemadness.org 70 i 4354 Err codemadness.org 70 i 4355

My new FreeBSD Laptop: Dell Latitude 7390

Err codemadness.org 70 i 4356 Err codemadness.org 70 i 4357
Err codemadness.org 70 i 4358

As a FreeBSD developer, I make a point of using FreeBSD whenever I can — including on the desktop. I've been running FreeBSD on laptops since 2004; this hasn't always been easy, but over the years I've found that the situation has generally been improving. One of the things we still lack is adequate documentation, however — so I'm writing this to provide an example for users and also Google bait in case anyone runs into some of the problems I had to address.

Err codemadness.org 70 i 4359 Err codemadness.org 70 i 4360
Err codemadness.org 70 i 4361
Err codemadness.org 70 i 4362 Err codemadness.org 70 i 4363

PFS tool changes in DragonFly

Err codemadness.org 70 i 4364 Err codemadness.org 70 i 4365
Err codemadness.org 70 i 4366

HAMMER2 just became a little more DWIM: the pfs-list and pfs-delete directives will now look across all mounted filesystems, not just the current directory’s mount path. pfs-delete won’t delete any filesystem name that appears in more than one place, though

Err codemadness.org 70 i 4367 Err codemadness.org 70 i 4368
    Err codemadness.org 70 i 4369
  • git: hammer2 - Enhance pfs-list and pfs-delete Err codemadness.org 70 i 4370 Enhance pfs-list to list PFSs available across all mounted hammer2 filesystems instead of just the current directory's mount. A specific mount may be specified via -s mountpt. Err codemadness.org 70 i 4371 Enhance pfs-delete to look for the PFS name across all mounted hammer2 filesystems instead of just the current directory's mount. Err codemadness.org 70 i 4372 As a safety, pfs-delete will refuse to delete PFS names which are duplicated across multiple mounts. A specific mount may be specified via -s mountpt.
  • Err codemadness.org 70 i 4373
Err codemadness.org 70 i 4374
Err codemadness.org 70 i 4375 Err codemadness.org 70 i 4376
Err codemadness.org 70 i 4377 Err codemadness.org 70 i 4378

Beastie Bits

Err codemadness.org 70 i 4379 Err codemadness.org 70 i 4380
    Err codemadness.org 70 i 4381
  • BastilleBSD Templates
  • Err codemadness.org 70 i 4382
  • Tianocore update
  • Err codemadness.org 70 i 4383
  • Reminder: FreeBSD Office Hours on June 24, 2020 Err codemadness.org 70 i 4384 *** Err codemadness.org 70 i 4385 ###Tarsnap
  • Err codemadness.org 70 i 4386
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 4387
Err codemadness.org 70 i 4388 Err codemadness.org 70 i 4389

Feedback/Questions

Err codemadness.org 70 i 4390 Err codemadness.org 70 i 4391 ]]> Err codemadness.org 70 i 4399
Err codemadness.org 70 i 4400 Err codemadness.org 70 i 4401 Upgrading OpenBSD, Where do Unix man pages come from?, Help for NetBSD’s VAX port, FreeBSD on Dell Latitude 7390, PFS Tool changes in DragonflyBSD, and more.

Err codemadness.org 70 i 4402 Err codemadness.org 70 i 4403

NOTES
Err codemadness.org 70 i 4404 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 4405 Err codemadness.org 70 i 4406

Headlines

Err codemadness.org 70 i 4407 Err codemadness.org 70 i 4408

How to Upgrade OpenBSD and Build a Kernel

Err codemadness.org 70 i 4409 Err codemadness.org 70 i 4410
Err codemadness.org 70 i 4411

Let's see how to upgrade your OpenBSD system. Maybe you are doing this because the latest release just came out. If so, this is pretty simple: back up your data, boot from install media, and select "Upgrade" instead of "Install". But maybe the latest release has been out for a few months. Why would we go through the trouble of building and installing a new kernel or other core system components? Maybe some patches have been released to improve system security or stability. It is pretty easy to build and install a kernel on OpenBSD, easier and simpler in many ways than it is on Linux.

Err codemadness.org 70 i 4412
Err codemadness.org 70 i 4413 Err codemadness.org 70 i 4414
Err codemadness.org 70 i 4415 Err codemadness.org 70 i 4416

The History of man pages

Err codemadness.org 70 i 4417 Err codemadness.org 70 i 4418
Err codemadness.org 70 i 4419

Where do UNIX manpages come from? Who introduced the section-based layout of NAME, SYNOPSIS, and so on? And for manpage authors: where were those economical two- and three-letter instructions developed?

Err codemadness.org 70 i 4420 Err codemadness.org 70 i 4421
Err codemadness.org 70 i 4422
Err codemadness.org 70 i 4423 Err codemadness.org 70 i 4424

VAX port needs help

Err codemadness.org 70 i 4425 Err codemadness.org 70 i 4426
Err codemadness.org 70 i 4427

The VAX is the oldest machine architecture still supported by NetBSD.
Err codemadness.org 70 i 4428 Unfortunately there is another challenge, totally outside of NetBSD, but affecting the VAX port big time: the compiler support for VAX is ... let's say sub-optimal. It is also risking to be dropped completely by gcc upstream.
Err codemadness.org 70 i 4429 Now here is where people can help: there is a bounty campaign to finance a gcc hacker to fix the hardest and most immediate issue with gcc for VAX. Without this being resolved, gcc will drop support for VAX in a near future version.

Err codemadness.org 70 i 4430 Err codemadness.org 70 i 4431
Err codemadness.org 70 i 4432
Err codemadness.org 70 i 4433 Err codemadness.org 70 i 4434

My new FreeBSD Laptop: Dell Latitude 7390

Err codemadness.org 70 i 4435 Err codemadness.org 70 i 4436
Err codemadness.org 70 i 4437

As a FreeBSD developer, I make a point of using FreeBSD whenever I can — including on the desktop. I've been running FreeBSD on laptops since 2004; this hasn't always been easy, but over the years I've found that the situation has generally been improving. One of the things we still lack is adequate documentation, however — so I'm writing this to provide an example for users and also Google bait in case anyone runs into some of the problems I had to address.

Err codemadness.org 70 i 4438 Err codemadness.org 70 i 4439
Err codemadness.org 70 i 4440
Err codemadness.org 70 i 4441 Err codemadness.org 70 i 4442

PFS tool changes in DragonFly

Err codemadness.org 70 i 4443 Err codemadness.org 70 i 4444
Err codemadness.org 70 i 4445

HAMMER2 just became a little more DWIM: the pfs-list and pfs-delete directives will now look across all mounted filesystems, not just the current directory’s mount path. pfs-delete won’t delete any filesystem name that appears in more than one place, though

Err codemadness.org 70 i 4446 Err codemadness.org 70 i 4447
    Err codemadness.org 70 i 4448
  • git: hammer2 - Enhance pfs-list and pfs-delete Err codemadness.org 70 i 4449 Enhance pfs-list to list PFSs available across all mounted hammer2 filesystems instead of just the current directory's mount. A specific mount may be specified via -s mountpt. Err codemadness.org 70 i 4450 Enhance pfs-delete to look for the PFS name across all mounted hammer2 filesystems instead of just the current directory's mount. Err codemadness.org 70 i 4451 As a safety, pfs-delete will refuse to delete PFS names which are duplicated across multiple mounts. A specific mount may be specified via -s mountpt.
  • Err codemadness.org 70 i 4452
Err codemadness.org 70 i 4453
Err codemadness.org 70 i 4454 Err codemadness.org 70 i 4455
Err codemadness.org 70 i 4456 Err codemadness.org 70 i 4457

Beastie Bits

Err codemadness.org 70 i 4458 Err codemadness.org 70 i 4459
    Err codemadness.org 70 i 4460
  • BastilleBSD Templates
  • Err codemadness.org 70 i 4461
  • Tianocore update
  • Err codemadness.org 70 i 4462
  • Reminder: FreeBSD Office Hours on June 24, 2020 Err codemadness.org 70 i 4463 *** Err codemadness.org 70 i 4464 ###Tarsnap
  • Err codemadness.org 70 i 4465
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 4466
Err codemadness.org 70 i 4467 Err codemadness.org 70 i 4468

Feedback/Questions

Err codemadness.org 70 i 4469 Err codemadness.org 70 i 4470 ]]> Err codemadness.org 70 i 4478
Err codemadness.org 70 i 4479 https://fireside.fm/player/v2/FYhhasNR+r7kZ_1JZ Err codemadness.org 70 i 4480 Err codemadness.org 70 i 4481 ]]> Err codemadness.org 70 i 4482 Err codemadness.org 70 i 4483
Err codemadness.org 70 i 4484 Err codemadness.org 70 i 4485 354: ZFS safekeeps data Err codemadness.org 70 i 4486 https://www.bsdnow.tv/354 Err codemadness.org 70 i 4487 2b93f76f-bbea-49a0-8cf1-80c997d4510e Err codemadness.org 70 i 4488 Thu, 11 Jun 2020 04:00:00 -0700 Err codemadness.org 70 i 4489 Allan Jude Err codemadness.org 70 i 4490 Err codemadness.org 70 i 4491 full Err codemadness.org 70 i 4492 Allan Jude Err codemadness.org 70 i 4493 FreeBSD 11.4-RC 2 available, OpenBSD 6.7 on a PineBook Pro 64, How OpenZFS Keeps Your Data Safe, Bringing FreeBSD to EC2, FreeBSD 2020 Community Survey, and more. Err codemadness.org 70 i 4494 35:07 Err codemadness.org 70 i 4495 no Err codemadness.org 70 i 4496 Err codemadness.org 70 i 4497 FreeBSD 11.4-RC 2 available, OpenBSD 6.7 on a PineBook Pro 64, How OpenZFS Keeps Your Data Safe, Bringing FreeBSD to EC2, FreeBSD 2020 Community Survey, and more. Err codemadness.org 70 i 4498 NOTES Err codemadness.org 70 i 4499 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 4500 Headlines Err codemadness.org 70 i 4501 FreeBSD 11.4-RC2 Now Available (https://lists.freebsd.org/pipermail/freebsd-stable/2020-May/092320.html) Err codemadness.org 70 i 4502 The second RC build of the 11.4-RELEASE release cycle is now available. Err codemadness.org 70 i 4503 + 11.4-RELEASE notes (https://www.freebsd.org/releases/11.4R/relnotes.html) (still in progress at the time of recording) Err codemadness.org 70 i 4504 Install OpenBSD 6.7-current on a PineBook Pro 64 (https://xosc.org/pinebookpro.html) Err codemadness.org 70 i 4505 This document is work in progress and I'll update the date above once I change something. If you have something to add, remarks, etc please contact me. Preferably via Mastodon but other means of communication are also fine. Err codemadness.org 70 i 4506 News Roundup Err codemadness.org 70 i 4507 Understanding How OpenZFS Keeps Your Data Safe (https://www.ixsystems.com/blog/openzfs-keeps-your-data-safe/) Err codemadness.org 70 i 4508 Veteran technology writer Jim Salter wrote an excellent guide on the ZFS file system’s features and performance that we absolutely had to share. There’s plenty of information in the article for ZFS newbies and advanced users alike. Be sure to check out the article over at Ars Technica to learn more about ZFS concepts including pools, vdevs, datasets, snapshots, and replication, just to name a few. Err codemadness.org 70 i 4509 Bringing FreeBSD to ec2 (https://www.lastweekinaws.com/podcast/screaming-in-the-cloud/bringing-freebsd-to-ec2-with-colin-percival/) Err codemadness.org 70 i 4510 Colin is the founder of Tarsnap, a secure online backup service which combines the flexibility and scriptability of the standard UNIX "tar" utility with strong encryption, deduplication, and the reliability of Amazon S3 storage. Having started work on Tarsnap in 2006, Colin is among the first generation of users of Amazon Web Services, and has written dozens of articles about his experiences with AWS on his blog. Err codemadness.org 70 i 4511 FreeBSD 2020 Community Survey (https://www.research.net/r/freebsd-2020-community-survey) Err codemadness.org 70 i 4512 The FreeBSD Core Team invites you to complete the 2020 FreeBSD Community Survey. The purpose of this survey is to collect quantitative data from the public in order to help guide the project’s priorities and efforts. This is only the second time a survey has been conducted by the FreeBSD Project and your input is valued. Err codemadness.org 70 i 4513 The survey will remain open for 14 days and will close on June 16th at 17:00 UTC (Tuesday 10am PDT). Err codemadness.org 70 i 4514 Beastie Bits Err codemadness.org 70 i 4515 FreeBSD Project Proposals (https://www.freebsdfoundation.org/blog/submit-your-freebsd-project-proposal) Err codemadness.org 70 i 4516 TJ Hacking (https://www.youtube.com/channel/UCknj_nW8JWcFJOAbgd5_Zgw) Err codemadness.org 70 i 4517 Scotland Open Source podcast (https://twitter.com/ScotlandOSUM/status/1265987126321188864?s=19) Err codemadness.org 70 i 4518 Next FreeBSD Office Hours on June 24, 2020 (https://wiki.freebsd.org/OfficeHours) Err codemadness.org 70 i 4519 *** Err codemadness.org 70 i 4520 Feedback/Questions Err codemadness.org 70 i 4521 Tom - Writing for LPIrstudio (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/354/feedback/Tom%20-%20Wriitng%20for%20LPI.md) Err codemadness.org 70 i 4522 Luke - rstudio (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/354/feedback/Luke%20-%20rstudio.md) Err codemadness.org 70 i 4523 Matt - Vlans and Jails (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/354/feedback/Matt%20-%20Vlans%20and%20Jails.md) Err codemadness.org 70 i 4524 Morgan - Can I get some commentary on this issue (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/354/feedback/Morgan%20-%20Can%20I%20get%20some%20commentary%20on%20this%20issue.md) Err codemadness.org 70 i 4525 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 4526 Err codemadness.org 70 i 4527 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, pinebook, pinebook pro, pinebook pro 64, openzfs, data safety, ec2, EC2, Amazon EC2, community survey, freebsd community survey Err codemadness.org 70 i 4528 Err codemadness.org 70 i 4529 FreeBSD 11.4-RC 2 available, OpenBSD 6.7 on a PineBook Pro 64, How OpenZFS Keeps Your Data Safe, Bringing FreeBSD to EC2, FreeBSD 2020 Community Survey, and more.

Err codemadness.org 70 i 4530 Err codemadness.org 70 i 4531

NOTES
Err codemadness.org 70 i 4532 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 4533 Err codemadness.org 70 i 4534

Headlines

Err codemadness.org 70 i 4535 Err codemadness.org 70 i 4536

FreeBSD 11.4-RC2 Now Available

Err codemadness.org 70 i 4537 Err codemadness.org 70 i 4538
Err codemadness.org 70 i 4539

The second RC build of the 11.4-RELEASE release cycle is now available.

Err codemadness.org 70 i 4540 Err codemadness.org 70 i 4541
    Err codemadness.org 70 i 4542
  • 11.4-RELEASE notes (still in progress at the time of recording) Err codemadness.org 70 i 4543 ***
  • Err codemadness.org 70 i 4544
Err codemadness.org 70 i 4545
Err codemadness.org 70 i 4546 Err codemadness.org 70 i 4547

Install OpenBSD 6.7-current on a PineBook Pro 64

Err codemadness.org 70 i 4548 Err codemadness.org 70 i 4549
Err codemadness.org 70 i 4550

This document is work in progress and I'll update the date above once I change something. If you have something to add, remarks, etc please contact me. Preferably via Mastodon but other means of communication are also fine.

Err codemadness.org 70 i 4551 Err codemadness.org 70 i 4552
Err codemadness.org 70 i 4553
Err codemadness.org 70 i 4554 Err codemadness.org 70 i 4555

News Roundup

Err codemadness.org 70 i 4556 Err codemadness.org 70 i 4557

Understanding How OpenZFS Keeps Your Data Safe

Err codemadness.org 70 i 4558 Err codemadness.org 70 i 4559
Err codemadness.org 70 i 4560

Veteran technology writer Jim Salter wrote an excellent guide on the ZFS file system’s features and performance that we absolutely had to share. There’s plenty of information in the article for ZFS newbies and advanced users alike. Be sure to check out the article over at Ars Technica to learn more about ZFS concepts including pools, vdevs, datasets, snapshots, and replication, just to name a few.

Err codemadness.org 70 i 4561 Err codemadness.org 70 i 4562
Err codemadness.org 70 i 4563
Err codemadness.org 70 i 4564 Err codemadness.org 70 i 4565

Bringing FreeBSD to ec2

Err codemadness.org 70 i 4566 Err codemadness.org 70 i 4567
Err codemadness.org 70 i 4568

Colin is the founder of Tarsnap, a secure online backup service which combines the flexibility and scriptability of the standard UNIX "tar" utility with strong encryption, deduplication, and the reliability of Amazon S3 storage. Having started work on Tarsnap in 2006, Colin is among the first generation of users of Amazon Web Services, and has written dozens of articles about his experiences with AWS on his blog.

Err codemadness.org 70 i 4569 Err codemadness.org 70 i 4570
Err codemadness.org 70 i 4571
Err codemadness.org 70 i 4572 Err codemadness.org 70 i 4573

FreeBSD 2020 Community Survey

Err codemadness.org 70 i 4574 Err codemadness.org 70 i 4575
Err codemadness.org 70 i 4576

The FreeBSD Core Team invites you to complete the 2020 FreeBSD Community Survey. The purpose of this survey is to collect quantitative data from the public in order to help guide the project’s priorities and efforts. This is only the second time a survey has been conducted by the FreeBSD Project and your input is valued.
Err codemadness.org 70 i 4577 The survey will remain open for 14 days and will close on June 16th at 17:00 UTC (Tuesday 10am PDT).

Err codemadness.org 70 i 4578 Err codemadness.org 70 i 4579
Err codemadness.org 70 i 4580
Err codemadness.org 70 i 4581 Err codemadness.org 70 i 4582

Beastie Bits

Err codemadness.org 70 i 4583 Err codemadness.org 70 i 4584 Err codemadness.org 70 i 4591 Err codemadness.org 70 i 4592

Feedback/Questions

Err codemadness.org 70 i 4593 Err codemadness.org 70 i 4594

Sponsored By:

]]> Err codemadness.org 70 i 4605
Err codemadness.org 70 i 4606 Err codemadness.org 70 i 4607 FreeBSD 11.4-RC 2 available, OpenBSD 6.7 on a PineBook Pro 64, How OpenZFS Keeps Your Data Safe, Bringing FreeBSD to EC2, FreeBSD 2020 Community Survey, and more.

Err codemadness.org 70 i 4608 Err codemadness.org 70 i 4609

NOTES
Err codemadness.org 70 i 4610 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 4611 Err codemadness.org 70 i 4612

Headlines

Err codemadness.org 70 i 4613 Err codemadness.org 70 i 4614

FreeBSD 11.4-RC2 Now Available

Err codemadness.org 70 i 4615 Err codemadness.org 70 i 4616
Err codemadness.org 70 i 4617

The second RC build of the 11.4-RELEASE release cycle is now available.

Err codemadness.org 70 i 4618 Err codemadness.org 70 i 4619
    Err codemadness.org 70 i 4620
  • 11.4-RELEASE notes (still in progress at the time of recording) Err codemadness.org 70 i 4621 ***
  • Err codemadness.org 70 i 4622
Err codemadness.org 70 i 4623
Err codemadness.org 70 i 4624 Err codemadness.org 70 i 4625

Install OpenBSD 6.7-current on a PineBook Pro 64

Err codemadness.org 70 i 4626 Err codemadness.org 70 i 4627
Err codemadness.org 70 i 4628

This document is work in progress and I'll update the date above once I change something. If you have something to add, remarks, etc please contact me. Preferably via Mastodon but other means of communication are also fine.

Err codemadness.org 70 i 4629 Err codemadness.org 70 i 4630
Err codemadness.org 70 i 4631
Err codemadness.org 70 i 4632 Err codemadness.org 70 i 4633

News Roundup

Err codemadness.org 70 i 4634 Err codemadness.org 70 i 4635

Understanding How OpenZFS Keeps Your Data Safe

Err codemadness.org 70 i 4636 Err codemadness.org 70 i 4637
Err codemadness.org 70 i 4638

Veteran technology writer Jim Salter wrote an excellent guide on the ZFS file system’s features and performance that we absolutely had to share. There’s plenty of information in the article for ZFS newbies and advanced users alike. Be sure to check out the article over at Ars Technica to learn more about ZFS concepts including pools, vdevs, datasets, snapshots, and replication, just to name a few.

Err codemadness.org 70 i 4639 Err codemadness.org 70 i 4640
Err codemadness.org 70 i 4641
Err codemadness.org 70 i 4642 Err codemadness.org 70 i 4643

Bringing FreeBSD to ec2

Err codemadness.org 70 i 4644 Err codemadness.org 70 i 4645
Err codemadness.org 70 i 4646

Colin is the founder of Tarsnap, a secure online backup service which combines the flexibility and scriptability of the standard UNIX "tar" utility with strong encryption, deduplication, and the reliability of Amazon S3 storage. Having started work on Tarsnap in 2006, Colin is among the first generation of users of Amazon Web Services, and has written dozens of articles about his experiences with AWS on his blog.

Err codemadness.org 70 i 4647 Err codemadness.org 70 i 4648
Err codemadness.org 70 i 4649
Err codemadness.org 70 i 4650 Err codemadness.org 70 i 4651

FreeBSD 2020 Community Survey

Err codemadness.org 70 i 4652 Err codemadness.org 70 i 4653
Err codemadness.org 70 i 4654

The FreeBSD Core Team invites you to complete the 2020 FreeBSD Community Survey. The purpose of this survey is to collect quantitative data from the public in order to help guide the project’s priorities and efforts. This is only the second time a survey has been conducted by the FreeBSD Project and your input is valued.
Err codemadness.org 70 i 4655 The survey will remain open for 14 days and will close on June 16th at 17:00 UTC (Tuesday 10am PDT).

Err codemadness.org 70 i 4656 Err codemadness.org 70 i 4657
Err codemadness.org 70 i 4658
Err codemadness.org 70 i 4659 Err codemadness.org 70 i 4660

Beastie Bits

Err codemadness.org 70 i 4661 Err codemadness.org 70 i 4662 Err codemadness.org 70 i 4669 Err codemadness.org 70 i 4670

Feedback/Questions

Err codemadness.org 70 i 4671 Err codemadness.org 70 i 4672

Sponsored By:

]]> Err codemadness.org 70 i 4683
Err codemadness.org 70 i 4684 https://fireside.fm/player/v2/FYhhasNR+CuC931dK Err codemadness.org 70 i 4685 Err codemadness.org 70 i 4686 ]]> Err codemadness.org 70 i 4687 Err codemadness.org 70 i 4688
Err codemadness.org 70 i 4689 Err codemadness.org 70 i 4690 353: ZFS on Ironwolf Err codemadness.org 70 i 4691 https://www.bsdnow.tv/353 Err codemadness.org 70 i 4692 fe0e809c-411c-4156-bf80-80c98028f1ae Err codemadness.org 70 i 4693 Thu, 04 Jun 2020 08:00:00 -0700 Err codemadness.org 70 i 4694 Allan Jude Err codemadness.org 70 i 4695 Err codemadness.org 70 i 4696 full Err codemadness.org 70 i 4697 Allan Jude Err codemadness.org 70 i 4698 Scheduling in NetBSD, ZFS vs. RAID on Ironwolf disks, OpenBSD on Microsoft Surface Go 2, FreeBSD for Linux sysadmins, FreeBSD on Lenovo T480, and more Err codemadness.org 70 i 4699 38:31 Err codemadness.org 70 i 4700 no Err codemadness.org 70 i 4701 Err codemadness.org 70 i 4702 Scheduling in NetBSD, ZFS vs. RAID on Ironwolf disks, OpenBSD on Microsoft Surface Go 2, FreeBSD for Linux sysadmins, FreeBSD on Lenovo T480, and more. Err codemadness.org 70 i 4703 NOTES Err codemadness.org 70 i 4704 This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/) Err codemadness.org 70 i 4705 Headlines Err codemadness.org 70 i 4706 Scheduling in NetBSD – Part 1 (https://manikishan.wordpress.com/2020/05/10/scheduling-in-netbsd-part-1/) Err codemadness.org 70 i 4707 In this blog, we will discuss about the 4.4BSD Thread scheduler one of the two schedulers in NetBSD and a few OS APIs that can be used to control the schedulers and get information while executing. Err codemadness.org 70 i 4708 ZFS versus RAID: Eight Ironwolf disks, two filesystems, one winner (https://arstechnica.com/gadgets/2020/05/zfs-versus-raid-eight-ironwolf-disks-two-filesystems-one-winner/) Err codemadness.org 70 i 4709 This has been a long while in the making—it's test results time. To truly understand the fundamentals of computer storage, it's important to explore the impact of various conventional RAID (Redundant Array of Inexpensive Disks) topologies on performance. It's also important to understand what ZFS is and how it works. But at some point, people (particularly computer enthusiasts on the Internet) want numbers. Err codemadness.org 70 i 4710 If you want to hear more from Jim, he has a new bi-weekly podcast with Allan and Joe Ressington over at 2.5admins.com (https://2.5admins.com/) Err codemadness.org 70 i 4711 News Roundup Err codemadness.org 70 i 4712 OpenBSD on the Microsoft Surface Go 2 (https://jcs.org/2020/05/15/surface_go2) Err codemadness.org 70 i 4713 I used OpenBSD on the original Surface Go back in 2018 and many things worked with the big exception of the internal Atheros WiFi. This meant I had to keep it tethered to a USB-C dock for Ethernet or use a small USB-A WiFi dongle plugged into a less-than-small USB-A-to-USB-C adapter. Err codemadness.org 70 i 4714 FreeBSD UNIX for Linux sysadmins (https://triosdevelopers.com/jason.eckert/blog/Entries/2020/5/2_FreeBSD_UNIX_for_Linux_sysadmins.html) Err codemadness.org 70 i 4715 If you’ve ever installed and explored another Linux distro (what Linux sysadmin hasn’t?!?), then exploring FreeBSD is going be somewhat similar with a few key differences. Err codemadness.org 70 i 4716 While there is no graphical installation, the installation process is straightforward and similar to installing a server-based Linux distro. Just make sure you choose the local_unbound package when prompted if you want to cache DNS lookups locally, as FreeBSD doesn’t have a built-in local DNS resolver that does this. Err codemadness.org 70 i 4717 Following installation, the directory structure is almost identical to Linux. Of course, you’ll notice some small differences here and there (e.g. regular user home directories are located under /usr/home instead of /home). Standard UNIX commands such as ls, chmod, find, which, ps, nice, ifconfig, netstat, sockstat (the ss command in Linux) are exactly as you’d expect, but with some different options here and there that you’ll see in the man pages. And yes, reboot and poweroff are there too. Err codemadness.org 70 i 4718 FreeBSD on the Lenovo Thinkpad T480 (https://www.davidschlachter.com/misc/t480-freebsd) Err codemadness.org 70 i 4719 Recently I replaced my 2014 MacBook Air with a Lenovo Thinkpad T480, on which I've installed FreeBSD, currently 12.1-RELEASE. This page documents my set-up along with various configuration tweaks and fixes. Err codemadness.org 70 i 4720 Tarsnap Err codemadness.org 70 i 4721 This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups. Err codemadness.org 70 i 4722 Feedback/Questions Err codemadness.org 70 i 4723 Benjamin - ZFS Question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/353/feedback/Benjamin%20-%20ZFS%20Question.md) Err codemadness.org 70 i 4724 Brad - swappagergetswapspace errors (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/353/feedback/Brad%20-%20swap_pager_getswapspace%20errors.md) Err codemadness.org 70 i 4725 Brandon - gaming (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/353/feedback/Brandon%20-%20gaming.md) Err codemadness.org 70 i 4726 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 4727 Err codemadness.org 70 i 4728 bsd, dragonflybsd, freebsd, guide, hardenedbsd, howto, interview, ironwolf, lenovo t480, microsoft, netbsd, openbsd, raid, scheduler, scheduling, surface go, sysadmin, system administration, system administrator, t480, trident, trueos, tutorial, zfs Err codemadness.org 70 i 4729 Err codemadness.org 70 i 4730 Scheduling in NetBSD, ZFS vs. RAID on Ironwolf disks, OpenBSD on Microsoft Surface Go 2, FreeBSD for Linux sysadmins, FreeBSD on Lenovo T480, and more.

Err codemadness.org 70 i 4731 Err codemadness.org 70 i 4732

NOTES
Err codemadness.org 70 i 4733 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 4734 Err codemadness.org 70 i 4735

Headlines

Err codemadness.org 70 i 4736 Err codemadness.org 70 i 4737

Scheduling in NetBSD – Part 1

Err codemadness.org 70 i 4738 Err codemadness.org 70 i 4739
Err codemadness.org 70 i 4740

In this blog, we will discuss about the 4.4BSD Thread scheduler one of the two schedulers in NetBSD and a few OS APIs that can be used to control the schedulers and get information while executing.

Err codemadness.org 70 i 4741
Err codemadness.org 70 i 4742 Err codemadness.org 70 i 4743
Err codemadness.org 70 i 4744 Err codemadness.org 70 i 4745

ZFS versus RAID: Eight Ironwolf disks, two filesystems, one winner

Err codemadness.org 70 i 4746 Err codemadness.org 70 i 4747
Err codemadness.org 70 i 4748

This has been a long while in the making—it's test results time. To truly understand the fundamentals of computer storage, it's important to explore the impact of various conventional RAID (Redundant Array of Inexpensive Disks) topologies on performance. It's also important to understand what ZFS is and how it works. But at some point, people (particularly computer enthusiasts on the Internet) want numbers.

Err codemadness.org 70 i 4749
Err codemadness.org 70 i 4750 Err codemadness.org 70 i 4751
    Err codemadness.org 70 i 4752
  • If you want to hear more from Jim, he has a new bi-weekly podcast with Allan and Joe Ressington over at 2.5admins.com
  • Err codemadness.org 70 i 4753
Err codemadness.org 70 i 4754 Err codemadness.org 70 i 4755
Err codemadness.org 70 i 4756 Err codemadness.org 70 i 4757

News Roundup

Err codemadness.org 70 i 4758 Err codemadness.org 70 i 4759

OpenBSD on the Microsoft Surface Go 2

Err codemadness.org 70 i 4760 Err codemadness.org 70 i 4761
Err codemadness.org 70 i 4762

I used OpenBSD on the original Surface Go back in 2018 and many things worked with the big exception of the internal Atheros WiFi. This meant I had to keep it tethered to a USB-C dock for Ethernet or use a small USB-A WiFi dongle plugged into a less-than-small USB-A-to-USB-C adapter.

Err codemadness.org 70 i 4763
Err codemadness.org 70 i 4764 Err codemadness.org 70 i 4765
Err codemadness.org 70 i 4766 Err codemadness.org 70 i 4767

FreeBSD UNIX for Linux sysadmins

Err codemadness.org 70 i 4768 Err codemadness.org 70 i 4769
Err codemadness.org 70 i 4770

If you’ve ever installed and explored another Linux distro (what Linux sysadmin hasn’t?!?), then exploring FreeBSD is going be somewhat similar with a few key differences.
Err codemadness.org 70 i 4771 While there is no graphical installation, the installation process is straightforward and similar to installing a server-based Linux distro. Just make sure you choose the local_unbound package when prompted if you want to cache DNS lookups locally, as FreeBSD doesn’t have a built-in local DNS resolver that does this.
Err codemadness.org 70 i 4772 Following installation, the directory structure is almost identical to Linux. Of course, you’ll notice some small differences here and there (e.g. regular user home directories are located under /usr/home instead of /home). Standard UNIX commands such as ls, chmod, find, which, ps, nice, ifconfig, netstat, sockstat (the ss command in Linux) are exactly as you’d expect, but with some different options here and there that you’ll see in the man pages. And yes, reboot and poweroff are there too.

Err codemadness.org 70 i 4773
Err codemadness.org 70 i 4774 Err codemadness.org 70 i 4775
Err codemadness.org 70 i 4776 Err codemadness.org 70 i 4777

FreeBSD on the Lenovo Thinkpad T480

Err codemadness.org 70 i 4778 Err codemadness.org 70 i 4779
Err codemadness.org 70 i 4780

Recently I replaced my 2014 MacBook Air with a Lenovo Thinkpad T480, on which I've installed FreeBSD, currently 12.1-RELEASE. This page documents my set-up along with various configuration tweaks and fixes.

Err codemadness.org 70 i 4781
Err codemadness.org 70 i 4782 Err codemadness.org 70 i 4783
Err codemadness.org 70 i 4784 Err codemadness.org 70 i 4785

Tarsnap

Err codemadness.org 70 i 4786 Err codemadness.org 70 i 4787
    Err codemadness.org 70 i 4788
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 4789
Err codemadness.org 70 i 4790 Err codemadness.org 70 i 4791
Err codemadness.org 70 i 4792 Err codemadness.org 70 i 4793

Feedback/Questions

Err codemadness.org 70 i 4794 Err codemadness.org 70 i 4795 Err codemadness.org 70 i 4800 Err codemadness.org 70 i 4801
Err codemadness.org 70 i 4802 Err codemadness.org 70 i 4803
    Err codemadness.org 70 i 4804
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 4805
Err codemadness.org 70 i 4806 Err codemadness.org 70 i 4807

Sponsored By:

]]> Err codemadness.org 70 i 4808
Err codemadness.org 70 i 4809 Err codemadness.org 70 i 4810 Scheduling in NetBSD, ZFS vs. RAID on Ironwolf disks, OpenBSD on Microsoft Surface Go 2, FreeBSD for Linux sysadmins, FreeBSD on Lenovo T480, and more.

Err codemadness.org 70 i 4811 Err codemadness.org 70 i 4812

NOTES
Err codemadness.org 70 i 4813 This episode of BSDNow is brought to you by Tarsnap

Err codemadness.org 70 i 4814 Err codemadness.org 70 i 4815

Headlines

Err codemadness.org 70 i 4816 Err codemadness.org 70 i 4817

Scheduling in NetBSD – Part 1

Err codemadness.org 70 i 4818 Err codemadness.org 70 i 4819
Err codemadness.org 70 i 4820

In this blog, we will discuss about the 4.4BSD Thread scheduler one of the two schedulers in NetBSD and a few OS APIs that can be used to control the schedulers and get information while executing.

Err codemadness.org 70 i 4821
Err codemadness.org 70 i 4822 Err codemadness.org 70 i 4823
Err codemadness.org 70 i 4824 Err codemadness.org 70 i 4825

ZFS versus RAID: Eight Ironwolf disks, two filesystems, one winner

Err codemadness.org 70 i 4826 Err codemadness.org 70 i 4827
Err codemadness.org 70 i 4828

This has been a long while in the making—it's test results time. To truly understand the fundamentals of computer storage, it's important to explore the impact of various conventional RAID (Redundant Array of Inexpensive Disks) topologies on performance. It's also important to understand what ZFS is and how it works. But at some point, people (particularly computer enthusiasts on the Internet) want numbers.

Err codemadness.org 70 i 4829
Err codemadness.org 70 i 4830 Err codemadness.org 70 i 4831
    Err codemadness.org 70 i 4832
  • If you want to hear more from Jim, he has a new bi-weekly podcast with Allan and Joe Ressington over at 2.5admins.com
  • Err codemadness.org 70 i 4833
Err codemadness.org 70 i 4834 Err codemadness.org 70 i 4835
Err codemadness.org 70 i 4836 Err codemadness.org 70 i 4837

News Roundup

Err codemadness.org 70 i 4838 Err codemadness.org 70 i 4839

OpenBSD on the Microsoft Surface Go 2

Err codemadness.org 70 i 4840 Err codemadness.org 70 i 4841
Err codemadness.org 70 i 4842

I used OpenBSD on the original Surface Go back in 2018 and many things worked with the big exception of the internal Atheros WiFi. This meant I had to keep it tethered to a USB-C dock for Ethernet or use a small USB-A WiFi dongle plugged into a less-than-small USB-A-to-USB-C adapter.

Err codemadness.org 70 i 4843
Err codemadness.org 70 i 4844 Err codemadness.org 70 i 4845
Err codemadness.org 70 i 4846 Err codemadness.org 70 i 4847

FreeBSD UNIX for Linux sysadmins

Err codemadness.org 70 i 4848 Err codemadness.org 70 i 4849
Err codemadness.org 70 i 4850

If you’ve ever installed and explored another Linux distro (what Linux sysadmin hasn’t?!?), then exploring FreeBSD is going be somewhat similar with a few key differences.
Err codemadness.org 70 i 4851 While there is no graphical installation, the installation process is straightforward and similar to installing a server-based Linux distro. Just make sure you choose the local_unbound package when prompted if you want to cache DNS lookups locally, as FreeBSD doesn’t have a built-in local DNS resolver that does this.
Err codemadness.org 70 i 4852 Following installation, the directory structure is almost identical to Linux. Of course, you’ll notice some small differences here and there (e.g. regular user home directories are located under /usr/home instead of /home). Standard UNIX commands such as ls, chmod, find, which, ps, nice, ifconfig, netstat, sockstat (the ss command in Linux) are exactly as you’d expect, but with some different options here and there that you’ll see in the man pages. And yes, reboot and poweroff are there too.

Err codemadness.org 70 i 4853
Err codemadness.org 70 i 4854 Err codemadness.org 70 i 4855
Err codemadness.org 70 i 4856 Err codemadness.org 70 i 4857

FreeBSD on the Lenovo Thinkpad T480

Err codemadness.org 70 i 4858 Err codemadness.org 70 i 4859
Err codemadness.org 70 i 4860

Recently I replaced my 2014 MacBook Air with a Lenovo Thinkpad T480, on which I've installed FreeBSD, currently 12.1-RELEASE. This page documents my set-up along with various configuration tweaks and fixes.

Err codemadness.org 70 i 4861
Err codemadness.org 70 i 4862 Err codemadness.org 70 i 4863
Err codemadness.org 70 i 4864 Err codemadness.org 70 i 4865

Tarsnap

Err codemadness.org 70 i 4866 Err codemadness.org 70 i 4867
    Err codemadness.org 70 i 4868
  • This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
  • Err codemadness.org 70 i 4869
Err codemadness.org 70 i 4870 Err codemadness.org 70 i 4871
Err codemadness.org 70 i 4872 Err codemadness.org 70 i 4873

Feedback/Questions

Err codemadness.org 70 i 4874 Err codemadness.org 70 i 4875 Err codemadness.org 70 i 4880 Err codemadness.org 70 i 4881
Err codemadness.org 70 i 4882 Err codemadness.org 70 i 4883
    Err codemadness.org 70 i 4884
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 4885
Err codemadness.org 70 i 4886 Err codemadness.org 70 i 4887

Sponsored By:

]]> Err codemadness.org 70 i 4888
Err codemadness.org 70 i 4889 https://fireside.fm/player/v2/FYhhasNR+fXSNRG9o Err codemadness.org 70 i 4890 Err codemadness.org 70 i 4891 ]]> Err codemadness.org 70 i 4892 Err codemadness.org 70 i 4893
Err codemadness.org 70 i 4894 Err codemadness.org 70 i 4895 352: Introducing Randomness Err codemadness.org 70 i 4896 https://www.bsdnow.tv/352 Err codemadness.org 70 i 4897 a4aba73b-ccc0-41d3-bd39-45783e594bd3 Err codemadness.org 70 i 4898 Thu, 28 May 2020 05:00:00 -0700 Err codemadness.org 70 i 4899 Allan Jude Err codemadness.org 70 i 4900 Err codemadness.org 70 i 4901 full Err codemadness.org 70 i 4902 Allan Jude Err codemadness.org 70 i 4903 A brief introduction to randomness, logs grinding netatalk to a halt, NetBSD core team changes, Using qemu guest agent on OpenBSD kvm/qemu guests, WireGuard patchset for OpenBSD, FreeBSD 12.1 on a laptop, and more. Err codemadness.org 70 i 4904 50:56 Err codemadness.org 70 i 4905 no Err codemadness.org 70 i 4906 Err codemadness.org 70 i 4907 A brief introduction to randomness, logs grinding netatalk to a halt, NetBSD core team changes, Using qemu guest agent on OpenBSD kvm/qemu guests, WireGuard patchset for OpenBSD, FreeBSD 12.1 on a laptop, and more. Err codemadness.org 70 i 4908 Headlines Err codemadness.org 70 i 4909 Entropy (https://washbear.neocities.org/entropy.html) Err codemadness.org 70 i 4910 A brief introduction to randomness Err codemadness.org 70 i 4911 Problem: Computers are very predictable. This is by design. Err codemadness.org 70 i 4912 But what if we want them to act unpredictably? This is very useful if we want to secure our private communications with randomized keys, or not let people cheat at video games, or if we're doing statistical simulations or similar. Err codemadness.org 70 i 4913 Logs grinding Netatalk on FreeBSD to a hault (https://rubenerd.com/logs-grinding-netatalk-on-freebsd-to-a-hault/) Err codemadness.org 70 i 4914 I’ve heard it said the cobbler’s children walk barefoot. While posessing the qualities of a famed financial investment strategy, it speaks to how we generally put more effort into things for others than ourselves; at least in business. Err codemadness.org 70 i 4915 The HP Microserver I share with Clara is a modest affair compared to what we run at work. It has six spinning rust drives and two SSDs which are ZFS-mirrored; not even in a RAID 10 equivalent. This is underlaid with GELI for encryption, and served to our Macs with Netatalk over gigabit Ethernet with jumbo frames. Err codemadness.org 70 i 4916 News Roundup Err codemadness.org 70 i 4917 NetBSD Core Team Changes (https://mail-index.netbsd.org/netbsd-announce/2020/05/07/msg000314.html) Err codemadness.org 70 i 4918 Matt Thomas (matt@) has served on the NetBSD core team for over ten years, and has made many contributions, including ELF functionality, being the long-time VAX maintainer, gcc contributor, the generic pmap, and also networking functionality, and platform bring-up over the years. Matt has stepped down from the NetBSD core team, and we thank him for his many, extensive contributions. Err codemadness.org 70 i 4919 Robert Elz (kre@), a long time BSD contributor, has kindly accepted the offer to join the core team, and help us out with the benefit of his experience and advice over many years. Amongst other things, Robert has been maintaining our shell, liaising with the Austin Group, and bringing it up to date with modern functionality. Err codemadness.org 70 i 4920 Using qemu guest agent on OpenBSD kvm/qemu guests (https://undeadly.org/cgi?action=article;sid=20200514073852) Err codemadness.org 70 i 4921 In a post to the ports@ mailing list, Landry Breuil (landry@) shared some of his notes on using qemu guest agent on OpenBSD kvm/qemu guests. Err codemadness.org 70 i 4922 WireGuard patchset for OpenBSD (https://undeadly.org/cgi?action=article;sid=20200512080047) Err codemadness.org 70 i 4923 A while ago I wanted to learn more about OpenBSD development. So I picked a project, in this case WireGuard, to develop a native client for. Over the last two years, with many different iterations, and working closely with the WireGuard's creator (Jason [Jason A. Donenfeld - Ed.], CC'd), it started to become a serious project eventually reaching parity with other official implementations. Finally, we are here and I think it is time for any further development to happen inside the src tree. Err codemadness.org 70 i 4924 FreeBSD 12.1 on a laptop (https://dataswamp.org/~solene/2020-05-11-freebsd-workstation.html) Err codemadness.org 70 i 4925 I’m using FreeBSD again on a laptop for some reasons so expect to read more about FreeBSD here. This tutorial explain how to get a graphical desktop using FreeBSD 12.1. Err codemadness.org 70 i 4926 Beastie Bits Err codemadness.org 70 i 4927 List of useful FreeBSD Commands (https://medium.com/@tdebarbora/list-of-useful-freebsd-commands-92dffb8f8c57) Err codemadness.org 70 i 4928 Master Your Network With Unix Command Line Tools (https://itnext.io/master-your-network-with-unix-command-line-tools-790bdd3b3b87) Err codemadness.org 70 i 4929 Original Unix containers aka FreeBSD jails (https://twitter.com/nixcraft/status/1257674069387993088) Err codemadness.org 70 i 4930 Flashback : 2003 Article : Bill Joy's greatest gift to man – the vi editor (https://www.theregister.co.uk/2003/09/11/bill_joys_greatest_gift/) Err codemadness.org 70 i 4931 FreeBSD Journal March/April 2020 Filesystems: ZFS Encryption, FUSE, and more, plus Network Bridges (https://www.freebsdfoundation.org/past-issues/filesystems/) Err codemadness.org 70 i 4932 HAMBug meeting will be online again in June, so those from all over the world are welcome to join, June 9th (2nd Tuesday of each month) at 18:30 Eastern (https://www.hambug.ca/) Err codemadness.org 70 i 4933 Feedback/Questions Err codemadness.org 70 i 4934 + Lyubomir - GELI and ZFS (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/352/feedback/Lyubomir%20-%20GELI%20and%20ZFS.md) Err codemadness.org 70 i 4935 Patrick - powerd and powerd++ (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/352/feedback/Patrick%20-%20powerd%20and%20powerd%2B%2B.md) Err codemadness.org 70 i 4936 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 4937 Err codemadness.org 70 i 4938 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, random, randomness, entropy, logs, netatalk, core team, changes, qemu, guest agent, kvm, wireguard, patchset, laptop, notebook Err codemadness.org 70 i 4939 Err codemadness.org 70 i 4940 A brief introduction to randomness, logs grinding netatalk to a halt, NetBSD core team changes, Using qemu guest agent on OpenBSD kvm/qemu guests, WireGuard patchset for OpenBSD, FreeBSD 12.1 on a laptop, and more.

Err codemadness.org 70 i 4941 Err codemadness.org 70 i 4942

Headlines

Err codemadness.org 70 i 4943 Err codemadness.org 70 i 4944

Entropy

Err codemadness.org 70 i 4945 Err codemadness.org 70 i 4946
Err codemadness.org 70 i 4947
Err codemadness.org 70 i 4948

A brief introduction to randomness

Err codemadness.org 70 i 4949
Err codemadness.org 70 i 4950
Err codemadness.org 70 i 4951 Err codemadness.org 70 i 4952
    Err codemadness.org 70 i 4953
  • Problem: Computers are very predictable. This is by design.
  • Err codemadness.org 70 i 4954
Err codemadness.org 70 i 4955 Err codemadness.org 70 i 4956
Err codemadness.org 70 i 4957

But what if we want them to act unpredictably? This is very useful if we want to secure our private communications with randomized keys, or not let people cheat at video games, or if we're doing statistical simulations or similar.

Err codemadness.org 70 i 4958
Err codemadness.org 70 i 4959 Err codemadness.org 70 i 4960
Err codemadness.org 70 i 4961 Err codemadness.org 70 i 4962

Logs grinding Netatalk on FreeBSD to a hault

Err codemadness.org 70 i 4963 Err codemadness.org 70 i 4964
Err codemadness.org 70 i 4965
Err codemadness.org 70 i 4966

I’ve heard it said the cobbler’s children walk barefoot. While posessing the qualities of a famed financial investment strategy, it speaks to how we generally put more effort into things for others than ourselves; at least in business.
Err codemadness.org 70 i 4967 The HP Microserver I share with Clara is a modest affair compared to what we run at work. It has six spinning rust drives and two SSDs which are ZFS-mirrored; not even in a RAID 10 equivalent. This is underlaid with GELI for encryption, and served to our Macs with Netatalk over gigabit Ethernet with jumbo frames.

Err codemadness.org 70 i 4968
Err codemadness.org 70 i 4969
Err codemadness.org 70 i 4970 Err codemadness.org 70 i 4971
Err codemadness.org 70 i 4972 Err codemadness.org 70 i 4973

News Roundup

Err codemadness.org 70 i 4974 Err codemadness.org 70 i 4975

NetBSD Core Team Changes

Err codemadness.org 70 i 4976 Err codemadness.org 70 i 4977
Err codemadness.org 70 i 4978

Matt Thomas (matt@) has served on the NetBSD core team for over ten years, and has made many contributions, including ELF functionality, being the long-time VAX maintainer, gcc contributor, the generic pmap, and also networking functionality, and platform bring-up over the years. Matt has stepped down from the NetBSD core team, and we thank him for his many, extensive contributions.
Err codemadness.org 70 i 4979 Robert Elz (kre@), a long time BSD contributor, has kindly accepted the offer to join the core team, and help us out with the benefit of his experience and advice over many years. Amongst other things, Robert has been maintaining our shell, liaising with the Austin Group, and bringing it up to date with modern functionality.

Err codemadness.org 70 i 4980 Err codemadness.org 70 i 4981
Err codemadness.org 70 i 4982
Err codemadness.org 70 i 4983 Err codemadness.org 70 i 4984

Using qemu guest agent on OpenBSD kvm/qemu guests

Err codemadness.org 70 i 4985 Err codemadness.org 70 i 4986
Err codemadness.org 70 i 4987

In a post to the ports@ mailing list, Landry Breuil (landry@) shared some of his notes on using qemu guest agent on OpenBSD kvm/qemu guests.

Err codemadness.org 70 i 4988
Err codemadness.org 70 i 4989 Err codemadness.org 70 i 4990
Err codemadness.org 70 i 4991 Err codemadness.org 70 i 4992

WireGuard patchset for OpenBSD

Err codemadness.org 70 i 4993 Err codemadness.org 70 i 4994
Err codemadness.org 70 i 4995

A while ago I wanted to learn more about OpenBSD development. So I picked a project, in this case WireGuard, to develop a native client for. Over the last two years, with many different iterations, and working closely with the WireGuard's creator (Jason [Jason A. Donenfeld - Ed.], CC'd), it started to become a serious project eventually reaching parity with other official implementations. Finally, we are here and I think it is time for any further development to happen inside the src tree.

Err codemadness.org 70 i 4996 Err codemadness.org 70 i 4997
Err codemadness.org 70 i 4998
Err codemadness.org 70 i 4999 Err codemadness.org 70 i 5000

FreeBSD 12.1 on a laptop

Err codemadness.org 70 i 5001 Err codemadness.org 70 i 5002
Err codemadness.org 70 i 5003

I’m using FreeBSD again on a laptop for some reasons so expect to read more about FreeBSD here. This tutorial explain how to get a graphical desktop using FreeBSD 12.1.

Err codemadness.org 70 i 5004 Err codemadness.org 70 i 5005
Err codemadness.org 70 i 5006
Err codemadness.org 70 i 5007 Err codemadness.org 70 i 5008

Beastie Bits

Err codemadness.org 70 i 5009 Err codemadness.org 70 i 5010 Err codemadness.org 70 i 5018 Err codemadness.org 70 i 5019
Err codemadness.org 70 i 5020 Err codemadness.org 70 i 5021

Feedback/Questions

Err codemadness.org 70 i 5022 Err codemadness.org 70 i 5023 Err codemadness.org 70 i 5027 Err codemadness.org 70 i 5028
Err codemadness.org 70 i 5029 Err codemadness.org 70 i 5030
    Err codemadness.org 70 i 5031
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 5032
Err codemadness.org 70 i 5033 Err codemadness.org 70 i 5034
]]> Err codemadness.org 70 i 5035
Err codemadness.org 70 i 5036 Err codemadness.org 70 i 5037 A brief introduction to randomness, logs grinding netatalk to a halt, NetBSD core team changes, Using qemu guest agent on OpenBSD kvm/qemu guests, WireGuard patchset for OpenBSD, FreeBSD 12.1 on a laptop, and more.

Err codemadness.org 70 i 5038 Err codemadness.org 70 i 5039

Headlines

Err codemadness.org 70 i 5040 Err codemadness.org 70 i 5041

Entropy

Err codemadness.org 70 i 5042 Err codemadness.org 70 i 5043
Err codemadness.org 70 i 5044
Err codemadness.org 70 i 5045

A brief introduction to randomness

Err codemadness.org 70 i 5046
Err codemadness.org 70 i 5047
Err codemadness.org 70 i 5048 Err codemadness.org 70 i 5049
    Err codemadness.org 70 i 5050
  • Problem: Computers are very predictable. This is by design.
  • Err codemadness.org 70 i 5051
Err codemadness.org 70 i 5052 Err codemadness.org 70 i 5053
Err codemadness.org 70 i 5054

But what if we want them to act unpredictably? This is very useful if we want to secure our private communications with randomized keys, or not let people cheat at video games, or if we're doing statistical simulations or similar.

Err codemadness.org 70 i 5055
Err codemadness.org 70 i 5056 Err codemadness.org 70 i 5057
Err codemadness.org 70 i 5058 Err codemadness.org 70 i 5059

Logs grinding Netatalk on FreeBSD to a hault

Err codemadness.org 70 i 5060 Err codemadness.org 70 i 5061
Err codemadness.org 70 i 5062
Err codemadness.org 70 i 5063

I’ve heard it said the cobbler’s children walk barefoot. While posessing the qualities of a famed financial investment strategy, it speaks to how we generally put more effort into things for others than ourselves; at least in business.
Err codemadness.org 70 i 5064 The HP Microserver I share with Clara is a modest affair compared to what we run at work. It has six spinning rust drives and two SSDs which are ZFS-mirrored; not even in a RAID 10 equivalent. This is underlaid with GELI for encryption, and served to our Macs with Netatalk over gigabit Ethernet with jumbo frames.

Err codemadness.org 70 i 5065
Err codemadness.org 70 i 5066
Err codemadness.org 70 i 5067 Err codemadness.org 70 i 5068
Err codemadness.org 70 i 5069 Err codemadness.org 70 i 5070

News Roundup

Err codemadness.org 70 i 5071 Err codemadness.org 70 i 5072

NetBSD Core Team Changes

Err codemadness.org 70 i 5073 Err codemadness.org 70 i 5074
Err codemadness.org 70 i 5075

Matt Thomas (matt@) has served on the NetBSD core team for over ten years, and has made many contributions, including ELF functionality, being the long-time VAX maintainer, gcc contributor, the generic pmap, and also networking functionality, and platform bring-up over the years. Matt has stepped down from the NetBSD core team, and we thank him for his many, extensive contributions.
Err codemadness.org 70 i 5076 Robert Elz (kre@), a long time BSD contributor, has kindly accepted the offer to join the core team, and help us out with the benefit of his experience and advice over many years. Amongst other things, Robert has been maintaining our shell, liaising with the Austin Group, and bringing it up to date with modern functionality.

Err codemadness.org 70 i 5077 Err codemadness.org 70 i 5078
Err codemadness.org 70 i 5079
Err codemadness.org 70 i 5080 Err codemadness.org 70 i 5081

Using qemu guest agent on OpenBSD kvm/qemu guests

Err codemadness.org 70 i 5082 Err codemadness.org 70 i 5083
Err codemadness.org 70 i 5084

In a post to the ports@ mailing list, Landry Breuil (landry@) shared some of his notes on using qemu guest agent on OpenBSD kvm/qemu guests.

Err codemadness.org 70 i 5085
Err codemadness.org 70 i 5086 Err codemadness.org 70 i 5087
Err codemadness.org 70 i 5088 Err codemadness.org 70 i 5089

WireGuard patchset for OpenBSD

Err codemadness.org 70 i 5090 Err codemadness.org 70 i 5091
Err codemadness.org 70 i 5092

A while ago I wanted to learn more about OpenBSD development. So I picked a project, in this case WireGuard, to develop a native client for. Over the last two years, with many different iterations, and working closely with the WireGuard's creator (Jason [Jason A. Donenfeld - Ed.], CC'd), it started to become a serious project eventually reaching parity with other official implementations. Finally, we are here and I think it is time for any further development to happen inside the src tree.

Err codemadness.org 70 i 5093 Err codemadness.org 70 i 5094
Err codemadness.org 70 i 5095
Err codemadness.org 70 i 5096 Err codemadness.org 70 i 5097

FreeBSD 12.1 on a laptop

Err codemadness.org 70 i 5098 Err codemadness.org 70 i 5099
Err codemadness.org 70 i 5100

I’m using FreeBSD again on a laptop for some reasons so expect to read more about FreeBSD here. This tutorial explain how to get a graphical desktop using FreeBSD 12.1.

Err codemadness.org 70 i 5101 Err codemadness.org 70 i 5102
Err codemadness.org 70 i 5103
Err codemadness.org 70 i 5104 Err codemadness.org 70 i 5105

Beastie Bits

Err codemadness.org 70 i 5106 Err codemadness.org 70 i 5107 Err codemadness.org 70 i 5115 Err codemadness.org 70 i 5116
Err codemadness.org 70 i 5117 Err codemadness.org 70 i 5118

Feedback/Questions

Err codemadness.org 70 i 5119 Err codemadness.org 70 i 5120 Err codemadness.org 70 i 5124 Err codemadness.org 70 i 5125
Err codemadness.org 70 i 5126 Err codemadness.org 70 i 5127
    Err codemadness.org 70 i 5128
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 5129
Err codemadness.org 70 i 5130 Err codemadness.org 70 i 5131
]]> Err codemadness.org 70 i 5132
Err codemadness.org 70 i 5133 https://fireside.fm/player/v2/FYhhasNR+_DSB34Bn Err codemadness.org 70 i 5134 Err codemadness.org 70 i 5135 ]]> Err codemadness.org 70 i 5136 Err codemadness.org 70 i 5137
Err codemadness.org 70 i 5138 Err codemadness.org 70 i 5139 351: Heaven: OpenBSD 6.7 Err codemadness.org 70 i 5140 https://www.bsdnow.tv/351 Err codemadness.org 70 i 5141 2a4b866e-d026-416c-9ab7-e0b95bf24043 Err codemadness.org 70 i 5142 Thu, 21 May 2020 05:00:00 -0700 Err codemadness.org 70 i 5143 Allan Jude Err codemadness.org 70 i 5144 Err codemadness.org 70 i 5145 full Err codemadness.org 70 i 5146 Allan Jude Err codemadness.org 70 i 5147 Backup and Restore on NetBSD, OpenBSD 6.7 available, Building a WireGuard Jail with FreeBSD's standard tools, who gets to chown things and quotas, influence TrueNAS CORE roadmap, and more. Err codemadness.org 70 i 5148 Date: 2020-05-20 Err codemadness.org 70 i 5149 49:09 Err codemadness.org 70 i 5150 no Err codemadness.org 70 i 5151 Err codemadness.org 70 i 5152 Backup and Restore on NetBSD, OpenBSD 6.7 available, Building a WireGuard Jail with FreeBSD's standard tools, who gets to chown things and quotas, influence TrueNAS CORE roadmap, and more. Err codemadness.org 70 i 5153 Headlines Err codemadness.org 70 i 5154 Backup and Restore on NetBSD (https://e17i.github.io/articles-netbsd-backup/) Err codemadness.org 70 i 5155 Putting together the bits and pieces of a backup and restore concept, while not being rocket science, always seems to be a little bit ungrateful. Most Admin Handbooks handle this topic only within few pages. After replacing my old Mac Mini's OS by NetBSD, I tried to implement an automated backup, allowing me to handle it similarly to the time machine backups I've been using before. Suggestions on how to improve are always welcome. Err codemadness.org 70 i 5156 BSD Release: OpenBSD 6.7 (https://distrowatch.com/?newsid=10921) Err codemadness.org 70 i 5157 The OpenBSD project produces and operating system which places focus on portability, standardisation, code correctness, proactive security and integrated cryptography. The project's latest release is OpenBSD 6.7 which introduces several new improvements to the cron scheduling daemon, improvements to the web server daemon, and the top command now offers scrollable output. These and many more changes can be found in the project's release announcement: "This is a partial list of new features and systems included in OpenBSD 6.7. For a comprehensive list, see the changelog leading to 6.7. General improvements and bugfixes: Reduced the minimum allowed number of chunks in a CONCAT volume from 2 to 1, increasing the number of volumes which can be created on a single disk with bioctl(8) from 7 to 15. This can be used to create more partitions than previously. Rewrote the cron(8) flag-parsing code to be getopt-like, allowing tight formations like -ns and flag repetition. Renamed the 'options' field in crontab(5) to 'flags'. Added crontab(5) -s flag to the command field, indicating that only a single instance of the job should run concurrently. Added cron(8) support for random time values using the ~ operator. Allowed cwm(1) configuration of window size based on percentage of the master window during horizontal and vertical tiling actions." Err codemadness.org 70 i 5158 Release Announcement (https://marc.info/?l=openbsd-announce&m=158989783626149&w=2) Err codemadness.org 70 i 5159 Release Notes (https://www.openbsd.org/67.html) Err codemadness.org 70 i 5160 News Roundup Err codemadness.org 70 i 5161 Building a WireGuard Jail with the FreeBSD's Standard Tools (https://genneko.github.io/playing-with-bsd/networking/freebsd-wireguard-jail/) Err codemadness.org 70 i 5162 Recently, I had an opportunity to build a WireGuard jail on a FreeBSD 12.1 host. Err codemadness.org 70 i 5163 As it was really quick and easy to setup and it has been working completely fine for a month, I’d like to share my experience with anyone interested in this topic. Err codemadness.org 70 i 5164 The Unix divide over who gets to chown things, and (disk space) quotas (https://utcc.utoronto.ca/~cks/space/blog/unix/ChownDivideAndQuotas) Err codemadness.org 70 i 5165 One of the famous big splits between the BSD Unix world and the System V world is whether ordinary users can use chown (the command and the system call) to give away their own files. In System V derived Unixes you were generally allowed to; in BSD derived Unixes you weren't. Until I looked it up now to make sure, I thought that BSD changed this behavior from V7 and that V7 had an unrestricted chown. However, this turns out to be wrong; in V7 Unix, chown(2) was restricted to root only. Err codemadness.org 70 i 5166 You Can Influence the TrueNAS CORE Roadmap! (https://www.ixsystems.com/blog/truenas-bugs-and-suggestions/) Err codemadness.org 70 i 5167 As many of you know, we’ve historically had three ticket types available in our tracker: Bugs, Features, and Improvements, which are all fairly self-explanatory. After some discussion internally, we’ve decided to implement a new type of ticket, a “Suggestion”. These will be replacing Feature and Improvement requests for the TrueNAS Community, simplifying things down to two options: Bugs and Suggestions. This change also introduces a slightly different workflow than before. Err codemadness.org 70 i 5168 Beastie Bits Err codemadness.org 70 i 5169 FreeNAS Spare Parts Build: Testing ZFS With Imbalanced VDEVs and Mismatched Drives (https://www.youtube.com/watch?v=EFrlG3CUKFQ) Err codemadness.org 70 i 5170 TLSv1.3 server code enabled in LibreSSL in -current (https://undeadly.org/cgi?action=article;sid=20200512074150) Err codemadness.org 70 i 5171 Interview with Deb Goodkin (https://itsfoss.com/freebsd-interview-deb-goodkin/) Err codemadness.org 70 i 5172 *** Err codemadness.org 70 i 5173 Feedback/Questions Err codemadness.org 70 i 5174 Bostjan - WireGaurd (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/351/feedback/Bostjan%20-%20WireGaurd.md) Err codemadness.org 70 i 5175 Chad - ZFS Pool Design (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/351/feedback/Chad%20-%20ZFS%20Pool%20Design.md) Err codemadness.org 70 i 5176 Pedreo - Scale FreeBSD Jails (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/351/feedback/Pedreo%20-%20Scale%20FreeBSD%20Jails.md) Err codemadness.org 70 i 5177 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 5178 Err codemadness.org 70 i 5179 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, backup, restore, release, wireguard, jail, chown, disk, disk space, quota, quotas, truenas, truenas core, roadmap Err codemadness.org 70 i 5180 Err codemadness.org 70 i 5181 Backup and Restore on NetBSD, OpenBSD 6.7 available, Building a WireGuard Jail with FreeBSD's standard tools, who gets to chown things and quotas, influence TrueNAS CORE roadmap, and more.

Err codemadness.org 70 i 5182 Err codemadness.org 70 i 5183

Headlines

Err codemadness.org 70 i 5184 Err codemadness.org 70 i 5185

Backup and Restore on NetBSD

Err codemadness.org 70 i 5186 Err codemadness.org 70 i 5187
Err codemadness.org 70 i 5188

Putting together the bits and pieces of a backup and restore concept, while not being rocket science, always seems to be a little bit ungrateful. Most Admin Handbooks handle this topic only within few pages. After replacing my old Mac Mini's OS by NetBSD, I tried to implement an automated backup, allowing me to handle it similarly to the time machine backups I've been using before. Suggestions on how to improve are always welcome.

Err codemadness.org 70 i 5189
Err codemadness.org 70 i 5190 Err codemadness.org 70 i 5191
Err codemadness.org 70 i 5192 Err codemadness.org 70 i 5193

BSD Release: OpenBSD 6.7

Err codemadness.org 70 i 5194 Err codemadness.org 70 i 5195
Err codemadness.org 70 i 5196

The OpenBSD project produces and operating system which places focus on portability, standardisation, code correctness, proactive security and integrated cryptography. The project's latest release is OpenBSD 6.7 which introduces several new improvements to the cron scheduling daemon, improvements to the web server daemon, and the top command now offers scrollable output. These and many more changes can be found in the project's release announcement: "This is a partial list of new features and systems included in OpenBSD 6.7. For a comprehensive list, see the changelog leading to 6.7. General improvements and bugfixes: Reduced the minimum allowed number of chunks in a CONCAT volume from 2 to 1, increasing the number of volumes which can be created on a single disk with bioctl(8) from 7 to 15. This can be used to create more partitions than previously. Rewrote the cron(8) flag-parsing code to be getopt-like, allowing tight formations like -ns and flag repetition. Renamed the 'options' field in crontab(5) to 'flags'. Added crontab(5) -s flag to the command field, indicating that only a single instance of the job should run concurrently. Added cron(8) support for random time values using the ~ operator. Allowed cwm(1) configuration of window size based on percentage of the master window during horizontal and vertical tiling actions."

Err codemadness.org 70 i 5197
Err codemadness.org 70 i 5198 Err codemadness.org 70 i 5199 Err codemadness.org 70 i 5203 Err codemadness.org 70 i 5204
Err codemadness.org 70 i 5205 Err codemadness.org 70 i 5206

News Roundup

Err codemadness.org 70 i 5207 Err codemadness.org 70 i 5208

Building a WireGuard Jail with the FreeBSD's Standard Tools

Err codemadness.org 70 i 5209 Err codemadness.org 70 i 5210
Err codemadness.org 70 i 5211

Recently, I had an opportunity to build a WireGuard jail on a FreeBSD 12.1 host.
Err codemadness.org 70 i 5212 As it was really quick and easy to setup and it has been working completely fine for a month, I’d like to share my experience with anyone interested in this topic.

Err codemadness.org 70 i 5213
Err codemadness.org 70 i 5214 Err codemadness.org 70 i 5215
Err codemadness.org 70 i 5216 Err codemadness.org 70 i 5217

The Unix divide over who gets to chown things, and (disk space) quotas

Err codemadness.org 70 i 5218 Err codemadness.org 70 i 5219
Err codemadness.org 70 i 5220

One of the famous big splits between the BSD Unix world and the System V world is whether ordinary users can use chown (the command and the system call) to give away their own files. In System V derived Unixes you were generally allowed to; in BSD derived Unixes you weren't. Until I looked it up now to make sure, I thought that BSD changed this behavior from V7 and that V7 had an unrestricted chown. However, this turns out to be wrong; in V7 Unix, chown(2) was restricted to root only.

Err codemadness.org 70 i 5221
Err codemadness.org 70 i 5222 Err codemadness.org 70 i 5223
Err codemadness.org 70 i 5224 Err codemadness.org 70 i 5225

You Can Influence the TrueNAS CORE Roadmap!

Err codemadness.org 70 i 5226 Err codemadness.org 70 i 5227
Err codemadness.org 70 i 5228

As many of you know, we’ve historically had three ticket types available in our tracker: Bugs, Features, and Improvements, which are all fairly self-explanatory. After some discussion internally, we’ve decided to implement a new type of ticket, a “Suggestion”. These will be replacing Feature and Improvement requests for the TrueNAS Community, simplifying things down to two options: Bugs and Suggestions. This change also introduces a slightly different workflow than before.

Err codemadness.org 70 i 5229 Err codemadness.org 70 i 5230
Err codemadness.org 70 i 5231
Err codemadness.org 70 i 5232 Err codemadness.org 70 i 5233

Beastie Bits

Err codemadness.org 70 i 5234 Err codemadness.org 70 i 5235 Err codemadness.org 70 i 5241 Err codemadness.org 70 i 5242

Feedback/Questions

Err codemadness.org 70 i 5243 Err codemadness.org 70 i 5244 Err codemadness.org 70 i 5252 Err codemadness.org 70 i 5253
]]> Err codemadness.org 70 i 5254
Err codemadness.org 70 i 5255 Err codemadness.org 70 i 5256 Backup and Restore on NetBSD, OpenBSD 6.7 available, Building a WireGuard Jail with FreeBSD's standard tools, who gets to chown things and quotas, influence TrueNAS CORE roadmap, and more.

Err codemadness.org 70 i 5257 Err codemadness.org 70 i 5258

Headlines

Err codemadness.org 70 i 5259 Err codemadness.org 70 i 5260

Backup and Restore on NetBSD

Err codemadness.org 70 i 5261 Err codemadness.org 70 i 5262
Err codemadness.org 70 i 5263

Putting together the bits and pieces of a backup and restore concept, while not being rocket science, always seems to be a little bit ungrateful. Most Admin Handbooks handle this topic only within few pages. After replacing my old Mac Mini's OS by NetBSD, I tried to implement an automated backup, allowing me to handle it similarly to the time machine backups I've been using before. Suggestions on how to improve are always welcome.

Err codemadness.org 70 i 5264
Err codemadness.org 70 i 5265 Err codemadness.org 70 i 5266
Err codemadness.org 70 i 5267 Err codemadness.org 70 i 5268

BSD Release: OpenBSD 6.7

Err codemadness.org 70 i 5269 Err codemadness.org 70 i 5270
Err codemadness.org 70 i 5271

The OpenBSD project produces and operating system which places focus on portability, standardisation, code correctness, proactive security and integrated cryptography. The project's latest release is OpenBSD 6.7 which introduces several new improvements to the cron scheduling daemon, improvements to the web server daemon, and the top command now offers scrollable output. These and many more changes can be found in the project's release announcement: "This is a partial list of new features and systems included in OpenBSD 6.7. For a comprehensive list, see the changelog leading to 6.7. General improvements and bugfixes: Reduced the minimum allowed number of chunks in a CONCAT volume from 2 to 1, increasing the number of volumes which can be created on a single disk with bioctl(8) from 7 to 15. This can be used to create more partitions than previously. Rewrote the cron(8) flag-parsing code to be getopt-like, allowing tight formations like -ns and flag repetition. Renamed the 'options' field in crontab(5) to 'flags'. Added crontab(5) -s flag to the command field, indicating that only a single instance of the job should run concurrently. Added cron(8) support for random time values using the ~ operator. Allowed cwm(1) configuration of window size based on percentage of the master window during horizontal and vertical tiling actions."

Err codemadness.org 70 i 5272
Err codemadness.org 70 i 5273 Err codemadness.org 70 i 5274 Err codemadness.org 70 i 5278 Err codemadness.org 70 i 5279
Err codemadness.org 70 i 5280 Err codemadness.org 70 i 5281

News Roundup

Err codemadness.org 70 i 5282 Err codemadness.org 70 i 5283

Building a WireGuard Jail with the FreeBSD's Standard Tools

Err codemadness.org 70 i 5284 Err codemadness.org 70 i 5285
Err codemadness.org 70 i 5286

Recently, I had an opportunity to build a WireGuard jail on a FreeBSD 12.1 host.
Err codemadness.org 70 i 5287 As it was really quick and easy to setup and it has been working completely fine for a month, I’d like to share my experience with anyone interested in this topic.

Err codemadness.org 70 i 5288
Err codemadness.org 70 i 5289 Err codemadness.org 70 i 5290
Err codemadness.org 70 i 5291 Err codemadness.org 70 i 5292

The Unix divide over who gets to chown things, and (disk space) quotas

Err codemadness.org 70 i 5293 Err codemadness.org 70 i 5294
Err codemadness.org 70 i 5295

One of the famous big splits between the BSD Unix world and the System V world is whether ordinary users can use chown (the command and the system call) to give away their own files. In System V derived Unixes you were generally allowed to; in BSD derived Unixes you weren't. Until I looked it up now to make sure, I thought that BSD changed this behavior from V7 and that V7 had an unrestricted chown. However, this turns out to be wrong; in V7 Unix, chown(2) was restricted to root only.

Err codemadness.org 70 i 5296
Err codemadness.org 70 i 5297 Err codemadness.org 70 i 5298
Err codemadness.org 70 i 5299 Err codemadness.org 70 i 5300

You Can Influence the TrueNAS CORE Roadmap!

Err codemadness.org 70 i 5301 Err codemadness.org 70 i 5302
Err codemadness.org 70 i 5303

As many of you know, we’ve historically had three ticket types available in our tracker: Bugs, Features, and Improvements, which are all fairly self-explanatory. After some discussion internally, we’ve decided to implement a new type of ticket, a “Suggestion”. These will be replacing Feature and Improvement requests for the TrueNAS Community, simplifying things down to two options: Bugs and Suggestions. This change also introduces a slightly different workflow than before.

Err codemadness.org 70 i 5304 Err codemadness.org 70 i 5305
Err codemadness.org 70 i 5306
Err codemadness.org 70 i 5307 Err codemadness.org 70 i 5308

Beastie Bits

Err codemadness.org 70 i 5309 Err codemadness.org 70 i 5310 Err codemadness.org 70 i 5316 Err codemadness.org 70 i 5317

Feedback/Questions

Err codemadness.org 70 i 5318 Err codemadness.org 70 i 5319 Err codemadness.org 70 i 5327 Err codemadness.org 70 i 5328
]]> Err codemadness.org 70 i 5329
Err codemadness.org 70 i 5330 https://fireside.fm/player/v2/FYhhasNR+_SI7MUnf Err codemadness.org 70 i 5331 Err codemadness.org 70 i 5332 ]]> Err codemadness.org 70 i 5333 Err codemadness.org 70 i 5334
Err codemadness.org 70 i 5335 Err codemadness.org 70 i 5336 350: Speedy Bridges Err codemadness.org 70 i 5337 https://www.bsdnow.tv/350 Err codemadness.org 70 i 5338 49114e72-83f1-43b6-ae71-9e608a059b3e Err codemadness.org 70 i 5339 Thu, 14 May 2020 05:00:00 -0700 Err codemadness.org 70 i 5340 Allan Jude Err codemadness.org 70 i 5341 Err codemadness.org 70 i 5342 full Err codemadness.org 70 i 5343 Allan Jude Err codemadness.org 70 i 5344 5x if_bridge Performance Improvement, How Unix Won, Understanding VLAN Configuration on FreeBSD, Using bhyve PCI passthrough on OmniOS, TrueNAS 11.3-U2 Available, and more. Err codemadness.org 70 i 5345 34:40 Err codemadness.org 70 i 5346 no Err codemadness.org 70 i 5347 Err codemadness.org 70 i 5348 5x if_bridge Performance Improvement, How Unix Won, Understanding VLAN Configuration on FreeBSD, Using bhyve PCI passthrough on OmniOS, TrueNAS 11.3-U2 Available, and more. Err codemadness.org 70 i 5349 Headlines Err codemadness.org 70 i 5350 5x if_bridge Performance Improvement (https://www.freebsdfoundation.org/blog/500-if_bridge-performance-improvement/) Err codemadness.org 70 i 5351 With FreeBSD Foundation grant, Kristof Provost harnesses new parallel techniques to uncork performance bottleneck Err codemadness.org 70 i 5352 + Kristof also streamed some of his work, providing an interesting insight into how such development work happens Err codemadness.org 70 i 5353 + > https://www.twitch.tv/provostk/videos Err codemadness.org 70 i 5354 How Unix Won (https://blog.vivekhaldar.com/post/617189040564928512/how-unix-won) Err codemadness.org 70 i 5355 +> Unix has won in every conceivable way. And in true mythic style, it contains the seeds of its own eclipse. This is my subjective historical narrative of how that happened. Err codemadness.org 70 i 5356 I’m using the name “Unix” to include the entire family of operating systems descended from it, or that have been heavily influenced by it. That includes Linux, SunOS, Solaris, BSD, Mac OS X, and many, many others. Err codemadness.org 70 i 5357 Both major mobile OSs, Android and iOS, have Unix roots. Their billions of users dwarf those using clunky things like laptops and desktops, but even there, Windows is only the non-Unix viable OS. Almost everything running server-side in giant datacenters is Linux. Err codemadness.org 70 i 5358 How did Unix win? Err codemadness.org 70 i 5359 News Roundup Err codemadness.org 70 i 5360 Check logs of central syslog-ng log host on FreeBSD (https://blog.socruel.nu/freebsd/check-logs-of-syslog-ng-log-host-on-freebsd.html) Err codemadness.org 70 i 5361 This blog post continues where the blog post A central log host with syslog-ng on FreeBSD left off. Open source solutions to check syslog log messages exist, such as Logcheck or Logwatch. Although these are not to difficult to implement and maintain, I still found these to much. So I went for my own home grown solution to check the syslog messages of the SoCruel.NU central log host. And the solution presented in this blog post works pretty well for me! Err codemadness.org 70 i 5362 Understanding VLAN Configuration on FreeBSD (https://genneko.github.io/playing-with-bsd/networking/freebsd-vlan/) Err codemadness.org 70 i 5363 Until recently, I’ve never had a chance to use VLANs on FreeBSD hosts, though I sometimes configure them on ethernet switches. Err codemadness.org 70 i 5364 But when I was playing with vnet jails, I suddenly got interested in VLAN configuration on FreeBSD and experimented with it for some time. Err codemadness.org 70 i 5365 I wrote this short article to summarize my current understanding of how to configure VLANs on FreeBSD. Err codemadness.org 70 i 5366 Using bhyve PCI passthrough on OmniOS (https://www.cyber-tec.org/2019/05/29/using-bhyve-pci-passthrough-on-omnios/) Err codemadness.org 70 i 5367 Some hardware is not supported in illumos yet, but luckily there is bhyve which supports pci passthrough to any guest operating system. To continue with my OmniOS desktop on "modern" hardware I would love wifi support, so why not using a bhyve guest as router zone which provide the required drivers? Err codemadness.org 70 i 5368 TrueNAS 11.3-U2 is Generally Available (https://www.ixsystems.com/blog/truenas-11-3-u2-is-available/) Err codemadness.org 70 i 5369 TrueNAS 11.3-U2.1 is generally available as of 4/22/2020. This update is based on FreeNAS 11.3-U2 which has had over 50k deployments and received excellent community and third party reviews. The Release Notes are available on the iXsystems.com website. Err codemadness.org 70 i 5370 Beastie Bits Err codemadness.org 70 i 5371 HardenedBSD April 2020 Status Report (https://hardenedbsd.org/article/shawn-webb/2020-04-24/hardenedbsd-april-2020-status-report) Err codemadness.org 70 i 5372 NYC Bug’s Mailing List - Listing of open Dev Jobs (http://lists.nycbug.org/pipermail/jobs/2020-April/000553.html) Err codemadness.org 70 i 5373 Feedback/Questions Err codemadness.org 70 i 5374 Greg - Lenovo (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/350/feedback/Greg%20-%20Lenovos.md) Err codemadness.org 70 i 5375 Matt - BSD Packaging (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/350/feedback/Matt%20-%20BSD%20Packaging.md) Err codemadness.org 70 i 5376 Morgan - Performance (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/350/feedback/Morgan%20-%20Performance.md) Err codemadness.org 70 i 5377 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 5378 Err codemadness.org 70 i 5379 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, unix, bsd, interview, crash, crash dump, encryption, encrypted, dev environment, kernel development, TrueNAS Err codemadness.org 70 i 5380 Err codemadness.org 70 i 5381 5x if_bridge Performance Improvement, How Unix Won, Understanding VLAN Configuration on FreeBSD, Using bhyve PCI passthrough on OmniOS, TrueNAS 11.3-U2 Available, and more.

Err codemadness.org 70 i 5382 Err codemadness.org 70 i 5383

Headlines

Err codemadness.org 70 i 5384 Err codemadness.org 70 i 5385

5x if_bridge Performance Improvement

Err codemadness.org 70 i 5386 Err codemadness.org 70 i 5387
Err codemadness.org 70 i 5388

With FreeBSD Foundation grant, Kristof Provost harnesses new parallel techniques to uncork performance bottleneck

Err codemadness.org 70 i 5389 Err codemadness.org 70 i 5390
    Err codemadness.org 70 i 5391
  • Kristof also streamed some of his work, providing an interesting insight into how such development work happens
  • Err codemadness.org 70 i 5392
  • > https://www.twitch.tv/provostk/videos Err codemadness.org 70 i 5393 ***
  • Err codemadness.org 70 i 5394
Err codemadness.org 70 i 5395
Err codemadness.org 70 i 5396 Err codemadness.org 70 i 5397

How Unix Won

Err codemadness.org 70 i 5398 Err codemadness.org 70 i 5399

+> Unix has won in every conceivable way. And in true mythic style, it contains the seeds of its own eclipse. This is my subjective historical narrative of how that happened.

Err codemadness.org 70 i 5400 Err codemadness.org 70 i 5401
Err codemadness.org 70 i 5402

I’m using the name “Unix” to include the entire family of operating systems descended from it, or that have been heavily influenced by it. That includes Linux, SunOS, Solaris, BSD, Mac OS X, and many, many others.
Err codemadness.org 70 i 5403 Both major mobile OSs, Android and iOS, have Unix roots. Their billions of users dwarf those using clunky things like laptops and desktops, but even there, Windows is only the non-Unix viable OS. Almost everything running server-side in giant datacenters is Linux.
Err codemadness.org 70 i 5404 How did Unix win?

Err codemadness.org 70 i 5405 Err codemadness.org 70 i 5406
Err codemadness.org 70 i 5407
Err codemadness.org 70 i 5408 Err codemadness.org 70 i 5409

News Roundup

Err codemadness.org 70 i 5410 Err codemadness.org 70 i 5411

Check logs of central syslog-ng log host on FreeBSD

Err codemadness.org 70 i 5412 Err codemadness.org 70 i 5413
Err codemadness.org 70 i 5414

This blog post continues where the blog post A central log host with syslog-ng on FreeBSD left off. Open source solutions to check syslog log messages exist, such as Logcheck or Logwatch. Although these are not to difficult to implement and maintain, I still found these to much. So I went for my own home grown solution to check the syslog messages of the SoCruel.NU central log host. And the solution presented in this blog post works pretty well for me!

Err codemadness.org 70 i 5415 Err codemadness.org 70 i 5416
Err codemadness.org 70 i 5417
Err codemadness.org 70 i 5418 Err codemadness.org 70 i 5419

Understanding VLAN Configuration on FreeBSD

Err codemadness.org 70 i 5420 Err codemadness.org 70 i 5421
Err codemadness.org 70 i 5422

Until recently, I’ve never had a chance to use VLANs on FreeBSD hosts, though I sometimes configure them on ethernet switches.
Err codemadness.org 70 i 5423 But when I was playing with vnet jails, I suddenly got interested in VLAN configuration on FreeBSD and experimented with it for some time.
Err codemadness.org 70 i 5424 I wrote this short article to summarize my current understanding of how to configure VLANs on FreeBSD.

Err codemadness.org 70 i 5425 Err codemadness.org 70 i 5426
Err codemadness.org 70 i 5427
Err codemadness.org 70 i 5428 Err codemadness.org 70 i 5429

Using bhyve PCI passthrough on OmniOS

Err codemadness.org 70 i 5430 Err codemadness.org 70 i 5431
Err codemadness.org 70 i 5432

Some hardware is not supported in illumos yet, but luckily there is bhyve which supports pci passthrough to any guest operating system. To continue with my OmniOS desktop on "modern" hardware I would love wifi support, so why not using a bhyve guest as router zone which provide the required drivers?

Err codemadness.org 70 i 5433 Err codemadness.org 70 i 5434
Err codemadness.org 70 i 5435
Err codemadness.org 70 i 5436 Err codemadness.org 70 i 5437

TrueNAS 11.3-U2 is Generally Available

Err codemadness.org 70 i 5438 Err codemadness.org 70 i 5439
Err codemadness.org 70 i 5440

TrueNAS 11.3-U2.1 is generally available as of 4/22/2020. This update is based on FreeNAS 11.3-U2 which has had over 50k deployments and received excellent community and third party reviews. The Release Notes are available on the iXsystems.com website.

Err codemadness.org 70 i 5441 Err codemadness.org 70 i 5442
Err codemadness.org 70 i 5443
Err codemadness.org 70 i 5444 Err codemadness.org 70 i 5445

Beastie Bits

Err codemadness.org 70 i 5446 Err codemadness.org 70 i 5447

HardenedBSD April 2020 Status Report
Err codemadness.org 70 i 5448 NYC Bug’s Mailing List - Listing of open Dev Jobs

Err codemadness.org 70 i 5449 Err codemadness.org 70 i 5450
Err codemadness.org 70 i 5451 Err codemadness.org 70 i 5452

Feedback/Questions

Err codemadness.org 70 i 5453 Err codemadness.org 70 i 5454
    Err codemadness.org 70 i 5455
  • Greg - Lenovo
  • Err codemadness.org 70 i 5456
  • Matt - BSD Packaging
  • Err codemadness.org 70 i 5457
  • Morgan - Performance

    Err codemadness.org 70 i 5458 Err codemadness.org 70 i 5459
  • Err codemadness.org 70 i 5460
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

    Err codemadness.org 70 i 5461 Err codemadness.org 70 i 5462
  • Err codemadness.org 70 i 5463
]]> Err codemadness.org 70 i 5464
Err codemadness.org 70 i 5465 Err codemadness.org 70 i 5466 5x if_bridge Performance Improvement, How Unix Won, Understanding VLAN Configuration on FreeBSD, Using bhyve PCI passthrough on OmniOS, TrueNAS 11.3-U2 Available, and more.

Err codemadness.org 70 i 5467 Err codemadness.org 70 i 5468

Headlines

Err codemadness.org 70 i 5469 Err codemadness.org 70 i 5470

5x if_bridge Performance Improvement

Err codemadness.org 70 i 5471 Err codemadness.org 70 i 5472
Err codemadness.org 70 i 5473

With FreeBSD Foundation grant, Kristof Provost harnesses new parallel techniques to uncork performance bottleneck

Err codemadness.org 70 i 5474 Err codemadness.org 70 i 5475
    Err codemadness.org 70 i 5476
  • Kristof also streamed some of his work, providing an interesting insight into how such development work happens
  • Err codemadness.org 70 i 5477
  • > https://www.twitch.tv/provostk/videos Err codemadness.org 70 i 5478 ***
  • Err codemadness.org 70 i 5479
Err codemadness.org 70 i 5480
Err codemadness.org 70 i 5481 Err codemadness.org 70 i 5482

How Unix Won

Err codemadness.org 70 i 5483 Err codemadness.org 70 i 5484

+> Unix has won in every conceivable way. And in true mythic style, it contains the seeds of its own eclipse. This is my subjective historical narrative of how that happened.

Err codemadness.org 70 i 5485 Err codemadness.org 70 i 5486
Err codemadness.org 70 i 5487

I’m using the name “Unix” to include the entire family of operating systems descended from it, or that have been heavily influenced by it. That includes Linux, SunOS, Solaris, BSD, Mac OS X, and many, many others.
Err codemadness.org 70 i 5488 Both major mobile OSs, Android and iOS, have Unix roots. Their billions of users dwarf those using clunky things like laptops and desktops, but even there, Windows is only the non-Unix viable OS. Almost everything running server-side in giant datacenters is Linux.
Err codemadness.org 70 i 5489 How did Unix win?

Err codemadness.org 70 i 5490 Err codemadness.org 70 i 5491
Err codemadness.org 70 i 5492
Err codemadness.org 70 i 5493 Err codemadness.org 70 i 5494

News Roundup

Err codemadness.org 70 i 5495 Err codemadness.org 70 i 5496

Check logs of central syslog-ng log host on FreeBSD

Err codemadness.org 70 i 5497 Err codemadness.org 70 i 5498
Err codemadness.org 70 i 5499

This blog post continues where the blog post A central log host with syslog-ng on FreeBSD left off. Open source solutions to check syslog log messages exist, such as Logcheck or Logwatch. Although these are not to difficult to implement and maintain, I still found these to much. So I went for my own home grown solution to check the syslog messages of the SoCruel.NU central log host. And the solution presented in this blog post works pretty well for me!

Err codemadness.org 70 i 5500 Err codemadness.org 70 i 5501
Err codemadness.org 70 i 5502
Err codemadness.org 70 i 5503 Err codemadness.org 70 i 5504

Understanding VLAN Configuration on FreeBSD

Err codemadness.org 70 i 5505 Err codemadness.org 70 i 5506
Err codemadness.org 70 i 5507

Until recently, I’ve never had a chance to use VLANs on FreeBSD hosts, though I sometimes configure them on ethernet switches.
Err codemadness.org 70 i 5508 But when I was playing with vnet jails, I suddenly got interested in VLAN configuration on FreeBSD and experimented with it for some time.
Err codemadness.org 70 i 5509 I wrote this short article to summarize my current understanding of how to configure VLANs on FreeBSD.

Err codemadness.org 70 i 5510 Err codemadness.org 70 i 5511
Err codemadness.org 70 i 5512
Err codemadness.org 70 i 5513 Err codemadness.org 70 i 5514

Using bhyve PCI passthrough on OmniOS

Err codemadness.org 70 i 5515 Err codemadness.org 70 i 5516
Err codemadness.org 70 i 5517

Some hardware is not supported in illumos yet, but luckily there is bhyve which supports pci passthrough to any guest operating system. To continue with my OmniOS desktop on "modern" hardware I would love wifi support, so why not using a bhyve guest as router zone which provide the required drivers?

Err codemadness.org 70 i 5518 Err codemadness.org 70 i 5519
Err codemadness.org 70 i 5520
Err codemadness.org 70 i 5521 Err codemadness.org 70 i 5522

TrueNAS 11.3-U2 is Generally Available

Err codemadness.org 70 i 5523 Err codemadness.org 70 i 5524
Err codemadness.org 70 i 5525

TrueNAS 11.3-U2.1 is generally available as of 4/22/2020. This update is based on FreeNAS 11.3-U2 which has had over 50k deployments and received excellent community and third party reviews. The Release Notes are available on the iXsystems.com website.

Err codemadness.org 70 i 5526 Err codemadness.org 70 i 5527
Err codemadness.org 70 i 5528
Err codemadness.org 70 i 5529 Err codemadness.org 70 i 5530

Beastie Bits

Err codemadness.org 70 i 5531 Err codemadness.org 70 i 5532

HardenedBSD April 2020 Status Report
Err codemadness.org 70 i 5533 NYC Bug’s Mailing List - Listing of open Dev Jobs

Err codemadness.org 70 i 5534 Err codemadness.org 70 i 5535
Err codemadness.org 70 i 5536 Err codemadness.org 70 i 5537

Feedback/Questions

Err codemadness.org 70 i 5538 Err codemadness.org 70 i 5539
    Err codemadness.org 70 i 5540
  • Greg - Lenovo
  • Err codemadness.org 70 i 5541
  • Matt - BSD Packaging
  • Err codemadness.org 70 i 5542
  • Morgan - Performance

    Err codemadness.org 70 i 5543 Err codemadness.org 70 i 5544
  • Err codemadness.org 70 i 5545
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

    Err codemadness.org 70 i 5546 Err codemadness.org 70 i 5547
  • Err codemadness.org 70 i 5548
]]> Err codemadness.org 70 i 5549
Err codemadness.org 70 i 5550 https://fireside.fm/player/v2/FYhhasNR+imj6JsXN Err codemadness.org 70 i 5551 Err codemadness.org 70 i 5552 ]]> Err codemadness.org 70 i 5553 Err codemadness.org 70 i 5554
Err codemadness.org 70 i 5555 Err codemadness.org 70 i 5556 349: Entropy Overhaul Err codemadness.org 70 i 5557 https://www.bsdnow.tv/349 Err codemadness.org 70 i 5558 468d2fe0-ed8f-4e89-aaae-8aa4a0fbf66f Err codemadness.org 70 i 5559 Thu, 07 May 2020 05:00:00 -0700 Err codemadness.org 70 i 5560 Allan Jude Err codemadness.org 70 i 5561 Err codemadness.org 70 i 5562 full Err codemadness.org 70 i 5563 Allan Jude Err codemadness.org 70 i 5564 Encrypted Crash Dumps in FreeBSD, Time on Unix, Improve ZVOL sync write performance with a taskq, central log host with syslog-ng, NetBSD Entropy overhaul, Setting Up NetBSD Kernel Dev Environment, and more. Err codemadness.org 70 i 5565 57:33 Err codemadness.org 70 i 5566 no Err codemadness.org 70 i 5567 Err codemadness.org 70 i 5568 Encrypted Crash Dumps in FreeBSD, Time on Unix, Improve ZVOL sync write performance with a taskq, central log host with syslog-ng, NetBSD Entropy overhaul, Setting Up NetBSD Kernel Dev Environment, and more. Err codemadness.org 70 i 5569 Headlines Err codemadness.org 70 i 5570 EKCD - Encrypted Crash Dumps in FreeBSD (https://oshogbo.vexillium.org/blog/74/) Err codemadness.org 70 i 5571 Some time ago, I was describing how to configure networking crash dumps. In that post, I mentioned that there is also the possibility to encrypt crash dumps. Today we will look into this functionality. Initially, it was implemented during Google Summer of Code 2013 by my friend Konrad Witaszczyk, who made it available in FreeBSD 12. If you can understand Polish, you can also look into his presentation on BSD-PL on which he gave a comprehensive review of all kernel crash dumps features. Err codemadness.org 70 i 5572 The main issue with crash dumps is that they may include sensitive information available in memory during a crash. They will contain all the data from the kernel and the userland, like passwords, private keys, etc. While dumping them, they are written to unencrypted storage, so if somebody took out the hard drive, they could access sensitive data. If you are sending a crash dump through the network, it may be captured by third parties. Locally the data are written directly to a dump device, skipping the GEOM subsystem. The purpose of that is to allow a kernel to write a crash dump even in case a panic occurs in the GEOM subsystem. It means that a crash dump cannot be automatically encrypted with GELI. Err codemadness.org 70 i 5573 Time on Unix (https://venam.nixers.net/blog/unix/2020/05/02/time-on-unix.html) Err codemadness.org 70 i 5574 Time, a word that is entangled in everything in our lives, something we’re intimately familiar with. Keeping track of it is important for many activities we do. Err codemadness.org 70 i 5575 Over millennia we’ve developed different ways to calculate it. Most prominently, we’ve relied on the position the sun appears to be at in the sky, what is called apparent solar time. Err codemadness.org 70 i 5576 We’ve decided to split it as seasons pass, counting one full cycle of the 4 seasons as a year, a full rotation around the sun. We’ve also divided the passing of light to the lack thereof as days, a rotation of the earth on itself. Moving on to more precise clock divisions such as seconds, minutes, and hours, units that meant different things at different points in history. Ultimately, as travel got faster, the different ways of counting time that evolved in multiple places had to converge. People had to agree on what it all meant. Err codemadness.org 70 i 5577 See the article for more Err codemadness.org 70 i 5578 News Roundup Err codemadness.org 70 i 5579 Improve ZVOL sync write performance by using a taskq (https://github.com/openzfs/zfs/commit/0929c4de398606f8305057ca540cf577e6771c30) Err codemadness.org 70 i 5580 A central log host with syslog-ng on FreeBSD - Part 1 (https://blog.socruel.nu/freebsd/a-central-log-host-with-syslog-ng-on-freebsd.html) Err codemadness.org 70 i 5581 syslog-ng is the Swiss army knife of log management. You can collect logs from any source, process them in real time and deliver them to wide range of destinations. It allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure. This is why syslog-ng is the perfect solution for the central log host of my (mainly) FreeBSD based infrastructure. Err codemadness.org 70 i 5582 HEADS UP: NetBSD Entropy Overhaul (https://mail-index.netbsd.org/current-users/2020/05/01/msg038495.html) Err codemadness.org 70 i 5583 This week I committed an overhaul of the kernel entropy system. Please let me know if you observe any snags! For the technical background, see the thread on tech-kern a few months ago: https://mail-index.NetBSD.org/tech-kern/2019/12/21/msg025876.html. Err codemadness.org 70 i 5584 Setting Up NetBSD Kernel Dev Environment (https://adityapadala.com/2020/04/20/Setting-Up-NetBSD-Kernel-Dev-Environment/) Err codemadness.org 70 i 5585 I used T_PAGEFLT’s blog post as a reference for setting my NetBSD kernel development environment since his website is down I’m putting down the steps here so it would be helpful for starters. Err codemadness.org 70 i 5586 Beastie Bits Err codemadness.org 70 i 5587 You can now use ccache to speed up dsynth even more. (https://www.dragonflydigest.com/2020/05/04/24480.html) Err codemadness.org 70 i 5588 Improving libossaudio, and the future of OSS in NetBSD (http://blog.netbsd.org/tnf/entry/improving_libossaudio_and_the_future) Err codemadness.org 70 i 5589 DragonFlyBSD DHCPCD Import dhcpcd-9.0.2 with the following changes (http://lists.dragonflybsd.org/pipermail/commits/2020-April/769021.html) Err codemadness.org 70 i 5590 Reminder: watch this space for upcoming FreeBSD Office Hours, next is May 13th at 2pm Eastern, 18:00 UTC (https://wiki.freebsd.org/OfficeHours) Err codemadness.org 70 i 5591 Feedback/Questions Err codemadness.org 70 i 5592 Ghislain - ZFS Question (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/349/feedback/Ghislain%20-%20ZFS%20Question.md) Err codemadness.org 70 i 5593 Jake - Paypal Donations (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/349/feedback/Jake%20-%20Paypal%20Donations.md) Err codemadness.org 70 i 5594 Oswin - Hammer tutorial (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/349/feedback/Oswin%20-%20Hammer%20tutorial.md) Err codemadness.org 70 i 5595 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 5596 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 5597 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0348.mp4" type="video/mp4"> Err codemadness.org 70 i 5598 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 5599 </video> Err codemadness.org 70 i 5600 Err codemadness.org 70 i 5601 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, crash, crash dump, encryption, encrypted, unix time, zvol, sync, synchronous, sync write, taskq, syslog, syslog-ng, log host, entropy, entropy overhaul, dev environment, kernel development Err codemadness.org 70 i 5602 Err codemadness.org 70 i 5603 Encrypted Crash Dumps in FreeBSD, Time on Unix, Improve ZVOL sync write performance with a taskq, central log host with syslog-ng, NetBSD Entropy overhaul, Setting Up NetBSD Kernel Dev Environment, and more.

Err codemadness.org 70 i 5604 Err codemadness.org 70 i 5605

Headlines

Err codemadness.org 70 i 5606 Err codemadness.org 70 i 5607

EKCD - Encrypted Crash Dumps in FreeBSD

Err codemadness.org 70 i 5608 Err codemadness.org 70 i 5609
Err codemadness.org 70 i 5610

Some time ago, I was describing how to configure networking crash dumps. In that post, I mentioned that there is also the possibility to encrypt crash dumps. Today we will look into this functionality. Initially, it was implemented during Google Summer of Code 2013 by my friend Konrad Witaszczyk, who made it available in FreeBSD 12. If you can understand Polish, you can also look into his presentation on BSD-PL on which he gave a comprehensive review of all kernel crash dumps features.

Err codemadness.org 70 i 5611 Err codemadness.org 70 i 5612

The main issue with crash dumps is that they may include sensitive information available in memory during a crash. They will contain all the data from the kernel and the userland, like passwords, private keys, etc. While dumping them, they are written to unencrypted storage, so if somebody took out the hard drive, they could access sensitive data. If you are sending a crash dump through the network, it may be captured by third parties. Locally the data are written directly to a dump device, skipping the GEOM subsystem. The purpose of that is to allow a kernel to write a crash dump even in case a panic occurs in the GEOM subsystem. It means that a crash dump cannot be automatically encrypted with GELI.

Err codemadness.org 70 i 5613
Err codemadness.org 70 i 5614 Err codemadness.org 70 i 5615
Err codemadness.org 70 i 5616 Err codemadness.org 70 i 5617

Time on Unix

Err codemadness.org 70 i 5618 Err codemadness.org 70 i 5619
Err codemadness.org 70 i 5620

Time, a word that is entangled in everything in our lives, something we’re intimately familiar with. Keeping track of it is important for many activities we do.

Err codemadness.org 70 i 5621 Err codemadness.org 70 i 5622

Over millennia we’ve developed different ways to calculate it. Most prominently, we’ve relied on the position the sun appears to be at in the sky, what is called apparent solar time.

Err codemadness.org 70 i 5623 Err codemadness.org 70 i 5624

We’ve decided to split it as seasons pass, counting one full cycle of the 4 seasons as a year, a full rotation around the sun. We’ve also divided the passing of light to the lack thereof as days, a rotation of the earth on itself. Moving on to more precise clock divisions such as seconds, minutes, and hours, units that meant different things at different points in history. Ultimately, as travel got faster, the different ways of counting time that evolved in multiple places had to converge. People had to agree on what it all meant.

Err codemadness.org 70 i 5625
Err codemadness.org 70 i 5626 Err codemadness.org 70 i 5627

See the article for more

Err codemadness.org 70 i 5628 Err codemadness.org 70 i 5629
Err codemadness.org 70 i 5630 Err codemadness.org 70 i 5631

News Roundup

Err codemadness.org 70 i 5632 Err codemadness.org 70 i 5633

Improve ZVOL sync write performance by using a taskq

Err codemadness.org 70 i 5634 Err codemadness.org 70 i 5635
Err codemadness.org 70 i 5636 Err codemadness.org 70 i 5637

A central log host with syslog-ng on FreeBSD - Part 1

Err codemadness.org 70 i 5638 Err codemadness.org 70 i 5639
Err codemadness.org 70 i 5640

syslog-ng is the Swiss army knife of log management. You can collect logs from any source, process them in real time and deliver them to wide range of destinations. It allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure. This is why syslog-ng is the perfect solution for the central log host of my (mainly) FreeBSD based infrastructure.

Err codemadness.org 70 i 5641
Err codemadness.org 70 i 5642 Err codemadness.org 70 i 5643
Err codemadness.org 70 i 5644 Err codemadness.org 70 i 5645

HEADS UP: NetBSD Entropy Overhaul

Err codemadness.org 70 i 5646 Err codemadness.org 70 i 5647
Err codemadness.org 70 i 5648

This week I committed an overhaul of the kernel entropy system. Please let me know if you observe any snags! For the technical background, see the thread on tech-kern a few months ago: https://mail-index.NetBSD.org/tech-kern/2019/12/21/msg025876.html.

Err codemadness.org 70 i 5649
Err codemadness.org 70 i 5650 Err codemadness.org 70 i 5651
Err codemadness.org 70 i 5652 Err codemadness.org 70 i 5653

Setting Up NetBSD Kernel Dev Environment

Err codemadness.org 70 i 5654 Err codemadness.org 70 i 5655
Err codemadness.org 70 i 5656

I used T_PAGEFLT’s blog post as a reference for setting my NetBSD kernel development environment since his website is down I’m putting down the steps here so it would be helpful for starters.

Err codemadness.org 70 i 5657
Err codemadness.org 70 i 5658 Err codemadness.org 70 i 5659
Err codemadness.org 70 i 5660 Err codemadness.org 70 i 5661

Beastie Bits

Err codemadness.org 70 i 5662 Err codemadness.org 70 i 5663 Err codemadness.org 70 i 5669 Err codemadness.org 70 i 5670
Err codemadness.org 70 i 5671 Err codemadness.org 70 i 5672

Feedback/Questions

Err codemadness.org 70 i 5673 Err codemadness.org 70 i 5674 Err codemadness.org 70 i 5679 Err codemadness.org 70 i 5680
Err codemadness.org 70 i 5681 Err codemadness.org 70 i 5682
    Err codemadness.org 70 i 5683
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 5684
Err codemadness.org 70 i 5685 Err codemadness.org 70 i 5686
Err codemadness.org 70 i 5687 Err codemadness.org 70 i 5688 ]]> Err codemadness.org 70 i 5692
Err codemadness.org 70 i 5693 Err codemadness.org 70 i 5694 Encrypted Crash Dumps in FreeBSD, Time on Unix, Improve ZVOL sync write performance with a taskq, central log host with syslog-ng, NetBSD Entropy overhaul, Setting Up NetBSD Kernel Dev Environment, and more.

Err codemadness.org 70 i 5695 Err codemadness.org 70 i 5696

Headlines

Err codemadness.org 70 i 5697 Err codemadness.org 70 i 5698

EKCD - Encrypted Crash Dumps in FreeBSD

Err codemadness.org 70 i 5699 Err codemadness.org 70 i 5700
Err codemadness.org 70 i 5701

Some time ago, I was describing how to configure networking crash dumps. In that post, I mentioned that there is also the possibility to encrypt crash dumps. Today we will look into this functionality. Initially, it was implemented during Google Summer of Code 2013 by my friend Konrad Witaszczyk, who made it available in FreeBSD 12. If you can understand Polish, you can also look into his presentation on BSD-PL on which he gave a comprehensive review of all kernel crash dumps features.

Err codemadness.org 70 i 5702 Err codemadness.org 70 i 5703

The main issue with crash dumps is that they may include sensitive information available in memory during a crash. They will contain all the data from the kernel and the userland, like passwords, private keys, etc. While dumping them, they are written to unencrypted storage, so if somebody took out the hard drive, they could access sensitive data. If you are sending a crash dump through the network, it may be captured by third parties. Locally the data are written directly to a dump device, skipping the GEOM subsystem. The purpose of that is to allow a kernel to write a crash dump even in case a panic occurs in the GEOM subsystem. It means that a crash dump cannot be automatically encrypted with GELI.

Err codemadness.org 70 i 5704
Err codemadness.org 70 i 5705 Err codemadness.org 70 i 5706
Err codemadness.org 70 i 5707 Err codemadness.org 70 i 5708

Time on Unix

Err codemadness.org 70 i 5709 Err codemadness.org 70 i 5710
Err codemadness.org 70 i 5711

Time, a word that is entangled in everything in our lives, something we’re intimately familiar with. Keeping track of it is important for many activities we do.

Err codemadness.org 70 i 5712 Err codemadness.org 70 i 5713

Over millennia we’ve developed different ways to calculate it. Most prominently, we’ve relied on the position the sun appears to be at in the sky, what is called apparent solar time.

Err codemadness.org 70 i 5714 Err codemadness.org 70 i 5715

We’ve decided to split it as seasons pass, counting one full cycle of the 4 seasons as a year, a full rotation around the sun. We’ve also divided the passing of light to the lack thereof as days, a rotation of the earth on itself. Moving on to more precise clock divisions such as seconds, minutes, and hours, units that meant different things at different points in history. Ultimately, as travel got faster, the different ways of counting time that evolved in multiple places had to converge. People had to agree on what it all meant.

Err codemadness.org 70 i 5716
Err codemadness.org 70 i 5717 Err codemadness.org 70 i 5718

See the article for more

Err codemadness.org 70 i 5719 Err codemadness.org 70 i 5720
Err codemadness.org 70 i 5721 Err codemadness.org 70 i 5722

News Roundup

Err codemadness.org 70 i 5723 Err codemadness.org 70 i 5724

Improve ZVOL sync write performance by using a taskq

Err codemadness.org 70 i 5725 Err codemadness.org 70 i 5726
Err codemadness.org 70 i 5727 Err codemadness.org 70 i 5728

A central log host with syslog-ng on FreeBSD - Part 1

Err codemadness.org 70 i 5729 Err codemadness.org 70 i 5730
Err codemadness.org 70 i 5731

syslog-ng is the Swiss army knife of log management. You can collect logs from any source, process them in real time and deliver them to wide range of destinations. It allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure. This is why syslog-ng is the perfect solution for the central log host of my (mainly) FreeBSD based infrastructure.

Err codemadness.org 70 i 5732
Err codemadness.org 70 i 5733 Err codemadness.org 70 i 5734
Err codemadness.org 70 i 5735 Err codemadness.org 70 i 5736

HEADS UP: NetBSD Entropy Overhaul

Err codemadness.org 70 i 5737 Err codemadness.org 70 i 5738
Err codemadness.org 70 i 5739

This week I committed an overhaul of the kernel entropy system. Please let me know if you observe any snags! For the technical background, see the thread on tech-kern a few months ago: https://mail-index.NetBSD.org/tech-kern/2019/12/21/msg025876.html.

Err codemadness.org 70 i 5740
Err codemadness.org 70 i 5741 Err codemadness.org 70 i 5742
Err codemadness.org 70 i 5743 Err codemadness.org 70 i 5744

Setting Up NetBSD Kernel Dev Environment

Err codemadness.org 70 i 5745 Err codemadness.org 70 i 5746
Err codemadness.org 70 i 5747

I used T_PAGEFLT’s blog post as a reference for setting my NetBSD kernel development environment since his website is down I’m putting down the steps here so it would be helpful for starters.

Err codemadness.org 70 i 5748
Err codemadness.org 70 i 5749 Err codemadness.org 70 i 5750
Err codemadness.org 70 i 5751 Err codemadness.org 70 i 5752

Beastie Bits

Err codemadness.org 70 i 5753 Err codemadness.org 70 i 5754 Err codemadness.org 70 i 5760 Err codemadness.org 70 i 5761
Err codemadness.org 70 i 5762 Err codemadness.org 70 i 5763

Feedback/Questions

Err codemadness.org 70 i 5764 Err codemadness.org 70 i 5765 Err codemadness.org 70 i 5770 Err codemadness.org 70 i 5771
Err codemadness.org 70 i 5772 Err codemadness.org 70 i 5773
    Err codemadness.org 70 i 5774
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 5775
Err codemadness.org 70 i 5776 Err codemadness.org 70 i 5777
Err codemadness.org 70 i 5778 Err codemadness.org 70 i 5779 ]]> Err codemadness.org 70 i 5783
Err codemadness.org 70 i 5784 https://fireside.fm/player/v2/FYhhasNR+FD10Ly1u Err codemadness.org 70 i 5785 Err codemadness.org 70 i 5786 ]]> Err codemadness.org 70 i 5787 Err codemadness.org 70 i 5788
Err codemadness.org 70 i 5789 Err codemadness.org 70 i 5790 348: BSD Community Collections Err codemadness.org 70 i 5791 https://www.bsdnow.tv/348 Err codemadness.org 70 i 5792 ed288ede-fe94-433f-85a4-6eebb8cb2478 Err codemadness.org 70 i 5793 Thu, 30 Apr 2020 05:00:00 -0700 Err codemadness.org 70 i 5794 Allan Jude Err codemadness.org 70 i 5795 Err codemadness.org 70 i 5796 full Err codemadness.org 70 i 5797 Allan Jude Err codemadness.org 70 i 5798 FuryBSD 2020Q2 Images Available, Technical reasons to choose FreeBSD over GNU/Linux, Ars technica reviews GhostBSD, “TLS Mastery” sponsorships open, BSD community show their various collections, a tale of OpenBSD secure memory allocator internals, learn to stop worrying and love SSDs, and more. Err codemadness.org 70 i 5799 1:00:16 Err codemadness.org 70 i 5800 no Err codemadness.org 70 i 5801 Err codemadness.org 70 i 5802 FuryBSD 2020Q2 Images Available, Technical reasons to choose FreeBSD over GNU/Linux, Ars technica reviews GhostBSD, “TLS Mastery” sponsorships open, BSD community show their various collections, a tale of OpenBSD secure memory allocator internals, learn to stop worrying and love SSDs, and more. Err codemadness.org 70 i 5803 Headlines Err codemadness.org 70 i 5804 FuryBSD 2020Q2 Images Available for XFCE and KDE (https://www.furybsd.org/furybsd-2020-q2-images-are-available-for-xfce-and-kde/) Err codemadness.org 70 i 5805 The Q2 2020 images are not a visible leap forward but a functional leap forward. Most effort was spent creating a better out of box experience for automatic Ethernet configuration, working WiFi, webcam, and improved hypervisor support. Err codemadness.org 70 i 5806 Technical reasons to choose FreeBSD over GNU/Linux (https://unixsheikh.com/articles/technical-reasons-to-choose-freebsd-over-linux.html) Err codemadness.org 70 i 5807 Since I wrote my article "Why you should migrate everything from Linux to BSD" I have been wanting to write something about the technical reasons to choose FreeBSD over GNU/Linux and while I cannot possibly cover every single reason, I can write about some of the things that I consider worth noting. Err codemadness.org 70 i 5808 News Roundup Err codemadness.org 70 i 5809 + Not actually Linux distro review deux: GhostBSD (https://arstechnica.com/gadgets/2020/04/not-actually-linux-distro-review-deux-ghostbsd/) Err codemadness.org 70 i 5810 When I began work on the FreeBSD 12.1-RELEASE review last week, it didn't take long to figure out that the desktop portion wasn't going very smoothly. Err codemadness.org 70 i 5811 I think it's important for BSD-curious users to know of easier, gentler alternatives, so I did a little looking around and settled on GhostBSD for a follow-up review. Err codemadness.org 70 i 5812 GhostBSD is based on TrueOS, which itself derives from FreeBSD Stable. It was originally a Canadian distro, but—like most successful distributions—it has transcended its country of origin and can now be considered worldwide. Significant GhostBSD development takes place now in Canada, Italy, Germany, and the United States. Err codemadness.org 70 i 5813 “TLS Mastery” sponsorships open (https://mwl.io/archives/6265) Err codemadness.org 70 i 5814 My next book will be TLS Mastery, all about Transport Layer Encryption, Let’s Encrypt, OCSP, and so on. Err codemadness.org 70 i 5815 This should be a shorter book, more like my DNSSEC or Tarsnap titles, or the first edition of Sudo Mastery. I would like a break from writing doorstops like the SNMP and jails books. Err codemadness.org 70 i 5816 JT (our producer) shared his Open Source Retail Box Collection on twitter this past weekend and there was a nice response from a few in the BSD Community showing their collections: Err codemadness.org 70 i 5817 JT's post: https://twitter.com/q5sys/status/1251194823589138432 Err codemadness.org 70 i 5818 High Resolution Image to see the bottom shelf better: https://photos.smugmug.com/photos/i-9QTs2RR/0/f1742096/O/i-9QTs2RR.jpg Err codemadness.org 70 i 5819 Closeup of the BSD Section: https://twitter.com/q5sys/status/1251294290782928897 Err codemadness.org 70 i 5820 Others jumped in with their collections: Err codemadness.org 70 i 5821 Deb Goodkin's collection: https://twitter.com/dgoodkin/status/1251294016139743232 & https://twitter.com/dgoodkin/status/1251298125672660992 Err codemadness.org 70 i 5822 FreeBSD Frau's FreeBSD Collection: https://twitter.com/freebsdfrau/status/1251290430475350018 Err codemadness.org 70 i 5823 Jason Tubnor's OpenBSD Collection: https://twitter.com/Tubsta/status/1251265902214918144 Err codemadness.org 70 i 5824 Do you have a nice collection, take a picture and send it in! Err codemadness.org 70 i 5825 Tale of OpenBSD secure memory allocator internals - malloc(3) (https://bsdb0y.github.io/blog/deep-dive-into-the-OpenBSD-malloc-and-friends-internals-part-1.html) Err codemadness.org 70 i 5826 Hi there, Err codemadness.org 70 i 5827 It's been a very long time I haven't written anything after my last OpenBSD blogs, that is, Err codemadness.org 70 i 5828 OpenBSD Kernel Internals — Creation of process from user-space to kernel space. Err codemadness.org 70 i 5829 OpenBSD: Introduction to execpromises in the pledge(2) Err codemadness.org 70 i 5830 pledge(2): OpenBSD's defensive approach to OS Security Err codemadness.org 70 i 5831 So, again I started reading OpenBSD source codes with debugger after reducing my sleep timings and managing to get some time after professional life. This time I have picked one of my favourite item from my wishlist to learn and share, that is, OpenBSD malloc(3), secure allocator Err codemadness.org 70 i 5832 How I learned to stop worrying and love SSDs (https://www.ixsystems.com/community/threads/how-i-learned-to-stop-worrying-and-love-ssds.82617/) Err codemadness.org 70 i 5833 my home FreeNAS runs two pools for data. One RAIDZ2 with four spinning disk drives and one mirror with two SSDs. Toying with InfluxDB and Grafana in the last couple of days I found that I seem to have a constant write load of 1 Megabyte (!) per second on the SSDs. What the ...? Err codemadness.org 70 i 5834 So I run three VMs on the SSDs in total. One with Windows 10, two with Ubuntu running Confluence, A wiki essentially, with files for attachments and MySQL as the backend database. Clearly the writes had to stop when the wikis were not used at all, just sitting idle, right? Err codemadness.org 70 i 5835 Well even with a full query log and quite some experience in the operation of web applications I could not figure out what Confluence is doing (productively, no doubt) but trust me, it writes a couple of hundred kbytes to the database each second just sitting idle. Err codemadness.org 70 i 5836 My infrastructure as of 2019 (https://chown.me/blog/infrastructure-2019.html) Err codemadness.org 70 i 5837 I've wanted to write about my infrastructure for a while, but I kept thinking, "I'll wait until after I've done $nextthingonmytodo." Of course this cycle never ends, so I decided to write about its state at the end of 2019. Maybe I'll write an update on it in a couple of moons; who knows? Err codemadness.org 70 i 5838 For something different than our usual Beastie Bits… we bring you… Err codemadness.org 70 i 5839 We're all quarantined so lets install BSD on things! Install BSD on something this week, write it up and let us know about it, and maybe we'll feature you! Err codemadness.org 70 i 5840 Installation of NetBSD on a Mac Mini (https://e17i.github.io/articles-netbsd-install/) Err codemadness.org 70 i 5841 OpenBSD on the HP Envy 13 (https://icyphox.sh/blog/openbsd-hp-envy/) Err codemadness.org 70 i 5842 Install NetBSD on a Vintage Computer (https://www.rs-online.com/designspark/install-netbsd-on-a-vintage-computer) Err codemadness.org 70 i 5843 BSDCan Home Lab Panel recording session: May 5th at 18:00 UTC (https://twitter.com/allanjude/status/1251895348836143104) Err codemadness.org 70 i 5844 Allan started a series of FreeBSD Office Hours (https://wiki.freebsd.org/OfficeHours) Err codemadness.org 70 i 5845 BSDNow is going Independent Err codemadness.org 70 i 5846 After being part of Jupiter Broadcasting since we started back in 2013, BSDNow is moving to become independent. We extend a very large thank you to Jupiter Broadcasting and Linux Academy for hosting us for so many years, and allowing us to bring you over 100 episodes without advertisements. Err codemadness.org 70 i 5847 What does this mean for you, the listener? Not much will change, just make sure your subscription is via the RSS feed at BSDNow.tv rather than one of the Jupiter Broadcasting feeds. We will update you with more news as things settle out. Err codemadness.org 70 i 5848 Feedback/Questions Err codemadness.org 70 i 5849 Todd - LinusTechTips Claims about ZFS (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/348/feedback/Todd%20-%20LinusTechTips'%20claims%20on%20ZFS.md) Err codemadness.org 70 i 5850 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 5851 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 5852 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0348.mp4" type="video/mp4"> Err codemadness.org 70 i 5853 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 5854 </video> Err codemadness.org 70 i 5855 Err codemadness.org 70 i 5856 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, furybsd, kde, xfce, GhostBSD, Ars Technica, TLS, tls mastery, tls mastery book, book sponsorship, collections, secure memory allocator, internals, memory allocator, memory allocator internals, ssd, solid state drive Err codemadness.org 70 i 5857 Err codemadness.org 70 i 5858 FuryBSD 2020Q2 Images Available, Technical reasons to choose FreeBSD over GNU/Linux, Ars technica reviews GhostBSD, “TLS Mastery” sponsorships open, BSD community show their various collections, a tale of OpenBSD secure memory allocator internals, learn to stop worrying and love SSDs, and more.

Err codemadness.org 70 i 5859 Err codemadness.org 70 i 5860

Headlines

Err codemadness.org 70 i 5861 Err codemadness.org 70 i 5862

FuryBSD 2020Q2 Images Available for XFCE and KDE

Err codemadness.org 70 i 5863 Err codemadness.org 70 i 5864
Err codemadness.org 70 i 5865

The Q2 2020 images are not a visible leap forward but a functional leap forward. Most effort was spent creating a better out of box experience for automatic Ethernet configuration, working WiFi, webcam, and improved hypervisor support.

Err codemadness.org 70 i 5866
Err codemadness.org 70 i 5867 Err codemadness.org 70 i 5868
Err codemadness.org 70 i 5869 Err codemadness.org 70 i 5870

Technical reasons to choose FreeBSD over GNU/Linux

Err codemadness.org 70 i 5871 Err codemadness.org 70 i 5872
Err codemadness.org 70 i 5873

Since I wrote my article "Why you should migrate everything from Linux to BSD" I have been wanting to write something about the technical reasons to choose FreeBSD over GNU/Linux and while I cannot possibly cover every single reason, I can write about some of the things that I consider worth noting.

Err codemadness.org 70 i 5874
Err codemadness.org 70 i 5875 Err codemadness.org 70 i 5876
Err codemadness.org 70 i 5877 Err codemadness.org 70 i 5878

News Roundup

Err codemadness.org 70 i 5879 Err codemadness.org 70 i 5880

+ Not actually Linux distro review deux: GhostBSD

Err codemadness.org 70 i 5881 Err codemadness.org 70 i 5882
Err codemadness.org 70 i 5883

When I began work on the FreeBSD 12.1-RELEASE review last week, it didn't take long to figure out that the desktop portion wasn't going very smoothly.

Err codemadness.org 70 i 5884 Err codemadness.org 70 i 5885

I think it's important for BSD-curious users to know of easier, gentler alternatives, so I did a little looking around and settled on GhostBSD for a follow-up review.

Err codemadness.org 70 i 5886 Err codemadness.org 70 i 5887

GhostBSD is based on TrueOS, which itself derives from FreeBSD Stable. It was originally a Canadian distro, but—like most successful distributions—it has transcended its country of origin and can now be considered worldwide. Significant GhostBSD development takes place now in Canada, Italy, Germany, and the United States.

Err codemadness.org 70 i 5888
Err codemadness.org 70 i 5889 Err codemadness.org 70 i 5890
Err codemadness.org 70 i 5891 Err codemadness.org 70 i 5892

“TLS Mastery” sponsorships open

Err codemadness.org 70 i 5893 Err codemadness.org 70 i 5894
Err codemadness.org 70 i 5895

My next book will be TLS Mastery, all about Transport Layer Encryption, Let’s Encrypt, OCSP, and so on.

Err codemadness.org 70 i 5896 Err codemadness.org 70 i 5897

This should be a shorter book, more like my DNSSEC or Tarsnap titles, or the first edition of Sudo Mastery. I would like a break from writing doorstops like the SNMP and jails books.

Err codemadness.org 70 i 5898
Err codemadness.org 70 i 5899 Err codemadness.org 70 i 5900
Err codemadness.org 70 i 5901 Err codemadness.org 70 i 5902

JT (our producer) shared his Open Source Retail Box Collection on twitter this past weekend and there was a nice response from a few in the BSD Community showing their collections:

Err codemadness.org 70 i 5903 Err codemadness.org 70 i 5904 Err codemadness.org 70 i 5919 Err codemadness.org 70 i 5920

Do you have a nice collection, take a picture and send it in!

Err codemadness.org 70 i 5921 Err codemadness.org 70 i 5922
Err codemadness.org 70 i 5923 Err codemadness.org 70 i 5924

Tale of OpenBSD secure memory allocator internals - malloc(3)

Err codemadness.org 70 i 5925 Err codemadness.org 70 i 5926
Err codemadness.org 70 i 5927

Hi there,

Err codemadness.org 70 i 5928 Err codemadness.org 70 i 5929

It's been a very long time I haven't written anything after my last OpenBSD blogs, that is,

Err codemadness.org 70 i 5930 Err codemadness.org 70 i 5931

OpenBSD Kernel Internals — Creation of process from user-space to kernel space.

Err codemadness.org 70 i 5932 Err codemadness.org 70 i 5933

OpenBSD: Introduction to execpromises in the pledge(2)

Err codemadness.org 70 i 5934 Err codemadness.org 70 i 5935

pledge(2): OpenBSD's defensive approach to OS Security

Err codemadness.org 70 i 5936 Err codemadness.org 70 i 5937

So, again I started reading OpenBSD source codes with debugger after reducing my sleep timings and managing to get some time after professional life. This time I have picked one of my favourite item from my wishlist to learn and share, that is, OpenBSD malloc(3), secure allocator

Err codemadness.org 70 i 5938
Err codemadness.org 70 i 5939 Err codemadness.org 70 i 5940
Err codemadness.org 70 i 5941 Err codemadness.org 70 i 5942

How I learned to stop worrying and love SSDs

Err codemadness.org 70 i 5943 Err codemadness.org 70 i 5944
Err codemadness.org 70 i 5945

my home FreeNAS runs two pools for data. One RAIDZ2 with four spinning disk drives and one mirror with two SSDs. Toying with InfluxDB and Grafana in the last couple of days I found that I seem to have a constant write load of 1 Megabyte (!) per second on the SSDs. What the ...?

Err codemadness.org 70 i 5946 Err codemadness.org 70 i 5947

So I run three VMs on the SSDs in total. One with Windows 10, two with Ubuntu running Confluence, A wiki essentially, with files for attachments and MySQL as the backend database. Clearly the writes had to stop when the wikis were not used at all, just sitting idle, right?

Err codemadness.org 70 i 5948 Err codemadness.org 70 i 5949

Well even with a full query log and quite some experience in the operation of web applications I could not figure out what Confluence is doing (productively, no doubt) but trust me, it writes a couple of hundred kbytes to the database each second just sitting idle.

Err codemadness.org 70 i 5950
Err codemadness.org 70 i 5951 Err codemadness.org 70 i 5952
Err codemadness.org 70 i 5953 Err codemadness.org 70 i 5954

My infrastructure as of 2019

Err codemadness.org 70 i 5955 Err codemadness.org 70 i 5956
Err codemadness.org 70 i 5957

I've wanted to write about my infrastructure for a while, but I kept thinking, "I'll wait until after I've done $next_thing_on_my_todo." Of course this cycle never ends, so I decided to write about its state at the end of 2019. Maybe I'll write an update on it in a couple of moons; who knows?

Err codemadness.org 70 i 5958
Err codemadness.org 70 i 5959 Err codemadness.org 70 i 5960
Err codemadness.org 70 i 5961 Err codemadness.org 70 i 5962

For something different than our usual Beastie Bits… we bring you…

Err codemadness.org 70 i 5963 Err codemadness.org 70 i 5964

We're all quarantined so lets install BSD on things! Install BSD on something this week, write it up and let us know about it, and maybe we'll feature you!

Err codemadness.org 70 i 5965 Err codemadness.org 70 i 5966 Err codemadness.org 70 i 5973 Err codemadness.org 70 i 5974
Err codemadness.org 70 i 5975 Err codemadness.org 70 i 5976

BSDNow is going Independent

Err codemadness.org 70 i 5977 Err codemadness.org 70 i 5978
    Err codemadness.org 70 i 5979
  • After being part of Jupiter Broadcasting since we started back in 2013, BSDNow is moving to become independent. We extend a very large thank you to Jupiter Broadcasting and Linux Academy for hosting us for so many years, and allowing us to bring you over 100 episodes without advertisements. Err codemadness.org 70 i 5980 What does this mean for you, the listener? Not much will change, just make sure your subscription is via the RSS feed at BSDNow.tv rather than one of the Jupiter Broadcasting feeds. We will update you with more news as things settle out.
  • Err codemadness.org 70 i 5981
Err codemadness.org 70 i 5982 Err codemadness.org 70 i 5983

Feedback/Questions

Err codemadness.org 70 i 5984 Err codemadness.org 70 i 5985 Err codemadness.org 70 i 5988 Err codemadness.org 70 i 5989
Err codemadness.org 70 i 5990 Err codemadness.org 70 i 5991
    Err codemadness.org 70 i 5992
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 5993
Err codemadness.org 70 i 5994 Err codemadness.org 70 i 5995
Err codemadness.org 70 i 5996 Err codemadness.org 70 i 5997 ]]> Err codemadness.org 70 i 6001
Err codemadness.org 70 i 6002 Err codemadness.org 70 i 6003 FuryBSD 2020Q2 Images Available, Technical reasons to choose FreeBSD over GNU/Linux, Ars technica reviews GhostBSD, “TLS Mastery” sponsorships open, BSD community show their various collections, a tale of OpenBSD secure memory allocator internals, learn to stop worrying and love SSDs, and more.

Err codemadness.org 70 i 6004 Err codemadness.org 70 i 6005

Headlines

Err codemadness.org 70 i 6006 Err codemadness.org 70 i 6007

FuryBSD 2020Q2 Images Available for XFCE and KDE

Err codemadness.org 70 i 6008 Err codemadness.org 70 i 6009
Err codemadness.org 70 i 6010

The Q2 2020 images are not a visible leap forward but a functional leap forward. Most effort was spent creating a better out of box experience for automatic Ethernet configuration, working WiFi, webcam, and improved hypervisor support.

Err codemadness.org 70 i 6011
Err codemadness.org 70 i 6012 Err codemadness.org 70 i 6013
Err codemadness.org 70 i 6014 Err codemadness.org 70 i 6015

Technical reasons to choose FreeBSD over GNU/Linux

Err codemadness.org 70 i 6016 Err codemadness.org 70 i 6017
Err codemadness.org 70 i 6018

Since I wrote my article "Why you should migrate everything from Linux to BSD" I have been wanting to write something about the technical reasons to choose FreeBSD over GNU/Linux and while I cannot possibly cover every single reason, I can write about some of the things that I consider worth noting.

Err codemadness.org 70 i 6019
Err codemadness.org 70 i 6020 Err codemadness.org 70 i 6021
Err codemadness.org 70 i 6022 Err codemadness.org 70 i 6023

News Roundup

Err codemadness.org 70 i 6024 Err codemadness.org 70 i 6025

+ Not actually Linux distro review deux: GhostBSD

Err codemadness.org 70 i 6026 Err codemadness.org 70 i 6027
Err codemadness.org 70 i 6028

When I began work on the FreeBSD 12.1-RELEASE review last week, it didn't take long to figure out that the desktop portion wasn't going very smoothly.

Err codemadness.org 70 i 6029 Err codemadness.org 70 i 6030

I think it's important for BSD-curious users to know of easier, gentler alternatives, so I did a little looking around and settled on GhostBSD for a follow-up review.

Err codemadness.org 70 i 6031 Err codemadness.org 70 i 6032

GhostBSD is based on TrueOS, which itself derives from FreeBSD Stable. It was originally a Canadian distro, but—like most successful distributions—it has transcended its country of origin and can now be considered worldwide. Significant GhostBSD development takes place now in Canada, Italy, Germany, and the United States.

Err codemadness.org 70 i 6033
Err codemadness.org 70 i 6034 Err codemadness.org 70 i 6035
Err codemadness.org 70 i 6036 Err codemadness.org 70 i 6037

“TLS Mastery” sponsorships open

Err codemadness.org 70 i 6038 Err codemadness.org 70 i 6039
Err codemadness.org 70 i 6040

My next book will be TLS Mastery, all about Transport Layer Encryption, Let’s Encrypt, OCSP, and so on.

Err codemadness.org 70 i 6041 Err codemadness.org 70 i 6042

This should be a shorter book, more like my DNSSEC or Tarsnap titles, or the first edition of Sudo Mastery. I would like a break from writing doorstops like the SNMP and jails books.

Err codemadness.org 70 i 6043
Err codemadness.org 70 i 6044 Err codemadness.org 70 i 6045
Err codemadness.org 70 i 6046 Err codemadness.org 70 i 6047

JT (our producer) shared his Open Source Retail Box Collection on twitter this past weekend and there was a nice response from a few in the BSD Community showing their collections:

Err codemadness.org 70 i 6048 Err codemadness.org 70 i 6049 Err codemadness.org 70 i 6064 Err codemadness.org 70 i 6065

Do you have a nice collection, take a picture and send it in!

Err codemadness.org 70 i 6066 Err codemadness.org 70 i 6067
Err codemadness.org 70 i 6068 Err codemadness.org 70 i 6069

Tale of OpenBSD secure memory allocator internals - malloc(3)

Err codemadness.org 70 i 6070 Err codemadness.org 70 i 6071
Err codemadness.org 70 i 6072

Hi there,

Err codemadness.org 70 i 6073 Err codemadness.org 70 i 6074

It's been a very long time I haven't written anything after my last OpenBSD blogs, that is,

Err codemadness.org 70 i 6075 Err codemadness.org 70 i 6076

OpenBSD Kernel Internals — Creation of process from user-space to kernel space.

Err codemadness.org 70 i 6077 Err codemadness.org 70 i 6078

OpenBSD: Introduction to execpromises in the pledge(2)

Err codemadness.org 70 i 6079 Err codemadness.org 70 i 6080

pledge(2): OpenBSD's defensive approach to OS Security

Err codemadness.org 70 i 6081 Err codemadness.org 70 i 6082

So, again I started reading OpenBSD source codes with debugger after reducing my sleep timings and managing to get some time after professional life. This time I have picked one of my favourite item from my wishlist to learn and share, that is, OpenBSD malloc(3), secure allocator

Err codemadness.org 70 i 6083
Err codemadness.org 70 i 6084 Err codemadness.org 70 i 6085
Err codemadness.org 70 i 6086 Err codemadness.org 70 i 6087

How I learned to stop worrying and love SSDs

Err codemadness.org 70 i 6088 Err codemadness.org 70 i 6089
Err codemadness.org 70 i 6090

my home FreeNAS runs two pools for data. One RAIDZ2 with four spinning disk drives and one mirror with two SSDs. Toying with InfluxDB and Grafana in the last couple of days I found that I seem to have a constant write load of 1 Megabyte (!) per second on the SSDs. What the ...?

Err codemadness.org 70 i 6091 Err codemadness.org 70 i 6092

So I run three VMs on the SSDs in total. One with Windows 10, two with Ubuntu running Confluence, A wiki essentially, with files for attachments and MySQL as the backend database. Clearly the writes had to stop when the wikis were not used at all, just sitting idle, right?

Err codemadness.org 70 i 6093 Err codemadness.org 70 i 6094

Well even with a full query log and quite some experience in the operation of web applications I could not figure out what Confluence is doing (productively, no doubt) but trust me, it writes a couple of hundred kbytes to the database each second just sitting idle.

Err codemadness.org 70 i 6095
Err codemadness.org 70 i 6096 Err codemadness.org 70 i 6097
Err codemadness.org 70 i 6098 Err codemadness.org 70 i 6099

My infrastructure as of 2019

Err codemadness.org 70 i 6100 Err codemadness.org 70 i 6101
Err codemadness.org 70 i 6102

I've wanted to write about my infrastructure for a while, but I kept thinking, "I'll wait until after I've done $next_thing_on_my_todo." Of course this cycle never ends, so I decided to write about its state at the end of 2019. Maybe I'll write an update on it in a couple of moons; who knows?

Err codemadness.org 70 i 6103
Err codemadness.org 70 i 6104 Err codemadness.org 70 i 6105
Err codemadness.org 70 i 6106 Err codemadness.org 70 i 6107

For something different than our usual Beastie Bits… we bring you…

Err codemadness.org 70 i 6108 Err codemadness.org 70 i 6109

We're all quarantined so lets install BSD on things! Install BSD on something this week, write it up and let us know about it, and maybe we'll feature you!

Err codemadness.org 70 i 6110 Err codemadness.org 70 i 6111 Err codemadness.org 70 i 6118 Err codemadness.org 70 i 6119
Err codemadness.org 70 i 6120 Err codemadness.org 70 i 6121

BSDNow is going Independent

Err codemadness.org 70 i 6122 Err codemadness.org 70 i 6123
    Err codemadness.org 70 i 6124
  • After being part of Jupiter Broadcasting since we started back in 2013, BSDNow is moving to become independent. We extend a very large thank you to Jupiter Broadcasting and Linux Academy for hosting us for so many years, and allowing us to bring you over 100 episodes without advertisements. Err codemadness.org 70 i 6125 What does this mean for you, the listener? Not much will change, just make sure your subscription is via the RSS feed at BSDNow.tv rather than one of the Jupiter Broadcasting feeds. We will update you with more news as things settle out.
  • Err codemadness.org 70 i 6126
Err codemadness.org 70 i 6127 Err codemadness.org 70 i 6128

Feedback/Questions

Err codemadness.org 70 i 6129 Err codemadness.org 70 i 6130 Err codemadness.org 70 i 6133 Err codemadness.org 70 i 6134
Err codemadness.org 70 i 6135 Err codemadness.org 70 i 6136
    Err codemadness.org 70 i 6137
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 6138
Err codemadness.org 70 i 6139 Err codemadness.org 70 i 6140
Err codemadness.org 70 i 6141 Err codemadness.org 70 i 6142 ]]> Err codemadness.org 70 i 6146
Err codemadness.org 70 i 6147 https://fireside.fm/player/v2/FYhhasNR+jG9EN0xK Err codemadness.org 70 i 6148 Err codemadness.org 70 i 6149 ]]> Err codemadness.org 70 i 6150 Err codemadness.org 70 i 6151
Err codemadness.org 70 i 6152 Err codemadness.org 70 i 6153 347: New Directions Err codemadness.org 70 i 6154 https://www.bsdnow.tv/347 Err codemadness.org 70 i 6155 25cb0a70-b178-4702-8e8f-a8e7427a9ae2 Err codemadness.org 70 i 6156 Thu, 23 Apr 2020 05:00:00 -0700 Err codemadness.org 70 i 6157 Allan Jude Err codemadness.org 70 i 6158 Err codemadness.org 70 i 6159 full Err codemadness.org 70 i 6160 Allan Jude Err codemadness.org 70 i 6161 Rethinking OpenBSD security, FreeBSD 2020 Q1 status report, the notion of progress and user interfaces, Comments about Thomas E. Dickey on NetBSD curses, making Unix a little more Plan9-like, Not-actually Linux distro review: FreeBSD, and more. Err codemadness.org 70 i 6162 1:00:50 Err codemadness.org 70 i 6163 no Err codemadness.org 70 i 6164 Err codemadness.org 70 i 6165 Rethinking OpenBSD security, FreeBSD 2020 Q1 status report, the notion of progress and user interfaces, Comments about Thomas E. Dickey on NetBSD curses, making Unix a little more Plan9-like, Not-actually Linux distro review: FreeBSD, and more. Err codemadness.org 70 i 6166 Headlines Err codemadness.org 70 i 6167 Rethinking OpenBSD Security (https://flak.tedunangst.com/post/rethinking-openbsd-security) Err codemadness.org 70 i 6168 OpenBSD aims to be a secure operating system. In the past few months there were quite a few security errata, however. That’s not too unusual, but some of the recent ones were a bit special. One might even say bad. The OpenBSD approach to security has a few aspects, two of which might be avoiding errors and minimizing the risk of mistakes. Other people have other ideas about how to build secure systems. I think it’s worth examining whether the OpenBSD approach works, or if this is evidence that it’s doomed to failure. Err codemadness.org 70 i 6169 I picked a few errata, not all of them, that were interesting and happened to suit my narrative. Err codemadness.org 70 i 6170 FreeBSD 2020 Q1 Quarterly report (https://www.freebsd.org/news/status/report-2020-01-2020-03.html) Err codemadness.org 70 i 6171 Welcome, to the quarterly reports, of the future! Well, at least the first quarterly report from 2020. The new timeline, mentioned in the last few reports, still holds, which brings us to this report, which covers the period of January 2020 - March 2020. Err codemadness.org 70 i 6172 News Roundup Err codemadness.org 70 i 6173 The Notion of Progress and User Interfaces (https://herebeseaswines.net/essays/2020-04-13-the-notion-of-progress-and-user-interfaces) Err codemadness.org 70 i 6174 One trait of modern Western culture is the notion of progress. A view claiming, at large, everything is getting better and better. Err codemadness.org 70 i 6175 How should we think about progress? Both in general and regarding technology? Err codemadness.org 70 i 6176 Thomas E. Dickey on NetBSD curses (https://implementality.blogspot.com/2020/04/thomas-e-dickey-on-netbsd-curses.html) Err codemadness.org 70 i 6177 I was recently pointed at a web page on Thomas E. Dickeys site talking about NetBSD curses. It seems initially that the page was intended to be a pointer to some differences between ncurses and NetBSD curses and does appear to start off in this vein but it seems that the author has lost the plot as the document evolved and the tail end of it seems to be devolving into some sort of slanging match. I don't want to go through Mr. Dickey's document point by point, that would be tedious but I would like to pick out some of the things that I believe to be the most egregious. Please note that even though I am a NetBSD developer, the opinions below are my own and not the NetBSD projects. Err codemadness.org 70 i 6178 Making Unix a little more Plan9-like (https://woozle.org/papers/plan9.html) Err codemadness.org 70 i 6179 I’m not really interested in defending anything. I tried out plan9port and liked it, but I have to live in Unix land. Here’s how I set that up. Err codemadness.org 70 i 6180 A Warning Err codemadness.org 70 i 6181 The suckless community, and some of the plan9 communities, are dominated by jackasses. I hope that’s strong enough wording to impress the severity. Don’t go into IRC for help. Stay off the suckless email list. The software is great, the people who write it are well-spoken and well-reasoned, but for some reason the fandom is horrible to everyone. Err codemadness.org 70 i 6182 Not-actually Linux distro review: FreeBSD 12.1-RELEASE (https://arstechnica.com/gadgets/2020/04/not-actually-linux-distro-review-freebsd-12-1-release/) Err codemadness.org 70 i 6183 This month's Linux distro review isn't of a Linux distribution at all—instead, we're taking a look at FreeBSD, the original gangster of free Unix-like operating systems. Err codemadness.org 70 i 6184 The first FreeBSD release was in 1993, but the operating system's roots go further back—considerably further back. FreeBSD started out in 1992 as a patch-release of Bill and Lynne Jolitz's 386BSD—but 386BSD itself came from the original Berkeley Software Distribution (BSD). BSD itself goes back to 1977—for reference, Linus Torvalds was only seven years old then. Err codemadness.org 70 i 6185 Before we get started, I'd like to acknowledge something up front—our distro reviews include the desktop experience, and that is very much not FreeBSD's strength. FreeBSD is far, far better suited to running as a headless server than as a desktop! We're going to get a full desktop running on it anyway, because according to Lee Hutchinson, I hate myself—and also because we can't imagine readers wouldn't care about it. Err codemadness.org 70 i 6186 FreeBSD does not provide a good desktop experience, to say the least. But if you're hankering for a BSD-based desktop, don't worry—we're already planning a followup review of GhostBSD, a desktop-focused BSD distribution. Err codemadness.org 70 i 6187 Beastie Bits Err codemadness.org 70 i 6188 Wifi renewal restarted (https://blog.netbsd.org/tnf/entry/wifi_renewal_restarted) Err codemadness.org 70 i 6189 HAMMER2 and a quick start for DragonFly (https://www.dragonflydigest.com/2020/04/21/24421.html) Err codemadness.org 70 i 6190 Engineering NetBSD 9.0 (http://netbsd.org/~kamil/AsiaBSDCon/Kamil_Rytarowski_Engineering_NetBSD_9.0.pdf) Err codemadness.org 70 i 6191 Antivirus Protection using OPNsense Plugins (https://www.youtube.com/watch?v=94vz_-5lAkE) Err codemadness.org 70 i 6192 BSDCan Home Lab Panel recording session: May 5th at 18:00 UTC (https://twitter.com/allanjude/status/1251895348836143104) Err codemadness.org 70 i 6193 BSDNow is going Independent Err codemadness.org 70 i 6194 After being part of Jupiter Broadcasting since we started back in 2013, BSDNow is moving to become independent. We extend a very large thank you to Jupiter Broadcasting and Linux Academy for hosting us for so many years, and allowing us to bring you over 100 episodes without advertisements. LinuxAcademy is now under new leadership, and we understand that cutbacks needed to be made, and that BSD is not their core product. That does not mean your favourite BSD podcast is going away, we will continue and we expect things will not look much different. Err codemadness.org 70 i 6195 What does this mean for you, the listener? Not much will change, just make sure your subscription is via the RSS feed at BSDNow.tv rather than one of the Jupiter Broadcasting feeds. We will update you with more news as things settle out. Err codemadness.org 70 i 6196 Feedback/Questions Err codemadness.org 70 i 6197 Jordyn - ZFS Pool Problem (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/347/feedback/Jordyn%20zfs%20pool%20problem.md) Err codemadness.org 70 i 6198 debug - https://github.com/BSDNow/bsdnow.tv/raw/master/episodes/347/feedback/dbg.txt Err codemadness.org 70 i 6199 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 6200 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 6201 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0347.mp4" type="video/mp4"> Err codemadness.org 70 i 6202 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 6203 </video> Err codemadness.org 70 i 6204 Err codemadness.org 70 i 6205 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, security, status report, status, Q1, Q1 2020, progress, UI, user interface, Thomas Dickey, Thomas E. Dickey, curses, plan 9, distro, review, distro review, ars technica Err codemadness.org 70 i 6206 Err codemadness.org 70 i 6207 Rethinking OpenBSD security, FreeBSD 2020 Q1 status report, the notion of progress and user interfaces, Comments about Thomas E. Dickey on NetBSD curses, making Unix a little more Plan9-like, Not-actually Linux distro review: FreeBSD, and more.

Err codemadness.org 70 i 6208 Err codemadness.org 70 i 6209

Headlines

Err codemadness.org 70 i 6210 Err codemadness.org 70 i 6211

Rethinking OpenBSD Security

Err codemadness.org 70 i 6212 Err codemadness.org 70 i 6213
Err codemadness.org 70 i 6214

OpenBSD aims to be a secure operating system. In the past few months there were quite a few security errata, however. That’s not too unusual, but some of the recent ones were a bit special. One might even say bad. The OpenBSD approach to security has a few aspects, two of which might be avoiding errors and minimizing the risk of mistakes. Other people have other ideas about how to build secure systems. I think it’s worth examining whether the OpenBSD approach works, or if this is evidence that it’s doomed to failure.
Err codemadness.org 70 i 6215 I picked a few errata, not all of them, that were interesting and happened to suit my narrative.

Err codemadness.org 70 i 6216
Err codemadness.org 70 i 6217 Err codemadness.org 70 i 6218
Err codemadness.org 70 i 6219 Err codemadness.org 70 i 6220

FreeBSD 2020 Q1 Quarterly report

Err codemadness.org 70 i 6221 Err codemadness.org 70 i 6222
Err codemadness.org 70 i 6223

Welcome, to the quarterly reports, of the future! Well, at least the first quarterly report from 2020. The new timeline, mentioned in the last few reports, still holds, which brings us to this report, which covers the period of January 2020 - March 2020.

Err codemadness.org 70 i 6224
Err codemadness.org 70 i 6225 Err codemadness.org 70 i 6226
Err codemadness.org 70 i 6227 Err codemadness.org 70 i 6228

News Roundup

Err codemadness.org 70 i 6229 Err codemadness.org 70 i 6230

The Notion of Progress and User Interfaces

Err codemadness.org 70 i 6231 Err codemadness.org 70 i 6232
Err codemadness.org 70 i 6233

One trait of modern Western culture is the notion of progress. A view claiming, at large, everything is getting better and better.

Err codemadness.org 70 i 6234 Err codemadness.org 70 i 6235

How should we think about progress? Both in general and regarding technology?

Err codemadness.org 70 i 6236
Err codemadness.org 70 i 6237 Err codemadness.org 70 i 6238
Err codemadness.org 70 i 6239 Err codemadness.org 70 i 6240

Thomas E. Dickey on NetBSD curses

Err codemadness.org 70 i 6241 Err codemadness.org 70 i 6242
Err codemadness.org 70 i 6243

I was recently pointed at a web page on Thomas E. Dickeys site talking about NetBSD curses. It seems initially that the page was intended to be a pointer to some differences between ncurses and NetBSD curses and does appear to start off in this vein but it seems that the author has lost the plot as the document evolved and the tail end of it seems to be devolving into some sort of slanging match. I don't want to go through Mr. Dickey's document point by point, that would be tedious but I would like to pick out some of the things that I believe to be the most egregious. Please note that even though I am a NetBSD developer, the opinions below are my own and not the NetBSD projects.

Err codemadness.org 70 i 6244
Err codemadness.org 70 i 6245 Err codemadness.org 70 i 6246
Err codemadness.org 70 i 6247 Err codemadness.org 70 i 6248

Making Unix a little more Plan9-like

Err codemadness.org 70 i 6249 Err codemadness.org 70 i 6250
Err codemadness.org 70 i 6251

I’m not really interested in defending anything. I tried out plan9port and liked it, but I have to live in Unix land. Here’s how I set that up.

Err codemadness.org 70 i 6252 Err codemadness.org 70 i 6253

A Warning

Err codemadness.org 70 i 6254 Err codemadness.org 70 i 6255

The suckless community, and some of the plan9 communities, are dominated by jackasses. I hope that’s strong enough wording to impress the severity. Don’t go into IRC for help. Stay off the suckless email list. The software is great, the people who write it are well-spoken and well-reasoned, but for some reason the fandom is horrible to everyone.

Err codemadness.org 70 i 6256
Err codemadness.org 70 i 6257 Err codemadness.org 70 i 6258
Err codemadness.org 70 i 6259 Err codemadness.org 70 i 6260

Not-actually Linux distro review: FreeBSD 12.1-RELEASE

Err codemadness.org 70 i 6261 Err codemadness.org 70 i 6262
Err codemadness.org 70 i 6263

This month's Linux distro review isn't of a Linux distribution at all—instead, we're taking a look at FreeBSD, the original gangster of free Unix-like operating systems.

Err codemadness.org 70 i 6264 Err codemadness.org 70 i 6265

The first FreeBSD release was in 1993, but the operating system's roots go further back—considerably further back. FreeBSD started out in 1992 as a patch-release of Bill and Lynne Jolitz's 386BSD—but 386BSD itself came from the original Berkeley Software Distribution (BSD). BSD itself goes back to 1977—for reference, Linus Torvalds was only seven years old then.

Err codemadness.org 70 i 6266 Err codemadness.org 70 i 6267

Before we get started, I'd like to acknowledge something up front—our distro reviews include the desktop experience, and that is very much not FreeBSD's strength. FreeBSD is far, far better suited to running as a headless server than as a desktop! We're going to get a full desktop running on it anyway, because according to Lee Hutchinson, I hate myself—and also because we can't imagine readers wouldn't care about it.

Err codemadness.org 70 i 6268 Err codemadness.org 70 i 6269

FreeBSD does not provide a good desktop experience, to say the least. But if you're hankering for a BSD-based desktop, don't worry—we're already planning a followup review of GhostBSD, a desktop-focused BSD distribution.

Err codemadness.org 70 i 6270
Err codemadness.org 70 i 6271 Err codemadness.org 70 i 6272
Err codemadness.org 70 i 6273 Err codemadness.org 70 i 6274

Beastie Bits

Err codemadness.org 70 i 6275 Err codemadness.org 70 i 6276 Err codemadness.org 70 i 6283 Err codemadness.org 70 i 6284
Err codemadness.org 70 i 6285 Err codemadness.org 70 i 6286

BSDNow is going Independent

Err codemadness.org 70 i 6287 Err codemadness.org 70 i 6288
    Err codemadness.org 70 i 6289
  • After being part of Jupiter Broadcasting since we started back in 2013, BSDNow is moving to become independent. We extend a very large thank you to Jupiter Broadcasting and Linux Academy for hosting us for so many years, and allowing us to bring you over 100 episodes without advertisements. LinuxAcademy is now under new leadership, and we understand that cutbacks needed to be made, and that BSD is not their core product. That does not mean your favourite BSD podcast is going away, we will continue and we expect things will not look much different. Err codemadness.org 70 i 6290 What does this mean for you, the listener? Not much will change, just make sure your subscription is via the RSS feed at BSDNow.tv rather than one of the Jupiter Broadcasting feeds. We will update you with more news as things settle out.
  • Err codemadness.org 70 i 6291
Err codemadness.org 70 i 6292 Err codemadness.org 70 i 6293
Err codemadness.org 70 i 6294 Err codemadness.org 70 i 6295

Feedback/Questions

Err codemadness.org 70 i 6296 Err codemadness.org 70 i 6297 Err codemadness.org 70 i 6305 Err codemadness.org 70 i 6306
Err codemadness.org 70 i 6307 Err codemadness.org 70 i 6308 ]]> Err codemadness.org 70 i 6312
Err codemadness.org 70 i 6313 Err codemadness.org 70 i 6314 Rethinking OpenBSD security, FreeBSD 2020 Q1 status report, the notion of progress and user interfaces, Comments about Thomas E. Dickey on NetBSD curses, making Unix a little more Plan9-like, Not-actually Linux distro review: FreeBSD, and more.

Err codemadness.org 70 i 6315 Err codemadness.org 70 i 6316

Headlines

Err codemadness.org 70 i 6317 Err codemadness.org 70 i 6318

Rethinking OpenBSD Security

Err codemadness.org 70 i 6319 Err codemadness.org 70 i 6320
Err codemadness.org 70 i 6321

OpenBSD aims to be a secure operating system. In the past few months there were quite a few security errata, however. That’s not too unusual, but some of the recent ones were a bit special. One might even say bad. The OpenBSD approach to security has a few aspects, two of which might be avoiding errors and minimizing the risk of mistakes. Other people have other ideas about how to build secure systems. I think it’s worth examining whether the OpenBSD approach works, or if this is evidence that it’s doomed to failure.
Err codemadness.org 70 i 6322 I picked a few errata, not all of them, that were interesting and happened to suit my narrative.

Err codemadness.org 70 i 6323
Err codemadness.org 70 i 6324 Err codemadness.org 70 i 6325
Err codemadness.org 70 i 6326 Err codemadness.org 70 i 6327

FreeBSD 2020 Q1 Quarterly report

Err codemadness.org 70 i 6328 Err codemadness.org 70 i 6329
Err codemadness.org 70 i 6330

Welcome, to the quarterly reports, of the future! Well, at least the first quarterly report from 2020. The new timeline, mentioned in the last few reports, still holds, which brings us to this report, which covers the period of January 2020 - March 2020.

Err codemadness.org 70 i 6331
Err codemadness.org 70 i 6332 Err codemadness.org 70 i 6333
Err codemadness.org 70 i 6334 Err codemadness.org 70 i 6335

News Roundup

Err codemadness.org 70 i 6336 Err codemadness.org 70 i 6337

The Notion of Progress and User Interfaces

Err codemadness.org 70 i 6338 Err codemadness.org 70 i 6339
Err codemadness.org 70 i 6340

One trait of modern Western culture is the notion of progress. A view claiming, at large, everything is getting better and better.

Err codemadness.org 70 i 6341 Err codemadness.org 70 i 6342

How should we think about progress? Both in general and regarding technology?

Err codemadness.org 70 i 6343
Err codemadness.org 70 i 6344 Err codemadness.org 70 i 6345
Err codemadness.org 70 i 6346 Err codemadness.org 70 i 6347

Thomas E. Dickey on NetBSD curses

Err codemadness.org 70 i 6348 Err codemadness.org 70 i 6349
Err codemadness.org 70 i 6350

I was recently pointed at a web page on Thomas E. Dickeys site talking about NetBSD curses. It seems initially that the page was intended to be a pointer to some differences between ncurses and NetBSD curses and does appear to start off in this vein but it seems that the author has lost the plot as the document evolved and the tail end of it seems to be devolving into some sort of slanging match. I don't want to go through Mr. Dickey's document point by point, that would be tedious but I would like to pick out some of the things that I believe to be the most egregious. Please note that even though I am a NetBSD developer, the opinions below are my own and not the NetBSD projects.

Err codemadness.org 70 i 6351
Err codemadness.org 70 i 6352 Err codemadness.org 70 i 6353
Err codemadness.org 70 i 6354 Err codemadness.org 70 i 6355

Making Unix a little more Plan9-like

Err codemadness.org 70 i 6356 Err codemadness.org 70 i 6357
Err codemadness.org 70 i 6358

I’m not really interested in defending anything. I tried out plan9port and liked it, but I have to live in Unix land. Here’s how I set that up.

Err codemadness.org 70 i 6359 Err codemadness.org 70 i 6360

A Warning

Err codemadness.org 70 i 6361 Err codemadness.org 70 i 6362

The suckless community, and some of the plan9 communities, are dominated by jackasses. I hope that’s strong enough wording to impress the severity. Don’t go into IRC for help. Stay off the suckless email list. The software is great, the people who write it are well-spoken and well-reasoned, but for some reason the fandom is horrible to everyone.

Err codemadness.org 70 i 6363
Err codemadness.org 70 i 6364 Err codemadness.org 70 i 6365
Err codemadness.org 70 i 6366 Err codemadness.org 70 i 6367

Not-actually Linux distro review: FreeBSD 12.1-RELEASE

Err codemadness.org 70 i 6368 Err codemadness.org 70 i 6369
Err codemadness.org 70 i 6370

This month's Linux distro review isn't of a Linux distribution at all—instead, we're taking a look at FreeBSD, the original gangster of free Unix-like operating systems.

Err codemadness.org 70 i 6371 Err codemadness.org 70 i 6372

The first FreeBSD release was in 1993, but the operating system's roots go further back—considerably further back. FreeBSD started out in 1992 as a patch-release of Bill and Lynne Jolitz's 386BSD—but 386BSD itself came from the original Berkeley Software Distribution (BSD). BSD itself goes back to 1977—for reference, Linus Torvalds was only seven years old then.

Err codemadness.org 70 i 6373 Err codemadness.org 70 i 6374

Before we get started, I'd like to acknowledge something up front—our distro reviews include the desktop experience, and that is very much not FreeBSD's strength. FreeBSD is far, far better suited to running as a headless server than as a desktop! We're going to get a full desktop running on it anyway, because according to Lee Hutchinson, I hate myself—and also because we can't imagine readers wouldn't care about it.

Err codemadness.org 70 i 6375 Err codemadness.org 70 i 6376

FreeBSD does not provide a good desktop experience, to say the least. But if you're hankering for a BSD-based desktop, don't worry—we're already planning a followup review of GhostBSD, a desktop-focused BSD distribution.

Err codemadness.org 70 i 6377
Err codemadness.org 70 i 6378 Err codemadness.org 70 i 6379
Err codemadness.org 70 i 6380 Err codemadness.org 70 i 6381

Beastie Bits

Err codemadness.org 70 i 6382 Err codemadness.org 70 i 6383 Err codemadness.org 70 i 6390 Err codemadness.org 70 i 6391
Err codemadness.org 70 i 6392 Err codemadness.org 70 i 6393

BSDNow is going Independent

Err codemadness.org 70 i 6394 Err codemadness.org 70 i 6395
    Err codemadness.org 70 i 6396
  • After being part of Jupiter Broadcasting since we started back in 2013, BSDNow is moving to become independent. We extend a very large thank you to Jupiter Broadcasting and Linux Academy for hosting us for so many years, and allowing us to bring you over 100 episodes without advertisements. LinuxAcademy is now under new leadership, and we understand that cutbacks needed to be made, and that BSD is not their core product. That does not mean your favourite BSD podcast is going away, we will continue and we expect things will not look much different. Err codemadness.org 70 i 6397 What does this mean for you, the listener? Not much will change, just make sure your subscription is via the RSS feed at BSDNow.tv rather than one of the Jupiter Broadcasting feeds. We will update you with more news as things settle out.
  • Err codemadness.org 70 i 6398
Err codemadness.org 70 i 6399 Err codemadness.org 70 i 6400
Err codemadness.org 70 i 6401 Err codemadness.org 70 i 6402

Feedback/Questions

Err codemadness.org 70 i 6403 Err codemadness.org 70 i 6404 Err codemadness.org 70 i 6412 Err codemadness.org 70 i 6413
Err codemadness.org 70 i 6414 Err codemadness.org 70 i 6415 ]]> Err codemadness.org 70 i 6419
Err codemadness.org 70 i 6420 https://fireside.fm/player/v2/FYhhasNR+hb1lnM1p Err codemadness.org 70 i 6421 Err codemadness.org 70 i 6422 ]]> Err codemadness.org 70 i 6423 Err codemadness.org 70 i 6424
Err codemadness.org 70 i 6425 Err codemadness.org 70 i 6426 346: Core File Tales Err codemadness.org 70 i 6427 https://www.bsdnow.tv/346 Err codemadness.org 70 i 6428 8f8d0474-abb5-4b90-955c-8d8cfd6dc489 Err codemadness.org 70 i 6429 Thu, 16 Apr 2020 05:00:00 -0700 Err codemadness.org 70 i 6430 Allan Jude Err codemadness.org 70 i 6431 Err codemadness.org 70 i 6432 full Err codemadness.org 70 i 6433 Allan Jude Err codemadness.org 70 i 6434 Tales from a core file, Lenovo X260 BIOS Update with OpenBSD, the problem of Unix iowait and multi-CPU machines, Hugo workflow using FreeBSD Jails, Caddy, Restic; extending NetBSD-7 branch support, a tale of two hypervisor bugs, and more. Err codemadness.org 70 i 6435 55:58 Err codemadness.org 70 i 6436 no Err codemadness.org 70 i 6437 Err codemadness.org 70 i 6438 Tales from a core file, Lenovo X260 BIOS Update with OpenBSD, the problem of Unix iowait and multi-CPU machines, Hugo workflow using FreeBSD Jails, Caddy, Restic; extending NetBSD-7 branch support, a tale of two hypervisor bugs, and more. Err codemadness.org 70 i 6439 Headlines Err codemadness.org 70 i 6440 Tales From a Core File - Lessons from the Unix stdio ABI: 40 Years Later (https://fingolfin.org/blog/20200327/stdio-abi.html) Err codemadness.org 70 i 6441 On the side, I’ve been wrapping up some improvements to the classic Unix stdio libraries in illumos. stdio contains the classic functions like fopen(), printf(), and the security nightmare gets(). While working on support for fmemopen() and friends I got to reacquaint myself with some of the joys of the stdio ABI and its history from 7th Edition Unix. With that in mind, let’s dive into this, history, and some mistakes not to repeat. While this is written from the perspective of the C programming language, aspects of it apply to many other languages. Err codemadness.org 70 i 6442 Update Lenovo X260 BIOS with OpenBSD (https://www.tumfatig.net/20200331/update-lenovo-x260-bios-with-openbsd/) Err codemadness.org 70 i 6443 My X260 only runs OpenBSD and has no CD driver. But I still need to upgrade its BIOS from time to time. And this is possible using the ISO BIOS image. Err codemadness.org 70 i 6444 First off all, you need to download the “BIOS Update (Bootable CD)” from the Lenovo Support Website. Err codemadness.org 70 i 6445 News Roundup Err codemadness.org 70 i 6446 The problem of Unix iowait and multi-CPU machines (https://utcc.utoronto.ca/~cks/space/blog/unix/IowaitAndMultipleCPUs) Err codemadness.org 70 i 6447 Various Unixes have had a 'iowait' statistic for a long time now (although I can't find a source for where it originated; it's not in 4.x BSD, so it may have come through System V and sar). The traditional and standard definition of iowait is that it's the amount of time the system was idle but had at least one process waiting on disk IO. Rather than count this time as 'idle' (as you would if you had a three-way division of CPU time between user, system, and idle), some Unixes evolved to count this as a new category, 'iowait'. Err codemadness.org 70 i 6448 My Latest Self Hosted Hugo Workflow using FreeBSD Jails, Caddy, Restic and More (https://www.jaredwolff.com/my-latest-self-hosted-hugo-workflow/) Err codemadness.org 70 i 6449 After hosting with Netlify for a few years, I decided to head back to self hosting. Theres a few reasons for that but the main reasoning was that I had more control over how things worked. Err codemadness.org 70 i 6450 In this post, i’ll show you my workflow for deploying my Hugo generated site (www.jaredwolff.com). Instead of using what most people would go for, i’ll be doing all of this using a FreeBSD Jails based server. Plus i’ll show you some tricks i’ve learned over the years on bulk image resizing and more. Err codemadness.org 70 i 6451 Let’s get to it. Err codemadness.org 70 i 6452 Extending support for the NetBSD-7 branch (http://blog.netbsd.org/tnf/entry/extending_support_for_the_netbsd) Err codemadness.org 70 i 6453 Typically, some time after releasing a new NetBSD major version (such as NetBSD 9.0), we will announce the end-of-life of the N-2 branch, in this case NetBSD-7. Err codemadness.org 70 i 6454 We've decided to hold off on doing that to ensure our users don't feel rushed to perform a major version update on any remote machines, possibly needing to reach the machine if anything goes wrong. Err codemadness.org 70 i 6455 Security fixes will still be made to the NetBSD-7 branch. Err codemadness.org 70 i 6456 We hope you're all safe. Stay home. Err codemadness.org 70 i 6457 Tale of two hypervisor bugs - Escaping from FreeBSD bhyve (http://phrack.org/papers/escaping_from_freebsd_bhyve.html) Err codemadness.org 70 i 6458 VM escape has become a popular topic of discussion over the last few years. A good amount of research on this topic has been published for various hypervisors like VMware, QEMU, VirtualBox, Xen and Hyper-V. Bhyve is a hypervisor for FreeBSD supporting hardware-assisted virtualization. This paper details the exploitation of two bugs in bhyve - FreeBSD-SA-16:32.bhyve (VGA emulation heap overflow) and CVE-2018-17160 (Firmware Configuration device bss buffer overflow) and some generic techniques which could be used for exploiting other bhyve bugs. Further, the paper also discusses sandbox escapes using PCI device passthrough, and Control-Flow Integrity bypasses in HardenedBSD 12-CURRENT Err codemadness.org 70 i 6459 Beastie Bits Err codemadness.org 70 i 6460 GhostBSD 20.02 Overview (https://www.youtube.com/watch?v=kFG-772WGwg) Err codemadness.org 70 i 6461 FuryBSD 12.1 Overview (https://www.youtube.com/watch?v=5V8680uoXxw) Err codemadness.org 70 i 6462 > Joe Maloney got in touch to say that the issues in the video and other ones found have since been fixed. Now that's community feedback in action, and an example of a developer who does his best to help the community. A great guy indeed. Err codemadness.org 70 i 6463 OS108-9.0 amd64 MATE released (https://forums.os108.org/d/27-os108-9-0-amd64-mate-released) Err codemadness.org 70 i 6464 FreeBSD hacking: carp panics & test (https://www.twitch.tv/videos/584064729) Err codemadness.org 70 i 6465 Inaugural FreeBSD Office Hours (https://www.youtube.com/watch?v=6qBm5NM3zTQ) Err codemadness.org 70 i 6466 Feedback/Questions Err codemadness.org 70 i 6467 Shody - systemd question (http://dpaste.com/2SAQDJJ#wrap) Err codemadness.org 70 i 6468 Ben - GELI and GPT (http://dpaste.com/1S0DGT3#wrap) Err codemadness.org 70 i 6469 Stig - DIY NAS (http://dpaste.com/2NGNZG5#wrap) Err codemadness.org 70 i 6470 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 6471 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 6472 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0345.mp4" type="video/mp4"> Err codemadness.org 70 i 6473 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 6474 </video> Err codemadness.org 70 i 6475 Err codemadness.org 70 i 6476 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, core, core file, core dump, bios, bios update, lenovo, x260, thinkpad, Unix, iowait, self-hosted, hugo, jails, caddy, restic, branch, branch support, hypervisor, bugs Err codemadness.org 70 i 6477 Err codemadness.org 70 i 6478 Tales from a core file, Lenovo X260 BIOS Update with OpenBSD, the problem of Unix iowait and multi-CPU machines, Hugo workflow using FreeBSD Jails, Caddy, Restic; extending NetBSD-7 branch support, a tale of two hypervisor bugs, and more.

Err codemadness.org 70 i 6479 Err codemadness.org 70 i 6480

Headlines

Err codemadness.org 70 i 6481 Err codemadness.org 70 i 6482

Tales From a Core File - Lessons from the Unix stdio ABI: 40 Years Later

Err codemadness.org 70 i 6483 Err codemadness.org 70 i 6484
Err codemadness.org 70 i 6485

On the side, I’ve been wrapping up some improvements to the classic Unix stdio libraries in illumos. stdio contains the classic functions like fopen(), printf(), and the security nightmare gets(). While working on support for fmemopen() and friends I got to reacquaint myself with some of the joys of the stdio ABI and its history from 7th Edition Unix. With that in mind, let’s dive into this, history, and some mistakes not to repeat. While this is written from the perspective of the C programming language, aspects of it apply to many other languages.

Err codemadness.org 70 i 6486
Err codemadness.org 70 i 6487 Err codemadness.org 70 i 6488
Err codemadness.org 70 i 6489 Err codemadness.org 70 i 6490

Update Lenovo X260 BIOS with OpenBSD

Err codemadness.org 70 i 6491 Err codemadness.org 70 i 6492
Err codemadness.org 70 i 6493

My X260 only runs OpenBSD and has no CD driver. But I still need to upgrade its BIOS from time to time. And this is possible using the ISO BIOS image.

Err codemadness.org 70 i 6494 Err codemadness.org 70 i 6495

First off all, you need to download the “BIOS Update (Bootable CD)” from the Lenovo Support Website.

Err codemadness.org 70 i 6496
Err codemadness.org 70 i 6497 Err codemadness.org 70 i 6498
Err codemadness.org 70 i 6499 Err codemadness.org 70 i 6500

News Roundup

Err codemadness.org 70 i 6501 Err codemadness.org 70 i 6502

The problem of Unix iowait and multi-CPU machines

Err codemadness.org 70 i 6503 Err codemadness.org 70 i 6504
Err codemadness.org 70 i 6505

Various Unixes have had a 'iowait' statistic for a long time now (although I can't find a source for where it originated; it's not in 4.x BSD, so it may have come through System V and sar). The traditional and standard definition of iowait is that it's the amount of time the system was idle but had at least one process waiting on disk IO. Rather than count this time as 'idle' (as you would if you had a three-way division of CPU time between user, system, and idle), some Unixes evolved to count this as a new category, 'iowait'.

Err codemadness.org 70 i 6506
Err codemadness.org 70 i 6507 Err codemadness.org 70 i 6508
Err codemadness.org 70 i 6509 Err codemadness.org 70 i 6510

My Latest Self Hosted Hugo Workflow using FreeBSD Jails, Caddy, Restic and More

Err codemadness.org 70 i 6511 Err codemadness.org 70 i 6512
Err codemadness.org 70 i 6513

After hosting with Netlify for a few years, I decided to head back to self hosting. Theres a few reasons for that but the main reasoning was that I had more control over how things worked.

Err codemadness.org 70 i 6514 Err codemadness.org 70 i 6515

In this post, i’ll show you my workflow for deploying my Hugo generated site (www.jaredwolff.com). Instead of using what most people would go for, i’ll be doing all of this using a FreeBSD Jails based server. Plus i’ll show you some tricks i’ve learned over the years on bulk image resizing and more.

Err codemadness.org 70 i 6516 Err codemadness.org 70 i 6517

Let’s get to it.

Err codemadness.org 70 i 6518
Err codemadness.org 70 i 6519 Err codemadness.org 70 i 6520
Err codemadness.org 70 i 6521 Err codemadness.org 70 i 6522

Extending support for the NetBSD-7 branch

Err codemadness.org 70 i 6523 Err codemadness.org 70 i 6524
Err codemadness.org 70 i 6525

Typically, some time after releasing a new NetBSD major version (such as NetBSD 9.0), we will announce the end-of-life of the N-2 branch, in this case NetBSD-7.

Err codemadness.org 70 i 6526 Err codemadness.org 70 i 6527

We've decided to hold off on doing that to ensure our users don't feel rushed to perform a major version update on any remote machines, possibly needing to reach the machine if anything goes wrong.

Err codemadness.org 70 i 6528 Err codemadness.org 70 i 6529

Security fixes will still be made to the NetBSD-7 branch.

Err codemadness.org 70 i 6530 Err codemadness.org 70 i 6531

We hope you're all safe. Stay home.

Err codemadness.org 70 i 6532
Err codemadness.org 70 i 6533 Err codemadness.org 70 i 6534
Err codemadness.org 70 i 6535 Err codemadness.org 70 i 6536

Tale of two hypervisor bugs - Escaping from FreeBSD bhyve

Err codemadness.org 70 i 6537 Err codemadness.org 70 i 6538
Err codemadness.org 70 i 6539

VM escape has become a popular topic of discussion over the last few years. A good amount of research on this topic has been published for various hypervisors like VMware, QEMU, VirtualBox, Xen and Hyper-V. Bhyve is a hypervisor for FreeBSD supporting hardware-assisted virtualization. This paper details the exploitation of two bugs in bhyve - FreeBSD-SA-16:32.bhyve (VGA emulation heap overflow) and CVE-2018-17160 (Firmware Configuration device bss buffer overflow) and some generic techniques which could be used for exploiting other bhyve bugs. Further, the paper also discusses sandbox escapes using PCI device passthrough, and Control-Flow Integrity bypasses in HardenedBSD 12-CURRENT

Err codemadness.org 70 i 6540
Err codemadness.org 70 i 6541 Err codemadness.org 70 i 6542
Err codemadness.org 70 i 6543 Err codemadness.org 70 i 6544

Beastie Bits

Err codemadness.org 70 i 6545 Err codemadness.org 70 i 6546 Err codemadness.org 70 i 6554 Err codemadness.org 70 i 6555
Err codemadness.org 70 i 6556 Err codemadness.org 70 i 6557

Feedback/Questions

Err codemadness.org 70 i 6558 Err codemadness.org 70 i 6559
    Err codemadness.org 70 i 6560
  • Shody - systemd question
  • Err codemadness.org 70 i 6561
  • Ben - GELI and GPT
  • Err codemadness.org 70 i 6562
  • Stig - DIY NAS
  • Err codemadness.org 70 i 6563
Err codemadness.org 70 i 6564 Err codemadness.org 70 i 6565
Err codemadness.org 70 i 6566 Err codemadness.org 70 i 6567
    Err codemadness.org 70 i 6568
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 6569
Err codemadness.org 70 i 6570 Err codemadness.org 70 i 6571
Err codemadness.org 70 i 6572 Err codemadness.org 70 i 6573 ]]> Err codemadness.org 70 i 6577
Err codemadness.org 70 i 6578 Err codemadness.org 70 i 6579 Tales from a core file, Lenovo X260 BIOS Update with OpenBSD, the problem of Unix iowait and multi-CPU machines, Hugo workflow using FreeBSD Jails, Caddy, Restic; extending NetBSD-7 branch support, a tale of two hypervisor bugs, and more.

Err codemadness.org 70 i 6580 Err codemadness.org 70 i 6581

Headlines

Err codemadness.org 70 i 6582 Err codemadness.org 70 i 6583

Tales From a Core File - Lessons from the Unix stdio ABI: 40 Years Later

Err codemadness.org 70 i 6584 Err codemadness.org 70 i 6585
Err codemadness.org 70 i 6586

On the side, I’ve been wrapping up some improvements to the classic Unix stdio libraries in illumos. stdio contains the classic functions like fopen(), printf(), and the security nightmare gets(). While working on support for fmemopen() and friends I got to reacquaint myself with some of the joys of the stdio ABI and its history from 7th Edition Unix. With that in mind, let’s dive into this, history, and some mistakes not to repeat. While this is written from the perspective of the C programming language, aspects of it apply to many other languages.

Err codemadness.org 70 i 6587
Err codemadness.org 70 i 6588 Err codemadness.org 70 i 6589
Err codemadness.org 70 i 6590 Err codemadness.org 70 i 6591

Update Lenovo X260 BIOS with OpenBSD

Err codemadness.org 70 i 6592 Err codemadness.org 70 i 6593
Err codemadness.org 70 i 6594

My X260 only runs OpenBSD and has no CD driver. But I still need to upgrade its BIOS from time to time. And this is possible using the ISO BIOS image.

Err codemadness.org 70 i 6595 Err codemadness.org 70 i 6596

First off all, you need to download the “BIOS Update (Bootable CD)” from the Lenovo Support Website.

Err codemadness.org 70 i 6597
Err codemadness.org 70 i 6598 Err codemadness.org 70 i 6599
Err codemadness.org 70 i 6600 Err codemadness.org 70 i 6601

News Roundup

Err codemadness.org 70 i 6602 Err codemadness.org 70 i 6603

The problem of Unix iowait and multi-CPU machines

Err codemadness.org 70 i 6604 Err codemadness.org 70 i 6605
Err codemadness.org 70 i 6606

Various Unixes have had a 'iowait' statistic for a long time now (although I can't find a source for where it originated; it's not in 4.x BSD, so it may have come through System V and sar). The traditional and standard definition of iowait is that it's the amount of time the system was idle but had at least one process waiting on disk IO. Rather than count this time as 'idle' (as you would if you had a three-way division of CPU time between user, system, and idle), some Unixes evolved to count this as a new category, 'iowait'.

Err codemadness.org 70 i 6607
Err codemadness.org 70 i 6608 Err codemadness.org 70 i 6609
Err codemadness.org 70 i 6610 Err codemadness.org 70 i 6611

My Latest Self Hosted Hugo Workflow using FreeBSD Jails, Caddy, Restic and More

Err codemadness.org 70 i 6612 Err codemadness.org 70 i 6613
Err codemadness.org 70 i 6614

After hosting with Netlify for a few years, I decided to head back to self hosting. Theres a few reasons for that but the main reasoning was that I had more control over how things worked.

Err codemadness.org 70 i 6615 Err codemadness.org 70 i 6616

In this post, i’ll show you my workflow for deploying my Hugo generated site (www.jaredwolff.com). Instead of using what most people would go for, i’ll be doing all of this using a FreeBSD Jails based server. Plus i’ll show you some tricks i’ve learned over the years on bulk image resizing and more.

Err codemadness.org 70 i 6617 Err codemadness.org 70 i 6618

Let’s get to it.

Err codemadness.org 70 i 6619
Err codemadness.org 70 i 6620 Err codemadness.org 70 i 6621
Err codemadness.org 70 i 6622 Err codemadness.org 70 i 6623

Extending support for the NetBSD-7 branch

Err codemadness.org 70 i 6624 Err codemadness.org 70 i 6625
Err codemadness.org 70 i 6626

Typically, some time after releasing a new NetBSD major version (such as NetBSD 9.0), we will announce the end-of-life of the N-2 branch, in this case NetBSD-7.

Err codemadness.org 70 i 6627 Err codemadness.org 70 i 6628

We've decided to hold off on doing that to ensure our users don't feel rushed to perform a major version update on any remote machines, possibly needing to reach the machine if anything goes wrong.

Err codemadness.org 70 i 6629 Err codemadness.org 70 i 6630

Security fixes will still be made to the NetBSD-7 branch.

Err codemadness.org 70 i 6631 Err codemadness.org 70 i 6632

We hope you're all safe. Stay home.

Err codemadness.org 70 i 6633
Err codemadness.org 70 i 6634 Err codemadness.org 70 i 6635
Err codemadness.org 70 i 6636 Err codemadness.org 70 i 6637

Tale of two hypervisor bugs - Escaping from FreeBSD bhyve

Err codemadness.org 70 i 6638 Err codemadness.org 70 i 6639
Err codemadness.org 70 i 6640

VM escape has become a popular topic of discussion over the last few years. A good amount of research on this topic has been published for various hypervisors like VMware, QEMU, VirtualBox, Xen and Hyper-V. Bhyve is a hypervisor for FreeBSD supporting hardware-assisted virtualization. This paper details the exploitation of two bugs in bhyve - FreeBSD-SA-16:32.bhyve (VGA emulation heap overflow) and CVE-2018-17160 (Firmware Configuration device bss buffer overflow) and some generic techniques which could be used for exploiting other bhyve bugs. Further, the paper also discusses sandbox escapes using PCI device passthrough, and Control-Flow Integrity bypasses in HardenedBSD 12-CURRENT

Err codemadness.org 70 i 6641
Err codemadness.org 70 i 6642 Err codemadness.org 70 i 6643
Err codemadness.org 70 i 6644 Err codemadness.org 70 i 6645

Beastie Bits

Err codemadness.org 70 i 6646 Err codemadness.org 70 i 6647 Err codemadness.org 70 i 6655 Err codemadness.org 70 i 6656
Err codemadness.org 70 i 6657 Err codemadness.org 70 i 6658

Feedback/Questions

Err codemadness.org 70 i 6659 Err codemadness.org 70 i 6660
    Err codemadness.org 70 i 6661
  • Shody - systemd question
  • Err codemadness.org 70 i 6662
  • Ben - GELI and GPT
  • Err codemadness.org 70 i 6663
  • Stig - DIY NAS
  • Err codemadness.org 70 i 6664
Err codemadness.org 70 i 6665 Err codemadness.org 70 i 6666
Err codemadness.org 70 i 6667 Err codemadness.org 70 i 6668
    Err codemadness.org 70 i 6669
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 6670
Err codemadness.org 70 i 6671 Err codemadness.org 70 i 6672
Err codemadness.org 70 i 6673 Err codemadness.org 70 i 6674 ]]> Err codemadness.org 70 i 6678
Err codemadness.org 70 i 6679 https://fireside.fm/player/v2/FYhhasNR+dZhT2Pnp Err codemadness.org 70 i 6680 Err codemadness.org 70 i 6681 ]]> Err codemadness.org 70 i 6682 Err codemadness.org 70 i 6683
Err codemadness.org 70 i 6684 Err codemadness.org 70 i 6685 345: Switchers to BSD Err codemadness.org 70 i 6686 https://www.bsdnow.tv/345 Err codemadness.org 70 i 6687 c46952e4-8ea3-4506-b4eb-54f2870547ee Err codemadness.org 70 i 6688 Thu, 09 Apr 2020 05:00:00 -0700 Err codemadness.org 70 i 6689 Allan Jude Err codemadness.org 70 i 6690 Err codemadness.org 70 i 6691 full Err codemadness.org 70 i 6692 Allan Jude Err codemadness.org 70 i 6693 NetBSD 8.2 is available, NextCloud on OpenBSD, X11 screen locking, NetBSD and RISC OS running parallel, community feedback about switching to BSD, and more. Err codemadness.org 70 i 6694 47:48 Err codemadness.org 70 i 6695 no Err codemadness.org 70 i 6696 Err codemadness.org 70 i 6697 NetBSD 8.2 is available, NextCloud on OpenBSD, X11 screen locking, NetBSD and RISC OS running parallel, community feedback about switching to BSD, and more. Err codemadness.org 70 i 6698 Headlines Err codemadness.org 70 i 6699 NetBSD 8.2 is available! (http://blog.netbsd.org/tnf/entry/netbsd_8_2_is_available) Err codemadness.org 70 i 6700 The third release in the NetBSD-8 is now available. Err codemadness.org 70 i 6701 This release includes all the security fixes in NetBSD-8 up until this point, and other fixes deemed important for stability. Err codemadness.org 70 i 6702 Some highlights include: Err codemadness.org 70 i 6703 x86: fixed regression in booting old CPUs Err codemadness.org 70 i 6704 x86: Hyper-V Gen.2 VM framebuffer support Err codemadness.org 70 i 6705 httpd(8): fixed various security issues Err codemadness.org 70 i 6706 ixg(4): various fixes / improvements Err codemadness.org 70 i 6707 x86 efiboot: add tftp support, fix issues on machines with many memory segments, improve graphics mode logic to work on more machines. Err codemadness.org 70 i 6708 Various kernel memory info leaks fixes Err codemadness.org 70 i 6709 Update expat to 2.2.8 Err codemadness.org 70 i 6710 Fix ryzen USB issues and support xHCI version 3.10. Err codemadness.org 70 i 6711 Accept root device specification as NAME=label. Err codemadness.org 70 i 6712 Add multiboot 2 support to x86 bootloaders. Err codemadness.org 70 i 6713 Fix for CVE-2019-9506: 'Key Negotiation of Bluetooth' attack. Err codemadness.org 70 i 6714 nouveau: limit the supported devices and fix firmware loading. Err codemadness.org 70 i 6715 radeon: fix loading of the TAHITI VCE firmware. Err codemadness.org 70 i 6716 named(8): stop using obsolete dnssec-lookaside. Err codemadness.org 70 i 6717 NextCloud on OpenBSD (https://h3artbl33d.nl/2020-nextcloud.html) Err codemadness.org 70 i 6718 NextCloud and OpenBSD are complementary to one another. NextCloud is an awesome, secure and private alternative for proprietary platforms, whereas OpenBSD forms the most secure and solid foundation to serve it on. Setting it up in the best way isn’t hard, especially using this step by step tutorial. Err codemadness.org 70 i 6719 Preface Err codemadness.org 70 i 6720 Back when this tutorial was initially written, things were different. The OpenBSD port relied on PHP 5.6 and there were no package updates. But the port improved (hats off, Gonzalo!) and package updates were introduced to the -stable branch (hats off, Solene!). Err codemadness.org 70 i 6721 A rewrite of this tutorial was long overdue. Right now, it is written for 6.6 -stable and will be updated once 6.7 is released. If you have any questions or desire some help, feel free to reach out. Err codemadness.org 70 i 6722 News Roundup Err codemadness.org 70 i 6723 X11 screen locking: a secure and modular approach (http://leahneukirchen.org/blog/archive/2020/01/x11-screen-locking-a-secure-and-modular-approach.html) Err codemadness.org 70 i 6724 For years I’ve been using XScreenSaver as a default, but I recently learned about xsecurelock and re-evaluated my screen-saving requirements Err codemadness.org 70 i 6725 NetBSD and RISC OS running parallel (http://www.update.uu.se/~micken/ronetbsd.html) Err codemadness.org 70 i 6726 I have been experimenting with running two systems at the same time on the RK3399 SoC. Err codemadness.org 70 i 6727 It all begun when I figured out how to switch to the A72 cpu for RISC OS. When the switch was done, the A53 cpu just continued to execute code. Err codemadness.org 70 i 6728 OK I thought why not give it something to do! Err codemadness.org 70 i 6729 My first step was to run some small programs. Err codemadness.org 70 i 6730 It worked! Err codemadness.org 70 i 6731 + Thanks to Tom Jones for the pointer to this article Err codemadness.org 70 i 6732 Several weeks ago we covered a story about switching from Linux to BSD. Benedict and JT asked for community feedback as to their thoughts on the matter. Allan was out that week, so this will give him an opportunity to chime in with his thoughts as well. Err codemadness.org 70 i 6733 Jamie - Dumping Linux for BSD (http://dpaste.com/0CH1YXQ#wrap) Err codemadness.org 70 i 6734 Matt - BSD Packaging (http://dpaste.com/2N68YPJ#wrap) Err codemadness.org 70 i 6735 Brad - Linux vs BS (http://dpaste.com/2SF9V38#wrap) Err codemadness.org 70 i 6736 MJ - Linux vs BSD Feedback (http://dpaste.com/0Z2ZT4V#wrap) Err codemadness.org 70 i 6737 Ben - Feedback for JT (http://dpaste.com/0B3M85X) Err codemadness.org 70 i 6738 Henrik - Why you should migrate everything to BSD (http://dpaste.com/3F36EQE#wrap) Err codemadness.org 70 i 6739 Beastie Bits Err codemadness.org 70 i 6740 ssh-copy-id now included (https://www.dragonflydigest.com/2020/04/06/24367.html) Err codemadness.org 70 i 6741 OPNsense 20.1.3 released (https://opnsense.org/opnsense-20-1-3-released/) Err codemadness.org 70 i 6742 A Collection of prebuilt BSD Cloud Images (https://bsd-cloud-image.org/) Err codemadness.org 70 i 6743 Instant terminal sharing (https://tmate.io/) Err codemadness.org 70 i 6744 Feedback/Questions Err codemadness.org 70 i 6745 Ales - Manually verify signature files for pkg package (http://dpaste.com/1EBWTK5#wrap) Err codemadness.org 70 i 6746 Shody - Yubikey (http://dpaste.com/340PM9Q#wrap) Err codemadness.org 70 i 6747 Mike - Site for hashes from old disks (http://dpaste.com/13W9SF0) Err codemadness.org 70 i 6748 Answer: https://docs.google.com/spreadsheets/d/19FmLs0jXxLkxAr0zwgdrXQd1qhbwvNHH6NvolvXKWTM/edit?usp=sharing Err codemadness.org 70 i 6749 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 6750 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 6751 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0345.mp4" type="video/mp4"> Err codemadness.org 70 i 6752 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 6753 </video> Err codemadness.org 70 i 6754 Err codemadness.org 70 i 6755 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, nextcloud, x11, screen locking, risc, risc os, community, feedback Err codemadness.org 70 i 6756 Err codemadness.org 70 i 6757 NetBSD 8.2 is available, NextCloud on OpenBSD, X11 screen locking, NetBSD and RISC OS running parallel, community feedback about switching to BSD, and more.

Err codemadness.org 70 i 6758 Err codemadness.org 70 i 6759

Headlines

Err codemadness.org 70 i 6760 Err codemadness.org 70 i 6761

NetBSD 8.2 is available!

Err codemadness.org 70 i 6762 Err codemadness.org 70 i 6763
Err codemadness.org 70 i 6764

The third release in the NetBSD-8 is now available.

Err codemadness.org 70 i 6765 Err codemadness.org 70 i 6766

This release includes all the security fixes in NetBSD-8 up until this point, and other fixes deemed important for stability.

Err codemadness.org 70 i 6767
Err codemadness.org 70 i 6768 Err codemadness.org 70 i 6769
    Err codemadness.org 70 i 6770
  • Some highlights include: Err codemadness.org 70 i 6771 Err codemadness.org 70 i 6772
      Err codemadness.org 70 i 6773
    • x86: fixed regression in booting old CPUs
    • Err codemadness.org 70 i 6774
    • x86: Hyper-V Gen.2 VM framebuffer support
    • Err codemadness.org 70 i 6775
    • httpd(8): fixed various security issues
    • Err codemadness.org 70 i 6776
    • ixg(4): various fixes / improvements
    • Err codemadness.org 70 i 6777
    • x86 efiboot: add tftp support, fix issues on machines with many memory segments, improve graphics mode logic to work on more machines.
    • Err codemadness.org 70 i 6778
    • Various kernel memory info leaks fixes
    • Err codemadness.org 70 i 6779
    • Update expat to 2.2.8
    • Err codemadness.org 70 i 6780
    • Fix ryzen USB issues and support xHCI version 3.10.
    • Err codemadness.org 70 i 6781
    • Accept root device specification as NAME=label.
    • Err codemadness.org 70 i 6782
    • Add multiboot 2 support to x86 bootloaders.
    • Err codemadness.org 70 i 6783
    • Fix for CVE-2019-9506: 'Key Negotiation of Bluetooth' attack.
    • Err codemadness.org 70 i 6784
    • nouveau: limit the supported devices and fix firmware loading.
    • Err codemadness.org 70 i 6785
    • radeon: fix loading of the TAHITI VCE firmware.
    • Err codemadness.org 70 i 6786
    • named(8): stop using obsolete dnssec-lookaside.
    • Err codemadness.org 70 i 6787
  • Err codemadness.org 70 i 6788
Err codemadness.org 70 i 6789 Err codemadness.org 70 i 6790
Err codemadness.org 70 i 6791 Err codemadness.org 70 i 6792

NextCloud on OpenBSD

Err codemadness.org 70 i 6793 Err codemadness.org 70 i 6794
Err codemadness.org 70 i 6795

NextCloud and OpenBSD are complementary to one another. NextCloud is an awesome, secure and private alternative for proprietary platforms, whereas OpenBSD forms the most secure and solid foundation to serve it on. Setting it up in the best way isn’t hard, especially using this step by step tutorial.

Err codemadness.org 70 i 6796
Err codemadness.org 70 i 6797 Err codemadness.org 70 i 6798
    Err codemadness.org 70 i 6799
  • Preface
  • Err codemadness.org 70 i 6800
Err codemadness.org 70 i 6801 Err codemadness.org 70 i 6802
Err codemadness.org 70 i 6803

Back when this tutorial was initially written, things were different. The OpenBSD port relied on PHP 5.6 and there were no package updates. But the port improved (hats off, Gonzalo!) and package updates were introduced to the -stable branch (hats off, Solene!).

Err codemadness.org 70 i 6804 Err codemadness.org 70 i 6805

A rewrite of this tutorial was long overdue. Right now, it is written for 6.6 -stable and will be updated once 6.7 is released. If you have any questions or desire some help, feel free to reach out.

Err codemadness.org 70 i 6806
Err codemadness.org 70 i 6807 Err codemadness.org 70 i 6808
Err codemadness.org 70 i 6809 Err codemadness.org 70 i 6810

News Roundup

Err codemadness.org 70 i 6811 Err codemadness.org 70 i 6812

X11 screen locking: a secure and modular approach

Err codemadness.org 70 i 6813 Err codemadness.org 70 i 6814
Err codemadness.org 70 i 6815

For years I’ve been using XScreenSaver as a default, but I recently learned about xsecurelock and re-evaluated my screen-saving requirements

Err codemadness.org 70 i 6816
Err codemadness.org 70 i 6817 Err codemadness.org 70 i 6818
Err codemadness.org 70 i 6819 Err codemadness.org 70 i 6820

NetBSD and RISC OS running parallel

Err codemadness.org 70 i 6821 Err codemadness.org 70 i 6822
Err codemadness.org 70 i 6823

I have been experimenting with running two systems at the same time on the RK3399 SoC.
Err codemadness.org 70 i 6824 It all begun when I figured out how to switch to the A72 cpu for RISC OS. When the switch was done, the A53 cpu just continued to execute code.
Err codemadness.org 70 i 6825 OK I thought why not give it something to do!
Err codemadness.org 70 i 6826 My first step was to run some small programs.
Err codemadness.org 70 i 6827 It worked!

Err codemadness.org 70 i 6828 Err codemadness.org 70 i 6829
    Err codemadness.org 70 i 6830
  • Thanks to Tom Jones for the pointer to this article
  • Err codemadness.org 70 i 6831
Err codemadness.org 70 i 6832
Err codemadness.org 70 i 6833 Err codemadness.org 70 i 6834
Err codemadness.org 70 i 6835 Err codemadness.org 70 i 6836

Several weeks ago we covered a story about switching from Linux to BSD. Benedict and JT asked for community feedback as to their thoughts on the matter. Allan was out that week, so this will give him an opportunity to chime in with his thoughts as well.

Err codemadness.org 70 i 6837 Err codemadness.org 70 i 6838 Err codemadness.org 70 i 6846 Err codemadness.org 70 i 6847
Err codemadness.org 70 i 6848 Err codemadness.org 70 i 6849

Beastie Bits

Err codemadness.org 70 i 6850 Err codemadness.org 70 i 6851 Err codemadness.org 70 i 6857 Err codemadness.org 70 i 6858
Err codemadness.org 70 i 6859 Err codemadness.org 70 i 6860

Feedback/Questions

Err codemadness.org 70 i 6861 Err codemadness.org 70 i 6862 Err codemadness.org 70 i 6871 Err codemadness.org 70 i 6872
Err codemadness.org 70 i 6873 Err codemadness.org 70 i 6874
    Err codemadness.org 70 i 6875
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 6876
Err codemadness.org 70 i 6877 Err codemadness.org 70 i 6878
Err codemadness.org 70 i 6879 Err codemadness.org 70 i 6880 ]]> Err codemadness.org 70 i 6884
Err codemadness.org 70 i 6885 Err codemadness.org 70 i 6886 NetBSD 8.2 is available, NextCloud on OpenBSD, X11 screen locking, NetBSD and RISC OS running parallel, community feedback about switching to BSD, and more.

Err codemadness.org 70 i 6887 Err codemadness.org 70 i 6888

Headlines

Err codemadness.org 70 i 6889 Err codemadness.org 70 i 6890

NetBSD 8.2 is available!

Err codemadness.org 70 i 6891 Err codemadness.org 70 i 6892
Err codemadness.org 70 i 6893

The third release in the NetBSD-8 is now available.

Err codemadness.org 70 i 6894 Err codemadness.org 70 i 6895

This release includes all the security fixes in NetBSD-8 up until this point, and other fixes deemed important for stability.

Err codemadness.org 70 i 6896
Err codemadness.org 70 i 6897 Err codemadness.org 70 i 6898
    Err codemadness.org 70 i 6899
  • Some highlights include: Err codemadness.org 70 i 6900 Err codemadness.org 70 i 6901
      Err codemadness.org 70 i 6902
    • x86: fixed regression in booting old CPUs
    • Err codemadness.org 70 i 6903
    • x86: Hyper-V Gen.2 VM framebuffer support
    • Err codemadness.org 70 i 6904
    • httpd(8): fixed various security issues
    • Err codemadness.org 70 i 6905
    • ixg(4): various fixes / improvements
    • Err codemadness.org 70 i 6906
    • x86 efiboot: add tftp support, fix issues on machines with many memory segments, improve graphics mode logic to work on more machines.
    • Err codemadness.org 70 i 6907
    • Various kernel memory info leaks fixes
    • Err codemadness.org 70 i 6908
    • Update expat to 2.2.8
    • Err codemadness.org 70 i 6909
    • Fix ryzen USB issues and support xHCI version 3.10.
    • Err codemadness.org 70 i 6910
    • Accept root device specification as NAME=label.
    • Err codemadness.org 70 i 6911
    • Add multiboot 2 support to x86 bootloaders.
    • Err codemadness.org 70 i 6912
    • Fix for CVE-2019-9506: 'Key Negotiation of Bluetooth' attack.
    • Err codemadness.org 70 i 6913
    • nouveau: limit the supported devices and fix firmware loading.
    • Err codemadness.org 70 i 6914
    • radeon: fix loading of the TAHITI VCE firmware.
    • Err codemadness.org 70 i 6915
    • named(8): stop using obsolete dnssec-lookaside.
    • Err codemadness.org 70 i 6916
  • Err codemadness.org 70 i 6917
Err codemadness.org 70 i 6918 Err codemadness.org 70 i 6919
Err codemadness.org 70 i 6920 Err codemadness.org 70 i 6921

NextCloud on OpenBSD

Err codemadness.org 70 i 6922 Err codemadness.org 70 i 6923
Err codemadness.org 70 i 6924

NextCloud and OpenBSD are complementary to one another. NextCloud is an awesome, secure and private alternative for proprietary platforms, whereas OpenBSD forms the most secure and solid foundation to serve it on. Setting it up in the best way isn’t hard, especially using this step by step tutorial.

Err codemadness.org 70 i 6925
Err codemadness.org 70 i 6926 Err codemadness.org 70 i 6927
    Err codemadness.org 70 i 6928
  • Preface
  • Err codemadness.org 70 i 6929
Err codemadness.org 70 i 6930 Err codemadness.org 70 i 6931
Err codemadness.org 70 i 6932

Back when this tutorial was initially written, things were different. The OpenBSD port relied on PHP 5.6 and there were no package updates. But the port improved (hats off, Gonzalo!) and package updates were introduced to the -stable branch (hats off, Solene!).

Err codemadness.org 70 i 6933 Err codemadness.org 70 i 6934

A rewrite of this tutorial was long overdue. Right now, it is written for 6.6 -stable and will be updated once 6.7 is released. If you have any questions or desire some help, feel free to reach out.

Err codemadness.org 70 i 6935
Err codemadness.org 70 i 6936 Err codemadness.org 70 i 6937
Err codemadness.org 70 i 6938 Err codemadness.org 70 i 6939

News Roundup

Err codemadness.org 70 i 6940 Err codemadness.org 70 i 6941

X11 screen locking: a secure and modular approach

Err codemadness.org 70 i 6942 Err codemadness.org 70 i 6943
Err codemadness.org 70 i 6944

For years I’ve been using XScreenSaver as a default, but I recently learned about xsecurelock and re-evaluated my screen-saving requirements

Err codemadness.org 70 i 6945
Err codemadness.org 70 i 6946 Err codemadness.org 70 i 6947
Err codemadness.org 70 i 6948 Err codemadness.org 70 i 6949

NetBSD and RISC OS running parallel

Err codemadness.org 70 i 6950 Err codemadness.org 70 i 6951
Err codemadness.org 70 i 6952

I have been experimenting with running two systems at the same time on the RK3399 SoC.
Err codemadness.org 70 i 6953 It all begun when I figured out how to switch to the A72 cpu for RISC OS. When the switch was done, the A53 cpu just continued to execute code.
Err codemadness.org 70 i 6954 OK I thought why not give it something to do!
Err codemadness.org 70 i 6955 My first step was to run some small programs.
Err codemadness.org 70 i 6956 It worked!

Err codemadness.org 70 i 6957 Err codemadness.org 70 i 6958
    Err codemadness.org 70 i 6959
  • Thanks to Tom Jones for the pointer to this article
  • Err codemadness.org 70 i 6960
Err codemadness.org 70 i 6961
Err codemadness.org 70 i 6962 Err codemadness.org 70 i 6963
Err codemadness.org 70 i 6964 Err codemadness.org 70 i 6965

Several weeks ago we covered a story about switching from Linux to BSD. Benedict and JT asked for community feedback as to their thoughts on the matter. Allan was out that week, so this will give him an opportunity to chime in with his thoughts as well.

Err codemadness.org 70 i 6966 Err codemadness.org 70 i 6967 Err codemadness.org 70 i 6975 Err codemadness.org 70 i 6976
Err codemadness.org 70 i 6977 Err codemadness.org 70 i 6978

Beastie Bits

Err codemadness.org 70 i 6979 Err codemadness.org 70 i 6980 Err codemadness.org 70 i 6986 Err codemadness.org 70 i 6987
Err codemadness.org 70 i 6988 Err codemadness.org 70 i 6989

Feedback/Questions

Err codemadness.org 70 i 6990 Err codemadness.org 70 i 6991 Err codemadness.org 70 i 7000 Err codemadness.org 70 i 7001
Err codemadness.org 70 i 7002 Err codemadness.org 70 i 7003
    Err codemadness.org 70 i 7004
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 7005
Err codemadness.org 70 i 7006 Err codemadness.org 70 i 7007
Err codemadness.org 70 i 7008 Err codemadness.org 70 i 7009 ]]> Err codemadness.org 70 i 7013
Err codemadness.org 70 i 7014 https://fireside.fm/player/v2/FYhhasNR+BYpPSnzU Err codemadness.org 70 i 7015 Err codemadness.org 70 i 7016 ]]> Err codemadness.org 70 i 7017 Err codemadness.org 70 i 7018
Err codemadness.org 70 i 7019 Err codemadness.org 70 i 7020 344: Grains of Salt Err codemadness.org 70 i 7021 https://www.bsdnow.tv/344 Err codemadness.org 70 i 7022 e17510a7-48e1-4fa3-9500-222f5e4904ee Err codemadness.org 70 i 7023 Thu, 02 Apr 2020 05:00:00 -0700 Err codemadness.org 70 i 7024 Allan Jude Err codemadness.org 70 i 7025 Err codemadness.org 70 i 7026 full Err codemadness.org 70 i 7027 Allan Jude Err codemadness.org 70 i 7028 Shell text processing, data rebalancing on ZFS mirrors, Add Security Headers with OpenBSD relayd, ZFS filesystem hierarchy in ZFS pools, speeding up ZSH, How Unix pipes work, grow ZFS pools over time, the real reason ifconfig on Linux is deprecated, clear your terminal in style, and more. Err codemadness.org 70 i 7029 55:39 Err codemadness.org 70 i 7030 no Err codemadness.org 70 i 7031 Err codemadness.org 70 i 7032 Shell text processing, data rebalancing on ZFS mirrors, Add Security Headers with OpenBSD relayd, ZFS filesystem hierarchy in ZFS pools, speeding up ZSH, How Unix pipes work, grow ZFS pools over time, the real reason ifconfig on Linux is deprecated, clear your terminal in style, and more. Err codemadness.org 70 i 7033 Headlines Err codemadness.org 70 i 7034 Text processing in the shell (https://blog.balthazar-rouberol.com/text-processing-in-the-shell) Err codemadness.org 70 i 7035 This article is part of a self-published book project by Balthazar Rouberol and Etienne Brodu, ex-roommates, friends and colleagues, aiming at empowering the up and coming generation of developers. We currently are hard at work on it! Err codemadness.org 70 i 7036 One of the things that makes the shell an invaluable tool is the amount of available text processing commands, and the ability to easily pipe them into each other to build complex text processing workflows. These commands can make it trivial to perform text and data analysis, convert data between different formats, filter lines, etc. Err codemadness.org 70 i 7037 When working with text data, the philosophy is to break any complex problem you have into a set of smaller ones, and to solve each of them with a specialized tool. Err codemadness.org 70 i 7038 Rebalancing data on ZFS mirrors (https://jrs-s.net/2020/03/10/rebalancing-data-on-zfs-mirrors/) Err codemadness.org 70 i 7039 One of the questions that comes up time and time again about ZFS is “how can I migrate my data to a pool on a few of my disks, then add the rest of the disks afterward?” Err codemadness.org 70 i 7040 If you just want to get the data moved and don’t care about balance, you can just copy the data over, then add the new disks and be done with it. But, it won’t be distributed evenly over the vdevs in your pool. Err codemadness.org 70 i 7041 Don’t fret, though, it’s actually pretty easy to rebalance mirrors. In the following example, we’ll assume you’ve got four disks in a RAID array on an old machine, and two disks available to copy the data to in the short term. Err codemadness.org 70 i 7042 News Roundup Err codemadness.org 70 i 7043 Using OpenBSD relayd to Add Security Headers (https://web.archive.org/web/20191109121500/https://goblackcat.com/posts/using-openbsd-relayd-to-add-security-headers/) Err codemadness.org 70 i 7044 I am a huge fan of OpenBSD’s built-in httpd server as it is simple, secure, and quite performant. With the modern push of the large search providers pushing secure websites, it is now important to add security headers to your website or risk having the search results for your website downgraded. Fortunately, it is very easy to do this when you combine httpd with relayd. While relayd is principally designed for layer 3 redirections and layer 7 relays, it just so happens that it makes a handy tool for adding the recommended security headers. My website automatically redirects users from http to https and this gets achieved using a simple redirection in /etc/httpd.conf So if you have a configuration similar to mine, then you will still want to have httpd listen on the egress interface on port 80. The key thing to change here is to have httpd listen on 127.0.0.1 on port 443. Err codemadness.org 70 i 7045 How we set up our ZFS filesystem hierarchy in our ZFS pools (https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSOurContainerFilesystems) Err codemadness.org 70 i 7046 Our long standing practice here, predating even the first generation of our ZFS fileservers, is that we have two main sorts of filesystems, home directories (homedir filesystems) and what we call 'work directory' (workdir) filesystems. Homedir filesystems are called /h/NNN (for some NNN) and workdir filesystems are called /w/NNN; the NNN is unique across all of the different sorts of filesystems. Users are encouraged to put as much stuff as possible in workdirs and can have as many of them as they want, which mattered a lot more in the days when we used Solaris DiskSuite and had fixed-sized filesystems. Err codemadness.org 70 i 7047 Speeding up ZSH (https://blog.jonlu.ca/posts/speeding-up-zsh) Err codemadness.org 70 i 7048 https://web.archive.org/web/20200315184849/https://blog.jonlu.ca/posts/speeding-up-zsh Err codemadness.org 70 i 7049 I was opening multiple shells for an unrelated project today and noticed how abysmal my shell load speed was. After the initial load it was relatively fast, but the actual shell start up was noticeably slow. I timed it with time and these were the results. Err codemadness.org 70 i 7050 In the future I hope to actually recompile zsh with additional profiling techniques and debug information - keeping an internal timer and having a flag output current time for each command in a tree fashion would make building heat maps really easy. Err codemadness.org 70 i 7051 How do Unix Pipes work (https://www.vegardstikbakke.com/how-do-pipes-work-sigpipe/) Err codemadness.org 70 i 7052 Pipes are cool! We saw how handy they are in a previous blog post. Let’s look at a typical way to use the pipe operator. We have some output, and we want to look at the first lines of the output. Let’s download The Brothers Karamazov by Fyodor Dostoevsky, a fairly long novel. Err codemadness.org 70 i 7053 What we do to enable us to grow our ZFS pools over time (https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSHowWeGrowPools) Err codemadness.org 70 i 7054 In my entry on why ZFS isn't good at growing and reshaping pools, I mentioned that we go to quite some lengths in our ZFS environment to be able to incrementally expand our pools. Today I want to put together all of the pieces of that in one place to discuss what those lengths are. Err codemadness.org 70 i 7055 Our big constraint is that not only do we need to add space to pools over time, but we have a fairly large number of pools and which pools will have space added to them is unpredictable. We need a solution to pool expansion that leaves us with as much flexibility as possible for as long as possible. This pretty much requires being able to expand pools in relatively small increments of space. Err codemadness.org 70 i 7056 Linux maintains bugs: The real reason ifconfig on Linux is deprecated (https://blog.farhan.codes/2018/06/25/linux-maintains-bugs-the-real-reason-ifconfig-on-linux-is-deprecated/) Err codemadness.org 70 i 7057 In my third installment of FreeBSD vs Linux, I will discuss underlying reasons for why Linux moved away from ifconfig(8) to ip(8). Err codemadness.org 70 i 7058 In the past, when people said, “Linux is a kernel, not an operating system”, I knew that was true but I always thought it was a rather pedantic criticism. Of course no one runs just the Linux kernel, you run a distribution of Linux. But after reviewing userland code, I understand the significant drawbacks to developing “just a kernel” in isolation from the rest of the system. Err codemadness.org 70 i 7059 Clear Your Terminal in Style (https://adammusciano.com/2020/03/04/2020-03-04-clear-your-terminal-in-style/) Err codemadness.org 70 i 7060 if you’re someone like me who habitually clears their terminal, sometimes you want a little excitement in your life. Here is a way to do just that. Err codemadness.org 70 i 7061 This post revolves around the idea of giving a command a percent chance of running. While the topic at hand is not serious, this simple technique has potential in your scripts. Err codemadness.org 70 i 7062 Feedback/Questions Err codemadness.org 70 i 7063 Guy - AMD GPU Help (http://dpaste.com/2NEPDHB) Err codemadness.org 70 i 7064 MLShroyer13 - VLANs and Jails (http://dpaste.com/31KBNP4#wrap) Err codemadness.org 70 i 7065 Master One - ZFS Suspend/resume (http://dpaste.com/0DKM8CF#wrap) Err codemadness.org 70 i 7066 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 7067 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 7068 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0344.mp4" type="video/mp4"> Err codemadness.org 70 i 7069 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 7070 </video> Err codemadness.org 70 i 7071 Err codemadness.org 70 i 7072 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, text processing, shell, rebalancing, mirror, mirror rebalancing, zfs, zpool, security, security headers, relayd, hierarchy, speed up, performance, zsh, pipe, pipes, Unix, ifconfig, terminal Err codemadness.org 70 i 7073 Err codemadness.org 70 i 7074 Shell text processing, data rebalancing on ZFS mirrors, Add Security Headers with OpenBSD relayd, ZFS filesystem hierarchy in ZFS pools, speeding up ZSH, How Unix pipes work, grow ZFS pools over time, the real reason ifconfig on Linux is deprecated, clear your terminal in style, and more.

Err codemadness.org 70 i 7075 Err codemadness.org 70 i 7076

Headlines

Err codemadness.org 70 i 7077 Err codemadness.org 70 i 7078

Text processing in the shell

Err codemadness.org 70 i 7079 Err codemadness.org 70 i 7080
Err codemadness.org 70 i 7081

This article is part of a self-published book project by Balthazar Rouberol and Etienne Brodu, ex-roommates, friends and colleagues, aiming at empowering the up and coming generation of developers. We currently are hard at work on it!

Err codemadness.org 70 i 7082 Err codemadness.org 70 i 7083

One of the things that makes the shell an invaluable tool is the amount of available text processing commands, and the ability to easily pipe them into each other to build complex text processing workflows. These commands can make it trivial to perform text and data analysis, convert data between different formats, filter lines, etc.

Err codemadness.org 70 i 7084 Err codemadness.org 70 i 7085

When working with text data, the philosophy is to break any complex problem you have into a set of smaller ones, and to solve each of them with a specialized tool.

Err codemadness.org 70 i 7086
Err codemadness.org 70 i 7087 Err codemadness.org 70 i 7088
Err codemadness.org 70 i 7089 Err codemadness.org 70 i 7090

Rebalancing data on ZFS mirrors

Err codemadness.org 70 i 7091 Err codemadness.org 70 i 7092
Err codemadness.org 70 i 7093

One of the questions that comes up time and time again about ZFS is “how can I migrate my data to a pool on a few of my disks, then add the rest of the disks afterward?”

Err codemadness.org 70 i 7094 Err codemadness.org 70 i 7095

If you just want to get the data moved and don’t care about balance, you can just copy the data over, then add the new disks and be done with it. But, it won’t be distributed evenly over the vdevs in your pool.

Err codemadness.org 70 i 7096 Err codemadness.org 70 i 7097

Don’t fret, though, it’s actually pretty easy to rebalance mirrors. In the following example, we’ll assume you’ve got four disks in a RAID array on an old machine, and two disks available to copy the data to in the short term.

Err codemadness.org 70 i 7098
Err codemadness.org 70 i 7099 Err codemadness.org 70 i 7100
Err codemadness.org 70 i 7101 Err codemadness.org 70 i 7102

News Roundup

Err codemadness.org 70 i 7103 Err codemadness.org 70 i 7104

Using OpenBSD relayd to Add Security Headers

Err codemadness.org 70 i 7105 Err codemadness.org 70 i 7106
Err codemadness.org 70 i 7107

I am a huge fan of OpenBSD’s built-in httpd server as it is simple, secure, and quite performant. With the modern push of the large search providers pushing secure websites, it is now important to add security headers to your website or risk having the search results for your website downgraded. Fortunately, it is very easy to do this when you combine httpd with relayd. While relayd is principally designed for layer 3 redirections and layer 7 relays, it just so happens that it makes a handy tool for adding the recommended security headers. My website automatically redirects users from http to https and this gets achieved using a simple redirection in /etc/httpd.conf So if you have a configuration similar to mine, then you will still want to have httpd listen on the egress interface on port 80. The key thing to change here is to have httpd listen on 127.0.0.1 on port 443.

Err codemadness.org 70 i 7108
Err codemadness.org 70 i 7109 Err codemadness.org 70 i 7110
Err codemadness.org 70 i 7111 Err codemadness.org 70 i 7112

How we set up our ZFS filesystem hierarchy in our ZFS pools

Err codemadness.org 70 i 7113 Err codemadness.org 70 i 7114
Err codemadness.org 70 i 7115

Our long standing practice here, predating even the first generation of our ZFS fileservers, is that we have two main sorts of filesystems, home directories (homedir filesystems) and what we call 'work directory' (workdir) filesystems. Homedir filesystems are called /h/NNN (for some NNN) and workdir filesystems are called /w/NNN; the NNN is unique across all of the different sorts of filesystems. Users are encouraged to put as much stuff as possible in workdirs and can have as many of them as they want, which mattered a lot more in the days when we used Solaris DiskSuite and had fixed-sized filesystems.

Err codemadness.org 70 i 7116
Err codemadness.org 70 i 7117 Err codemadness.org 70 i 7118
Err codemadness.org 70 i 7119 Err codemadness.org 70 i 7120

Speeding up ZSH

Err codemadness.org 70 i 7121 Err codemadness.org 70 i 7122

https://web.archive.org/web/20200315184849/https://blog.jonlu.ca/posts/speeding-up-zsh

Err codemadness.org 70 i 7123 Err codemadness.org 70 i 7124
Err codemadness.org 70 i 7125

I was opening multiple shells for an unrelated project today and noticed how abysmal my shell load speed was. After the initial load it was relatively fast, but the actual shell start up was noticeably slow. I timed it with time and these were the results.

Err codemadness.org 70 i 7126 Err codemadness.org 70 i 7127

In the future I hope to actually recompile zsh with additional profiling techniques and debug information - keeping an internal timer and having a flag output current time for each command in a tree fashion would make building heat maps really easy.

Err codemadness.org 70 i 7128
Err codemadness.org 70 i 7129 Err codemadness.org 70 i 7130
Err codemadness.org 70 i 7131 Err codemadness.org 70 i 7132

How do Unix Pipes work

Err codemadness.org 70 i 7133 Err codemadness.org 70 i 7134
Err codemadness.org 70 i 7135

Pipes are cool! We saw how handy they are in a previous blog post. Let’s look at a typical way to use the pipe operator. We have some output, and we want to look at the first lines of the output. Let’s download The Brothers Karamazov by Fyodor Dostoevsky, a fairly long novel.

Err codemadness.org 70 i 7136
Err codemadness.org 70 i 7137 Err codemadness.org 70 i 7138
Err codemadness.org 70 i 7139 Err codemadness.org 70 i 7140

What we do to enable us to grow our ZFS pools over time

Err codemadness.org 70 i 7141 Err codemadness.org 70 i 7142
Err codemadness.org 70 i 7143

In my entry on why ZFS isn't good at growing and reshaping pools, I mentioned that we go to quite some lengths in our ZFS environment to be able to incrementally expand our pools. Today I want to put together all of the pieces of that in one place to discuss what those lengths are.
Err codemadness.org 70 i 7144 Our big constraint is that not only do we need to add space to pools over time, but we have a fairly large number of pools and which pools will have space added to them is unpredictable. We need a solution to pool expansion that leaves us with as much flexibility as possible for as long as possible. This pretty much requires being able to expand pools in relatively small increments of space.

Err codemadness.org 70 i 7145
Err codemadness.org 70 i 7146 Err codemadness.org 70 i 7147
Err codemadness.org 70 i 7148 Err codemadness.org 70 i 7149

Linux maintains bugs: The real reason ifconfig on Linux is deprecated

Err codemadness.org 70 i 7150 Err codemadness.org 70 i 7151
Err codemadness.org 70 i 7152

In my third installment of FreeBSD vs Linux, I will discuss underlying reasons for why Linux moved away from ifconfig(8) to ip(8).

Err codemadness.org 70 i 7153
Err codemadness.org 70 i 7154 Err codemadness.org 70 i 7155

In the past, when people said, “Linux is a kernel, not an operating system”, I knew that was true but I always thought it was a rather pedantic criticism. Of course no one runs just the Linux kernel, you run a distribution of Linux. But after reviewing userland code, I understand the significant drawbacks to developing “just a kernel” in isolation from the rest of the system.

Err codemadness.org 70 i 7156 Err codemadness.org 70 i 7157
Err codemadness.org 70 i 7158 Err codemadness.org 70 i 7159

Clear Your Terminal in Style

Err codemadness.org 70 i 7160 Err codemadness.org 70 i 7161
Err codemadness.org 70 i 7162

if you’re someone like me who habitually clears their terminal, sometimes you want a little excitement in your life. Here is a way to do just that.

Err codemadness.org 70 i 7163 Err codemadness.org 70 i 7164

This post revolves around the idea of giving a command a percent chance of running. While the topic at hand is not serious, this simple technique has potential in your scripts.

Err codemadness.org 70 i 7165
Err codemadness.org 70 i 7166 Err codemadness.org 70 i 7167
Err codemadness.org 70 i 7168 Err codemadness.org 70 i 7169

Feedback/Questions

Err codemadness.org 70 i 7170 Err codemadness.org 70 i 7171 Err codemadness.org 70 i 7176 Err codemadness.org 70 i 7177
Err codemadness.org 70 i 7178 Err codemadness.org 70 i 7179
    Err codemadness.org 70 i 7180
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 7181
Err codemadness.org 70 i 7182 Err codemadness.org 70 i 7183
Err codemadness.org 70 i 7184 Err codemadness.org 70 i 7185 ]]> Err codemadness.org 70 i 7189
Err codemadness.org 70 i 7190 Err codemadness.org 70 i 7191 Shell text processing, data rebalancing on ZFS mirrors, Add Security Headers with OpenBSD relayd, ZFS filesystem hierarchy in ZFS pools, speeding up ZSH, How Unix pipes work, grow ZFS pools over time, the real reason ifconfig on Linux is deprecated, clear your terminal in style, and more.

Err codemadness.org 70 i 7192 Err codemadness.org 70 i 7193

Headlines

Err codemadness.org 70 i 7194 Err codemadness.org 70 i 7195

Text processing in the shell

Err codemadness.org 70 i 7196 Err codemadness.org 70 i 7197
Err codemadness.org 70 i 7198

This article is part of a self-published book project by Balthazar Rouberol and Etienne Brodu, ex-roommates, friends and colleagues, aiming at empowering the up and coming generation of developers. We currently are hard at work on it!

Err codemadness.org 70 i 7199 Err codemadness.org 70 i 7200

One of the things that makes the shell an invaluable tool is the amount of available text processing commands, and the ability to easily pipe them into each other to build complex text processing workflows. These commands can make it trivial to perform text and data analysis, convert data between different formats, filter lines, etc.

Err codemadness.org 70 i 7201 Err codemadness.org 70 i 7202

When working with text data, the philosophy is to break any complex problem you have into a set of smaller ones, and to solve each of them with a specialized tool.

Err codemadness.org 70 i 7203
Err codemadness.org 70 i 7204 Err codemadness.org 70 i 7205
Err codemadness.org 70 i 7206 Err codemadness.org 70 i 7207

Rebalancing data on ZFS mirrors

Err codemadness.org 70 i 7208 Err codemadness.org 70 i 7209
Err codemadness.org 70 i 7210

One of the questions that comes up time and time again about ZFS is “how can I migrate my data to a pool on a few of my disks, then add the rest of the disks afterward?”

Err codemadness.org 70 i 7211 Err codemadness.org 70 i 7212

If you just want to get the data moved and don’t care about balance, you can just copy the data over, then add the new disks and be done with it. But, it won’t be distributed evenly over the vdevs in your pool.

Err codemadness.org 70 i 7213 Err codemadness.org 70 i 7214

Don’t fret, though, it’s actually pretty easy to rebalance mirrors. In the following example, we’ll assume you’ve got four disks in a RAID array on an old machine, and two disks available to copy the data to in the short term.

Err codemadness.org 70 i 7215
Err codemadness.org 70 i 7216 Err codemadness.org 70 i 7217
Err codemadness.org 70 i 7218 Err codemadness.org 70 i 7219

News Roundup

Err codemadness.org 70 i 7220 Err codemadness.org 70 i 7221

Using OpenBSD relayd to Add Security Headers

Err codemadness.org 70 i 7222 Err codemadness.org 70 i 7223
Err codemadness.org 70 i 7224

I am a huge fan of OpenBSD’s built-in httpd server as it is simple, secure, and quite performant. With the modern push of the large search providers pushing secure websites, it is now important to add security headers to your website or risk having the search results for your website downgraded. Fortunately, it is very easy to do this when you combine httpd with relayd. While relayd is principally designed for layer 3 redirections and layer 7 relays, it just so happens that it makes a handy tool for adding the recommended security headers. My website automatically redirects users from http to https and this gets achieved using a simple redirection in /etc/httpd.conf So if you have a configuration similar to mine, then you will still want to have httpd listen on the egress interface on port 80. The key thing to change here is to have httpd listen on 127.0.0.1 on port 443.

Err codemadness.org 70 i 7225
Err codemadness.org 70 i 7226 Err codemadness.org 70 i 7227
Err codemadness.org 70 i 7228 Err codemadness.org 70 i 7229

How we set up our ZFS filesystem hierarchy in our ZFS pools

Err codemadness.org 70 i 7230 Err codemadness.org 70 i 7231
Err codemadness.org 70 i 7232

Our long standing practice here, predating even the first generation of our ZFS fileservers, is that we have two main sorts of filesystems, home directories (homedir filesystems) and what we call 'work directory' (workdir) filesystems. Homedir filesystems are called /h/NNN (for some NNN) and workdir filesystems are called /w/NNN; the NNN is unique across all of the different sorts of filesystems. Users are encouraged to put as much stuff as possible in workdirs and can have as many of them as they want, which mattered a lot more in the days when we used Solaris DiskSuite and had fixed-sized filesystems.

Err codemadness.org 70 i 7233
Err codemadness.org 70 i 7234 Err codemadness.org 70 i 7235
Err codemadness.org 70 i 7236 Err codemadness.org 70 i 7237

Speeding up ZSH

Err codemadness.org 70 i 7238 Err codemadness.org 70 i 7239

https://web.archive.org/web/20200315184849/https://blog.jonlu.ca/posts/speeding-up-zsh

Err codemadness.org 70 i 7240 Err codemadness.org 70 i 7241
Err codemadness.org 70 i 7242

I was opening multiple shells for an unrelated project today and noticed how abysmal my shell load speed was. After the initial load it was relatively fast, but the actual shell start up was noticeably slow. I timed it with time and these were the results.

Err codemadness.org 70 i 7243 Err codemadness.org 70 i 7244

In the future I hope to actually recompile zsh with additional profiling techniques and debug information - keeping an internal timer and having a flag output current time for each command in a tree fashion would make building heat maps really easy.

Err codemadness.org 70 i 7245
Err codemadness.org 70 i 7246 Err codemadness.org 70 i 7247
Err codemadness.org 70 i 7248 Err codemadness.org 70 i 7249

How do Unix Pipes work

Err codemadness.org 70 i 7250 Err codemadness.org 70 i 7251
Err codemadness.org 70 i 7252

Pipes are cool! We saw how handy they are in a previous blog post. Let’s look at a typical way to use the pipe operator. We have some output, and we want to look at the first lines of the output. Let’s download The Brothers Karamazov by Fyodor Dostoevsky, a fairly long novel.

Err codemadness.org 70 i 7253
Err codemadness.org 70 i 7254 Err codemadness.org 70 i 7255
Err codemadness.org 70 i 7256 Err codemadness.org 70 i 7257

What we do to enable us to grow our ZFS pools over time

Err codemadness.org 70 i 7258 Err codemadness.org 70 i 7259
Err codemadness.org 70 i 7260

In my entry on why ZFS isn't good at growing and reshaping pools, I mentioned that we go to quite some lengths in our ZFS environment to be able to incrementally expand our pools. Today I want to put together all of the pieces of that in one place to discuss what those lengths are.
Err codemadness.org 70 i 7261 Our big constraint is that not only do we need to add space to pools over time, but we have a fairly large number of pools and which pools will have space added to them is unpredictable. We need a solution to pool expansion that leaves us with as much flexibility as possible for as long as possible. This pretty much requires being able to expand pools in relatively small increments of space.

Err codemadness.org 70 i 7262
Err codemadness.org 70 i 7263 Err codemadness.org 70 i 7264
Err codemadness.org 70 i 7265 Err codemadness.org 70 i 7266

Linux maintains bugs: The real reason ifconfig on Linux is deprecated

Err codemadness.org 70 i 7267 Err codemadness.org 70 i 7268
Err codemadness.org 70 i 7269

In my third installment of FreeBSD vs Linux, I will discuss underlying reasons for why Linux moved away from ifconfig(8) to ip(8).

Err codemadness.org 70 i 7270
Err codemadness.org 70 i 7271 Err codemadness.org 70 i 7272

In the past, when people said, “Linux is a kernel, not an operating system”, I knew that was true but I always thought it was a rather pedantic criticism. Of course no one runs just the Linux kernel, you run a distribution of Linux. But after reviewing userland code, I understand the significant drawbacks to developing “just a kernel” in isolation from the rest of the system.

Err codemadness.org 70 i 7273 Err codemadness.org 70 i 7274
Err codemadness.org 70 i 7275 Err codemadness.org 70 i 7276

Clear Your Terminal in Style

Err codemadness.org 70 i 7277 Err codemadness.org 70 i 7278
Err codemadness.org 70 i 7279

if you’re someone like me who habitually clears their terminal, sometimes you want a little excitement in your life. Here is a way to do just that.

Err codemadness.org 70 i 7280 Err codemadness.org 70 i 7281

This post revolves around the idea of giving a command a percent chance of running. While the topic at hand is not serious, this simple technique has potential in your scripts.

Err codemadness.org 70 i 7282
Err codemadness.org 70 i 7283 Err codemadness.org 70 i 7284
Err codemadness.org 70 i 7285 Err codemadness.org 70 i 7286

Feedback/Questions

Err codemadness.org 70 i 7287 Err codemadness.org 70 i 7288 Err codemadness.org 70 i 7293 Err codemadness.org 70 i 7294
Err codemadness.org 70 i 7295 Err codemadness.org 70 i 7296
    Err codemadness.org 70 i 7297
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 7298
Err codemadness.org 70 i 7299 Err codemadness.org 70 i 7300
Err codemadness.org 70 i 7301 Err codemadness.org 70 i 7302 ]]> Err codemadness.org 70 i 7306
Err codemadness.org 70 i 7307 https://fireside.fm/player/v2/FYhhasNR+1BYakFYj Err codemadness.org 70 i 7308 Err codemadness.org 70 i 7309 ]]> Err codemadness.org 70 i 7310 Err codemadness.org 70 i 7311
Err codemadness.org 70 i 7312 Err codemadness.org 70 i 7313 343: FreeBSD, Corona: Fight! Err codemadness.org 70 i 7314 https://www.bsdnow.tv/343 Err codemadness.org 70 i 7315 1752e8c2-3d6e-40dc-8bd9-5c7654660b15 Err codemadness.org 70 i 7316 Thu, 26 Mar 2020 05:00:00 -0700 Err codemadness.org 70 i 7317 Allan Jude Err codemadness.org 70 i 7318 Err codemadness.org 70 i 7319 full Err codemadness.org 70 i 7320 Allan Jude Err codemadness.org 70 i 7321 Fighting the Coronavirus with FreeBSD, Wireguard VPN Howto in OPNsense, NomadBSD 1.3.1 available, fresh GhostBSD 20.02, New FuryBSD XFCE and KDE images, pf-badhost 0.3 released, and more. Err codemadness.org 70 i 7322 39:04 Err codemadness.org 70 i 7323 no Err codemadness.org 70 i 7324 Err codemadness.org 70 i 7325 Fighting the Coronavirus with FreeBSD, Wireguard VPN Howto in OPNsense, NomadBSD 1.3.1 available, fresh GhostBSD 20.02, New FuryBSD XFCE and KDE images, pf-badhost 0.3 released, and more. Err codemadness.org 70 i 7326 Headlines Err codemadness.org 70 i 7327 Fighting the Coronavirus with FreeBSD (https://www.leidinger.net/blog/2020/03/19/fighting-the-coronavirus-with-freebsd-foldinghome/) Err codemadness.org 70 i 7328 Here is a quick HOWTO for those who want to provide some FreeBSD based compute resources to help finding vaccines. Err codemadness.org 70 i 7329 UPDATE 2020-03-22: 0mp@ made a port out of this, it is in “biology/linux-foldingathome”. Err codemadness.org 70 i 7330 Per default it will now pick up some SARS-CoV‑2 (COVID-19) related folding tasks. There are some more config options (e.g. how much of the system resources are used). Please refer to the official Folding@Home site for more information about that. Be also aware that there is a big rise in compute resources donated to Folding@Home, so the pool of available work units may be empty from time to time, but they are working on adding more work units. Be patient. Err codemadness.org 70 i 7331 How to configure the Wireguard VPN in OPNsense (https://homenetworkguy.com/how-to/configure-wireguard-opnsense/) Err codemadness.org 70 i 7332 WireGuard is a modern designed VPN that uses the latest cryptography for stronger security, is very lightweight, and is relatively easy to set up (mostly). I say ‘mostly’ because I found setting up WireGuard in OPNsense to be more difficult than I anticipated. The basic setup of the WireGuard VPN itself was as easy as the authors claim on their website, but I came across a few gotcha's. The gotcha's occur with functionality that is beyond the scope of the WireGuard protocol so I cannot fault them for that. My greatest struggle was configuring WireGuard to function similarly to my OpenVPN server. I want the ability to connect remotely to my home network from my iPhone or iPad, tunnel all traffic through the VPN, have access to certain devices and services on my network, and have the VPN devices use my home's Internet connection. Err codemadness.org 70 i 7333 WireGuard behaves more like a SSH server than a typical VPN server. With WireGuard, devices which have shared their cryptographic keys with each other are able to connect via an encrypted tunnel (like a SSH server configured to use keys instead of passwords). The devices that are connecting to one another are referred to as “peer” devices. When the peer device is an OPNsense router with WireGuard installed, for instance, it can be configured to allow access to various resources on your network. It becomes a tunnel into your network similar to OpenVPN (with the appropriate firewall rules enabled). I will refer to the WireGuard installation on OPNsense as the server rather than a “peer” to make it more clear which device I am configuring unless I am describing the user interface because that is the terminology used interchangeably by WireGuard. Err codemadness.org 70 i 7334 The documentation I found on WireGuard in OPNsense is straightforward and relatively easy to understand, but I had to wrestle with it for a little while to gain a better understanding on how it should be configured. I believe it was partially due to differing end goals – I was trying to achieve something a little different than the authors of other wiki/blog/forum posts. Piecing together various sources of information, I finally ended up with a configuration that met the goals stated above. Err codemadness.org 70 i 7335 News Roundup Err codemadness.org 70 i 7336 NomadBSD 1.3.1 (https://nomadbsd.org/index.html#1.3.1) Err codemadness.org 70 i 7337 NomadBSD 1.3.1 has recently been made available. NomadBSD is a lightweight and portable FreeBSD distribution, designed to run on live on a USB flash drive, allowing you to plug, test, and play on different hardware. They have also started a forum as of yesterday, where you can ask questions and mingle with the NomadBSD community. Notable changes in 1.3.1 are base system upgraded to FreeBSD 12.1-p2. automatic network interface setup improved, image size increased to over 4GB, Thunderbird, Zeroconf, and some more listed below. Err codemadness.org 70 i 7338 GhostBSD 20.02 (https://ghostbsd.org/20.02_release_announcement) Err codemadness.org 70 i 7339 Eric Turgeon, main developer of GhostBSD, has announced version 20.02 of the FreeBSD based operating system. Notable changes are ZFS partition into the custom partition editor installer, allowing you to install alongside with Windows, Linux, or macOS. Other changes are force upgrade all packages on system upgrade, improved update station, and powerd by default for laptop battery performance. Err codemadness.org 70 i 7340 New FuryBSD XFCE and KDE images (https://www.furybsd.org/new-furybsd-12-1-based-images-are-available-for-xfce-and-kde/) Err codemadness.org 70 i 7341 This new release is now based on FreeBSD 12.1 with the latest FreeBSD quarterly packages. This brings XFCE up to 4.14, and KDE up to 5.17. In addition to updates this new ISO mostly addresses community bugs, community enhancement requests, and community pull requests. Due to the overwhelming amount of reports with GitHub hosting all new releases are now being pushed to SourceForge only for the time being. Previous releases will still be kept for archive purposes. Err codemadness.org 70 i 7342 pf-badhost 0.3 Released (https://www.geoghegan.ca/pfbadhost.html) Err codemadness.org 70 i 7343 pf-badhost is a simple, easy to use badhost blocker that uses the power of the pf firewall to block many of the internet's biggest irritants. Annoyances such as SSH and SMTP bruteforcers are largely eliminated. Shodan scans and bots looking for webservers to abuse are stopped dead in their tracks. When used to filter outbound traffic, pf-badhost blocks many seedy, spooky malware containing and/or compromised webhosts. Err codemadness.org 70 i 7344 Beastie Bits Err codemadness.org 70 i 7345 DragonFly i915 drm update (https://www.dragonflydigest.com/2020/03/23/24324.html) Err codemadness.org 70 i 7346 CShell is punk rock (http://blog.snailtext.com/posts/cshell-is-punk-rock.html) Err codemadness.org 70 i 7347 The most surprising Unix programs (https://minnie.tuhs.org/pipermail/tuhs/2020-March/020664.html) Err codemadness.org 70 i 7348 Feedback/Questions Err codemadness.org 70 i 7349 Master One - Torn between OpenBSD and FreeBSD (http://dpaste.com/102HKF5#wrap) Err codemadness.org 70 i 7350 Brad - Follow up to Linus ZFS story (http://dpaste.com/1VXQA2Y#wrap) Err codemadness.org 70 i 7351 Filipe Carvalho - Call for Portuguese BSD User Groups (http://dpaste.com/2H7S8YP) Err codemadness.org 70 i 7352 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 7353 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 7354 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0343.mp4" type="video/mp4"> Err codemadness.org 70 i 7355 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 7356 </video> Err codemadness.org 70 i 7357 Err codemadness.org 70 i 7358 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, corona, corona virus, covid-19, foldingathome, folding at home, wireguard, vpn, opnsense, nomadbsd, ghostbsd, furybsd, xfce, kde, pf, pf-badhost Err codemadness.org 70 i 7359 Err codemadness.org 70 i 7360 Fighting the Coronavirus with FreeBSD, Wireguard VPN Howto in OPNsense, NomadBSD 1.3.1 available, fresh GhostBSD 20.02, New FuryBSD XFCE and KDE images, pf-badhost 0.3 released, and more.

Err codemadness.org 70 i 7361 Err codemadness.org 70 i 7362

Headlines

Err codemadness.org 70 i 7363 Err codemadness.org 70 i 7364

Fighting the Coronavirus with FreeBSD

Err codemadness.org 70 i 7365 Err codemadness.org 70 i 7366
Err codemadness.org 70 i 7367

Here is a quick HOWTO for those who want to provide some FreeBSD based compute resources to help finding vaccines.

Err codemadness.org 70 i 7368 Err codemadness.org 70 i 7369

UPDATE 2020-03-22: 0mp@ made a port out of this, it is in “biology/linux-foldingathome”.

Err codemadness.org 70 i 7370 Err codemadness.org 70 i 7371

Per default it will now pick up some SARS-CoV‑2 (COVID-19) related folding tasks. There are some more config options (e.g. how much of the system resources are used). Please refer to the official Folding@Home site for more information about that. Be also aware that there is a big rise in compute resources donated to Folding@Home, so the pool of available work units may be empty from time to time, but they are working on adding more work units. Be patient.

Err codemadness.org 70 i 7372
Err codemadness.org 70 i 7373 Err codemadness.org 70 i 7374
Err codemadness.org 70 i 7375 Err codemadness.org 70 i 7376

How to configure the Wireguard VPN in OPNsense

Err codemadness.org 70 i 7377 Err codemadness.org 70 i 7378
Err codemadness.org 70 i 7379

WireGuard is a modern designed VPN that uses the latest cryptography for stronger security, is very lightweight, and is relatively easy to set up (mostly). I say ‘mostly’ because I found setting up WireGuard in OPNsense to be more difficult than I anticipated. The basic setup of the WireGuard VPN itself was as easy as the authors claim on their website, but I came across a few gotcha's. The gotcha's occur with functionality that is beyond the scope of the WireGuard protocol so I cannot fault them for that. My greatest struggle was configuring WireGuard to function similarly to my OpenVPN server. I want the ability to connect remotely to my home network from my iPhone or iPad, tunnel all traffic through the VPN, have access to certain devices and services on my network, and have the VPN devices use my home's Internet connection.

Err codemadness.org 70 i 7380 Err codemadness.org 70 i 7381

WireGuard behaves more like a SSH server than a typical VPN server. With WireGuard, devices which have shared their cryptographic keys with each other are able to connect via an encrypted tunnel (like a SSH server configured to use keys instead of passwords). The devices that are connecting to one another are referred to as “peer” devices. When the peer device is an OPNsense router with WireGuard installed, for instance, it can be configured to allow access to various resources on your network. It becomes a tunnel into your network similar to OpenVPN (with the appropriate firewall rules enabled). I will refer to the WireGuard installation on OPNsense as the server rather than a “peer” to make it more clear which device I am configuring unless I am describing the user interface because that is the terminology used interchangeably by WireGuard.

Err codemadness.org 70 i 7382 Err codemadness.org 70 i 7383

The documentation I found on WireGuard in OPNsense is straightforward and relatively easy to understand, but I had to wrestle with it for a little while to gain a better understanding on how it should be configured. I believe it was partially due to differing end goals – I was trying to achieve something a little different than the authors of other wiki/blog/forum posts. Piecing together various sources of information, I finally ended up with a configuration that met the goals stated above.

Err codemadness.org 70 i 7384
Err codemadness.org 70 i 7385 Err codemadness.org 70 i 7386
Err codemadness.org 70 i 7387 Err codemadness.org 70 i 7388

News Roundup

Err codemadness.org 70 i 7389 Err codemadness.org 70 i 7390

NomadBSD 1.3.1

Err codemadness.org 70 i 7391 Err codemadness.org 70 i 7392
Err codemadness.org 70 i 7393

NomadBSD 1.3.1 has recently been made available. NomadBSD is a lightweight and portable FreeBSD distribution, designed to run on live on a USB flash drive, allowing you to plug, test, and play on different hardware. They have also started a forum as of yesterday, where you can ask questions and mingle with the NomadBSD community. Notable changes in 1.3.1 are base system upgraded to FreeBSD 12.1-p2. automatic network interface setup improved, image size increased to over 4GB, Thunderbird, Zeroconf, and some more listed below.

Err codemadness.org 70 i 7394
Err codemadness.org 70 i 7395 Err codemadness.org 70 i 7396
Err codemadness.org 70 i 7397 Err codemadness.org 70 i 7398

GhostBSD 20.02

Err codemadness.org 70 i 7399 Err codemadness.org 70 i 7400
Err codemadness.org 70 i 7401

Eric Turgeon, main developer of GhostBSD, has announced version 20.02 of the FreeBSD based operating system. Notable changes are ZFS partition into the custom partition editor installer, allowing you to install alongside with Windows, Linux, or macOS. Other changes are force upgrade all packages on system upgrade, improved update station, and powerd by default for laptop battery performance.

Err codemadness.org 70 i 7402
Err codemadness.org 70 i 7403 Err codemadness.org 70 i 7404
Err codemadness.org 70 i 7405 Err codemadness.org 70 i 7406

New FuryBSD XFCE and KDE images

Err codemadness.org 70 i 7407 Err codemadness.org 70 i 7408
Err codemadness.org 70 i 7409

This new release is now based on FreeBSD 12.1 with the latest FreeBSD quarterly packages. This brings XFCE up to 4.14, and KDE up to 5.17. In addition to updates this new ISO mostly addresses community bugs, community enhancement requests, and community pull requests. Due to the overwhelming amount of reports with GitHub hosting all new releases are now being pushed to SourceForge only for the time being. Previous releases will still be kept for archive purposes.

Err codemadness.org 70 i 7410
Err codemadness.org 70 i 7411 Err codemadness.org 70 i 7412
Err codemadness.org 70 i 7413 Err codemadness.org 70 i 7414

pf-badhost 0.3 Released

Err codemadness.org 70 i 7415 Err codemadness.org 70 i 7416
Err codemadness.org 70 i 7417

pf-badhost is a simple, easy to use badhost blocker that uses the power of the pf firewall to block many of the internet's biggest irritants. Annoyances such as SSH and SMTP bruteforcers are largely eliminated. Shodan scans and bots looking for webservers to abuse are stopped dead in their tracks. When used to filter outbound traffic, pf-badhost blocks many seedy, spooky malware containing and/or compromised webhosts.

Err codemadness.org 70 i 7418
Err codemadness.org 70 i 7419 Err codemadness.org 70 i 7420
Err codemadness.org 70 i 7421 Err codemadness.org 70 i 7422

Beastie Bits

Err codemadness.org 70 i 7423 Err codemadness.org 70 i 7424 Err codemadness.org 70 i 7429 Err codemadness.org 70 i 7430
Err codemadness.org 70 i 7431 Err codemadness.org 70 i 7432

Feedback/Questions

Err codemadness.org 70 i 7433 Err codemadness.org 70 i 7434 Err codemadness.org 70 i 7439 Err codemadness.org 70 i 7440
Err codemadness.org 70 i 7441 Err codemadness.org 70 i 7442
    Err codemadness.org 70 i 7443
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 7444
Err codemadness.org 70 i 7445 Err codemadness.org 70 i 7446
Err codemadness.org 70 i 7447 Err codemadness.org 70 i 7448 ]]> Err codemadness.org 70 i 7452
Err codemadness.org 70 i 7453 Err codemadness.org 70 i 7454 Fighting the Coronavirus with FreeBSD, Wireguard VPN Howto in OPNsense, NomadBSD 1.3.1 available, fresh GhostBSD 20.02, New FuryBSD XFCE and KDE images, pf-badhost 0.3 released, and more.

Err codemadness.org 70 i 7455 Err codemadness.org 70 i 7456

Headlines

Err codemadness.org 70 i 7457 Err codemadness.org 70 i 7458

Fighting the Coronavirus with FreeBSD

Err codemadness.org 70 i 7459 Err codemadness.org 70 i 7460
Err codemadness.org 70 i 7461

Here is a quick HOWTO for those who want to provide some FreeBSD based compute resources to help finding vaccines.

Err codemadness.org 70 i 7462 Err codemadness.org 70 i 7463

UPDATE 2020-03-22: 0mp@ made a port out of this, it is in “biology/linux-foldingathome”.

Err codemadness.org 70 i 7464 Err codemadness.org 70 i 7465

Per default it will now pick up some SARS-CoV‑2 (COVID-19) related folding tasks. There are some more config options (e.g. how much of the system resources are used). Please refer to the official Folding@Home site for more information about that. Be also aware that there is a big rise in compute resources donated to Folding@Home, so the pool of available work units may be empty from time to time, but they are working on adding more work units. Be patient.

Err codemadness.org 70 i 7466
Err codemadness.org 70 i 7467 Err codemadness.org 70 i 7468
Err codemadness.org 70 i 7469 Err codemadness.org 70 i 7470

How to configure the Wireguard VPN in OPNsense

Err codemadness.org 70 i 7471 Err codemadness.org 70 i 7472
Err codemadness.org 70 i 7473

WireGuard is a modern designed VPN that uses the latest cryptography for stronger security, is very lightweight, and is relatively easy to set up (mostly). I say ‘mostly’ because I found setting up WireGuard in OPNsense to be more difficult than I anticipated. The basic setup of the WireGuard VPN itself was as easy as the authors claim on their website, but I came across a few gotcha's. The gotcha's occur with functionality that is beyond the scope of the WireGuard protocol so I cannot fault them for that. My greatest struggle was configuring WireGuard to function similarly to my OpenVPN server. I want the ability to connect remotely to my home network from my iPhone or iPad, tunnel all traffic through the VPN, have access to certain devices and services on my network, and have the VPN devices use my home's Internet connection.

Err codemadness.org 70 i 7474 Err codemadness.org 70 i 7475

WireGuard behaves more like a SSH server than a typical VPN server. With WireGuard, devices which have shared their cryptographic keys with each other are able to connect via an encrypted tunnel (like a SSH server configured to use keys instead of passwords). The devices that are connecting to one another are referred to as “peer” devices. When the peer device is an OPNsense router with WireGuard installed, for instance, it can be configured to allow access to various resources on your network. It becomes a tunnel into your network similar to OpenVPN (with the appropriate firewall rules enabled). I will refer to the WireGuard installation on OPNsense as the server rather than a “peer” to make it more clear which device I am configuring unless I am describing the user interface because that is the terminology used interchangeably by WireGuard.

Err codemadness.org 70 i 7476 Err codemadness.org 70 i 7477

The documentation I found on WireGuard in OPNsense is straightforward and relatively easy to understand, but I had to wrestle with it for a little while to gain a better understanding on how it should be configured. I believe it was partially due to differing end goals – I was trying to achieve something a little different than the authors of other wiki/blog/forum posts. Piecing together various sources of information, I finally ended up with a configuration that met the goals stated above.

Err codemadness.org 70 i 7478
Err codemadness.org 70 i 7479 Err codemadness.org 70 i 7480
Err codemadness.org 70 i 7481 Err codemadness.org 70 i 7482

News Roundup

Err codemadness.org 70 i 7483 Err codemadness.org 70 i 7484

NomadBSD 1.3.1

Err codemadness.org 70 i 7485 Err codemadness.org 70 i 7486
Err codemadness.org 70 i 7487

NomadBSD 1.3.1 has recently been made available. NomadBSD is a lightweight and portable FreeBSD distribution, designed to run on live on a USB flash drive, allowing you to plug, test, and play on different hardware. They have also started a forum as of yesterday, where you can ask questions and mingle with the NomadBSD community. Notable changes in 1.3.1 are base system upgraded to FreeBSD 12.1-p2. automatic network interface setup improved, image size increased to over 4GB, Thunderbird, Zeroconf, and some more listed below.

Err codemadness.org 70 i 7488
Err codemadness.org 70 i 7489 Err codemadness.org 70 i 7490
Err codemadness.org 70 i 7491 Err codemadness.org 70 i 7492

GhostBSD 20.02

Err codemadness.org 70 i 7493 Err codemadness.org 70 i 7494
Err codemadness.org 70 i 7495

Eric Turgeon, main developer of GhostBSD, has announced version 20.02 of the FreeBSD based operating system. Notable changes are ZFS partition into the custom partition editor installer, allowing you to install alongside with Windows, Linux, or macOS. Other changes are force upgrade all packages on system upgrade, improved update station, and powerd by default for laptop battery performance.

Err codemadness.org 70 i 7496
Err codemadness.org 70 i 7497 Err codemadness.org 70 i 7498
Err codemadness.org 70 i 7499 Err codemadness.org 70 i 7500

New FuryBSD XFCE and KDE images

Err codemadness.org 70 i 7501 Err codemadness.org 70 i 7502
Err codemadness.org 70 i 7503

This new release is now based on FreeBSD 12.1 with the latest FreeBSD quarterly packages. This brings XFCE up to 4.14, and KDE up to 5.17. In addition to updates this new ISO mostly addresses community bugs, community enhancement requests, and community pull requests. Due to the overwhelming amount of reports with GitHub hosting all new releases are now being pushed to SourceForge only for the time being. Previous releases will still be kept for archive purposes.

Err codemadness.org 70 i 7504
Err codemadness.org 70 i 7505 Err codemadness.org 70 i 7506
Err codemadness.org 70 i 7507 Err codemadness.org 70 i 7508

pf-badhost 0.3 Released

Err codemadness.org 70 i 7509 Err codemadness.org 70 i 7510
Err codemadness.org 70 i 7511

pf-badhost is a simple, easy to use badhost blocker that uses the power of the pf firewall to block many of the internet's biggest irritants. Annoyances such as SSH and SMTP bruteforcers are largely eliminated. Shodan scans and bots looking for webservers to abuse are stopped dead in their tracks. When used to filter outbound traffic, pf-badhost blocks many seedy, spooky malware containing and/or compromised webhosts.

Err codemadness.org 70 i 7512
Err codemadness.org 70 i 7513 Err codemadness.org 70 i 7514
Err codemadness.org 70 i 7515 Err codemadness.org 70 i 7516

Beastie Bits

Err codemadness.org 70 i 7517 Err codemadness.org 70 i 7518 Err codemadness.org 70 i 7523 Err codemadness.org 70 i 7524
Err codemadness.org 70 i 7525 Err codemadness.org 70 i 7526

Feedback/Questions

Err codemadness.org 70 i 7527 Err codemadness.org 70 i 7528 Err codemadness.org 70 i 7533 Err codemadness.org 70 i 7534
Err codemadness.org 70 i 7535 Err codemadness.org 70 i 7536
    Err codemadness.org 70 i 7537
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 7538
Err codemadness.org 70 i 7539 Err codemadness.org 70 i 7540
Err codemadness.org 70 i 7541 Err codemadness.org 70 i 7542 ]]> Err codemadness.org 70 i 7546
Err codemadness.org 70 i 7547 https://fireside.fm/player/v2/FYhhasNR+TJd9WRjN Err codemadness.org 70 i 7548 Err codemadness.org 70 i 7549 ]]> Err codemadness.org 70 i 7550 Err codemadness.org 70 i 7551
Err codemadness.org 70 i 7552 Err codemadness.org 70 i 7553 342: Layout the DVA Err codemadness.org 70 i 7554 https://www.bsdnow.tv/342 Err codemadness.org 70 i 7555 d6b1fa91-dcee-41e7-9e1c-b0f240d34ea0 Err codemadness.org 70 i 7556 Thu, 19 Mar 2020 05:00:00 -0700 Err codemadness.org 70 i 7557 Allan Jude Err codemadness.org 70 i 7558 Err codemadness.org 70 i 7559 full Err codemadness.org 70 i 7560 Allan Jude Err codemadness.org 70 i 7561 OpenBSD Full disk encryption with coreboot and tianocore, FreeBSD 12.0 EOL, ZFS DVA layout, OpenBSD’s Go situation, AD updates requires changes in TrueNAS and FreeNAS, full name of FreeBSD’s root account, and more. Err codemadness.org 70 i 7562 47:49 Err codemadness.org 70 i 7563 no Err codemadness.org 70 i 7564 Err codemadness.org 70 i 7565 OpenBSD Full disk encryption with coreboot and tianocore, FreeBSD 12.0 EOL, ZFS DVA layout, OpenBSD’s Go situation, AD updates requires changes in TrueNAS and FreeNAS, full name of FreeBSD’s root account, and more. Err codemadness.org 70 i 7566 Headlines Err codemadness.org 70 i 7567 OpenBSD Full Disk Encryption with CoreBoot and Tianocore Payload (https://functionallyparanoid.com/2020/03/07/openbsd-full-disk-encryption-with-coreboot-and-tianocore-payload/) Err codemadness.org 70 i 7568 It has been a while since I have posted here so I wanted to share something that was surprisingly difficult for me to figure out. I have a Thinkpad T440p that I have flashed with Coreboot 4.11 with some special patches that allow the newer machine to work. When I got the laptop, the default BIOS was UEFI and I installed two operating systems. Err codemadness.org 70 i 7569 Windows 10 with bitlocker full disk encryption on the “normal” drive (I replaced the spinning 2.5″ disk with an SSD) Err codemadness.org 70 i 7570 Ubuntu 19.10 on the m.2 SATA drive that I installed using LUKS full disk encryption Err codemadness.org 70 i 7571 I purchased one of those carriers for the optical bay that allows you to install a third SSD and so I did that with the intent of putting OpenBSD on it. Since my other two operating systems were running full disk encryption, I wanted to do the same on OpenBSD. Err codemadness.org 70 i 7572 See article for rest of story Err codemadness.org 70 i 7573 FreeBSD 12.0 EOL (https://lists.freebsd.org/pipermail/freebsd-announce/2020-February/001930.html) Err codemadness.org 70 i 7574 Dear FreeBSD community, Err codemadness.org 70 i 7575 As of February 29, 2020, FreeBSD 12.0 will reach end-of-life and will no longer be supported by the FreeBSD Security Team. Users of FreeBSD 12.0 are strongly encouraged to upgrade to a newer release as soon as possible. Err codemadness.org 70 i 7576 12.1 Active release (https://www.freebsd.org/releases/12.1R/announce.html) Err codemadness.org 70 i 7577 12.2 Release Schedule (https://www.freebsd.org/releases/12.2R/schedule.html) Err codemadness.org 70 i 7578 News Roundup Err codemadness.org 70 i 7579 Some effects of the ZFS DVA format on data layout and growing ZFS pools (https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSDVAFormatAndGrowth) Err codemadness.org 70 i 7580 One piece of ZFS terminology is DVA and DVAs, which is short for Data Virtual Address. For ZFS, a DVA is the equivalent of a block number in other filesystems; it tells ZFS where to find whatever data we're talking about. The short summary of what fields DVAs have and what they mean is that DVAs tell us how to find blocks by giving us their vdev (by number) and their byte offset into that particular vdev (and then their size). A typical DVA might say that you find what it's talking about on vdev 0 at byte offset 0x53a40ed000. There are some consequences of this that I hadn't really thought about until the other day. Err codemadness.org 70 i 7581 Right away we can see why ZFS has a problem removing a vdev; the vdev's number is burned into every DVA that refers to data on it. If there's no vdev 0 in the pool, ZFS has no idea where to even start looking for data because all addressing is relative to the vdev. ZFS pool shrinking gets around this by adding a translation layer that says where to find the portions of vdev 0 that you care about after it's been removed. Err codemadness.org 70 i 7582 Warning! Active Directory Security Changes Require TrueNAS and FreeNAS Updates. (https://www.ixsystems.com/blog/active-directory-truenas-and-freenas/) Err codemadness.org 70 i 7583 Critical Information for Current FreeNAS and TrueNAS Users Err codemadness.org 70 i 7584 Microsoft is changing the security defaults for Active Directory to eliminate some security vulnerabilities in its protocols. Unfortunately, these new security defaults may disrupt existing FreeNAS/TrueNAS deployments once Windows systems are updated. The Windows updates may appear sometime in March 2020; no official date has been announced as of yet. Err codemadness.org 70 i 7585 FreeNAS and TrueNAS users that utilize Active Directory should update to version 11.3 (or 11.2-U8) to avoid potential disruption of their networks when updating to the latest versions of Windows software after March 1, 2020. Version 11.3 has been released and version 11.2-U8 will be available in early March. Err codemadness.org 70 i 7586 Full name of the FreeBSD Root Account (https://www.geeklan.co.uk/?p=2457) Err codemadness.org 70 i 7587 NetBSD now has a users(7) and groups(7) manual. Looking into what entries existed in the passwd and group files I wondered about root’s full name who we now know as Charlie Root in the BSDs.... Err codemadness.org 70 i 7588 OpenBSD Go Situation (https://utcc.utoronto.ca/~cks/space/blog/programming/GoOpenBSDSituation) Err codemadness.org 70 i 7589 Over in the fediverse, Pete Zaitcev had a reaction to my entry on OpenBSD versus Prometheus for us: Err codemadness.org 70 i 7590 I don't think the situation is usually that bad. Our situation with Prometheus is basically a worst case scenario for Go on OpenBSD, and most people will have much better results, especially if you stick to supported OpenBSD versions. Err codemadness.org 70 i 7591 If you stick to supported OpenBSD versions, upgrading your machines as older OpenBSD releases fall out of support (as the OpenBSD people want you to do), you should not have any problems with your own Go programs. The latest Go release will support the currently supported OpenBSD versions (as long as OpenBSD remains a supported platform for Go), and the Go 1.0 compatibility guarantee means that you can always rebuild your current Go programs with newer versions of Go. You might have problems with compiled binaries that you don't want to rebuild, but my understanding is that this is the case for OpenBSD in general; it doesn't guarantee a stable ABI even for C programs (cf). If you use OpenBSD, you have to be prepared to rebuild your code after OpenBSD upgrades regardless of what language it's written in. Err codemadness.org 70 i 7592 Beastie Bits Err codemadness.org 70 i 7593 Test your TOR (http://lists.nycbug.org/pipermail/talk/2020-February/018174.html) Err codemadness.org 70 i 7594 OPNsense 20.1.1 released (https://opnsense.org/opnsense-20-1-1-released/) Err codemadness.org 70 i 7595 pkg for FreeBSD 1.13 (https://svnweb.freebsd.org/ports?view=revision&revision=525794) Err codemadness.org 70 i 7596 Feedback/Questions Err codemadness.org 70 i 7597 Bostjan writes in about Wireguard (http://dpaste.com/3WKG09D#wrap) Err codemadness.org 70 i 7598 Charlie has a followup to wpa_supplicant as lower class citizen (http://dpaste.com/0DDN99Q#wrap) Err codemadness.org 70 i 7599 Lars writes about LibreSSL as a positive example (http://dpaste.com/1N12HFB#wrap) Err codemadness.org 70 i 7600 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 7601 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 7602 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0342.mp4" type="video/mp4"> Err codemadness.org 70 i 7603 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 7604 </video> Err codemadness.org 70 i 7605 Err codemadness.org 70 i 7606 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, full disk encryption, crypto, coreboot, tianocore, payload, end of life, zfs, openzfs, dva, dva layout, pool, zpool, go, active directory, root account, root Err codemadness.org 70 i 7607 Err codemadness.org 70 i 7608 OpenBSD Full disk encryption with coreboot and tianocore, FreeBSD 12.0 EOL, ZFS DVA layout, OpenBSD’s Go situation, AD updates requires changes in TrueNAS and FreeNAS, full name of FreeBSD’s root account, and more.

Err codemadness.org 70 i 7609 Err codemadness.org 70 i 7610

Headlines

Err codemadness.org 70 i 7611 Err codemadness.org 70 i 7612

OpenBSD Full Disk Encryption with CoreBoot and Tianocore Payload

Err codemadness.org 70 i 7613 Err codemadness.org 70 i 7614
Err codemadness.org 70 i 7615

It has been a while since I have posted here so I wanted to share something that was surprisingly difficult for me to figure out. I have a Thinkpad T440p that I have flashed with Coreboot 4.11 with some special patches that allow the newer machine to work. When I got the laptop, the default BIOS was UEFI and I installed two operating systems.

Err codemadness.org 70 i 7616 Err codemadness.org 70 i 7617

Windows 10 with bitlocker full disk encryption on the “normal” drive (I replaced the spinning 2.5″ disk with an SSD)

Err codemadness.org 70 i 7618 Err codemadness.org 70 i 7619

Ubuntu 19.10 on the m.2 SATA drive that I installed using LUKS full disk encryption

Err codemadness.org 70 i 7620 Err codemadness.org 70 i 7621

I purchased one of those carriers for the optical bay that allows you to install a third SSD and so I did that with the intent of putting OpenBSD on it. Since my other two operating systems were running full disk encryption, I wanted to do the same on OpenBSD.

Err codemadness.org 70 i 7622
Err codemadness.org 70 i 7623 Err codemadness.org 70 i 7624
    Err codemadness.org 70 i 7625
  • See article for rest of story
  • Err codemadness.org 70 i 7626
Err codemadness.org 70 i 7627 Err codemadness.org 70 i 7628
Err codemadness.org 70 i 7629 Err codemadness.org 70 i 7630

FreeBSD 12.0 EOL

Err codemadness.org 70 i 7631 Err codemadness.org 70 i 7632
Err codemadness.org 70 i 7633

Dear FreeBSD community,

Err codemadness.org 70 i 7634 Err codemadness.org 70 i 7635

As of February 29, 2020, FreeBSD 12.0 will reach end-of-life and will no longer be supported by the FreeBSD Security Team. Users of FreeBSD 12.0 are strongly encouraged to upgrade to a newer release as soon as possible.

Err codemadness.org 70 i 7636
Err codemadness.org 70 i 7637 Err codemadness.org 70 i 7638 Err codemadness.org 70 i 7642 Err codemadness.org 70 i 7643
Err codemadness.org 70 i 7644 Err codemadness.org 70 i 7645

News Roundup

Err codemadness.org 70 i 7646 Err codemadness.org 70 i 7647

Some effects of the ZFS DVA format on data layout and growing ZFS pools

Err codemadness.org 70 i 7648 Err codemadness.org 70 i 7649
Err codemadness.org 70 i 7650

One piece of ZFS terminology is DVA and DVAs, which is short for Data Virtual Address. For ZFS, a DVA is the equivalent of a block number in other filesystems; it tells ZFS where to find whatever data we're talking about. The short summary of what fields DVAs have and what they mean is that DVAs tell us how to find blocks by giving us their vdev (by number) and their byte offset into that particular vdev (and then their size). A typical DVA might say that you find what it's talking about on vdev 0 at byte offset 0x53a40ed000. There are some consequences of this that I hadn't really thought about until the other day.

Err codemadness.org 70 i 7651 Err codemadness.org 70 i 7652

Right away we can see why ZFS has a problem removing a vdev; the vdev's number is burned into every DVA that refers to data on it. If there's no vdev 0 in the pool, ZFS has no idea where to even start looking for data because all addressing is relative to the vdev. ZFS pool shrinking gets around this by adding a translation layer that says where to find the portions of vdev 0 that you care about after it's been removed.

Err codemadness.org 70 i 7653
Err codemadness.org 70 i 7654 Err codemadness.org 70 i 7655
Err codemadness.org 70 i 7656 Err codemadness.org 70 i 7657

Warning! Active Directory Security Changes Require TrueNAS and FreeNAS Updates.

Err codemadness.org 70 i 7658 Err codemadness.org 70 i 7659
    Err codemadness.org 70 i 7660
  • Critical Information for Current FreeNAS and TrueNAS Users
  • Err codemadness.org 70 i 7661
Err codemadness.org 70 i 7662 Err codemadness.org 70 i 7663
Err codemadness.org 70 i 7664

Microsoft is changing the security defaults for Active Directory to eliminate some security vulnerabilities in its protocols. Unfortunately, these new security defaults may disrupt existing FreeNAS/TrueNAS deployments once Windows systems are updated. The Windows updates may appear sometime in March 2020; no official date has been announced as of yet.

Err codemadness.org 70 i 7665 Err codemadness.org 70 i 7666

FreeNAS and TrueNAS users that utilize Active Directory should update to version 11.3 (or 11.2-U8) to avoid potential disruption of their networks when updating to the latest versions of Windows software after March 1, 2020. Version 11.3 has been released and version 11.2-U8 will be available in early March.

Err codemadness.org 70 i 7667
Err codemadness.org 70 i 7668 Err codemadness.org 70 i 7669
Err codemadness.org 70 i 7670 Err codemadness.org 70 i 7671

Full name of the FreeBSD Root Account

Err codemadness.org 70 i 7672 Err codemadness.org 70 i 7673
Err codemadness.org 70 i 7674

NetBSD now has a users(7) and groups(7) manual. Looking into what entries existed in the passwd and group files I wondered about root’s full name who we now know as Charlie Root in the BSDs....

Err codemadness.org 70 i 7675
Err codemadness.org 70 i 7676 Err codemadness.org 70 i 7677
Err codemadness.org 70 i 7678 Err codemadness.org 70 i 7679

OpenBSD Go Situation

Err codemadness.org 70 i 7680 Err codemadness.org 70 i 7681
Err codemadness.org 70 i 7682

Over in the fediverse, Pete Zaitcev had a reaction to my entry on OpenBSD versus Prometheus for us:

Err codemadness.org 70 i 7683 Err codemadness.org 70 i 7684

I don't think the situation is usually that bad. Our situation with Prometheus is basically a worst case scenario for Go on OpenBSD, and most people will have much better results, especially if you stick to supported OpenBSD versions.

Err codemadness.org 70 i 7685 Err codemadness.org 70 i 7686

If you stick to supported OpenBSD versions, upgrading your machines as older OpenBSD releases fall out of support (as the OpenBSD people want you to do), you should not have any problems with your own Go programs. The latest Go release will support the currently supported OpenBSD versions (as long as OpenBSD remains a supported platform for Go), and the Go 1.0 compatibility guarantee means that you can always rebuild your current Go programs with newer versions of Go. You might have problems with compiled binaries that you don't want to rebuild, but my understanding is that this is the case for OpenBSD in general; it doesn't guarantee a stable ABI even for C programs (cf). If you use OpenBSD, you have to be prepared to rebuild your code after OpenBSD upgrades regardless of what language it's written in.

Err codemadness.org 70 i 7687
Err codemadness.org 70 i 7688 Err codemadness.org 70 i 7689
Err codemadness.org 70 i 7690 Err codemadness.org 70 i 7691

Beastie Bits

Err codemadness.org 70 i 7692 Err codemadness.org 70 i 7693 Err codemadness.org 70 i 7698 Err codemadness.org 70 i 7699
Err codemadness.org 70 i 7700 Err codemadness.org 70 i 7701

Feedback/Questions

Err codemadness.org 70 i 7702 Err codemadness.org 70 i 7703 Err codemadness.org 70 i 7708 Err codemadness.org 70 i 7709
Err codemadness.org 70 i 7710 Err codemadness.org 70 i 7711
    Err codemadness.org 70 i 7712
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 7713
Err codemadness.org 70 i 7714 Err codemadness.org 70 i 7715
Err codemadness.org 70 i 7716 Err codemadness.org 70 i 7717 ]]> Err codemadness.org 70 i 7721
Err codemadness.org 70 i 7722 Err codemadness.org 70 i 7723 OpenBSD Full disk encryption with coreboot and tianocore, FreeBSD 12.0 EOL, ZFS DVA layout, OpenBSD’s Go situation, AD updates requires changes in TrueNAS and FreeNAS, full name of FreeBSD’s root account, and more.

Err codemadness.org 70 i 7724 Err codemadness.org 70 i 7725

Headlines

Err codemadness.org 70 i 7726 Err codemadness.org 70 i 7727

OpenBSD Full Disk Encryption with CoreBoot and Tianocore Payload

Err codemadness.org 70 i 7728 Err codemadness.org 70 i 7729
Err codemadness.org 70 i 7730

It has been a while since I have posted here so I wanted to share something that was surprisingly difficult for me to figure out. I have a Thinkpad T440p that I have flashed with Coreboot 4.11 with some special patches that allow the newer machine to work. When I got the laptop, the default BIOS was UEFI and I installed two operating systems.

Err codemadness.org 70 i 7731 Err codemadness.org 70 i 7732

Windows 10 with bitlocker full disk encryption on the “normal” drive (I replaced the spinning 2.5″ disk with an SSD)

Err codemadness.org 70 i 7733 Err codemadness.org 70 i 7734

Ubuntu 19.10 on the m.2 SATA drive that I installed using LUKS full disk encryption

Err codemadness.org 70 i 7735 Err codemadness.org 70 i 7736

I purchased one of those carriers for the optical bay that allows you to install a third SSD and so I did that with the intent of putting OpenBSD on it. Since my other two operating systems were running full disk encryption, I wanted to do the same on OpenBSD.

Err codemadness.org 70 i 7737
Err codemadness.org 70 i 7738 Err codemadness.org 70 i 7739
    Err codemadness.org 70 i 7740
  • See article for rest of story
  • Err codemadness.org 70 i 7741
Err codemadness.org 70 i 7742 Err codemadness.org 70 i 7743
Err codemadness.org 70 i 7744 Err codemadness.org 70 i 7745

FreeBSD 12.0 EOL

Err codemadness.org 70 i 7746 Err codemadness.org 70 i 7747
Err codemadness.org 70 i 7748

Dear FreeBSD community,

Err codemadness.org 70 i 7749 Err codemadness.org 70 i 7750

As of February 29, 2020, FreeBSD 12.0 will reach end-of-life and will no longer be supported by the FreeBSD Security Team. Users of FreeBSD 12.0 are strongly encouraged to upgrade to a newer release as soon as possible.

Err codemadness.org 70 i 7751
Err codemadness.org 70 i 7752 Err codemadness.org 70 i 7753 Err codemadness.org 70 i 7757 Err codemadness.org 70 i 7758
Err codemadness.org 70 i 7759 Err codemadness.org 70 i 7760

News Roundup

Err codemadness.org 70 i 7761 Err codemadness.org 70 i 7762

Some effects of the ZFS DVA format on data layout and growing ZFS pools

Err codemadness.org 70 i 7763 Err codemadness.org 70 i 7764
Err codemadness.org 70 i 7765

One piece of ZFS terminology is DVA and DVAs, which is short for Data Virtual Address. For ZFS, a DVA is the equivalent of a block number in other filesystems; it tells ZFS where to find whatever data we're talking about. The short summary of what fields DVAs have and what they mean is that DVAs tell us how to find blocks by giving us their vdev (by number) and their byte offset into that particular vdev (and then their size). A typical DVA might say that you find what it's talking about on vdev 0 at byte offset 0x53a40ed000. There are some consequences of this that I hadn't really thought about until the other day.

Err codemadness.org 70 i 7766 Err codemadness.org 70 i 7767

Right away we can see why ZFS has a problem removing a vdev; the vdev's number is burned into every DVA that refers to data on it. If there's no vdev 0 in the pool, ZFS has no idea where to even start looking for data because all addressing is relative to the vdev. ZFS pool shrinking gets around this by adding a translation layer that says where to find the portions of vdev 0 that you care about after it's been removed.

Err codemadness.org 70 i 7768
Err codemadness.org 70 i 7769 Err codemadness.org 70 i 7770
Err codemadness.org 70 i 7771 Err codemadness.org 70 i 7772

Warning! Active Directory Security Changes Require TrueNAS and FreeNAS Updates.

Err codemadness.org 70 i 7773 Err codemadness.org 70 i 7774
    Err codemadness.org 70 i 7775
  • Critical Information for Current FreeNAS and TrueNAS Users
  • Err codemadness.org 70 i 7776
Err codemadness.org 70 i 7777 Err codemadness.org 70 i 7778
Err codemadness.org 70 i 7779

Microsoft is changing the security defaults for Active Directory to eliminate some security vulnerabilities in its protocols. Unfortunately, these new security defaults may disrupt existing FreeNAS/TrueNAS deployments once Windows systems are updated. The Windows updates may appear sometime in March 2020; no official date has been announced as of yet.

Err codemadness.org 70 i 7780 Err codemadness.org 70 i 7781

FreeNAS and TrueNAS users that utilize Active Directory should update to version 11.3 (or 11.2-U8) to avoid potential disruption of their networks when updating to the latest versions of Windows software after March 1, 2020. Version 11.3 has been released and version 11.2-U8 will be available in early March.

Err codemadness.org 70 i 7782
Err codemadness.org 70 i 7783 Err codemadness.org 70 i 7784
Err codemadness.org 70 i 7785 Err codemadness.org 70 i 7786

Full name of the FreeBSD Root Account

Err codemadness.org 70 i 7787 Err codemadness.org 70 i 7788
Err codemadness.org 70 i 7789

NetBSD now has a users(7) and groups(7) manual. Looking into what entries existed in the passwd and group files I wondered about root’s full name who we now know as Charlie Root in the BSDs....

Err codemadness.org 70 i 7790
Err codemadness.org 70 i 7791 Err codemadness.org 70 i 7792
Err codemadness.org 70 i 7793 Err codemadness.org 70 i 7794

OpenBSD Go Situation

Err codemadness.org 70 i 7795 Err codemadness.org 70 i 7796
Err codemadness.org 70 i 7797

Over in the fediverse, Pete Zaitcev had a reaction to my entry on OpenBSD versus Prometheus for us:

Err codemadness.org 70 i 7798 Err codemadness.org 70 i 7799

I don't think the situation is usually that bad. Our situation with Prometheus is basically a worst case scenario for Go on OpenBSD, and most people will have much better results, especially if you stick to supported OpenBSD versions.

Err codemadness.org 70 i 7800 Err codemadness.org 70 i 7801

If you stick to supported OpenBSD versions, upgrading your machines as older OpenBSD releases fall out of support (as the OpenBSD people want you to do), you should not have any problems with your own Go programs. The latest Go release will support the currently supported OpenBSD versions (as long as OpenBSD remains a supported platform for Go), and the Go 1.0 compatibility guarantee means that you can always rebuild your current Go programs with newer versions of Go. You might have problems with compiled binaries that you don't want to rebuild, but my understanding is that this is the case for OpenBSD in general; it doesn't guarantee a stable ABI even for C programs (cf). If you use OpenBSD, you have to be prepared to rebuild your code after OpenBSD upgrades regardless of what language it's written in.

Err codemadness.org 70 i 7802
Err codemadness.org 70 i 7803 Err codemadness.org 70 i 7804
Err codemadness.org 70 i 7805 Err codemadness.org 70 i 7806

Beastie Bits

Err codemadness.org 70 i 7807 Err codemadness.org 70 i 7808 Err codemadness.org 70 i 7813 Err codemadness.org 70 i 7814
Err codemadness.org 70 i 7815 Err codemadness.org 70 i 7816

Feedback/Questions

Err codemadness.org 70 i 7817 Err codemadness.org 70 i 7818 Err codemadness.org 70 i 7823 Err codemadness.org 70 i 7824
Err codemadness.org 70 i 7825 Err codemadness.org 70 i 7826
    Err codemadness.org 70 i 7827
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 7828
Err codemadness.org 70 i 7829 Err codemadness.org 70 i 7830
Err codemadness.org 70 i 7831 Err codemadness.org 70 i 7832 ]]> Err codemadness.org 70 i 7836
Err codemadness.org 70 i 7837 https://fireside.fm/player/v2/FYhhasNR+VrbVWRDp Err codemadness.org 70 i 7838 Err codemadness.org 70 i 7839 ]]> Err codemadness.org 70 i 7840 Err codemadness.org 70 i 7841
Err codemadness.org 70 i 7842 Err codemadness.org 70 i 7843 341: U-NAS-ification Err codemadness.org 70 i 7844 https://www.bsdnow.tv/341 Err codemadness.org 70 i 7845 28217a13-b389-4ab7-bc99-8a6f5d61e5b5 Err codemadness.org 70 i 7846 Thu, 12 Mar 2020 05:00:00 -0700 Err codemadness.org 70 i 7847 Allan Jude Err codemadness.org 70 i 7848 Err codemadness.org 70 i 7849 full Err codemadness.org 70 i 7850 Allan Jude Err codemadness.org 70 i 7851 FreeBSD on Power, DragonflyBSD 5.8 is here, Unifying FreeNAS/TrueNAS, OpenBSD vs. Prometheus and Go, gcc 4.2.1 removed from FreeBSD base, and more. Err codemadness.org 70 i 7852 51:01 Err codemadness.org 70 i 7853 no Err codemadness.org 70 i 7854 Err codemadness.org 70 i 7855 FreeBSD on Power, DragonflyBSD 5.8 is here, Unifying FreeNAS/TrueNAS, OpenBSD vs. Prometheus and Go, gcc 4.2.1 removed from FreeBSD base, and more. Err codemadness.org 70 i 7856 Headlines Err codemadness.org 70 i 7857 FreeBSD on Power (https://www.freebsdfoundation.org/blog/power-to-the-people-making-freebsd-a-first-class-citizen-on-power/) Err codemadness.org 70 i 7858 The power and promise of all open source software is freedom. Another way to express freedom is choice — choice of platforms, deployment models, stacks, configurations, etc. Err codemadness.org 70 i 7859 The FreeBSD Foundation is dedicated to supporting and promoting the FreeBSD Project and community worldwide. But, what does this mean, exactly, you may wonder. The truth is it means many different things, but in all cases the Foundation acts to expand freedom and choice so that FreeBSD users have the power to serve their varied compute needs. Err codemadness.org 70 i 7860 This blog tells the story of one specific way the Foundation helps a member of the community provide greater hardware choice for all FreeBSD users. Err codemadness.org 70 i 7861 Dragonfly 5.8 (https://www.dragonflybsd.org/release58/) Err codemadness.org 70 i 7862 DragonFly version 5.8 brings a new dsynth utility for building your own binary dports packages, plus significant support work to speed up that build - up to and including the entire collection. Additional progress has been made on GPU and signal support. Err codemadness.org 70 i 7863 The details of all commits between the 5.6 and 5.8 branches are available in the associated commit messages for 5.8.0rc1 and 5.8.0. Also see /usr/src/UPDATING for specific file changes in PAM. Err codemadness.org 70 i 7864 See article for rest of information Err codemadness.org 70 i 7865 2nd HamBUG meeting recap (https://www.hambug.ca/) Err codemadness.org 70 i 7866 The second meeting of the Hamilton BSD Users Group took place last night Err codemadness.org 70 i 7867 The next meeting is scheduled for the 2nd Tuesday of the month, April 14th 2020 Err codemadness.org 70 i 7868 News Roundup Err codemadness.org 70 i 7869 FreeNAS/TrueNAS Brand Unification (https://www.ixsystems.com/blog/freenas-truenas-unification/) Err codemadness.org 70 i 7870 FreeNAS and TrueNAS have been separate-but-related members of the #1 Open Source storage software family since 2012. FreeNAS is the free Open Source version with an expert community and has led the pursuit of innovations like Plugins and VMs. TrueNAS is the enterprise version for organizations of all sizes that need additional uptime and performance, as well as the enterprise-grade support necessary for critical data and applications. Err codemadness.org 70 i 7871 From the beginning at iXsystems, we’ve developed, tested, documented, and released both as separate products, even though the vast majority of code is shared. This was a deliberate technical decision in the beginning but over time became less of a necessity and more of “just how we’ve always done it”. Furthermore, to change it was going to require a serious overhaul to how we build and package both products, among other things, so we continued to kick the can down the road. As we made systematic improvements to development and QA efficiency over the past few years, the redundant release process became almost impossible to ignore as our next major efficiency roadblock to overcome. So, we’ve finally rolled up our sleeves. Err codemadness.org 70 i 7872 With the recent 11.3 release, TrueNAS gained parity with FreeNAS on features like VMs and Plugins, further homogenizing the code. Today, we announce the next phase of evolution for FreeNAS and TrueNAS. Err codemadness.org 70 i 7873 OpenBSD versus Prometheus (and Go). (https://utcc.utoronto.ca/~cks/space/blog/sysadmin/OpenBSDVsPrometheusAndGo) Err codemadness.org 70 i 7874 We have a decent number of OpenBSD machines that do important things (and that have sometimes experienced problems like running out of disk space), and we have a Prometheus based metrics and monitoring system. The Prometheus host agent has enough support for OpenBSD to be able to report on critical metrics, including things like local disk space. Despite all of this, after some investigation I've determined that it's not really sensible to even try to deploy the host agent on our OpenBSD machines. This is due to a combination of factors that have at their root OpenBSD's lack of ABI stability Err codemadness.org 70 i 7875 FreeBSD removed gcc from base (https://svnweb.freebsd.org/base?view=revision&revision=358454) Err codemadness.org 70 i 7876 As described in Warner's email message[1] to the FreeBSD-arch mailing list we have reached GCC 4.2.1's retirement date. At this time all supported architectures either use in-tree Clang, or rely on external toolchain (i.e., a contemporary GCC version from ports). Err codemadness.org 70 i 7877 GCC 4.2.1 was released July 18, 2007 and was imported into FreeBSD later that year, in r171825. GCC has served us well, but version 4.2.1 is obsolete and not used by default on any architecture in FreeBSD. It does not support modern C and does not support arm64 or RISC-V. Err codemadness.org 70 i 7878 Beastie Bits Err codemadness.org 70 i 7879 New Archive location for Dragonfly 4.x (https://www.dragonflydigest.com/2020/03/10/24276.html) Err codemadness.org 70 i 7880 A dead simple git cheat sheet (https://hub.iwebthings.com/a-dead-simple-git-cheatsheet/) Err codemadness.org 70 i 7881 Xorg 1.20.7 on HardenedBSD Comes with IE/RELRO+BIND_NOW/CFI/SafeStack Protections (https://twitter.com/lattera/status/1233412881569415168) Err codemadness.org 70 i 7882 Feedback/Questions Err codemadness.org 70 i 7883 Niclas writes in Regarding the Lenovo E595 user (episode 340) (http://dpaste.com/2YJ6PFW#wrap) Err codemadness.org 70 i 7884 Lyubomir writes about GELI and ZFS (http://dpaste.com/1S0DGT3#wrap) Err codemadness.org 70 i 7885 Peter writes in about scaling FreeBSD jails (http://dpaste.com/2FSZQ8V#wrap) Err codemadness.org 70 i 7886 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 7887 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 7888 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0341.mp4" type="video/mp4"> Err codemadness.org 70 i 7889 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 7890 </video> Err codemadness.org 70 i 7891 Err codemadness.org 70 i 7892 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, Power, Power architecture, freenas, truenas, prometheus, go, gcc Err codemadness.org 70 i 7893 Err codemadness.org 70 i 7894 FreeBSD on Power, DragonflyBSD 5.8 is here, Unifying FreeNAS/TrueNAS, OpenBSD vs. Prometheus and Go, gcc 4.2.1 removed from FreeBSD base, and more.

Err codemadness.org 70 i 7895 Err codemadness.org 70 i 7896

Headlines

Err codemadness.org 70 i 7897 Err codemadness.org 70 i 7898

FreeBSD on Power

Err codemadness.org 70 i 7899 Err codemadness.org 70 i 7900
Err codemadness.org 70 i 7901

The power and promise of all open source software is freedom. Another way to express freedom is choice — choice of platforms, deployment models, stacks, configurations, etc.

Err codemadness.org 70 i 7902 Err codemadness.org 70 i 7903

The FreeBSD Foundation is dedicated to supporting and promoting the FreeBSD Project and community worldwide. But, what does this mean, exactly, you may wonder. The truth is it means many different things, but in all cases the Foundation acts to expand freedom and choice so that FreeBSD users have the power to serve their varied compute needs.

Err codemadness.org 70 i 7904 Err codemadness.org 70 i 7905

This blog tells the story of one specific way the Foundation helps a member of the community provide greater hardware choice for all FreeBSD users.

Err codemadness.org 70 i 7906
Err codemadness.org 70 i 7907 Err codemadness.org 70 i 7908
Err codemadness.org 70 i 7909 Err codemadness.org 70 i 7910

Dragonfly 5.8

Err codemadness.org 70 i 7911 Err codemadness.org 70 i 7912
Err codemadness.org 70 i 7913

DragonFly version 5.8 brings a new dsynth utility for building your own binary dports packages, plus significant support work to speed up that build - up to and including the entire collection. Additional progress has been made on GPU and signal support.

Err codemadness.org 70 i 7914 Err codemadness.org 70 i 7915

The details of all commits between the 5.6 and 5.8 branches are available in the associated commit messages for 5.8.0rc1 and 5.8.0. Also see /usr/src/UPDATING for specific file changes in PAM.

Err codemadness.org 70 i 7916
Err codemadness.org 70 i 7917 Err codemadness.org 70 i 7918
    Err codemadness.org 70 i 7919
  • See article for rest of information
  • Err codemadness.org 70 i 7920
Err codemadness.org 70 i 7921 Err codemadness.org 70 i 7922
Err codemadness.org 70 i 7923 Err codemadness.org 70 i 7924

2nd HamBUG meeting recap

Err codemadness.org 70 i 7925 Err codemadness.org 70 i 7926
    Err codemadness.org 70 i 7927
  • The second meeting of the Hamilton BSD Users Group took place last night
  • Err codemadness.org 70 i 7928
  • The next meeting is scheduled for the 2nd Tuesday of the month, April 14th 2020
  • Err codemadness.org 70 i 7929
Err codemadness.org 70 i 7930 Err codemadness.org 70 i 7931
Err codemadness.org 70 i 7932 Err codemadness.org 70 i 7933

News Roundup

Err codemadness.org 70 i 7934 Err codemadness.org 70 i 7935

FreeNAS/TrueNAS Brand Unification

Err codemadness.org 70 i 7936 Err codemadness.org 70 i 7937
Err codemadness.org 70 i 7938

FreeNAS and TrueNAS have been separate-but-related members of the #1 Open Source storage software family since 2012. FreeNAS is the free Open Source version with an expert community and has led the pursuit of innovations like Plugins and VMs. TrueNAS is the enterprise version for organizations of all sizes that need additional uptime and performance, as well as the enterprise-grade support necessary for critical data and applications.

Err codemadness.org 70 i 7939 Err codemadness.org 70 i 7940

From the beginning at iXsystems, we’ve developed, tested, documented, and released both as separate products, even though the vast majority of code is shared. This was a deliberate technical decision in the beginning but over time became less of a necessity and more of “just how we’ve always done it”. Furthermore, to change it was going to require a serious overhaul to how we build and package both products, among other things, so we continued to kick the can down the road. As we made systematic improvements to development and QA efficiency over the past few years, the redundant release process became almost impossible to ignore as our next major efficiency roadblock to overcome. So, we’ve finally rolled up our sleeves.

Err codemadness.org 70 i 7941 Err codemadness.org 70 i 7942

With the recent 11.3 release, TrueNAS gained parity with FreeNAS on features like VMs and Plugins, further homogenizing the code. Today, we announce the next phase of evolution for FreeNAS and TrueNAS.

Err codemadness.org 70 i 7943
Err codemadness.org 70 i 7944 Err codemadness.org 70 i 7945
Err codemadness.org 70 i 7946 Err codemadness.org 70 i 7947

OpenBSD versus Prometheus (and Go).

Err codemadness.org 70 i 7948 Err codemadness.org 70 i 7949
Err codemadness.org 70 i 7950

We have a decent number of OpenBSD machines that do important things (and that have sometimes experienced problems like running out of disk space), and we have a Prometheus based metrics and monitoring system. The Prometheus host agent has enough support for OpenBSD to be able to report on critical metrics, including things like local disk space. Despite all of this, after some investigation I've determined that it's not really sensible to even try to deploy the host agent on our OpenBSD machines. This is due to a combination of factors that have at their root OpenBSD's lack of ABI stability

Err codemadness.org 70 i 7951
Err codemadness.org 70 i 7952 Err codemadness.org 70 i 7953
Err codemadness.org 70 i 7954 Err codemadness.org 70 i 7955

FreeBSD removed gcc from base

Err codemadness.org 70 i 7956 Err codemadness.org 70 i 7957
Err codemadness.org 70 i 7958

As described in Warner's email message[1] to the FreeBSD-arch mailing list we have reached GCC 4.2.1's retirement date. At this time all supported architectures either use in-tree Clang, or rely on external toolchain (i.e., a contemporary GCC version from ports).

Err codemadness.org 70 i 7959 Err codemadness.org 70 i 7960

GCC 4.2.1 was released July 18, 2007 and was imported into FreeBSD later that year, in r171825. GCC has served us well, but version 4.2.1 is obsolete and not used by default on any architecture in FreeBSD. It does not support modern C and does not support arm64 or RISC-V.

Err codemadness.org 70 i 7961
Err codemadness.org 70 i 7962 Err codemadness.org 70 i 7963
Err codemadness.org 70 i 7964 Err codemadness.org 70 i 7965

Beastie Bits

Err codemadness.org 70 i 7966 Err codemadness.org 70 i 7967 Err codemadness.org 70 i 7972 Err codemadness.org 70 i 7973
Err codemadness.org 70 i 7974 Err codemadness.org 70 i 7975

Feedback/Questions

Err codemadness.org 70 i 7976 Err codemadness.org 70 i 7977 Err codemadness.org 70 i 7982 Err codemadness.org 70 i 7983
Err codemadness.org 70 i 7984 Err codemadness.org 70 i 7985
    Err codemadness.org 70 i 7986
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 7987
Err codemadness.org 70 i 7988 Err codemadness.org 70 i 7989
Err codemadness.org 70 i 7990 Err codemadness.org 70 i 7991 ]]> Err codemadness.org 70 i 7995
Err codemadness.org 70 i 7996 Err codemadness.org 70 i 7997 FreeBSD on Power, DragonflyBSD 5.8 is here, Unifying FreeNAS/TrueNAS, OpenBSD vs. Prometheus and Go, gcc 4.2.1 removed from FreeBSD base, and more.

Err codemadness.org 70 i 7998 Err codemadness.org 70 i 7999

Headlines

Err codemadness.org 70 i 8000 Err codemadness.org 70 i 8001

FreeBSD on Power

Err codemadness.org 70 i 8002 Err codemadness.org 70 i 8003
Err codemadness.org 70 i 8004

The power and promise of all open source software is freedom. Another way to express freedom is choice — choice of platforms, deployment models, stacks, configurations, etc.

Err codemadness.org 70 i 8005 Err codemadness.org 70 i 8006

The FreeBSD Foundation is dedicated to supporting and promoting the FreeBSD Project and community worldwide. But, what does this mean, exactly, you may wonder. The truth is it means many different things, but in all cases the Foundation acts to expand freedom and choice so that FreeBSD users have the power to serve their varied compute needs.

Err codemadness.org 70 i 8007 Err codemadness.org 70 i 8008

This blog tells the story of one specific way the Foundation helps a member of the community provide greater hardware choice for all FreeBSD users.

Err codemadness.org 70 i 8009
Err codemadness.org 70 i 8010 Err codemadness.org 70 i 8011
Err codemadness.org 70 i 8012 Err codemadness.org 70 i 8013

Dragonfly 5.8

Err codemadness.org 70 i 8014 Err codemadness.org 70 i 8015
Err codemadness.org 70 i 8016

DragonFly version 5.8 brings a new dsynth utility for building your own binary dports packages, plus significant support work to speed up that build - up to and including the entire collection. Additional progress has been made on GPU and signal support.

Err codemadness.org 70 i 8017 Err codemadness.org 70 i 8018

The details of all commits between the 5.6 and 5.8 branches are available in the associated commit messages for 5.8.0rc1 and 5.8.0. Also see /usr/src/UPDATING for specific file changes in PAM.

Err codemadness.org 70 i 8019
Err codemadness.org 70 i 8020 Err codemadness.org 70 i 8021
    Err codemadness.org 70 i 8022
  • See article for rest of information
  • Err codemadness.org 70 i 8023
Err codemadness.org 70 i 8024 Err codemadness.org 70 i 8025
Err codemadness.org 70 i 8026 Err codemadness.org 70 i 8027

2nd HamBUG meeting recap

Err codemadness.org 70 i 8028 Err codemadness.org 70 i 8029
    Err codemadness.org 70 i 8030
  • The second meeting of the Hamilton BSD Users Group took place last night
  • Err codemadness.org 70 i 8031
  • The next meeting is scheduled for the 2nd Tuesday of the month, April 14th 2020
  • Err codemadness.org 70 i 8032
Err codemadness.org 70 i 8033 Err codemadness.org 70 i 8034
Err codemadness.org 70 i 8035 Err codemadness.org 70 i 8036

News Roundup

Err codemadness.org 70 i 8037 Err codemadness.org 70 i 8038

FreeNAS/TrueNAS Brand Unification

Err codemadness.org 70 i 8039 Err codemadness.org 70 i 8040
Err codemadness.org 70 i 8041

FreeNAS and TrueNAS have been separate-but-related members of the #1 Open Source storage software family since 2012. FreeNAS is the free Open Source version with an expert community and has led the pursuit of innovations like Plugins and VMs. TrueNAS is the enterprise version for organizations of all sizes that need additional uptime and performance, as well as the enterprise-grade support necessary for critical data and applications.

Err codemadness.org 70 i 8042 Err codemadness.org 70 i 8043

From the beginning at iXsystems, we’ve developed, tested, documented, and released both as separate products, even though the vast majority of code is shared. This was a deliberate technical decision in the beginning but over time became less of a necessity and more of “just how we’ve always done it”. Furthermore, to change it was going to require a serious overhaul to how we build and package both products, among other things, so we continued to kick the can down the road. As we made systematic improvements to development and QA efficiency over the past few years, the redundant release process became almost impossible to ignore as our next major efficiency roadblock to overcome. So, we’ve finally rolled up our sleeves.

Err codemadness.org 70 i 8044 Err codemadness.org 70 i 8045

With the recent 11.3 release, TrueNAS gained parity with FreeNAS on features like VMs and Plugins, further homogenizing the code. Today, we announce the next phase of evolution for FreeNAS and TrueNAS.

Err codemadness.org 70 i 8046
Err codemadness.org 70 i 8047 Err codemadness.org 70 i 8048
Err codemadness.org 70 i 8049 Err codemadness.org 70 i 8050

OpenBSD versus Prometheus (and Go).

Err codemadness.org 70 i 8051 Err codemadness.org 70 i 8052
Err codemadness.org 70 i 8053

We have a decent number of OpenBSD machines that do important things (and that have sometimes experienced problems like running out of disk space), and we have a Prometheus based metrics and monitoring system. The Prometheus host agent has enough support for OpenBSD to be able to report on critical metrics, including things like local disk space. Despite all of this, after some investigation I've determined that it's not really sensible to even try to deploy the host agent on our OpenBSD machines. This is due to a combination of factors that have at their root OpenBSD's lack of ABI stability

Err codemadness.org 70 i 8054
Err codemadness.org 70 i 8055 Err codemadness.org 70 i 8056
Err codemadness.org 70 i 8057 Err codemadness.org 70 i 8058

FreeBSD removed gcc from base

Err codemadness.org 70 i 8059 Err codemadness.org 70 i 8060
Err codemadness.org 70 i 8061

As described in Warner's email message[1] to the FreeBSD-arch mailing list we have reached GCC 4.2.1's retirement date. At this time all supported architectures either use in-tree Clang, or rely on external toolchain (i.e., a contemporary GCC version from ports).

Err codemadness.org 70 i 8062 Err codemadness.org 70 i 8063

GCC 4.2.1 was released July 18, 2007 and was imported into FreeBSD later that year, in r171825. GCC has served us well, but version 4.2.1 is obsolete and not used by default on any architecture in FreeBSD. It does not support modern C and does not support arm64 or RISC-V.

Err codemadness.org 70 i 8064
Err codemadness.org 70 i 8065 Err codemadness.org 70 i 8066
Err codemadness.org 70 i 8067 Err codemadness.org 70 i 8068

Beastie Bits

Err codemadness.org 70 i 8069 Err codemadness.org 70 i 8070 Err codemadness.org 70 i 8075 Err codemadness.org 70 i 8076
Err codemadness.org 70 i 8077 Err codemadness.org 70 i 8078

Feedback/Questions

Err codemadness.org 70 i 8079 Err codemadness.org 70 i 8080 Err codemadness.org 70 i 8085 Err codemadness.org 70 i 8086
Err codemadness.org 70 i 8087 Err codemadness.org 70 i 8088
    Err codemadness.org 70 i 8089
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 8090
Err codemadness.org 70 i 8091 Err codemadness.org 70 i 8092
Err codemadness.org 70 i 8093 Err codemadness.org 70 i 8094 ]]> Err codemadness.org 70 i 8098
Err codemadness.org 70 i 8099 https://fireside.fm/player/v2/FYhhasNR+qoecV7uh Err codemadness.org 70 i 8100 Err codemadness.org 70 i 8101 ]]> Err codemadness.org 70 i 8102 Err codemadness.org 70 i 8103
Err codemadness.org 70 i 8104 Err codemadness.org 70 i 8105 340: Check My Sums Err codemadness.org 70 i 8106 https://www.bsdnow.tv/340 Err codemadness.org 70 i 8107 7e026ede-d713-4ed5-993a-9a39cab4aab1 Err codemadness.org 70 i 8108 Thu, 05 Mar 2020 05:00:00 -0800 Err codemadness.org 70 i 8109 Allan Jude Err codemadness.org 70 i 8110 Err codemadness.org 70 i 8111 full Err codemadness.org 70 i 8112 Allan Jude Err codemadness.org 70 i 8113 Why ZFS is doing filesystem checksumming right, better TMPFS throughput performance on DragonFlyBSD, reshaping pools with ZFS, PKGSRC on Manjaro aarch64 Pinebook-pro, central log host with syslog-ng on FreeBSD, and more. Err codemadness.org 70 i 8114 50:39 Err codemadness.org 70 i 8115 no Err codemadness.org 70 i 8116 Err codemadness.org 70 i 8117 Why ZFS is doing filesystem checksumming right, better TMPFS throughput performance on DragonFlyBSD, reshaping pools with ZFS, PKGSRC on Manjaro aarch64 Pinebook-pro, central log host with syslog-ng on FreeBSD, and more. Err codemadness.org 70 i 8118 Headlines Err codemadness.org 70 i 8119 Checksumming in filesystems, and why ZFS is doing it right (https://oshogbo.vexillium.org/blog/73/) Err codemadness.org 70 i 8120 One of the best aspects of ZFS is its reliability. This can be accomplished using a few features like copy-on-write approach and checksumming. Today we will look at how ZFS does checksumming and why it does it the proper way. Most of the file systems don’t provide any integrity checking and fail in several scenarios: Err codemadness.org 70 i 8121 Data bit flips - when the data that we wanted to store are bit flipped by the hard drives, or cables, and the wrong data is stored on the hard drive. Err codemadness.org 70 i 8122 Misdirected writes - when the CPU/cable/hard drive will bit flip a block to which the data should be written. Err codemadness.org 70 i 8123 Misdirected read - when we miss reading the block when a bit flip occurred. Err codemadness.org 70 i 8124 Phantom writes - when the write operation never made it to the disk. For example, a disk or kernel may have some bug that it will return success even if the hard drive never made the write. This problem can also occur when data is kept only in the hard drive cache. Err codemadness.org 70 i 8125 Checksumming may help us detect errors in a few of those situations. Err codemadness.org 70 i 8126 DragonFlyBSD Improves Its TMPFS Implementation For Better Throughput Performance (https://www.phoronix.com/scan.php?page=news_item&px=DragonFlyBSD-TMPFS-Throughput) Err codemadness.org 70 i 8127 It's been a while since last having any new magical optimizations to talk about by DragonFlyBSD lead developer Matthew Dillon, but on Wednesday he landed some significant temporary file-system "TMPFS" optimizations for better throughput including with swap. Err codemadness.org 70 i 8128 Of several interesting commits merged tonight, the improved write clustering is a big one. In particular, "Reduces low-memory tmpfs paging I/O overheads by 4x and generally increases paging throughput to SSD-based swap by 2x-4x. Tmpfs is now able to issue a lot more 64KB I/Os when under memory pressure." Err codemadness.org 70 i 8129 https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/4eb0bb82efc8ef32c4357cf812891c08d38d8860 Err codemadness.org 70 i 8130 There's also a new tunable in the VM space as well as part of his commits on Wednesday night. This follows a lot of recent work on dsynth, improved page-out daemon pipelining, and other routine work. Err codemadness.org 70 i 8131 https://gitweb.dragonflybsd.org/dragonfly.git/commit/bc47dbc18bf832e4badb41f2fd79159479a7d351 Err codemadness.org 70 i 8132 This work is building up towards the eventual DragonFlyBSD 5.8 while those wanting to try the latest improvements right away can find their daily snapshots. Err codemadness.org 70 i 8133 News Roundup Err codemadness.org 70 i 8134 Why ZFS is not good at growing and reshaping pools (or shrinking them) (https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSWhyNoRealReshaping) Err codemadness.org 70 i 8135 recently read Mark McBride's Five Years of Btrfs (via), which has a significant discussion of why McBride chose Btrfs over ZFS that boils down to ZFS not being very good at evolving your pool structure. You might doubt this judgment from a Btrfs user, so let me say as both a fan of ZFS and a long term user of it that this is unfortunately quite true; ZFS is not a good choice if you want to modify your pool disk layout significantly over time. ZFS works best if the only change in your pools that you do is replacing drives with bigger drives. In our ZFS environment we go to quite some lengths to be able to expand pools incrementally over time, and while this works it both leaves us with unbalanced pools and means that we're basically forced to use mirroring instead of RAIDZ. Err codemadness.org 70 i 8136 (An unbalanced pool is one where some vdevs and disks have much more data than others. This is less of an issue for us now that we're using SSDs instead of HDs.) Err codemadness.org 70 i 8137 Using PKGSRC on Manjaro Linux aarch64 Pinebook-pro (https://astr0baby.wordpress.com/2020/02/09/using-pkgsrc-on-manjaro-linux-aarch64-pinebook-pro/) Err codemadness.org 70 i 8138 I wanted to see how pkgsrc works on aarch64 Linux Manjaro since it is a very mature framework that is very portable and supported by many architectures – pkgsrc (package source) is a package management system for Unix-like operating systems. It was forked from the FreeBSD ports collection in 1997 as the primary package management system for NetBSD. Err codemadness.org 70 i 8139 One might question why use pkgsrc on Arch based Manjaro, since the pacman package repository is very good on its own. I see alternative pkgsrc as a good automated build framework that offers a way to produce independent build environment /usr/pkg that does not interfere with the current Linux distribution in any way (all libraries are statically built) Err codemadness.org 70 i 8140 I have used the latest Manjaro for Pinebookpro and standard recommended tools as mentioned here https://wiki.netbsd.org/pkgsrc/howtousepkgsrcon_linux/ Err codemadness.org 70 i 8141 A Central Log Host with syslog-ng on FreeBSD Err codemadness.org 70 i 8142 Part 1 (https://blog.socruel.nu/freebsd/a-central-log-host-with-syslog-ng-on-freebsd.html) Err codemadness.org 70 i 8143 syslog-ng is the Swiss army knife of log management. You can collect logs from any source, process them in real time and deliver them to wide range of destinations. It allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure. This is why syslog-ng is the perfect solution for the central log host of my (mainly) FreeBSD based infrastructure. Err codemadness.org 70 i 8144 Part 2 (https://blog.socruel.nu/freebsd/check-logs-of-syslog-ng-log-host-on-freebsd.html) Err codemadness.org 70 i 8145 This blog post continues where the blog post A central log host with syslog-ng on FreeBSD left off. Open source solutions to check syslog log messages exist, such as Logcheck or Logwatch. Although these are not too difficult to implement and maintain, I still found these to much. So I went for my own home grown solution to check the syslog messages of the SoCruel.NU central log host. Err codemadness.org 70 i 8146 Beastie Bits Err codemadness.org 70 i 8147 FreeBSD at Linux Conf 2020 session videos now online (https://mirror.linux.org.au/pub/linux.conf.au/2020/room_9/Tuesday/) Err codemadness.org 70 i 8148 Unlock your laptop with your phone (https://vermaden.wordpress.com/2020/01/09/freebsd-desktop-part-20-configuration-unlock-your-laptop-with-phone/) Err codemadness.org 70 i 8149 Managing a database of vulnerabilities for a package system: the pkgsrc study (https://www.netbsd.org/gallery/presentations/leot/itasec20/pkgsrc-security.pdf) Err codemadness.org 70 i 8150 Hamilton BSD User group will meet again on March 10th](http://studybsd.com/) Err codemadness.org 70 i 8151 CharmBUG Meeting: March 24th 7pm in Severn, MD (https://www.meetup.com/en-AU/CharmBUG/events/268251508/) Err codemadness.org 70 i 8152 *** Err codemadness.org 70 i 8153 Feedback/Questions Err codemadness.org 70 i 8154 Andrew - ZFS feature Flags (http://dpaste.com/2YM23C0#wrap) Err codemadness.org 70 i 8155 Sam - TwinCat BSD (http://dpaste.com/0FCZV6R) Err codemadness.org 70 i 8156 Dacian - Freebsd + amdgpu + Lenovo E595 (http://dpaste.com/1R7F1JN#wrap) Err codemadness.org 70 i 8157 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 8158 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 8159 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0340.mp4" type="video/mp4"> Err codemadness.org 70 i 8160 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 8161 </video> Err codemadness.org 70 i 8162 Err codemadness.org 70 i 8163 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, checksumming, filesystem, checksum, zfs, tmpfs, throughput, performance, throughput performance, zpool, pool reshaping, resizing, shrinking, pinebook, pkgsrc, aarch64, log host, central logging, syslog, syslog-ng Err codemadness.org 70 i 8164 Err codemadness.org 70 i 8165 Why ZFS is doing filesystem checksumming right, better TMPFS throughput performance on DragonFlyBSD, reshaping pools with ZFS, PKGSRC on Manjaro aarch64 Pinebook-pro, central log host with syslog-ng on FreeBSD, and more.

Err codemadness.org 70 i 8166 Err codemadness.org 70 i 8167

Headlines

Err codemadness.org 70 i 8168 Err codemadness.org 70 i 8169

Checksumming in filesystems, and why ZFS is doing it right

Err codemadness.org 70 i 8170 Err codemadness.org 70 i 8171
Err codemadness.org 70 i 8172

One of the best aspects of ZFS is its reliability. This can be accomplished using a few features like copy-on-write approach and checksumming. Today we will look at how ZFS does checksumming and why it does it the proper way. Most of the file systems don’t provide any integrity checking and fail in several scenarios:

Err codemadness.org 70 i 8173
Err codemadness.org 70 i 8174 Err codemadness.org 70 i 8175
    Err codemadness.org 70 i 8176
  • Data bit flips - when the data that we wanted to store are bit flipped by the hard drives, or cables, and the wrong data is stored on the hard drive.
  • Err codemadness.org 70 i 8177
  • Misdirected writes - when the CPU/cable/hard drive will bit flip a block to which the data should be written.
  • Err codemadness.org 70 i 8178
  • Misdirected read - when we miss reading the block when a bit flip occurred.
  • Err codemadness.org 70 i 8179
  • Phantom writes - when the write operation never made it to the disk. For example, a disk or kernel may have some bug that it will return success even if the hard drive never made the write. This problem can also occur when data is kept only in the hard drive cache.
  • Err codemadness.org 70 i 8180
Err codemadness.org 70 i 8181 Err codemadness.org 70 i 8182
Err codemadness.org 70 i 8183

Checksumming may help us detect errors in a few of those situations.

Err codemadness.org 70 i 8184
Err codemadness.org 70 i 8185 Err codemadness.org 70 i 8186
Err codemadness.org 70 i 8187 Err codemadness.org 70 i 8188

DragonFlyBSD Improves Its TMPFS Implementation For Better Throughput Performance

Err codemadness.org 70 i 8189 Err codemadness.org 70 i 8190
Err codemadness.org 70 i 8191

It's been a while since last having any new magical optimizations to talk about by DragonFlyBSD lead developer Matthew Dillon, but on Wednesday he landed some significant temporary file-system "TMPFS" optimizations for better throughput including with swap.

Err codemadness.org 70 i 8192 Err codemadness.org 70 i 8193

Of several interesting commits merged tonight, the improved write clustering is a big one. In particular, "Reduces low-memory tmpfs paging I/O overheads by 4x and generally increases paging throughput to SSD-based swap by 2x-4x. Tmpfs is now able to issue a lot more 64KB I/Os when under memory pressure."

Err codemadness.org 70 i 8194
Err codemadness.org 70 i 8195 Err codemadness.org 70 i 8196 Err codemadness.org 70 i 8199 Err codemadness.org 70 i 8200
Err codemadness.org 70 i 8201

There's also a new tunable in the VM space as well as part of his commits on Wednesday night. This follows a lot of recent work on dsynth, improved page-out daemon pipelining, and other routine work.

Err codemadness.org 70 i 8202
Err codemadness.org 70 i 8203 Err codemadness.org 70 i 8204 Err codemadness.org 70 i 8207 Err codemadness.org 70 i 8208
Err codemadness.org 70 i 8209

This work is building up towards the eventual DragonFlyBSD 5.8 while those wanting to try the latest improvements right away can find their daily snapshots.

Err codemadness.org 70 i 8210
Err codemadness.org 70 i 8211 Err codemadness.org 70 i 8212
Err codemadness.org 70 i 8213 Err codemadness.org 70 i 8214

News Roundup

Err codemadness.org 70 i 8215 Err codemadness.org 70 i 8216

Why ZFS is not good at growing and reshaping pools (or shrinking them)

Err codemadness.org 70 i 8217 Err codemadness.org 70 i 8218
Err codemadness.org 70 i 8219

recently read Mark McBride's Five Years of Btrfs (via), which has a significant discussion of why McBride chose Btrfs over ZFS that boils down to ZFS not being very good at evolving your pool structure. You might doubt this judgment from a Btrfs user, so let me say as both a fan of ZFS and a long term user of it that this is unfortunately quite true; ZFS is not a good choice if you want to modify your pool disk layout significantly over time. ZFS works best if the only change in your pools that you do is replacing drives with bigger drives. In our ZFS environment we go to quite some lengths to be able to expand pools incrementally over time, and while this works it both leaves us with unbalanced pools and means that we're basically forced to use mirroring instead of RAIDZ.

Err codemadness.org 70 i 8220 Err codemadness.org 70 i 8221

(An unbalanced pool is one where some vdevs and disks have much more data than others. This is less of an issue for us now that we're using SSDs instead of HDs.)

Err codemadness.org 70 i 8222
Err codemadness.org 70 i 8223 Err codemadness.org 70 i 8224
Err codemadness.org 70 i 8225 Err codemadness.org 70 i 8226

Using PKGSRC on Manjaro Linux aarch64 Pinebook-pro

Err codemadness.org 70 i 8227 Err codemadness.org 70 i 8228
Err codemadness.org 70 i 8229

I wanted to see how pkgsrc works on aarch64 Linux Manjaro since it is a very mature framework that is very portable and supported by many architectures – pkgsrc (package source) is a package management system for Unix-like operating systems. It was forked from the FreeBSD ports collection in 1997 as the primary package management system for NetBSD.

Err codemadness.org 70 i 8230 Err codemadness.org 70 i 8231

One might question why use pkgsrc on Arch based Manjaro, since the pacman package repository is very good on its own. I see alternative pkgsrc as a good automated build framework that offers a way to produce independent build environment /usr/pkg that does not interfere with the current Linux distribution in any way (all libraries are statically built)

Err codemadness.org 70 i 8232 Err codemadness.org 70 i 8233

I have used the latest Manjaro for Pinebookpro and standard recommended tools as mentioned here https://wiki.netbsd.org/pkgsrc/how_to_use_pkgsrc_on_linux/

Err codemadness.org 70 i 8234
Err codemadness.org 70 i 8235 Err codemadness.org 70 i 8236
Err codemadness.org 70 i 8237 Err codemadness.org 70 i 8238

A Central Log Host with syslog-ng on FreeBSD

Err codemadness.org 70 i 8239 Err codemadness.org 70 i 8240
    Err codemadness.org 70 i 8241
  • Part 1
  • Err codemadness.org 70 i 8242
Err codemadness.org 70 i 8243 Err codemadness.org 70 i 8244
Err codemadness.org 70 i 8245

syslog-ng is the Swiss army knife of log management. You can collect logs from any source, process them in real time and deliver them to wide range of destinations. It allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure. This is why syslog-ng is the perfect solution for the central log host of my (mainly) FreeBSD based infrastructure.

Err codemadness.org 70 i 8246
Err codemadness.org 70 i 8247 Err codemadness.org 70 i 8248
    Err codemadness.org 70 i 8249
  • Part 2
  • Err codemadness.org 70 i 8250
Err codemadness.org 70 i 8251 Err codemadness.org 70 i 8252
Err codemadness.org 70 i 8253

This blog post continues where the blog post A central log host with syslog-ng on FreeBSD left off. Open source solutions to check syslog log messages exist, such as Logcheck or Logwatch. Although these are not too difficult to implement and maintain, I still found these to much. So I went for my own home grown solution to check the syslog messages of the SoCruel.NU central log host.

Err codemadness.org 70 i 8254
Err codemadness.org 70 i 8255 Err codemadness.org 70 i 8256
Err codemadness.org 70 i 8257 Err codemadness.org 70 i 8258

Beastie Bits

Err codemadness.org 70 i 8259 Err codemadness.org 70 i 8260 Err codemadness.org 70 i 8268 Err codemadness.org 70 i 8269

Feedback/Questions

Err codemadness.org 70 i 8270 Err codemadness.org 70 i 8271 Err codemadness.org 70 i 8276 Err codemadness.org 70 i 8277
Err codemadness.org 70 i 8278 Err codemadness.org 70 i 8279
    Err codemadness.org 70 i 8280
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 8281
Err codemadness.org 70 i 8282 Err codemadness.org 70 i 8283
Err codemadness.org 70 i 8284 Err codemadness.org 70 i 8285 ]]> Err codemadness.org 70 i 8289
Err codemadness.org 70 i 8290 Err codemadness.org 70 i 8291 Why ZFS is doing filesystem checksumming right, better TMPFS throughput performance on DragonFlyBSD, reshaping pools with ZFS, PKGSRC on Manjaro aarch64 Pinebook-pro, central log host with syslog-ng on FreeBSD, and more.

Err codemadness.org 70 i 8292 Err codemadness.org 70 i 8293

Headlines

Err codemadness.org 70 i 8294 Err codemadness.org 70 i 8295

Checksumming in filesystems, and why ZFS is doing it right

Err codemadness.org 70 i 8296 Err codemadness.org 70 i 8297
Err codemadness.org 70 i 8298

One of the best aspects of ZFS is its reliability. This can be accomplished using a few features like copy-on-write approach and checksumming. Today we will look at how ZFS does checksumming and why it does it the proper way. Most of the file systems don’t provide any integrity checking and fail in several scenarios:

Err codemadness.org 70 i 8299
Err codemadness.org 70 i 8300 Err codemadness.org 70 i 8301
    Err codemadness.org 70 i 8302
  • Data bit flips - when the data that we wanted to store are bit flipped by the hard drives, or cables, and the wrong data is stored on the hard drive.
  • Err codemadness.org 70 i 8303
  • Misdirected writes - when the CPU/cable/hard drive will bit flip a block to which the data should be written.
  • Err codemadness.org 70 i 8304
  • Misdirected read - when we miss reading the block when a bit flip occurred.
  • Err codemadness.org 70 i 8305
  • Phantom writes - when the write operation never made it to the disk. For example, a disk or kernel may have some bug that it will return success even if the hard drive never made the write. This problem can also occur when data is kept only in the hard drive cache.
  • Err codemadness.org 70 i 8306
Err codemadness.org 70 i 8307 Err codemadness.org 70 i 8308
Err codemadness.org 70 i 8309

Checksumming may help us detect errors in a few of those situations.

Err codemadness.org 70 i 8310
Err codemadness.org 70 i 8311 Err codemadness.org 70 i 8312
Err codemadness.org 70 i 8313 Err codemadness.org 70 i 8314

DragonFlyBSD Improves Its TMPFS Implementation For Better Throughput Performance

Err codemadness.org 70 i 8315 Err codemadness.org 70 i 8316
Err codemadness.org 70 i 8317

It's been a while since last having any new magical optimizations to talk about by DragonFlyBSD lead developer Matthew Dillon, but on Wednesday he landed some significant temporary file-system "TMPFS" optimizations for better throughput including with swap.

Err codemadness.org 70 i 8318 Err codemadness.org 70 i 8319

Of several interesting commits merged tonight, the improved write clustering is a big one. In particular, "Reduces low-memory tmpfs paging I/O overheads by 4x and generally increases paging throughput to SSD-based swap by 2x-4x. Tmpfs is now able to issue a lot more 64KB I/Os when under memory pressure."

Err codemadness.org 70 i 8320
Err codemadness.org 70 i 8321 Err codemadness.org 70 i 8322 Err codemadness.org 70 i 8325 Err codemadness.org 70 i 8326
Err codemadness.org 70 i 8327

There's also a new tunable in the VM space as well as part of his commits on Wednesday night. This follows a lot of recent work on dsynth, improved page-out daemon pipelining, and other routine work.

Err codemadness.org 70 i 8328
Err codemadness.org 70 i 8329 Err codemadness.org 70 i 8330 Err codemadness.org 70 i 8333 Err codemadness.org 70 i 8334
Err codemadness.org 70 i 8335

This work is building up towards the eventual DragonFlyBSD 5.8 while those wanting to try the latest improvements right away can find their daily snapshots.

Err codemadness.org 70 i 8336
Err codemadness.org 70 i 8337 Err codemadness.org 70 i 8338
Err codemadness.org 70 i 8339 Err codemadness.org 70 i 8340

News Roundup

Err codemadness.org 70 i 8341 Err codemadness.org 70 i 8342

Why ZFS is not good at growing and reshaping pools (or shrinking them)

Err codemadness.org 70 i 8343 Err codemadness.org 70 i 8344
Err codemadness.org 70 i 8345

recently read Mark McBride's Five Years of Btrfs (via), which has a significant discussion of why McBride chose Btrfs over ZFS that boils down to ZFS not being very good at evolving your pool structure. You might doubt this judgment from a Btrfs user, so let me say as both a fan of ZFS and a long term user of it that this is unfortunately quite true; ZFS is not a good choice if you want to modify your pool disk layout significantly over time. ZFS works best if the only change in your pools that you do is replacing drives with bigger drives. In our ZFS environment we go to quite some lengths to be able to expand pools incrementally over time, and while this works it both leaves us with unbalanced pools and means that we're basically forced to use mirroring instead of RAIDZ.

Err codemadness.org 70 i 8346 Err codemadness.org 70 i 8347

(An unbalanced pool is one where some vdevs and disks have much more data than others. This is less of an issue for us now that we're using SSDs instead of HDs.)

Err codemadness.org 70 i 8348
Err codemadness.org 70 i 8349 Err codemadness.org 70 i 8350
Err codemadness.org 70 i 8351 Err codemadness.org 70 i 8352

Using PKGSRC on Manjaro Linux aarch64 Pinebook-pro

Err codemadness.org 70 i 8353 Err codemadness.org 70 i 8354
Err codemadness.org 70 i 8355

I wanted to see how pkgsrc works on aarch64 Linux Manjaro since it is a very mature framework that is very portable and supported by many architectures – pkgsrc (package source) is a package management system for Unix-like operating systems. It was forked from the FreeBSD ports collection in 1997 as the primary package management system for NetBSD.

Err codemadness.org 70 i 8356 Err codemadness.org 70 i 8357

One might question why use pkgsrc on Arch based Manjaro, since the pacman package repository is very good on its own. I see alternative pkgsrc as a good automated build framework that offers a way to produce independent build environment /usr/pkg that does not interfere with the current Linux distribution in any way (all libraries are statically built)

Err codemadness.org 70 i 8358 Err codemadness.org 70 i 8359

I have used the latest Manjaro for Pinebookpro and standard recommended tools as mentioned here https://wiki.netbsd.org/pkgsrc/how_to_use_pkgsrc_on_linux/

Err codemadness.org 70 i 8360
Err codemadness.org 70 i 8361 Err codemadness.org 70 i 8362
Err codemadness.org 70 i 8363 Err codemadness.org 70 i 8364

A Central Log Host with syslog-ng on FreeBSD

Err codemadness.org 70 i 8365 Err codemadness.org 70 i 8366
    Err codemadness.org 70 i 8367
  • Part 1
  • Err codemadness.org 70 i 8368
Err codemadness.org 70 i 8369 Err codemadness.org 70 i 8370
Err codemadness.org 70 i 8371

syslog-ng is the Swiss army knife of log management. You can collect logs from any source, process them in real time and deliver them to wide range of destinations. It allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure. This is why syslog-ng is the perfect solution for the central log host of my (mainly) FreeBSD based infrastructure.

Err codemadness.org 70 i 8372
Err codemadness.org 70 i 8373 Err codemadness.org 70 i 8374
    Err codemadness.org 70 i 8375
  • Part 2
  • Err codemadness.org 70 i 8376
Err codemadness.org 70 i 8377 Err codemadness.org 70 i 8378
Err codemadness.org 70 i 8379

This blog post continues where the blog post A central log host with syslog-ng on FreeBSD left off. Open source solutions to check syslog log messages exist, such as Logcheck or Logwatch. Although these are not too difficult to implement and maintain, I still found these to much. So I went for my own home grown solution to check the syslog messages of the SoCruel.NU central log host.

Err codemadness.org 70 i 8380
Err codemadness.org 70 i 8381 Err codemadness.org 70 i 8382
Err codemadness.org 70 i 8383 Err codemadness.org 70 i 8384

Beastie Bits

Err codemadness.org 70 i 8385 Err codemadness.org 70 i 8386 Err codemadness.org 70 i 8394 Err codemadness.org 70 i 8395

Feedback/Questions

Err codemadness.org 70 i 8396 Err codemadness.org 70 i 8397 Err codemadness.org 70 i 8402 Err codemadness.org 70 i 8403
Err codemadness.org 70 i 8404 Err codemadness.org 70 i 8405
    Err codemadness.org 70 i 8406
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 8407
Err codemadness.org 70 i 8408 Err codemadness.org 70 i 8409
Err codemadness.org 70 i 8410 Err codemadness.org 70 i 8411 ]]> Err codemadness.org 70 i 8415
Err codemadness.org 70 i 8416 https://fireside.fm/player/v2/FYhhasNR+z93p82E8 Err codemadness.org 70 i 8417 Err codemadness.org 70 i 8418 ]]> Err codemadness.org 70 i 8419 Err codemadness.org 70 i 8420
Err codemadness.org 70 i 8421 Err codemadness.org 70 i 8422 339: BSD Fundraising Err codemadness.org 70 i 8423 https://www.bsdnow.tv/339 Err codemadness.org 70 i 8424 581b71e1-6a98-41d7-b8d8-477eaaaba8db Err codemadness.org 70 i 8425 Thu, 27 Feb 2020 05:00:00 -0800 Err codemadness.org 70 i 8426 Allan Jude Err codemadness.org 70 i 8427 Err codemadness.org 70 i 8428 full Err codemadness.org 70 i 8429 Allan Jude Err codemadness.org 70 i 8430 Meet FuryBSD, NetBSD 9.0 has been released, OpenBSD Foundation 2019 campaign wrapup, a retrospective on OmniOS ZFS-based NFS fileservers, NetBSD Fundraising 2020 goal, OpenSSH 8.2 released, and more. Err codemadness.org 70 i 8431 53:56 Err codemadness.org 70 i 8432 no Err codemadness.org 70 i 8433 Err codemadness.org 70 i 8434 Meet FuryBSD, NetBSD 9.0 has been released, OpenBSD Foundation 2019 campaign wrapup, a retrospective on OmniOS ZFS-based NFS fileservers, NetBSD Fundraising 2020 goal, OpenSSH 8.2 released, and more.## Headlines Err codemadness.org 70 i 8435 Meet FuryBSD: A New Desktop BSD Distribution (https://itsfoss.com/furybsd/) Err codemadness.org 70 i 8436 At its heart, FuryBSD is a very simple beast. According to the site, “FuryBSD is a back to basics lightweight desktop distribution based on stock FreeBSD.” It is basically FreeBSD with a desktop environment pre-configured and several apps preinstalled. The goal is to quickly get a FreeBSD-based system running on your computer. Err codemadness.org 70 i 8437 You might be thinking that this sounds a lot like a couple of other BSDs that are available, such as NomadBSD and GhostBSD. The major difference between those BSDs and FuryBSD is that FuryBSD is much closer to stock FreeBSD. For example, FuryBSD uses the FreeBSD installer, while others have created their own installers and utilities. Err codemadness.org 70 i 8438 As it states on the site, “Although FuryBSD may resemble past graphical BSD projects like PC-BSD and TrueOS, FuryBSD is created by a different team and takes a different approach focusing on tight integration with FreeBSD. This keeps overhead low and maintains compatibility with upstream.” The lead dev also told me that “One key focus for FuryBSD is for it to be a small live media with a few assistive tools to test drivers for hardware.” Err codemadness.org 70 i 8439 Currently, you can go to the FuryBSD homepage and download either an XFCE or KDE LiveCD. A GNOME version is in the works. Err codemadness.org 70 i 8440 NetBSD 9.0 (https://www.netbsd.org/releases/formal-9/NetBSD-9.0.html) Err codemadness.org 70 i 8441 The NetBSD Project is pleased to announce NetBSD 9.0, the seventeenth major release of the NetBSD operating system. Err codemadness.org 70 i 8442 This release brings significant improvements in terms of hardware support, quality assurance, security, along with new features and hundreds of bug fixes. Here are some highlights of this new release. Err codemadness.org 70 i 8443 News Roundup Err codemadness.org 70 i 8444 OpenBSD Foundation 2019 campaign wrapup (http://undeadly.org/cgi?action=article;sid=20200217001107) Err codemadness.org 70 i 8445 Our target for 2019 was CDN$300K. Our community's continued generosity combined with our corporate donors exceeded that nicely. In addition we received the largest single donation in our history, CDN$380K from Smartisan. The return of Google was another welcome event. Altogether 2019 was our most successful campaign to date, yielding CDN$692K in total. Err codemadness.org 70 i 8446 We thank all our donors, Iridium (Smartisan), Platinum (Yandex, Google), Gold (Microsoft, Facebook) Silver (2Keys) and Bronze (genua, Thinkst Canary). But especially our community of smaller donors whose contributions are the bedrock of our support. Thank you all! Err codemadness.org 70 i 8447 OpenBSD Foundation 2019 Fundraising Goal Exceeded (https://www.openbsdfoundation.org/campaign2019.html) Err codemadness.org 70 i 8448 A retrospective on our OmniOS ZFS-based NFS fileservers (https://utcc.utoronto.ca/~cks/space/blog/solaris/OmniOSFileserverRetrospective) Err codemadness.org 70 i 8449 Our OmniOS fileservers have now been out of service for about six months, which makes it somewhat past time for a retrospective on them. Our OmniOS fileservers followed on our Solaris fileservers, which I wrote a two part retrospective on (part 1, part 2), and have now been replaced by our Linux fileservers. To be honest, I have been sitting on my hands about writing this retrospective because we have mixed feelings about our OmniOS fileservers. Err codemadness.org 70 i 8450 I will put the summary up front. OmniOS worked reasonably well for us over its lifespan here and looking back I think it was almost certainly the right choice for us at the time we made that choice (which was 2013 and 2014). However it was not without issues that marred our experience with it in practice, although not enough to make me regret that we ran it (and ran it for as long as we did). Part of our issues are likely due to a design mistake in making our fileservers too big, although this design mistake was probably magnified when we were unable to use Intel 10G-T networking in OmniOS. Err codemadness.org 70 i 8451 On the one hand, our OmniOS fileservers worked, almost always reliably. Like our Solaris fileservers before them, they ran quietly for years without needing much attention, delivering NFS fileservice to our Ubuntu servers; specifically, we ran them for about five years (2014 through 2019, although we started migrating away at the end of 2018). Over this time we had only minor hardware issues and not all that many disk failures, and we suffered no data loss (with ZFS checksums likely saving us several times, and certainly providing good reassurances). Our overall environment was easy to manage and was pretty much problem free in the face of things like failed disks. I'm pretty sure that our users saw a NFS environment that was solid, reliable, and performed well pretty much all of the time, which is the important thing. So OmniOS basically delivered the fileserver environment we wanted. Err codemadness.org 70 i 8452 NetBSD Fundraising 2020 goal (http://blog.netbsd.org/tnf/entry/fundraising_2020) Err codemadness.org 70 i 8453 Is it really more than 10 years since we last had an official fundraising drive? Err codemadness.org 70 i 8454 Looking at old TNF financial reports I noticed that we have been doing quite well financially over the last years, with a steady stream of small and medium donations, and most of the time only moderate expenditures. The last fundraising drive back in 2009 was a giant success, and we have lived off it until now. Err codemadness.org 70 i 8455 OpenSSH 8.2 released February 14, 2020 (http://www.openssh.com/txt/release-8.2) Err codemadness.org 70 i 8456 OpenSSH 8.2 was released on 2020-02-14. It is available from the mirrors listed at https://www.openssh.com/. Err codemadness.org 70 i 8457 OpenSSH is a 100% complete SSH protocol 2.0 implementation and includes sftp client and server support. Err codemadness.org 70 i 8458 Once again, we would like to thank the OpenSSH community for their continued support of the project, especially those who contributed code or patches, reported bugs, tested snapshots or donated to the project. More information on donations may be found at: Err codemadness.org 70 i 8459 https://www.openssh.com/donations.html Err codemadness.org 70 i 8460 Beastie Bits Err codemadness.org 70 i 8461 FreeNAS vs. Unraid: GRUDGE MATCH! (https://www.youtube.com/watch?v=aXsRIrC5bjg) Err codemadness.org 70 i 8462 Unix Toolbox (http://cb.vu/unixtoolbox.xhtml) Err codemadness.org 70 i 8463 Rigs of Rods - OpenBSD Physics Game (https://docs.rigsofrods.org/) Err codemadness.org 70 i 8464 NYCBug - Dr Vixie (http://dpaste.com/0V35MAB#wrap) Err codemadness.org 70 i 8465 Hamilton BSD User group will meet again on March 10th](http://studybsd.com/) Err codemadness.org 70 i 8466 BSD Stockholm - Meetup March 3rd 2020 (https://www.meetup.com/BSD-Users-Stockholm/events/267873938/) Err codemadness.org 70 i 8467 Feedback/Questions Err codemadness.org 70 i 8468 Shirkdog - Question (http://dpaste.com/36E2BZ1) Err codemadness.org 70 i 8469 Master One - ZFS + Suspend/resume (http://dpaste.com/3B9M814#wrap) Err codemadness.org 70 i 8470 Micah Roth - ZFS write caching (http://dpaste.com/0D4GDX1#wrap) Err codemadness.org 70 i 8471 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 8472 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 8473 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0339.mp4" type="video/mp4"> Err codemadness.org 70 i 8474 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 8475 </video> Err codemadness.org 70 i 8476 Err codemadness.org 70 i 8477 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, furybsd, desktop, desktop bsd, netbsd 9.0, openbsd foundation, campaign wrapup, retrospective, omnios, zfs, nfs, fileserver, netbsd fundraising, fundraising goal, openssh Err codemadness.org 70 i 8478 Err codemadness.org 70 i 8479 Meet FuryBSD, NetBSD 9.0 has been released, OpenBSD Foundation 2019 campaign wrapup, a retrospective on OmniOS ZFS-based NFS fileservers, NetBSD Fundraising 2020 goal, OpenSSH 8.2 released, and more.## Headlines

Err codemadness.org 70 i 8480 Err codemadness.org 70 i 8481

Meet FuryBSD: A New Desktop BSD Distribution

Err codemadness.org 70 i 8482 Err codemadness.org 70 i 8483
Err codemadness.org 70 i 8484

At its heart, FuryBSD is a very simple beast. According to the site, “FuryBSD is a back to basics lightweight desktop distribution based on stock FreeBSD.” It is basically FreeBSD with a desktop environment pre-configured and several apps preinstalled. The goal is to quickly get a FreeBSD-based system running on your computer.

Err codemadness.org 70 i 8485 Err codemadness.org 70 i 8486

You might be thinking that this sounds a lot like a couple of other BSDs that are available, such as NomadBSD and GhostBSD. The major difference between those BSDs and FuryBSD is that FuryBSD is much closer to stock FreeBSD. For example, FuryBSD uses the FreeBSD installer, while others have created their own installers and utilities.

Err codemadness.org 70 i 8487 Err codemadness.org 70 i 8488

As it states on the site, “Although FuryBSD may resemble past graphical BSD projects like PC-BSD and TrueOS, FuryBSD is created by a different team and takes a different approach focusing on tight integration with FreeBSD. This keeps overhead low and maintains compatibility with upstream.” The lead dev also told me that “One key focus for FuryBSD is for it to be a small live media with a few assistive tools to test drivers for hardware.”

Err codemadness.org 70 i 8489 Err codemadness.org 70 i 8490

Currently, you can go to the FuryBSD homepage and download either an XFCE or KDE LiveCD. A GNOME version is in the works.

Err codemadness.org 70 i 8491
Err codemadness.org 70 i 8492 Err codemadness.org 70 i 8493
Err codemadness.org 70 i 8494 Err codemadness.org 70 i 8495

NetBSD 9.0

Err codemadness.org 70 i 8496 Err codemadness.org 70 i 8497
Err codemadness.org 70 i 8498

The NetBSD Project is pleased to announce NetBSD 9.0, the seventeenth major release of the NetBSD operating system.

Err codemadness.org 70 i 8499 Err codemadness.org 70 i 8500

This release brings significant improvements in terms of hardware support, quality assurance, security, along with new features and hundreds of bug fixes. Here are some highlights of this new release.

Err codemadness.org 70 i 8501
Err codemadness.org 70 i 8502 Err codemadness.org 70 i 8503
Err codemadness.org 70 i 8504 Err codemadness.org 70 i 8505

News Roundup

Err codemadness.org 70 i 8506 Err codemadness.org 70 i 8507

OpenBSD Foundation 2019 campaign wrapup

Err codemadness.org 70 i 8508 Err codemadness.org 70 i 8509
Err codemadness.org 70 i 8510

Our target for 2019 was CDN$300K. Our community's continued generosity combined with our corporate donors exceeded that nicely. In addition we received the largest single donation in our history, CDN$380K from Smartisan. The return of Google was another welcome event. Altogether 2019 was our most successful campaign to date, yielding CDN$692K in total.

Err codemadness.org 70 i 8511 Err codemadness.org 70 i 8512

We thank all our donors, Iridium (Smartisan), Platinum (Yandex, Google), Gold (Microsoft, Facebook) Silver (2Keys) and Bronze (genua, Thinkst Canary). But especially our community of smaller donors whose contributions are the bedrock of our support. Thank you all!

Err codemadness.org 70 i 8513
Err codemadness.org 70 i 8514 Err codemadness.org 70 i 8515 Err codemadness.org 70 i 8518 Err codemadness.org 70 i 8519
Err codemadness.org 70 i 8520 Err codemadness.org 70 i 8521

A retrospective on our OmniOS ZFS-based NFS fileservers

Err codemadness.org 70 i 8522 Err codemadness.org 70 i 8523
Err codemadness.org 70 i 8524

Our OmniOS fileservers have now been out of service for about six months, which makes it somewhat past time for a retrospective on them. Our OmniOS fileservers followed on our Solaris fileservers, which I wrote a two part retrospective on (part 1, part 2), and have now been replaced by our Linux fileservers. To be honest, I have been sitting on my hands about writing this retrospective because we have mixed feelings about our OmniOS fileservers.

Err codemadness.org 70 i 8525 Err codemadness.org 70 i 8526

I will put the summary up front. OmniOS worked reasonably well for us over its lifespan here and looking back I think it was almost certainly the right choice for us at the time we made that choice (which was 2013 and 2014). However it was not without issues that marred our experience with it in practice, although not enough to make me regret that we ran it (and ran it for as long as we did). Part of our issues are likely due to a design mistake in making our fileservers too big, although this design mistake was probably magnified when we were unable to use Intel 10G-T networking in OmniOS.

Err codemadness.org 70 i 8527 Err codemadness.org 70 i 8528

On the one hand, our OmniOS fileservers worked, almost always reliably. Like our Solaris fileservers before them, they ran quietly for years without needing much attention, delivering NFS fileservice to our Ubuntu servers; specifically, we ran them for about five years (2014 through 2019, although we started migrating away at the end of 2018). Over this time we had only minor hardware issues and not all that many disk failures, and we suffered no data loss (with ZFS checksums likely saving us several times, and certainly providing good reassurances). Our overall environment was easy to manage and was pretty much problem free in the face of things like failed disks. I'm pretty sure that our users saw a NFS environment that was solid, reliable, and performed well pretty much all of the time, which is the important thing. So OmniOS basically delivered the fileserver environment we wanted.

Err codemadness.org 70 i 8529
Err codemadness.org 70 i 8530 Err codemadness.org 70 i 8531
Err codemadness.org 70 i 8532 Err codemadness.org 70 i 8533

NetBSD Fundraising 2020 goal

Err codemadness.org 70 i 8534 Err codemadness.org 70 i 8535
Err codemadness.org 70 i 8536

Is it really more than 10 years since we last had an official fundraising drive?

Err codemadness.org 70 i 8537 Err codemadness.org 70 i 8538

Looking at old TNF financial reports I noticed that we have been doing quite well financially over the last years, with a steady stream of small and medium donations, and most of the time only moderate expenditures. The last fundraising drive back in 2009 was a giant success, and we have lived off it until now.

Err codemadness.org 70 i 8539
Err codemadness.org 70 i 8540 Err codemadness.org 70 i 8541
Err codemadness.org 70 i 8542 Err codemadness.org 70 i 8543

OpenSSH 8.2 released February 14, 2020

Err codemadness.org 70 i 8544 Err codemadness.org 70 i 8545
Err codemadness.org 70 i 8546

OpenSSH 8.2 was released on 2020-02-14. It is available from the mirrors listed at https://www.openssh.com/.

Err codemadness.org 70 i 8547 Err codemadness.org 70 i 8548

OpenSSH is a 100% complete SSH protocol 2.0 implementation and includes sftp client and server support.

Err codemadness.org 70 i 8549 Err codemadness.org 70 i 8550

Once again, we would like to thank the OpenSSH community for their continued support of the project, especially those who contributed code or patches, reported bugs, tested snapshots or donated to the project. More information on donations may be found at:

Err codemadness.org 70 i 8551
Err codemadness.org 70 i 8552 Err codemadness.org 70 i 8553 Err codemadness.org 70 i 8556 Err codemadness.org 70 i 8557
Err codemadness.org 70 i 8558 Err codemadness.org 70 i 8559

Beastie Bits

Err codemadness.org 70 i 8560 Err codemadness.org 70 i 8561 Err codemadness.org 70 i 8569 Err codemadness.org 70 i 8570
Err codemadness.org 70 i 8571 Err codemadness.org 70 i 8572

Feedback/Questions

Err codemadness.org 70 i 8573 Err codemadness.org 70 i 8574 Err codemadness.org 70 i 8579 Err codemadness.org 70 i 8580
Err codemadness.org 70 i 8581 Err codemadness.org 70 i 8582
    Err codemadness.org 70 i 8583
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 8584
Err codemadness.org 70 i 8585 Err codemadness.org 70 i 8586
Err codemadness.org 70 i 8587 Err codemadness.org 70 i 8588 ]]> Err codemadness.org 70 i 8592
Err codemadness.org 70 i 8593 Err codemadness.org 70 i 8594 Meet FuryBSD, NetBSD 9.0 has been released, OpenBSD Foundation 2019 campaign wrapup, a retrospective on OmniOS ZFS-based NFS fileservers, NetBSD Fundraising 2020 goal, OpenSSH 8.2 released, and more.## Headlines

Err codemadness.org 70 i 8595 Err codemadness.org 70 i 8596

Meet FuryBSD: A New Desktop BSD Distribution

Err codemadness.org 70 i 8597 Err codemadness.org 70 i 8598
Err codemadness.org 70 i 8599

At its heart, FuryBSD is a very simple beast. According to the site, “FuryBSD is a back to basics lightweight desktop distribution based on stock FreeBSD.” It is basically FreeBSD with a desktop environment pre-configured and several apps preinstalled. The goal is to quickly get a FreeBSD-based system running on your computer.

Err codemadness.org 70 i 8600 Err codemadness.org 70 i 8601

You might be thinking that this sounds a lot like a couple of other BSDs that are available, such as NomadBSD and GhostBSD. The major difference between those BSDs and FuryBSD is that FuryBSD is much closer to stock FreeBSD. For example, FuryBSD uses the FreeBSD installer, while others have created their own installers and utilities.

Err codemadness.org 70 i 8602 Err codemadness.org 70 i 8603

As it states on the site, “Although FuryBSD may resemble past graphical BSD projects like PC-BSD and TrueOS, FuryBSD is created by a different team and takes a different approach focusing on tight integration with FreeBSD. This keeps overhead low and maintains compatibility with upstream.” The lead dev also told me that “One key focus for FuryBSD is for it to be a small live media with a few assistive tools to test drivers for hardware.”

Err codemadness.org 70 i 8604 Err codemadness.org 70 i 8605

Currently, you can go to the FuryBSD homepage and download either an XFCE or KDE LiveCD. A GNOME version is in the works.

Err codemadness.org 70 i 8606
Err codemadness.org 70 i 8607 Err codemadness.org 70 i 8608
Err codemadness.org 70 i 8609 Err codemadness.org 70 i 8610

NetBSD 9.0

Err codemadness.org 70 i 8611 Err codemadness.org 70 i 8612
Err codemadness.org 70 i 8613

The NetBSD Project is pleased to announce NetBSD 9.0, the seventeenth major release of the NetBSD operating system.

Err codemadness.org 70 i 8614 Err codemadness.org 70 i 8615

This release brings significant improvements in terms of hardware support, quality assurance, security, along with new features and hundreds of bug fixes. Here are some highlights of this new release.

Err codemadness.org 70 i 8616
Err codemadness.org 70 i 8617 Err codemadness.org 70 i 8618
Err codemadness.org 70 i 8619 Err codemadness.org 70 i 8620

News Roundup

Err codemadness.org 70 i 8621 Err codemadness.org 70 i 8622

OpenBSD Foundation 2019 campaign wrapup

Err codemadness.org 70 i 8623 Err codemadness.org 70 i 8624
Err codemadness.org 70 i 8625

Our target for 2019 was CDN$300K. Our community's continued generosity combined with our corporate donors exceeded that nicely. In addition we received the largest single donation in our history, CDN$380K from Smartisan. The return of Google was another welcome event. Altogether 2019 was our most successful campaign to date, yielding CDN$692K in total.

Err codemadness.org 70 i 8626 Err codemadness.org 70 i 8627

We thank all our donors, Iridium (Smartisan), Platinum (Yandex, Google), Gold (Microsoft, Facebook) Silver (2Keys) and Bronze (genua, Thinkst Canary). But especially our community of smaller donors whose contributions are the bedrock of our support. Thank you all!

Err codemadness.org 70 i 8628
Err codemadness.org 70 i 8629 Err codemadness.org 70 i 8630 Err codemadness.org 70 i 8633 Err codemadness.org 70 i 8634
Err codemadness.org 70 i 8635 Err codemadness.org 70 i 8636

A retrospective on our OmniOS ZFS-based NFS fileservers

Err codemadness.org 70 i 8637 Err codemadness.org 70 i 8638
Err codemadness.org 70 i 8639

Our OmniOS fileservers have now been out of service for about six months, which makes it somewhat past time for a retrospective on them. Our OmniOS fileservers followed on our Solaris fileservers, which I wrote a two part retrospective on (part 1, part 2), and have now been replaced by our Linux fileservers. To be honest, I have been sitting on my hands about writing this retrospective because we have mixed feelings about our OmniOS fileservers.

Err codemadness.org 70 i 8640 Err codemadness.org 70 i 8641

I will put the summary up front. OmniOS worked reasonably well for us over its lifespan here and looking back I think it was almost certainly the right choice for us at the time we made that choice (which was 2013 and 2014). However it was not without issues that marred our experience with it in practice, although not enough to make me regret that we ran it (and ran it for as long as we did). Part of our issues are likely due to a design mistake in making our fileservers too big, although this design mistake was probably magnified when we were unable to use Intel 10G-T networking in OmniOS.

Err codemadness.org 70 i 8642 Err codemadness.org 70 i 8643

On the one hand, our OmniOS fileservers worked, almost always reliably. Like our Solaris fileservers before them, they ran quietly for years without needing much attention, delivering NFS fileservice to our Ubuntu servers; specifically, we ran them for about five years (2014 through 2019, although we started migrating away at the end of 2018). Over this time we had only minor hardware issues and not all that many disk failures, and we suffered no data loss (with ZFS checksums likely saving us several times, and certainly providing good reassurances). Our overall environment was easy to manage and was pretty much problem free in the face of things like failed disks. I'm pretty sure that our users saw a NFS environment that was solid, reliable, and performed well pretty much all of the time, which is the important thing. So OmniOS basically delivered the fileserver environment we wanted.

Err codemadness.org 70 i 8644
Err codemadness.org 70 i 8645 Err codemadness.org 70 i 8646
Err codemadness.org 70 i 8647 Err codemadness.org 70 i 8648

NetBSD Fundraising 2020 goal

Err codemadness.org 70 i 8649 Err codemadness.org 70 i 8650
Err codemadness.org 70 i 8651

Is it really more than 10 years since we last had an official fundraising drive?

Err codemadness.org 70 i 8652 Err codemadness.org 70 i 8653

Looking at old TNF financial reports I noticed that we have been doing quite well financially over the last years, with a steady stream of small and medium donations, and most of the time only moderate expenditures. The last fundraising drive back in 2009 was a giant success, and we have lived off it until now.

Err codemadness.org 70 i 8654
Err codemadness.org 70 i 8655 Err codemadness.org 70 i 8656
Err codemadness.org 70 i 8657 Err codemadness.org 70 i 8658

OpenSSH 8.2 released February 14, 2020

Err codemadness.org 70 i 8659 Err codemadness.org 70 i 8660
Err codemadness.org 70 i 8661

OpenSSH 8.2 was released on 2020-02-14. It is available from the mirrors listed at https://www.openssh.com/.

Err codemadness.org 70 i 8662 Err codemadness.org 70 i 8663

OpenSSH is a 100% complete SSH protocol 2.0 implementation and includes sftp client and server support.

Err codemadness.org 70 i 8664 Err codemadness.org 70 i 8665

Once again, we would like to thank the OpenSSH community for their continued support of the project, especially those who contributed code or patches, reported bugs, tested snapshots or donated to the project. More information on donations may be found at:

Err codemadness.org 70 i 8666
Err codemadness.org 70 i 8667 Err codemadness.org 70 i 8668 Err codemadness.org 70 i 8671 Err codemadness.org 70 i 8672
Err codemadness.org 70 i 8673 Err codemadness.org 70 i 8674

Beastie Bits

Err codemadness.org 70 i 8675 Err codemadness.org 70 i 8676 Err codemadness.org 70 i 8684 Err codemadness.org 70 i 8685
Err codemadness.org 70 i 8686 Err codemadness.org 70 i 8687

Feedback/Questions

Err codemadness.org 70 i 8688 Err codemadness.org 70 i 8689 Err codemadness.org 70 i 8694 Err codemadness.org 70 i 8695
Err codemadness.org 70 i 8696 Err codemadness.org 70 i 8697
    Err codemadness.org 70 i 8698
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 8699
Err codemadness.org 70 i 8700 Err codemadness.org 70 i 8701
Err codemadness.org 70 i 8702 Err codemadness.org 70 i 8703 ]]> Err codemadness.org 70 i 8707
Err codemadness.org 70 i 8708 https://fireside.fm/player/v2/FYhhasNR+xxMI5wMP Err codemadness.org 70 i 8709 Err codemadness.org 70 i 8710 ]]> Err codemadness.org 70 i 8711 Err codemadness.org 70 i 8712
Err codemadness.org 70 i 8713 Err codemadness.org 70 i 8714 338: iocage in Jail Err codemadness.org 70 i 8715 https://www.bsdnow.tv/338 Err codemadness.org 70 i 8716 7e9e4cfc-7a05-4ebe-8d45-a7282fe7ab0f Err codemadness.org 70 i 8717 Thu, 20 Feb 2020 05:00:00 -0800 Err codemadness.org 70 i 8718 Allan Jude Err codemadness.org 70 i 8719 Err codemadness.org 70 i 8720 full Err codemadness.org 70 i 8721 Allan Jude Err codemadness.org 70 i 8722 Distrowatch reviews FuryBSD, LLDB on i386 for NetBSD, wpa_supplicant as lower-class citizen, KDE on FreeBSD updates, Travel Grant for BSDCan open, ZFS dataset for testing iocage within a jail, and more. Err codemadness.org 70 i 8723 1:02:44 Err codemadness.org 70 i 8724 no Err codemadness.org 70 i 8725 Err codemadness.org 70 i 8726 Distrowatch reviews FuryBSD, LLDB on i386 for NetBSD, wpa_supplicant as lower-class citizen, KDE on FreeBSD updates, Travel Grant for BSDCan open, ZFS dataset for testing iocage within a jail, and more. Err codemadness.org 70 i 8727 Headlines Err codemadness.org 70 i 8728 Distrowatch Fury BSD Review (https://distrowatch.com/weekly.php?issue=20200127#furybsd) Err codemadness.org 70 i 8729 FuryBSD is the most recent addition to the DistroWatch database and provides a live desktop operating system based on FreeBSD. FuryBSD is not entirely different in its goals from NomadBSD, which we discussed recently. I wanted to take this FreeBSD-based project for a test drive and see how it compares to NomadBSD and other desktop-oriented projects in the FreeBSD family. Err codemadness.org 70 i 8730 FuryBSD supplies hybrid ISO/USB images which can be used to run a live desktop. There are two desktop editions currently, both for 64-bit (x86_64) machines: Xfce and KDE Plasma. The Xfce edition is 1.4GB in size and is the flavour I downloaded. The KDE Plasma edition is about 3.0GB in size. Err codemadness.org 70 i 8731 My fresh install of FuryBSD booted to a graphical login screen. From there I could sign into my account, which brings up the Xfce desktop. The installed version of Xfce is the same as the live version, with a few minor changes. Most of the desktop icons have been removed with just the file manager launchers remaining. The Getting Started and System Information icons have been removed. Otherwise the experience is virtually identical to the live media. Err codemadness.org 70 i 8732 FuryBSD uses a theme that is mostly grey and white with creamy yellow folder icons. The application menu launchers tend to have neutral icons, neither particularly bright and detailed or minimal. Err codemadness.org 70 i 8733 LLDB now works on i386 (http://blog.netbsd.org/tnf/entry/lldb_now_works_on_i386) Err codemadness.org 70 i 8734 Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages. Err codemadness.org 70 i 8735 In February 2019, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues, fixing watchpoint and threading support. Err codemadness.org 70 i 8736 The original NetBSD port of LLDB was focused on amd64 only. In January, I have extended it to support i386 executables. This includes both 32-bit builds of LLDB (running natively on i386 kernel or via compat32) and debugging 32-bit programs from 64-bit LLDB. Err codemadness.org 70 i 8737 News Roundup Err codemadness.org 70 i 8738 wpa_supplicant is definitely a lower-class citizen, sorry (https://marc.info/?l=openbsd-misc&m=158068418807352&w=2) Err codemadness.org 70 i 8739 wpa_supplicant is definitely a lower-class citizen, sorry. Err codemadness.org 70 i 8740 I increasingly wonder why this stuff matters; transit costs are so much lower than the period when eduroam was setup, and their reliance on 802.11x is super weird in a world where, for the most part Err codemadness.org 70 i 8741 + entire cities have open wifi in their downtown core Err codemadness.org 70 i 8742 + edu vs edu+transit split horizon problems have to be solved anyways Err codemadness.org 70 i 8743 + many universities have parallel open wifi Err codemadness.org 70 i 8744 + rate limiting / fare-share approaches for the open-net, on unmetered Err codemadness.org 70 i 8745 + flat-rate solves the problem Err codemadness.org 70 i 8746 + LTE hotspot off a phone isn't a rip off anymore Err codemadness.org 70 i 8747 + other open networks exist Err codemadness.org 70 i 8748 essentially no one else feels compelled to do use 802.11x for a so called "semi-open access network", so I think they've lost the plot on friction vs benefit. Err codemadness.org 70 i 8749 (we've held hackathons at EDU campus that are locked down like that, and in every case we've said no way, gotten a wire with open net, and built our own wifi. we will not subject our developers to that extra complexity). Err codemadness.org 70 i 8750 KDE FreeBSD Updates Feb 2020 (https://euroquis.nl/freebsd/2020/02/08/freebsd.html) Err codemadness.org 70 i 8751 Some bits and bobs from the KDE FreeBSD team in february 2020. We met at the FreeBSD devsummit before FOSDEM, along with other FreeBSD people. Plans were made, schemes were forged, and Groff the Goat was introduced to some new people. Err codemadness.org 70 i 8752 The big ticket things: Err codemadness.org 70 i 8753 Frameworks are at 5.66 Err codemadness.org 70 i 8754 Plasma is at 5.17.5 (the beta 5.18 hasn’t been tried) Err codemadness.org 70 i 8755 KDE release service has landed 19.12.2 (same day it was released) Err codemadness.org 70 i 8756 Developer-centric: Err codemadness.org 70 i 8757 KDevelop is at 5.5.0 Err codemadness.org 70 i 8758 KUserfeedback landed its 1.0.0 release Err codemadness.org 70 i 8759 CMake is 3.16.3 Err codemadness.org 70 i 8760 Applications: Err codemadness.org 70 i 8761 Musescore is at 3.4.2 Err codemadness.org 70 i 8762 Elisa now part of the KDE release service updates Err codemadness.org 70 i 8763 Fuure work: Err codemadness.org 70 i 8764 KIO-Fuse probably needs extra real-world testing on FreeBSD. I don’t have that kind of mounts (just NFS in /etc/fstab) so I’m not the target audience. Err codemadness.org 70 i 8765 KTextEditor is missing .editorconfig support. That can come in with the next frameworks update, when consumers update anyway. Chasing it in an intermediate release is a bit problematic because it does require some rebuilds of consumers. Err codemadness.org 70 i 8766 Travel Grant Application for BSDCan is now open (https://lists.freebsd.org/pipermail/freebsd-announce/2020-February/001929.html) Err codemadness.org 70 i 8767 Hi everyone, Err codemadness.org 70 i 8768 The Travel Grant Application for BSDCan 2020 is now open. The Foundation can help you attend BSDCan through our travel grant program. Travel grants are available to FreeBSD developers and advocates who need assistance with travel expenses for attending conferences related to FreeBSD development. BSDCan 2020 applications are due April 9, 2020. Find out more and apply at: https://www.freebsdfoundation.org/what-we-do/grants/travel-grants/ Err codemadness.org 70 i 8769 Did you know the Foundation also provides grants for technical events not specifically focused on BSD? If you feel that your attendance at one of these events will benefit the FreeBSD Project and Community and you need assistance getting there, please fill out the general travel grant application. Your application must be received 7 weeks prior to the event. The general application can be found here: https://goo.gl/forms/QzsOMR8Jra0vqFYH2 Err codemadness.org 70 i 8770 Creating a ZFS dataset for testing iocage within a jail (https://dan.langille.org/2020/02/01/creating-a-zfs-dataset-for-testing-iocage-within-a-jail/) Err codemadness.org 70 i 8771 Be warned, this failed. I’m stalled and I have not completed this. Err codemadness.org 70 i 8772 I’m going to do jails within a jail. I already do that with poudriere in a jail but here I want to test an older version of iocage before upgrading my current jail hosts to a newer version. Err codemadness.org 70 i 8773 In this post: Err codemadness.org 70 i 8774 FreeBSD 12.1 Err codemadness.org 70 i 8775 py36-iocage-1.2_3 Err codemadness.org 70 i 8776 py36-iocage-1.2_4 Err codemadness.org 70 i 8777 This post includes my errors and mistakes. Perhaps you should proceed carefully and read it all first. Err codemadness.org 70 i 8778 Beastie Bits Err codemadness.org 70 i 8779 Reminder: the FreeBSD Journal is free! Check out these great articles (https://www.freebsdfoundation.org/journal/browser-based-edition/) Err codemadness.org 70 i 8780 Serenity GUI desktop running on an OpenBSD kernel (https://twitter.com/jcs/status/1224205573656322048) Err codemadness.org 70 i 8781 The Open Source Parts of MacOS (https://github.com/apple-open-source/macos) Err codemadness.org 70 i 8782 FOSDEM videos available (https://www.fosdem.org/2020/schedule/track/bsd/) Err codemadness.org 70 i 8783 Feedback/Questions Err codemadness.org 70 i 8784 Michael - Install with ZFS (http://dpaste.com/3WRC9CQ#wrap) Err codemadness.org 70 i 8785 Mohammad - Server Freeze (http://dpaste.com/3BYZKMS#wrap) Err codemadness.org 70 i 8786 Todd - ZFS Questions (http://dpaste.com/2J50HSJ#wrap) Err codemadness.org 70 i 8787 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 8788 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 8789 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0338.mp4" type="video/mp4"> Err codemadness.org 70 i 8790 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 8791 </video> Err codemadness.org 70 i 8792 Err codemadness.org 70 i 8793 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, distrowatch, furybsd, review, lldb, i386, wpa_supplicant, KDE, desktop environment, DE, travel grant, grant, iocage, dataset, zfs, jail Err codemadness.org 70 i 8794 Err codemadness.org 70 i 8795 Distrowatch reviews FuryBSD, LLDB on i386 for NetBSD, wpa_supplicant as lower-class citizen, KDE on FreeBSD updates, Travel Grant for BSDCan open, ZFS dataset for testing iocage within a jail, and more.

Err codemadness.org 70 i 8796 Err codemadness.org 70 i 8797

Headlines

Err codemadness.org 70 i 8798 Err codemadness.org 70 i 8799

Distrowatch Fury BSD Review

Err codemadness.org 70 i 8800 Err codemadness.org 70 i 8801
Err codemadness.org 70 i 8802

FuryBSD is the most recent addition to the DistroWatch database and provides a live desktop operating system based on FreeBSD. FuryBSD is not entirely different in its goals from NomadBSD, which we discussed recently. I wanted to take this FreeBSD-based project for a test drive and see how it compares to NomadBSD and other desktop-oriented projects in the FreeBSD family.

Err codemadness.org 70 i 8803 Err codemadness.org 70 i 8804

FuryBSD supplies hybrid ISO/USB images which can be used to run a live desktop. There are two desktop editions currently, both for 64-bit (x86_64) machines: Xfce and KDE Plasma. The Xfce edition is 1.4GB in size and is the flavour I downloaded. The KDE Plasma edition is about 3.0GB in size.

Err codemadness.org 70 i 8805 Err codemadness.org 70 i 8806

My fresh install of FuryBSD booted to a graphical login screen. From there I could sign into my account, which brings up the Xfce desktop. The installed version of Xfce is the same as the live version, with a few minor changes. Most of the desktop icons have been removed with just the file manager launchers remaining. The Getting Started and System Information icons have been removed. Otherwise the experience is virtually identical to the live media.

Err codemadness.org 70 i 8807 Err codemadness.org 70 i 8808

FuryBSD uses a theme that is mostly grey and white with creamy yellow folder icons. The application menu launchers tend to have neutral icons, neither particularly bright and detailed or minimal.

Err codemadness.org 70 i 8809
Err codemadness.org 70 i 8810 Err codemadness.org 70 i 8811
Err codemadness.org 70 i 8812 Err codemadness.org 70 i 8813

LLDB now works on i386

Err codemadness.org 70 i 8814 Err codemadness.org 70 i 8815
Err codemadness.org 70 i 8816

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.

Err codemadness.org 70 i 8817 Err codemadness.org 70 i 8818

In February 2019, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues, fixing watchpoint and threading support.

Err codemadness.org 70 i 8819 Err codemadness.org 70 i 8820

The original NetBSD port of LLDB was focused on amd64 only. In January, I have extended it to support i386 executables. This includes both 32-bit builds of LLDB (running natively on i386 kernel or via compat32) and debugging 32-bit programs from 64-bit LLDB.

Err codemadness.org 70 i 8821
Err codemadness.org 70 i 8822 Err codemadness.org 70 i 8823
Err codemadness.org 70 i 8824 Err codemadness.org 70 i 8825

News Roundup

Err codemadness.org 70 i 8826 Err codemadness.org 70 i 8827

wpa_supplicant is definitely a lower-class citizen, sorry

Err codemadness.org 70 i 8828 Err codemadness.org 70 i 8829
Err codemadness.org 70 i 8830

wpa_supplicant is definitely a lower-class citizen, sorry.

Err codemadness.org 70 i 8831 Err codemadness.org 70 i 8832

I increasingly wonder why this stuff matters; transit costs are so much lower than the period when eduroam was setup, and their reliance on 802.11x is super weird in a world where, for the most part
Err codemadness.org 70 i 8833 + entire cities have open wifi in their downtown core
Err codemadness.org 70 i 8834 + edu vs edu+transit split horizon problems have to be solved anyways
Err codemadness.org 70 i 8835 + many universities have parallel open wifi
Err codemadness.org 70 i 8836 + rate limiting / fare-share approaches for the open-net, on unmetered
Err codemadness.org 70 i 8837 + flat-rate solves the problem
Err codemadness.org 70 i 8838 + LTE hotspot off a phone isn't a rip off anymore
Err codemadness.org 70 i 8839 + other open networks exist

Err codemadness.org 70 i 8840 Err codemadness.org 70 i 8841

essentially no one else feels compelled to do use 802.11x for a so called "semi-open access network", so I think they've lost the plot on friction vs benefit.

Err codemadness.org 70 i 8842 Err codemadness.org 70 i 8843

(we've held hackathons at EDU campus that are locked down like that, and in every case we've said no way, gotten a wire with open net, and built our own wifi. we will not subject our developers to that extra complexity).

Err codemadness.org 70 i 8844
Err codemadness.org 70 i 8845 Err codemadness.org 70 i 8846
Err codemadness.org 70 i 8847 Err codemadness.org 70 i 8848

KDE FreeBSD Updates Feb 2020

Err codemadness.org 70 i 8849 Err codemadness.org 70 i 8850
Err codemadness.org 70 i 8851

Some bits and bobs from the KDE FreeBSD team in february 2020. We met at the FreeBSD devsummit before FOSDEM, along with other FreeBSD people. Plans were made, schemes were forged, and Groff the Goat was introduced to some new people.

Err codemadness.org 70 i 8852
Err codemadness.org 70 i 8853 Err codemadness.org 70 i 8854
    Err codemadness.org 70 i 8855
  • The big ticket things: Err codemadness.org 70 i 8856 Err codemadness.org 70 i 8857
      Err codemadness.org 70 i 8858
    • Frameworks are at 5.66
    • Err codemadness.org 70 i 8859
    • Plasma is at 5.17.5 (the beta 5.18 hasn’t been tried)
    • Err codemadness.org 70 i 8860
    • KDE release service has landed 19.12.2 (same day it was released)
    • Err codemadness.org 70 i 8861
  • Err codemadness.org 70 i 8862
  • Developer-centric: Err codemadness.org 70 i 8863 Err codemadness.org 70 i 8864
      Err codemadness.org 70 i 8865
    • KDevelop is at 5.5.0
    • Err codemadness.org 70 i 8866
    • KUserfeedback landed its 1.0.0 release
    • Err codemadness.org 70 i 8867
    • CMake is 3.16.3
    • Err codemadness.org 70 i 8868
  • Err codemadness.org 70 i 8869
  • Applications: Err codemadness.org 70 i 8870 Err codemadness.org 70 i 8871
      Err codemadness.org 70 i 8872
    • Musescore is at 3.4.2
    • Err codemadness.org 70 i 8873
    • Elisa now part of the KDE release service updates
    • Err codemadness.org 70 i 8874
  • Err codemadness.org 70 i 8875
  • Fuure work: Err codemadness.org 70 i 8876 Err codemadness.org 70 i 8877
      Err codemadness.org 70 i 8878
    • KIO-Fuse probably needs extra real-world testing on FreeBSD. I don’t have that kind of mounts (just NFS in /etc/fstab) so I’m not the target audience.
    • Err codemadness.org 70 i 8879
    • KTextEditor is missing .editorconfig support. That can come in with the next frameworks update, when consumers update anyway. Chasing it in an intermediate release is a bit problematic because it does require some rebuilds of consumers.
    • Err codemadness.org 70 i 8880
  • Err codemadness.org 70 i 8881
Err codemadness.org 70 i 8882 Err codemadness.org 70 i 8883
Err codemadness.org 70 i 8884 Err codemadness.org 70 i 8885

Travel Grant Application for BSDCan is now open

Err codemadness.org 70 i 8886 Err codemadness.org 70 i 8887
Err codemadness.org 70 i 8888

Hi everyone,

Err codemadness.org 70 i 8889 Err codemadness.org 70 i 8890

The Travel Grant Application for BSDCan 2020 is now open. The Foundation can help you attend BSDCan through our travel grant program. Travel grants are available to FreeBSD developers and advocates who need assistance with travel expenses for attending conferences related to FreeBSD development. BSDCan 2020 applications are due April 9, 2020. Find out more and apply at: https://www.freebsdfoundation.org/what-we-do/grants/travel-grants/

Err codemadness.org 70 i 8891 Err codemadness.org 70 i 8892

Did you know the Foundation also provides grants for technical events not specifically focused on BSD? If you feel that your attendance at one of these events will benefit the FreeBSD Project and Community and you need assistance getting there, please fill out the general travel grant application. Your application must be received 7 weeks prior to the event. The general application can be found here: https://goo.gl/forms/QzsOMR8Jra0vqFYH2

Err codemadness.org 70 i 8893
Err codemadness.org 70 i 8894 Err codemadness.org 70 i 8895
Err codemadness.org 70 i 8896 Err codemadness.org 70 i 8897

Creating a ZFS dataset for testing iocage within a jail

Err codemadness.org 70 i 8898 Err codemadness.org 70 i 8899
    Err codemadness.org 70 i 8900
  • Be warned, this failed. I’m stalled and I have not completed this.
  • Err codemadness.org 70 i 8901
Err codemadness.org 70 i 8902 Err codemadness.org 70 i 8903
Err codemadness.org 70 i 8904

I’m going to do jails within a jail. I already do that with poudriere in a jail but here I want to test an older version of iocage before upgrading my current jail hosts to a newer version.

Err codemadness.org 70 i 8905
Err codemadness.org 70 i 8906 Err codemadness.org 70 i 8907
    Err codemadness.org 70 i 8908
  • In this post: Err codemadness.org 70 i 8909 Err codemadness.org 70 i 8910
      Err codemadness.org 70 i 8911
    • FreeBSD 12.1
    • Err codemadness.org 70 i 8912
    • py36-iocage-1.2_3
    • Err codemadness.org 70 i 8913
    • py36-iocage-1.2_4
    • Err codemadness.org 70 i 8914
  • Err codemadness.org 70 i 8915
Err codemadness.org 70 i 8916 Err codemadness.org 70 i 8917
Err codemadness.org 70 i 8918

This post includes my errors and mistakes. Perhaps you should proceed carefully and read it all first.

Err codemadness.org 70 i 8919
Err codemadness.org 70 i 8920 Err codemadness.org 70 i 8921
Err codemadness.org 70 i 8922 Err codemadness.org 70 i 8923

Beastie Bits

Err codemadness.org 70 i 8924 Err codemadness.org 70 i 8925 Err codemadness.org 70 i 8931 Err codemadness.org 70 i 8932
Err codemadness.org 70 i 8933 Err codemadness.org 70 i 8934

Feedback/Questions

Err codemadness.org 70 i 8935 Err codemadness.org 70 i 8936 Err codemadness.org 70 i 8941 Err codemadness.org 70 i 8942
Err codemadness.org 70 i 8943 Err codemadness.org 70 i 8944
    Err codemadness.org 70 i 8945
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 8946
Err codemadness.org 70 i 8947 Err codemadness.org 70 i 8948
Err codemadness.org 70 i 8949 Err codemadness.org 70 i 8950 ]]> Err codemadness.org 70 i 8954
Err codemadness.org 70 i 8955 Err codemadness.org 70 i 8956 Distrowatch reviews FuryBSD, LLDB on i386 for NetBSD, wpa_supplicant as lower-class citizen, KDE on FreeBSD updates, Travel Grant for BSDCan open, ZFS dataset for testing iocage within a jail, and more.

Err codemadness.org 70 i 8957 Err codemadness.org 70 i 8958

Headlines

Err codemadness.org 70 i 8959 Err codemadness.org 70 i 8960

Distrowatch Fury BSD Review

Err codemadness.org 70 i 8961 Err codemadness.org 70 i 8962
Err codemadness.org 70 i 8963

FuryBSD is the most recent addition to the DistroWatch database and provides a live desktop operating system based on FreeBSD. FuryBSD is not entirely different in its goals from NomadBSD, which we discussed recently. I wanted to take this FreeBSD-based project for a test drive and see how it compares to NomadBSD and other desktop-oriented projects in the FreeBSD family.

Err codemadness.org 70 i 8964 Err codemadness.org 70 i 8965

FuryBSD supplies hybrid ISO/USB images which can be used to run a live desktop. There are two desktop editions currently, both for 64-bit (x86_64) machines: Xfce and KDE Plasma. The Xfce edition is 1.4GB in size and is the flavour I downloaded. The KDE Plasma edition is about 3.0GB in size.

Err codemadness.org 70 i 8966 Err codemadness.org 70 i 8967

My fresh install of FuryBSD booted to a graphical login screen. From there I could sign into my account, which brings up the Xfce desktop. The installed version of Xfce is the same as the live version, with a few minor changes. Most of the desktop icons have been removed with just the file manager launchers remaining. The Getting Started and System Information icons have been removed. Otherwise the experience is virtually identical to the live media.

Err codemadness.org 70 i 8968 Err codemadness.org 70 i 8969

FuryBSD uses a theme that is mostly grey and white with creamy yellow folder icons. The application menu launchers tend to have neutral icons, neither particularly bright and detailed or minimal.

Err codemadness.org 70 i 8970
Err codemadness.org 70 i 8971 Err codemadness.org 70 i 8972
Err codemadness.org 70 i 8973 Err codemadness.org 70 i 8974

LLDB now works on i386

Err codemadness.org 70 i 8975 Err codemadness.org 70 i 8976
Err codemadness.org 70 i 8977

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.

Err codemadness.org 70 i 8978 Err codemadness.org 70 i 8979

In February 2019, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues, fixing watchpoint and threading support.

Err codemadness.org 70 i 8980 Err codemadness.org 70 i 8981

The original NetBSD port of LLDB was focused on amd64 only. In January, I have extended it to support i386 executables. This includes both 32-bit builds of LLDB (running natively on i386 kernel or via compat32) and debugging 32-bit programs from 64-bit LLDB.

Err codemadness.org 70 i 8982
Err codemadness.org 70 i 8983 Err codemadness.org 70 i 8984
Err codemadness.org 70 i 8985 Err codemadness.org 70 i 8986

News Roundup

Err codemadness.org 70 i 8987 Err codemadness.org 70 i 8988

wpa_supplicant is definitely a lower-class citizen, sorry

Err codemadness.org 70 i 8989 Err codemadness.org 70 i 8990
Err codemadness.org 70 i 8991

wpa_supplicant is definitely a lower-class citizen, sorry.

Err codemadness.org 70 i 8992 Err codemadness.org 70 i 8993

I increasingly wonder why this stuff matters; transit costs are so much lower than the period when eduroam was setup, and their reliance on 802.11x is super weird in a world where, for the most part
Err codemadness.org 70 i 8994 + entire cities have open wifi in their downtown core
Err codemadness.org 70 i 8995 + edu vs edu+transit split horizon problems have to be solved anyways
Err codemadness.org 70 i 8996 + many universities have parallel open wifi
Err codemadness.org 70 i 8997 + rate limiting / fare-share approaches for the open-net, on unmetered
Err codemadness.org 70 i 8998 + flat-rate solves the problem
Err codemadness.org 70 i 8999 + LTE hotspot off a phone isn't a rip off anymore
Err codemadness.org 70 i 9000 + other open networks exist

Err codemadness.org 70 i 9001 Err codemadness.org 70 i 9002

essentially no one else feels compelled to do use 802.11x for a so called "semi-open access network", so I think they've lost the plot on friction vs benefit.

Err codemadness.org 70 i 9003 Err codemadness.org 70 i 9004

(we've held hackathons at EDU campus that are locked down like that, and in every case we've said no way, gotten a wire with open net, and built our own wifi. we will not subject our developers to that extra complexity).

Err codemadness.org 70 i 9005
Err codemadness.org 70 i 9006 Err codemadness.org 70 i 9007
Err codemadness.org 70 i 9008 Err codemadness.org 70 i 9009

KDE FreeBSD Updates Feb 2020

Err codemadness.org 70 i 9010 Err codemadness.org 70 i 9011
Err codemadness.org 70 i 9012

Some bits and bobs from the KDE FreeBSD team in february 2020. We met at the FreeBSD devsummit before FOSDEM, along with other FreeBSD people. Plans were made, schemes were forged, and Groff the Goat was introduced to some new people.

Err codemadness.org 70 i 9013
Err codemadness.org 70 i 9014 Err codemadness.org 70 i 9015
    Err codemadness.org 70 i 9016
  • The big ticket things: Err codemadness.org 70 i 9017 Err codemadness.org 70 i 9018
      Err codemadness.org 70 i 9019
    • Frameworks are at 5.66
    • Err codemadness.org 70 i 9020
    • Plasma is at 5.17.5 (the beta 5.18 hasn’t been tried)
    • Err codemadness.org 70 i 9021
    • KDE release service has landed 19.12.2 (same day it was released)
    • Err codemadness.org 70 i 9022
  • Err codemadness.org 70 i 9023
  • Developer-centric: Err codemadness.org 70 i 9024 Err codemadness.org 70 i 9025
      Err codemadness.org 70 i 9026
    • KDevelop is at 5.5.0
    • Err codemadness.org 70 i 9027
    • KUserfeedback landed its 1.0.0 release
    • Err codemadness.org 70 i 9028
    • CMake is 3.16.3
    • Err codemadness.org 70 i 9029
  • Err codemadness.org 70 i 9030
  • Applications: Err codemadness.org 70 i 9031 Err codemadness.org 70 i 9032
      Err codemadness.org 70 i 9033
    • Musescore is at 3.4.2
    • Err codemadness.org 70 i 9034
    • Elisa now part of the KDE release service updates
    • Err codemadness.org 70 i 9035
  • Err codemadness.org 70 i 9036
  • Fuure work: Err codemadness.org 70 i 9037 Err codemadness.org 70 i 9038
      Err codemadness.org 70 i 9039
    • KIO-Fuse probably needs extra real-world testing on FreeBSD. I don’t have that kind of mounts (just NFS in /etc/fstab) so I’m not the target audience.
    • Err codemadness.org 70 i 9040
    • KTextEditor is missing .editorconfig support. That can come in with the next frameworks update, when consumers update anyway. Chasing it in an intermediate release is a bit problematic because it does require some rebuilds of consumers.
    • Err codemadness.org 70 i 9041
  • Err codemadness.org 70 i 9042
Err codemadness.org 70 i 9043 Err codemadness.org 70 i 9044
Err codemadness.org 70 i 9045 Err codemadness.org 70 i 9046

Travel Grant Application for BSDCan is now open

Err codemadness.org 70 i 9047 Err codemadness.org 70 i 9048
Err codemadness.org 70 i 9049

Hi everyone,

Err codemadness.org 70 i 9050 Err codemadness.org 70 i 9051

The Travel Grant Application for BSDCan 2020 is now open. The Foundation can help you attend BSDCan through our travel grant program. Travel grants are available to FreeBSD developers and advocates who need assistance with travel expenses for attending conferences related to FreeBSD development. BSDCan 2020 applications are due April 9, 2020. Find out more and apply at: https://www.freebsdfoundation.org/what-we-do/grants/travel-grants/

Err codemadness.org 70 i 9052 Err codemadness.org 70 i 9053

Did you know the Foundation also provides grants for technical events not specifically focused on BSD? If you feel that your attendance at one of these events will benefit the FreeBSD Project and Community and you need assistance getting there, please fill out the general travel grant application. Your application must be received 7 weeks prior to the event. The general application can be found here: https://goo.gl/forms/QzsOMR8Jra0vqFYH2

Err codemadness.org 70 i 9054
Err codemadness.org 70 i 9055 Err codemadness.org 70 i 9056
Err codemadness.org 70 i 9057 Err codemadness.org 70 i 9058

Creating a ZFS dataset for testing iocage within a jail

Err codemadness.org 70 i 9059 Err codemadness.org 70 i 9060
    Err codemadness.org 70 i 9061
  • Be warned, this failed. I’m stalled and I have not completed this.
  • Err codemadness.org 70 i 9062
Err codemadness.org 70 i 9063 Err codemadness.org 70 i 9064
Err codemadness.org 70 i 9065

I’m going to do jails within a jail. I already do that with poudriere in a jail but here I want to test an older version of iocage before upgrading my current jail hosts to a newer version.

Err codemadness.org 70 i 9066
Err codemadness.org 70 i 9067 Err codemadness.org 70 i 9068
    Err codemadness.org 70 i 9069
  • In this post: Err codemadness.org 70 i 9070 Err codemadness.org 70 i 9071
      Err codemadness.org 70 i 9072
    • FreeBSD 12.1
    • Err codemadness.org 70 i 9073
    • py36-iocage-1.2_3
    • Err codemadness.org 70 i 9074
    • py36-iocage-1.2_4
    • Err codemadness.org 70 i 9075
  • Err codemadness.org 70 i 9076
Err codemadness.org 70 i 9077 Err codemadness.org 70 i 9078
Err codemadness.org 70 i 9079

This post includes my errors and mistakes. Perhaps you should proceed carefully and read it all first.

Err codemadness.org 70 i 9080
Err codemadness.org 70 i 9081 Err codemadness.org 70 i 9082
Err codemadness.org 70 i 9083 Err codemadness.org 70 i 9084

Beastie Bits

Err codemadness.org 70 i 9085 Err codemadness.org 70 i 9086 Err codemadness.org 70 i 9092 Err codemadness.org 70 i 9093
Err codemadness.org 70 i 9094 Err codemadness.org 70 i 9095

Feedback/Questions

Err codemadness.org 70 i 9096 Err codemadness.org 70 i 9097 Err codemadness.org 70 i 9102 Err codemadness.org 70 i 9103
Err codemadness.org 70 i 9104 Err codemadness.org 70 i 9105
    Err codemadness.org 70 i 9106
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 9107
Err codemadness.org 70 i 9108 Err codemadness.org 70 i 9109
Err codemadness.org 70 i 9110 Err codemadness.org 70 i 9111 ]]> Err codemadness.org 70 i 9115
Err codemadness.org 70 i 9116 https://fireside.fm/player/v2/FYhhasNR+w6Oc8D2s Err codemadness.org 70 i 9117 Err codemadness.org 70 i 9118 ]]> Err codemadness.org 70 i 9119 Err codemadness.org 70 i 9120
Err codemadness.org 70 i 9121 Err codemadness.org 70 i 9122 337: Kubernetes on bhyve Err codemadness.org 70 i 9123 https://www.bsdnow.tv/337 Err codemadness.org 70 i 9124 4a814adb-1ea5-41e3-baee-5645c60315d2 Err codemadness.org 70 i 9125 Thu, 13 Feb 2020 08:30:00 -0800 Err codemadness.org 70 i 9126 Allan Jude Err codemadness.org 70 i 9127 Err codemadness.org 70 i 9128 full Err codemadness.org 70 i 9129 Allan Jude Err codemadness.org 70 i 9130 Happinesses and stresses of full-time FOSS work, building a FreeBSD fileserver, Kubernetes on FreeBSD bhyve, NetBSD 9 RC1 available, OPNSense 20.1 is here, HardenedBSD’s idealistic future, and more. Err codemadness.org 70 i 9131 1:19:24 Err codemadness.org 70 i 9132 no Err codemadness.org 70 i 9133 Err codemadness.org 70 i 9134 Happinesses and stresses of full-time FOSS work, building a FreeBSD fileserver, Kubernetes on FreeBSD bhyve, NetBSD 9 RC1 available, OPNSense 20.1 is here, HardenedBSD’s idealistic future, and more. Err codemadness.org 70 i 9135 Headlines Err codemadness.org 70 i 9136 The happinesses and stresses of full-time FOSS work (https://drewdevault.com//2020/01/21/Stress-and-happiness.html) Err codemadness.org 70 i 9137 In the past few days, several free software maintainers have come out to discuss the stresses of their work. Though the timing was suggestive, my article last week on the philosophy of project governance was, at best, only tangentially related to this topic - I had been working on that article for a while. I do have some thoughts that I’d like to share about what kind of stresses I’ve dealt with as a FOSS maintainer, and how I’ve managed (or often mismanaged) it. Err codemadness.org 70 i 9138 February will mark one year that I’ve been working on self-directed free software projects full-time. I was planning on writing an optimistic retrospective article around this time, but given the current mood of the ecosystem I think it would be better to be realistic. In this stage of my career, I now feel at once happier, busier, more fulfilled, more engaged, more stressed, and more depressed than I have at any other point in my life. Err codemadness.org 70 i 9139 The good parts are numerous. I’m able to work on my life’s passions, and my projects are in the best shape they’ve ever been thanks to the attention I’m able to pour into them. I’ve also been able to do more thoughtful, careful work; with the extra time I’ve been able to make my software more robust and reliable than it’s ever been. The variety of projects I can invest my time into has also increased substantially, with what was once relegated to minor curiosities now receiving a similar amount of attention as my larger projects were receiving in my spare time before. I can work from anywhere in the world, at any time, not worrying about when to take time off and when to put my head down and crank out a lot of code. Err codemadness.org 70 i 9140 The frustrations are numerous, as well. I often feel like I’ve bit off more than I can chew. This has been the default state of affairs for me for a long time; I’m often neglecting half of my projects in order to obtain progress by leaps and bounds in just a few. Working on FOSS full-time has cast this model’s disadvantages into greater relief, as I focus on a greater breadth of projects and spend more time on them. Err codemadness.org 70 i 9141 Building a FreeBSD File Server (https://www.vmwareblog.org/building-freebsd-file-server/) Err codemadness.org 70 i 9142 Recently at my job, I was faced with a task to develop a file server explicitly suited for the requirements of the company. Needless to say, any configuration of a kind depends on what the infrastructure needs. So, drawing from my personal experience and numerous materials on the web, I came up with the combination FreeBSD+SAMBA+AD as the most appropriate. It appears to be a perfect choice for this environment, and harmonic addition to the existing network configuration since FreeBSD + SAMBA + AD enables admins with the broad range of possibilities for access control. However, as nothing is perfect, this configuration isn’t the best choice if your priority is data protection because it won’t be able to reach the necessary levels of reliability and fault tolerance without outside improvements. Err codemadness.org 70 i 9143 Now, since we’ve established that, let’s move on to the next point. This article’s describing the process of building a test environment while concentrating primarily on the details of the configuration. As the author, though, I must say I’m in no way suggesting that this is the only way! The following configuration will be presented in its initial stage, with the minimum requirements necessary to get the job done, and its purpose in one specific situation only. Here, look at this as a useful strategy to solve similar tasks. Well, let’s get started! Err codemadness.org 70 i 9144 Report from the first Hamilton BSD Users Group Meeting (https://twitter.com/hambug_ca/status/1227664949914349569) Err codemadness.org 70 i 9145 February 11th was the first meeting of this new user group, founded by John Young and myself Err codemadness.org 70 i 9146 11 people attended, and a lot of good discussions were had Err codemadness.org 70 i 9147 One of the attendees already owns a domain that fits well for the group, so we will be getting that setup over the next few weeks, as well as the twitter account, and other organization stuff. Err codemadness.org 70 i 9148 Special thanks to the illumos users who drove in from Buffalo to attend, although they may have actually had a shorter drive than a few of the other attendees. Err codemadness.org 70 i 9149 The next meeting is scheduled again for the 2nd Tuesday of the month, March 10th. Err codemadness.org 70 i 9150 We are still discussing if we should meet at a restaurant again, or try to get a space at the local college or innovation hub where we can have a projector etc. Err codemadness.org 70 i 9151 News Roundup Err codemadness.org 70 i 9152 Kubernetes on FreeBSD Bhyve (https://www.bsdstore.ru/en/articles/cbsd_k8s_part1.html) Err codemadness.org 70 i 9153 There are quite a few solutions for container orchestration, but the most popular (or the most famous and highly advertised, is probably, a Kubernetes) Since I plan to conduct many experiments with installing and configuring k8s, I need a laboratory in which I can quickly and easily deploy a cluster in any quantities for myself. In my work and everyday life I use two OS very tightly - Linux and FreeBSD OS. Kubernetes and docker are Linux-centric projects, and at first glance, you should not expect any useful participation and help from FreeBSD here. As the saying goes, an elephant can be made out of a fly, but it will no longer fly. However, two tempting things come to mind - this is very good integration and work in the FreeBSD ZFS file system, from which it would be nice to use the snapshot mechanism, COW and reliability. And the second is the bhyve hypervisor, because we still need the docker and k8s loader in the form of the Linux kernel. Thus, we need to connect a certain number of actions in various ways, most of which are related to starting and pre-configuring virtual machines. This is typical of both a Linux-based server and FreeBSD. What exactly will work under the hood to run virtual machines does not play a big role. And if so - let's take a FreeBSD here! Err codemadness.org 70 i 9154 NetBSD 9 RC1 Available (http://blog.netbsd.org/tnf/entry/first_release_candidate_for_netbsd) Err codemadness.org 70 i 9155 We hope this will lead to the best NetBSD release ever (only to be topped by NetBSD 10 next year). Err codemadness.org 70 i 9156 Here are a few highlights of the new release: Err codemadness.org 70 i 9157 Support for Arm AArch64 (64-bit Armv8-A) machines, including "Arm ServerReady" compliant machines (SBBR+SBSA) Err codemadness.org 70 i 9158 Enhanced hardware support for Armv7-A Err codemadness.org 70 i 9159 Updated GPU drivers (e.g. support for Intel Kabylake) Err codemadness.org 70 i 9160 Enhanced virtualization support Err codemadness.org 70 i 9161 Support for hardware-accelerated virtualization (NVMM) Err codemadness.org 70 i 9162 Support for Performance Monitoring Counters Err codemadness.org 70 i 9163 Support for Kernel ASLR Err codemadness.org 70 i 9164 Support several kernel sanitizers (KLEAK, KASAN, KUBSAN) Err codemadness.org 70 i 9165 Support for userland sanitizers Err codemadness.org 70 i 9166 Audit of the network stack Err codemadness.org 70 i 9167 Many improvements in NPF Err codemadness.org 70 i 9168 Updated ZFS Err codemadness.org 70 i 9169 Reworked error handling and NCQ support in the SATA subsystem Err codemadness.org 70 i 9170 Support a common framework for USB Ethernet drivers (usbnet) Err codemadness.org 70 i 9171 You can download binaries of NetBSD 9.0RC1 from our Fastly-provided CDN: https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.0RC1/ Err codemadness.org 70 i 9172 OPNsense 20.1 Keen Kingfisher released (https://opnsense.org/opnsense-20-1-keen-kingfisher-released/) Err codemadness.org 70 i 9173 For over 5 years now, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, HardenedBSD security, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing. Err codemadness.org 70 i 9174 20.1, nicknamed "Keen Kingfisher", is a subtle improvement on sustainable firewall experience. This release adds VXLAN and additional loopback device support, IPsec public key authentication and elliptic curve TLS certificate creation amongst others. Third party software has been updated to their latest versions. The logging frontend was rewritten for MVC with seamless API support. On the far side the documentation increased in quality as well as quantity and now presents itself in a familiar menu layout. Err codemadness.org 70 i 9175 Idealistic Future for HardenedBSD (https://hardenedbsd.org/article/shawn-webb/2020-01-26/idealistic-future-hardenedbsd) Err codemadness.org 70 i 9176 Over the past month, we purchased and deployed the new 13-CURRENT/amd64 package building server. We published our first 13-CURRENT/amd64 production package build using that server. We then rebuilt the old package building server to act as the 12-STABLE/amd64 package building server. This post signifies a very important milestone: we have now fully recovered from last year's death of our infrastructure. Our 12-STABLE/amd64 repo, previously out-of-date by many months, is now fully up-to-date! Err codemadness.org 70 i 9177 HardenedBSD is in a very unique position to provide innovative solutions to at-risk and underprivileged populations. As such, we are making human rights endeavors a defining area of focus. Our infrastructure will integrate various privacy and anonymity enhancing technologies and techniques to protect lives. Our operating system's security posture will increase, especially with our focus on exploit mitigations. Err codemadness.org 70 i 9178 Navigating the intersection between human rights and information security directly impacts lives. HardenedBSD's 2020 mission and focus is to deliver an entire hardened ecosystem that is unfriendly towards those who would oppress or censor their people. This includes a subtle shift in priorities to match this new mission and focus. While we implement exploit mitigations and further harden the ecosystem, we will seek out opportunities to contribute a tangible and unique impact on human rights issues. Providing Tor Onion Services for our core infrastructure is the first step in likely many to come towards securely helping those in need. Err codemadness.org 70 i 9179 Beastie Bits Err codemadness.org 70 i 9180 Warner Losh's FOSDEM talk (https://fosdem.org/2020/interviews/warner-losh/) Err codemadness.org 70 i 9181 Relational Pipes v0.15 (https://relational-pipes.globalcode.info/v_0/release-v0.15.xhtml) Err codemadness.org 70 i 9182 A reminder for where to find NetBSD ARM images (http://www.armbsd.org/arm/) Err codemadness.org 70 i 9183 New Safe Memory Reclamation feature in UMA (https://lists.freebsd.org/pipermail/freebsd-arch/2020-January/019866.html) Err codemadness.org 70 i 9184 BSD Users Stockholm Meetup (https://twitter.com/niclaszeising/status/1216667359831842817) Err codemadness.org 70 i 9185 Feedback/Questions Err codemadness.org 70 i 9186 ZFS - Rosetta Stone Document? (http://dpaste.com/13EK8YH#wrap) Err codemadness.org 70 i 9187 Pat - Question (http://dpaste.com/2DN5RA4#wrap) Err codemadness.org 70 i 9188 Sigflup - Wayland on the BSDs (http://dpaste.com/03Y4FQ7#wrap) Err codemadness.org 70 i 9189 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 9190 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 9191 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0337.mp4" type="video/mp4"> Err codemadness.org 70 i 9192 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 9193 </video> Err codemadness.org 70 i 9194 Err codemadness.org 70 i 9195 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, happyness, stress, foss, full time open source, fileserver, file server, kubernetes, k8s, bhyve, netbsd 10, opnsense, keen kingfisher Err codemadness.org 70 i 9196 Err codemadness.org 70 i 9197 Happinesses and stresses of full-time FOSS work, building a FreeBSD fileserver, Kubernetes on FreeBSD bhyve, NetBSD 9 RC1 available, OPNSense 20.1 is here, HardenedBSD’s idealistic future, and more.

Err codemadness.org 70 i 9198 Err codemadness.org 70 i 9199

Headlines

Err codemadness.org 70 i 9200 Err codemadness.org 70 i 9201

The happinesses and stresses of full-time FOSS work

Err codemadness.org 70 i 9202 Err codemadness.org 70 i 9203
Err codemadness.org 70 i 9204

In the past few days, several free software maintainers have come out to discuss the stresses of their work. Though the timing was suggestive, my article last week on the philosophy of project governance was, at best, only tangentially related to this topic - I had been working on that article for a while. I do have some thoughts that I’d like to share about what kind of stresses I’ve dealt with as a FOSS maintainer, and how I’ve managed (or often mismanaged) it.

Err codemadness.org 70 i 9205 Err codemadness.org 70 i 9206

February will mark one year that I’ve been working on self-directed free software projects full-time. I was planning on writing an optimistic retrospective article around this time, but given the current mood of the ecosystem I think it would be better to be realistic. In this stage of my career, I now feel at once happier, busier, more fulfilled, more engaged, more stressed, and more depressed than I have at any other point in my life.

Err codemadness.org 70 i 9207 Err codemadness.org 70 i 9208

The good parts are numerous. I’m able to work on my life’s passions, and my projects are in the best shape they’ve ever been thanks to the attention I’m able to pour into them. I’ve also been able to do more thoughtful, careful work; with the extra time I’ve been able to make my software more robust and reliable than it’s ever been. The variety of projects I can invest my time into has also increased substantially, with what was once relegated to minor curiosities now receiving a similar amount of attention as my larger projects were receiving in my spare time before. I can work from anywhere in the world, at any time, not worrying about when to take time off and when to put my head down and crank out a lot of code.

Err codemadness.org 70 i 9209 Err codemadness.org 70 i 9210

The frustrations are numerous, as well. I often feel like I’ve bit off more than I can chew. This has been the default state of affairs for me for a long time; I’m often neglecting half of my projects in order to obtain progress by leaps and bounds in just a few. Working on FOSS full-time has cast this model’s disadvantages into greater relief, as I focus on a greater breadth of projects and spend more time on them.

Err codemadness.org 70 i 9211
Err codemadness.org 70 i 9212 Err codemadness.org 70 i 9213
Err codemadness.org 70 i 9214 Err codemadness.org 70 i 9215

Building a FreeBSD File Server

Err codemadness.org 70 i 9216 Err codemadness.org 70 i 9217
Err codemadness.org 70 i 9218

Recently at my job, I was faced with a task to develop a file server explicitly suited for the requirements of the company. Needless to say, any configuration of a kind depends on what the infrastructure needs. So, drawing from my personal experience and numerous materials on the web, I came up with the combination FreeBSD+SAMBA+AD as the most appropriate. It appears to be a perfect choice for this environment, and harmonic addition to the existing network configuration since FreeBSD + SAMBA + AD enables admins with the broad range of possibilities for access control. However, as nothing is perfect, this configuration isn’t the best choice if your priority is data protection because it won’t be able to reach the necessary levels of reliability and fault tolerance without outside improvements.

Err codemadness.org 70 i 9219 Err codemadness.org 70 i 9220

Now, since we’ve established that, let’s move on to the next point. This article’s describing the process of building a test environment while concentrating primarily on the details of the configuration. As the author, though, I must say I’m in no way suggesting that this is the only way! The following configuration will be presented in its initial stage, with the minimum requirements necessary to get the job done, and its purpose in one specific situation only. Here, look at this as a useful strategy to solve similar tasks. Well, let’s get started!

Err codemadness.org 70 i 9221
Err codemadness.org 70 i 9222 Err codemadness.org 70 i 9223
Err codemadness.org 70 i 9224 Err codemadness.org 70 i 9225

Report from the first Hamilton BSD Users Group Meeting

Err codemadness.org 70 i 9226 Err codemadness.org 70 i 9227
Err codemadness.org 70 i 9228

February 11th was the first meeting of this new user group, founded by John Young and myself

Err codemadness.org 70 i 9229 Err codemadness.org 70 i 9230

11 people attended, and a lot of good discussions were had

Err codemadness.org 70 i 9231 Err codemadness.org 70 i 9232

One of the attendees already owns a domain that fits well for the group, so we will be getting that setup over the next few weeks, as well as the twitter account, and other organization stuff.

Err codemadness.org 70 i 9233 Err codemadness.org 70 i 9234

Special thanks to the illumos users who drove in from Buffalo to attend, although they may have actually had a shorter drive than a few of the other attendees.

Err codemadness.org 70 i 9235 Err codemadness.org 70 i 9236

The next meeting is scheduled again for the 2nd Tuesday of the month, March 10th.

Err codemadness.org 70 i 9237 Err codemadness.org 70 i 9238

We are still discussing if we should meet at a restaurant again, or try to get a space at the local college or innovation hub where we can have a projector etc.

Err codemadness.org 70 i 9239
Err codemadness.org 70 i 9240 Err codemadness.org 70 i 9241
Err codemadness.org 70 i 9242 Err codemadness.org 70 i 9243

News Roundup

Err codemadness.org 70 i 9244 Err codemadness.org 70 i 9245

Kubernetes on FreeBSD Bhyve

Err codemadness.org 70 i 9246 Err codemadness.org 70 i 9247
Err codemadness.org 70 i 9248

There are quite a few solutions for container orchestration, but the most popular (or the most famous and highly advertised, is probably, a Kubernetes) Since I plan to conduct many experiments with installing and configuring k8s, I need a laboratory in which I can quickly and easily deploy a cluster in any quantities for myself. In my work and everyday life I use two OS very tightly - Linux and FreeBSD OS. Kubernetes and docker are Linux-centric projects, and at first glance, you should not expect any useful participation and help from FreeBSD here. As the saying goes, an elephant can be made out of a fly, but it will no longer fly. However, two tempting things come to mind - this is very good integration and work in the FreeBSD ZFS file system, from which it would be nice to use the snapshot mechanism, COW and reliability. And the second is the bhyve hypervisor, because we still need the docker and k8s loader in the form of the Linux kernel. Thus, we need to connect a certain number of actions in various ways, most of which are related to starting and pre-configuring virtual machines. This is typical of both a Linux-based server and FreeBSD. What exactly will work under the hood to run virtual machines does not play a big role. And if so - let's take a FreeBSD here!

Err codemadness.org 70 i 9249
Err codemadness.org 70 i 9250 Err codemadness.org 70 i 9251
Err codemadness.org 70 i 9252 Err codemadness.org 70 i 9253

NetBSD 9 RC1 Available

Err codemadness.org 70 i 9254 Err codemadness.org 70 i 9255
Err codemadness.org 70 i 9256

We hope this will lead to the best NetBSD release ever (only to be topped by NetBSD 10 next year).

Err codemadness.org 70 i 9257
Err codemadness.org 70 i 9258 Err codemadness.org 70 i 9259
    Err codemadness.org 70 i 9260
  • Here are a few highlights of the new release:

    Err codemadness.org 70 i 9261 Err codemadness.org 70 i 9262
      Err codemadness.org 70 i 9263
    • Support for Arm AArch64 (64-bit Armv8-A) machines, including "Arm ServerReady" compliant machines (SBBR+SBSA)
    • Err codemadness.org 70 i 9264
    • Enhanced hardware support for Armv7-A
    • Err codemadness.org 70 i 9265
    • Updated GPU drivers (e.g. support for Intel Kabylake)
    • Err codemadness.org 70 i 9266
    • Enhanced virtualization support
    • Err codemadness.org 70 i 9267
    • Support for hardware-accelerated virtualization (NVMM)
    • Err codemadness.org 70 i 9268
    • Support for Performance Monitoring Counters
    • Err codemadness.org 70 i 9269
    • Support for Kernel ASLR
    • Err codemadness.org 70 i 9270
    • Support several kernel sanitizers (KLEAK, KASAN, KUBSAN)
    • Err codemadness.org 70 i 9271
    • Support for userland sanitizers
    • Err codemadness.org 70 i 9272
    • Audit of the network stack
    • Err codemadness.org 70 i 9273
    • Many improvements in NPF
    • Err codemadness.org 70 i 9274
    • Updated ZFS
    • Err codemadness.org 70 i 9275
    • Reworked error handling and NCQ support in the SATA subsystem
    • Err codemadness.org 70 i 9276
    • Support a common framework for USB Ethernet drivers (usbnet)
    • Err codemadness.org 70 i 9277
  • Err codemadness.org 70 i 9278
  • You can download binaries of NetBSD 9.0_RC1 from our Fastly-provided CDN: https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.0_RC1/

  • Err codemadness.org 70 i 9279
Err codemadness.org 70 i 9280 Err codemadness.org 70 i 9281
Err codemadness.org 70 i 9282 Err codemadness.org 70 i 9283

OPNsense 20.1 Keen Kingfisher released

Err codemadness.org 70 i 9284 Err codemadness.org 70 i 9285
Err codemadness.org 70 i 9286

For over 5 years now, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, HardenedBSD security, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.

Err codemadness.org 70 i 9287 Err codemadness.org 70 i 9288

20.1, nicknamed "Keen Kingfisher", is a subtle improvement on sustainable firewall experience. This release adds VXLAN and additional loopback device support, IPsec public key authentication and elliptic curve TLS certificate creation amongst others. Third party software has been updated to their latest versions. The logging frontend was rewritten for MVC with seamless API support. On the far side the documentation increased in quality as well as quantity and now presents itself in a familiar menu layout.

Err codemadness.org 70 i 9289
Err codemadness.org 70 i 9290 Err codemadness.org 70 i 9291
Err codemadness.org 70 i 9292 Err codemadness.org 70 i 9293

Idealistic Future for HardenedBSD

Err codemadness.org 70 i 9294 Err codemadness.org 70 i 9295
Err codemadness.org 70 i 9296

Over the past month, we purchased and deployed the new 13-CURRENT/amd64 package building server. We published our first 13-CURRENT/amd64 production package build using that server. We then rebuilt the old package building server to act as the 12-STABLE/amd64 package building server. This post signifies a very important milestone: we have now fully recovered from last year's death of our infrastructure. Our 12-STABLE/amd64 repo, previously out-of-date by many months, is now fully up-to-date!

Err codemadness.org 70 i 9297 Err codemadness.org 70 i 9298

HardenedBSD is in a very unique position to provide innovative solutions to at-risk and underprivileged populations. As such, we are making human rights endeavors a defining area of focus. Our infrastructure will integrate various privacy and anonymity enhancing technologies and techniques to protect lives. Our operating system's security posture will increase, especially with our focus on exploit mitigations.

Err codemadness.org 70 i 9299 Err codemadness.org 70 i 9300

Navigating the intersection between human rights and information security directly impacts lives. HardenedBSD's 2020 mission and focus is to deliver an entire hardened ecosystem that is unfriendly towards those who would oppress or censor their people. This includes a subtle shift in priorities to match this new mission and focus. While we implement exploit mitigations and further harden the ecosystem, we will seek out opportunities to contribute a tangible and unique impact on human rights issues. Providing Tor Onion Services for our core infrastructure is the first step in likely many to come towards securely helping those in need.

Err codemadness.org 70 i 9301
Err codemadness.org 70 i 9302 Err codemadness.org 70 i 9303
Err codemadness.org 70 i 9304 Err codemadness.org 70 i 9305

Beastie Bits

Err codemadness.org 70 i 9306 Err codemadness.org 70 i 9307 Err codemadness.org 70 i 9314 Err codemadness.org 70 i 9315
Err codemadness.org 70 i 9316 Err codemadness.org 70 i 9317

Feedback/Questions

Err codemadness.org 70 i 9318 Err codemadness.org 70 i 9319 Err codemadness.org 70 i 9324 Err codemadness.org 70 i 9325
Err codemadness.org 70 i 9326 Err codemadness.org 70 i 9327
    Err codemadness.org 70 i 9328
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 9329
Err codemadness.org 70 i 9330 Err codemadness.org 70 i 9331
Err codemadness.org 70 i 9332 Err codemadness.org 70 i 9333 ]]> Err codemadness.org 70 i 9337
Err codemadness.org 70 i 9338 Err codemadness.org 70 i 9339 Happinesses and stresses of full-time FOSS work, building a FreeBSD fileserver, Kubernetes on FreeBSD bhyve, NetBSD 9 RC1 available, OPNSense 20.1 is here, HardenedBSD’s idealistic future, and more.

Err codemadness.org 70 i 9340 Err codemadness.org 70 i 9341

Headlines

Err codemadness.org 70 i 9342 Err codemadness.org 70 i 9343

The happinesses and stresses of full-time FOSS work

Err codemadness.org 70 i 9344 Err codemadness.org 70 i 9345
Err codemadness.org 70 i 9346

In the past few days, several free software maintainers have come out to discuss the stresses of their work. Though the timing was suggestive, my article last week on the philosophy of project governance was, at best, only tangentially related to this topic - I had been working on that article for a while. I do have some thoughts that I’d like to share about what kind of stresses I’ve dealt with as a FOSS maintainer, and how I’ve managed (or often mismanaged) it.

Err codemadness.org 70 i 9347 Err codemadness.org 70 i 9348

February will mark one year that I’ve been working on self-directed free software projects full-time. I was planning on writing an optimistic retrospective article around this time, but given the current mood of the ecosystem I think it would be better to be realistic. In this stage of my career, I now feel at once happier, busier, more fulfilled, more engaged, more stressed, and more depressed than I have at any other point in my life.

Err codemadness.org 70 i 9349 Err codemadness.org 70 i 9350

The good parts are numerous. I’m able to work on my life’s passions, and my projects are in the best shape they’ve ever been thanks to the attention I’m able to pour into them. I’ve also been able to do more thoughtful, careful work; with the extra time I’ve been able to make my software more robust and reliable than it’s ever been. The variety of projects I can invest my time into has also increased substantially, with what was once relegated to minor curiosities now receiving a similar amount of attention as my larger projects were receiving in my spare time before. I can work from anywhere in the world, at any time, not worrying about when to take time off and when to put my head down and crank out a lot of code.

Err codemadness.org 70 i 9351 Err codemadness.org 70 i 9352

The frustrations are numerous, as well. I often feel like I’ve bit off more than I can chew. This has been the default state of affairs for me for a long time; I’m often neglecting half of my projects in order to obtain progress by leaps and bounds in just a few. Working on FOSS full-time has cast this model’s disadvantages into greater relief, as I focus on a greater breadth of projects and spend more time on them.

Err codemadness.org 70 i 9353
Err codemadness.org 70 i 9354 Err codemadness.org 70 i 9355
Err codemadness.org 70 i 9356 Err codemadness.org 70 i 9357

Building a FreeBSD File Server

Err codemadness.org 70 i 9358 Err codemadness.org 70 i 9359
Err codemadness.org 70 i 9360

Recently at my job, I was faced with a task to develop a file server explicitly suited for the requirements of the company. Needless to say, any configuration of a kind depends on what the infrastructure needs. So, drawing from my personal experience and numerous materials on the web, I came up with the combination FreeBSD+SAMBA+AD as the most appropriate. It appears to be a perfect choice for this environment, and harmonic addition to the existing network configuration since FreeBSD + SAMBA + AD enables admins with the broad range of possibilities for access control. However, as nothing is perfect, this configuration isn’t the best choice if your priority is data protection because it won’t be able to reach the necessary levels of reliability and fault tolerance without outside improvements.

Err codemadness.org 70 i 9361 Err codemadness.org 70 i 9362

Now, since we’ve established that, let’s move on to the next point. This article’s describing the process of building a test environment while concentrating primarily on the details of the configuration. As the author, though, I must say I’m in no way suggesting that this is the only way! The following configuration will be presented in its initial stage, with the minimum requirements necessary to get the job done, and its purpose in one specific situation only. Here, look at this as a useful strategy to solve similar tasks. Well, let’s get started!

Err codemadness.org 70 i 9363
Err codemadness.org 70 i 9364 Err codemadness.org 70 i 9365
Err codemadness.org 70 i 9366 Err codemadness.org 70 i 9367

Report from the first Hamilton BSD Users Group Meeting

Err codemadness.org 70 i 9368 Err codemadness.org 70 i 9369
Err codemadness.org 70 i 9370

February 11th was the first meeting of this new user group, founded by John Young and myself

Err codemadness.org 70 i 9371 Err codemadness.org 70 i 9372

11 people attended, and a lot of good discussions were had

Err codemadness.org 70 i 9373 Err codemadness.org 70 i 9374

One of the attendees already owns a domain that fits well for the group, so we will be getting that setup over the next few weeks, as well as the twitter account, and other organization stuff.

Err codemadness.org 70 i 9375 Err codemadness.org 70 i 9376

Special thanks to the illumos users who drove in from Buffalo to attend, although they may have actually had a shorter drive than a few of the other attendees.

Err codemadness.org 70 i 9377 Err codemadness.org 70 i 9378

The next meeting is scheduled again for the 2nd Tuesday of the month, March 10th.

Err codemadness.org 70 i 9379 Err codemadness.org 70 i 9380

We are still discussing if we should meet at a restaurant again, or try to get a space at the local college or innovation hub where we can have a projector etc.

Err codemadness.org 70 i 9381
Err codemadness.org 70 i 9382 Err codemadness.org 70 i 9383
Err codemadness.org 70 i 9384 Err codemadness.org 70 i 9385

News Roundup

Err codemadness.org 70 i 9386 Err codemadness.org 70 i 9387

Kubernetes on FreeBSD Bhyve

Err codemadness.org 70 i 9388 Err codemadness.org 70 i 9389
Err codemadness.org 70 i 9390

There are quite a few solutions for container orchestration, but the most popular (or the most famous and highly advertised, is probably, a Kubernetes) Since I plan to conduct many experiments with installing and configuring k8s, I need a laboratory in which I can quickly and easily deploy a cluster in any quantities for myself. In my work and everyday life I use two OS very tightly - Linux and FreeBSD OS. Kubernetes and docker are Linux-centric projects, and at first glance, you should not expect any useful participation and help from FreeBSD here. As the saying goes, an elephant can be made out of a fly, but it will no longer fly. However, two tempting things come to mind - this is very good integration and work in the FreeBSD ZFS file system, from which it would be nice to use the snapshot mechanism, COW and reliability. And the second is the bhyve hypervisor, because we still need the docker and k8s loader in the form of the Linux kernel. Thus, we need to connect a certain number of actions in various ways, most of which are related to starting and pre-configuring virtual machines. This is typical of both a Linux-based server and FreeBSD. What exactly will work under the hood to run virtual machines does not play a big role. And if so - let's take a FreeBSD here!

Err codemadness.org 70 i 9391
Err codemadness.org 70 i 9392 Err codemadness.org 70 i 9393
Err codemadness.org 70 i 9394 Err codemadness.org 70 i 9395

NetBSD 9 RC1 Available

Err codemadness.org 70 i 9396 Err codemadness.org 70 i 9397
Err codemadness.org 70 i 9398

We hope this will lead to the best NetBSD release ever (only to be topped by NetBSD 10 next year).

Err codemadness.org 70 i 9399
Err codemadness.org 70 i 9400 Err codemadness.org 70 i 9401
    Err codemadness.org 70 i 9402
  • Here are a few highlights of the new release:

    Err codemadness.org 70 i 9403 Err codemadness.org 70 i 9404
      Err codemadness.org 70 i 9405
    • Support for Arm AArch64 (64-bit Armv8-A) machines, including "Arm ServerReady" compliant machines (SBBR+SBSA)
    • Err codemadness.org 70 i 9406
    • Enhanced hardware support for Armv7-A
    • Err codemadness.org 70 i 9407
    • Updated GPU drivers (e.g. support for Intel Kabylake)
    • Err codemadness.org 70 i 9408
    • Enhanced virtualization support
    • Err codemadness.org 70 i 9409
    • Support for hardware-accelerated virtualization (NVMM)
    • Err codemadness.org 70 i 9410
    • Support for Performance Monitoring Counters
    • Err codemadness.org 70 i 9411
    • Support for Kernel ASLR
    • Err codemadness.org 70 i 9412
    • Support several kernel sanitizers (KLEAK, KASAN, KUBSAN)
    • Err codemadness.org 70 i 9413
    • Support for userland sanitizers
    • Err codemadness.org 70 i 9414
    • Audit of the network stack
    • Err codemadness.org 70 i 9415
    • Many improvements in NPF
    • Err codemadness.org 70 i 9416
    • Updated ZFS
    • Err codemadness.org 70 i 9417
    • Reworked error handling and NCQ support in the SATA subsystem
    • Err codemadness.org 70 i 9418
    • Support a common framework for USB Ethernet drivers (usbnet)
    • Err codemadness.org 70 i 9419
  • Err codemadness.org 70 i 9420
  • You can download binaries of NetBSD 9.0_RC1 from our Fastly-provided CDN: https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.0_RC1/

  • Err codemadness.org 70 i 9421
Err codemadness.org 70 i 9422 Err codemadness.org 70 i 9423
Err codemadness.org 70 i 9424 Err codemadness.org 70 i 9425

OPNsense 20.1 Keen Kingfisher released

Err codemadness.org 70 i 9426 Err codemadness.org 70 i 9427
Err codemadness.org 70 i 9428

For over 5 years now, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, HardenedBSD security, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.

Err codemadness.org 70 i 9429 Err codemadness.org 70 i 9430

20.1, nicknamed "Keen Kingfisher", is a subtle improvement on sustainable firewall experience. This release adds VXLAN and additional loopback device support, IPsec public key authentication and elliptic curve TLS certificate creation amongst others. Third party software has been updated to their latest versions. The logging frontend was rewritten for MVC with seamless API support. On the far side the documentation increased in quality as well as quantity and now presents itself in a familiar menu layout.

Err codemadness.org 70 i 9431
Err codemadness.org 70 i 9432 Err codemadness.org 70 i 9433
Err codemadness.org 70 i 9434 Err codemadness.org 70 i 9435

Idealistic Future for HardenedBSD

Err codemadness.org 70 i 9436 Err codemadness.org 70 i 9437
Err codemadness.org 70 i 9438

Over the past month, we purchased and deployed the new 13-CURRENT/amd64 package building server. We published our first 13-CURRENT/amd64 production package build using that server. We then rebuilt the old package building server to act as the 12-STABLE/amd64 package building server. This post signifies a very important milestone: we have now fully recovered from last year's death of our infrastructure. Our 12-STABLE/amd64 repo, previously out-of-date by many months, is now fully up-to-date!

Err codemadness.org 70 i 9439 Err codemadness.org 70 i 9440

HardenedBSD is in a very unique position to provide innovative solutions to at-risk and underprivileged populations. As such, we are making human rights endeavors a defining area of focus. Our infrastructure will integrate various privacy and anonymity enhancing technologies and techniques to protect lives. Our operating system's security posture will increase, especially with our focus on exploit mitigations.

Err codemadness.org 70 i 9441 Err codemadness.org 70 i 9442

Navigating the intersection between human rights and information security directly impacts lives. HardenedBSD's 2020 mission and focus is to deliver an entire hardened ecosystem that is unfriendly towards those who would oppress or censor their people. This includes a subtle shift in priorities to match this new mission and focus. While we implement exploit mitigations and further harden the ecosystem, we will seek out opportunities to contribute a tangible and unique impact on human rights issues. Providing Tor Onion Services for our core infrastructure is the first step in likely many to come towards securely helping those in need.

Err codemadness.org 70 i 9443
Err codemadness.org 70 i 9444 Err codemadness.org 70 i 9445
Err codemadness.org 70 i 9446 Err codemadness.org 70 i 9447

Beastie Bits

Err codemadness.org 70 i 9448 Err codemadness.org 70 i 9449 Err codemadness.org 70 i 9456 Err codemadness.org 70 i 9457
Err codemadness.org 70 i 9458 Err codemadness.org 70 i 9459

Feedback/Questions

Err codemadness.org 70 i 9460 Err codemadness.org 70 i 9461 Err codemadness.org 70 i 9466 Err codemadness.org 70 i 9467
Err codemadness.org 70 i 9468 Err codemadness.org 70 i 9469
    Err codemadness.org 70 i 9470
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 9471
Err codemadness.org 70 i 9472 Err codemadness.org 70 i 9473
Err codemadness.org 70 i 9474 Err codemadness.org 70 i 9475 ]]> Err codemadness.org 70 i 9479
Err codemadness.org 70 i 9480 https://fireside.fm/player/v2/FYhhasNR+dx_XMyZG Err codemadness.org 70 i 9481 Err codemadness.org 70 i 9482 ]]> Err codemadness.org 70 i 9483 Err codemadness.org 70 i 9484
Err codemadness.org 70 i 9485 Err codemadness.org 70 i 9486 336: Archived Knowledge Err codemadness.org 70 i 9487 https://www.bsdnow.tv/336 Err codemadness.org 70 i 9488 3f404c97-d972-4734-9152-420ea4263317 Err codemadness.org 70 i 9489 Thu, 06 Feb 2020 05:00:00 -0800 Err codemadness.org 70 i 9490 Allan Jude Err codemadness.org 70 i 9491 Err codemadness.org 70 i 9492 full Err codemadness.org 70 i 9493 Allan Jude Err codemadness.org 70 i 9494 Linux couldn’t duplicate OpenBSD, FreeBSD Q4 status report, OPNsense 19.7.9 released, archives retain and pass on knowledge, HardenedBSD Tor Onion Service v3 Nodes, and more. Err codemadness.org 70 i 9495 57:57 Err codemadness.org 70 i 9496 no Err codemadness.org 70 i 9497 Err codemadness.org 70 i 9498 Linux couldn’t duplicate OpenBSD, FreeBSD Q4 status report, OPNsense 19.7.9 released, archives retain and pass on knowledge, HardenedBSD Tor Onion Service v3 Nodes, and more. Err codemadness.org 70 i 9499 Headlines Err codemadness.org 70 i 9500 OpenBSD has to be a BSD Unix and you couldn't duplicate it with Linux (https://utcc.utoronto.ca/~cks/space/blog/unix/OpenBSDMustBeABSD?showcomments) Err codemadness.org 70 i 9501 OpenBSD has a well deserved reputation for putting security and a clean system (for code, documentation, and so on) first, and everything else second. OpenBSD is of course based on BSD (it's right there in the name) and descends from FreeBSD NetBSD (you can read the history here). But one of the questions you could ask about it is whether it had to be that way, and in particular if you could build something like OpenBSD on top of Linux. I believe that the answer is no. Err codemadness.org 70 i 9502 Linux and the *BSDs have a significantly different model of what they are. BSDs have a 'base system' that provides an integrated and fully operational core Unix, covering the kernel, C library and compiler, and the normal Unix user level programs, all maintained and distributed by the particular BSD. Linux is not a single unit this way, and instead all of the component parts are maintained separately and assembled in various ways by various Linux distributions. Both approaches have their advantages, but one big one for the BSD approach is that it enables global changes. Err codemadness.org 70 i 9503 Making global changes is an important part of what makes OpenBSD's approach to improving security, code maintenance, and so on work. Because it directly maintains everything as a unit, OpenBSD is in a position to introduce new C library or kernel APIs (or change them) and then immediately update all sorts of things in user level programs to use the new API. This takes a certain amount of work, of course, but it's possible to do it at all. And because OpenBSD can do this sort of ambitious global change, it does. Err codemadness.org 70 i 9504 This goes further than just the ability to make global changes, because in theory you can patch in global changes on top of a bunch of separate upstream projects. Because OpenBSD is in control of its entire base system, it's not forced to try to reconcile different development priorities or integrate clashing changes. OpenBSD can decide (and has) that only certain sorts of changes will be accepted into its system at all, no matter what people want. If there are features or entire programs that don't fit into what OpenBSD will accept, they just lose out. Err codemadness.org 70 i 9505 FreeBSD Quarterly Status Report 2019Q4 (https://lists.freebsd.org/pipermail/freebsd-announce/2020-January/001923.html) Err codemadness.org 70 i 9506 Here is the last quarterly status report for 2019. As you might remember from last report, we changed our timeline: now we collect reports the last month of each quarter and we edit and publish the full document the next month. Thus, we cover here the period October 2019 - December 2019. Err codemadness.org 70 i 9507 If you thought that the FreeBSD community was less active in the Christmas' quarter you will be glad to be proven wrong: a quick glance at the summary will be sufficient to see that much work has been done in the last months. Err codemadness.org 70 i 9508 Have a nice read! Err codemadness.org 70 i 9509 News Roundup Err codemadness.org 70 i 9510 OPNsense 19.7.9 released (https://opnsense.org/opnsense-19-7-9-released/) Err codemadness.org 70 i 9511 As 20.1 nears we will be making adjustments to the scope of the release with an announcement following shortly. Err codemadness.org 70 i 9512 For now, this update brings you a GeoIP database configuration page for aliases which is now required due to upstream database policy changes and a number of prominent third-party software updates we are happy to see included. Err codemadness.org 70 i 9513 Archives are important to retain and pass on knowledge (https://dan.langille.org/2020/01/07/archives-are-important-to-retain-and-pass-on-knowledge/) Err codemadness.org 70 i 9514 Archives are important. When they are public and available for searching, it retains and passes on knowledge. It saves vast amounts of time. Err codemadness.org 70 i 9515 HardenedBSD Tor Onion Service v3 Nodes (https://hardenedbsd.org/article/shawn-webb/2020-01-30/hardenedbsd-tor-onion-service-v3-nodes) Err codemadness.org 70 i 9516 I've been working today on deploying Tor Onion Service v3 nodes across our build infrastructure. I'm happy to announce that the public portion of this is now completed. Below you will find various onion service hostnames and their match to our infrastructure. Err codemadness.org 70 i 9517 hardenedbsd.org: lkiw4tmbudbr43hbyhm636sarn73vuow77czzohdbqdpjuq3vdzvenyd.onion Err codemadness.org 70 i 9518 ci-01.nyi.hardenedbsd.org: qspcqclhifj3tcpojsbwoxgwanlo2wakti2ia4wozxjcldkxmw2yj3yd.onion Err codemadness.org 70 i 9519 ci-03.md.hardenedbsd.org: eqvnohly4tjrkpwatdhgptftabpesofirnhz5kq7jzn4zd6ernpvnpqd.onion Err codemadness.org 70 i 9520 ci-04.md.hardenedbsd.org: rfqabq2w65nhdkukeqwf27r7h5xfh53h3uns6n74feeyl7s5fbjxczqd.onion Err codemadness.org 70 i 9521 git-01.md.hardenedbsd.org: dacxzjk3kq5mmepbdd3ai2ifynlzxsnpl2cnkfhridqfywihrfftapid.onion Err codemadness.org 70 i 9522 Beastie Bits Err codemadness.org 70 i 9523 The Missing Semester of Your CS Education (MIT Course) (https://missing.csail.mit.edu/) Err codemadness.org 70 i 9524 An old Unix Ad (https://i.redd.it/503390rf7md41.png) Err codemadness.org 70 i 9525 OpenBSD syscall call-from verification (https://marc.info/?l=openbsd-tech&m=157488907117170&w=2) Err codemadness.org 70 i 9526 OpenBSD/arm64 on Pinebook (https://twitter.com/bluerise/status/1220963106563579909) Err codemadness.org 70 i 9527 Reminder: First Southern Ontario BSD user group meeting, February 11th (this coming Tuesday!) 18:30 at Boston Pizza on Upper James st, Hamilton. (http://studybsd.com/) Err codemadness.org 70 i 9528 NYCBUG: March meeting will feature Dr. Paul Vixie and his new talk “Operating Systems as Dumb Pipes” (https://www.nycbug.org/) Err codemadness.org 70 i 9529 8th Meetup of the Stockholm BUG: March 3 at 18:00 (https://www.meetup.com/de-DE/BSD-Users-Stockholm/events/267873938/) Err codemadness.org 70 i 9530 Polish BSD User Group meets on Feb 11, 2020 at 18:15 (https://bsd-pl.org/en) Err codemadness.org 70 i 9531 Feedback/Questions Err codemadness.org 70 i 9532 Sean - ZFS and Creation Dates (http://dpaste.com/3W5WBV0#wrap) Err codemadness.org 70 i 9533 Christopher - Help on ZFS Disaster Recovery (http://dpaste.com/3SE43PW) Err codemadness.org 70 i 9534 Mike - Encrypted ZFS Send (http://dpaste.com/00J5JZG#wrap) Err codemadness.org 70 i 9535 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 9536 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 9537 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0336.mp4" type="video/mp4"> Err codemadness.org 70 i 9538 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 9539 </video> Err codemadness.org 70 i 9540 Err codemadness.org 70 i 9541 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, status, status report, opnsense, firewall, router, archives, knowledge, tor, tor onion service node Err codemadness.org 70 i 9542 Err codemadness.org 70 i 9543 Linux couldn’t duplicate OpenBSD, FreeBSD Q4 status report, OPNsense 19.7.9 released, archives retain and pass on knowledge, HardenedBSD Tor Onion Service v3 Nodes, and more.

Err codemadness.org 70 i 9544 Err codemadness.org 70 i 9545

Headlines

Err codemadness.org 70 i 9546 Err codemadness.org 70 i 9547

OpenBSD has to be a BSD Unix and you couldn't duplicate it with Linux

Err codemadness.org 70 i 9548 Err codemadness.org 70 i 9549
Err codemadness.org 70 i 9550

OpenBSD has a well deserved reputation for putting security and a clean system (for code, documentation, and so on) first, and everything else second. OpenBSD is of course based on BSD (it's right there in the name) and descends from FreeBSD NetBSD (you can read the history here). But one of the questions you could ask about it is whether it had to be that way, and in particular if you could build something like OpenBSD on top of Linux. I believe that the answer is no.

Err codemadness.org 70 i 9551 Err codemadness.org 70 i 9552

Linux and the *BSDs have a significantly different model of what they are. BSDs have a 'base system' that provides an integrated and fully operational core Unix, covering the kernel, C library and compiler, and the normal Unix user level programs, all maintained and distributed by the particular BSD. Linux is not a single unit this way, and instead all of the component parts are maintained separately and assembled in various ways by various Linux distributions. Both approaches have their advantages, but one big one for the BSD approach is that it enables global changes.

Err codemadness.org 70 i 9553 Err codemadness.org 70 i 9554

Making global changes is an important part of what makes OpenBSD's approach to improving security, code maintenance, and so on work. Because it directly maintains everything as a unit, OpenBSD is in a position to introduce new C library or kernel APIs (or change them) and then immediately update all sorts of things in user level programs to use the new API. This takes a certain amount of work, of course, but it's possible to do it at all. And because OpenBSD can do this sort of ambitious global change, it does.

Err codemadness.org 70 i 9555 Err codemadness.org 70 i 9556

This goes further than just the ability to make global changes, because in theory you can patch in global changes on top of a bunch of separate upstream projects. Because OpenBSD is in control of its entire base system, it's not forced to try to reconcile different development priorities or integrate clashing changes. OpenBSD can decide (and has) that only certain sorts of changes will be accepted into its system at all, no matter what people want. If there are features or entire programs that don't fit into what OpenBSD will accept, they just lose out.

Err codemadness.org 70 i 9557
Err codemadness.org 70 i 9558 Err codemadness.org 70 i 9559
Err codemadness.org 70 i 9560 Err codemadness.org 70 i 9561

FreeBSD Quarterly Status Report 2019Q4

Err codemadness.org 70 i 9562 Err codemadness.org 70 i 9563
Err codemadness.org 70 i 9564

Here is the last quarterly status report for 2019. As you might remember from last report, we changed our timeline: now we collect reports the last month of each quarter and we edit and publish the full document the next month. Thus, we cover here the period October 2019 - December 2019.

Err codemadness.org 70 i 9565 Err codemadness.org 70 i 9566

If you thought that the FreeBSD community was less active in the Christmas' quarter you will be glad to be proven wrong: a quick glance at the summary will be sufficient to see that much work has been done in the last months.

Err codemadness.org 70 i 9567 Err codemadness.org 70 i 9568

Have a nice read!

Err codemadness.org 70 i 9569
Err codemadness.org 70 i 9570 Err codemadness.org 70 i 9571
Err codemadness.org 70 i 9572 Err codemadness.org 70 i 9573

News Roundup

Err codemadness.org 70 i 9574 Err codemadness.org 70 i 9575

OPNsense 19.7.9 released

Err codemadness.org 70 i 9576 Err codemadness.org 70 i 9577
Err codemadness.org 70 i 9578

As 20.1 nears we will be making adjustments to the scope of the release with an announcement following shortly.

Err codemadness.org 70 i 9579 Err codemadness.org 70 i 9580

For now, this update brings you a GeoIP database configuration page for aliases which is now required due to upstream database policy changes and a number of prominent third-party software updates we are happy to see included.

Err codemadness.org 70 i 9581
Err codemadness.org 70 i 9582 Err codemadness.org 70 i 9583
Err codemadness.org 70 i 9584 Err codemadness.org 70 i 9585

Archives are important to retain and pass on knowledge

Err codemadness.org 70 i 9586 Err codemadness.org 70 i 9587
Err codemadness.org 70 i 9588

Archives are important. When they are public and available for searching, it retains and passes on knowledge. It saves vast amounts of time.

Err codemadness.org 70 i 9589
Err codemadness.org 70 i 9590 Err codemadness.org 70 i 9591
Err codemadness.org 70 i 9592 Err codemadness.org 70 i 9593

HardenedBSD Tor Onion Service v3 Nodes

Err codemadness.org 70 i 9594 Err codemadness.org 70 i 9595
Err codemadness.org 70 i 9596

I've been working today on deploying Tor Onion Service v3 nodes across our build infrastructure. I'm happy to announce that the public portion of this is now completed. Below you will find various onion service hostnames and their match to our infrastructure.

Err codemadness.org 70 i 9597
Err codemadness.org 70 i 9598 Err codemadness.org 70 i 9599
    Err codemadness.org 70 i 9600
  • hardenedbsd.org: lkiw4tmbudbr43hbyhm636sarn73vuow77czzohdbqdpjuq3vdzvenyd.onion
  • Err codemadness.org 70 i 9601
  • ci-01.nyi.hardenedbsd.org: qspcqclhifj3tcpojsbwoxgwanlo2wakti2ia4wozxjcldkxmw2yj3yd.onion
  • Err codemadness.org 70 i 9602
  • ci-03.md.hardenedbsd.org: eqvnohly4tjrkpwatdhgptftabpesofirnhz5kq7jzn4zd6ernpvnpqd.onion
  • Err codemadness.org 70 i 9603
  • ci-04.md.hardenedbsd.org: rfqabq2w65nhdkukeqwf27r7h5xfh53h3uns6n74feeyl7s5fbjxczqd.onion
  • Err codemadness.org 70 i 9604
  • git-01.md.hardenedbsd.org: dacxzjk3kq5mmepbdd3ai2ifynlzxsnpl2cnkfhridqfywihrfftapid.onion
  • Err codemadness.org 70 i 9605
Err codemadness.org 70 i 9606 Err codemadness.org 70 i 9607
Err codemadness.org 70 i 9608 Err codemadness.org 70 i 9609

Beastie Bits

Err codemadness.org 70 i 9610 Err codemadness.org 70 i 9611 Err codemadness.org 70 i 9621 Err codemadness.org 70 i 9622
Err codemadness.org 70 i 9623 Err codemadness.org 70 i 9624

Feedback/Questions

Err codemadness.org 70 i 9625 Err codemadness.org 70 i 9626 Err codemadness.org 70 i 9631 Err codemadness.org 70 i 9632
Err codemadness.org 70 i 9633 Err codemadness.org 70 i 9634
    Err codemadness.org 70 i 9635
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 9636
Err codemadness.org 70 i 9637 Err codemadness.org 70 i 9638
Err codemadness.org 70 i 9639 Err codemadness.org 70 i 9640 ]]> Err codemadness.org 70 i 9644
Err codemadness.org 70 i 9645 Err codemadness.org 70 i 9646 Linux couldn’t duplicate OpenBSD, FreeBSD Q4 status report, OPNsense 19.7.9 released, archives retain and pass on knowledge, HardenedBSD Tor Onion Service v3 Nodes, and more.

Err codemadness.org 70 i 9647 Err codemadness.org 70 i 9648

Headlines

Err codemadness.org 70 i 9649 Err codemadness.org 70 i 9650

OpenBSD has to be a BSD Unix and you couldn't duplicate it with Linux

Err codemadness.org 70 i 9651 Err codemadness.org 70 i 9652
Err codemadness.org 70 i 9653

OpenBSD has a well deserved reputation for putting security and a clean system (for code, documentation, and so on) first, and everything else second. OpenBSD is of course based on BSD (it's right there in the name) and descends from FreeBSD NetBSD (you can read the history here). But one of the questions you could ask about it is whether it had to be that way, and in particular if you could build something like OpenBSD on top of Linux. I believe that the answer is no.

Err codemadness.org 70 i 9654 Err codemadness.org 70 i 9655

Linux and the *BSDs have a significantly different model of what they are. BSDs have a 'base system' that provides an integrated and fully operational core Unix, covering the kernel, C library and compiler, and the normal Unix user level programs, all maintained and distributed by the particular BSD. Linux is not a single unit this way, and instead all of the component parts are maintained separately and assembled in various ways by various Linux distributions. Both approaches have their advantages, but one big one for the BSD approach is that it enables global changes.

Err codemadness.org 70 i 9656 Err codemadness.org 70 i 9657

Making global changes is an important part of what makes OpenBSD's approach to improving security, code maintenance, and so on work. Because it directly maintains everything as a unit, OpenBSD is in a position to introduce new C library or kernel APIs (or change them) and then immediately update all sorts of things in user level programs to use the new API. This takes a certain amount of work, of course, but it's possible to do it at all. And because OpenBSD can do this sort of ambitious global change, it does.

Err codemadness.org 70 i 9658 Err codemadness.org 70 i 9659

This goes further than just the ability to make global changes, because in theory you can patch in global changes on top of a bunch of separate upstream projects. Because OpenBSD is in control of its entire base system, it's not forced to try to reconcile different development priorities or integrate clashing changes. OpenBSD can decide (and has) that only certain sorts of changes will be accepted into its system at all, no matter what people want. If there are features or entire programs that don't fit into what OpenBSD will accept, they just lose out.

Err codemadness.org 70 i 9660
Err codemadness.org 70 i 9661 Err codemadness.org 70 i 9662
Err codemadness.org 70 i 9663 Err codemadness.org 70 i 9664

FreeBSD Quarterly Status Report 2019Q4

Err codemadness.org 70 i 9665 Err codemadness.org 70 i 9666
Err codemadness.org 70 i 9667

Here is the last quarterly status report for 2019. As you might remember from last report, we changed our timeline: now we collect reports the last month of each quarter and we edit and publish the full document the next month. Thus, we cover here the period October 2019 - December 2019.

Err codemadness.org 70 i 9668 Err codemadness.org 70 i 9669

If you thought that the FreeBSD community was less active in the Christmas' quarter you will be glad to be proven wrong: a quick glance at the summary will be sufficient to see that much work has been done in the last months.

Err codemadness.org 70 i 9670 Err codemadness.org 70 i 9671

Have a nice read!

Err codemadness.org 70 i 9672
Err codemadness.org 70 i 9673 Err codemadness.org 70 i 9674
Err codemadness.org 70 i 9675 Err codemadness.org 70 i 9676

News Roundup

Err codemadness.org 70 i 9677 Err codemadness.org 70 i 9678

OPNsense 19.7.9 released

Err codemadness.org 70 i 9679 Err codemadness.org 70 i 9680
Err codemadness.org 70 i 9681

As 20.1 nears we will be making adjustments to the scope of the release with an announcement following shortly.

Err codemadness.org 70 i 9682 Err codemadness.org 70 i 9683

For now, this update brings you a GeoIP database configuration page for aliases which is now required due to upstream database policy changes and a number of prominent third-party software updates we are happy to see included.

Err codemadness.org 70 i 9684
Err codemadness.org 70 i 9685 Err codemadness.org 70 i 9686
Err codemadness.org 70 i 9687 Err codemadness.org 70 i 9688

Archives are important to retain and pass on knowledge

Err codemadness.org 70 i 9689 Err codemadness.org 70 i 9690
Err codemadness.org 70 i 9691

Archives are important. When they are public and available for searching, it retains and passes on knowledge. It saves vast amounts of time.

Err codemadness.org 70 i 9692
Err codemadness.org 70 i 9693 Err codemadness.org 70 i 9694
Err codemadness.org 70 i 9695 Err codemadness.org 70 i 9696

HardenedBSD Tor Onion Service v3 Nodes

Err codemadness.org 70 i 9697 Err codemadness.org 70 i 9698
Err codemadness.org 70 i 9699

I've been working today on deploying Tor Onion Service v3 nodes across our build infrastructure. I'm happy to announce that the public portion of this is now completed. Below you will find various onion service hostnames and their match to our infrastructure.

Err codemadness.org 70 i 9700
Err codemadness.org 70 i 9701 Err codemadness.org 70 i 9702
    Err codemadness.org 70 i 9703
  • hardenedbsd.org: lkiw4tmbudbr43hbyhm636sarn73vuow77czzohdbqdpjuq3vdzvenyd.onion
  • Err codemadness.org 70 i 9704
  • ci-01.nyi.hardenedbsd.org: qspcqclhifj3tcpojsbwoxgwanlo2wakti2ia4wozxjcldkxmw2yj3yd.onion
  • Err codemadness.org 70 i 9705
  • ci-03.md.hardenedbsd.org: eqvnohly4tjrkpwatdhgptftabpesofirnhz5kq7jzn4zd6ernpvnpqd.onion
  • Err codemadness.org 70 i 9706
  • ci-04.md.hardenedbsd.org: rfqabq2w65nhdkukeqwf27r7h5xfh53h3uns6n74feeyl7s5fbjxczqd.onion
  • Err codemadness.org 70 i 9707
  • git-01.md.hardenedbsd.org: dacxzjk3kq5mmepbdd3ai2ifynlzxsnpl2cnkfhridqfywihrfftapid.onion
  • Err codemadness.org 70 i 9708
Err codemadness.org 70 i 9709 Err codemadness.org 70 i 9710
Err codemadness.org 70 i 9711 Err codemadness.org 70 i 9712

Beastie Bits

Err codemadness.org 70 i 9713 Err codemadness.org 70 i 9714 Err codemadness.org 70 i 9724 Err codemadness.org 70 i 9725
Err codemadness.org 70 i 9726 Err codemadness.org 70 i 9727

Feedback/Questions

Err codemadness.org 70 i 9728 Err codemadness.org 70 i 9729 Err codemadness.org 70 i 9734 Err codemadness.org 70 i 9735
Err codemadness.org 70 i 9736 Err codemadness.org 70 i 9737
    Err codemadness.org 70 i 9738
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 9739
Err codemadness.org 70 i 9740 Err codemadness.org 70 i 9741
Err codemadness.org 70 i 9742 Err codemadness.org 70 i 9743 ]]> Err codemadness.org 70 i 9747
Err codemadness.org 70 i 9748 https://fireside.fm/player/v2/FYhhasNR+qlzMcaj3 Err codemadness.org 70 i 9749 Err codemadness.org 70 i 9750 ]]> Err codemadness.org 70 i 9751 Err codemadness.org 70 i 9752
Err codemadness.org 70 i 9753 Err codemadness.org 70 i 9754 335: FreeBSD Down Under Err codemadness.org 70 i 9755 https://www.bsdnow.tv/335 Err codemadness.org 70 i 9756 12678787-276e-4471-a8a3-115404afed57 Err codemadness.org 70 i 9757 Thu, 30 Jan 2020 05:00:00 -0800 Err codemadness.org 70 i 9758 Allan Jude Err codemadness.org 70 i 9759 Err codemadness.org 70 i 9760 full Err codemadness.org 70 i 9761 Allan Jude Err codemadness.org 70 i 9762 Hyperbola Developer interview, why you should migrate from Linux to BSD, FreeBSD is an amazing OS, improving the ptrace(2) API in LLVM 10, First FreeBSD conference in Australia, and a guide to containers on FreeNAS. Err codemadness.org 70 i 9763 53:54 Err codemadness.org 70 i 9764 no Err codemadness.org 70 i 9765 Err codemadness.org 70 i 9766 Hyperbola Developer interview, why you should migrate from Linux to BSD, FreeBSD is an amazing OS, improving the ptrace(2) API in LLVM 10, First FreeBSD conference in Australia, and a guide to containers on FreeNAS. Err codemadness.org 70 i 9767 Headlines Err codemadness.org 70 i 9768 FreeBSD is an amazing operating System (https://www.unixsheikh.com/articles/freebsd-is-an-amazing-operating-system.html) Err codemadness.org 70 i 9769 Update 2020-01-21: Since I wrote this article it got posted on Hacker News, Reddit and Lobster, and a few people have emailed me with comments. I have updated the article with comments where I have found it needed. As an important side note I would like to point out that I am not a FreeBSD developer, there may be things going on in the FreeBSD world that I know absolutely nothing about. I am also not glued to the FreeBSD developer mailing lists. I am not a FreeBSD "fanboy". I have been using GNU/Linux a ton more for the past two decades than FreeBSD, mainly due to hardware incompatibility (lacking or buggy drivers), and I love both Debian GNU/Linux and Arch Linux just as much as FreeBSD. However, I am concerned about the development of GNU/Linux as of late. Also this article is not about me trying to make anyone switch from something else to FreeBSD. It's about why I like FreeBSD and that I recommend you try it out if you're into messing with operating systems. Err codemadness.org 70 i 9770 I think the year was late 1999 or mid 2000 when I one day was browsing computer books at my favorite bookshop and I discovered the book The Complete FreeBSD third edition from 1999 by Greg Lehey. With the book came 4 CD Roms with FreeBSD 3.3. Err codemadness.org 70 i 9771 I had already familiarized myself with GNU/Linux in 1998, and I was in the process of migrating every server and desktop operating system away from Microsoft Windows, both at home and at my company, to GNU/Linux, initially Red Hat Linux and then later Debian GNU/Linux, which eventually became my favorite GNU/Linux distribution for many years. Err codemadness.org 70 i 9772 When I first saw The Complete FreeBSD book by Greg Lehey I remember noticing the text on the front page that said, "The Free Version of Berkeley UNIX" and "Rock Solid Stability", and I was immediately intrigued! What was that all about? A free UNIX operating system! And rock solid stability? That sounded amazing. Err codemadness.org 70 i 9773 Hyperbola Dev Interview (https://itsfoss.com/hyperbola-linux-bsd/) Err codemadness.org 70 i 9774 In late December 2019, Hyperbola announced that they would be making major changes to their project. They have decided to drop the Linux kernel in favor of forking the OpenBSD kernel. This announcement only came months after Project Trident announced that they were going in the opposite direction (from BSD to Linux). Err codemadness.org 70 i 9775 Hyperbola also plans to replace all software that is not GPL v3 compliant with new versions that are. Err codemadness.org 70 i 9776 To get more insight into the future of their new project, I interviewed Andre, co-founder of Hyperbola. Err codemadness.org 70 i 9777 News Roundup Err codemadness.org 70 i 9778 Improving the ptrace(2) API and preparing for LLVM-10.0 (https://blog.netbsd.org/tnf/entry/improving_the_ptrace_2_api) Err codemadness.org 70 i 9779 This month I have improved the NetBSD ptrace(2) API, removing one legacy interface with a few flaws and replacing it with two new calls with new features, and removing technical debt. Err codemadness.org 70 i 9780 As LLVM 10.0 is branching now soon (Jan 15th 2020), I worked on proper support of the LLVM features for NetBSD 9.0 (today RC1) and NetBSD HEAD (future 10.0). Err codemadness.org 70 i 9781 The first FreeBSD conference in Australia (https://rubenerd.com/the-first-freebsd-conference-in-australia/) Err codemadness.org 70 i 9782 FreeBSD has existed as an operating system, project, and foundation for more than twenty years, and its earlier incantations have exited for far longer. The old guard have been developing code, porting software, and writing documentation for longer than I’ve existed. I’ve been using it for more than a decade for personal projects, and professionally for half that time. Err codemadness.org 70 i 9783 While there are many prominent Australian FreeBSD contributors, sysadmins, and users, we’ve always had to venture overseas for conferences. We’re always told Australians are among the most ardent travellers, but I always wondered if we could do a domestic event as well. Err codemadness.org 70 i 9784 And on Tuesday, we did! Deb Goodkin and the FreeBSD Foundation graciously organised and chaired a dedicated FreeBSD miniconf at the long-running linux.conf.au event held each year in a different city in Australia and New Zealand. Err codemadness.org 70 i 9785 A practical guide to containers on FreeNAS for a depraved psychopath (https://medium.com/@andoriyu/a-practical-guide-to-containers-on-freenas-for-a-depraved-psychopath-c212203c0394) Err codemadness.org 70 i 9786 This is a simple write-up to setup Docker on FreeNAS 11 or FreeBSD 11. Err codemadness.org 70 i 9787 But muh jails? Err codemadness.org 70 i 9788 You know that jails are dope and you know that jails are dope, yet no one else knows it. So here we are stuck with docker. Two years ago I would be the last person to recommend using docker, but a whole lot of things has changes past years… Err codemadness.org 70 i 9789 So jails are dead then? Err codemadness.org 70 i 9790 No, jails are still dope, but jails lack tools to manage them. Yes, there are a few tools, but they meant for hard-core FreeBSD users who used to suffering. Docker allows you to run applications without deep knowledge of application you’re running. It will also allow you to run applications that are not ported to FreeBSD. Err codemadness.org 70 i 9791 Why you should migrate everything from Linux to BSD (https://www.unixsheikh.com/articles/why-you-should-migrate-everything-from-linux-to-bsd.html) Err codemadness.org 70 i 9792 As an operating system GNU/Linux has become a real mess because of the fragmented nature of the project, the bloatware in the kernel, and because of the jerking around by commercial interests. Err codemadness.org 70 i 9793 Response Should you migrate from Linux to BSD? It depends. (https://fediverse.blog/~/AllGoodThings/should-you-migrate-from-linux-to-bsd-it-depends) Err codemadness.org 70 i 9794 Beastie Bits Err codemadness.org 70 i 9795 Using the OpenBSD ports tree with dedicated users (https://dataswamp.org/~solene/2020-01-11-privsep.html) Err codemadness.org 70 i 9796 broot on FreeBSD (https://vermaden.wordpress.com/2020/01/10/run-broot-on-freebsd/) Err codemadness.org 70 i 9797 A Trip down Memory Lane (https://svnweb.freebsd.org/base/head/share/misc/bsd-family-tree?view=co) Err codemadness.org 70 i 9798 Running syslog-ng in BastilleBSD (https://www.syslog-ng.com/community/b/blog/posts/running-syslog-ng-in-bastillebsd) Err codemadness.org 70 i 9799 NASA : Using Software Packages in pkgsrc (https://www.nas.nasa.gov/hecc/support/kb/using-software-packages-in-pkgsrc_493.html) Err codemadness.org 70 i 9800 Feedback/Questions Err codemadness.org 70 i 9801 All of our questions this week were pretty technical in nature so I'm going to save those for the next episode so Allan can weigh in on them, since if we cover them now we're basically going to be deferring to Allan anyway. Err codemadness.org 70 i 9802 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 9803 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 9804 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0335.mp4" type="video/mp4"> Err codemadness.org 70 i 9805 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 9806 </video> Err codemadness.org 70 i 9807 Err codemadness.org 70 i 9808 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, hyperbola, migrate, migration, ptrace, llvm, conference, australia, containers, freenas Err codemadness.org 70 i 9809 Err codemadness.org 70 i 9810 Hyperbola Developer interview, why you should migrate from Linux to BSD, FreeBSD is an amazing OS, improving the ptrace(2) API in LLVM 10, First FreeBSD conference in Australia, and a guide to containers on FreeNAS.

Err codemadness.org 70 i 9811 Err codemadness.org 70 i 9812

Headlines

Err codemadness.org 70 i 9813 Err codemadness.org 70 i 9814

FreeBSD is an amazing operating System

Err codemadness.org 70 i 9815 Err codemadness.org 70 i 9816
Err codemadness.org 70 i 9817

Update 2020-01-21: Since I wrote this article it got posted on Hacker News, Reddit and Lobster, and a few people have emailed me with comments. I have updated the article with comments where I have found it needed. As an important side note I would like to point out that I am not a FreeBSD developer, there may be things going on in the FreeBSD world that I know absolutely nothing about. I am also not glued to the FreeBSD developer mailing lists. I am not a FreeBSD "fanboy". I have been using GNU/Linux a ton more for the past two decades than FreeBSD, mainly due to hardware incompatibility (lacking or buggy drivers), and I love both Debian GNU/Linux and Arch Linux just as much as FreeBSD. However, I am concerned about the development of GNU/Linux as of late. Also this article is not about me trying to make anyone switch from something else to FreeBSD. It's about why I like FreeBSD and that I recommend you try it out if you're into messing with operating systems.

Err codemadness.org 70 i 9818 Err codemadness.org 70 i 9819

I think the year was late 1999 or mid 2000 when I one day was browsing computer books at my favorite bookshop and I discovered the book The Complete FreeBSD third edition from 1999 by Greg Lehey. With the book came 4 CD Roms with FreeBSD 3.3.

Err codemadness.org 70 i 9820 Err codemadness.org 70 i 9821

I had already familiarized myself with GNU/Linux in 1998, and I was in the process of migrating every server and desktop operating system away from Microsoft Windows, both at home and at my company, to GNU/Linux, initially Red Hat Linux and then later Debian GNU/Linux, which eventually became my favorite GNU/Linux distribution for many years.

Err codemadness.org 70 i 9822 Err codemadness.org 70 i 9823

When I first saw The Complete FreeBSD book by Greg Lehey I remember noticing the text on the front page that said, "The Free Version of Berkeley UNIX" and "Rock Solid Stability", and I was immediately intrigued! What was that all about? A free UNIX operating system! And rock solid stability? That sounded amazing.

Err codemadness.org 70 i 9824
Err codemadness.org 70 i 9825 Err codemadness.org 70 i 9826
Err codemadness.org 70 i 9827 Err codemadness.org 70 i 9828

Hyperbola Dev Interview

Err codemadness.org 70 i 9829 Err codemadness.org 70 i 9830
Err codemadness.org 70 i 9831

In late December 2019, Hyperbola announced that they would be making major changes to their project. They have decided to drop the Linux kernel in favor of forking the OpenBSD kernel. This announcement only came months after Project Trident announced that they were going in the opposite direction (from BSD to Linux).

Err codemadness.org 70 i 9832 Err codemadness.org 70 i 9833

Hyperbola also plans to replace all software that is not GPL v3 compliant with new versions that are.

Err codemadness.org 70 i 9834 Err codemadness.org 70 i 9835

To get more insight into the future of their new project, I interviewed Andre, co-founder of Hyperbola.

Err codemadness.org 70 i 9836
Err codemadness.org 70 i 9837 Err codemadness.org 70 i 9838
Err codemadness.org 70 i 9839 Err codemadness.org 70 i 9840

News Roundup

Err codemadness.org 70 i 9841 Err codemadness.org 70 i 9842

Improving the ptrace(2) API and preparing for LLVM-10.0

Err codemadness.org 70 i 9843 Err codemadness.org 70 i 9844
Err codemadness.org 70 i 9845

This month I have improved the NetBSD ptrace(2) API, removing one legacy interface with a few flaws and replacing it with two new calls with new features, and removing technical debt.

Err codemadness.org 70 i 9846 Err codemadness.org 70 i 9847

As LLVM 10.0 is branching now soon (Jan 15th 2020), I worked on proper support of the LLVM features for NetBSD 9.0 (today RC1) and NetBSD HEAD (future 10.0).

Err codemadness.org 70 i 9848
Err codemadness.org 70 i 9849 Err codemadness.org 70 i 9850
Err codemadness.org 70 i 9851 Err codemadness.org 70 i 9852

The first FreeBSD conference in Australia

Err codemadness.org 70 i 9853 Err codemadness.org 70 i 9854
Err codemadness.org 70 i 9855

FreeBSD has existed as an operating system, project, and foundation for more than twenty years, and its earlier incantations have exited for far longer. The old guard have been developing code, porting software, and writing documentation for longer than I’ve existed. I’ve been using it for more than a decade for personal projects, and professionally for half that time.

Err codemadness.org 70 i 9856 Err codemadness.org 70 i 9857

While there are many prominent Australian FreeBSD contributors, sysadmins, and users, we’ve always had to venture overseas for conferences. We’re always told Australians are among the most ardent travellers, but I always wondered if we could do a domestic event as well.

Err codemadness.org 70 i 9858 Err codemadness.org 70 i 9859

And on Tuesday, we did! Deb Goodkin and the FreeBSD Foundation graciously organised and chaired a dedicated FreeBSD miniconf at the long-running linux.conf.au event held each year in a different city in Australia and New Zealand.

Err codemadness.org 70 i 9860
Err codemadness.org 70 i 9861 Err codemadness.org 70 i 9862
Err codemadness.org 70 i 9863 Err codemadness.org 70 i 9864

A practical guide to containers on FreeNAS for a depraved psychopath

Err codemadness.org 70 i 9865 Err codemadness.org 70 i 9866
Err codemadness.org 70 i 9867

This is a simple write-up to setup Docker on FreeNAS 11 or FreeBSD 11.

Err codemadness.org 70 i 9868
Err codemadness.org 70 i 9869 Err codemadness.org 70 i 9870

But muh jails?

Err codemadness.org 70 i 9871 Err codemadness.org 70 i 9872
Err codemadness.org 70 i 9873

You know that jails are dope and you know that jails are dope, yet no one else knows it. So here we are stuck with docker. Two years ago I would be the last person to recommend using docker, but a whole lot of things has changes past years…

Err codemadness.org 70 i 9874
Err codemadness.org 70 i 9875 Err codemadness.org 70 i 9876

So jails are dead then?

Err codemadness.org 70 i 9877 Err codemadness.org 70 i 9878
Err codemadness.org 70 i 9879

No, jails are still dope, but jails lack tools to manage them. Yes, there are a few tools, but they meant for hard-core FreeBSD users who used to suffering. Docker allows you to run applications without deep knowledge of application you’re running. It will also allow you to run applications that are not ported to FreeBSD.

Err codemadness.org 70 i 9880
Err codemadness.org 70 i 9881 Err codemadness.org 70 i 9882
Err codemadness.org 70 i 9883 Err codemadness.org 70 i 9884

Why you should migrate everything from Linux to BSD

Err codemadness.org 70 i 9885 Err codemadness.org 70 i 9886
Err codemadness.org 70 i 9887

As an operating system GNU/Linux has become a real mess because of the fragmented nature of the project, the bloatware in the kernel, and because of the jerking around by commercial interests.

Err codemadness.org 70 i 9888
Err codemadness.org 70 i 9889 Err codemadness.org 70 i 9890 Err codemadness.org 70 i 9893 Err codemadness.org 70 i 9894

Beastie Bits

Err codemadness.org 70 i 9895 Err codemadness.org 70 i 9896 Err codemadness.org 70 i 9903 Err codemadness.org 70 i 9904
Err codemadness.org 70 i 9905 Err codemadness.org 70 i 9906

Feedback/Questions

Err codemadness.org 70 i 9907 Err codemadness.org 70 i 9908
    Err codemadness.org 70 i 9909
  • All of our questions this week were pretty technical in nature so I'm going to save those for the next episode so Allan can weigh in on them, since if we cover them now we're basically going to be deferring to Allan anyway.
  • Err codemadness.org 70 i 9910
Err codemadness.org 70 i 9911 Err codemadness.org 70 i 9912
Err codemadness.org 70 i 9913 Err codemadness.org 70 i 9914
    Err codemadness.org 70 i 9915
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 9916
Err codemadness.org 70 i 9917 Err codemadness.org 70 i 9918
Err codemadness.org 70 i 9919 Err codemadness.org 70 i 9920 ]]> Err codemadness.org 70 i 9924
Err codemadness.org 70 i 9925 Err codemadness.org 70 i 9926 Hyperbola Developer interview, why you should migrate from Linux to BSD, FreeBSD is an amazing OS, improving the ptrace(2) API in LLVM 10, First FreeBSD conference in Australia, and a guide to containers on FreeNAS.

Err codemadness.org 70 i 9927 Err codemadness.org 70 i 9928

Headlines

Err codemadness.org 70 i 9929 Err codemadness.org 70 i 9930

FreeBSD is an amazing operating System

Err codemadness.org 70 i 9931 Err codemadness.org 70 i 9932
Err codemadness.org 70 i 9933

Update 2020-01-21: Since I wrote this article it got posted on Hacker News, Reddit and Lobster, and a few people have emailed me with comments. I have updated the article with comments where I have found it needed. As an important side note I would like to point out that I am not a FreeBSD developer, there may be things going on in the FreeBSD world that I know absolutely nothing about. I am also not glued to the FreeBSD developer mailing lists. I am not a FreeBSD "fanboy". I have been using GNU/Linux a ton more for the past two decades than FreeBSD, mainly due to hardware incompatibility (lacking or buggy drivers), and I love both Debian GNU/Linux and Arch Linux just as much as FreeBSD. However, I am concerned about the development of GNU/Linux as of late. Also this article is not about me trying to make anyone switch from something else to FreeBSD. It's about why I like FreeBSD and that I recommend you try it out if you're into messing with operating systems.

Err codemadness.org 70 i 9934 Err codemadness.org 70 i 9935

I think the year was late 1999 or mid 2000 when I one day was browsing computer books at my favorite bookshop and I discovered the book The Complete FreeBSD third edition from 1999 by Greg Lehey. With the book came 4 CD Roms with FreeBSD 3.3.

Err codemadness.org 70 i 9936 Err codemadness.org 70 i 9937

I had already familiarized myself with GNU/Linux in 1998, and I was in the process of migrating every server and desktop operating system away from Microsoft Windows, both at home and at my company, to GNU/Linux, initially Red Hat Linux and then later Debian GNU/Linux, which eventually became my favorite GNU/Linux distribution for many years.

Err codemadness.org 70 i 9938 Err codemadness.org 70 i 9939

When I first saw The Complete FreeBSD book by Greg Lehey I remember noticing the text on the front page that said, "The Free Version of Berkeley UNIX" and "Rock Solid Stability", and I was immediately intrigued! What was that all about? A free UNIX operating system! And rock solid stability? That sounded amazing.

Err codemadness.org 70 i 9940
Err codemadness.org 70 i 9941 Err codemadness.org 70 i 9942
Err codemadness.org 70 i 9943 Err codemadness.org 70 i 9944

Hyperbola Dev Interview

Err codemadness.org 70 i 9945 Err codemadness.org 70 i 9946
Err codemadness.org 70 i 9947

In late December 2019, Hyperbola announced that they would be making major changes to their project. They have decided to drop the Linux kernel in favor of forking the OpenBSD kernel. This announcement only came months after Project Trident announced that they were going in the opposite direction (from BSD to Linux).

Err codemadness.org 70 i 9948 Err codemadness.org 70 i 9949

Hyperbola also plans to replace all software that is not GPL v3 compliant with new versions that are.

Err codemadness.org 70 i 9950 Err codemadness.org 70 i 9951

To get more insight into the future of their new project, I interviewed Andre, co-founder of Hyperbola.

Err codemadness.org 70 i 9952
Err codemadness.org 70 i 9953 Err codemadness.org 70 i 9954
Err codemadness.org 70 i 9955 Err codemadness.org 70 i 9956

News Roundup

Err codemadness.org 70 i 9957 Err codemadness.org 70 i 9958

Improving the ptrace(2) API and preparing for LLVM-10.0

Err codemadness.org 70 i 9959 Err codemadness.org 70 i 9960
Err codemadness.org 70 i 9961

This month I have improved the NetBSD ptrace(2) API, removing one legacy interface with a few flaws and replacing it with two new calls with new features, and removing technical debt.

Err codemadness.org 70 i 9962 Err codemadness.org 70 i 9963

As LLVM 10.0 is branching now soon (Jan 15th 2020), I worked on proper support of the LLVM features for NetBSD 9.0 (today RC1) and NetBSD HEAD (future 10.0).

Err codemadness.org 70 i 9964
Err codemadness.org 70 i 9965 Err codemadness.org 70 i 9966
Err codemadness.org 70 i 9967 Err codemadness.org 70 i 9968

The first FreeBSD conference in Australia

Err codemadness.org 70 i 9969 Err codemadness.org 70 i 9970
Err codemadness.org 70 i 9971

FreeBSD has existed as an operating system, project, and foundation for more than twenty years, and its earlier incantations have exited for far longer. The old guard have been developing code, porting software, and writing documentation for longer than I’ve existed. I’ve been using it for more than a decade for personal projects, and professionally for half that time.

Err codemadness.org 70 i 9972 Err codemadness.org 70 i 9973

While there are many prominent Australian FreeBSD contributors, sysadmins, and users, we’ve always had to venture overseas for conferences. We’re always told Australians are among the most ardent travellers, but I always wondered if we could do a domestic event as well.

Err codemadness.org 70 i 9974 Err codemadness.org 70 i 9975

And on Tuesday, we did! Deb Goodkin and the FreeBSD Foundation graciously organised and chaired a dedicated FreeBSD miniconf at the long-running linux.conf.au event held each year in a different city in Australia and New Zealand.

Err codemadness.org 70 i 9976
Err codemadness.org 70 i 9977 Err codemadness.org 70 i 9978
Err codemadness.org 70 i 9979 Err codemadness.org 70 i 9980

A practical guide to containers on FreeNAS for a depraved psychopath

Err codemadness.org 70 i 9981 Err codemadness.org 70 i 9982
Err codemadness.org 70 i 9983

This is a simple write-up to setup Docker on FreeNAS 11 or FreeBSD 11.

Err codemadness.org 70 i 9984
Err codemadness.org 70 i 9985 Err codemadness.org 70 i 9986

But muh jails?

Err codemadness.org 70 i 9987 Err codemadness.org 70 i 9988
Err codemadness.org 70 i 9989

You know that jails are dope and you know that jails are dope, yet no one else knows it. So here we are stuck with docker. Two years ago I would be the last person to recommend using docker, but a whole lot of things has changes past years…

Err codemadness.org 70 i 9990
Err codemadness.org 70 i 9991 Err codemadness.org 70 i 9992

So jails are dead then?

Err codemadness.org 70 i 9993 Err codemadness.org 70 i 9994
Err codemadness.org 70 i 9995

No, jails are still dope, but jails lack tools to manage them. Yes, there are a few tools, but they meant for hard-core FreeBSD users who used to suffering. Docker allows you to run applications without deep knowledge of application you’re running. It will also allow you to run applications that are not ported to FreeBSD.

Err codemadness.org 70 i 9996
Err codemadness.org 70 i 9997 Err codemadness.org 70 i 9998
Err codemadness.org 70 i 9999 Err codemadness.org 70 i 10000

Why you should migrate everything from Linux to BSD

Err codemadness.org 70 i 10001 Err codemadness.org 70 i 10002
Err codemadness.org 70 i 10003

As an operating system GNU/Linux has become a real mess because of the fragmented nature of the project, the bloatware in the kernel, and because of the jerking around by commercial interests.

Err codemadness.org 70 i 10004
Err codemadness.org 70 i 10005 Err codemadness.org 70 i 10006 Err codemadness.org 70 i 10009 Err codemadness.org 70 i 10010

Beastie Bits

Err codemadness.org 70 i 10011 Err codemadness.org 70 i 10012 Err codemadness.org 70 i 10019 Err codemadness.org 70 i 10020
Err codemadness.org 70 i 10021 Err codemadness.org 70 i 10022

Feedback/Questions

Err codemadness.org 70 i 10023 Err codemadness.org 70 i 10024
    Err codemadness.org 70 i 10025
  • All of our questions this week were pretty technical in nature so I'm going to save those for the next episode so Allan can weigh in on them, since if we cover them now we're basically going to be deferring to Allan anyway.
  • Err codemadness.org 70 i 10026
Err codemadness.org 70 i 10027 Err codemadness.org 70 i 10028
Err codemadness.org 70 i 10029 Err codemadness.org 70 i 10030
    Err codemadness.org 70 i 10031
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 10032
Err codemadness.org 70 i 10033 Err codemadness.org 70 i 10034
Err codemadness.org 70 i 10035 Err codemadness.org 70 i 10036 ]]> Err codemadness.org 70 i 10040
Err codemadness.org 70 i 10041 https://fireside.fm/player/v2/FYhhasNR+E62voEF7 Err codemadness.org 70 i 10042 Err codemadness.org 70 i 10043 ]]> Err codemadness.org 70 i 10044 Err codemadness.org 70 i 10045
Err codemadness.org 70 i 10046 Err codemadness.org 70 i 10047 334: Distrowatch Running FreeBSD Err codemadness.org 70 i 10048 https://www.bsdnow.tv/334 Err codemadness.org 70 i 10049 695d1b03-3bc3-485f-90ba-c6d905189b36 Err codemadness.org 70 i 10050 Thu, 23 Jan 2020 05:00:00 -0800 Err codemadness.org 70 i 10051 Allan Jude Err codemadness.org 70 i 10052 Err codemadness.org 70 i 10053 full Err codemadness.org 70 i 10054 Allan Jude Err codemadness.org 70 i 10055 Upgrading FreeBSD from 11.3 to 12.1, Distrowatch switching to FreeBSD, Torvalds says don’t run ZFS, iked(8) removed automatic IPv6 blocking, working towards LLDB on i386, and memory-hard Argon2 hashing scheme in NetBSD. Err codemadness.org 70 i 10056 48:07 Err codemadness.org 70 i 10057 no Err codemadness.org 70 i 10058 Err codemadness.org 70 i 10059 Upgrading FreeBSD from 11.3 to 12.1, Distrowatch switching to FreeBSD, Torvalds says don’t run ZFS, iked(8) removed automatic IPv6 blocking, working towards LLDB on i386, and memory-hard Argon2 hashing scheme in NetBSD. Err codemadness.org 70 i 10060 Headlines Err codemadness.org 70 i 10061 Upgrading FreeBSD from 11.3 to 12.1 (https://blog.bimajority.org/2020/01/13/upgrading-freebsd-from-11-3-to-12-1/) Err codemadness.org 70 i 10062 Now here’s something more like what I was originally expecting the content on this blog to look like. I’m in the process of moving all of our FreeBSD servers (about 30 in total) from 11.3 to 12.1. We have our own local build of the OS, and until “packaged base” gets to a state where it’s reliably usable, we’re stuck doing upgrades the old-fashioned way. I created a set of notes for myself while cranking through these upgrades and I wanted to share them since they are not really work-specific and this process isn’t very well documented for people who haven’t been doing this sort of upgrade process for 25 years. Err codemadness.org 70 i 10063 Our source and object trees are read-only exported from the build server over NFS, which causes things to be slow. /etc/make.conf and /etc/src.conf are symbolic links on all of our servers to the master copies in /usr/src so that make installworld can find the configuration parameters the system was built with. Err codemadness.org 70 i 10064 Switching Distrowatch over to BSD (https://www.reddit.com/r/freebsd/comments/eodhit/switching_distrowatch_over_to_freebsd_ama/) Err codemadness.org 70 i 10065 This may be a little off-topic for this board (forgive me if it is, please). However, I wanted to say that I'm one of the people who works on DistroWatch (distrowatch.com) and this past week we had to deal with a server facing hardware failure. We had a discussion about whether to continue running Debian or switch to something else. Err codemadness.org 70 i 10066 The primary "something else" option turned out to be FreeBSD and it is what we eventually went with. It took a while to convert everything over from working with Debian GNU/Linux to FreeBSD 12 (some script incompatibilities, different paths, some changes to web server configuration, networking IPv6 troubles). But in the end we ended up with a good, FreeBSD-based experience. Err codemadness.org 70 i 10067 Since the transition was successful, though certainly not seamless, I thought people might want to do a Q&A on the migration process. Especially for those thinking of making the same switch. Err codemadness.org 70 i 10068 News Roundup Err codemadness.org 70 i 10069 iked(8) automatic IPv6 blocking removed (https://www.openbsd.org/faq/current.html#r20200114) Err codemadness.org 70 i 10070 iked(8) no longer automatically blocks unencrypted outbound IPv6 packets. This feature was intended to avoid accidental leakage, but in practice was found to mostly be a cause of misconfiguration. Err codemadness.org 70 i 10071 If you previously used iked(8)'s -6 flag to disable this feature, it is no longer needed and should be removed from /etc/rc.conf.local if used. Err codemadness.org 70 i 10072 Linus says dont run ZFS (https://itsfoss.com/linus-torvalds-zfs/) Err codemadness.org 70 i 10073 “Don’t use ZFS. It’s that simple. It was always more of a buzzword than anything else, I feel, and the licensing issues just make it a non-starter for me.” Err codemadness.org 70 i 10074 This is what Linus Torvalds said in a mailing list to once again express his disliking for ZFS filesystem specially over its licensing. Err codemadness.org 70 i 10075 To avoid unnecessary confusion, this is more intended for Linux distributions, kernel developers and maintainers rather than individual Linux users. Err codemadness.org 70 i 10076 GSoC 2019 Final Report: Incorporating the memory-hard Argon2 hashing scheme into NetBSD (https://blog.netbsd.org/tnf/entry/gsoc_2019_final_report_incorporating) Err codemadness.org 70 i 10077 We successfully incorporated the Argon2 reference implementation into NetBSD/amd64 for our 2019 Google Summer of Coding project. We introduced our project here and provided some hints on how to select parameters here. For our final report, we will provide an overview of what changes were made to complete the project. Err codemadness.org 70 i 10078 The Argon2 reference implementation, available here, is available under both the Creative Commons CC0 1.0 and the Apache Public License 2.0. To import the reference implementation into src/external, we chose to use the Apache 2.0 license for this project. Err codemadness.org 70 i 10079 Working towards LLDB on i386 NetBSD (https://blog.netbsd.org/tnf/entry/working_towards_lldb_on_i386) Err codemadness.org 70 i 10080 Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages. Err codemadness.org 70 i 10081 In February 2019, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues, fixing watchpoint and threading support. Err codemadness.org 70 i 10082 Throughout December I've continued working on our build bot maintenance, in particular enabling compiler-rt tests. I've revived and finished my old patch for extended register state (XState) in core dumps. I've started working on bringing proper i386 support to LLDB. Err codemadness.org 70 i 10083 Beastie Bits Err codemadness.org 70 i 10084 An open source Civilization V (https://github.com/yairm210/UnCiv) Err codemadness.org 70 i 10085 BSD Groups in Italy (https://bsdnotizie.blogspot.com/2020/01/gruppi-bsd-in-italia.html) Err codemadness.org 70 i 10086 Why is Wednesday, November 17, 1858 the base time for OpenVMS? (https://www.slac.stanford.edu/~rkj/crazytime.txt) Err codemadness.org 70 i 10087 Benchmarking shell pipelines and the Unix “tools” philosophy (https://blog.plover.com/Unix/tools.html) Err codemadness.org 70 i 10088 LPI and BSD working together (https://youtu.be/QItb5aoj7Oc) Err codemadness.org 70 i 10089 Feedback/Questions Err codemadness.org 70 i 10090 Pat - March Meeting (http://dpaste.com/2BMGZVV#wrap) Err codemadness.org 70 i 10091 Madhukar - Overheating Laptop (http://dpaste.com/17WNVM8#wrap) Err codemadness.org 70 i 10092 Warren - R vs S (http://dpaste.com/3AZYFB1#wrap) Err codemadness.org 70 i 10093 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 10094 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 10095 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0334.mp4" type="video/mp4"> Err codemadness.org 70 i 10096 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 10097 </video> Err codemadness.org 70 i 10098 Err codemadness.org 70 i 10099 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, upgrading, distrowatch, zfs, iked, blocking, lldb, i386, memory, memory-hard, argon2, hashing scheme Err codemadness.org 70 i 10100 Err codemadness.org 70 i 10101 Upgrading FreeBSD from 11.3 to 12.1, Distrowatch switching to FreeBSD, Torvalds says don’t run ZFS, iked(8) removed automatic IPv6 blocking, working towards LLDB on i386, and memory-hard Argon2 hashing scheme in NetBSD.

Err codemadness.org 70 i 10102 Err codemadness.org 70 i 10103

Headlines

Err codemadness.org 70 i 10104 Err codemadness.org 70 i 10105

Upgrading FreeBSD from 11.3 to 12.1

Err codemadness.org 70 i 10106 Err codemadness.org 70 i 10107
Err codemadness.org 70 i 10108

Now here’s something more like what I was originally expecting the content on this blog to look like. I’m in the process of moving all of our FreeBSD servers (about 30 in total) from 11.3 to 12.1. We have our own local build of the OS, and until “packaged base” gets to a state where it’s reliably usable, we’re stuck doing upgrades the old-fashioned way. I created a set of notes for myself while cranking through these upgrades and I wanted to share them since they are not really work-specific and this process isn’t very well documented for people who haven’t been doing this sort of upgrade process for 25 years.

Err codemadness.org 70 i 10109 Err codemadness.org 70 i 10110

Our source and object trees are read-only exported from the build server over NFS, which causes things to be slow. /etc/make.conf and /etc/src.conf are symbolic links on all of our servers to the master copies in /usr/src so that make installworld can find the configuration parameters the system was built with.

Err codemadness.org 70 i 10111
Err codemadness.org 70 i 10112 Err codemadness.org 70 i 10113
Err codemadness.org 70 i 10114 Err codemadness.org 70 i 10115

Switching Distrowatch over to BSD

Err codemadness.org 70 i 10116 Err codemadness.org 70 i 10117
Err codemadness.org 70 i 10118

This may be a little off-topic for this board (forgive me if it is, please). However, I wanted to say that I'm one of the people who works on DistroWatch (distrowatch.com) and this past week we had to deal with a server facing hardware failure. We had a discussion about whether to continue running Debian or switch to something else.

Err codemadness.org 70 i 10119 Err codemadness.org 70 i 10120

The primary "something else" option turned out to be FreeBSD and it is what we eventually went with. It took a while to convert everything over from working with Debian GNU/Linux to FreeBSD 12 (some script incompatibilities, different paths, some changes to web server configuration, networking IPv6 troubles). But in the end we ended up with a good, FreeBSD-based experience.

Err codemadness.org 70 i 10121 Err codemadness.org 70 i 10122

Since the transition was successful, though certainly not seamless, I thought people might want to do a Q&A on the migration process. Especially for those thinking of making the same switch.

Err codemadness.org 70 i 10123
Err codemadness.org 70 i 10124 Err codemadness.org 70 i 10125
Err codemadness.org 70 i 10126 Err codemadness.org 70 i 10127

News Roundup

Err codemadness.org 70 i 10128 Err codemadness.org 70 i 10129

iked(8) automatic IPv6 blocking removed

Err codemadness.org 70 i 10130 Err codemadness.org 70 i 10131
Err codemadness.org 70 i 10132

iked(8) no longer automatically blocks unencrypted outbound IPv6 packets. This feature was intended to avoid accidental leakage, but in practice was found to mostly be a cause of misconfiguration.

Err codemadness.org 70 i 10133 Err codemadness.org 70 i 10134

If you previously used iked(8)'s -6 flag to disable this feature, it is no longer needed and should be removed from /etc/rc.conf.local if used.

Err codemadness.org 70 i 10135
Err codemadness.org 70 i 10136 Err codemadness.org 70 i 10137
Err codemadness.org 70 i 10138 Err codemadness.org 70 i 10139

Linus says dont run ZFS

Err codemadness.org 70 i 10140 Err codemadness.org 70 i 10141
Err codemadness.org 70 i 10142

“Don’t use ZFS. It’s that simple. It was always more of a buzzword than anything else, I feel, and the licensing issues just make it a non-starter for me.”

Err codemadness.org 70 i 10143 Err codemadness.org 70 i 10144

This is what Linus Torvalds said in a mailing list to once again express his disliking for ZFS filesystem specially over its licensing.

Err codemadness.org 70 i 10145 Err codemadness.org 70 i 10146

To avoid unnecessary confusion, this is more intended for Linux distributions, kernel developers and maintainers rather than individual Linux users.

Err codemadness.org 70 i 10147
Err codemadness.org 70 i 10148 Err codemadness.org 70 i 10149
Err codemadness.org 70 i 10150 Err codemadness.org 70 i 10151

GSoC 2019 Final Report: Incorporating the memory-hard Argon2 hashing scheme into NetBSD

Err codemadness.org 70 i 10152 Err codemadness.org 70 i 10153
Err codemadness.org 70 i 10154

We successfully incorporated the Argon2 reference implementation into NetBSD/amd64 for our 2019 Google Summer of Coding project. We introduced our project here and provided some hints on how to select parameters here. For our final report, we will provide an overview of what changes were made to complete the project.

Err codemadness.org 70 i 10155 Err codemadness.org 70 i 10156

The Argon2 reference implementation, available here, is available under both the Creative Commons CC0 1.0 and the Apache Public License 2.0. To import the reference implementation into src/external, we chose to use the Apache 2.0 license for this project.

Err codemadness.org 70 i 10157
Err codemadness.org 70 i 10158 Err codemadness.org 70 i 10159
Err codemadness.org 70 i 10160 Err codemadness.org 70 i 10161

Working towards LLDB on i386 NetBSD

Err codemadness.org 70 i 10162 Err codemadness.org 70 i 10163
Err codemadness.org 70 i 10164

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.

Err codemadness.org 70 i 10165 Err codemadness.org 70 i 10166

In February 2019, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues, fixing watchpoint and threading support.

Err codemadness.org 70 i 10167 Err codemadness.org 70 i 10168

Throughout December I've continued working on our build bot maintenance, in particular enabling compiler-rt tests. I've revived and finished my old patch for extended register state (XState) in core dumps. I've started working on bringing proper i386 support to LLDB.

Err codemadness.org 70 i 10169
Err codemadness.org 70 i 10170 Err codemadness.org 70 i 10171
Err codemadness.org 70 i 10172 Err codemadness.org 70 i 10173

Beastie Bits

Err codemadness.org 70 i 10174 Err codemadness.org 70 i 10175 Err codemadness.org 70 i 10182 Err codemadness.org 70 i 10183
Err codemadness.org 70 i 10184 Err codemadness.org 70 i 10185

Feedback/Questions

Err codemadness.org 70 i 10186 Err codemadness.org 70 i 10187
    Err codemadness.org 70 i 10188
  • Pat - March Meeting
  • Err codemadness.org 70 i 10189
  • Madhukar - Overheating Laptop
  • Err codemadness.org 70 i 10190
  • Warren - R vs S
  • Err codemadness.org 70 i 10191
Err codemadness.org 70 i 10192 Err codemadness.org 70 i 10193
Err codemadness.org 70 i 10194 Err codemadness.org 70 i 10195
    Err codemadness.org 70 i 10196
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 10197
Err codemadness.org 70 i 10198 Err codemadness.org 70 i 10199
Err codemadness.org 70 i 10200 Err codemadness.org 70 i 10201 ]]> Err codemadness.org 70 i 10205
Err codemadness.org 70 i 10206 Err codemadness.org 70 i 10207 Upgrading FreeBSD from 11.3 to 12.1, Distrowatch switching to FreeBSD, Torvalds says don’t run ZFS, iked(8) removed automatic IPv6 blocking, working towards LLDB on i386, and memory-hard Argon2 hashing scheme in NetBSD.

Err codemadness.org 70 i 10208 Err codemadness.org 70 i 10209

Headlines

Err codemadness.org 70 i 10210 Err codemadness.org 70 i 10211

Upgrading FreeBSD from 11.3 to 12.1

Err codemadness.org 70 i 10212 Err codemadness.org 70 i 10213
Err codemadness.org 70 i 10214

Now here’s something more like what I was originally expecting the content on this blog to look like. I’m in the process of moving all of our FreeBSD servers (about 30 in total) from 11.3 to 12.1. We have our own local build of the OS, and until “packaged base” gets to a state where it’s reliably usable, we’re stuck doing upgrades the old-fashioned way. I created a set of notes for myself while cranking through these upgrades and I wanted to share them since they are not really work-specific and this process isn’t very well documented for people who haven’t been doing this sort of upgrade process for 25 years.

Err codemadness.org 70 i 10215 Err codemadness.org 70 i 10216

Our source and object trees are read-only exported from the build server over NFS, which causes things to be slow. /etc/make.conf and /etc/src.conf are symbolic links on all of our servers to the master copies in /usr/src so that make installworld can find the configuration parameters the system was built with.

Err codemadness.org 70 i 10217
Err codemadness.org 70 i 10218 Err codemadness.org 70 i 10219
Err codemadness.org 70 i 10220 Err codemadness.org 70 i 10221

Switching Distrowatch over to BSD

Err codemadness.org 70 i 10222 Err codemadness.org 70 i 10223
Err codemadness.org 70 i 10224

This may be a little off-topic for this board (forgive me if it is, please). However, I wanted to say that I'm one of the people who works on DistroWatch (distrowatch.com) and this past week we had to deal with a server facing hardware failure. We had a discussion about whether to continue running Debian or switch to something else.

Err codemadness.org 70 i 10225 Err codemadness.org 70 i 10226

The primary "something else" option turned out to be FreeBSD and it is what we eventually went with. It took a while to convert everything over from working with Debian GNU/Linux to FreeBSD 12 (some script incompatibilities, different paths, some changes to web server configuration, networking IPv6 troubles). But in the end we ended up with a good, FreeBSD-based experience.

Err codemadness.org 70 i 10227 Err codemadness.org 70 i 10228

Since the transition was successful, though certainly not seamless, I thought people might want to do a Q&A on the migration process. Especially for those thinking of making the same switch.

Err codemadness.org 70 i 10229
Err codemadness.org 70 i 10230 Err codemadness.org 70 i 10231
Err codemadness.org 70 i 10232 Err codemadness.org 70 i 10233

News Roundup

Err codemadness.org 70 i 10234 Err codemadness.org 70 i 10235

iked(8) automatic IPv6 blocking removed

Err codemadness.org 70 i 10236 Err codemadness.org 70 i 10237
Err codemadness.org 70 i 10238

iked(8) no longer automatically blocks unencrypted outbound IPv6 packets. This feature was intended to avoid accidental leakage, but in practice was found to mostly be a cause of misconfiguration.

Err codemadness.org 70 i 10239 Err codemadness.org 70 i 10240

If you previously used iked(8)'s -6 flag to disable this feature, it is no longer needed and should be removed from /etc/rc.conf.local if used.

Err codemadness.org 70 i 10241
Err codemadness.org 70 i 10242 Err codemadness.org 70 i 10243
Err codemadness.org 70 i 10244 Err codemadness.org 70 i 10245

Linus says dont run ZFS

Err codemadness.org 70 i 10246 Err codemadness.org 70 i 10247
Err codemadness.org 70 i 10248

“Don’t use ZFS. It’s that simple. It was always more of a buzzword than anything else, I feel, and the licensing issues just make it a non-starter for me.”

Err codemadness.org 70 i 10249 Err codemadness.org 70 i 10250

This is what Linus Torvalds said in a mailing list to once again express his disliking for ZFS filesystem specially over its licensing.

Err codemadness.org 70 i 10251 Err codemadness.org 70 i 10252

To avoid unnecessary confusion, this is more intended for Linux distributions, kernel developers and maintainers rather than individual Linux users.

Err codemadness.org 70 i 10253
Err codemadness.org 70 i 10254 Err codemadness.org 70 i 10255
Err codemadness.org 70 i 10256 Err codemadness.org 70 i 10257

GSoC 2019 Final Report: Incorporating the memory-hard Argon2 hashing scheme into NetBSD

Err codemadness.org 70 i 10258 Err codemadness.org 70 i 10259
Err codemadness.org 70 i 10260

We successfully incorporated the Argon2 reference implementation into NetBSD/amd64 for our 2019 Google Summer of Coding project. We introduced our project here and provided some hints on how to select parameters here. For our final report, we will provide an overview of what changes were made to complete the project.

Err codemadness.org 70 i 10261 Err codemadness.org 70 i 10262

The Argon2 reference implementation, available here, is available under both the Creative Commons CC0 1.0 and the Apache Public License 2.0. To import the reference implementation into src/external, we chose to use the Apache 2.0 license for this project.

Err codemadness.org 70 i 10263
Err codemadness.org 70 i 10264 Err codemadness.org 70 i 10265
Err codemadness.org 70 i 10266 Err codemadness.org 70 i 10267

Working towards LLDB on i386 NetBSD

Err codemadness.org 70 i 10268 Err codemadness.org 70 i 10269
Err codemadness.org 70 i 10270

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.

Err codemadness.org 70 i 10271 Err codemadness.org 70 i 10272

In February 2019, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues, fixing watchpoint and threading support.

Err codemadness.org 70 i 10273 Err codemadness.org 70 i 10274

Throughout December I've continued working on our build bot maintenance, in particular enabling compiler-rt tests. I've revived and finished my old patch for extended register state (XState) in core dumps. I've started working on bringing proper i386 support to LLDB.

Err codemadness.org 70 i 10275
Err codemadness.org 70 i 10276 Err codemadness.org 70 i 10277
Err codemadness.org 70 i 10278 Err codemadness.org 70 i 10279

Beastie Bits

Err codemadness.org 70 i 10280 Err codemadness.org 70 i 10281 Err codemadness.org 70 i 10288 Err codemadness.org 70 i 10289
Err codemadness.org 70 i 10290 Err codemadness.org 70 i 10291

Feedback/Questions

Err codemadness.org 70 i 10292 Err codemadness.org 70 i 10293
    Err codemadness.org 70 i 10294
  • Pat - March Meeting
  • Err codemadness.org 70 i 10295
  • Madhukar - Overheating Laptop
  • Err codemadness.org 70 i 10296
  • Warren - R vs S
  • Err codemadness.org 70 i 10297
Err codemadness.org 70 i 10298 Err codemadness.org 70 i 10299
Err codemadness.org 70 i 10300 Err codemadness.org 70 i 10301
    Err codemadness.org 70 i 10302
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 10303
Err codemadness.org 70 i 10304 Err codemadness.org 70 i 10305
Err codemadness.org 70 i 10306 Err codemadness.org 70 i 10307 ]]> Err codemadness.org 70 i 10311
Err codemadness.org 70 i 10312 https://fireside.fm/player/v2/FYhhasNR+i7PDvAJZ Err codemadness.org 70 i 10313 Err codemadness.org 70 i 10314 ]]> Err codemadness.org 70 i 10315 Err codemadness.org 70 i 10316
Err codemadness.org 70 i 10317 Err codemadness.org 70 i 10318 333: Unix Keyboard Joy Err codemadness.org 70 i 10319 https://www.bsdnow.tv/333 Err codemadness.org 70 i 10320 9f3dffa3-f888-4af3-8a0a-3a236e130b4f Err codemadness.org 70 i 10321 Thu, 16 Jan 2020 05:00:00 -0800 Err codemadness.org 70 i 10322 Allan Jude Err codemadness.org 70 i 10323 Err codemadness.org 70 i 10324 full Err codemadness.org 70 i 10325 Allan Jude Err codemadness.org 70 i 10326 Your Impact on FreeBSD in 2019, Wireguard on OpenBSD Router, Amazon now has FreeBSD/ARM 12, pkgsrc-2019Q4, The Joys of UNIX Keyboards, OpenBSD on Digital Ocean, and more. Err codemadness.org 70 i 10327 40:29 Err codemadness.org 70 i 10328 no Err codemadness.org 70 i 10329 Err codemadness.org 70 i 10330 Your Impact on FreeBSD in 2019, Wireguard on OpenBSD Router, Amazon now has FreeBSD/ARM 12, pkgsrc-2019Q4, The Joys of UNIX Keyboards, OpenBSD on Digital Ocean, and more. Err codemadness.org 70 i 10331 Headlines Err codemadness.org 70 i 10332 Your Impact on FreeBSD in 2019 (https://www.freebsdfoundation.org/blog/your-impact-on-freebsd-in-2019/) Err codemadness.org 70 i 10333 It’s hard to believe that 2019 is nearly over. It has been an amazing year for supporting the FreeBSD Project and community! Why do I say that? Because as I reflect over the past 12 months, I realize how many events we’ve attended all over the world, and how many lives we’ve touched in so many ways. From advocating for FreeBSD to implementing FreeBSD features, my team has been there to help make FreeBSD the best open source project and operating system out there. Err codemadness.org 70 i 10334 In 2019, we focused on supporting a few key areas where the Project needed the most help. The first area was software development. Whether it was contracting FreeBSD developers to work on projects like wifi support, to providing internal staff to quickly implement hardware workarounds, we’ve stepped in to help keep FreeBSD innovative, secure, and reliable. Software development includes supporting the tools and infrastructure that make the development process go smoothly, and we’re on it with team members heading up the Continuous Integration efforts, and actively involved in the clusteradmin and security teams. Err codemadness.org 70 i 10335 Our advocacy efforts focused on recruiting new users and contributors to the Project. We attended and participated in 38 conferences and events in 21 countries. From giving FreeBSD presentations and workshops to staffing tables, we were able to have 1:1 conversations with thousands of attendees. Err codemadness.org 70 i 10336 Our travels also provided opportunities to talk directly with FreeBSD commercial and individual users, contributors, and future FreeBSD user/contributors. We’ve seen an increase in use and interest in FreeBSD from all of these organizations and individuals. These meetings give us a chance to learn more about what organizations need and what they and other individuals are working on. The information helps inform the work we should fund. Err codemadness.org 70 i 10337 Wireguard on OpenBSD Router (https://obscurity.xyz/bsd/open/wireguard.html) Err codemadness.org 70 i 10338 wireguard (wg) is a modern vpn protocol, using the latest class of encryption algorithms while at the same time promising speed and a small code base. Err codemadness.org 70 i 10339 modern crypto and lean code are also tenants of openbsd, thus it was a no brainer to migrate my router from openvpn over to wireguard. Err codemadness.org 70 i 10340 my setup : a collection of devices, both wired and wireless, that are nat’d through my router (openbsd 6.6) out via my vpn provider azire* and out to the internet using wg-quick to start wg. Err codemadness.org 70 i 10341 running : doubtless this could be improved on, but currently i start wg manually when my router boots. this, and the nat'ing on the vpn interface mean its impossible for clients to connect to the internet without the vpn being up. as my router is on a ups and only reboots when a kernel patch requires it, it’s a compromise i can live with. run wg-quick (please replace vpn with whatever you named your wg .conf file.) and reload pf rules. Err codemadness.org 70 i 10342 News Roundup Err codemadness.org 70 i 10343 Amazon now has FreeBSD/ARM 12 (https://aws.amazon.com/marketplace/pp/B081NF7BY7) Err codemadness.org 70 i 10344 AWS, the cloud division of Amazon, announced in December the next generation of its ARM processors, the Graviton2. This is a custom chip design with a 7nm architecture. It is based on 64-bit ARM Neoverse cores. Err codemadness.org 70 i 10345 Compared to first-generation Graviton processors (A1), today’s new chips should deliver up to 7x the performance of A1 instances in some cases. Floating point performance is now twice as fast. There are additional memory channels and cache speed memory access should be much faster. Err codemadness.org 70 i 10346 The company is working on three types of Graviton2 EC2 instances that should be available soon. Instances with a “g” suffix are powered by Graviton2 chips. If they have a “d” suffix, it also means that they have NVMe local storage. Err codemadness.org 70 i 10347 General-purpose instances (M6g and M6gd) Err codemadness.org 70 i 10348 Compute-optimized instances (C6g and C6gd) Err codemadness.org 70 i 10349 Memory-optimized instances (R6g and R6gd) Err codemadness.org 70 i 10350 You can choose instances with up to 64 vCPUs, 512 GiB of memory and 25 Gbps networking. Err codemadness.org 70 i 10351 And you can see that ARM-powered servers are not just a fad. AWS already promises a 40% better price/performance ratio with ARM-based instances when you compare them with x86-based instances. Err codemadness.org 70 i 10352 AWS has been working with operating system vendors and independent software vendors to help them release software that runs on ARM. ARM-based EC2 instances support Amazon Linux 2, Ubuntu, Red Hat, SUSE, Fedora, Debian and FreeBSD. It also works with multiple container services (Docker, Amazon ECS, and Amazon Elastic Kubernetes Service). Err codemadness.org 70 i 10353 Coverage of AWS Announcement (https://techcrunch.com/2019/12/03/aws-announces-new-arm-based-instances-with-graviton2-processors/) Err codemadness.org 70 i 10354 Announcing the pkgsrc-2019Q4 release (https://mail-index.netbsd.org/pkgsrc-users/2020/01/06/msg030130.html) Err codemadness.org 70 i 10355 The pkgsrc developers are proud to announce the 65th quarterly release of pkgsrc, the cross-platform packaging system. pkgsrc is available with more than 20,000 packages, running on 23 separate platforms; more information on pkgsrc itself is available at https://www.pkgsrc.org/ Err codemadness.org 70 i 10356 In total, 190 packages were added, 96 packages were removed, and 1,868 package updates (to 1388 unique packages) were processed since the pkgsrc-2019Q3 release. As usual, a large number of updates and additions were processed for packages for go (14), guile (11), perl (170), php (10), python (426), and ruby (110). This continues pkgsrc's tradition of adding useful packages, updating many packages to more current versions, and pruning unmaintained packages that are believed to have essentially no users. Err codemadness.org 70 i 10357 The Joys of UNIX Keyboards (https://donatstudios.com/UNIX-Keyboards) Err codemadness.org 70 i 10358 I fell in love with a dead keyboard layout. Err codemadness.org 70 i 10359 A decade or so ago while helping a friends father clean out an old building, we came across an ancient Sun Microsystems server. We found it curious. Everything about it was different from what we were used to. The command line was black on white, the connectors strange and foreign, and the keyboard layout was bizarre. Err codemadness.org 70 i 10360 We never did much with it; turning it on made all the lights in his home dim, and our joint knowledge of UNIX was nonexistent. It sat in his bedroom for years supporting his television at the foot of his bed. Err codemadness.org 70 i 10361 I never forgot that keyboard though. The thought that there was this alternative layout out there seemed intriguing to me. Err codemadness.org 70 i 10362 OpenBSD on Digital Ocean (https://www.going-flying.com/blog/openbsd-on-digitalocean.html) Err codemadness.org 70 i 10363 Last night I had a need to put together a new OpenBSD machine. Since I already use DigitalOcean for one of my public DNS servers I wanted to use them for this need but sadly like all too many of the cloud providers they don't support OpenBSD. Now they do support FreeBSD and I found a couple writeups that show how to use FreeBSD as a shim to install OpenBSD. Err codemadness.org 70 i 10364 They are both sort of old at this point and with OpenBSD 6.6 out I ran into a bit of a snag. The default these days is to use a GPT partition table to enable EFI booting. This is generally pretty sane but it looks to me like the FreeBSD droplet doesn't support this. After the installer rebooted the VM failed to boot, being unable to find the bootloader. Err codemadness.org 70 i 10365 Thankfully DigitalOcean has a recovery ISO that you can boot by simply switching to it and powering off and then on your Droplet. Err codemadness.org 70 i 10366 Beastie Bits Err codemadness.org 70 i 10367 FreeBSD defaults to LLVM on PPC (https://svnweb.freebsd.org/base?view=revision&revision=356111) Err codemadness.org 70 i 10368 Theo De Raadt Interview between Ottawa 2019 Hackathon and BSDCAN 2019 (https://undeadly.org/cgi?action=article;sid=20191231214356) Err codemadness.org 70 i 10369 Bastille Poll about what people would like to see in 2020 (https://twitter.com/BastilleBSD/status/1211475103143251968) Err codemadness.org 70 i 10370 Notes on the classic book : The Design of the UNIX Operating System (https://github.com/suvratapte/Maurice-Bach-Notes) Err codemadness.org 70 i 10371 Multics History (https://www.multicians.org/) Err codemadness.org 70 i 10372 First meeting of the Hamilton BSD user group, February 11, 2020 18:30 - 21:00, Boston Pizza on Upper James St (http://studybsd.com/) Err codemadness.org 70 i 10373 Feedback/Questions Err codemadness.org 70 i 10374 Bill - 1.1 CDROM (http://dpaste.com/2H9CW6R) Err codemadness.org 70 i 10375 Greg - More 50 Year anniversary information (http://dpaste.com/2SGA3KY) Err codemadness.org 70 i 10376 Dave - Question time for Allan (http://dpaste.com/3ZAEKHD#wrap) Err codemadness.org 70 i 10377 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 10378 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 10379 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0333.mp4" type="video/mp4"> Err codemadness.org 70 i 10380 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 10381 </video> Err codemadness.org 70 i 10382 Err codemadness.org 70 i 10383 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, freebsd foundation, foundation, wireguard, amazon, ec2, arm, arm 12, pkgsrc, unix, keyboard, keyboards, digital ocean Err codemadness.org 70 i 10384 Err codemadness.org 70 i 10385 Your Impact on FreeBSD in 2019, Wireguard on OpenBSD Router, Amazon now has FreeBSD/ARM 12, pkgsrc-2019Q4, The Joys of UNIX Keyboards, OpenBSD on Digital Ocean, and more.

Err codemadness.org 70 i 10386 Err codemadness.org 70 i 10387

Headlines

Err codemadness.org 70 i 10388 Err codemadness.org 70 i 10389

Your Impact on FreeBSD in 2019

Err codemadness.org 70 i 10390 Err codemadness.org 70 i 10391
Err codemadness.org 70 i 10392

It’s hard to believe that 2019 is nearly over. It has been an amazing year for supporting the FreeBSD Project and community! Why do I say that? Because as I reflect over the past 12 months, I realize how many events we’ve attended all over the world, and how many lives we’ve touched in so many ways. From advocating for FreeBSD to implementing FreeBSD features, my team has been there to help make FreeBSD the best open source project and operating system out there.

Err codemadness.org 70 i 10393 Err codemadness.org 70 i 10394

In 2019, we focused on supporting a few key areas where the Project needed the most help. The first area was software development. Whether it was contracting FreeBSD developers to work on projects like wifi support, to providing internal staff to quickly implement hardware workarounds, we’ve stepped in to help keep FreeBSD innovative, secure, and reliable. Software development includes supporting the tools and infrastructure that make the development process go smoothly, and we’re on it with team members heading up the Continuous Integration efforts, and actively involved in the clusteradmin and security teams.

Err codemadness.org 70 i 10395 Err codemadness.org 70 i 10396

Our advocacy efforts focused on recruiting new users and contributors to the Project. We attended and participated in 38 conferences and events in 21 countries. From giving FreeBSD presentations and workshops to staffing tables, we were able to have 1:1 conversations with thousands of attendees.

Err codemadness.org 70 i 10397 Err codemadness.org 70 i 10398

Our travels also provided opportunities to talk directly with FreeBSD commercial and individual users, contributors, and future FreeBSD user/contributors. We’ve seen an increase in use and interest in FreeBSD from all of these organizations and individuals. These meetings give us a chance to learn more about what organizations need and what they and other individuals are working on. The information helps inform the work we should fund.

Err codemadness.org 70 i 10399
Err codemadness.org 70 i 10400 Err codemadness.org 70 i 10401
Err codemadness.org 70 i 10402 Err codemadness.org 70 i 10403

Wireguard on OpenBSD Router

Err codemadness.org 70 i 10404 Err codemadness.org 70 i 10405
Err codemadness.org 70 i 10406

wireguard (wg) is a modern vpn protocol, using the latest class of encryption algorithms while at the same time promising speed and a small code base.

Err codemadness.org 70 i 10407 Err codemadness.org 70 i 10408

modern crypto and lean code are also tenants of openbsd, thus it was a no brainer to migrate my router from openvpn over to wireguard.

Err codemadness.org 70 i 10409 Err codemadness.org 70 i 10410

my setup : a collection of devices, both wired and wireless, that are nat’d through my router (openbsd 6.6) out via my vpn provider azire* and out to the internet using wg-quick to start wg.

Err codemadness.org 70 i 10411 Err codemadness.org 70 i 10412

running : doubtless this could be improved on, but currently i start wg manually when my router boots. this, and the nat'ing on the vpn interface mean its impossible for clients to connect to the internet without the vpn being up. as my router is on a ups and only reboots when a kernel patch requires it, it’s a compromise i can live with. run wg-quick (please replace vpn with whatever you named your wg .conf file.) and reload pf rules.

Err codemadness.org 70 i 10413
Err codemadness.org 70 i 10414 Err codemadness.org 70 i 10415
Err codemadness.org 70 i 10416 Err codemadness.org 70 i 10417

News Roundup

Err codemadness.org 70 i 10418 Err codemadness.org 70 i 10419

Amazon now has FreeBSD/ARM 12

Err codemadness.org 70 i 10420 Err codemadness.org 70 i 10421
Err codemadness.org 70 i 10422

AWS, the cloud division of Amazon, announced in December the next generation of its ARM processors, the Graviton2. This is a custom chip design with a 7nm architecture. It is based on 64-bit ARM Neoverse cores.

Err codemadness.org 70 i 10423 Err codemadness.org 70 i 10424

Compared to first-generation Graviton processors (A1), today’s new chips should deliver up to 7x the performance of A1 instances in some cases. Floating point performance is now twice as fast. There are additional memory channels and cache speed memory access should be much faster.

Err codemadness.org 70 i 10425 Err codemadness.org 70 i 10426

The company is working on three types of Graviton2 EC2 instances that should be available soon. Instances with a “g” suffix are powered by Graviton2 chips. If they have a “d” suffix, it also means that they have NVMe local storage.

Err codemadness.org 70 i 10427 Err codemadness.org 70 i 10428
    Err codemadness.org 70 i 10429
  • General-purpose instances (M6g and M6gd)

  • Err codemadness.org 70 i 10430
  • Compute-optimized instances (C6g and C6gd)

  • Err codemadness.org 70 i 10431
  • Memory-optimized instances (R6g and R6gd)

  • Err codemadness.org 70 i 10432
Err codemadness.org 70 i 10433 Err codemadness.org 70 i 10434

You can choose instances with up to 64 vCPUs, 512 GiB of memory and 25 Gbps networking.

Err codemadness.org 70 i 10435 Err codemadness.org 70 i 10436

And you can see that ARM-powered servers are not just a fad. AWS already promises a 40% better price/performance ratio with ARM-based instances when you compare them with x86-based instances.

Err codemadness.org 70 i 10437 Err codemadness.org 70 i 10438

AWS has been working with operating system vendors and independent software vendors to help them release software that runs on ARM. ARM-based EC2 instances support Amazon Linux 2, Ubuntu, Red Hat, SUSE, Fedora, Debian and FreeBSD. It also works with multiple container services (Docker, Amazon ECS, and Amazon Elastic Kubernetes Service).

Err codemadness.org 70 i 10439
Err codemadness.org 70 i 10440 Err codemadness.org 70 i 10441 Err codemadness.org 70 i 10444 Err codemadness.org 70 i 10445
Err codemadness.org 70 i 10446 Err codemadness.org 70 i 10447

Announcing the pkgsrc-2019Q4 release

Err codemadness.org 70 i 10448 Err codemadness.org 70 i 10449
Err codemadness.org 70 i 10450

The pkgsrc developers are proud to announce the 65th quarterly release of pkgsrc, the cross-platform packaging system. pkgsrc is available with more than 20,000 packages, running on 23 separate platforms; more information on pkgsrc itself is available at https://www.pkgsrc.org/

Err codemadness.org 70 i 10451 Err codemadness.org 70 i 10452

In total, 190 packages were added, 96 packages were removed, and 1,868 package updates (to 1388 unique packages) were processed since the pkgsrc-2019Q3 release. As usual, a large number of updates and additions were processed for packages for go (14), guile (11), perl (170), php (10), python (426), and ruby (110). This continues pkgsrc's tradition of adding useful packages, updating many packages to more current versions, and pruning unmaintained packages that are believed to have essentially no users.

Err codemadness.org 70 i 10453
Err codemadness.org 70 i 10454 Err codemadness.org 70 i 10455
Err codemadness.org 70 i 10456 Err codemadness.org 70 i 10457

The Joys of UNIX Keyboards

Err codemadness.org 70 i 10458 Err codemadness.org 70 i 10459
Err codemadness.org 70 i 10460

I fell in love with a dead keyboard layout.

Err codemadness.org 70 i 10461 Err codemadness.org 70 i 10462

A decade or so ago while helping a friends father clean out an old building, we came across an ancient Sun Microsystems server. We found it curious. Everything about it was different from what we were used to. The command line was black on white, the connectors strange and foreign, and the keyboard layout was bizarre.

Err codemadness.org 70 i 10463 Err codemadness.org 70 i 10464

We never did much with it; turning it on made all the lights in his home dim, and our joint knowledge of UNIX was nonexistent. It sat in his bedroom for years supporting his television at the foot of his bed.

Err codemadness.org 70 i 10465 Err codemadness.org 70 i 10466

I never forgot that keyboard though. The thought that there was this alternative layout out there seemed intriguing to me.

Err codemadness.org 70 i 10467
Err codemadness.org 70 i 10468 Err codemadness.org 70 i 10469
Err codemadness.org 70 i 10470 Err codemadness.org 70 i 10471

OpenBSD on Digital Ocean

Err codemadness.org 70 i 10472 Err codemadness.org 70 i 10473
Err codemadness.org 70 i 10474

Last night I had a need to put together a new OpenBSD machine. Since I already use DigitalOcean for one of my public DNS servers I wanted to use them for this need but sadly like all too many of the cloud providers they don't support OpenBSD. Now they do support FreeBSD and I found a couple writeups that show how to use FreeBSD as a shim to install OpenBSD.

Err codemadness.org 70 i 10475 Err codemadness.org 70 i 10476

They are both sort of old at this point and with OpenBSD 6.6 out I ran into a bit of a snag. The default these days is to use a GPT partition table to enable EFI booting. This is generally pretty sane but it looks to me like the FreeBSD droplet doesn't support this. After the installer rebooted the VM failed to boot, being unable to find the bootloader.

Err codemadness.org 70 i 10477 Err codemadness.org 70 i 10478

Thankfully DigitalOcean has a recovery ISO that you can boot by simply switching to it and powering off and then on your Droplet.

Err codemadness.org 70 i 10479
Err codemadness.org 70 i 10480 Err codemadness.org 70 i 10481
Err codemadness.org 70 i 10482 Err codemadness.org 70 i 10483

Beastie Bits

Err codemadness.org 70 i 10484 Err codemadness.org 70 i 10485 Err codemadness.org 70 i 10493 Err codemadness.org 70 i 10494
Err codemadness.org 70 i 10495 Err codemadness.org 70 i 10496

Feedback/Questions

Err codemadness.org 70 i 10497 Err codemadness.org 70 i 10498 Err codemadness.org 70 i 10503 Err codemadness.org 70 i 10504
Err codemadness.org 70 i 10505 Err codemadness.org 70 i 10506
    Err codemadness.org 70 i 10507
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 10508
Err codemadness.org 70 i 10509 Err codemadness.org 70 i 10510
Err codemadness.org 70 i 10511 Err codemadness.org 70 i 10512 ]]> Err codemadness.org 70 i 10516
Err codemadness.org 70 i 10517 Err codemadness.org 70 i 10518 Your Impact on FreeBSD in 2019, Wireguard on OpenBSD Router, Amazon now has FreeBSD/ARM 12, pkgsrc-2019Q4, The Joys of UNIX Keyboards, OpenBSD on Digital Ocean, and more.

Err codemadness.org 70 i 10519 Err codemadness.org 70 i 10520

Headlines

Err codemadness.org 70 i 10521 Err codemadness.org 70 i 10522

Your Impact on FreeBSD in 2019

Err codemadness.org 70 i 10523 Err codemadness.org 70 i 10524
Err codemadness.org 70 i 10525

It’s hard to believe that 2019 is nearly over. It has been an amazing year for supporting the FreeBSD Project and community! Why do I say that? Because as I reflect over the past 12 months, I realize how many events we’ve attended all over the world, and how many lives we’ve touched in so many ways. From advocating for FreeBSD to implementing FreeBSD features, my team has been there to help make FreeBSD the best open source project and operating system out there.

Err codemadness.org 70 i 10526 Err codemadness.org 70 i 10527

In 2019, we focused on supporting a few key areas where the Project needed the most help. The first area was software development. Whether it was contracting FreeBSD developers to work on projects like wifi support, to providing internal staff to quickly implement hardware workarounds, we’ve stepped in to help keep FreeBSD innovative, secure, and reliable. Software development includes supporting the tools and infrastructure that make the development process go smoothly, and we’re on it with team members heading up the Continuous Integration efforts, and actively involved in the clusteradmin and security teams.

Err codemadness.org 70 i 10528 Err codemadness.org 70 i 10529

Our advocacy efforts focused on recruiting new users and contributors to the Project. We attended and participated in 38 conferences and events in 21 countries. From giving FreeBSD presentations and workshops to staffing tables, we were able to have 1:1 conversations with thousands of attendees.

Err codemadness.org 70 i 10530 Err codemadness.org 70 i 10531

Our travels also provided opportunities to talk directly with FreeBSD commercial and individual users, contributors, and future FreeBSD user/contributors. We’ve seen an increase in use and interest in FreeBSD from all of these organizations and individuals. These meetings give us a chance to learn more about what organizations need and what they and other individuals are working on. The information helps inform the work we should fund.

Err codemadness.org 70 i 10532
Err codemadness.org 70 i 10533 Err codemadness.org 70 i 10534
Err codemadness.org 70 i 10535 Err codemadness.org 70 i 10536

Wireguard on OpenBSD Router

Err codemadness.org 70 i 10537 Err codemadness.org 70 i 10538
Err codemadness.org 70 i 10539

wireguard (wg) is a modern vpn protocol, using the latest class of encryption algorithms while at the same time promising speed and a small code base.

Err codemadness.org 70 i 10540 Err codemadness.org 70 i 10541

modern crypto and lean code are also tenants of openbsd, thus it was a no brainer to migrate my router from openvpn over to wireguard.

Err codemadness.org 70 i 10542 Err codemadness.org 70 i 10543

my setup : a collection of devices, both wired and wireless, that are nat’d through my router (openbsd 6.6) out via my vpn provider azire* and out to the internet using wg-quick to start wg.

Err codemadness.org 70 i 10544 Err codemadness.org 70 i 10545

running : doubtless this could be improved on, but currently i start wg manually when my router boots. this, and the nat'ing on the vpn interface mean its impossible for clients to connect to the internet without the vpn being up. as my router is on a ups and only reboots when a kernel patch requires it, it’s a compromise i can live with. run wg-quick (please replace vpn with whatever you named your wg .conf file.) and reload pf rules.

Err codemadness.org 70 i 10546
Err codemadness.org 70 i 10547 Err codemadness.org 70 i 10548
Err codemadness.org 70 i 10549 Err codemadness.org 70 i 10550

News Roundup

Err codemadness.org 70 i 10551 Err codemadness.org 70 i 10552

Amazon now has FreeBSD/ARM 12

Err codemadness.org 70 i 10553 Err codemadness.org 70 i 10554
Err codemadness.org 70 i 10555

AWS, the cloud division of Amazon, announced in December the next generation of its ARM processors, the Graviton2. This is a custom chip design with a 7nm architecture. It is based on 64-bit ARM Neoverse cores.

Err codemadness.org 70 i 10556 Err codemadness.org 70 i 10557

Compared to first-generation Graviton processors (A1), today’s new chips should deliver up to 7x the performance of A1 instances in some cases. Floating point performance is now twice as fast. There are additional memory channels and cache speed memory access should be much faster.

Err codemadness.org 70 i 10558 Err codemadness.org 70 i 10559

The company is working on three types of Graviton2 EC2 instances that should be available soon. Instances with a “g” suffix are powered by Graviton2 chips. If they have a “d” suffix, it also means that they have NVMe local storage.

Err codemadness.org 70 i 10560 Err codemadness.org 70 i 10561
    Err codemadness.org 70 i 10562
  • General-purpose instances (M6g and M6gd)

  • Err codemadness.org 70 i 10563
  • Compute-optimized instances (C6g and C6gd)

  • Err codemadness.org 70 i 10564
  • Memory-optimized instances (R6g and R6gd)

  • Err codemadness.org 70 i 10565
Err codemadness.org 70 i 10566 Err codemadness.org 70 i 10567

You can choose instances with up to 64 vCPUs, 512 GiB of memory and 25 Gbps networking.

Err codemadness.org 70 i 10568 Err codemadness.org 70 i 10569

And you can see that ARM-powered servers are not just a fad. AWS already promises a 40% better price/performance ratio with ARM-based instances when you compare them with x86-based instances.

Err codemadness.org 70 i 10570 Err codemadness.org 70 i 10571

AWS has been working with operating system vendors and independent software vendors to help them release software that runs on ARM. ARM-based EC2 instances support Amazon Linux 2, Ubuntu, Red Hat, SUSE, Fedora, Debian and FreeBSD. It also works with multiple container services (Docker, Amazon ECS, and Amazon Elastic Kubernetes Service).

Err codemadness.org 70 i 10572
Err codemadness.org 70 i 10573 Err codemadness.org 70 i 10574 Err codemadness.org 70 i 10577 Err codemadness.org 70 i 10578
Err codemadness.org 70 i 10579 Err codemadness.org 70 i 10580

Announcing the pkgsrc-2019Q4 release

Err codemadness.org 70 i 10581 Err codemadness.org 70 i 10582
Err codemadness.org 70 i 10583

The pkgsrc developers are proud to announce the 65th quarterly release of pkgsrc, the cross-platform packaging system. pkgsrc is available with more than 20,000 packages, running on 23 separate platforms; more information on pkgsrc itself is available at https://www.pkgsrc.org/

Err codemadness.org 70 i 10584 Err codemadness.org 70 i 10585

In total, 190 packages were added, 96 packages were removed, and 1,868 package updates (to 1388 unique packages) were processed since the pkgsrc-2019Q3 release. As usual, a large number of updates and additions were processed for packages for go (14), guile (11), perl (170), php (10), python (426), and ruby (110). This continues pkgsrc's tradition of adding useful packages, updating many packages to more current versions, and pruning unmaintained packages that are believed to have essentially no users.

Err codemadness.org 70 i 10586
Err codemadness.org 70 i 10587 Err codemadness.org 70 i 10588
Err codemadness.org 70 i 10589 Err codemadness.org 70 i 10590

The Joys of UNIX Keyboards

Err codemadness.org 70 i 10591 Err codemadness.org 70 i 10592
Err codemadness.org 70 i 10593

I fell in love with a dead keyboard layout.

Err codemadness.org 70 i 10594 Err codemadness.org 70 i 10595

A decade or so ago while helping a friends father clean out an old building, we came across an ancient Sun Microsystems server. We found it curious. Everything about it was different from what we were used to. The command line was black on white, the connectors strange and foreign, and the keyboard layout was bizarre.

Err codemadness.org 70 i 10596 Err codemadness.org 70 i 10597

We never did much with it; turning it on made all the lights in his home dim, and our joint knowledge of UNIX was nonexistent. It sat in his bedroom for years supporting his television at the foot of his bed.

Err codemadness.org 70 i 10598 Err codemadness.org 70 i 10599

I never forgot that keyboard though. The thought that there was this alternative layout out there seemed intriguing to me.

Err codemadness.org 70 i 10600
Err codemadness.org 70 i 10601 Err codemadness.org 70 i 10602
Err codemadness.org 70 i 10603 Err codemadness.org 70 i 10604

OpenBSD on Digital Ocean

Err codemadness.org 70 i 10605 Err codemadness.org 70 i 10606
Err codemadness.org 70 i 10607

Last night I had a need to put together a new OpenBSD machine. Since I already use DigitalOcean for one of my public DNS servers I wanted to use them for this need but sadly like all too many of the cloud providers they don't support OpenBSD. Now they do support FreeBSD and I found a couple writeups that show how to use FreeBSD as a shim to install OpenBSD.

Err codemadness.org 70 i 10608 Err codemadness.org 70 i 10609

They are both sort of old at this point and with OpenBSD 6.6 out I ran into a bit of a snag. The default these days is to use a GPT partition table to enable EFI booting. This is generally pretty sane but it looks to me like the FreeBSD droplet doesn't support this. After the installer rebooted the VM failed to boot, being unable to find the bootloader.

Err codemadness.org 70 i 10610 Err codemadness.org 70 i 10611

Thankfully DigitalOcean has a recovery ISO that you can boot by simply switching to it and powering off and then on your Droplet.

Err codemadness.org 70 i 10612
Err codemadness.org 70 i 10613 Err codemadness.org 70 i 10614
Err codemadness.org 70 i 10615 Err codemadness.org 70 i 10616

Beastie Bits

Err codemadness.org 70 i 10617 Err codemadness.org 70 i 10618 Err codemadness.org 70 i 10626 Err codemadness.org 70 i 10627
Err codemadness.org 70 i 10628 Err codemadness.org 70 i 10629

Feedback/Questions

Err codemadness.org 70 i 10630 Err codemadness.org 70 i 10631 Err codemadness.org 70 i 10636 Err codemadness.org 70 i 10637
Err codemadness.org 70 i 10638 Err codemadness.org 70 i 10639
    Err codemadness.org 70 i 10640
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 10641
Err codemadness.org 70 i 10642 Err codemadness.org 70 i 10643
Err codemadness.org 70 i 10644 Err codemadness.org 70 i 10645 ]]> Err codemadness.org 70 i 10649
Err codemadness.org 70 i 10650 https://fireside.fm/player/v2/FYhhasNR+fCrZJNCT Err codemadness.org 70 i 10651 Err codemadness.org 70 i 10652 ]]> Err codemadness.org 70 i 10653 Err codemadness.org 70 i 10654
Err codemadness.org 70 i 10655 Err codemadness.org 70 i 10656 332: The BSD Hyperbole Err codemadness.org 70 i 10657 https://www.bsdnow.tv/332 Err codemadness.org 70 i 10658 34cc6ce3-e7ed-41bf-880e-e77f6a27fe3c Err codemadness.org 70 i 10659 Thu, 09 Jan 2020 05:00:00 -0800 Err codemadness.org 70 i 10660 Allan Jude Err codemadness.org 70 i 10661 Err codemadness.org 70 i 10662 full Err codemadness.org 70 i 10663 Allan Jude Err codemadness.org 70 i 10664 Announcing HyperbolaBSD, IPFW In-Kernel NAT setup on FreeBSD, Wayland and WebRTC enabled for NetBSD 9/Linux, LLDB Threading support ready for mainline, OpenSSH U2F/FIDO support in base, Dragonfly drm/i915: Update, and more. Err codemadness.org 70 i 10665 45:12 Err codemadness.org 70 i 10666 no Err codemadness.org 70 i 10667 Err codemadness.org 70 i 10668 Announcing HyperbolaBSD, IPFW In-Kernel NAT setup on FreeBSD, Wayland and WebRTC enabled for NetBSD 9/Linux, LLDB Threading support ready for mainline, OpenSSH U2F/FIDO support in base, Dragonfly drm/i915: Update, and more. Err codemadness.org 70 i 10669 Headlines Err codemadness.org 70 i 10670 HyperbolaBSD Announcement (https://www.hyperbola.info/news/announcing-hyperbolabsd-roadmap/) Err codemadness.org 70 i 10671 Due to the Linux kernel rapidly proceeding down an unstable path, we are planning on implementing a completely new OS derived from several BSD implementations. Err codemadness.org 70 i 10672 This was not an easy decision to make, but we wish to use our time and resources to create a viable alternative to the current operating system trends which are actively seeking to undermine user choice and freedom. Err codemadness.org 70 i 10673 This will not be a "distro", but a hard fork of the OpenBSD kernel and userspace including new code written under GPLv3 and LGPLv3 to replace GPL-incompatible parts and non-free ones. Err codemadness.org 70 i 10674 Reasons for this include: Err codemadness.org 70 i 10675 Linux kernel forcing adaption of DRM, including HDCP. Err codemadness.org 70 i 10676 Linux kernel proposed usage of Rust (which contains freedom flaws and a centralized code repository that is more prone to cyber attack and generally requires internet access to use.) Err codemadness.org 70 i 10677 Linux kernel being written without security and in mind. (KSPP is basically a dead project and Grsec is no longer free software) Err codemadness.org 70 i 10678 Many GNU userspace and core utils are all forcing adaption of features without build time options to disable them. E.g. (PulseAudio / SystemD / Rust / Java as forced dependencies) Err codemadness.org 70 i 10679 As such, we will continue to support the Milky Way branch until 2022 when our legacy Linux-libre kernel reaches End of Life. Err codemadness.org 70 i 10680 Future versions of Hyperbola will be using HyperbolaBSD which will have the new kernel, userspace and not be ABI compatible with previous versions. Err codemadness.org 70 i 10681 HyperbolaBSD is intended to be modular and minimalist so other projects will be able to re-use the code under free license. Err codemadness.org 70 i 10682 Forum Post (https://forums.hyperbola.info/viewtopic.php?id=315) Err codemadness.org 70 i 10683 A simple IPFW In-Kernel NAT setup on FreeBSD (https://www.neelc.org/posts/freebsd-ipfw-nat/) Err codemadness.org 70 i 10684 After graduating college, I am moving from Brooklyn, NY to Redmond, WA (guess where I got a job). I always wanted to re-do my OPNsense firewall (currently a HP T730) with stock FreeBSD and IPFW’s in-kernel NAT. Err codemadness.org 70 i 10685 Why IPFW? Benchmarks have shown IPFW to be faster which is especially good for my Tor relay, and because I can! However, one downside of IPFW is less documentation vs PF, even less without natd (which we’re not using), and this took me time to figure this out. Err codemadness.org 70 i 10686 But since my T730 is already packed, I am testing this on a old PC with two NICs, and my laptop [1] as a client with an USB-to-Ethernet adapter. Err codemadness.org 70 i 10687 News Roundup Err codemadness.org 70 i 10688 HEADS UP: Wayland and WebRTC enabled for NetBSD 9/Linux (https://mail-index.netbsd.org/pkgsrc-users/2020/01/05/msg030124.html) Err codemadness.org 70 i 10689 This is just a heads up that the Wayland option is now turned on by Err codemadness.org 70 i 10690 default for NetBSD 9 and Linux in cases where it peacefully coexists Err codemadness.org 70 i 10691 with X11. Err codemadness.org 70 i 10692 Right now, this effects the following packages: Err codemadness.org 70 i 10693 graphics/MesaLib Err codemadness.org 70 i 10694 devel/SDL2 Err codemadness.org 70 i 10695 www/webkit-gtk Err codemadness.org 70 i 10696 x11/gtk3 Err codemadness.org 70 i 10697 The WebRTC option has also been enabled by default on NetBSD 9 for two Firefox versions: www/firefox, www/firefox68 Err codemadness.org 70 i 10698 Please keep me informed of any fallout. Hopefully, there will be none. Err codemadness.org 70 i 10699 If you want to try out Wayland-related things on NetBSD 9, wm/velox/MESSAGE may be interesting for you. Err codemadness.org 70 i 10700 LLDB Threading support now ready for mainline (https://blog.netbsd.org/tnf/entry/lldb_threading_support_now_ready) Err codemadness.org 70 i 10701 Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages. Err codemadness.org 70 i 10702 In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues and fixing watchpoint support. Then, I've started working on improving thread support which is taking longer than expected. You can read more about that in my September 2019 report. Err codemadness.org 70 i 10703 So far the number of issues uncovered while enabling proper threading support has stopped me from merging the work-in-progress patches. However, I've finally reached the point where I believe that the current work can be merged and the remaining problems can be resolved afterwards. More on that and other LLVM-related events happening during the last month in this report. Err codemadness.org 70 i 10704 OpenSSH U2F/FIDO support in base (https://www.undeadly.org/cgi?action=article;sid=20191115064850) Err codemadness.org 70 i 10705 Hardware backed keys can be generated using "ssh-keygen -t ecdsa-sk" (or "ed25519-sk" if your token supports it). Many tokens require to be touched/tapped to confirm this step. Err codemadness.org 70 i 10706 You'll get a public/private keypair back as usual, except in this case, the private key file does not contain a highly-sensitive private key but instead holds a "key handle" that is used by the security key to derive the real private key at signing time. Err codemadness.org 70 i 10707 So, stealing a copy of the private key file without also stealing your security key (or access to it) should not give the attacker anything. Err codemadness.org 70 i 10708 drm/i915: Update to Linux 4.8.17 (http://lists.dragonflybsd.org/pipermail/commits/2019-December/720257.html) Err codemadness.org 70 i 10709 drm/i915: Update to Linux 4.8.17 Err codemadness.org 70 i 10710 Broxton, Valleyview and Cherryview support improvements Err codemadness.org 70 i 10711 Broadwell and Gen9/Skylake support improvements Err codemadness.org 70 i 10712 Broadwell brightness fixes from OpenBSD Err codemadness.org 70 i 10713 Atomic modesetting improvements Err codemadness.org 70 i 10714 Various bug fixes and performance enhancements Err codemadness.org 70 i 10715 Beastie Bits Err codemadness.org 70 i 10716 Visual Studio Code port for FreeBSD (https://github.com/tagattie/FreeBSD-VSCode) Err codemadness.org 70 i 10717 OpenBSD syscall call-from verification (https://marc.info/?l=openbsd-tech&m=157488907117170&w=2) Err codemadness.org 70 i 10718 Peertube on OpenBSD (https://www.22decembre.eu/en/2019/12/09/peertube-14-openbsd/) Err codemadness.org 70 i 10719 Fuzzing Filesystems on NetBSD via AFL+KCOV by Maciej Grochowski (https://www.youtube.com/watch?v=bbNCqFdQEyk&feature=youtu.be) Err codemadness.org 70 i 10720 Twitter Bot for Prop65 (https://twitter.com/prop65bot/status/1199003319307558912) Err codemadness.org 70 i 10721 Interactive vim tutorial (https://www.openvim.com/) Err codemadness.org 70 i 10722 First BSD user group meeting in Hamilton, February 11, 2020 18:30 - 21:00, Boston Pizza on Upper James St (http://studybsd.com/) Err codemadness.org 70 i 10723 *** Err codemadness.org 70 i 10724 Feedback/Questions Err codemadness.org 70 i 10725 Samir - cgit (http://dpaste.com/2B22M24#wrap) Err codemadness.org 70 i 10726 Russell - R (http://dpaste.com/0J5TYY0#wrap) Err codemadness.org 70 i 10727 Wolfgang - Question (http://dpaste.com/3MQAH27#wrap) Err codemadness.org 70 i 10728 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 10729 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 10730 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0332.mp4" type="video/mp4"> Err codemadness.org 70 i 10731 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 10732 </video> Err codemadness.org 70 i 10733 Err codemadness.org 70 i 10734 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, hyperbolabsd, ipfw, in-kernel nat, nat, wayland, webrtc, lldb, threading, u2f, fido, drm, i915 Err codemadness.org 70 i 10735 Err codemadness.org 70 i 10736 Announcing HyperbolaBSD, IPFW In-Kernel NAT setup on FreeBSD, Wayland and WebRTC enabled for NetBSD 9/Linux, LLDB Threading support ready for mainline, OpenSSH U2F/FIDO support in base, Dragonfly drm/i915: Update, and more.

Err codemadness.org 70 i 10737 Err codemadness.org 70 i 10738

Headlines

Err codemadness.org 70 i 10739 Err codemadness.org 70 i 10740

HyperbolaBSD Announcement

Err codemadness.org 70 i 10741 Err codemadness.org 70 i 10742
Err codemadness.org 70 i 10743

Due to the Linux kernel rapidly proceeding down an unstable path, we are planning on implementing a completely new OS derived from several BSD implementations.

Err codemadness.org 70 i 10744 Err codemadness.org 70 i 10745

This was not an easy decision to make, but we wish to use our time and resources to create a viable alternative to the current operating system trends which are actively seeking to undermine user choice and freedom.

Err codemadness.org 70 i 10746 Err codemadness.org 70 i 10747

This will not be a "distro", but a hard fork of the OpenBSD kernel and userspace including new code written under GPLv3 and LGPLv3 to replace GPL-incompatible parts and non-free ones.

Err codemadness.org 70 i 10748
Err codemadness.org 70 i 10749 Err codemadness.org 70 i 10750
    Err codemadness.org 70 i 10751
  • Reasons for this include: Err codemadness.org 70 i 10752 Err codemadness.org 70 i 10753
      Err codemadness.org 70 i 10754
    • Linux kernel forcing adaption of DRM, including HDCP.
    • Err codemadness.org 70 i 10755
    • Linux kernel proposed usage of Rust (which contains freedom flaws and a centralized code repository that is more prone to cyber attack and generally requires internet access to use.)
    • Err codemadness.org 70 i 10756
    • Linux kernel being written without security and in mind. (KSPP is basically a dead project and Grsec is no longer free software)
    • Err codemadness.org 70 i 10757
    • Many GNU userspace and core utils are all forcing adaption of features without build time options to disable them. E.g. (PulseAudio / SystemD / Rust / Java as forced dependencies)
    • Err codemadness.org 70 i 10758
    • As such, we will continue to support the Milky Way branch until 2022 when our legacy Linux-libre kernel reaches End of Life.
    • Err codemadness.org 70 i 10759
  • Err codemadness.org 70 i 10760
Err codemadness.org 70 i 10761 Err codemadness.org 70 i 10762
Err codemadness.org 70 i 10763

Future versions of Hyperbola will be using HyperbolaBSD which will have the new kernel, userspace and not be ABI compatible with previous versions.

Err codemadness.org 70 i 10764 Err codemadness.org 70 i 10765

HyperbolaBSD is intended to be modular and minimalist so other projects will be able to re-use the code under free license.

Err codemadness.org 70 i 10766
Err codemadness.org 70 i 10767 Err codemadness.org 70 i 10768
    Err codemadness.org 70 i 10769
  • Forum Post
  • Err codemadness.org 70 i 10770
Err codemadness.org 70 i 10771 Err codemadness.org 70 i 10772
Err codemadness.org 70 i 10773 Err codemadness.org 70 i 10774

A simple IPFW In-Kernel NAT setup on FreeBSD

Err codemadness.org 70 i 10775 Err codemadness.org 70 i 10776
Err codemadness.org 70 i 10777

After graduating college, I am moving from Brooklyn, NY to Redmond, WA (guess where I got a job). I always wanted to re-do my OPNsense firewall (currently a HP T730) with stock FreeBSD and IPFW’s in-kernel NAT.

Err codemadness.org 70 i 10778 Err codemadness.org 70 i 10779

Why IPFW? Benchmarks have shown IPFW to be faster which is especially good for my Tor relay, and because I can! However, one downside of IPFW is less documentation vs PF, even less without natd (which we’re not using), and this took me time to figure this out.

Err codemadness.org 70 i 10780 Err codemadness.org 70 i 10781

But since my T730 is already packed, I am testing this on a old PC with two NICs, and my laptop [1] as a client with an USB-to-Ethernet adapter.

Err codemadness.org 70 i 10782
Err codemadness.org 70 i 10783 Err codemadness.org 70 i 10784
Err codemadness.org 70 i 10785 Err codemadness.org 70 i 10786

News Roundup

Err codemadness.org 70 i 10787 Err codemadness.org 70 i 10788

HEADS UP: Wayland and WebRTC enabled for NetBSD 9/Linux

Err codemadness.org 70 i 10789 Err codemadness.org 70 i 10790
Err codemadness.org 70 i 10791

This is just a heads up that the Wayland option is now turned on by

Err codemadness.org 70 i 10792
Err codemadness.org 70 i 10793 Err codemadness.org 70 i 10794

default for NetBSD 9 and Linux in cases where it peacefully coexists
Err codemadness.org 70 i 10795 with X11.

Err codemadness.org 70 i 10796 Err codemadness.org 70 i 10797
    Err codemadness.org 70 i 10798
  • Right now, this effects the following packages: Err codemadness.org 70 i 10799 Err codemadness.org 70 i 10800
      Err codemadness.org 70 i 10801
    • graphics/MesaLib
    • Err codemadness.org 70 i 10802
    • devel/SDL2
    • Err codemadness.org 70 i 10803
    • www/webkit-gtk
    • Err codemadness.org 70 i 10804
    • x11/gtk3
    • Err codemadness.org 70 i 10805
  • Err codemadness.org 70 i 10806
Err codemadness.org 70 i 10807 Err codemadness.org 70 i 10808
Err codemadness.org 70 i 10809

The WebRTC option has also been enabled by default on NetBSD 9 for two Firefox versions: www/firefox, www/firefox68

Err codemadness.org 70 i 10810 Err codemadness.org 70 i 10811

Please keep me informed of any fallout. Hopefully, there will be none.

Err codemadness.org 70 i 10812 Err codemadness.org 70 i 10813

If you want to try out Wayland-related things on NetBSD 9, wm/velox/MESSAGE may be interesting for you.

Err codemadness.org 70 i 10814
Err codemadness.org 70 i 10815 Err codemadness.org 70 i 10816
Err codemadness.org 70 i 10817 Err codemadness.org 70 i 10818

LLDB Threading support now ready for mainline

Err codemadness.org 70 i 10819 Err codemadness.org 70 i 10820
Err codemadness.org 70 i 10821

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.

Err codemadness.org 70 i 10822 Err codemadness.org 70 i 10823

In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues and fixing watchpoint support. Then, I've started working on improving thread support which is taking longer than expected. You can read more about that in my September 2019 report.

Err codemadness.org 70 i 10824 Err codemadness.org 70 i 10825

So far the number of issues uncovered while enabling proper threading support has stopped me from merging the work-in-progress patches. However, I've finally reached the point where I believe that the current work can be merged and the remaining problems can be resolved afterwards. More on that and other LLVM-related events happening during the last month in this report.

Err codemadness.org 70 i 10826
Err codemadness.org 70 i 10827 Err codemadness.org 70 i 10828
Err codemadness.org 70 i 10829 Err codemadness.org 70 i 10830

OpenSSH U2F/FIDO support in base

Err codemadness.org 70 i 10831 Err codemadness.org 70 i 10832
Err codemadness.org 70 i 10833

Hardware backed keys can be generated using "ssh-keygen -t ecdsa-sk" (or "ed25519-sk" if your token supports it). Many tokens require to be touched/tapped to confirm this step.

Err codemadness.org 70 i 10834 Err codemadness.org 70 i 10835

You'll get a public/private keypair back as usual, except in this case, the private key file does not contain a highly-sensitive private key but instead holds a "key handle" that is used by the security key to derive the real private key at signing time.

Err codemadness.org 70 i 10836 Err codemadness.org 70 i 10837

So, stealing a copy of the private key file without also stealing your security key (or access to it) should not give the attacker anything.

Err codemadness.org 70 i 10838
Err codemadness.org 70 i 10839 Err codemadness.org 70 i 10840
Err codemadness.org 70 i 10841 Err codemadness.org 70 i 10842

drm/i915: Update to Linux 4.8.17

Err codemadness.org 70 i 10843 Err codemadness.org 70 i 10844
    Err codemadness.org 70 i 10845
  • drm/i915: Update to Linux 4.8.17 Err codemadness.org 70 i 10846 Err codemadness.org 70 i 10847
      Err codemadness.org 70 i 10848
    • Broxton, Valleyview and Cherryview support improvements
    • Err codemadness.org 70 i 10849
    • Broadwell and Gen9/Skylake support improvements
    • Err codemadness.org 70 i 10850
    • Broadwell brightness fixes from OpenBSD
    • Err codemadness.org 70 i 10851
    • Atomic modesetting improvements
    • Err codemadness.org 70 i 10852
    • Various bug fixes and performance enhancements
    • Err codemadness.org 70 i 10853
  • Err codemadness.org 70 i 10854
Err codemadness.org 70 i 10855 Err codemadness.org 70 i 10856
Err codemadness.org 70 i 10857 Err codemadness.org 70 i 10858

Beastie Bits

Err codemadness.org 70 i 10859 Err codemadness.org 70 i 10860 Err codemadness.org 70 i 10870 Err codemadness.org 70 i 10871

Feedback/Questions

Err codemadness.org 70 i 10872 Err codemadness.org 70 i 10873
    Err codemadness.org 70 i 10874
  • Samir - cgit
  • Err codemadness.org 70 i 10875
  • Russell - R
  • Err codemadness.org 70 i 10876
  • Wolfgang - Question
  • Err codemadness.org 70 i 10877
Err codemadness.org 70 i 10878 Err codemadness.org 70 i 10879
Err codemadness.org 70 i 10880 Err codemadness.org 70 i 10881
    Err codemadness.org 70 i 10882
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 10883
Err codemadness.org 70 i 10884 Err codemadness.org 70 i 10885
Err codemadness.org 70 i 10886 Err codemadness.org 70 i 10887 ]]> Err codemadness.org 70 i 10891
Err codemadness.org 70 i 10892 Err codemadness.org 70 i 10893 Announcing HyperbolaBSD, IPFW In-Kernel NAT setup on FreeBSD, Wayland and WebRTC enabled for NetBSD 9/Linux, LLDB Threading support ready for mainline, OpenSSH U2F/FIDO support in base, Dragonfly drm/i915: Update, and more.

Err codemadness.org 70 i 10894 Err codemadness.org 70 i 10895

Headlines

Err codemadness.org 70 i 10896 Err codemadness.org 70 i 10897

HyperbolaBSD Announcement

Err codemadness.org 70 i 10898 Err codemadness.org 70 i 10899
Err codemadness.org 70 i 10900

Due to the Linux kernel rapidly proceeding down an unstable path, we are planning on implementing a completely new OS derived from several BSD implementations.

Err codemadness.org 70 i 10901 Err codemadness.org 70 i 10902

This was not an easy decision to make, but we wish to use our time and resources to create a viable alternative to the current operating system trends which are actively seeking to undermine user choice and freedom.

Err codemadness.org 70 i 10903 Err codemadness.org 70 i 10904

This will not be a "distro", but a hard fork of the OpenBSD kernel and userspace including new code written under GPLv3 and LGPLv3 to replace GPL-incompatible parts and non-free ones.

Err codemadness.org 70 i 10905
Err codemadness.org 70 i 10906 Err codemadness.org 70 i 10907
    Err codemadness.org 70 i 10908
  • Reasons for this include: Err codemadness.org 70 i 10909 Err codemadness.org 70 i 10910
      Err codemadness.org 70 i 10911
    • Linux kernel forcing adaption of DRM, including HDCP.
    • Err codemadness.org 70 i 10912
    • Linux kernel proposed usage of Rust (which contains freedom flaws and a centralized code repository that is more prone to cyber attack and generally requires internet access to use.)
    • Err codemadness.org 70 i 10913
    • Linux kernel being written without security and in mind. (KSPP is basically a dead project and Grsec is no longer free software)
    • Err codemadness.org 70 i 10914
    • Many GNU userspace and core utils are all forcing adaption of features without build time options to disable them. E.g. (PulseAudio / SystemD / Rust / Java as forced dependencies)
    • Err codemadness.org 70 i 10915
    • As such, we will continue to support the Milky Way branch until 2022 when our legacy Linux-libre kernel reaches End of Life.
    • Err codemadness.org 70 i 10916
  • Err codemadness.org 70 i 10917
Err codemadness.org 70 i 10918 Err codemadness.org 70 i 10919
Err codemadness.org 70 i 10920

Future versions of Hyperbola will be using HyperbolaBSD which will have the new kernel, userspace and not be ABI compatible with previous versions.

Err codemadness.org 70 i 10921 Err codemadness.org 70 i 10922

HyperbolaBSD is intended to be modular and minimalist so other projects will be able to re-use the code under free license.

Err codemadness.org 70 i 10923
Err codemadness.org 70 i 10924 Err codemadness.org 70 i 10925
    Err codemadness.org 70 i 10926
  • Forum Post
  • Err codemadness.org 70 i 10927
Err codemadness.org 70 i 10928 Err codemadness.org 70 i 10929
Err codemadness.org 70 i 10930 Err codemadness.org 70 i 10931

A simple IPFW In-Kernel NAT setup on FreeBSD

Err codemadness.org 70 i 10932 Err codemadness.org 70 i 10933
Err codemadness.org 70 i 10934

After graduating college, I am moving from Brooklyn, NY to Redmond, WA (guess where I got a job). I always wanted to re-do my OPNsense firewall (currently a HP T730) with stock FreeBSD and IPFW’s in-kernel NAT.

Err codemadness.org 70 i 10935 Err codemadness.org 70 i 10936

Why IPFW? Benchmarks have shown IPFW to be faster which is especially good for my Tor relay, and because I can! However, one downside of IPFW is less documentation vs PF, even less without natd (which we’re not using), and this took me time to figure this out.

Err codemadness.org 70 i 10937 Err codemadness.org 70 i 10938

But since my T730 is already packed, I am testing this on a old PC with two NICs, and my laptop [1] as a client with an USB-to-Ethernet adapter.

Err codemadness.org 70 i 10939
Err codemadness.org 70 i 10940 Err codemadness.org 70 i 10941
Err codemadness.org 70 i 10942 Err codemadness.org 70 i 10943

News Roundup

Err codemadness.org 70 i 10944 Err codemadness.org 70 i 10945

HEADS UP: Wayland and WebRTC enabled for NetBSD 9/Linux

Err codemadness.org 70 i 10946 Err codemadness.org 70 i 10947
Err codemadness.org 70 i 10948

This is just a heads up that the Wayland option is now turned on by

Err codemadness.org 70 i 10949
Err codemadness.org 70 i 10950 Err codemadness.org 70 i 10951

default for NetBSD 9 and Linux in cases where it peacefully coexists
Err codemadness.org 70 i 10952 with X11.

Err codemadness.org 70 i 10953 Err codemadness.org 70 i 10954
    Err codemadness.org 70 i 10955
  • Right now, this effects the following packages: Err codemadness.org 70 i 10956 Err codemadness.org 70 i 10957
      Err codemadness.org 70 i 10958
    • graphics/MesaLib
    • Err codemadness.org 70 i 10959
    • devel/SDL2
    • Err codemadness.org 70 i 10960
    • www/webkit-gtk
    • Err codemadness.org 70 i 10961
    • x11/gtk3
    • Err codemadness.org 70 i 10962
  • Err codemadness.org 70 i 10963
Err codemadness.org 70 i 10964 Err codemadness.org 70 i 10965
Err codemadness.org 70 i 10966

The WebRTC option has also been enabled by default on NetBSD 9 for two Firefox versions: www/firefox, www/firefox68

Err codemadness.org 70 i 10967 Err codemadness.org 70 i 10968

Please keep me informed of any fallout. Hopefully, there will be none.

Err codemadness.org 70 i 10969 Err codemadness.org 70 i 10970

If you want to try out Wayland-related things on NetBSD 9, wm/velox/MESSAGE may be interesting for you.

Err codemadness.org 70 i 10971
Err codemadness.org 70 i 10972 Err codemadness.org 70 i 10973
Err codemadness.org 70 i 10974 Err codemadness.org 70 i 10975

LLDB Threading support now ready for mainline

Err codemadness.org 70 i 10976 Err codemadness.org 70 i 10977
Err codemadness.org 70 i 10978

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.

Err codemadness.org 70 i 10979 Err codemadness.org 70 i 10980

In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues and fixing watchpoint support. Then, I've started working on improving thread support which is taking longer than expected. You can read more about that in my September 2019 report.

Err codemadness.org 70 i 10981 Err codemadness.org 70 i 10982

So far the number of issues uncovered while enabling proper threading support has stopped me from merging the work-in-progress patches. However, I've finally reached the point where I believe that the current work can be merged and the remaining problems can be resolved afterwards. More on that and other LLVM-related events happening during the last month in this report.

Err codemadness.org 70 i 10983
Err codemadness.org 70 i 10984 Err codemadness.org 70 i 10985
Err codemadness.org 70 i 10986 Err codemadness.org 70 i 10987

OpenSSH U2F/FIDO support in base

Err codemadness.org 70 i 10988 Err codemadness.org 70 i 10989
Err codemadness.org 70 i 10990

Hardware backed keys can be generated using "ssh-keygen -t ecdsa-sk" (or "ed25519-sk" if your token supports it). Many tokens require to be touched/tapped to confirm this step.

Err codemadness.org 70 i 10991 Err codemadness.org 70 i 10992

You'll get a public/private keypair back as usual, except in this case, the private key file does not contain a highly-sensitive private key but instead holds a "key handle" that is used by the security key to derive the real private key at signing time.

Err codemadness.org 70 i 10993 Err codemadness.org 70 i 10994

So, stealing a copy of the private key file without also stealing your security key (or access to it) should not give the attacker anything.

Err codemadness.org 70 i 10995
Err codemadness.org 70 i 10996 Err codemadness.org 70 i 10997
Err codemadness.org 70 i 10998 Err codemadness.org 70 i 10999

drm/i915: Update to Linux 4.8.17

Err codemadness.org 70 i 11000 Err codemadness.org 70 i 11001
    Err codemadness.org 70 i 11002
  • drm/i915: Update to Linux 4.8.17 Err codemadness.org 70 i 11003 Err codemadness.org 70 i 11004
      Err codemadness.org 70 i 11005
    • Broxton, Valleyview and Cherryview support improvements
    • Err codemadness.org 70 i 11006
    • Broadwell and Gen9/Skylake support improvements
    • Err codemadness.org 70 i 11007
    • Broadwell brightness fixes from OpenBSD
    • Err codemadness.org 70 i 11008
    • Atomic modesetting improvements
    • Err codemadness.org 70 i 11009
    • Various bug fixes and performance enhancements
    • Err codemadness.org 70 i 11010
  • Err codemadness.org 70 i 11011
Err codemadness.org 70 i 11012 Err codemadness.org 70 i 11013
Err codemadness.org 70 i 11014 Err codemadness.org 70 i 11015

Beastie Bits

Err codemadness.org 70 i 11016 Err codemadness.org 70 i 11017 Err codemadness.org 70 i 11027 Err codemadness.org 70 i 11028

Feedback/Questions

Err codemadness.org 70 i 11029 Err codemadness.org 70 i 11030
    Err codemadness.org 70 i 11031
  • Samir - cgit
  • Err codemadness.org 70 i 11032
  • Russell - R
  • Err codemadness.org 70 i 11033
  • Wolfgang - Question
  • Err codemadness.org 70 i 11034
Err codemadness.org 70 i 11035 Err codemadness.org 70 i 11036
Err codemadness.org 70 i 11037 Err codemadness.org 70 i 11038
    Err codemadness.org 70 i 11039
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 11040
Err codemadness.org 70 i 11041 Err codemadness.org 70 i 11042
Err codemadness.org 70 i 11043 Err codemadness.org 70 i 11044 ]]> Err codemadness.org 70 i 11048
Err codemadness.org 70 i 11049 https://fireside.fm/player/v2/FYhhasNR+Y2hjUWel Err codemadness.org 70 i 11050 Err codemadness.org 70 i 11051 ]]> Err codemadness.org 70 i 11052 Err codemadness.org 70 i 11053
Err codemadness.org 70 i 11054 Err codemadness.org 70 i 11055 331: Why Computers Suck Err codemadness.org 70 i 11056 https://www.bsdnow.tv/331 Err codemadness.org 70 i 11057 aa8d58dd-a2a5-4c8a-9244-755d523fe855 Err codemadness.org 70 i 11058 Thu, 02 Jan 2020 05:00:00 -0800 Err codemadness.org 70 i 11059 Allan Jude Err codemadness.org 70 i 11060 Err codemadness.org 70 i 11061 full Err codemadness.org 70 i 11062 Allan Jude Err codemadness.org 70 i 11063 How learning OpenBSD makes computers suck a little less, How Unix works, FreeBSD 12.1 Runs Well on Ryzen Threadripper 3970X, BSDCan CFP, HardenedBSD Infrastructure Goals, and more. Err codemadness.org 70 i 11064 1:09:47 Err codemadness.org 70 i 11065 no Err codemadness.org 70 i 11066 Err codemadness.org 70 i 11067 How learning OpenBSD makes computers suck a little less, How Unix works, FreeBSD 12.1 Runs Well on Ryzen Threadripper 3970X, BSDCan CFP, HardenedBSD Infrastructure Goals, and more. Err codemadness.org 70 i 11068 Headlines Err codemadness.org 70 i 11069 Why computers suck and how learning from OpenBSD can make them marginally less horrible (https://telegra.ph/Why-OpenBSD-is-marginally-less-horrible-12-05) Err codemadness.org 70 i 11070 How much better could things actually be if we abandoned the enterprise development model? Err codemadness.org 70 i 11071 Next I will compare this enterprise development approach with non-enterprise development - projects such as OpenBSD, which do not hesitate to introduce ABI breaking changes to improve the codebase. Err codemadness.org 70 i 11072 One of the most commonly referred to pillars of the project's philosophy has long been its emphasis on clean functional code. Any code which makes it into OpenBSD is subject to ongoing aggressive audits for deprecated, or otherwise unmaintained code in order to reduce cruft and attack surface. Additionally the project creator, Theo de Raadt, and his team of core developers engage in ongoing development for proactive mitigations for various attack classes many of which are directly adopted by various multi-platform userland applications as well as the operating systems themselves (Windows, Linux, and the other BSDs). Frequently it is the case that introducing new features (not just deprecating old ones) introduces new incompatibilities against previously functional binaries compiled for OpenBSD. Err codemadness.org 70 i 11073 To prevent the sort of kernel memory bloat that has plagued so many other operating systems for years, the project enforces a hard ceiling on the number of lines of code that can ever be in ring 0 at a given time. Current estimates guess the number of bugs per line of code in the Linux kernel are around 1 bug per every 10,000 lines of code. Think of this in the context of the scope creep seen in the Linux kernel (which if I recall correctly is currently at around 100,000,000 lines of code), as well as the Windows NT kernel (500,000,000 lines of code) and you quickly begin to understand how adding more and more functionality into the most privileged components of the operating system without first removing old components begins to add up in terms of the drastic difference seen between these systems in the number of zero day exploits caught in the wild respectively. Err codemadness.org 70 i 11074 How Unix Works: Become a Better Software Engineer (https://neilkakkar.com/unix.html) Err codemadness.org 70 i 11075 Unix is beautiful. Allow me to paint some happy little trees for you. I’m not going to explain a bunch of commands – that’s boring, and there’s a million tutorials on the web doing that already. I’m going to leave you with the ability to reason about the system. Err codemadness.org 70 i 11076 Every fancy thing you want done is one google search away. Err codemadness.org 70 i 11077 But understanding why the solution does what you want is not the same. Err codemadness.org 70 i 11078 That’s what gives you real power, the power to not be afraid. Err codemadness.org 70 i 11079 And since it rhymes, it must be true. Err codemadness.org 70 i 11080 News Roundup Err codemadness.org 70 i 11081 FreeBSD 12.1 Runs Refreshingly Well With AMD Ryzen Threadripper 3970X (https://www.phoronix.com/scan.php?page=article&item=freebsd-amd-3970x&num=1) Err codemadness.org 70 i 11082 For those of you interested in AMD's new Ryzen Threadripper 3960X/3970X processors with TRX40 motherboards for running FreeBSD, the experience in our initial testing has been surprisingly pleasant. In fact, it works out-of-the-box which one could argue is better than the current Linux support that needs the MCE workaround for booting. Here are some benchmarks of FreeBSD 12.1 on the Threadripper 3970X compared to Linux and Windows for this new HEDT platform. Err codemadness.org 70 i 11083 It was refreshing to see FreeBSD 12.1 booting and running just fine with the Ryzen Threadripper 3970X 32-core/64-thread processor from the ASUS ROG ZENITH II EXTREME motherboard and all core functionality working including the PCIe 4.0 NVMe SSD storage, onboard networking, etc. The system was running with 4 x 16GB DDR4-3600 memory, 1TB Corsair Force MP600 NVMe SSD, and Radeon RX 580 graphics. It was refreshing to see FreeBSD 12.1 running well with this high-end AMD Threadripper system considering Linux even needed a boot workaround. Err codemadness.org 70 i 11084 While the FreeBSD 12.1 experience was trouble-free with the ASUS TRX40 motherboard (ROG Zenith II Extreme) and AMD Ryzen Threadripper 3970X, DragonFlyBSD unfortunately was not. Both DragonFlyBSD 5.6.2 stable and the DragonFlyBSD daily development snapshot from last week were yielding a panic on boot. So with that, DragonFlyBSD wasn't tested for this Threadripper 3970X comparison but just FreeBSD 12.1. Err codemadness.org 70 i 11085 FreeBSD 12.1 on the Threadripper 3970X was benchmarked both with its default LLVM Clang 8.0.1 compiler and again with GCC 9.2 from ports for ruling out compiler differences. The FreeBSD 12.1 performance was compared to last week's Windows 10 vs. Linux benchmarks with the same system. Err codemadness.org 70 i 11086 BSDCan 2020 CFP (https://lists.bsdcan.org/pipermail/bsdcan-announce/2019-December/000180.html) Err codemadness.org 70 i 11087 BSDCan 2020 will be held 5-6 (Fri-Sat) June, 2020 in Ottawa, at the University of Ottawa. It will be preceded by two days of tutorials on 3-4 June (Wed-Thu). Err codemadness.org 70 i 11088 NOTE the change of month in 2020 back to June Also: do not miss out on the Goat BOF on Tuesday 2 June. Err codemadness.org 70 i 11089 We are now accepting proposals for talks. The talks should be designed with a very strong technical content bias. Proposals of a business development or marketing nature are not appropriate for this venue. Err codemadness.org 70 i 11090 See http://www.bsdcan.org/2020/ Err codemadness.org 70 i 11091 If you are doing something interesting with a BSD operating system, please submit a proposal. Whether you are developing a very complex system using BSD as the foundation, or helping others and have a story to tell about how BSD played a role, we want to hear about your experience. People using BSD as a platform for research are also encouraged to submit a proposal. Possible topics include: Err codemadness.org 70 i 11092 How we manage a giant installation with respect to handling spam. Err codemadness.org 70 i 11093 and/or sysadmin. Err codemadness.org 70 i 11094 and/or networking. Err codemadness.org 70 i 11095 Cool new stuff in BSD Err codemadness.org 70 i 11096 Tell us about your project which runs on BSD Err codemadness.org 70 i 11097 other topics (see next paragraph) Err codemadness.org 70 i 11098 From the BSDCan website, the Archives section will allow you to review the wide variety of past BSDCan presentations as further examples. Err codemadness.org 70 i 11099 Both users and developers are encouraged to share their experiences. Err codemadness.org 70 i 11100 HardenedBSD Infrastructure Goals (https://github.com/lattera/articles/blob/master/hardenedbsd/2019-12-01_infrastructure/article.md) Err codemadness.org 70 i 11101 2019 has been an extremely productive year with regards to HardenedBSD's infrastructure. Several opportunities aligned themselves in such a way as to open a door for a near-complete rebuild with a vast expansion. Err codemadness.org 70 i 11102 The last few months especially have seen a major expansion of our infrastructure. We obtained a number of to-be-retired Dell R410 servers. The crash of our nightly build server provided the opportunity to deploy these R410 servers, doubling our build capacity. Err codemadness.org 70 i 11103 My available time to spend on HardenedBSD has decreased compared to this time last year. As part of rebuilding our infrastructure, I wanted to enable the community to be able to contribute. I'm structuring the work such that help is just a pull request away. Those in the HardenedBSD community who want to contribute to the infrastructure work can simply open a pull request. I'll review the code, and deploy it after a successful review. Users/contributors don't need access to our servers in order to improve them. Err codemadness.org 70 i 11104 My primary goal for the rest of 2019 and into 2020 is to become fully self-hosted, with the sole exception of email. I want to transition the source-of-truth git repos to our own infrastructure. We will still provide a read-only mirror on GitHub. Err codemadness.org 70 i 11105 As I develop this infrastructure, I'm doing so with human rights in mind. HardenedBSD is in a very unique position. In 2020, I plan to provide production Tor Onion Services for the various bits of our infrastructure. HardenedBSD will provide access to its various internal services to its developers and contributors. The entire development lifecycle, going from dev to prod, will be able to happen over Tor. Err codemadness.org 70 i 11106 Transparency will be key moving forward. Logs for the auto-sync script are now published directly to GitHub. Build logs will be, soon, too. Logs of all automated processes, and the code for those processes, will be tracked publicly via git. This will be especially crucial for development over Tor. Err codemadness.org 70 i 11107 Integrating Tor into our infrastructure so deeply increases risk and maintenance burden. However, I believe that through added transparency, we will be able to mitigate risk. Periodic audits will need to be performed and published. Err codemadness.org 70 i 11108 I hope to migrate HardenedBSD's site away from Drupal to a static site generator. We don't really need the dynamic capabilities Drupal gives us. The many security issues Drupal and PHP both bring also leave much to be desired. Err codemadness.org 70 i 11109 So, that's about it. I spent the last few months of 2019 laying the foundation for a successful 2020. I'm excited to see how the project grows. Err codemadness.org 70 i 11110 Beastie Bits Err codemadness.org 70 i 11111 FuryBSD - KDE plasma flavor now available (https://www.furybsd.org/kde-plasma-flavor-now-available/) Err codemadness.org 70 i 11112 DragonFly - git: virtio - Fix LUN scan issue w/ Google Cloud (http://lists.dragonflybsd.org/pipermail/commits/2019-November/719945.html) Err codemadness.org 70 i 11113 LPI is looking for BSD Specialist learning material writers (https://wiki.lpi.org/wiki/BSD_Specialist_Objectives_V1.0) Err codemadness.org 70 i 11114 ZFS sync/async + ZIL/SLOG, explained (https://jrs-s.net/2019/05/02/zfs-sync-async-zil-slog/) Err codemadness.org 70 i 11115 BSD-Licensed Combinatorics library/utility (https://lists.freebsd.org/pipermail/freebsd-announce/2019-December/001921.html) Err codemadness.org 70 i 11116 SSL client vs server certificates and bacula-fd (https://dan.langille.org/2019/11/29/ssl-client-vs-server-certificates-and-bacula-fd/) Err codemadness.org 70 i 11117 MaxxDesktop planning to come to FreeBSD (https://www.facebook.com/maxxdesktop/posts/2761326693888282) Project Page (https://www.facebook.com/maxxdesktop/) Err codemadness.org 70 i 11118 Feedback/Questions Err codemadness.org 70 i 11119 Tom - ZFS Mirror with different speeds (http://dpaste.com/3ZGYNS3#wrap) Err codemadness.org 70 i 11120 Jeff - Knowledge is power (http://dpaste.com/1H9QDCR#wrap) Err codemadness.org 70 i 11121 Johnny - Episode 324 response to Jacob (http://dpaste.com/1A7Q9EV) Err codemadness.org 70 i 11122 Pat - NYC*BUG meeting Jan Meeting Location (http://dpaste.com/0QPZ2GC) Err codemadness.org 70 i 11123 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 11124 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 11125 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0331.mp4" type="video/mp4"> Err codemadness.org 70 i 11126 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 11127 </video> Err codemadness.org 70 i 11128 Err codemadness.org 70 i 11129 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, learning, computers, unix, ryzen, Threadripper, 3970X, bsdcan, infrastructure Err codemadness.org 70 i 11130 Err codemadness.org 70 i 11131 How learning OpenBSD makes computers suck a little less, How Unix works, FreeBSD 12.1 Runs Well on Ryzen Threadripper 3970X, BSDCan CFP, HardenedBSD Infrastructure Goals, and more.

Err codemadness.org 70 i 11132 Err codemadness.org 70 i 11133

Headlines

Err codemadness.org 70 i 11134 Err codemadness.org 70 i 11135

Why computers suck and how learning from OpenBSD can make them marginally less horrible

Err codemadness.org 70 i 11136 Err codemadness.org 70 i 11137
Err codemadness.org 70 i 11138

How much better could things actually be if we abandoned the enterprise development model?

Err codemadness.org 70 i 11139 Err codemadness.org 70 i 11140

Next I will compare this enterprise development approach with non-enterprise development - projects such as OpenBSD, which do not hesitate to introduce ABI breaking changes to improve the codebase.

Err codemadness.org 70 i 11141 Err codemadness.org 70 i 11142

One of the most commonly referred to pillars of the project's philosophy has long been its emphasis on clean functional code. Any code which makes it into OpenBSD is subject to ongoing aggressive audits for deprecated, or otherwise unmaintained code in order to reduce cruft and attack surface. Additionally the project creator, Theo de Raadt, and his team of core developers engage in ongoing development for proactive mitigations for various attack classes many of which are directly adopted by various multi-platform userland applications as well as the operating systems themselves (Windows, Linux, and the other BSDs). Frequently it is the case that introducing new features (not just deprecating old ones) introduces new incompatibilities against previously functional binaries compiled for OpenBSD.

Err codemadness.org 70 i 11143 Err codemadness.org 70 i 11144

To prevent the sort of kernel memory bloat that has plagued so many other operating systems for years, the project enforces a hard ceiling on the number of lines of code that can ever be in ring 0 at a given time. Current estimates guess the number of bugs per line of code in the Linux kernel are around 1 bug per every 10,000 lines of code. Think of this in the context of the scope creep seen in the Linux kernel (which if I recall correctly is currently at around 100,000,000 lines of code), as well as the Windows NT kernel (500,000,000 lines of code) and you quickly begin to understand how adding more and more functionality into the most privileged components of the operating system without first removing old components begins to add up in terms of the drastic difference seen between these systems in the number of zero day exploits caught in the wild respectively.

Err codemadness.org 70 i 11145
Err codemadness.org 70 i 11146 Err codemadness.org 70 i 11147
Err codemadness.org 70 i 11148 Err codemadness.org 70 i 11149

How Unix Works: Become a Better Software Engineer

Err codemadness.org 70 i 11150 Err codemadness.org 70 i 11151
Err codemadness.org 70 i 11152

Unix is beautiful. Allow me to paint some happy little trees for you. I’m not going to explain a bunch of commands – that’s boring, and there’s a million tutorials on the web doing that already. I’m going to leave you with the ability to reason about the system.

Err codemadness.org 70 i 11153 Err codemadness.org 70 i 11154

Every fancy thing you want done is one google search away.

Err codemadness.org 70 i 11155 Err codemadness.org 70 i 11156

But understanding why the solution does what you want is not the same.

Err codemadness.org 70 i 11157 Err codemadness.org 70 i 11158

That’s what gives you real power, the power to not be afraid.

Err codemadness.org 70 i 11159 Err codemadness.org 70 i 11160

And since it rhymes, it must be true.

Err codemadness.org 70 i 11161
Err codemadness.org 70 i 11162 Err codemadness.org 70 i 11163
Err codemadness.org 70 i 11164 Err codemadness.org 70 i 11165

News Roundup

Err codemadness.org 70 i 11166 Err codemadness.org 70 i 11167

FreeBSD 12.1 Runs Refreshingly Well With AMD Ryzen Threadripper 3970X

Err codemadness.org 70 i 11168 Err codemadness.org 70 i 11169
Err codemadness.org 70 i 11170

For those of you interested in AMD's new Ryzen Threadripper 3960X/3970X processors with TRX40 motherboards for running FreeBSD, the experience in our initial testing has been surprisingly pleasant. In fact, it works out-of-the-box which one could argue is better than the current Linux support that needs the MCE workaround for booting. Here are some benchmarks of FreeBSD 12.1 on the Threadripper 3970X compared to Linux and Windows for this new HEDT platform.

Err codemadness.org 70 i 11171 Err codemadness.org 70 i 11172

It was refreshing to see FreeBSD 12.1 booting and running just fine with the Ryzen Threadripper 3970X 32-core/64-thread processor from the ASUS ROG ZENITH II EXTREME motherboard and all core functionality working including the PCIe 4.0 NVMe SSD storage, onboard networking, etc. The system was running with 4 x 16GB DDR4-3600 memory, 1TB Corsair Force MP600 NVMe SSD, and Radeon RX 580 graphics. It was refreshing to see FreeBSD 12.1 running well with this high-end AMD Threadripper system considering Linux even needed a boot workaround.

Err codemadness.org 70 i 11173 Err codemadness.org 70 i 11174

While the FreeBSD 12.1 experience was trouble-free with the ASUS TRX40 motherboard (ROG Zenith II Extreme) and AMD Ryzen Threadripper 3970X, DragonFlyBSD unfortunately was not. Both DragonFlyBSD 5.6.2 stable and the DragonFlyBSD daily development snapshot from last week were yielding a panic on boot. So with that, DragonFlyBSD wasn't tested for this Threadripper 3970X comparison but just FreeBSD 12.1.

Err codemadness.org 70 i 11175 Err codemadness.org 70 i 11176

FreeBSD 12.1 on the Threadripper 3970X was benchmarked both with its default LLVM Clang 8.0.1 compiler and again with GCC 9.2 from ports for ruling out compiler differences. The FreeBSD 12.1 performance was compared to last week's Windows 10 vs. Linux benchmarks with the same system.

Err codemadness.org 70 i 11177
Err codemadness.org 70 i 11178 Err codemadness.org 70 i 11179
Err codemadness.org 70 i 11180 Err codemadness.org 70 i 11181

BSDCan 2020 CFP

Err codemadness.org 70 i 11182 Err codemadness.org 70 i 11183
Err codemadness.org 70 i 11184

BSDCan 2020 will be held 5-6 (Fri-Sat) June, 2020 in Ottawa, at the University of Ottawa. It will be preceded by two days of tutorials on 3-4 June (Wed-Thu).

Err codemadness.org 70 i 11185 Err codemadness.org 70 i 11186

NOTE the change of month in 2020 back to June Also: do not miss out on the Goat BOF on Tuesday 2 June.

Err codemadness.org 70 i 11187 Err codemadness.org 70 i 11188

We are now accepting proposals for talks. The talks should be designed with a very strong technical content bias. Proposals of a business development or marketing nature are not appropriate for this venue.

Err codemadness.org 70 i 11189
Err codemadness.org 70 i 11190 Err codemadness.org 70 i 11191 Err codemadness.org 70 i 11194 Err codemadness.org 70 i 11195
Err codemadness.org 70 i 11196

If you are doing something interesting with a BSD operating system, please submit a proposal. Whether you are developing a very complex system using BSD as the foundation, or helping others and have a story to tell about how BSD played a role, we want to hear about your experience. People using BSD as a platform for research are also encouraged to submit a proposal. Possible topics include:

Err codemadness.org 70 i 11197
Err codemadness.org 70 i 11198 Err codemadness.org 70 i 11199
    Err codemadness.org 70 i 11200
  • How we manage a giant installation with respect to handling spam.
  • Err codemadness.org 70 i 11201
  • and/or sysadmin.
  • Err codemadness.org 70 i 11202
  • and/or networking.
  • Err codemadness.org 70 i 11203
  • Cool new stuff in BSD
  • Err codemadness.org 70 i 11204
  • Tell us about your project which runs on BSD
  • Err codemadness.org 70 i 11205
  • other topics (see next paragraph)
  • Err codemadness.org 70 i 11206
Err codemadness.org 70 i 11207 Err codemadness.org 70 i 11208
Err codemadness.org 70 i 11209

From the BSDCan website, the Archives section will allow you to review the wide variety of past BSDCan presentations as further examples.

Err codemadness.org 70 i 11210 Err codemadness.org 70 i 11211

Both users and developers are encouraged to share their experiences.

Err codemadness.org 70 i 11212
Err codemadness.org 70 i 11213 Err codemadness.org 70 i 11214
Err codemadness.org 70 i 11215 Err codemadness.org 70 i 11216

HardenedBSD Infrastructure Goals

Err codemadness.org 70 i 11217 Err codemadness.org 70 i 11218
Err codemadness.org 70 i 11219

2019 has been an extremely productive year with regards to HardenedBSD's infrastructure. Several opportunities aligned themselves in such a way as to open a door for a near-complete rebuild with a vast expansion.

Err codemadness.org 70 i 11220 Err codemadness.org 70 i 11221

The last few months especially have seen a major expansion of our infrastructure. We obtained a number of to-be-retired Dell R410 servers. The crash of our nightly build server provided the opportunity to deploy these R410 servers, doubling our build capacity.

Err codemadness.org 70 i 11222 Err codemadness.org 70 i 11223

My available time to spend on HardenedBSD has decreased compared to this time last year. As part of rebuilding our infrastructure, I wanted to enable the community to be able to contribute. I'm structuring the work such that help is just a pull request away. Those in the HardenedBSD community who want to contribute to the infrastructure work can simply open a pull request. I'll review the code, and deploy it after a successful review. Users/contributors don't need access to our servers in order to improve them.

Err codemadness.org 70 i 11224 Err codemadness.org 70 i 11225

My primary goal for the rest of 2019 and into 2020 is to become fully self-hosted, with the sole exception of email. I want to transition the source-of-truth git repos to our own infrastructure. We will still provide a read-only mirror on GitHub.

Err codemadness.org 70 i 11226 Err codemadness.org 70 i 11227

As I develop this infrastructure, I'm doing so with human rights in mind. HardenedBSD is in a very unique position. In 2020, I plan to provide production Tor Onion Services for the various bits of our infrastructure. HardenedBSD will provide access to its various internal services to its developers and contributors. The entire development lifecycle, going from dev to prod, will be able to happen over Tor.

Err codemadness.org 70 i 11228 Err codemadness.org 70 i 11229

Transparency will be key moving forward. Logs for the auto-sync script are now published directly to GitHub. Build logs will be, soon, too. Logs of all automated processes, and the code for those processes, will be tracked publicly via git. This will be especially crucial for development over Tor.

Err codemadness.org 70 i 11230 Err codemadness.org 70 i 11231

Integrating Tor into our infrastructure so deeply increases risk and maintenance burden. However, I believe that through added transparency, we will be able to mitigate risk. Periodic audits will need to be performed and published.

Err codemadness.org 70 i 11232 Err codemadness.org 70 i 11233

I hope to migrate HardenedBSD's site away from Drupal to a static site generator. We don't really need the dynamic capabilities Drupal gives us. The many security issues Drupal and PHP both bring also leave much to be desired.

Err codemadness.org 70 i 11234 Err codemadness.org 70 i 11235

So, that's about it. I spent the last few months of 2019 laying the foundation for a successful 2020. I'm excited to see how the project grows.

Err codemadness.org 70 i 11236
Err codemadness.org 70 i 11237 Err codemadness.org 70 i 11238
Err codemadness.org 70 i 11239 Err codemadness.org 70 i 11240

Beastie Bits

Err codemadness.org 70 i 11241 Err codemadness.org 70 i 11242 Err codemadness.org 70 i 11251 Err codemadness.org 70 i 11252
Err codemadness.org 70 i 11253 Err codemadness.org 70 i 11254

Feedback/Questions

Err codemadness.org 70 i 11255 Err codemadness.org 70 i 11256 Err codemadness.org 70 i 11262 Err codemadness.org 70 i 11263
Err codemadness.org 70 i 11264 Err codemadness.org 70 i 11265
    Err codemadness.org 70 i 11266
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 11267
Err codemadness.org 70 i 11268 Err codemadness.org 70 i 11269
Err codemadness.org 70 i 11270 Err codemadness.org 70 i 11271 ]]> Err codemadness.org 70 i 11275
Err codemadness.org 70 i 11276 Err codemadness.org 70 i 11277 How learning OpenBSD makes computers suck a little less, How Unix works, FreeBSD 12.1 Runs Well on Ryzen Threadripper 3970X, BSDCan CFP, HardenedBSD Infrastructure Goals, and more.

Err codemadness.org 70 i 11278 Err codemadness.org 70 i 11279

Headlines

Err codemadness.org 70 i 11280 Err codemadness.org 70 i 11281

Why computers suck and how learning from OpenBSD can make them marginally less horrible

Err codemadness.org 70 i 11282 Err codemadness.org 70 i 11283
Err codemadness.org 70 i 11284

How much better could things actually be if we abandoned the enterprise development model?

Err codemadness.org 70 i 11285 Err codemadness.org 70 i 11286

Next I will compare this enterprise development approach with non-enterprise development - projects such as OpenBSD, which do not hesitate to introduce ABI breaking changes to improve the codebase.

Err codemadness.org 70 i 11287 Err codemadness.org 70 i 11288

One of the most commonly referred to pillars of the project's philosophy has long been its emphasis on clean functional code. Any code which makes it into OpenBSD is subject to ongoing aggressive audits for deprecated, or otherwise unmaintained code in order to reduce cruft and attack surface. Additionally the project creator, Theo de Raadt, and his team of core developers engage in ongoing development for proactive mitigations for various attack classes many of which are directly adopted by various multi-platform userland applications as well as the operating systems themselves (Windows, Linux, and the other BSDs). Frequently it is the case that introducing new features (not just deprecating old ones) introduces new incompatibilities against previously functional binaries compiled for OpenBSD.

Err codemadness.org 70 i 11289 Err codemadness.org 70 i 11290

To prevent the sort of kernel memory bloat that has plagued so many other operating systems for years, the project enforces a hard ceiling on the number of lines of code that can ever be in ring 0 at a given time. Current estimates guess the number of bugs per line of code in the Linux kernel are around 1 bug per every 10,000 lines of code. Think of this in the context of the scope creep seen in the Linux kernel (which if I recall correctly is currently at around 100,000,000 lines of code), as well as the Windows NT kernel (500,000,000 lines of code) and you quickly begin to understand how adding more and more functionality into the most privileged components of the operating system without first removing old components begins to add up in terms of the drastic difference seen between these systems in the number of zero day exploits caught in the wild respectively.

Err codemadness.org 70 i 11291
Err codemadness.org 70 i 11292 Err codemadness.org 70 i 11293
Err codemadness.org 70 i 11294 Err codemadness.org 70 i 11295

How Unix Works: Become a Better Software Engineer

Err codemadness.org 70 i 11296 Err codemadness.org 70 i 11297
Err codemadness.org 70 i 11298

Unix is beautiful. Allow me to paint some happy little trees for you. I’m not going to explain a bunch of commands – that’s boring, and there’s a million tutorials on the web doing that already. I’m going to leave you with the ability to reason about the system.

Err codemadness.org 70 i 11299 Err codemadness.org 70 i 11300

Every fancy thing you want done is one google search away.

Err codemadness.org 70 i 11301 Err codemadness.org 70 i 11302

But understanding why the solution does what you want is not the same.

Err codemadness.org 70 i 11303 Err codemadness.org 70 i 11304

That’s what gives you real power, the power to not be afraid.

Err codemadness.org 70 i 11305 Err codemadness.org 70 i 11306

And since it rhymes, it must be true.

Err codemadness.org 70 i 11307
Err codemadness.org 70 i 11308 Err codemadness.org 70 i 11309
Err codemadness.org 70 i 11310 Err codemadness.org 70 i 11311

News Roundup

Err codemadness.org 70 i 11312 Err codemadness.org 70 i 11313

FreeBSD 12.1 Runs Refreshingly Well With AMD Ryzen Threadripper 3970X

Err codemadness.org 70 i 11314 Err codemadness.org 70 i 11315
Err codemadness.org 70 i 11316

For those of you interested in AMD's new Ryzen Threadripper 3960X/3970X processors with TRX40 motherboards for running FreeBSD, the experience in our initial testing has been surprisingly pleasant. In fact, it works out-of-the-box which one could argue is better than the current Linux support that needs the MCE workaround for booting. Here are some benchmarks of FreeBSD 12.1 on the Threadripper 3970X compared to Linux and Windows for this new HEDT platform.

Err codemadness.org 70 i 11317 Err codemadness.org 70 i 11318

It was refreshing to see FreeBSD 12.1 booting and running just fine with the Ryzen Threadripper 3970X 32-core/64-thread processor from the ASUS ROG ZENITH II EXTREME motherboard and all core functionality working including the PCIe 4.0 NVMe SSD storage, onboard networking, etc. The system was running with 4 x 16GB DDR4-3600 memory, 1TB Corsair Force MP600 NVMe SSD, and Radeon RX 580 graphics. It was refreshing to see FreeBSD 12.1 running well with this high-end AMD Threadripper system considering Linux even needed a boot workaround.

Err codemadness.org 70 i 11319 Err codemadness.org 70 i 11320

While the FreeBSD 12.1 experience was trouble-free with the ASUS TRX40 motherboard (ROG Zenith II Extreme) and AMD Ryzen Threadripper 3970X, DragonFlyBSD unfortunately was not. Both DragonFlyBSD 5.6.2 stable and the DragonFlyBSD daily development snapshot from last week were yielding a panic on boot. So with that, DragonFlyBSD wasn't tested for this Threadripper 3970X comparison but just FreeBSD 12.1.

Err codemadness.org 70 i 11321 Err codemadness.org 70 i 11322

FreeBSD 12.1 on the Threadripper 3970X was benchmarked both with its default LLVM Clang 8.0.1 compiler and again with GCC 9.2 from ports for ruling out compiler differences. The FreeBSD 12.1 performance was compared to last week's Windows 10 vs. Linux benchmarks with the same system.

Err codemadness.org 70 i 11323
Err codemadness.org 70 i 11324 Err codemadness.org 70 i 11325
Err codemadness.org 70 i 11326 Err codemadness.org 70 i 11327

BSDCan 2020 CFP

Err codemadness.org 70 i 11328 Err codemadness.org 70 i 11329
Err codemadness.org 70 i 11330

BSDCan 2020 will be held 5-6 (Fri-Sat) June, 2020 in Ottawa, at the University of Ottawa. It will be preceded by two days of tutorials on 3-4 June (Wed-Thu).

Err codemadness.org 70 i 11331 Err codemadness.org 70 i 11332

NOTE the change of month in 2020 back to June Also: do not miss out on the Goat BOF on Tuesday 2 June.

Err codemadness.org 70 i 11333 Err codemadness.org 70 i 11334

We are now accepting proposals for talks. The talks should be designed with a very strong technical content bias. Proposals of a business development or marketing nature are not appropriate for this venue.

Err codemadness.org 70 i 11335
Err codemadness.org 70 i 11336 Err codemadness.org 70 i 11337 Err codemadness.org 70 i 11340 Err codemadness.org 70 i 11341
Err codemadness.org 70 i 11342

If you are doing something interesting with a BSD operating system, please submit a proposal. Whether you are developing a very complex system using BSD as the foundation, or helping others and have a story to tell about how BSD played a role, we want to hear about your experience. People using BSD as a platform for research are also encouraged to submit a proposal. Possible topics include:

Err codemadness.org 70 i 11343
Err codemadness.org 70 i 11344 Err codemadness.org 70 i 11345
    Err codemadness.org 70 i 11346
  • How we manage a giant installation with respect to handling spam.
  • Err codemadness.org 70 i 11347
  • and/or sysadmin.
  • Err codemadness.org 70 i 11348
  • and/or networking.
  • Err codemadness.org 70 i 11349
  • Cool new stuff in BSD
  • Err codemadness.org 70 i 11350
  • Tell us about your project which runs on BSD
  • Err codemadness.org 70 i 11351
  • other topics (see next paragraph)
  • Err codemadness.org 70 i 11352
Err codemadness.org 70 i 11353 Err codemadness.org 70 i 11354
Err codemadness.org 70 i 11355

From the BSDCan website, the Archives section will allow you to review the wide variety of past BSDCan presentations as further examples.

Err codemadness.org 70 i 11356 Err codemadness.org 70 i 11357

Both users and developers are encouraged to share their experiences.

Err codemadness.org 70 i 11358
Err codemadness.org 70 i 11359 Err codemadness.org 70 i 11360
Err codemadness.org 70 i 11361 Err codemadness.org 70 i 11362

HardenedBSD Infrastructure Goals

Err codemadness.org 70 i 11363 Err codemadness.org 70 i 11364
Err codemadness.org 70 i 11365

2019 has been an extremely productive year with regards to HardenedBSD's infrastructure. Several opportunities aligned themselves in such a way as to open a door for a near-complete rebuild with a vast expansion.

Err codemadness.org 70 i 11366 Err codemadness.org 70 i 11367

The last few months especially have seen a major expansion of our infrastructure. We obtained a number of to-be-retired Dell R410 servers. The crash of our nightly build server provided the opportunity to deploy these R410 servers, doubling our build capacity.

Err codemadness.org 70 i 11368 Err codemadness.org 70 i 11369

My available time to spend on HardenedBSD has decreased compared to this time last year. As part of rebuilding our infrastructure, I wanted to enable the community to be able to contribute. I'm structuring the work such that help is just a pull request away. Those in the HardenedBSD community who want to contribute to the infrastructure work can simply open a pull request. I'll review the code, and deploy it after a successful review. Users/contributors don't need access to our servers in order to improve them.

Err codemadness.org 70 i 11370 Err codemadness.org 70 i 11371

My primary goal for the rest of 2019 and into 2020 is to become fully self-hosted, with the sole exception of email. I want to transition the source-of-truth git repos to our own infrastructure. We will still provide a read-only mirror on GitHub.

Err codemadness.org 70 i 11372 Err codemadness.org 70 i 11373

As I develop this infrastructure, I'm doing so with human rights in mind. HardenedBSD is in a very unique position. In 2020, I plan to provide production Tor Onion Services for the various bits of our infrastructure. HardenedBSD will provide access to its various internal services to its developers and contributors. The entire development lifecycle, going from dev to prod, will be able to happen over Tor.

Err codemadness.org 70 i 11374 Err codemadness.org 70 i 11375

Transparency will be key moving forward. Logs for the auto-sync script are now published directly to GitHub. Build logs will be, soon, too. Logs of all automated processes, and the code for those processes, will be tracked publicly via git. This will be especially crucial for development over Tor.

Err codemadness.org 70 i 11376 Err codemadness.org 70 i 11377

Integrating Tor into our infrastructure so deeply increases risk and maintenance burden. However, I believe that through added transparency, we will be able to mitigate risk. Periodic audits will need to be performed and published.

Err codemadness.org 70 i 11378 Err codemadness.org 70 i 11379

I hope to migrate HardenedBSD's site away from Drupal to a static site generator. We don't really need the dynamic capabilities Drupal gives us. The many security issues Drupal and PHP both bring also leave much to be desired.

Err codemadness.org 70 i 11380 Err codemadness.org 70 i 11381

So, that's about it. I spent the last few months of 2019 laying the foundation for a successful 2020. I'm excited to see how the project grows.

Err codemadness.org 70 i 11382
Err codemadness.org 70 i 11383 Err codemadness.org 70 i 11384
Err codemadness.org 70 i 11385 Err codemadness.org 70 i 11386

Beastie Bits

Err codemadness.org 70 i 11387 Err codemadness.org 70 i 11388 Err codemadness.org 70 i 11397 Err codemadness.org 70 i 11398
Err codemadness.org 70 i 11399 Err codemadness.org 70 i 11400

Feedback/Questions

Err codemadness.org 70 i 11401 Err codemadness.org 70 i 11402 Err codemadness.org 70 i 11408 Err codemadness.org 70 i 11409
Err codemadness.org 70 i 11410 Err codemadness.org 70 i 11411
    Err codemadness.org 70 i 11412
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 11413
Err codemadness.org 70 i 11414 Err codemadness.org 70 i 11415
Err codemadness.org 70 i 11416 Err codemadness.org 70 i 11417 ]]> Err codemadness.org 70 i 11421
Err codemadness.org 70 i 11422 https://fireside.fm/player/v2/FYhhasNR+K5EpHWI3 Err codemadness.org 70 i 11423 Err codemadness.org 70 i 11424 ]]> Err codemadness.org 70 i 11425 Err codemadness.org 70 i 11426
Err codemadness.org 70 i 11427 Err codemadness.org 70 i 11428 330: Happy Holidays, All(an) Err codemadness.org 70 i 11429 https://www.bsdnow.tv/330 Err codemadness.org 70 i 11430 af84425c-c562-4d3b-b28c-cce7a148a3ad Err codemadness.org 70 i 11431 Thu, 26 Dec 2019 05:00:00 -0800 Err codemadness.org 70 i 11432 Allan Jude Err codemadness.org 70 i 11433 Err codemadness.org 70 i 11434 full Err codemadness.org 70 i 11435 Allan Jude Err codemadness.org 70 i 11436 Authentication Vulnerabilities in OpenBSD, NetBSD 9.0 RC1 is available, Running FreeNAS on a DigitalOcean droplet, NomadBSD 1.3 is here, at e2k19 nobody can hear you scream, and more. Err codemadness.org 70 i 11437 1:15:06 Err codemadness.org 70 i 11438 no Err codemadness.org 70 i 11439 Err codemadness.org 70 i 11440 Authentication Vulnerabilities in OpenBSD, NetBSD 9.0 RC1 is available, Running FreeNAS on a DigitalOcean droplet, NomadBSD 1.3 is here, at e2k19 nobody can hear you scream, and more. Err codemadness.org 70 i 11441 Headlines Err codemadness.org 70 i 11442 Authentication vulnerabilities in OpenBSD (https://www.openwall.com/lists/oss-security/2019/12/04/5) Err codemadness.org 70 i 11443 We discovered an authentication-bypass vulnerability in OpenBSD's authentication system: this vulnerability is remotely exploitable in smtpd, ldapd, and radiusd, but its real-world impact should be studied on a case-by-case basis. For example, sshd is not exploitable thanks to its defense-in-depth mechanisms. Err codemadness.org 70 i 11444 From the manual page of login.conf: Err codemadness.org 70 i 11445 OpenBSD uses BSD Authentication, which is made up of a variety of authentication styles. The authentication styles currently provided are: Err codemadness.org 70 i 11446 passwd Request a password and check it against the password in the master.passwd file. See loginpasswd(8). Err codemadness.org 70 i 11447 skey Send a challenge and request a response, checking it with S/Key (tm) authentication. See loginskey(8). Err codemadness.org 70 i 11448 yubikey Authenticate using a Yubico YubiKey token. See loginyubikey(8). Err codemadness.org 70 i 11449 For any given style, the program /usr/libexec/auth/loginstyle is used to Err codemadness.org 70 i 11450 perform the authentication. The synopsis of this program is: Err codemadness.org 70 i 11451 /usr/libexec/auth/login_style [-v name=value] [-s service] username class Err codemadness.org 70 i 11452 This is the first piece of the puzzle: if an attacker specifies a username of the form "-option", they can influence the behavior of the authentication program in unexpected ways. Err codemadness.org 70 i 11453 login_passwd [-s service] [-v wheel=yes|no] [-v lastchance=yes|no] user [class] The service argument specifies which protocol to use with the invoking program. The allowed protocols are login, challenge, and response. (The challenge protocol is silently ignored but will report success as passwd-style authentication is not challenge-response based). Err codemadness.org 70 i 11454 This is the second piece of the puzzle: if an attacker specifies the username "-schallenge" (or "-schallenge:passwd" to force a passwd-style authentication), then the authentication is automatically successful and therefore bypassed. Err codemadness.org 70 i 11455 Case study: smtpd Err codemadness.org 70 i 11456 Case study: ldapd Err codemadness.org 70 i 11457 Case study: radiusd Err codemadness.org 70 i 11458 Case study: sshd Err codemadness.org 70 i 11459 Acknowledgments: We thank Theo de Raadt and the OpenBSD developers for their incredibly quick response: they published patches for these vulnerabilities less than 40 hours after our initial contact. We also thank MITRE's CVE Assignment Team. Err codemadness.org 70 i 11460 First release candidate for NetBSD 9.0 available! (https://blog.netbsd.org/tnf/entry/first_release_candidate_for_netbsd) Err codemadness.org 70 i 11461 Since the start of the release process four months ago a lot of improvements went into the branch - more than 500 pullups were processed! Err codemadness.org 70 i 11462 This includes usbnet (a common framework for usb ethernet drivers), aarch64 stability enhancements and lots of new hardware support, installer/sysinst fixes and changes to the NVMM (hardware virtualization) interface. Err codemadness.org 70 i 11463 We hope this will lead to the best NetBSD release ever (only to be topped by NetBSD 10 next year). Err codemadness.org 70 i 11464 Here are a few highlights of the new release: Err codemadness.org 70 i 11465 Support for Arm AArch64 (64-bit Armv8-A) machines, including "Arm ServerReady" Err codemadness.org 70 i 11466 compliant machines (SBBR+SBSA) Err codemadness.org 70 i 11467 Enhanced hardware support for Armv7-A Err codemadness.org 70 i 11468 Updated GPU drivers (e.g. support for Intel Kabylake) Err codemadness.org 70 i 11469 Enhanced virtualization support Err codemadness.org 70 i 11470 Support for hardware-accelerated virtualization (NVMM) Err codemadness.org 70 i 11471 Support for Performance Monitoring Counters Err codemadness.org 70 i 11472 Support for Kernel ASLR Err codemadness.org 70 i 11473 Support several kernel sanitizers (KLEAK, KASAN, KUBSAN) Err codemadness.org 70 i 11474 Support for userland sanitizers Err codemadness.org 70 i 11475 Audit of the network stack Err codemadness.org 70 i 11476 Many improvements in NPF Err codemadness.org 70 i 11477 Updated ZFS Err codemadness.org 70 i 11478 Reworked error handling and NCQ support in the SATA subsystem Err codemadness.org 70 i 11479 Support a common framework for USB Ethernet drivers (usbnet) Err codemadness.org 70 i 11480 More information on the RC can be found on the NetBSD 9 release page (https://www.netbsd.org/releases/formal-9/NetBSD-9.0.html) Err codemadness.org 70 i 11481 News Roundup Err codemadness.org 70 i 11482 Running FreeNAS on a Digitalocean droplet (https://www.shlomimarco.com/post/running-freenas-on-a-digitalocean-droplet) Err codemadness.org 70 i 11483 ZFS is awesome. FreeBSD even more so. FreeNAS is the battle-tested, enterprise-ready-yet-home-user-friendly software defined storage solution which is cooler then deep space, based on FreeBSD and makes heavy use of ZFS. This is what I (and soooooo many others) use for just about any storage-related task. I can go on and on and on about what makes it great, but if you're here, reading this, you probably know all that already and we can skip ahead. Err codemadness.org 70 i 11484 I've needed an offsite FreeNAS setup to replicate things to, to run some things, to do some stuff, basically, my privately-owned, tightly-controlled NAS appliance in the cloud, one I control from top to bottom and with support for whatever crazy thing I'm trying to do. Since I'm using DigitalOcean as my main VPS provider, it seemed logical to run FreeNAS there, however, you can't. While DO supports many many distos and pre-setup applications (e.g OpenVPN), FreeNAS isn't a supported feature, at least not in the traditional way :) Err codemadness.org 70 i 11485 Before we begin, here's the gist of what we're going to do: Err codemadness.org 70 i 11486 Base of a FreeBSD droplet, we'll re-image our boot block device with FreeNAS iso. We'll then install FreeNAS on the second block device. Once done we're going to do the ol' switcheroo: we're going to re-image our original boot block device using the now FreeNAS-installed second block device. Err codemadness.org 70 i 11487 Part 1: re-image our boot block device to boot FreeNAS install media. Err codemadness.org 70 i 11488 Part 2: Install FreeNAS on the second block-device Err codemadness.org 70 i 11489 Part 3: Re-image the boot block device using the FreeNAS-installed block device Err codemadness.org 70 i 11490 NomadBSD 1.3 is now available (https://nomadbsd.org/) Err codemadness.org 70 i 11491 From the release notes: Err codemadness.org 70 i 11492 The base system has been changed to FreeBSD 12.1-RELEASE-p1 Err codemadness.org 70 i 11493 Due to a deadlock problem, FreeBSD's unionfs has been replaced by unionfs-fuse Err codemadness.org 70 i 11494 The GPT layout has been changed to MBR. This prevents problems with Lenovo Err codemadness.org 70 i 11495 systems that refuse to boot from GPT if "lenovofix" is not set, and systems that Err codemadness.org 70 i 11496 hang on boot if "lenovofix" is set. Err codemadness.org 70 i 11497 Support for ZFS installations has been added to the NomadBSD installer. Err codemadness.org 70 i 11498 The rc-script for setting up the network interfaces has been fixed and improved. Err codemadness.org 70 i 11499 Support for setting the country code for the wlan device has been added. Err codemadness.org 70 i 11500 Auto configuration for running in VirtualBox has been added. Err codemadness.org 70 i 11501 A check for the default display has been added to the graphics configuration scripts. This fixes problems where users with Optimus have their NVIDIA card disabled, and use the integrated graphics chip instead. Err codemadness.org 70 i 11502 NVIDIA driver version 440 has been added. Err codemadness.org 70 i 11503 nomadbsd-dmconfig, a Qt tool for selecting the display manager theme, setting the Err codemadness.org 70 i 11504 default user and autologin has been added. Err codemadness.org 70 i 11505 nomadbsd-adduser, a Qt tool for added preconfigured user accounts to the system has been added. Err codemadness.org 70 i 11506 Martin Orszulik added Czech translations to the setup and installation wizard. Err codemadness.org 70 i 11507 The NomadBSD logo, designed by Ian Grindley, has been changed. Err codemadness.org 70 i 11508 Support for localized error messages has been added. Err codemadness.org 70 i 11509 Support for localizing the password prompts has been added. Err codemadness.org 70 i 11510 Some templates for starting other DEs have been added to ~/.xinitrc. Err codemadness.org 70 i 11511 The interfaces of nomadbsd-setup-gui and nomadbsd-install-gui have been improved. Err codemadness.org 70 i 11512 A script that helps users to configure a multihead systems has been added. Err codemadness.org 70 i 11513 The Xorg driver for newer Intel GPUs has been changed from "intel" to "modesetting". Err codemadness.org 70 i 11514 /proc has been added to /etc/fstab Err codemadness.org 70 i 11515 A D-Bus session issue has been fixed which prevented thunar from accessing samba shares. Err codemadness.org 70 i 11516 DSBBg which allows users to change and manage wallpapers has been added. Err codemadness.org 70 i 11517 The latest version of update_obmenu now supports auto-updating the Openbox menu. Manually updating the Openbox menu after packet (de)installation is therefore no longer needed. Err codemadness.org 70 i 11518 Support for multiple keyboard layouts has been added. Err codemadness.org 70 i 11519 www/palemoon has been removed. Err codemadness.org 70 i 11520 mail/thunderbird has been removed. Err codemadness.org 70 i 11521 audio/audacity has been added. Err codemadness.org 70 i 11522 deskutils/orage has been added. Err codemadness.org 70 i 11523 the password manager fpm2 has been replaced by KeePassXC Err codemadness.org 70 i 11524 mail/sylpheed has been replaced by mail/claws-mail Err codemadness.org 70 i 11525 multimedia/simplescreenrecorder has been added. Err codemadness.org 70 i 11526 DSBMC has been changed to DSBMC-Qt Err codemadness.org 70 i 11527 Many small improvements and bug fixes. Err codemadness.org 70 i 11528 At e2k19 nobody can hear you scream (https://undeadly.org/cgi?action=article;sid=20191204170908) Err codemadness.org 70 i 11529 After 2 years it was once again time to pack skis and snowshoes, put a satellite dish onto a sledge and hike through the snowy rockies to the Elk Lakes hut. Err codemadness.org 70 i 11530 I did not really have much of a plan what I wanted to work on but there were a few things I wanted to look into. One of them was rpki-client and the fact that it was so incredibly slow. Since Bob beck@ was around I started to ask him innocent X509 questions ... as if there are innocent X509 questions! Mainly about the abuse of the X509STORE in rpki-client. Pretty soon it was clear that rpki-client did it all wrong and most of the X509 verification had to be rewritten. Instead of only storing the root certificates in the store and passing the intermediate certs as a chain to the verification function rpki-client threw everything into it. The X509STORE is just not built for such an abuse and so it was no wonder that this was slow. Err codemadness.org 70 i 11531 Lucky me I pulled benno@ with me into this dark hole of libcrypto code. He managed to build up an initial diff to pass the chains as a STACKOF(X509) and together we managed to get it working. A big thanks goes to ingo@ who documented most of the functions we had to use. Have a look at STACKOF(3) and skpopfree(3) to understand why benno@ and I slowly turned crazy. Err codemadness.org 70 i 11532 Our next challenge was to only load the necessary certificate revocation list into the X509STORECTX. While doing those changes it became obvious that some of the data structures needed better lookup functions. Looking up certificates was done using a linear lookup and so we replaced the internal certificate and CRL tables with RB trees for fast lookups. deraadt@ also joined the rpki-client commit fest and changed the output code to use rename(2) so that files are replaced in an atomic operation. Thanks to this rpki-client can now be safely run from cron (there is an example in the default crontab). Err codemadness.org 70 i 11533 I did not plan to spend most of my week hacking on rpki-client but in the end I'm happy that I did and the result is fairly impressive. Working with libcrypto code and especially X509 was less than pleasant. Our screams of agony died away in the snowy rocky mountains and made Bob deep dive into UVM with a smile since he knew that benno@ and I had it worse. Err codemadness.org 70 i 11534 In case you wonder thanks to all changes at e2k19 rpki-client improved from over 20min run time to validate all VRPS to roughly 1min to do the same job. A factor 20 improvement! Err codemadness.org 70 i 11535 Thanks to Theo, Bob and Howie to make this possible. To all the cooks for the great food and to Xplornet for providing us with Internet at the hut. Err codemadness.org 70 i 11536 Beastie Bits Err codemadness.org 70 i 11537 FOSDEM 2020 BSD Devroom schedule (https://fosdem.org/2020/schedule/track/bsd/) Err codemadness.org 70 i 11538 Easy Minecraft Server on FreeBSD Howto (https://www.freebsdfoundation.org/freebsd/how-to-guides/easy-minecraft-server-on-freebsd/) Err codemadness.org 70 i 11539 stats(3) framework in the TCP stack (https://svnweb.freebsd.org/base?view=revision&revision=355304) Err codemadness.org 70 i 11540 4017 days of uptime (https://twitter.com/EdwinKremer/status/1203071684535889921) Err codemadness.org 70 i 11541 sysget - A front-end for every package manager (https://github.com/emilengler/sysget) Err codemadness.org 70 i 11542 PlayOnBSD’s Cross-BSD Shopping Guide (https://www.playonbsd.com/shopping_guide/) Err codemadness.org 70 i 11543 Feedback/Questions Err codemadness.org 70 i 11544 Pat asks about the proper disk drive type for ZFS (http://dpaste.com/2FDN26X#wrap) Err codemadness.org 70 i 11545 Brad asks about a ZFS rosetta stone (http://dpaste.com/2X8PBMC#wrap) Err codemadness.org 70 i 11546 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 11547 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 11548 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0330.mp4" type="video/mp4"> Err codemadness.org 70 i 11549 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 11550 </video> Special Guest: Mariusz Zaborski. Err codemadness.org 70 i 11551 Err codemadness.org 70 i 11552 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, Authentication, vulnerabilities, release candidate, digitalocean, droplet, freenas, nomadbsd, e2k19, hackathon Err codemadness.org 70 i 11553 Err codemadness.org 70 i 11554 Authentication Vulnerabilities in OpenBSD, NetBSD 9.0 RC1 is available, Running FreeNAS on a DigitalOcean droplet, NomadBSD 1.3 is here, at e2k19 nobody can hear you scream, and more.

Err codemadness.org 70 i 11555 Err codemadness.org 70 i 11556

Headlines

Err codemadness.org 70 i 11557 Err codemadness.org 70 i 11558

Authentication vulnerabilities in OpenBSD

Err codemadness.org 70 i 11559 Err codemadness.org 70 i 11560
    Err codemadness.org 70 i 11561
  • We discovered an authentication-bypass vulnerability in OpenBSD's authentication system: this vulnerability is remotely exploitable in smtpd, ldapd, and radiusd, but its real-world impact should be studied on a case-by-case basis. For example, sshd is not exploitable thanks to its defense-in-depth mechanisms.
  • Err codemadness.org 70 i 11562
  • From the manual page of login.conf:
  • Err codemadness.org 70 i 11563
Err codemadness.org 70 i 11564 Err codemadness.org 70 i 11565
Err codemadness.org 70 i 11566

OpenBSD uses BSD Authentication, which is made up of a variety of authentication styles. The authentication styles currently provided are:
Err codemadness.org 70 i 11567 passwd Request a password and check it against the password in the master.passwd file. See login_passwd(8).
Err codemadness.org 70 i 11568 skey Send a challenge and request a response, checking it with S/Key (tm) authentication. See login_skey(8).
Err codemadness.org 70 i 11569 yubikey Authenticate using a Yubico YubiKey token. See login_yubikey(8).
Err codemadness.org 70 i 11570 For any given style, the program /usr/libexec/auth/login_style is used to
Err codemadness.org 70 i 11571 perform the authentication. The synopsis of this program is:
Err codemadness.org 70 i 11572 /usr/libexec/auth/login_style [-v name=value] [-s service] username class

Err codemadness.org 70 i 11573
Err codemadness.org 70 i 11574 Err codemadness.org 70 i 11575
    Err codemadness.org 70 i 11576
  • This is the first piece of the puzzle: if an attacker specifies a username of the form "-option", they can influence the behavior of the authentication program in unexpected ways.
  • Err codemadness.org 70 i 11577
Err codemadness.org 70 i 11578 Err codemadness.org 70 i 11579
Err codemadness.org 70 i 11580
 login_passwd [-s service] [-v wheel=yes|no] [-v lastchance=yes|no] user [class] The service argument specifies which protocol to use with the invoking program.  The allowed protocols are login, challenge, and response.  (The challenge protocol is silently ignored but will report success as passwd-style authentication is not challenge-response based).	Err	codemadness.org	70
i 11581 
Err codemadness.org 70 i 11582
Err codemadness.org 70 i 11583 Err codemadness.org 70 i 11584
    Err codemadness.org 70 i 11585
  • This is the second piece of the puzzle: if an attacker specifies the username "-schallenge" (or "-schallenge:passwd" to force a passwd-style authentication), then the authentication is automatically successful and therefore bypassed.
  • Err codemadness.org 70 i 11586
  • Case study: smtpd
  • Err codemadness.org 70 i 11587
  • Case study: ldapd
  • Err codemadness.org 70 i 11588
  • Case study: radiusd
  • Err codemadness.org 70 i 11589
  • Case study: sshd
  • Err codemadness.org 70 i 11590
  • Acknowledgments: We thank Theo de Raadt and the OpenBSD developers for their incredibly quick response: they published patches for these vulnerabilities less than 40 hours after our initial contact. We also thank MITRE's CVE Assignment Team.
  • Err codemadness.org 70 i 11591
Err codemadness.org 70 i 11592 Err codemadness.org 70 i 11593
Err codemadness.org 70 i 11594 Err codemadness.org 70 i 11595

First release candidate for NetBSD 9.0 available!

Err codemadness.org 70 i 11596 Err codemadness.org 70 i 11597
    Err codemadness.org 70 i 11598
  • Since the start of the release process four months ago a lot of improvements went into the branch - more than 500 pullups were processed!
  • Err codemadness.org 70 i 11599
  • This includes usbnet (a common framework for usb ethernet drivers), aarch64 stability enhancements and lots of new hardware support, installer/sysinst fixes and changes to the NVMM (hardware virtualization) interface.
  • Err codemadness.org 70 i 11600
  • We hope this will lead to the best NetBSD release ever (only to be topped by NetBSD 10 next year).
  • Err codemadness.org 70 i 11601
  • Here are a few highlights of the new release:

    Err codemadness.org 70 i 11602 Err codemadness.org 70 i 11603
    Err codemadness.org 70 i 11604

    Support for Arm AArch64 (64-bit Armv8-A) machines, including "Arm ServerReady"
    Err codemadness.org 70 i 11605 compliant machines (SBBR+SBSA)
    Err codemadness.org 70 i 11606 Enhanced hardware support for Armv7-A
    Err codemadness.org 70 i 11607 Updated GPU drivers (e.g. support for Intel Kabylake)
    Err codemadness.org 70 i 11608 Enhanced virtualization support
    Err codemadness.org 70 i 11609 Support for hardware-accelerated virtualization (NVMM)
    Err codemadness.org 70 i 11610 Support for Performance Monitoring Counters
    Err codemadness.org 70 i 11611 Support for Kernel ASLR
    Err codemadness.org 70 i 11612 Support several kernel sanitizers (KLEAK, KASAN, KUBSAN)
    Err codemadness.org 70 i 11613 Support for userland sanitizers
    Err codemadness.org 70 i 11614 Audit of the network stack
    Err codemadness.org 70 i 11615 Many improvements in NPF
    Err codemadness.org 70 i 11616 Updated ZFS
    Err codemadness.org 70 i 11617 Reworked error handling and NCQ support in the SATA subsystem
    Err codemadness.org 70 i 11618 Support a common framework for USB Ethernet drivers (usbnet)

    Err codemadness.org 70 i 11619
  • Err codemadness.org 70 i 11620
  • More information on the RC can be found on the NetBSD 9 release page

  • Err codemadness.org 70 i 11621
Err codemadness.org 70 i 11622 Err codemadness.org 70 i 11623
Err codemadness.org 70 i 11624 Err codemadness.org 70 i 11625

News Roundup

Err codemadness.org 70 i 11626 Err codemadness.org 70 i 11627

Running FreeNAS on a Digitalocean droplet

Err codemadness.org 70 i 11628 Err codemadness.org 70 i 11629
    Err codemadness.org 70 i 11630
  • ZFS is awesome. FreeBSD even more so. FreeNAS is the battle-tested, enterprise-ready-yet-home-user-friendly software defined storage solution which is cooler then deep space, based on FreeBSD and makes heavy use of ZFS. This is what I (and soooooo many others) use for just about any storage-related task. I can go on and on and on about what makes it great, but if you're here, reading this, you probably know all that already and we can skip ahead.
  • Err codemadness.org 70 i 11631
  • I've needed an offsite FreeNAS setup to replicate things to, to run some things, to do some stuff, basically, my privately-owned, tightly-controlled NAS appliance in the cloud, one I control from top to bottom and with support for whatever crazy thing I'm trying to do. Since I'm using DigitalOcean as my main VPS provider, it seemed logical to run FreeNAS there, however, you can't. While DO supports many many distos and pre-setup applications (e.g OpenVPN), FreeNAS isn't a supported feature, at least not in the traditional way :)
  • Err codemadness.org 70 i 11632
  • Before we begin, here's the gist of what we're going to do:
  • Err codemadness.org 70 i 11633
Err codemadness.org 70 i 11634 Err codemadness.org 70 i 11635
Err codemadness.org 70 i 11636

Base of a FreeBSD droplet, we'll re-image our boot block device with FreeNAS iso. We'll then install FreeNAS on the second block device. Once done we're going to do the ol' switcheroo: we're going to re-image our original boot block device using the now FreeNAS-installed second block device.

Err codemadness.org 70 i 11637
Err codemadness.org 70 i 11638 Err codemadness.org 70 i 11639
    Err codemadness.org 70 i 11640
  • Part 1: re-image our boot block device to boot FreeNAS install media.
  • Err codemadness.org 70 i 11641
  • Part 2: Install FreeNAS on the second block-device
  • Err codemadness.org 70 i 11642
  • Part 3: Re-image the boot block device using the FreeNAS-installed block device
  • Err codemadness.org 70 i 11643
Err codemadness.org 70 i 11644 Err codemadness.org 70 i 11645
Err codemadness.org 70 i 11646 Err codemadness.org 70 i 11647

NomadBSD 1.3 is now available

Err codemadness.org 70 i 11648 Err codemadness.org 70 i 11649
    Err codemadness.org 70 i 11650
  • From the release notes:
  • Err codemadness.org 70 i 11651
Err codemadness.org 70 i 11652 Err codemadness.org 70 i 11653
Err codemadness.org 70 i 11654

The base system has been changed to FreeBSD 12.1-RELEASE-p1
Err codemadness.org 70 i 11655 Due to a deadlock problem, FreeBSD's unionfs has been replaced by unionfs-fuse
Err codemadness.org 70 i 11656 The GPT layout has been changed to MBR. This prevents problems with Lenovo
Err codemadness.org 70 i 11657 systems that refuse to boot from GPT if "lenovofix" is not set, and systems that
Err codemadness.org 70 i 11658 hang on boot if "lenovofix" is set.
Err codemadness.org 70 i 11659 Support for ZFS installations has been added to the NomadBSD installer.
Err codemadness.org 70 i 11660 The rc-script for setting up the network interfaces has been fixed and improved.
Err codemadness.org 70 i 11661 Support for setting the country code for the wlan device has been added.
Err codemadness.org 70 i 11662 Auto configuration for running in VirtualBox has been added.
Err codemadness.org 70 i 11663 A check for the default display has been added to the graphics configuration scripts. This fixes problems where users with Optimus have their NVIDIA card disabled, and use the integrated graphics chip instead.
Err codemadness.org 70 i 11664 NVIDIA driver version 440 has been added.
Err codemadness.org 70 i 11665 nomadbsd-dmconfig, a Qt tool for selecting the display manager theme, setting the
Err codemadness.org 70 i 11666 default user and autologin has been added.
Err codemadness.org 70 i 11667 nomadbsd-adduser, a Qt tool for added preconfigured user accounts to the system has been added.
Err codemadness.org 70 i 11668 Martin Orszulik added Czech translations to the setup and installation wizard.
Err codemadness.org 70 i 11669 The NomadBSD logo, designed by Ian Grindley, has been changed.
Err codemadness.org 70 i 11670 Support for localized error messages has been added.
Err codemadness.org 70 i 11671 Support for localizing the password prompts has been added.
Err codemadness.org 70 i 11672 Some templates for starting other DEs have been added to ~/.xinitrc.
Err codemadness.org 70 i 11673 The interfaces of nomadbsd-setup-gui and nomadbsd-install-gui have been improved.
Err codemadness.org 70 i 11674 A script that helps users to configure a multihead systems has been added.
Err codemadness.org 70 i 11675 The Xorg driver for newer Intel GPUs has been changed from "intel" to "modesetting".
Err codemadness.org 70 i 11676 /proc has been added to /etc/fstab
Err codemadness.org 70 i 11677 A D-Bus session issue has been fixed which prevented thunar from accessing samba shares.
Err codemadness.org 70 i 11678 DSBBg which allows users to change and manage wallpapers has been added.
Err codemadness.org 70 i 11679 The latest version of update_obmenu now supports auto-updating the Openbox menu. Manually updating the Openbox menu after packet (de)installation is therefore no longer needed.

Err codemadness.org 70 i 11680 Err codemadness.org 70 i 11681

Support for multiple keyboard layouts has been added.
Err codemadness.org 70 i 11682 www/palemoon has been removed.
Err codemadness.org 70 i 11683 mail/thunderbird has been removed.
Err codemadness.org 70 i 11684 audio/audacity has been added.
Err codemadness.org 70 i 11685 deskutils/orage has been added.
Err codemadness.org 70 i 11686 the password manager fpm2 has been replaced by KeePassXC
Err codemadness.org 70 i 11687 mail/sylpheed has been replaced by mail/claws-mail
Err codemadness.org 70 i 11688 multimedia/simplescreenrecorder has been added.
Err codemadness.org 70 i 11689 DSBMC has been changed to DSBMC-Qt
Err codemadness.org 70 i 11690 Many small improvements and bug fixes.

Err codemadness.org 70 i 11691
Err codemadness.org 70 i 11692 Err codemadness.org 70 i 11693
Err codemadness.org 70 i 11694 Err codemadness.org 70 i 11695

At e2k19 nobody can hear you scream

Err codemadness.org 70 i 11696 Err codemadness.org 70 i 11697
    Err codemadness.org 70 i 11698
  • After 2 years it was once again time to pack skis and snowshoes, put a satellite dish onto a sledge and hike through the snowy rockies to the Elk Lakes hut.
  • Err codemadness.org 70 i 11699
  • I did not really have much of a plan what I wanted to work on but there were a few things I wanted to look into. One of them was rpki-client and the fact that it was so incredibly slow. Since Bob beck@ was around I started to ask him innocent X509 questions ... as if there are innocent X509 questions! Mainly about the abuse of the X509_STORE in rpki-client. Pretty soon it was clear that rpki-client did it all wrong and most of the X509 verification had to be rewritten. Instead of only storing the root certificates in the store and passing the intermediate certs as a chain to the verification function rpki-client threw everything into it. The X509_STORE is just not built for such an abuse and so it was no wonder that this was slow.
  • Err codemadness.org 70 i 11700
  • Lucky me I pulled benno@ with me into this dark hole of libcrypto code. He managed to build up an initial diff to pass the chains as a STACK_OF(X509) and together we managed to get it working. A big thanks goes to ingo@ who documented most of the functions we had to use. Have a look at STACK_OF(3) and sk_pop_free(3) to understand why benno@ and I slowly turned crazy.
  • Err codemadness.org 70 i 11701
  • Our next challenge was to only load the necessary certificate revocation list into the X509_STORE_CTX. While doing those changes it became obvious that some of the data structures needed better lookup functions. Looking up certificates was done using a linear lookup and so we replaced the internal certificate and CRL tables with RB trees for fast lookups. deraadt@ also joined the rpki-client commit fest and changed the output code to use rename(2) so that files are replaced in an atomic operation. Thanks to this rpki-client can now be safely run from cron (there is an example in the default crontab).
  • Err codemadness.org 70 i 11702
  • I did not plan to spend most of my week hacking on rpki-client but in the end I'm happy that I did and the result is fairly impressive. Working with libcrypto code and especially X509 was less than pleasant. Our screams of agony died away in the snowy rocky mountains and made Bob deep dive into UVM with a smile since he knew that benno@ and I had it worse.
  • Err codemadness.org 70 i 11703
  • In case you wonder thanks to all changes at e2k19 rpki-client improved from over 20min run time to validate all VRPS to roughly 1min to do the same job. A factor 20 improvement!
  • Err codemadness.org 70 i 11704
  • Thanks to Theo, Bob and Howie to make this possible. To all the cooks for the great food and to Xplornet for providing us with Internet at the hut.
  • Err codemadness.org 70 i 11705
Err codemadness.org 70 i 11706 Err codemadness.org 70 i 11707
Err codemadness.org 70 i 11708 Err codemadness.org 70 i 11709

Beastie Bits

Err codemadness.org 70 i 11710 Err codemadness.org 70 i 11711 Err codemadness.org 70 i 11719 Err codemadness.org 70 i 11720
Err codemadness.org 70 i 11721 Err codemadness.org 70 i 11722

Feedback/Questions

Err codemadness.org 70 i 11723 Err codemadness.org 70 i 11724 Err codemadness.org 70 i 11728 Err codemadness.org 70 i 11729
Err codemadness.org 70 i 11730 Err codemadness.org 70 i 11731
    Err codemadness.org 70 i 11732
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 11733
Err codemadness.org 70 i 11734 Err codemadness.org 70 i 11735
Err codemadness.org 70 i 11736 Err codemadness.org 70 i 11737

Special Guest: Mariusz Zaborski.

]]> Err codemadness.org 70 i 11741
Err codemadness.org 70 i 11742 Err codemadness.org 70 i 11743 Authentication Vulnerabilities in OpenBSD, NetBSD 9.0 RC1 is available, Running FreeNAS on a DigitalOcean droplet, NomadBSD 1.3 is here, at e2k19 nobody can hear you scream, and more.

Err codemadness.org 70 i 11744 Err codemadness.org 70 i 11745

Headlines

Err codemadness.org 70 i 11746 Err codemadness.org 70 i 11747

Authentication vulnerabilities in OpenBSD

Err codemadness.org 70 i 11748 Err codemadness.org 70 i 11749
    Err codemadness.org 70 i 11750
  • We discovered an authentication-bypass vulnerability in OpenBSD's authentication system: this vulnerability is remotely exploitable in smtpd, ldapd, and radiusd, but its real-world impact should be studied on a case-by-case basis. For example, sshd is not exploitable thanks to its defense-in-depth mechanisms.
  • Err codemadness.org 70 i 11751
  • From the manual page of login.conf:
  • Err codemadness.org 70 i 11752
Err codemadness.org 70 i 11753 Err codemadness.org 70 i 11754
Err codemadness.org 70 i 11755

OpenBSD uses BSD Authentication, which is made up of a variety of authentication styles. The authentication styles currently provided are:
Err codemadness.org 70 i 11756 passwd Request a password and check it against the password in the master.passwd file. See login_passwd(8).
Err codemadness.org 70 i 11757 skey Send a challenge and request a response, checking it with S/Key (tm) authentication. See login_skey(8).
Err codemadness.org 70 i 11758 yubikey Authenticate using a Yubico YubiKey token. See login_yubikey(8).
Err codemadness.org 70 i 11759 For any given style, the program /usr/libexec/auth/login_style is used to
Err codemadness.org 70 i 11760 perform the authentication. The synopsis of this program is:
Err codemadness.org 70 i 11761 /usr/libexec/auth/login_style [-v name=value] [-s service] username class

Err codemadness.org 70 i 11762
Err codemadness.org 70 i 11763 Err codemadness.org 70 i 11764
    Err codemadness.org 70 i 11765
  • This is the first piece of the puzzle: if an attacker specifies a username of the form "-option", they can influence the behavior of the authentication program in unexpected ways.
  • Err codemadness.org 70 i 11766
Err codemadness.org 70 i 11767 Err codemadness.org 70 i 11768
Err codemadness.org 70 i 11769
 login_passwd [-s service] [-v wheel=yes|no] [-v lastchance=yes|no] user [class] The service argument specifies which protocol to use with the invoking program.  The allowed protocols are login, challenge, and response.  (The challenge protocol is silently ignored but will report success as passwd-style authentication is not challenge-response based).	Err	codemadness.org	70
i 11770 
Err codemadness.org 70 i 11771
Err codemadness.org 70 i 11772 Err codemadness.org 70 i 11773
    Err codemadness.org 70 i 11774
  • This is the second piece of the puzzle: if an attacker specifies the username "-schallenge" (or "-schallenge:passwd" to force a passwd-style authentication), then the authentication is automatically successful and therefore bypassed.
  • Err codemadness.org 70 i 11775
  • Case study: smtpd
  • Err codemadness.org 70 i 11776
  • Case study: ldapd
  • Err codemadness.org 70 i 11777
  • Case study: radiusd
  • Err codemadness.org 70 i 11778
  • Case study: sshd
  • Err codemadness.org 70 i 11779
  • Acknowledgments: We thank Theo de Raadt and the OpenBSD developers for their incredibly quick response: they published patches for these vulnerabilities less than 40 hours after our initial contact. We also thank MITRE's CVE Assignment Team.
  • Err codemadness.org 70 i 11780
Err codemadness.org 70 i 11781 Err codemadness.org 70 i 11782
Err codemadness.org 70 i 11783 Err codemadness.org 70 i 11784

First release candidate for NetBSD 9.0 available!

Err codemadness.org 70 i 11785 Err codemadness.org 70 i 11786
    Err codemadness.org 70 i 11787
  • Since the start of the release process four months ago a lot of improvements went into the branch - more than 500 pullups were processed!
  • Err codemadness.org 70 i 11788
  • This includes usbnet (a common framework for usb ethernet drivers), aarch64 stability enhancements and lots of new hardware support, installer/sysinst fixes and changes to the NVMM (hardware virtualization) interface.
  • Err codemadness.org 70 i 11789
  • We hope this will lead to the best NetBSD release ever (only to be topped by NetBSD 10 next year).
  • Err codemadness.org 70 i 11790
  • Here are a few highlights of the new release:

    Err codemadness.org 70 i 11791 Err codemadness.org 70 i 11792
    Err codemadness.org 70 i 11793

    Support for Arm AArch64 (64-bit Armv8-A) machines, including "Arm ServerReady"
    Err codemadness.org 70 i 11794 compliant machines (SBBR+SBSA)
    Err codemadness.org 70 i 11795 Enhanced hardware support for Armv7-A
    Err codemadness.org 70 i 11796 Updated GPU drivers (e.g. support for Intel Kabylake)
    Err codemadness.org 70 i 11797 Enhanced virtualization support
    Err codemadness.org 70 i 11798 Support for hardware-accelerated virtualization (NVMM)
    Err codemadness.org 70 i 11799 Support for Performance Monitoring Counters
    Err codemadness.org 70 i 11800 Support for Kernel ASLR
    Err codemadness.org 70 i 11801 Support several kernel sanitizers (KLEAK, KASAN, KUBSAN)
    Err codemadness.org 70 i 11802 Support for userland sanitizers
    Err codemadness.org 70 i 11803 Audit of the network stack
    Err codemadness.org 70 i 11804 Many improvements in NPF
    Err codemadness.org 70 i 11805 Updated ZFS
    Err codemadness.org 70 i 11806 Reworked error handling and NCQ support in the SATA subsystem
    Err codemadness.org 70 i 11807 Support a common framework for USB Ethernet drivers (usbnet)

    Err codemadness.org 70 i 11808
  • Err codemadness.org 70 i 11809
  • More information on the RC can be found on the NetBSD 9 release page

  • Err codemadness.org 70 i 11810
Err codemadness.org 70 i 11811 Err codemadness.org 70 i 11812
Err codemadness.org 70 i 11813 Err codemadness.org 70 i 11814

News Roundup

Err codemadness.org 70 i 11815 Err codemadness.org 70 i 11816

Running FreeNAS on a Digitalocean droplet

Err codemadness.org 70 i 11817 Err codemadness.org 70 i 11818
    Err codemadness.org 70 i 11819
  • ZFS is awesome. FreeBSD even more so. FreeNAS is the battle-tested, enterprise-ready-yet-home-user-friendly software defined storage solution which is cooler then deep space, based on FreeBSD and makes heavy use of ZFS. This is what I (and soooooo many others) use for just about any storage-related task. I can go on and on and on about what makes it great, but if you're here, reading this, you probably know all that already and we can skip ahead.
  • Err codemadness.org 70 i 11820
  • I've needed an offsite FreeNAS setup to replicate things to, to run some things, to do some stuff, basically, my privately-owned, tightly-controlled NAS appliance in the cloud, one I control from top to bottom and with support for whatever crazy thing I'm trying to do. Since I'm using DigitalOcean as my main VPS provider, it seemed logical to run FreeNAS there, however, you can't. While DO supports many many distos and pre-setup applications (e.g OpenVPN), FreeNAS isn't a supported feature, at least not in the traditional way :)
  • Err codemadness.org 70 i 11821
  • Before we begin, here's the gist of what we're going to do:
  • Err codemadness.org 70 i 11822
Err codemadness.org 70 i 11823 Err codemadness.org 70 i 11824
Err codemadness.org 70 i 11825

Base of a FreeBSD droplet, we'll re-image our boot block device with FreeNAS iso. We'll then install FreeNAS on the second block device. Once done we're going to do the ol' switcheroo: we're going to re-image our original boot block device using the now FreeNAS-installed second block device.

Err codemadness.org 70 i 11826
Err codemadness.org 70 i 11827 Err codemadness.org 70 i 11828
    Err codemadness.org 70 i 11829
  • Part 1: re-image our boot block device to boot FreeNAS install media.
  • Err codemadness.org 70 i 11830
  • Part 2: Install FreeNAS on the second block-device
  • Err codemadness.org 70 i 11831
  • Part 3: Re-image the boot block device using the FreeNAS-installed block device
  • Err codemadness.org 70 i 11832
Err codemadness.org 70 i 11833 Err codemadness.org 70 i 11834
Err codemadness.org 70 i 11835 Err codemadness.org 70 i 11836

NomadBSD 1.3 is now available

Err codemadness.org 70 i 11837 Err codemadness.org 70 i 11838
    Err codemadness.org 70 i 11839
  • From the release notes:
  • Err codemadness.org 70 i 11840
Err codemadness.org 70 i 11841 Err codemadness.org 70 i 11842
Err codemadness.org 70 i 11843

The base system has been changed to FreeBSD 12.1-RELEASE-p1
Err codemadness.org 70 i 11844 Due to a deadlock problem, FreeBSD's unionfs has been replaced by unionfs-fuse
Err codemadness.org 70 i 11845 The GPT layout has been changed to MBR. This prevents problems with Lenovo
Err codemadness.org 70 i 11846 systems that refuse to boot from GPT if "lenovofix" is not set, and systems that
Err codemadness.org 70 i 11847 hang on boot if "lenovofix" is set.
Err codemadness.org 70 i 11848 Support for ZFS installations has been added to the NomadBSD installer.
Err codemadness.org 70 i 11849 The rc-script for setting up the network interfaces has been fixed and improved.
Err codemadness.org 70 i 11850 Support for setting the country code for the wlan device has been added.
Err codemadness.org 70 i 11851 Auto configuration for running in VirtualBox has been added.
Err codemadness.org 70 i 11852 A check for the default display has been added to the graphics configuration scripts. This fixes problems where users with Optimus have their NVIDIA card disabled, and use the integrated graphics chip instead.
Err codemadness.org 70 i 11853 NVIDIA driver version 440 has been added.
Err codemadness.org 70 i 11854 nomadbsd-dmconfig, a Qt tool for selecting the display manager theme, setting the
Err codemadness.org 70 i 11855 default user and autologin has been added.
Err codemadness.org 70 i 11856 nomadbsd-adduser, a Qt tool for added preconfigured user accounts to the system has been added.
Err codemadness.org 70 i 11857 Martin Orszulik added Czech translations to the setup and installation wizard.
Err codemadness.org 70 i 11858 The NomadBSD logo, designed by Ian Grindley, has been changed.
Err codemadness.org 70 i 11859 Support for localized error messages has been added.
Err codemadness.org 70 i 11860 Support for localizing the password prompts has been added.
Err codemadness.org 70 i 11861 Some templates for starting other DEs have been added to ~/.xinitrc.
Err codemadness.org 70 i 11862 The interfaces of nomadbsd-setup-gui and nomadbsd-install-gui have been improved.
Err codemadness.org 70 i 11863 A script that helps users to configure a multihead systems has been added.
Err codemadness.org 70 i 11864 The Xorg driver for newer Intel GPUs has been changed from "intel" to "modesetting".
Err codemadness.org 70 i 11865 /proc has been added to /etc/fstab
Err codemadness.org 70 i 11866 A D-Bus session issue has been fixed which prevented thunar from accessing samba shares.
Err codemadness.org 70 i 11867 DSBBg which allows users to change and manage wallpapers has been added.
Err codemadness.org 70 i 11868 The latest version of update_obmenu now supports auto-updating the Openbox menu. Manually updating the Openbox menu after packet (de)installation is therefore no longer needed.

Err codemadness.org 70 i 11869 Err codemadness.org 70 i 11870

Support for multiple keyboard layouts has been added.
Err codemadness.org 70 i 11871 www/palemoon has been removed.
Err codemadness.org 70 i 11872 mail/thunderbird has been removed.
Err codemadness.org 70 i 11873 audio/audacity has been added.
Err codemadness.org 70 i 11874 deskutils/orage has been added.
Err codemadness.org 70 i 11875 the password manager fpm2 has been replaced by KeePassXC
Err codemadness.org 70 i 11876 mail/sylpheed has been replaced by mail/claws-mail
Err codemadness.org 70 i 11877 multimedia/simplescreenrecorder has been added.
Err codemadness.org 70 i 11878 DSBMC has been changed to DSBMC-Qt
Err codemadness.org 70 i 11879 Many small improvements and bug fixes.

Err codemadness.org 70 i 11880
Err codemadness.org 70 i 11881 Err codemadness.org 70 i 11882
Err codemadness.org 70 i 11883 Err codemadness.org 70 i 11884

At e2k19 nobody can hear you scream

Err codemadness.org 70 i 11885 Err codemadness.org 70 i 11886
    Err codemadness.org 70 i 11887
  • After 2 years it was once again time to pack skis and snowshoes, put a satellite dish onto a sledge and hike through the snowy rockies to the Elk Lakes hut.
  • Err codemadness.org 70 i 11888
  • I did not really have much of a plan what I wanted to work on but there were a few things I wanted to look into. One of them was rpki-client and the fact that it was so incredibly slow. Since Bob beck@ was around I started to ask him innocent X509 questions ... as if there are innocent X509 questions! Mainly about the abuse of the X509_STORE in rpki-client. Pretty soon it was clear that rpki-client did it all wrong and most of the X509 verification had to be rewritten. Instead of only storing the root certificates in the store and passing the intermediate certs as a chain to the verification function rpki-client threw everything into it. The X509_STORE is just not built for such an abuse and so it was no wonder that this was slow.
  • Err codemadness.org 70 i 11889
  • Lucky me I pulled benno@ with me into this dark hole of libcrypto code. He managed to build up an initial diff to pass the chains as a STACK_OF(X509) and together we managed to get it working. A big thanks goes to ingo@ who documented most of the functions we had to use. Have a look at STACK_OF(3) and sk_pop_free(3) to understand why benno@ and I slowly turned crazy.
  • Err codemadness.org 70 i 11890
  • Our next challenge was to only load the necessary certificate revocation list into the X509_STORE_CTX. While doing those changes it became obvious that some of the data structures needed better lookup functions. Looking up certificates was done using a linear lookup and so we replaced the internal certificate and CRL tables with RB trees for fast lookups. deraadt@ also joined the rpki-client commit fest and changed the output code to use rename(2) so that files are replaced in an atomic operation. Thanks to this rpki-client can now be safely run from cron (there is an example in the default crontab).
  • Err codemadness.org 70 i 11891
  • I did not plan to spend most of my week hacking on rpki-client but in the end I'm happy that I did and the result is fairly impressive. Working with libcrypto code and especially X509 was less than pleasant. Our screams of agony died away in the snowy rocky mountains and made Bob deep dive into UVM with a smile since he knew that benno@ and I had it worse.
  • Err codemadness.org 70 i 11892
  • In case you wonder thanks to all changes at e2k19 rpki-client improved from over 20min run time to validate all VRPS to roughly 1min to do the same job. A factor 20 improvement!
  • Err codemadness.org 70 i 11893
  • Thanks to Theo, Bob and Howie to make this possible. To all the cooks for the great food and to Xplornet for providing us with Internet at the hut.
  • Err codemadness.org 70 i 11894
Err codemadness.org 70 i 11895 Err codemadness.org 70 i 11896
Err codemadness.org 70 i 11897 Err codemadness.org 70 i 11898

Beastie Bits

Err codemadness.org 70 i 11899 Err codemadness.org 70 i 11900 Err codemadness.org 70 i 11908 Err codemadness.org 70 i 11909
Err codemadness.org 70 i 11910 Err codemadness.org 70 i 11911

Feedback/Questions

Err codemadness.org 70 i 11912 Err codemadness.org 70 i 11913 Err codemadness.org 70 i 11917 Err codemadness.org 70 i 11918
Err codemadness.org 70 i 11919 Err codemadness.org 70 i 11920
    Err codemadness.org 70 i 11921
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 11922
Err codemadness.org 70 i 11923 Err codemadness.org 70 i 11924
Err codemadness.org 70 i 11925 Err codemadness.org 70 i 11926

Special Guest: Mariusz Zaborski.

]]> Err codemadness.org 70 i 11930
Err codemadness.org 70 i 11931 https://fireside.fm/player/v2/FYhhasNR+xj7V9OKR Err codemadness.org 70 i 11932 Err codemadness.org 70 i 11933 ]]> Err codemadness.org 70 i 11934 Err codemadness.org 70 i 11935
Err codemadness.org 70 i 11936 Err codemadness.org 70 i 11937 329: Lucas’ Arts Err codemadness.org 70 i 11938 https://www.bsdnow.tv/329 Err codemadness.org 70 i 11939 ca9f1431-2af7-48ad-98d6-e68c253ec75b Err codemadness.org 70 i 11940 Thu, 19 Dec 2019 05:00:00 -0800 Err codemadness.org 70 i 11941 Allan Jude Err codemadness.org 70 i 11942 Err codemadness.org 70 i 11943 full Err codemadness.org 70 i 11944 Allan Jude Err codemadness.org 70 i 11945 In this episode, we interview Michael W. Lucas about his latest book projects, including the upcoming SNMP Mastery book. Err codemadness.org 70 i 11946 51:05 Err codemadness.org 70 i 11947 no Err codemadness.org 70 i 11948 Err codemadness.org 70 i 11949 In this episode, we interview Michael W. Lucas about his latest book projects, including the upcoming SNMP Mastery book. Err codemadness.org 70 i 11950 Interview - Michael Lucas Err codemadness.org 70 i 11951 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 11952 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 11953 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0329.mp4"> Err codemadness.org 70 i 11954 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 11955 </video> Special Guest: Michael W Lucas. Err codemadness.org 70 i 11956 Err codemadness.org 70 i 11957 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, Michael W. Lucas, Lucas, books, writing, self-publishing, publishing, Sudo, sudo mastery, snmp, snmp mastery, bsdcan, fiction, non-fiction Err codemadness.org 70 i 11958 Err codemadness.org 70 i 11959 In this episode, we interview Michael W. Lucas about his latest book projects, including the upcoming SNMP Mastery book.

Err codemadness.org 70 i 11960 Err codemadness.org 70 i 11961

Interview - Michael Lucas

Err codemadness.org 70 i 11962 Err codemadness.org 70 i 11963
Err codemadness.org 70 i 11964 Err codemadness.org 70 i 11965
    Err codemadness.org 70 i 11966
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 11967
Err codemadness.org 70 i 11968 Err codemadness.org 70 i 11969
Err codemadness.org 70 i 11970 Err codemadness.org 70 i 11971

Special Guest: Michael W Lucas.

]]> Err codemadness.org 70 i 11975
Err codemadness.org 70 i 11976 Err codemadness.org 70 i 11977 In this episode, we interview Michael W. Lucas about his latest book projects, including the upcoming SNMP Mastery book.

Err codemadness.org 70 i 11978 Err codemadness.org 70 i 11979

Interview - Michael Lucas

Err codemadness.org 70 i 11980 Err codemadness.org 70 i 11981
Err codemadness.org 70 i 11982 Err codemadness.org 70 i 11983
    Err codemadness.org 70 i 11984
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 11985
Err codemadness.org 70 i 11986 Err codemadness.org 70 i 11987
Err codemadness.org 70 i 11988 Err codemadness.org 70 i 11989

Special Guest: Michael W Lucas.

]]> Err codemadness.org 70 i 11993
Err codemadness.org 70 i 11994 https://fireside.fm/player/v2/FYhhasNR+q0gDX0Ds Err codemadness.org 70 i 11995 Err codemadness.org 70 i 11996 ]]> Err codemadness.org 70 i 11997 Err codemadness.org 70 i 11998
Err codemadness.org 70 i 11999 Err codemadness.org 70 i 12000 328: EPYC Netflix Stack Err codemadness.org 70 i 12001 https://www.bsdnow.tv/328 Err codemadness.org 70 i 12002 be8ded86-58b0-46af-ba11-af5a748bc3d8 Err codemadness.org 70 i 12003 Thu, 12 Dec 2019 04:00:00 -0800 Err codemadness.org 70 i 12004 Allan Jude Err codemadness.org 70 i 12005 Err codemadness.org 70 i 12006 full Err codemadness.org 70 i 12007 Allan Jude Err codemadness.org 70 i 12008 LLDB Threading support now ready, Multiple IPSec VPN tunnels with FreeBSD, Netflix Optimized FreeBSD's Network Stack More Than Doubled AMD EPYC Performance, happy eyeballs with unwind(8), AWS got FreeBSD ARM 12, OpenSSH U2F/FIDO support, and more. Err codemadness.org 70 i 12009 57:43 Err codemadness.org 70 i 12010 no Err codemadness.org 70 i 12011 Err codemadness.org 70 i 12012 LLDB Threading support now ready, Multiple IPSec VPN tunnels with FreeBSD, Netflix Optimized FreeBSD's Network Stack More Than Doubled AMD EPYC Performance, happy eyeballs with unwind(8), AWS got FreeBSD ARM 12, OpenSSH U2F/FIDO support, and more. Err codemadness.org 70 i 12013 Headlines Err codemadness.org 70 i 12014 LLDB Threading support now ready for mainline (https://blog.netbsd.org/tnf/entry/lldb_threading_support_now_ready) Err codemadness.org 70 i 12015 Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages. Err codemadness.org 70 i 12016 In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues and fixing watchpoint support. Then, I've started working on improving thread support which is taking longer than expected. You can read more about that in my September 2019 report. Err codemadness.org 70 i 12017 So far the number of issues uncovered while enabling proper threading support has stopped me from merging the work-in-progress patches. However, I've finally reached the point where I believe that the current work can be merged and the remaining problems can be resolved afterwards. More on that and other LLVM-related events happening during the last month in this report. Err codemadness.org 70 i 12018 Multiple IPSec VPN tunnels with FreeBSD (https://blog.socruel.nu/text-only/how-to-multiple-ipsec-vpn-tunnels-on-freebsd.txt) Err codemadness.org 70 i 12019 The FreeBSD handbook describes an IPSec VPN tunnel between 2 FreeBSD hosts (see https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ipsec.html) Err codemadness.org 70 i 12020 But it is also possible to have multiple, 2 or more, IPSec VPN tunnels created and running on a FreeBSD host. How to implement and configure this is described below. Err codemadness.org 70 i 12021 The requirements is to have 3 locations (A, B and C) connected with IPSec VPN tunnels using FreeBSD (11.3-RELEASE). Err codemadness.org 70 i 12022 Each location has 1 IPSec VPN host running FreeBSD (VPN host A, B and C). Err codemadness.org 70 i 12023 VPN host A has 2 IPSec VPN tunnels: 1 to location B (VPN host B) and 1 to location C (VPN host C). Err codemadness.org 70 i 12024 News Roundup Err codemadness.org 70 i 12025 Netflix Optimized FreeBSD's Network Stack More Than Doubled AMD EPYC Performance (https://www.phoronix.com/scan.php?page=news_item&px=Netflix-NUMA-FreeBSD-Optimized) Err codemadness.org 70 i 12026 Drew Gallatin of Netflix presented at the recent EuroBSDcon 2019 conference in Norway on the company's network stack optimizations to FreeBSD. Netflix was working on being able to deliver 200Gb/s network performance for video streaming out of Intel Xeon and AMD EPYC servers, to which they are now at 190Gb/s+ and in the process that doubled the potential of EPYC Naples/Rome servers and also very hefty upgrades too for Intel. Err codemadness.org 70 i 12027 Netflix has long been known to be using FreeBSD in their data centers particularly where network performance is concerned. But in wanting to deliver 200Gb/s throughput from individual servers led them to making NUMA optimizations to the FreeBSD network stack. Allocating NUMA local memory for kernel TLS crypto buffers and for backing files sent via sentfile were among their optimizations. Changes to network connection handling and dealing with incoming connections to Nginx were also made. Err codemadness.org 70 i 12028 For those just wanting the end result, Netflix's NUMA optimizations to FreeBSD resulted in their Intel Xeon servers going from 105Gb/s to 191Gb/s while the NUMA fabric utilization dropped from 40% to 13%. Err codemadness.org 70 i 12029 unwind(8); "happy eyeballs" (https://marc.info/?l=openbsd-tech&m=157475113130337&w=2) Err codemadness.org 70 i 12030 In case you are wondering why happy eyeballs: It's a variation on this: Err codemadness.org 70 i 12031 https://en.wikipedia.org/wiki/Happy_Eyeballs Err codemadness.org 70 i 12032 unwind has a concept of a best nameserver type. It considers a configured DoT nameserver to be better than doing it's own recursive resolving. Recursive resolving is considered to be better than asking the dhcp provided nameservers. Err codemadness.org 70 i 12033 This diff sorts the nameserver types by quality, as above (validation, resolving, dead...), and as a tie breaker it adds the median of the round trip time of previous queries into the mix. Err codemadness.org 70 i 12034 One other interesting thing about this is that it gets us past captive portals without a check URL, that's why this diff is so huge, it rips out all the captive portal stuff (please apply with patch -E): Err codemadness.org 70 i 12035 17 files changed, 385 insertions(+), 1683 deletions(-) Err codemadness.org 70 i 12036 Please test this. I'm particularly interested in reports from people who move between networks and need to get past captive portals. Err codemadness.org 70 i 12037 Amazon now has FreeBSD ARM 12 (https://aws.amazon.com/marketplace/pp/B081NF7BY7) Err codemadness.org 70 i 12038 Product Overview Err codemadness.org 70 i 12039 FreeBSD is an operating system used to power servers, desktops, and embedded systems. Derived from BSD, the version of UNIX developed at the University of California, Berkeley, FreeBSD has been continually developed by a large community for more than 30 years. Err codemadness.org 70 i 12040 FreeBSD's networking, security, storage, and monitoring features, including the pf firewall, the Capsicum and CloudABI capability frameworks, the ZFS filesystem, and the DTrace dynamic tracing framework, make FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage systems. Err codemadness.org 70 i 12041 OpenSSH U2F/FIDO support in base (https://www.undeadly.org/cgi?action=article;sid=20191115064850) Err codemadness.org 70 i 12042 I just committed all the dependencies for OpenSSH security key (U2F) support to base and tweaked OpenSSH to use them directly. This means there will be no additional configuration hoops to jump through to use U2F/FIDO2 security keys. Err codemadness.org 70 i 12043 Hardware backed keys can be generated using "ssh-keygen -t ecdsa-sk" (or "ed25519-sk" if your token supports it). Many tokens require to be touched/tapped to confirm this step. Err codemadness.org 70 i 12044 You'll get a public/private keypair back as usual, except in this case, the private key file does not contain a highly-sensitive private key but instead holds a "key handle" that is used by the security key to derive the real private key at signing time. Err codemadness.org 70 i 12045 So, stealing a copy of the private key file without also stealing your security key (or access to it) should not give the attacker anything. Err codemadness.org 70 i 12046 Once you have generated a key, you can use it normally - i.e. add it to an agent, copy it to your destination's authorized_keys files (assuming they are running -current too), etc. At authentication time, you will be prompted to tap your security key to confirm the signature operation - this makes theft-of-access attacks against security keys more difficult too. Err codemadness.org 70 i 12047 Please test this thoroughly - it's a big change that we want to have stable before the next release. Err codemadness.org 70 i 12048 Beastie Bits Err codemadness.org 70 i 12049 DragonFly - git: virtio - Fix LUN scan issue w/ Google Cloud (http://lists.dragonflybsd.org/pipermail/commits/2019-November/719945.html) Err codemadness.org 70 i 12050 Really fast Markov chains in ~20 lines of sh, grep, cut and awk (https://0x0f0f0f.github.io/posts/2019/11/really-fast-markov-chains-in-~20-lines-of-sh-grep-cut-and-awk/) Err codemadness.org 70 i 12051 FreeBSD Journal Sept/Oct 2019 (https://www.freebsdfoundation.org/past-issues/security-3/) Err codemadness.org 70 i 12052 Michael Dexter is raising money for Bhyve development (https://twitter.com/michaeldexter/status/1201231729228308480) Err codemadness.org 70 i 12053 syscall call-from verification (https://marc.info/?l=openbsd-tech&m=157488907117170) Err codemadness.org 70 i 12054 FreeBSD Forums Howto Section (https://forums.freebsd.org/forums/howtos-and-faqs-moderated.39/) Err codemadness.org 70 i 12055 Feedback/Questions Err codemadness.org 70 i 12056 Jeroen - Feedback (http://dpaste.com/0PK1EG2#wrap) Err codemadness.org 70 i 12057 Savo - pfsense ports (http://dpaste.com/0PZ03B7#wrap) Err codemadness.org 70 i 12058 Tin - I want to learn C (http://dpaste.com/2GVNCYB#wrap) Err codemadness.org 70 i 12059 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 12060 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 12061 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0328.mp4" type="video/mp4"> Err codemadness.org 70 i 12062 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 12063 </video> Err codemadness.org 70 i 12064 Err codemadness.org 70 i 12065 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, lldb, threading, ipsec, vpn, tunnel, netflix, optimized, network stack, amd, amd epyc, performance, unwind, eyeballs, aws, arm, arm 12, openssh, u2f, fido Err codemadness.org 70 i 12066 Err codemadness.org 70 i 12067 LLDB Threading support now ready, Multiple IPSec VPN tunnels with FreeBSD, Netflix Optimized FreeBSD's Network Stack More Than Doubled AMD EPYC Performance, happy eyeballs with unwind(8), AWS got FreeBSD ARM 12, OpenSSH U2F/FIDO support, and more.

Err codemadness.org 70 i 12068 Err codemadness.org 70 i 12069

Headlines

Err codemadness.org 70 i 12070 Err codemadness.org 70 i 12071

LLDB Threading support now ready for mainline

Err codemadness.org 70 i 12072 Err codemadness.org 70 i 12073
Err codemadness.org 70 i 12074

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.

Err codemadness.org 70 i 12075 Err codemadness.org 70 i 12076

In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues and fixing watchpoint support. Then, I've started working on improving thread support which is taking longer than expected. You can read more about that in my September 2019 report.

Err codemadness.org 70 i 12077 Err codemadness.org 70 i 12078

So far the number of issues uncovered while enabling proper threading support has stopped me from merging the work-in-progress patches. However, I've finally reached the point where I believe that the current work can be merged and the remaining problems can be resolved afterwards. More on that and other LLVM-related events happening during the last month in this report.

Err codemadness.org 70 i 12079
Err codemadness.org 70 i 12080 Err codemadness.org 70 i 12081
Err codemadness.org 70 i 12082 Err codemadness.org 70 i 12083

Multiple IPSec VPN tunnels with FreeBSD

Err codemadness.org 70 i 12084 Err codemadness.org 70 i 12085
Err codemadness.org 70 i 12086

The FreeBSD handbook describes an IPSec VPN tunnel between 2 FreeBSD hosts (see https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ipsec.html)

Err codemadness.org 70 i 12087
Err codemadness.org 70 i 12088 Err codemadness.org 70 i 12089

But it is also possible to have multiple, 2 or more, IPSec VPN tunnels created and running on a FreeBSD host. How to implement and configure this is described below.

Err codemadness.org 70 i 12090 Err codemadness.org 70 i 12091
Err codemadness.org 70 i 12092

The requirements is to have 3 locations (A, B and C) connected with IPSec VPN tunnels using FreeBSD (11.3-RELEASE).

Err codemadness.org 70 i 12093 Err codemadness.org 70 i 12094

Each location has 1 IPSec VPN host running FreeBSD (VPN host A, B and C).

Err codemadness.org 70 i 12095 Err codemadness.org 70 i 12096

VPN host A has 2 IPSec VPN tunnels: 1 to location B (VPN host B) and 1 to location C (VPN host C).

Err codemadness.org 70 i 12097
Err codemadness.org 70 i 12098 Err codemadness.org 70 i 12099
Err codemadness.org 70 i 12100 Err codemadness.org 70 i 12101

News Roundup

Err codemadness.org 70 i 12102 Err codemadness.org 70 i 12103

Netflix Optimized FreeBSD's Network Stack More Than Doubled AMD EPYC Performance

Err codemadness.org 70 i 12104 Err codemadness.org 70 i 12105
Err codemadness.org 70 i 12106

Drew Gallatin of Netflix presented at the recent EuroBSDcon 2019 conference in Norway on the company's network stack optimizations to FreeBSD. Netflix was working on being able to deliver 200Gb/s network performance for video streaming out of Intel Xeon and AMD EPYC servers, to which they are now at 190Gb/s+ and in the process that doubled the potential of EPYC Naples/Rome servers and also very hefty upgrades too for Intel.

Err codemadness.org 70 i 12107 Err codemadness.org 70 i 12108

Netflix has long been known to be using FreeBSD in their data centers particularly where network performance is concerned. But in wanting to deliver 200Gb/s throughput from individual servers led them to making NUMA optimizations to the FreeBSD network stack. Allocating NUMA local memory for kernel TLS crypto buffers and for backing files sent via sentfile were among their optimizations. Changes to network connection handling and dealing with incoming connections to Nginx were also made.

Err codemadness.org 70 i 12109 Err codemadness.org 70 i 12110

For those just wanting the end result, Netflix's NUMA optimizations to FreeBSD resulted in their Intel Xeon servers going from 105Gb/s to 191Gb/s while the NUMA fabric utilization dropped from 40% to 13%.

Err codemadness.org 70 i 12111
Err codemadness.org 70 i 12112 Err codemadness.org 70 i 12113
Err codemadness.org 70 i 12114 Err codemadness.org 70 i 12115

unwind(8); "happy eyeballs"

Err codemadness.org 70 i 12116 Err codemadness.org 70 i 12117
Err codemadness.org 70 i 12118

In case you are wondering why happy eyeballs: It's a variation on this:
Err codemadness.org 70 i 12119 https://en.wikipedia.org/wiki/Happy_Eyeballs

Err codemadness.org 70 i 12120 Err codemadness.org 70 i 12121

unwind has a concept of a best nameserver type. It considers a configured DoT nameserver to be better than doing it's own recursive resolving. Recursive resolving is considered to be better than asking the dhcp provided nameservers.

Err codemadness.org 70 i 12122 Err codemadness.org 70 i 12123

This diff sorts the nameserver types by quality, as above (validation, resolving, dead...), and as a tie breaker it adds the median of the round trip time of previous queries into the mix.

Err codemadness.org 70 i 12124 Err codemadness.org 70 i 12125

One other interesting thing about this is that it gets us past captive portals without a check URL, that's why this diff is so huge, it rips out all the captive portal stuff (please apply with patch -E):
Err codemadness.org 70 i 12126 17 files changed, 385 insertions(+), 1683 deletions(-)

Err codemadness.org 70 i 12127 Err codemadness.org 70 i 12128

Please test this. I'm particularly interested in reports from people who move between networks and need to get past captive portals.

Err codemadness.org 70 i 12129
Err codemadness.org 70 i 12130 Err codemadness.org 70 i 12131
Err codemadness.org 70 i 12132 Err codemadness.org 70 i 12133

Amazon now has FreeBSD ARM 12

Err codemadness.org 70 i 12134 Err codemadness.org 70 i 12135
Err codemadness.org 70 i 12136

Product Overview

Err codemadness.org 70 i 12137 Err codemadness.org 70 i 12138

FreeBSD is an operating system used to power servers, desktops, and embedded systems. Derived from BSD, the version of UNIX developed at the University of California, Berkeley, FreeBSD has been continually developed by a large community for more than 30 years.

Err codemadness.org 70 i 12139 Err codemadness.org 70 i 12140

FreeBSD's networking, security, storage, and monitoring features, including the pf firewall, the Capsicum and CloudABI capability frameworks, the ZFS filesystem, and the DTrace dynamic tracing framework, make FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage systems.

Err codemadness.org 70 i 12141
Err codemadness.org 70 i 12142 Err codemadness.org 70 i 12143
Err codemadness.org 70 i 12144 Err codemadness.org 70 i 12145

OpenSSH U2F/FIDO support in base

Err codemadness.org 70 i 12146 Err codemadness.org 70 i 12147
Err codemadness.org 70 i 12148

I just committed all the dependencies for OpenSSH security key (U2F) support to base and tweaked OpenSSH to use them directly. This means there will be no additional configuration hoops to jump through to use U2F/FIDO2 security keys.

Err codemadness.org 70 i 12149 Err codemadness.org 70 i 12150

Hardware backed keys can be generated using "ssh-keygen -t ecdsa-sk" (or "ed25519-sk" if your token supports it). Many tokens require to be touched/tapped to confirm this step.

Err codemadness.org 70 i 12151 Err codemadness.org 70 i 12152

You'll get a public/private keypair back as usual, except in this case, the private key file does not contain a highly-sensitive private key but instead holds a "key handle" that is used by the security key to derive the real private key at signing time.

Err codemadness.org 70 i 12153 Err codemadness.org 70 i 12154

So, stealing a copy of the private key file without also stealing your security key (or access to it) should not give the attacker anything.

Err codemadness.org 70 i 12155 Err codemadness.org 70 i 12156

Once you have generated a key, you can use it normally - i.e. add it to an agent, copy it to your destination's authorized_keys files (assuming they are running -current too), etc. At authentication time, you will be prompted to tap your security key to confirm the signature operation - this makes theft-of-access attacks against security keys more difficult too.

Err codemadness.org 70 i 12157 Err codemadness.org 70 i 12158

Please test this thoroughly - it's a big change that we want to have stable before the next release.

Err codemadness.org 70 i 12159
Err codemadness.org 70 i 12160 Err codemadness.org 70 i 12161
Err codemadness.org 70 i 12162 Err codemadness.org 70 i 12163

Beastie Bits

Err codemadness.org 70 i 12164 Err codemadness.org 70 i 12165 Err codemadness.org 70 i 12173 Err codemadness.org 70 i 12174
Err codemadness.org 70 i 12175 Err codemadness.org 70 i 12176

Feedback/Questions

Err codemadness.org 70 i 12177 Err codemadness.org 70 i 12178 Err codemadness.org 70 i 12183 Err codemadness.org 70 i 12184
Err codemadness.org 70 i 12185 Err codemadness.org 70 i 12186
    Err codemadness.org 70 i 12187
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 12188
Err codemadness.org 70 i 12189 Err codemadness.org 70 i 12190
Err codemadness.org 70 i 12191 Err codemadness.org 70 i 12192 ]]> Err codemadness.org 70 i 12196
Err codemadness.org 70 i 12197 Err codemadness.org 70 i 12198 LLDB Threading support now ready, Multiple IPSec VPN tunnels with FreeBSD, Netflix Optimized FreeBSD's Network Stack More Than Doubled AMD EPYC Performance, happy eyeballs with unwind(8), AWS got FreeBSD ARM 12, OpenSSH U2F/FIDO support, and more.

Err codemadness.org 70 i 12199 Err codemadness.org 70 i 12200

Headlines

Err codemadness.org 70 i 12201 Err codemadness.org 70 i 12202

LLDB Threading support now ready for mainline

Err codemadness.org 70 i 12203 Err codemadness.org 70 i 12204
Err codemadness.org 70 i 12205

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.

Err codemadness.org 70 i 12206 Err codemadness.org 70 i 12207

In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues and fixing watchpoint support. Then, I've started working on improving thread support which is taking longer than expected. You can read more about that in my September 2019 report.

Err codemadness.org 70 i 12208 Err codemadness.org 70 i 12209

So far the number of issues uncovered while enabling proper threading support has stopped me from merging the work-in-progress patches. However, I've finally reached the point where I believe that the current work can be merged and the remaining problems can be resolved afterwards. More on that and other LLVM-related events happening during the last month in this report.

Err codemadness.org 70 i 12210
Err codemadness.org 70 i 12211 Err codemadness.org 70 i 12212
Err codemadness.org 70 i 12213 Err codemadness.org 70 i 12214

Multiple IPSec VPN tunnels with FreeBSD

Err codemadness.org 70 i 12215 Err codemadness.org 70 i 12216
Err codemadness.org 70 i 12217

The FreeBSD handbook describes an IPSec VPN tunnel between 2 FreeBSD hosts (see https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ipsec.html)

Err codemadness.org 70 i 12218
Err codemadness.org 70 i 12219 Err codemadness.org 70 i 12220

But it is also possible to have multiple, 2 or more, IPSec VPN tunnels created and running on a FreeBSD host. How to implement and configure this is described below.

Err codemadness.org 70 i 12221 Err codemadness.org 70 i 12222
Err codemadness.org 70 i 12223

The requirements is to have 3 locations (A, B and C) connected with IPSec VPN tunnels using FreeBSD (11.3-RELEASE).

Err codemadness.org 70 i 12224 Err codemadness.org 70 i 12225

Each location has 1 IPSec VPN host running FreeBSD (VPN host A, B and C).

Err codemadness.org 70 i 12226 Err codemadness.org 70 i 12227

VPN host A has 2 IPSec VPN tunnels: 1 to location B (VPN host B) and 1 to location C (VPN host C).

Err codemadness.org 70 i 12228
Err codemadness.org 70 i 12229 Err codemadness.org 70 i 12230
Err codemadness.org 70 i 12231 Err codemadness.org 70 i 12232

News Roundup

Err codemadness.org 70 i 12233 Err codemadness.org 70 i 12234

Netflix Optimized FreeBSD's Network Stack More Than Doubled AMD EPYC Performance

Err codemadness.org 70 i 12235 Err codemadness.org 70 i 12236
Err codemadness.org 70 i 12237

Drew Gallatin of Netflix presented at the recent EuroBSDcon 2019 conference in Norway on the company's network stack optimizations to FreeBSD. Netflix was working on being able to deliver 200Gb/s network performance for video streaming out of Intel Xeon and AMD EPYC servers, to which they are now at 190Gb/s+ and in the process that doubled the potential of EPYC Naples/Rome servers and also very hefty upgrades too for Intel.

Err codemadness.org 70 i 12238 Err codemadness.org 70 i 12239

Netflix has long been known to be using FreeBSD in their data centers particularly where network performance is concerned. But in wanting to deliver 200Gb/s throughput from individual servers led them to making NUMA optimizations to the FreeBSD network stack. Allocating NUMA local memory for kernel TLS crypto buffers and for backing files sent via sentfile were among their optimizations. Changes to network connection handling and dealing with incoming connections to Nginx were also made.

Err codemadness.org 70 i 12240 Err codemadness.org 70 i 12241

For those just wanting the end result, Netflix's NUMA optimizations to FreeBSD resulted in their Intel Xeon servers going from 105Gb/s to 191Gb/s while the NUMA fabric utilization dropped from 40% to 13%.

Err codemadness.org 70 i 12242
Err codemadness.org 70 i 12243 Err codemadness.org 70 i 12244
Err codemadness.org 70 i 12245 Err codemadness.org 70 i 12246

unwind(8); "happy eyeballs"

Err codemadness.org 70 i 12247 Err codemadness.org 70 i 12248
Err codemadness.org 70 i 12249

In case you are wondering why happy eyeballs: It's a variation on this:
Err codemadness.org 70 i 12250 https://en.wikipedia.org/wiki/Happy_Eyeballs

Err codemadness.org 70 i 12251 Err codemadness.org 70 i 12252

unwind has a concept of a best nameserver type. It considers a configured DoT nameserver to be better than doing it's own recursive resolving. Recursive resolving is considered to be better than asking the dhcp provided nameservers.

Err codemadness.org 70 i 12253 Err codemadness.org 70 i 12254

This diff sorts the nameserver types by quality, as above (validation, resolving, dead...), and as a tie breaker it adds the median of the round trip time of previous queries into the mix.

Err codemadness.org 70 i 12255 Err codemadness.org 70 i 12256

One other interesting thing about this is that it gets us past captive portals without a check URL, that's why this diff is so huge, it rips out all the captive portal stuff (please apply with patch -E):
Err codemadness.org 70 i 12257 17 files changed, 385 insertions(+), 1683 deletions(-)

Err codemadness.org 70 i 12258 Err codemadness.org 70 i 12259

Please test this. I'm particularly interested in reports from people who move between networks and need to get past captive portals.

Err codemadness.org 70 i 12260
Err codemadness.org 70 i 12261 Err codemadness.org 70 i 12262
Err codemadness.org 70 i 12263 Err codemadness.org 70 i 12264

Amazon now has FreeBSD ARM 12

Err codemadness.org 70 i 12265 Err codemadness.org 70 i 12266
Err codemadness.org 70 i 12267

Product Overview

Err codemadness.org 70 i 12268 Err codemadness.org 70 i 12269

FreeBSD is an operating system used to power servers, desktops, and embedded systems. Derived from BSD, the version of UNIX developed at the University of California, Berkeley, FreeBSD has been continually developed by a large community for more than 30 years.

Err codemadness.org 70 i 12270 Err codemadness.org 70 i 12271

FreeBSD's networking, security, storage, and monitoring features, including the pf firewall, the Capsicum and CloudABI capability frameworks, the ZFS filesystem, and the DTrace dynamic tracing framework, make FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage systems.

Err codemadness.org 70 i 12272
Err codemadness.org 70 i 12273 Err codemadness.org 70 i 12274
Err codemadness.org 70 i 12275 Err codemadness.org 70 i 12276

OpenSSH U2F/FIDO support in base

Err codemadness.org 70 i 12277 Err codemadness.org 70 i 12278
Err codemadness.org 70 i 12279

I just committed all the dependencies for OpenSSH security key (U2F) support to base and tweaked OpenSSH to use them directly. This means there will be no additional configuration hoops to jump through to use U2F/FIDO2 security keys.

Err codemadness.org 70 i 12280 Err codemadness.org 70 i 12281

Hardware backed keys can be generated using "ssh-keygen -t ecdsa-sk" (or "ed25519-sk" if your token supports it). Many tokens require to be touched/tapped to confirm this step.

Err codemadness.org 70 i 12282 Err codemadness.org 70 i 12283

You'll get a public/private keypair back as usual, except in this case, the private key file does not contain a highly-sensitive private key but instead holds a "key handle" that is used by the security key to derive the real private key at signing time.

Err codemadness.org 70 i 12284 Err codemadness.org 70 i 12285

So, stealing a copy of the private key file without also stealing your security key (or access to it) should not give the attacker anything.

Err codemadness.org 70 i 12286 Err codemadness.org 70 i 12287

Once you have generated a key, you can use it normally - i.e. add it to an agent, copy it to your destination's authorized_keys files (assuming they are running -current too), etc. At authentication time, you will be prompted to tap your security key to confirm the signature operation - this makes theft-of-access attacks against security keys more difficult too.

Err codemadness.org 70 i 12288 Err codemadness.org 70 i 12289

Please test this thoroughly - it's a big change that we want to have stable before the next release.

Err codemadness.org 70 i 12290
Err codemadness.org 70 i 12291 Err codemadness.org 70 i 12292
Err codemadness.org 70 i 12293 Err codemadness.org 70 i 12294

Beastie Bits

Err codemadness.org 70 i 12295 Err codemadness.org 70 i 12296 Err codemadness.org 70 i 12304 Err codemadness.org 70 i 12305
Err codemadness.org 70 i 12306 Err codemadness.org 70 i 12307

Feedback/Questions

Err codemadness.org 70 i 12308 Err codemadness.org 70 i 12309 Err codemadness.org 70 i 12314 Err codemadness.org 70 i 12315
Err codemadness.org 70 i 12316 Err codemadness.org 70 i 12317
    Err codemadness.org 70 i 12318
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 12319
Err codemadness.org 70 i 12320 Err codemadness.org 70 i 12321
Err codemadness.org 70 i 12322 Err codemadness.org 70 i 12323 ]]> Err codemadness.org 70 i 12327
Err codemadness.org 70 i 12328 https://fireside.fm/player/v2/FYhhasNR+zdscQha2 Err codemadness.org 70 i 12329 Err codemadness.org 70 i 12330 ]]> Err codemadness.org 70 i 12331 Err codemadness.org 70 i 12332
Err codemadness.org 70 i 12333 Err codemadness.org 70 i 12334 327: ZFS Rename Repo Err codemadness.org 70 i 12335 https://www.bsdnow.tv/327 Err codemadness.org 70 i 12336 18bee756-2b2e-45ed-bcf1-403549bf6a32 Err codemadness.org 70 i 12337 Thu, 05 Dec 2019 04:00:00 -0800 Err codemadness.org 70 i 12338 Allan Jude Err codemadness.org 70 i 12339 Err codemadness.org 70 i 12340 full Err codemadness.org 70 i 12341 Allan Jude Err codemadness.org 70 i 12342 We read FreeBSD’s third quarterly status report, OpenBSD on Sparc64, ZoL repo move to OpenZFS, GEOM NOP, keeping NetBSD up-to-date, and more. Err codemadness.org 70 i 12343 1:23:27 Err codemadness.org 70 i 12344 no Err codemadness.org 70 i 12345 Err codemadness.org 70 i 12346 We read FreeBSD’s third quarterly status report, OpenBSD on Sparc64, ZoL repo move to OpenZFS, GEOM NOP, keeping NetBSD up-to-date, and more. Err codemadness.org 70 i 12347 Headlines Err codemadness.org 70 i 12348 FreeBSD third quarterly status report for 2019 (https://www.freebsd.org/news/status/report-2019-07-2019-09.html) Err codemadness.org 70 i 12349 This quarter the reports team has been more active than usual thanks to a better organization: calls for reports and reminders have been sent regularly, reports have been reviewed and merged quickly (I would like to thank debdrup@ in particular for his reviewing work). Err codemadness.org 70 i 12350 Efficiency could still be improved with the help of our community. In particular, the quarterly team has found that many reports have arrived in the last days before the deadline or even after. I would like to invite the community to follow the guidelines below that can help us sending out the reports sooner. Err codemadness.org 70 i 12351 Starting from next quarter, all quarterly status reports will be prepared the last month of the quarter itself, instead of the first month after the quarter's end. This means that deadlines for submitting reports will be the 1st of January, April, July and October. Err codemadness.org 70 i 12352 Next quarter will then be a short one, covering the months of November and December only and the report will probably be out in mid January. Err codemadness.org 70 i 12353 OpenBSD on Sparc64 (https://eerielinux.wordpress.com/2019/10/10/openbsd-on-sparc64-6-0-to-6-5/) Err codemadness.org 70 i 12354 OpenBSD, huh? Yes, I usually write about FreeBSD and that’s in fact what I tried installing on the machine first. But I ran into problems with it very early on (never even reached single user mode) and put it aside for later. Since I powered up the SunFire again last month, I needed an OS now and chose OpenBSD for the simple reason that I have it available. Err codemadness.org 70 i 12355 First I wanted to call this article simply “OpenBSD on SPARC” – but that would have been misleading since OpenBSD used to support 32-bit SPARC processors, too. The platform was just put to rest after the 5.9 release. Err codemadness.org 70 i 12356 Version 6.0 was the last release of OpenBSD that came on CD-ROM. When I bought it, I thought that I’d never use the SPARC CD. But here was the chance! While it is an obsolete release, it comes with the cryptographic signatures to verify the next release. So the plan is to start at 6.0 as I can trust the original CDs and then update to the latest release. This will also be an opportunity to recap on some of the things that changed over the various versions. Err codemadness.org 70 i 12357 News Roundup Err codemadness.org 70 i 12358 ZoL repo move to OpenZFS (https://zfsonlinux.topicbox.com/groups/zfs-discuss/T13eedc32607dab41/zol-repo-move-to-openzfs) Err codemadness.org 70 i 12359 Because it will contain the ZFS source code for both Linux and FreeBSD, we will rename the "ZFSonLinux" code repository to "OpenZFS". Specifically, the repo at http://github.com/ZFSonLinux/zfs will be moved to the OpenZFS organization, at http://github.com/OpenZFS/zfs. Err codemadness.org 70 i 12360 The next major release of ZFS for Linux and FreeBSD will be "OpenZFS 2.0", and is expected to ship in 2020. Err codemadness.org 70 i 12361 Mcclure111 Sun Thread (https://twitter.com/mcclure111/status/1196557401710837762) Err codemadness.org 70 i 12362 A long time ago— like 15 years ago— I worked at Sun Microsystems. The company was nearly dead at the time (it died a couple years later) because they didn't make anything that anyone wanted to buy anymore. So they had a lot of strange ideas about how they'd make their comeback. Err codemadness.org 70 i 12363 GEOM NOP (https://oshogbo.vexillium.org/blog/71/) Err codemadness.org 70 i 12364 Sometimes while testing file systems or applications you want to simulate some errors on the disk level. The first time I heard about this need was from Baptiste Daroussin during his presentation at AsiaBSDCon 2016. He mentioned how they had built a test lab with it. The same need was recently discussed during the PGCon 2019, to test a PostgreSQL instance. If you are FreeBSD user, I have great news for you: there is a GEOM provider which allows you to simulate a failing device. Err codemadness.org 70 i 12365 GNOP allows us to configure transparent providers from existing ones. The first interesting option of it is that we can slice the device into smaller pieces, thanks to the ‘offset option’ and ‘stripsesize’. This allows us to observe how the data on the disk is changing. Let’s assume that we want to observe the changes in the GPT table when the GPT flags are added or removed (for example the bootme flags which are described here). We can use dd every time and analyze it using absolute values from the disks. Err codemadness.org 70 i 12366 Keeping NetBSD up-to-date with pkg_comp 2.0 (https://jmmv.dev/2017/02/pkg_comp-2.0-tutorial-netbsd.html) Err codemadness.org 70 i 12367 This is a tutorial to guide you through the shiny new pkg_comp 2.0 on NetBSD. Err codemadness.org 70 i 12368 Goals: to use pkg_comp 2.0 to build a binary repository of all the packages you are interested in; to keep the repository fresh on a daily basis; and to use that repository with pkgin to maintain your NetBSD system up-to-date and secure. Err codemadness.org 70 i 12369 This tutorial is specifically targeted at NetBSD but should work on other platforms with some small changes. Expect, at the very least, a macOS-specific tutorial as soon as I create a pkg_comp standalone installer for that platform. Err codemadness.org 70 i 12370 Beastie Bits Err codemadness.org 70 i 12371 DragonFly - Radeon Improvements (http://lists.dragonflybsd.org/pipermail/commits/2019-November/720070.html) Err codemadness.org 70 i 12372 NomadBSD review (https://www.youtube.com/watch?v=7DglP7SbnlA&feature=share) Err codemadness.org 70 i 12373 Spongebob OpenBSD Security Comic (https://files.yukiisbo.red/openbsd_claim.png) Err codemadness.org 70 i 12374 Forth : The Early Years (https://colorforth.github.io/HOPL.html) Err codemadness.org 70 i 12375 LCM+L PDP-7 booting and running UNIX Version 0 (https://www.youtube.com/watch?v=pvaPaWyiuLA) Err codemadness.org 70 i 12376 Feedback/Questions Err codemadness.org 70 i 12377 Chris - Ctrl-T (http://dpaste.com/284E5BV) Err codemadness.org 70 i 12378 Improved Ctrl+t that shows kernel backtrace (https://asciinema.org/a/xfSpvPT61Cnd9iRgbfIjT6kYj) Err codemadness.org 70 i 12379 Brian - Migrating NexentaStore to FreeBSD/FreeNAS (http://dpaste.com/05GDK8H#wrap) Err codemadness.org 70 i 12380 Avery - How to get involved (http://dpaste.com/26KW801#wrap) Err codemadness.org 70 i 12381 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 12382 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 12383 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0327.mp4" type="video/mp4"> Err codemadness.org 70 i 12384 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 12385 </video> Err codemadness.org 70 i 12386 Err codemadness.org 70 i 12387 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, quarterly status, status report, report, sparc64, sun, geom, nop, gnop, uo-to-date, pkg_comp Err codemadness.org 70 i 12388 Err codemadness.org 70 i 12389 We read FreeBSD’s third quarterly status report, OpenBSD on Sparc64, ZoL repo move to OpenZFS, GEOM NOP, keeping NetBSD up-to-date, and more.

Err codemadness.org 70 i 12390 Err codemadness.org 70 i 12391

Headlines

Err codemadness.org 70 i 12392 Err codemadness.org 70 i 12393

FreeBSD third quarterly status report for 2019

Err codemadness.org 70 i 12394 Err codemadness.org 70 i 12395
Err codemadness.org 70 i 12396

This quarter the reports team has been more active than usual thanks to a better organization: calls for reports and reminders have been sent regularly, reports have been reviewed and merged quickly (I would like to thank debdrup@ in particular for his reviewing work).

Err codemadness.org 70 i 12397 Err codemadness.org 70 i 12398

Efficiency could still be improved with the help of our community. In particular, the quarterly team has found that many reports have arrived in the last days before the deadline or even after. I would like to invite the community to follow the guidelines below that can help us sending out the reports sooner.

Err codemadness.org 70 i 12399 Err codemadness.org 70 i 12400

Starting from next quarter, all quarterly status reports will be prepared the last month of the quarter itself, instead of the first month after the quarter's end. This means that deadlines for submitting reports will be the 1st of January, April, July and October.

Err codemadness.org 70 i 12401 Err codemadness.org 70 i 12402

Next quarter will then be a short one, covering the months of November and December only and the report will probably be out in mid January.

Err codemadness.org 70 i 12403
Err codemadness.org 70 i 12404 Err codemadness.org 70 i 12405
Err codemadness.org 70 i 12406 Err codemadness.org 70 i 12407

OpenBSD on Sparc64

Err codemadness.org 70 i 12408 Err codemadness.org 70 i 12409
Err codemadness.org 70 i 12410

OpenBSD, huh? Yes, I usually write about FreeBSD and that’s in fact what I tried installing on the machine first. But I ran into problems with it very early on (never even reached single user mode) and put it aside for later. Since I powered up the SunFire again last month, I needed an OS now and chose OpenBSD for the simple reason that I have it available.

Err codemadness.org 70 i 12411 Err codemadness.org 70 i 12412

First I wanted to call this article simply “OpenBSD on SPARC” – but that would have been misleading since OpenBSD used to support 32-bit SPARC processors, too. The platform was just put to rest after the 5.9 release.

Err codemadness.org 70 i 12413 Err codemadness.org 70 i 12414

Version 6.0 was the last release of OpenBSD that came on CD-ROM. When I bought it, I thought that I’d never use the SPARC CD. But here was the chance! While it is an obsolete release, it comes with the cryptographic signatures to verify the next release. So the plan is to start at 6.0 as I can trust the original CDs and then update to the latest release. This will also be an opportunity to recap on some of the things that changed over the various versions.

Err codemadness.org 70 i 12415
Err codemadness.org 70 i 12416 Err codemadness.org 70 i 12417
Err codemadness.org 70 i 12418 Err codemadness.org 70 i 12419

News Roundup

Err codemadness.org 70 i 12420 Err codemadness.org 70 i 12421

ZoL repo move to OpenZFS

Err codemadness.org 70 i 12422 Err codemadness.org 70 i 12423
Err codemadness.org 70 i 12424

Because it will contain the ZFS source code for both Linux and FreeBSD, we will rename the "ZFSonLinux" code repository to "OpenZFS". Specifically, the repo at http://github.com/ZFSonLinux/zfs will be moved to the OpenZFS organization, at http://github.com/OpenZFS/zfs.

Err codemadness.org 70 i 12425 Err codemadness.org 70 i 12426

The next major release of ZFS for Linux and FreeBSD will be "OpenZFS 2.0", and is expected to ship in 2020.

Err codemadness.org 70 i 12427
Err codemadness.org 70 i 12428 Err codemadness.org 70 i 12429
Err codemadness.org 70 i 12430 Err codemadness.org 70 i 12431

Mcclure111 Sun Thread

Err codemadness.org 70 i 12432 Err codemadness.org 70 i 12433
Err codemadness.org 70 i 12434

A long time ago— like 15 years ago— I worked at Sun Microsystems. The company was nearly dead at the time (it died a couple years later) because they didn't make anything that anyone wanted to buy anymore. So they had a lot of strange ideas about how they'd make their comeback.

Err codemadness.org 70 i 12435
Err codemadness.org 70 i 12436 Err codemadness.org 70 i 12437
Err codemadness.org 70 i 12438 Err codemadness.org 70 i 12439

GEOM NOP

Err codemadness.org 70 i 12440 Err codemadness.org 70 i 12441
Err codemadness.org 70 i 12442

Sometimes while testing file systems or applications you want to simulate some errors on the disk level. The first time I heard about this need was from Baptiste Daroussin during his presentation at AsiaBSDCon 2016. He mentioned how they had built a test lab with it. The same need was recently discussed during the PGCon 2019, to test a PostgreSQL instance. If you are FreeBSD user, I have great news for you: there is a GEOM provider which allows you to simulate a failing device.

Err codemadness.org 70 i 12443 Err codemadness.org 70 i 12444

GNOP allows us to configure transparent providers from existing ones. The first interesting option of it is that we can slice the device into smaller pieces, thanks to the ‘offset option’ and ‘stripsesize’. This allows us to observe how the data on the disk is changing. Let’s assume that we want to observe the changes in the GPT table when the GPT flags are added or removed (for example the bootme flags which are described here). We can use dd every time and analyze it using absolute values from the disks.

Err codemadness.org 70 i 12445
Err codemadness.org 70 i 12446 Err codemadness.org 70 i 12447
Err codemadness.org 70 i 12448 Err codemadness.org 70 i 12449

Keeping NetBSD up-to-date with pkg_comp 2.0

Err codemadness.org 70 i 12450 Err codemadness.org 70 i 12451
Err codemadness.org 70 i 12452

This is a tutorial to guide you through the shiny new pkg_comp 2.0 on NetBSD.

Err codemadness.org 70 i 12453 Err codemadness.org 70 i 12454

Goals: to use pkg_comp 2.0 to build a binary repository of all the packages you are interested in; to keep the repository fresh on a daily basis; and to use that repository with pkgin to maintain your NetBSD system up-to-date and secure.

Err codemadness.org 70 i 12455 Err codemadness.org 70 i 12456

This tutorial is specifically targeted at NetBSD but should work on other platforms with some small changes. Expect, at the very least, a macOS-specific tutorial as soon as I create a pkg_comp standalone installer for that platform.

Err codemadness.org 70 i 12457
Err codemadness.org 70 i 12458 Err codemadness.org 70 i 12459
Err codemadness.org 70 i 12460 Err codemadness.org 70 i 12461

Beastie Bits

Err codemadness.org 70 i 12462 Err codemadness.org 70 i 12463 Err codemadness.org 70 i 12470 Err codemadness.org 70 i 12471
Err codemadness.org 70 i 12472 Err codemadness.org 70 i 12473

Feedback/Questions

Err codemadness.org 70 i 12474 Err codemadness.org 70 i 12475 Err codemadness.org 70 i 12484 Err codemadness.org 70 i 12485
Err codemadness.org 70 i 12486 Err codemadness.org 70 i 12487
    Err codemadness.org 70 i 12488
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 12489
Err codemadness.org 70 i 12490 Err codemadness.org 70 i 12491
Err codemadness.org 70 i 12492 Err codemadness.org 70 i 12493 ]]> Err codemadness.org 70 i 12497
Err codemadness.org 70 i 12498 Err codemadness.org 70 i 12499 We read FreeBSD’s third quarterly status report, OpenBSD on Sparc64, ZoL repo move to OpenZFS, GEOM NOP, keeping NetBSD up-to-date, and more.

Err codemadness.org 70 i 12500 Err codemadness.org 70 i 12501

Headlines

Err codemadness.org 70 i 12502 Err codemadness.org 70 i 12503

FreeBSD third quarterly status report for 2019

Err codemadness.org 70 i 12504 Err codemadness.org 70 i 12505
Err codemadness.org 70 i 12506

This quarter the reports team has been more active than usual thanks to a better organization: calls for reports and reminders have been sent regularly, reports have been reviewed and merged quickly (I would like to thank debdrup@ in particular for his reviewing work).

Err codemadness.org 70 i 12507 Err codemadness.org 70 i 12508

Efficiency could still be improved with the help of our community. In particular, the quarterly team has found that many reports have arrived in the last days before the deadline or even after. I would like to invite the community to follow the guidelines below that can help us sending out the reports sooner.

Err codemadness.org 70 i 12509 Err codemadness.org 70 i 12510

Starting from next quarter, all quarterly status reports will be prepared the last month of the quarter itself, instead of the first month after the quarter's end. This means that deadlines for submitting reports will be the 1st of January, April, July and October.

Err codemadness.org 70 i 12511 Err codemadness.org 70 i 12512

Next quarter will then be a short one, covering the months of November and December only and the report will probably be out in mid January.

Err codemadness.org 70 i 12513
Err codemadness.org 70 i 12514 Err codemadness.org 70 i 12515
Err codemadness.org 70 i 12516 Err codemadness.org 70 i 12517

OpenBSD on Sparc64

Err codemadness.org 70 i 12518 Err codemadness.org 70 i 12519
Err codemadness.org 70 i 12520

OpenBSD, huh? Yes, I usually write about FreeBSD and that’s in fact what I tried installing on the machine first. But I ran into problems with it very early on (never even reached single user mode) and put it aside for later. Since I powered up the SunFire again last month, I needed an OS now and chose OpenBSD for the simple reason that I have it available.

Err codemadness.org 70 i 12521 Err codemadness.org 70 i 12522

First I wanted to call this article simply “OpenBSD on SPARC” – but that would have been misleading since OpenBSD used to support 32-bit SPARC processors, too. The platform was just put to rest after the 5.9 release.

Err codemadness.org 70 i 12523 Err codemadness.org 70 i 12524

Version 6.0 was the last release of OpenBSD that came on CD-ROM. When I bought it, I thought that I’d never use the SPARC CD. But here was the chance! While it is an obsolete release, it comes with the cryptographic signatures to verify the next release. So the plan is to start at 6.0 as I can trust the original CDs and then update to the latest release. This will also be an opportunity to recap on some of the things that changed over the various versions.

Err codemadness.org 70 i 12525
Err codemadness.org 70 i 12526 Err codemadness.org 70 i 12527
Err codemadness.org 70 i 12528 Err codemadness.org 70 i 12529

News Roundup

Err codemadness.org 70 i 12530 Err codemadness.org 70 i 12531

ZoL repo move to OpenZFS

Err codemadness.org 70 i 12532 Err codemadness.org 70 i 12533
Err codemadness.org 70 i 12534

Because it will contain the ZFS source code for both Linux and FreeBSD, we will rename the "ZFSonLinux" code repository to "OpenZFS". Specifically, the repo at http://github.com/ZFSonLinux/zfs will be moved to the OpenZFS organization, at http://github.com/OpenZFS/zfs.

Err codemadness.org 70 i 12535 Err codemadness.org 70 i 12536

The next major release of ZFS for Linux and FreeBSD will be "OpenZFS 2.0", and is expected to ship in 2020.

Err codemadness.org 70 i 12537
Err codemadness.org 70 i 12538 Err codemadness.org 70 i 12539
Err codemadness.org 70 i 12540 Err codemadness.org 70 i 12541

Mcclure111 Sun Thread

Err codemadness.org 70 i 12542 Err codemadness.org 70 i 12543
Err codemadness.org 70 i 12544

A long time ago— like 15 years ago— I worked at Sun Microsystems. The company was nearly dead at the time (it died a couple years later) because they didn't make anything that anyone wanted to buy anymore. So they had a lot of strange ideas about how they'd make their comeback.

Err codemadness.org 70 i 12545
Err codemadness.org 70 i 12546 Err codemadness.org 70 i 12547
Err codemadness.org 70 i 12548 Err codemadness.org 70 i 12549

GEOM NOP

Err codemadness.org 70 i 12550 Err codemadness.org 70 i 12551
Err codemadness.org 70 i 12552

Sometimes while testing file systems or applications you want to simulate some errors on the disk level. The first time I heard about this need was from Baptiste Daroussin during his presentation at AsiaBSDCon 2016. He mentioned how they had built a test lab with it. The same need was recently discussed during the PGCon 2019, to test a PostgreSQL instance. If you are FreeBSD user, I have great news for you: there is a GEOM provider which allows you to simulate a failing device.

Err codemadness.org 70 i 12553 Err codemadness.org 70 i 12554

GNOP allows us to configure transparent providers from existing ones. The first interesting option of it is that we can slice the device into smaller pieces, thanks to the ‘offset option’ and ‘stripsesize’. This allows us to observe how the data on the disk is changing. Let’s assume that we want to observe the changes in the GPT table when the GPT flags are added or removed (for example the bootme flags which are described here). We can use dd every time and analyze it using absolute values from the disks.

Err codemadness.org 70 i 12555
Err codemadness.org 70 i 12556 Err codemadness.org 70 i 12557
Err codemadness.org 70 i 12558 Err codemadness.org 70 i 12559

Keeping NetBSD up-to-date with pkg_comp 2.0

Err codemadness.org 70 i 12560 Err codemadness.org 70 i 12561
Err codemadness.org 70 i 12562

This is a tutorial to guide you through the shiny new pkg_comp 2.0 on NetBSD.

Err codemadness.org 70 i 12563 Err codemadness.org 70 i 12564

Goals: to use pkg_comp 2.0 to build a binary repository of all the packages you are interested in; to keep the repository fresh on a daily basis; and to use that repository with pkgin to maintain your NetBSD system up-to-date and secure.

Err codemadness.org 70 i 12565 Err codemadness.org 70 i 12566

This tutorial is specifically targeted at NetBSD but should work on other platforms with some small changes. Expect, at the very least, a macOS-specific tutorial as soon as I create a pkg_comp standalone installer for that platform.

Err codemadness.org 70 i 12567
Err codemadness.org 70 i 12568 Err codemadness.org 70 i 12569
Err codemadness.org 70 i 12570 Err codemadness.org 70 i 12571

Beastie Bits

Err codemadness.org 70 i 12572 Err codemadness.org 70 i 12573 Err codemadness.org 70 i 12580 Err codemadness.org 70 i 12581
Err codemadness.org 70 i 12582 Err codemadness.org 70 i 12583

Feedback/Questions

Err codemadness.org 70 i 12584 Err codemadness.org 70 i 12585 Err codemadness.org 70 i 12594 Err codemadness.org 70 i 12595
Err codemadness.org 70 i 12596 Err codemadness.org 70 i 12597
    Err codemadness.org 70 i 12598
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 12599
Err codemadness.org 70 i 12600 Err codemadness.org 70 i 12601
Err codemadness.org 70 i 12602 Err codemadness.org 70 i 12603 ]]> Err codemadness.org 70 i 12607
Err codemadness.org 70 i 12608 https://fireside.fm/player/v2/FYhhasNR+nLDPUCha Err codemadness.org 70 i 12609 Err codemadness.org 70 i 12610 ]]> Err codemadness.org 70 i 12611 Err codemadness.org 70 i 12612
Err codemadness.org 70 i 12613 Err codemadness.org 70 i 12614 326: Certified BSD Err codemadness.org 70 i 12615 https://www.bsdnow.tv/326 Err codemadness.org 70 i 12616 4d6f5084-1255-44ce-a255-5f969e18e44d Err codemadness.org 70 i 12617 Thu, 28 Nov 2019 04:00:00 -0800 Err codemadness.org 70 i 12618 Allan Jude Err codemadness.org 70 i 12619 Err codemadness.org 70 i 12620 full Err codemadness.org 70 i 12621 Allan Jude Err codemadness.org 70 i 12622 LPI releases BSD Certification, openzfs trip report, Using FreeBSD with ports, LLDB threading support ready, Linux versus Open Source Unix, and more. Err codemadness.org 70 i 12623 1:00:06 Err codemadness.org 70 i 12624 no Err codemadness.org 70 i 12625 Err codemadness.org 70 i 12626 LPI releases BSD Certification, openzfs trip report, Using FreeBSD with ports, LLDB threading support ready, Linux versus Open Source Unix, and more. Err codemadness.org 70 i 12627 Headlines Err codemadness.org 70 i 12628 Linux Professional Institute Releases BSD Specialist Certification - re BSD Certification Group (https://www.lpi.org/articles/linux-professional-institute-releases-bsd-specialist-certification) Err codemadness.org 70 i 12629 Linux Professional Institute extends its Open Technology certification track with the BSD Specialist Certification. Starting October 30, 2019, BSD Specialist exams will be globally available. The certification was developed in collaboration with the BSD Certification Group which merged with Linux Professional Institute in 2018. Err codemadness.org 70 i 12630 G. Matthew Rice, the Executive Director of Linux Professional Institute says that "the release of the BSD Specialist certification marks a major milestone for Linux Professional Institute. With this new credential, we are reaffirming our belief in the value of, and support for, all open source technologies. As much as possible, future credentials and educational programs will include coverage of BSD.” Err codemadness.org 70 i 12631 OpenZFS Trip Report (https://www.ixsystems.com/blog/openzfs-dev-summit-2019/) Err codemadness.org 70 i 12632 The seventh annual OpenZFS Developer Summit took place on November 4th and 5th in San Francisco and brought together a healthy mix of familiar faces and new community participants. Several folks from iXsystems took part in the talks, hacking, and socializing at this amazing annual event. The messages of the event can be summed up as Unification, Refinement, and Ecosystem Tooling. Err codemadness.org 70 i 12633 News Roundup Err codemadness.org 70 i 12634 Using FreeBSD with Ports (2/2): Tool-assisted updating (https://eerielinux.wordpress.com/2019/09/12/using-freebsd-with-ports-2-2-tool-assisted-updating/) Err codemadness.org 70 i 12635 Part 1 here: https://eerielinux.wordpress.com/2019/08/18/using-freebsd-with-ports-1-2-classic-way-with-tools/ Err codemadness.org 70 i 12636 In the previous post I explained why sometimes building your software from ports may make sense on FreeBSD. I also introduced the reader to the old-fashioned way of using tools to make working with ports a bit more convenient. Err codemadness.org 70 i 12637 In this follow-up post we’re going to take a closer look at portmaster and see how it especially makes updating from ports much, much easier. For people coming here without having read the previous article: What I describe here is not what every FreeBSD admin today should consider good practice (any more)! It can still be useful in special cases, but my main intention is to discuss this for building up the foundation for what you actually should do today. Err codemadness.org 70 i 12638 LLDB Threading support now ready for mainline (http://blog.netbsd.org/tnf/entry/lldb_threading_support_now_ready) Err codemadness.org 70 i 12639 Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages. Err codemadness.org 70 i 12640 In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues and fixing watchpoint support. Then, I've started working on improving thread support which is taking longer than expected. You can read more about that in my September 2019 report. Err codemadness.org 70 i 12641 So far the number of issues uncovered while enabling proper threading support has stopped me from merging the work-in-progress patches. However, I've finally reached the point where I believe that the current work can be merged and the remaining problems can be resolved afterwards. More on that and other LLVM-related events happening during the last month in this report. Err codemadness.org 70 i 12642 Linux VS open source UNIX (https://www.adminbyaccident.com/politics/linux-vs-open-source-unix/) Err codemadness.org 70 i 12643 Beastie Bits Err codemadness.org 70 i 12644 Support for Realtek RTL8125 2.5Gb Ethernet controller (https://marc.info/?l=openbsd-tech&m=157380442230074&w=2) Err codemadness.org 70 i 12645 Computer Files Are Going Extinct (https://onezero.medium.com/the-death-of-the-computer-file-doc-43cb028c0506) Err codemadness.org 70 i 12646 FreeBSD kernel hacking (https://www.youtube.com/watch?v=4FUub_UtF3c) Err codemadness.org 70 i 12647 Modern BSD Computing for Fun on a VAX! Trying to use a VAX in today's world by Jeff Armstrong (https://youtu.be/e7cJ7v2lYdE) Err codemadness.org 70 i 12648 MidnightBSD 1.2 Released (https://www.justjournal.com/users/mbsd/entry/33779) Err codemadness.org 70 i 12649 Feedback/Questions Err codemadness.org 70 i 12650 Paulo - Zfs snapshots (http://dpaste.com/0WQRP43#wrap) Err codemadness.org 70 i 12651 Phillip - GCP (http://dpaste.com/075ZQE1#wrap) Err codemadness.org 70 i 12652 A Listener - Old episodes? (http://dpaste.com/3YJ4119#wrap) Err codemadness.org 70 i 12653 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 12654 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 12655 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0326.mp4" type="video/mp4"> Err codemadness.org 70 i 12656 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 12657 </video> Err codemadness.org 70 i 12658 Err codemadness.org 70 i 12659 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, certification, openzfs, trip report, ports, llvm, lldb, threading, open source, open source unix, Err codemadness.org 70 i 12660 Err codemadness.org 70 i 12661 LPI releases BSD Certification, openzfs trip report, Using FreeBSD with ports, LLDB threading support ready, Linux versus Open Source Unix, and more.

Err codemadness.org 70 i 12662 Err codemadness.org 70 i 12663

Headlines

Err codemadness.org 70 i 12664 Err codemadness.org 70 i 12665

Linux Professional Institute Releases BSD Specialist Certification - re BSD Certification Group

Err codemadness.org 70 i 12666 Err codemadness.org 70 i 12667
Err codemadness.org 70 i 12668

Linux Professional Institute extends its Open Technology certification track with the BSD Specialist Certification. Starting October 30, 2019, BSD Specialist exams will be globally available. The certification was developed in collaboration with the BSD Certification Group which merged with Linux Professional Institute in 2018.

Err codemadness.org 70 i 12669 Err codemadness.org 70 i 12670

G. Matthew Rice, the Executive Director of Linux Professional Institute says that "the release of the BSD Specialist certification marks a major milestone for Linux Professional Institute. With this new credential, we are reaffirming our belief in the value of, and support for, all open source technologies. As much as possible, future credentials and educational programs will include coverage of BSD.”

Err codemadness.org 70 i 12671
Err codemadness.org 70 i 12672 Err codemadness.org 70 i 12673
Err codemadness.org 70 i 12674 Err codemadness.org 70 i 12675

OpenZFS Trip Report

Err codemadness.org 70 i 12676 Err codemadness.org 70 i 12677
Err codemadness.org 70 i 12678

The seventh annual OpenZFS Developer Summit took place on November 4th and 5th in San Francisco and brought together a healthy mix of familiar faces and new community participants. Several folks from iXsystems took part in the talks, hacking, and socializing at this amazing annual event. The messages of the event can be summed up as Unification, Refinement, and Ecosystem Tooling.

Err codemadness.org 70 i 12679
Err codemadness.org 70 i 12680 Err codemadness.org 70 i 12681
Err codemadness.org 70 i 12682 Err codemadness.org 70 i 12683

News Roundup

Err codemadness.org 70 i 12684 Err codemadness.org 70 i 12685

Using FreeBSD with Ports (2/2): Tool-assisted updating

Err codemadness.org 70 i 12686 Err codemadness.org 70 i 12687 Err codemadness.org 70 i 12690 Err codemadness.org 70 i 12691
Err codemadness.org 70 i 12692

In the previous post I explained why sometimes building your software from ports may make sense on FreeBSD. I also introduced the reader to the old-fashioned way of using tools to make working with ports a bit more convenient.

Err codemadness.org 70 i 12693 Err codemadness.org 70 i 12694

In this follow-up post we’re going to take a closer look at portmaster and see how it especially makes updating from ports much, much easier. For people coming here without having read the previous article: What I describe here is not what every FreeBSD admin today should consider good practice (any more)! It can still be useful in special cases, but my main intention is to discuss this for building up the foundation for what you actually should do today.

Err codemadness.org 70 i 12695
Err codemadness.org 70 i 12696 Err codemadness.org 70 i 12697
Err codemadness.org 70 i 12698 Err codemadness.org 70 i 12699

LLDB Threading support now ready for mainline

Err codemadness.org 70 i 12700 Err codemadness.org 70 i 12701
Err codemadness.org 70 i 12702

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.

Err codemadness.org 70 i 12703 Err codemadness.org 70 i 12704

In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues and fixing watchpoint support. Then, I've started working on improving thread support which is taking longer than expected. You can read more about that in my September 2019 report.

Err codemadness.org 70 i 12705 Err codemadness.org 70 i 12706

So far the number of issues uncovered while enabling proper threading support has stopped me from merging the work-in-progress patches. However, I've finally reached the point where I believe that the current work can be merged and the remaining problems can be resolved afterwards. More on that and other LLVM-related events happening during the last month in this report.

Err codemadness.org 70 i 12707
Err codemadness.org 70 i 12708 Err codemadness.org 70 i 12709
Err codemadness.org 70 i 12710 Err codemadness.org 70 i 12711

Linux VS open source UNIX

Err codemadness.org 70 i 12712 Err codemadness.org 70 i 12713
Err codemadness.org 70 i 12714 Err codemadness.org 70 i 12715

Beastie Bits

Err codemadness.org 70 i 12716 Err codemadness.org 70 i 12717 Err codemadness.org 70 i 12724 Err codemadness.org 70 i 12725
Err codemadness.org 70 i 12726 Err codemadness.org 70 i 12727

Feedback/Questions

Err codemadness.org 70 i 12728 Err codemadness.org 70 i 12729
    Err codemadness.org 70 i 12730
  • Paulo - Zfs snapshots
  • Err codemadness.org 70 i 12731
  • Phillip - GCP
  • Err codemadness.org 70 i 12732
  • A Listener - Old episodes?
  • Err codemadness.org 70 i 12733
Err codemadness.org 70 i 12734 Err codemadness.org 70 i 12735
Err codemadness.org 70 i 12736 Err codemadness.org 70 i 12737
    Err codemadness.org 70 i 12738
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 12739
Err codemadness.org 70 i 12740 Err codemadness.org 70 i 12741
Err codemadness.org 70 i 12742 Err codemadness.org 70 i 12743 ]]> Err codemadness.org 70 i 12747
Err codemadness.org 70 i 12748 Err codemadness.org 70 i 12749 LPI releases BSD Certification, openzfs trip report, Using FreeBSD with ports, LLDB threading support ready, Linux versus Open Source Unix, and more.

Err codemadness.org 70 i 12750 Err codemadness.org 70 i 12751

Headlines

Err codemadness.org 70 i 12752 Err codemadness.org 70 i 12753

Linux Professional Institute Releases BSD Specialist Certification - re BSD Certification Group

Err codemadness.org 70 i 12754 Err codemadness.org 70 i 12755
Err codemadness.org 70 i 12756

Linux Professional Institute extends its Open Technology certification track with the BSD Specialist Certification. Starting October 30, 2019, BSD Specialist exams will be globally available. The certification was developed in collaboration with the BSD Certification Group which merged with Linux Professional Institute in 2018.

Err codemadness.org 70 i 12757 Err codemadness.org 70 i 12758

G. Matthew Rice, the Executive Director of Linux Professional Institute says that "the release of the BSD Specialist certification marks a major milestone for Linux Professional Institute. With this new credential, we are reaffirming our belief in the value of, and support for, all open source technologies. As much as possible, future credentials and educational programs will include coverage of BSD.”

Err codemadness.org 70 i 12759
Err codemadness.org 70 i 12760 Err codemadness.org 70 i 12761
Err codemadness.org 70 i 12762 Err codemadness.org 70 i 12763

OpenZFS Trip Report

Err codemadness.org 70 i 12764 Err codemadness.org 70 i 12765
Err codemadness.org 70 i 12766

The seventh annual OpenZFS Developer Summit took place on November 4th and 5th in San Francisco and brought together a healthy mix of familiar faces and new community participants. Several folks from iXsystems took part in the talks, hacking, and socializing at this amazing annual event. The messages of the event can be summed up as Unification, Refinement, and Ecosystem Tooling.

Err codemadness.org 70 i 12767
Err codemadness.org 70 i 12768 Err codemadness.org 70 i 12769
Err codemadness.org 70 i 12770 Err codemadness.org 70 i 12771

News Roundup

Err codemadness.org 70 i 12772 Err codemadness.org 70 i 12773

Using FreeBSD with Ports (2/2): Tool-assisted updating

Err codemadness.org 70 i 12774 Err codemadness.org 70 i 12775 Err codemadness.org 70 i 12778 Err codemadness.org 70 i 12779
Err codemadness.org 70 i 12780

In the previous post I explained why sometimes building your software from ports may make sense on FreeBSD. I also introduced the reader to the old-fashioned way of using tools to make working with ports a bit more convenient.

Err codemadness.org 70 i 12781 Err codemadness.org 70 i 12782

In this follow-up post we’re going to take a closer look at portmaster and see how it especially makes updating from ports much, much easier. For people coming here without having read the previous article: What I describe here is not what every FreeBSD admin today should consider good practice (any more)! It can still be useful in special cases, but my main intention is to discuss this for building up the foundation for what you actually should do today.

Err codemadness.org 70 i 12783
Err codemadness.org 70 i 12784 Err codemadness.org 70 i 12785
Err codemadness.org 70 i 12786 Err codemadness.org 70 i 12787

LLDB Threading support now ready for mainline

Err codemadness.org 70 i 12788 Err codemadness.org 70 i 12789
Err codemadness.org 70 i 12790

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.

Err codemadness.org 70 i 12791 Err codemadness.org 70 i 12792

In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support, extending NetBSD's ptrace interface to cover more register types and fix compat32 issues and fixing watchpoint support. Then, I've started working on improving thread support which is taking longer than expected. You can read more about that in my September 2019 report.

Err codemadness.org 70 i 12793 Err codemadness.org 70 i 12794

So far the number of issues uncovered while enabling proper threading support has stopped me from merging the work-in-progress patches. However, I've finally reached the point where I believe that the current work can be merged and the remaining problems can be resolved afterwards. More on that and other LLVM-related events happening during the last month in this report.

Err codemadness.org 70 i 12795
Err codemadness.org 70 i 12796 Err codemadness.org 70 i 12797
Err codemadness.org 70 i 12798 Err codemadness.org 70 i 12799

Linux VS open source UNIX

Err codemadness.org 70 i 12800 Err codemadness.org 70 i 12801
Err codemadness.org 70 i 12802 Err codemadness.org 70 i 12803

Beastie Bits

Err codemadness.org 70 i 12804 Err codemadness.org 70 i 12805 Err codemadness.org 70 i 12812 Err codemadness.org 70 i 12813
Err codemadness.org 70 i 12814 Err codemadness.org 70 i 12815

Feedback/Questions

Err codemadness.org 70 i 12816 Err codemadness.org 70 i 12817
    Err codemadness.org 70 i 12818
  • Paulo - Zfs snapshots
  • Err codemadness.org 70 i 12819
  • Phillip - GCP
  • Err codemadness.org 70 i 12820
  • A Listener - Old episodes?
  • Err codemadness.org 70 i 12821
Err codemadness.org 70 i 12822 Err codemadness.org 70 i 12823
Err codemadness.org 70 i 12824 Err codemadness.org 70 i 12825
    Err codemadness.org 70 i 12826
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 12827
Err codemadness.org 70 i 12828 Err codemadness.org 70 i 12829
Err codemadness.org 70 i 12830 Err codemadness.org 70 i 12831 ]]> Err codemadness.org 70 i 12835
Err codemadness.org 70 i 12836 https://fireside.fm/player/v2/FYhhasNR+yrVA-WLO Err codemadness.org 70 i 12837 Err codemadness.org 70 i 12838 ]]> Err codemadness.org 70 i 12839 Err codemadness.org 70 i 12840
Err codemadness.org 70 i 12841 Err codemadness.org 70 i 12842 325: Cracking Rainbows Err codemadness.org 70 i 12843 https://www.bsdnow.tv/325 Err codemadness.org 70 i 12844 a971b40e-d33a-44ac-9cf8-dfaf7e4aaff7 Err codemadness.org 70 i 12845 Thu, 21 Nov 2019 04:00:00 -0800 Err codemadness.org 70 i 12846 Allan Jude Err codemadness.org 70 i 12847 Err codemadness.org 70 i 12848 full Err codemadness.org 70 i 12849 Allan Jude Err codemadness.org 70 i 12850 FreeBSD 12.1 is here, A history of Unix before Berkeley, FreeBSD development setup, HardenedBSD 2019 Status Report, DNSSEC, compiling RainbowCrack on OpenBSD, and more. Err codemadness.org 70 i 12851 57:40 Err codemadness.org 70 i 12852 no Err codemadness.org 70 i 12853 Err codemadness.org 70 i 12854 FreeBSD 12.1 is here, A history of Unix before Berkeley, FreeBSD development setup, HardenedBSD 2019 Status Report, DNSSEC, compiling RainbowCrack on OpenBSD, and more. Err codemadness.org 70 i 12855 Headlines Err codemadness.org 70 i 12856 FreeBSD 12.1 (https://www.freebsd.org/releases/12.1R/announce.html) Err codemadness.org 70 i 12857 Some of the highlights: Err codemadness.org 70 i 12858 BearSSL has been imported to the base system. Err codemadness.org 70 i 12859 The clang, llvm, lld, lldb, compiler-rt utilities and libc++ have been updated to version 8.0.1. Err codemadness.org 70 i 12860 OpenSSL has been updated to version 1.1.1d. Err codemadness.org 70 i 12861 Several userland utility updates. Err codemadness.org 70 i 12862 For a complete list of new features and known problems, please see the online release notes and errata list, available at: https://www.FreeBSD.org/releases/12.1R/relnotes.html Err codemadness.org 70 i 12863 A History of UNIX before Berkeley: UNIX Evolution: 1975-1984. (http://www.darwinsys.com/history/hist.html) Err codemadness.org 70 i 12864 Nobody needs to be told that UNIX is popular today. In this article we will show you a little of where it was yesterday and over the past decade. And, without meaning in the least to minimise the incredible contributions of Ken Thompson and Dennis Ritchie, we will bring to light many of the others who worked on early versions, and try to show where some of the key ideas came from, and how they got into the UNIX of today. Err codemadness.org 70 i 12865 Our title says we are talking about UNIX evolution. Evolution means different things to different people. We use the term loosely, to describe the change over time among the many different UNIX variants in use both inside and outside Bell Labs. Ideas, code, and useful programs seem to have made their way back and forth - like mutant genes - among all the many UNIXes living in the phone company over the decade in question. Err codemadness.org 70 i 12866 Part One looks at some of the major components of the current UNIX system - the text formatting tools, the compilers and program development tools, and so on. Most of the work described in Part One took place at Research'', a part of Bell Laboratories (now AT&T Bell Laboratories, then as nowthe Labs''), and the ancestral home of UNIX. In planned (but not written) later parts, we would have looked at some of the myriad versions of UNIX - there are far more than one might suspect. This includes a look at Columbus and USG and at Berkeley Unix. You'll begin to get a glimpse inside the history of the major streams of development of the system during that time. Err codemadness.org 70 i 12867 News Roundup Err codemadness.org 70 i 12868 My FreeBSD Development Setup (https://adventurist.me/posts/00296) Err codemadness.org 70 i 12869 I do my FreeBSD development using git, tmux, vim and cscope. Err codemadness.org 70 i 12870 I keep a FreeBSD fork on my github, I have forked https://github.com/freebsd/freebsd to https://github.com/adventureloop/freebsd Err codemadness.org 70 i 12871 OPNsense 19.7.6 released (https://opnsense.org/opnsense-19-7-6-released/) Err codemadness.org 70 i 12872 As we are experiencing the Suricata community first hand in Amsterdam we thought to release this version a bit earlier than planned. Included is the latest Suricata 5.0.0 release in the development version. That means later this November we will releasing version 5 to the production version as we finish up tweaking the integration and maybe pick up 5.0.1 as it becomes available. Err codemadness.org 70 i 12873 LDAP TLS connectivity is now integrated into the system trust store, which ensures that all required root and intermediate certificates will be seen by the connection setup when they have been added to the authorities section. The same is true for trusting self-signed certificates. On top of this, IPsec now supports public key authentication as contributed by Pascal Mathis. Err codemadness.org 70 i 12874 HardenedBSD November 2019 Status Report. (https://hardenedbsd.org/article/shawn-webb/2019-11-09/hardenedbsd-status-report) Err codemadness.org 70 i 12875 We at HardenedBSD have a lot of news to share. On 05 Nov 2019, Oliver Pinter resigned amicably from the project. All of us at HardenedBSD owe Oliver our gratitude and appreciation. This humble project, named by Oliver, was born out of his thesis work and the collaboration with Shawn Webb. Oliver created the HardenedBSD repo on GitHub in April 2013. The HardenedBSD Foundation was formed five years later to carry on this great work. Err codemadness.org 70 i 12876 DNSSEC enabled in default unbound(8) configuration. (https://undeadly.org/cgi?action=article;sid=20191110123908) Err codemadness.org 70 i 12877 DNSSEC validation has been enabled in the default unbound.conf(5) in -current. The relevant commits were from Job Snijders (job@) Err codemadness.org 70 i 12878 How to Install Shopware with NGINX and Let's Encrypt on FreeBSD 12 (https://www.howtoforge.com/how-to-install-shopware-with-nginx-and-lets-encrypt-on-freebsd-12/) Err codemadness.org 70 i 12879 Shopware is the next generation of open source e-commerce software. Based on bleeding edge technologies like Symfony 3, Doctrine2 and Zend Framework Shopware comes as the perfect platform for your next e-commerce project. This tutorial will walk you through the Shopware Community Edition (CE) installation on FreeBSD 12 system by using NGINX as a web server. Err codemadness.org 70 i 12880 Requirements Err codemadness.org 70 i 12881 Make sure your system meets the following minimum requirements: Err codemadness.org 70 i 12882 + Linux-based operating system with NGINX or Apache 2.x (with mod_rewrite) web server installed. Err codemadness.org 70 i 12883 + PHP 5.6.4 or higher with ctype, gd, curl, dom, hash, iconv, zip, json, mbstring, openssl, session, simplexml, xml, zlib, fileinfo, and pdo/mysql extensions. PHP 7.1 or above is strongly recommended. Err codemadness.org 70 i 12884 + MySQL 5.5.0 or higher. Err codemadness.org 70 i 12885 + Possibility to set up cron jobs. Err codemadness.org 70 i 12886 + Minimum 4 GB available hard disk space. Err codemadness.org 70 i 12887 + IonCube Loader version 5.0.0 or higher (optional). Err codemadness.org 70 i 12888 How to Compile RainbowCrack on OpenBSD (https://cromwell-intl.com/open-source/compiling-rainbowcrack-on-openbsd.html) Err codemadness.org 70 i 12889 Project RainbowCrack was originally Zhu Shuanglei's implementation, it's not clear to me if the project is still just his or if it's even been maintained for a while. His page seems to have been last updated in August 2007. Err codemadness.org 70 i 12890 The Project RainbowCrack web page now has just binaries for Windows XP and Linux, both 32-bit and 64-bit versions. Err codemadness.org 70 i 12891 Earlier versions were available as source code. The version 1.2 source code does not compile on OpenBSD, and in my experience it doesn't compile on Linux, either. It seems to date from 2004 at the earliest, and I think it makes some version-2.4 assumptions about Linux kernel headers. Err codemadness.org 70 i 12892 You might also look at ophcrack, a more modern tool, although it seems to be focused on cracking Windows XP/Vista/7/8/10 password hashes Err codemadness.org 70 i 12893 Feedback/Questions Err codemadness.org 70 i 12894 Reese - Amature radio info (http://dpaste.com/2RDG9K4#wrap) Err codemadness.org 70 i 12895 Chris - VPN (http://dpaste.com/2K4T2FQ#wrap) Err codemadness.org 70 i 12896 Malcolm - NAT (http://dpaste.com/138NEMA) Err codemadness.org 70 i 12897 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 12898 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 12899 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0325.mp4" type="video/mp4"> Err codemadness.org 70 i 12900 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 12901 </video> Err codemadness.org 70 i 12902 Err codemadness.org 70 i 12903 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, 12.1, Unix, history, berkeley, OPNsense, development, setup, dev, devel, status report, dnssec, unbound, shopware, let’s encrypt, nginx, rainbowcrack, compiling Err codemadness.org 70 i 12904 Err codemadness.org 70 i 12905 FreeBSD 12.1 is here, A history of Unix before Berkeley, FreeBSD development setup, HardenedBSD 2019 Status Report, DNSSEC, compiling RainbowCrack on OpenBSD, and more.

Err codemadness.org 70 i 12906 Err codemadness.org 70 i 12907

Headlines

Err codemadness.org 70 i 12908 Err codemadness.org 70 i 12909

FreeBSD 12.1

Err codemadness.org 70 i 12910 Err codemadness.org 70 i 12911
    Err codemadness.org 70 i 12912
  • Some of the highlights:

    Err codemadness.org 70 i 12913 Err codemadness.org 70 i 12914
      Err codemadness.org 70 i 12915
    • BearSSL has been imported to the base system.
    • Err codemadness.org 70 i 12916
    • The clang, llvm, lld, lldb, compiler-rt utilities and libc++ have been updated to version 8.0.1.
    • Err codemadness.org 70 i 12917
    • OpenSSL has been updated to version 1.1.1d.
    • Err codemadness.org 70 i 12918
    • Several userland utility updates.
    • Err codemadness.org 70 i 12919
  • Err codemadness.org 70 i 12920
  • For a complete list of new features and known problems, please see the online release notes and errata list, available at: https://www.FreeBSD.org/releases/12.1R/relnotes.html

  • Err codemadness.org 70 i 12921
Err codemadness.org 70 i 12922 Err codemadness.org 70 i 12923
Err codemadness.org 70 i 12924 Err codemadness.org 70 i 12925

A History of UNIX before Berkeley: UNIX Evolution: 1975-1984.

Err codemadness.org 70 i 12926 Err codemadness.org 70 i 12927
Err codemadness.org 70 i 12928

Nobody needs to be told that UNIX is popular today. In this article we will show you a little of where it was yesterday and over the past decade. And, without meaning in the least to minimise the incredible contributions of Ken Thompson and Dennis Ritchie, we will bring to light many of the others who worked on early versions, and try to show where some of the key ideas came from, and how they got into the UNIX of today.

Err codemadness.org 70 i 12929 Err codemadness.org 70 i 12930

Our title says we are talking about UNIX evolution. Evolution means different things to different people. We use the term loosely, to describe the change over time among the many different UNIX variants in use both inside and outside Bell Labs. Ideas, code, and useful programs seem to have made their way back and forth - like mutant genes - among all the many UNIXes living in the phone company over the decade in question.

Err codemadness.org 70 i 12931 Err codemadness.org 70 i 12932

Part One looks at some of the major components of the current UNIX system - the text formatting tools, the compilers and program development tools, and so on. Most of the work described in Part One took place at Research'', a part of Bell Laboratories (now AT&T Bell Laboratories, then as nowthe Labs''), and the ancestral home of UNIX. In planned (but not written) later parts, we would have looked at some of the myriad versions of UNIX - there are far more than one might suspect. This includes a look at Columbus and USG and at Berkeley Unix. You'll begin to get a glimpse inside the history of the major streams of development of the system during that time.

Err codemadness.org 70 i 12933
Err codemadness.org 70 i 12934 Err codemadness.org 70 i 12935
Err codemadness.org 70 i 12936 Err codemadness.org 70 i 12937

News Roundup

Err codemadness.org 70 i 12938 Err codemadness.org 70 i 12939

My FreeBSD Development Setup

Err codemadness.org 70 i 12940 Err codemadness.org 70 i 12941
Err codemadness.org 70 i 12942

I do my FreeBSD development using git, tmux, vim and cscope.

Err codemadness.org 70 i 12943 Err codemadness.org 70 i 12944

I keep a FreeBSD fork on my github, I have forked https://github.com/freebsd/freebsd to https://github.com/adventureloop/freebsd

Err codemadness.org 70 i 12945
Err codemadness.org 70 i 12946 Err codemadness.org 70 i 12947
Err codemadness.org 70 i 12948 Err codemadness.org 70 i 12949

OPNsense 19.7.6 released

Err codemadness.org 70 i 12950 Err codemadness.org 70 i 12951
Err codemadness.org 70 i 12952

As we are experiencing the Suricata community first hand in Amsterdam we thought to release this version a bit earlier than planned. Included is the latest Suricata 5.0.0 release in the development version. That means later this November we will releasing version 5 to the production version as we finish up tweaking the integration and maybe pick up 5.0.1 as it becomes available.

Err codemadness.org 70 i 12953 Err codemadness.org 70 i 12954

LDAP TLS connectivity is now integrated into the system trust store, which ensures that all required root and intermediate certificates will be seen by the connection setup when they have been added to the authorities section. The same is true for trusting self-signed certificates. On top of this, IPsec now supports public key authentication as contributed by Pascal Mathis.

Err codemadness.org 70 i 12955
Err codemadness.org 70 i 12956 Err codemadness.org 70 i 12957
Err codemadness.org 70 i 12958 Err codemadness.org 70 i 12959

HardenedBSD November 2019 Status Report.

Err codemadness.org 70 i 12960 Err codemadness.org 70 i 12961
Err codemadness.org 70 i 12962

We at HardenedBSD have a lot of news to share. On 05 Nov 2019, Oliver Pinter resigned amicably from the project. All of us at HardenedBSD owe Oliver our gratitude and appreciation. This humble project, named by Oliver, was born out of his thesis work and the collaboration with Shawn Webb. Oliver created the HardenedBSD repo on GitHub in April 2013. The HardenedBSD Foundation was formed five years later to carry on this great work.

Err codemadness.org 70 i 12963
Err codemadness.org 70 i 12964 Err codemadness.org 70 i 12965
Err codemadness.org 70 i 12966 Err codemadness.org 70 i 12967

DNSSEC enabled in default unbound(8) configuration.

Err codemadness.org 70 i 12968 Err codemadness.org 70 i 12969
Err codemadness.org 70 i 12970

DNSSEC validation has been enabled in the default unbound.conf(5) in -current. The relevant commits were from Job Snijders (job@)

Err codemadness.org 70 i 12971
Err codemadness.org 70 i 12972 Err codemadness.org 70 i 12973
Err codemadness.org 70 i 12974 Err codemadness.org 70 i 12975

How to Install Shopware with NGINX and Let's Encrypt on FreeBSD 12

Err codemadness.org 70 i 12976 Err codemadness.org 70 i 12977
Err codemadness.org 70 i 12978

Shopware is the next generation of open source e-commerce software. Based on bleeding edge technologies like Symfony 3, Doctrine2 and Zend Framework Shopware comes as the perfect platform for your next e-commerce project. This tutorial will walk you through the Shopware Community Edition (CE) installation on FreeBSD 12 system by using NGINX as a web server.

Err codemadness.org 70 i 12979
Err codemadness.org 70 i 12980 Err codemadness.org 70 i 12981
    Err codemadness.org 70 i 12982
  • Requirements
  • Err codemadness.org 70 i 12983
Err codemadness.org 70 i 12984 Err codemadness.org 70 i 12985
Err codemadness.org 70 i 12986

Make sure your system meets the following minimum requirements:

Err codemadness.org 70 i 12987 Err codemadness.org 70 i 12988
    Err codemadness.org 70 i 12989
  • Linux-based operating system with NGINX or Apache 2.x (with mod_rewrite) web server installed.
  • Err codemadness.org 70 i 12990
  • PHP 5.6.4 or higher with ctype, gd, curl, dom, hash, iconv, zip, json, mbstring, openssl, session, simplexml, xml, zlib, fileinfo, and pdo/mysql extensions. PHP 7.1 or above is strongly recommended.
  • Err codemadness.org 70 i 12991
  • MySQL 5.5.0 or higher.
  • Err codemadness.org 70 i 12992
  • Possibility to set up cron jobs.
  • Err codemadness.org 70 i 12993
  • Minimum 4 GB available hard disk space.
  • Err codemadness.org 70 i 12994
  • IonCube Loader version 5.0.0 or higher (optional).
  • Err codemadness.org 70 i 12995
Err codemadness.org 70 i 12996
Err codemadness.org 70 i 12997 Err codemadness.org 70 i 12998
Err codemadness.org 70 i 12999 Err codemadness.org 70 i 13000

How to Compile RainbowCrack on OpenBSD

Err codemadness.org 70 i 13001 Err codemadness.org 70 i 13002
Err codemadness.org 70 i 13003

Project RainbowCrack was originally Zhu Shuanglei's implementation, it's not clear to me if the project is still just his or if it's even been maintained for a while. His page seems to have been last updated in August 2007.

Err codemadness.org 70 i 13004 Err codemadness.org 70 i 13005

The Project RainbowCrack web page now has just binaries for Windows XP and Linux, both 32-bit and 64-bit versions.

Err codemadness.org 70 i 13006 Err codemadness.org 70 i 13007

Earlier versions were available as source code. The version 1.2 source code does not compile on OpenBSD, and in my experience it doesn't compile on Linux, either. It seems to date from 2004 at the earliest, and I think it makes some version-2.4 assumptions about Linux kernel headers.

Err codemadness.org 70 i 13008
Err codemadness.org 70 i 13009 Err codemadness.org 70 i 13010
    Err codemadness.org 70 i 13011
  • You might also look at ophcrack, a more modern tool, although it seems to be focused on cracking Windows XP/Vista/7/8/10 password hashes
  • Err codemadness.org 70 i 13012
Err codemadness.org 70 i 13013 Err codemadness.org 70 i 13014
Err codemadness.org 70 i 13015 Err codemadness.org 70 i 13016

Feedback/Questions

Err codemadness.org 70 i 13017 Err codemadness.org 70 i 13018
    Err codemadness.org 70 i 13019
  • Reese - Amature radio info
  • Err codemadness.org 70 i 13020
  • Chris - VPN
  • Err codemadness.org 70 i 13021
  • Malcolm - NAT
  • Err codemadness.org 70 i 13022
Err codemadness.org 70 i 13023 Err codemadness.org 70 i 13024
Err codemadness.org 70 i 13025 Err codemadness.org 70 i 13026
    Err codemadness.org 70 i 13027
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 13028
Err codemadness.org 70 i 13029 Err codemadness.org 70 i 13030
Err codemadness.org 70 i 13031 Err codemadness.org 70 i 13032 ]]> Err codemadness.org 70 i 13036
Err codemadness.org 70 i 13037 Err codemadness.org 70 i 13038 FreeBSD 12.1 is here, A history of Unix before Berkeley, FreeBSD development setup, HardenedBSD 2019 Status Report, DNSSEC, compiling RainbowCrack on OpenBSD, and more.

Err codemadness.org 70 i 13039 Err codemadness.org 70 i 13040

Headlines

Err codemadness.org 70 i 13041 Err codemadness.org 70 i 13042

FreeBSD 12.1

Err codemadness.org 70 i 13043 Err codemadness.org 70 i 13044
    Err codemadness.org 70 i 13045
  • Some of the highlights:

    Err codemadness.org 70 i 13046 Err codemadness.org 70 i 13047
      Err codemadness.org 70 i 13048
    • BearSSL has been imported to the base system.
    • Err codemadness.org 70 i 13049
    • The clang, llvm, lld, lldb, compiler-rt utilities and libc++ have been updated to version 8.0.1.
    • Err codemadness.org 70 i 13050
    • OpenSSL has been updated to version 1.1.1d.
    • Err codemadness.org 70 i 13051
    • Several userland utility updates.
    • Err codemadness.org 70 i 13052
  • Err codemadness.org 70 i 13053
  • For a complete list of new features and known problems, please see the online release notes and errata list, available at: https://www.FreeBSD.org/releases/12.1R/relnotes.html

  • Err codemadness.org 70 i 13054
Err codemadness.org 70 i 13055 Err codemadness.org 70 i 13056
Err codemadness.org 70 i 13057 Err codemadness.org 70 i 13058

A History of UNIX before Berkeley: UNIX Evolution: 1975-1984.

Err codemadness.org 70 i 13059 Err codemadness.org 70 i 13060
Err codemadness.org 70 i 13061

Nobody needs to be told that UNIX is popular today. In this article we will show you a little of where it was yesterday and over the past decade. And, without meaning in the least to minimise the incredible contributions of Ken Thompson and Dennis Ritchie, we will bring to light many of the others who worked on early versions, and try to show where some of the key ideas came from, and how they got into the UNIX of today.

Err codemadness.org 70 i 13062 Err codemadness.org 70 i 13063

Our title says we are talking about UNIX evolution. Evolution means different things to different people. We use the term loosely, to describe the change over time among the many different UNIX variants in use both inside and outside Bell Labs. Ideas, code, and useful programs seem to have made their way back and forth - like mutant genes - among all the many UNIXes living in the phone company over the decade in question.

Err codemadness.org 70 i 13064 Err codemadness.org 70 i 13065

Part One looks at some of the major components of the current UNIX system - the text formatting tools, the compilers and program development tools, and so on. Most of the work described in Part One took place at Research'', a part of Bell Laboratories (now AT&T Bell Laboratories, then as nowthe Labs''), and the ancestral home of UNIX. In planned (but not written) later parts, we would have looked at some of the myriad versions of UNIX - there are far more than one might suspect. This includes a look at Columbus and USG and at Berkeley Unix. You'll begin to get a glimpse inside the history of the major streams of development of the system during that time.

Err codemadness.org 70 i 13066
Err codemadness.org 70 i 13067 Err codemadness.org 70 i 13068
Err codemadness.org 70 i 13069 Err codemadness.org 70 i 13070

News Roundup

Err codemadness.org 70 i 13071 Err codemadness.org 70 i 13072

My FreeBSD Development Setup

Err codemadness.org 70 i 13073 Err codemadness.org 70 i 13074
Err codemadness.org 70 i 13075

I do my FreeBSD development using git, tmux, vim and cscope.

Err codemadness.org 70 i 13076 Err codemadness.org 70 i 13077

I keep a FreeBSD fork on my github, I have forked https://github.com/freebsd/freebsd to https://github.com/adventureloop/freebsd

Err codemadness.org 70 i 13078
Err codemadness.org 70 i 13079 Err codemadness.org 70 i 13080
Err codemadness.org 70 i 13081 Err codemadness.org 70 i 13082

OPNsense 19.7.6 released

Err codemadness.org 70 i 13083 Err codemadness.org 70 i 13084
Err codemadness.org 70 i 13085

As we are experiencing the Suricata community first hand in Amsterdam we thought to release this version a bit earlier than planned. Included is the latest Suricata 5.0.0 release in the development version. That means later this November we will releasing version 5 to the production version as we finish up tweaking the integration and maybe pick up 5.0.1 as it becomes available.

Err codemadness.org 70 i 13086 Err codemadness.org 70 i 13087

LDAP TLS connectivity is now integrated into the system trust store, which ensures that all required root and intermediate certificates will be seen by the connection setup when they have been added to the authorities section. The same is true for trusting self-signed certificates. On top of this, IPsec now supports public key authentication as contributed by Pascal Mathis.

Err codemadness.org 70 i 13088
Err codemadness.org 70 i 13089 Err codemadness.org 70 i 13090
Err codemadness.org 70 i 13091 Err codemadness.org 70 i 13092

HardenedBSD November 2019 Status Report.

Err codemadness.org 70 i 13093 Err codemadness.org 70 i 13094
Err codemadness.org 70 i 13095

We at HardenedBSD have a lot of news to share. On 05 Nov 2019, Oliver Pinter resigned amicably from the project. All of us at HardenedBSD owe Oliver our gratitude and appreciation. This humble project, named by Oliver, was born out of his thesis work and the collaboration with Shawn Webb. Oliver created the HardenedBSD repo on GitHub in April 2013. The HardenedBSD Foundation was formed five years later to carry on this great work.

Err codemadness.org 70 i 13096
Err codemadness.org 70 i 13097 Err codemadness.org 70 i 13098
Err codemadness.org 70 i 13099 Err codemadness.org 70 i 13100

DNSSEC enabled in default unbound(8) configuration.

Err codemadness.org 70 i 13101 Err codemadness.org 70 i 13102
Err codemadness.org 70 i 13103

DNSSEC validation has been enabled in the default unbound.conf(5) in -current. The relevant commits were from Job Snijders (job@)

Err codemadness.org 70 i 13104
Err codemadness.org 70 i 13105 Err codemadness.org 70 i 13106
Err codemadness.org 70 i 13107 Err codemadness.org 70 i 13108

How to Install Shopware with NGINX and Let's Encrypt on FreeBSD 12

Err codemadness.org 70 i 13109 Err codemadness.org 70 i 13110
Err codemadness.org 70 i 13111

Shopware is the next generation of open source e-commerce software. Based on bleeding edge technologies like Symfony 3, Doctrine2 and Zend Framework Shopware comes as the perfect platform for your next e-commerce project. This tutorial will walk you through the Shopware Community Edition (CE) installation on FreeBSD 12 system by using NGINX as a web server.

Err codemadness.org 70 i 13112
Err codemadness.org 70 i 13113 Err codemadness.org 70 i 13114
    Err codemadness.org 70 i 13115
  • Requirements
  • Err codemadness.org 70 i 13116
Err codemadness.org 70 i 13117 Err codemadness.org 70 i 13118
Err codemadness.org 70 i 13119

Make sure your system meets the following minimum requirements:

Err codemadness.org 70 i 13120 Err codemadness.org 70 i 13121
    Err codemadness.org 70 i 13122
  • Linux-based operating system with NGINX or Apache 2.x (with mod_rewrite) web server installed.
  • Err codemadness.org 70 i 13123
  • PHP 5.6.4 or higher with ctype, gd, curl, dom, hash, iconv, zip, json, mbstring, openssl, session, simplexml, xml, zlib, fileinfo, and pdo/mysql extensions. PHP 7.1 or above is strongly recommended.
  • Err codemadness.org 70 i 13124
  • MySQL 5.5.0 or higher.
  • Err codemadness.org 70 i 13125
  • Possibility to set up cron jobs.
  • Err codemadness.org 70 i 13126
  • Minimum 4 GB available hard disk space.
  • Err codemadness.org 70 i 13127
  • IonCube Loader version 5.0.0 or higher (optional).
  • Err codemadness.org 70 i 13128
Err codemadness.org 70 i 13129
Err codemadness.org 70 i 13130 Err codemadness.org 70 i 13131
Err codemadness.org 70 i 13132 Err codemadness.org 70 i 13133

How to Compile RainbowCrack on OpenBSD

Err codemadness.org 70 i 13134 Err codemadness.org 70 i 13135
Err codemadness.org 70 i 13136

Project RainbowCrack was originally Zhu Shuanglei's implementation, it's not clear to me if the project is still just his or if it's even been maintained for a while. His page seems to have been last updated in August 2007.

Err codemadness.org 70 i 13137 Err codemadness.org 70 i 13138

The Project RainbowCrack web page now has just binaries for Windows XP and Linux, both 32-bit and 64-bit versions.

Err codemadness.org 70 i 13139 Err codemadness.org 70 i 13140

Earlier versions were available as source code. The version 1.2 source code does not compile on OpenBSD, and in my experience it doesn't compile on Linux, either. It seems to date from 2004 at the earliest, and I think it makes some version-2.4 assumptions about Linux kernel headers.

Err codemadness.org 70 i 13141
Err codemadness.org 70 i 13142 Err codemadness.org 70 i 13143
    Err codemadness.org 70 i 13144
  • You might also look at ophcrack, a more modern tool, although it seems to be focused on cracking Windows XP/Vista/7/8/10 password hashes
  • Err codemadness.org 70 i 13145
Err codemadness.org 70 i 13146 Err codemadness.org 70 i 13147
Err codemadness.org 70 i 13148 Err codemadness.org 70 i 13149

Feedback/Questions

Err codemadness.org 70 i 13150 Err codemadness.org 70 i 13151
    Err codemadness.org 70 i 13152
  • Reese - Amature radio info
  • Err codemadness.org 70 i 13153
  • Chris - VPN
  • Err codemadness.org 70 i 13154
  • Malcolm - NAT
  • Err codemadness.org 70 i 13155
Err codemadness.org 70 i 13156 Err codemadness.org 70 i 13157
Err codemadness.org 70 i 13158 Err codemadness.org 70 i 13159
    Err codemadness.org 70 i 13160
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 13161
Err codemadness.org 70 i 13162 Err codemadness.org 70 i 13163
Err codemadness.org 70 i 13164 Err codemadness.org 70 i 13165 ]]> Err codemadness.org 70 i 13169
Err codemadness.org 70 i 13170 https://fireside.fm/player/v2/FYhhasNR+qatAfeyL Err codemadness.org 70 i 13171 Err codemadness.org 70 i 13172 ]]> Err codemadness.org 70 i 13173 Err codemadness.org 70 i 13174
Err codemadness.org 70 i 13175 Err codemadness.org 70 i 13176 324: Emergency Space Mode Err codemadness.org 70 i 13177 https://www.bsdnow.tv/324 Err codemadness.org 70 i 13178 e82a766b-37c4-4d16-896b-6fcfcfdef480 Err codemadness.org 70 i 13179 Thu, 14 Nov 2019 04:00:00 -0800 Err codemadness.org 70 i 13180 Allan Jude Err codemadness.org 70 i 13181 Err codemadness.org 70 i 13182 full Err codemadness.org 70 i 13183 Allan Jude Err codemadness.org 70 i 13184 Migrating drives and zpool between hosts, OpenBSD in 2019, Dragonfly’s new zlib and dhcpcd, Batch renaming images and resolution with awk, a rant on the X11 ICCCM selection system, hammer 2 emergency space mode, and more. Err codemadness.org 70 i 13185 46:30 Err codemadness.org 70 i 13186 no Err codemadness.org 70 i 13187 Err codemadness.org 70 i 13188 Migrating drives and zpool between hosts, OpenBSD in 2019, Dragonfly’s new zlib and dhcpcd, Batch renaming images and resolution with awk, a rant on the X11 ICCCM selection system, hammer 2 emergency space mode, and more. Err codemadness.org 70 i 13189 Headlines Err codemadness.org 70 i 13190 Migrating drives and the zpool from one host to another. (https://dan.langille.org/2019/10/26/migrating-drives-and-the-zpool-from-one-host-to-another/) Err codemadness.org 70 i 13191 Today is the day. Err codemadness.org 70 i 13192 Today I move a zpool from an R710 into an R720. The goal: all services on that zpool start running on the new host. Err codemadness.org 70 i 13193 Fortunately, that zpool is dedicated to jails, more or less. I have done some planning about this, including moving a poudriere on the R710 into a jail. Err codemadness.org 70 i 13194 Now it is almost noon on Saturday, I am sitting in the basement (just outside the server room), and I’m typing this up. Err codemadness.org 70 i 13195 In this post: Err codemadness.org 70 i 13196 FreeBSD 12.0 Err codemadness.org 70 i 13197 Dell R710 (r710-01) Err codemadness.org 70 i 13198 Dell R720 (r720-01) Err codemadness.org 70 i 13199 drive caddies from eBay and now I know the difference between SATA and SATAu Err codemadness.org 70 i 13200 PLEASE READ THIS first: Migrating ZFS Storage Pools (https://docs.oracle.com/cd/E19253-01/819-5461/gbchy/index.html) Err codemadness.org 70 i 13201 OpenBSD in 2019 (https://blog.habets.se/2019/10/OpenBSD-in-2019.html) Err codemadness.org 70 i 13202 I’ve used OpenBSD on and off since 2.1. More back then than in the last 10 years or so though, so I thought I’d try it again. Err codemadness.org 70 i 13203 What triggered this was me finding a silly bug in GNU cpio that has existed with a “FIXME” comment since at least 1994. I checked OpenBSD to see if it had a related bug, but as expected no it was just fine. Err codemadness.org 70 i 13204 I don’t quite remember why I stopped using OpenBSD for servers, but I do remember filesystem corruption on “unexpected power disconnections” (even with softdep turned on), which I’ve never really seen on Linux. Err codemadness.org 70 i 13205 That and that fewer things “just worked” than with Linux, which matters more when I installed more random things than I do now. I’ve become a lot more minimalist. Probably due to less spare time. Life is better when you don’t run things like PHP (not that OpenBSD doesn’t support PHP, just an example) or your own email server with various antispam tooling, and other things. Err codemadness.org 70 i 13206 This is all experience from running OpenBSD on a server. On my next laptop I intend to try running OpenBSD on the dektop, and will see if that more ad-hoc environment works well. E.g. will gnuradio work? Lack of other-OS VM support may be a problem. Err codemadness.org 70 i 13207 Verdict Err codemadness.org 70 i 13208 Ouch, that’s a long list of bad stuff. Still, I like it. I’ll continue to run it, and will make sure my stuff continues working on OpenBSD. Err codemadness.org 70 i 13209 And maybe in a year I’ll have a review of OpenBSD on a laptop. Err codemadness.org 70 i 13210 News Roundup Err codemadness.org 70 i 13211 New zlib, new dhcpcd (https://www.dragonflydigest.com/2019/10/29/23683.html) Err codemadness.org 70 i 13212 zlib and dhcpcd are both updated in DragonFly… but my quick perusal of the commits makes it sound like bugfix only; no usage changes needed. Err codemadness.org 70 i 13213 DHCPCD Commit: http://lists.dragonflybsd.org/pipermail/commits/2019-October/719768.html Err codemadness.org 70 i 13214 ZLIB Commit: http://lists.dragonflybsd.org/pipermail/commits/2019-October/719772.html Err codemadness.org 70 i 13215 Batch renaming images, including image resolution, with awk (https://victoria.dev/verbose/batch-renaming-images-including-image-resolution-with-awk/) Err codemadness.org 70 i 13216 The most recent item on my list of “Geeky things I did that made me feel pretty awesome” is an hour’s adventure that culminated in this code: Err codemadness.org 70 i 13217 Err codemadness.org 70 i 13218 $ file IMG* | awk 'BEGIN{a=0} {print substr($1, 1, length($1)-5),a++"_"substr($8,1, length($8)-1)}' | while read fn fr; do echo $(rename -v "s/$fn/img_$fr/g" *); done Err codemadness.org 70 i 13219 IMG_20170808_172653_425.jpg renamed as img_0_4032x3024.jpg Err codemadness.org 70 i 13220 IMG_20170808_173020_267.jpg renamed as img_1_3024x3506.jpg Err codemadness.org 70 i 13221 IMG_20170808_173130_616.jpg renamed as img_2_3024x3779.jpg Err codemadness.org 70 i 13222 IMG_20170808_173221_425.jpg renamed as img_3_3024x3780.jpg Err codemadness.org 70 i 13223 IMG_20170808_173417_059.jpg renamed as img_4_2956x2980.jpg Err codemadness.org 70 i 13224 IMG_20170808_173450_971.jpg renamed as img_5_3024x3024.jpg Err codemadness.org 70 i 13225 IMG_20170808_173536_034.jpg renamed as img_6_4032x3024.jpg Err codemadness.org 70 i 13226 IMG_20170808_173602_732.jpg renamed as img_7_1617x1617.jpg Err codemadness.org 70 i 13227 IMG_20170808_173645_339.jpg renamed as img_8_3024x3780.jpg Err codemadness.org 70 i 13228 IMG_20170909_170146_585.jpg renamed as img_9_3036x3036.jpg Err codemadness.org 70 i 13229 IMG_20170911_211522_543.jpg renamed as img_10_3036x3036.jpg Err codemadness.org 70 i 13230 IMG_20170913_071608_288.jpg renamed as img_11_2760x2760.jpg Err codemadness.org 70 i 13231 IMG_20170913_073205_522.jpg renamed as img_12_2738x2738.jpg Err codemadness.org 70 i 13232 // ... etc etc Err codemadness.org 70 i 13233 Err codemadness.org 70 i 13234 The last item on the aforementioned list is “TODO: come up with a shorter title for this list.” Err codemadness.org 70 i 13235 I hate the X11 ICCCM selection system, and you should too - A Rant (http://www.call-with-current-continuation.org/rants/icccm.txt) Err codemadness.org 70 i 13236 d00d, that document is devilspawn. I've recently spent my nights in pain Err codemadness.org 70 i 13237 implementing the selection mechanism. WHY OH WHY OH WHY? why me? why did I choose to do this? and what sick evil twisted mind wrote this damn spec? I don't know why I'm working with it, I just wanted to make a useful program. Err codemadness.org 70 i 13238 I didn't know what I was getting myself in to. Nobody knows until they try it. And once you start, you're unable to stop. You can't stop, if you stop then you haven't completed it to spec. You can't fail on this, it's just a few pages of text, how can that be so hard? So what if they use Atoms for everything. So what if there's no explicit correlation between the target type of a SelectionNotify event and the type of the property it indicates? Err codemadness.org 70 i 13239 So what if the distinction is ambiguous? So what if the document is littered with such atrocities? It's not the spec's fault, the spec is authoritative. It's obviously YOUR (the implementor's) fault for misunderstanding it. If you didn't misunderstand it, you wouldn't be here complaining about it would you? Err codemadness.org 70 i 13240 HAMMER2 emergency space mode (https://www.dragonflydigest.com/2019/10/22/23652.html) Err codemadness.org 70 i 13241 As anyone who has been running HAMMER1 or HAMMER2 has noticed, snapshots and copy on write and infinite history can eat a lot of disk space, even if the actual file volume isn’t changing much. There’s now an ‘emergency mode‘ for HAMMER2, where disk operations can happen even if there isn’t space for the normal history activity. It’s dangerous, in that the normal protections against data loss if power is cut go away, and snapshots created while in this mode will be mangled. So definitely don’t leave it on! Err codemadness.org 70 i 13242 Beastie Bits Err codemadness.org 70 i 13243 The BastilleBSD community has started work on over 100 automation templates (https://twitter.com/BastilleBSD/status/1186659762458501120) Err codemadness.org 70 i 13244 PAM perturbed (https://www.dragonflydigest.com/2019/10/23/23654.html) Err codemadness.org 70 i 13245 OpenBSD T-Shirts now available (https://teespring.com/stores/openbsd) Err codemadness.org 70 i 13246 FastoCloud (Opensource Media Service) now available on FreeBSD (https://old.reddit.com/r/freebsd/comments/dlyqtq/fastocloud_opensource_media_service_now_available/) Err codemadness.org 70 i 13247 Unix: A History and a Memoir by Brian Kernighan now available (https://www.cs.princeton.edu/~bwk/) Err codemadness.org 70 i 13248 OpenBSD Moonlight game streaming client from a Windows + Nvidia PC (https://www.reddit.com/r/openbsd_gaming/comments/d6xboo/openbsd_moonlight_game_streaming_client_from_a/) Err codemadness.org 70 i 13249 *** Err codemadness.org 70 i 13250 Feedback/Questions Err codemadness.org 70 i 13251 Tim - Release Notes for Lumina 1.5 (http://dpaste.com/38DNSXT#wrap) Err codemadness.org 70 i 13252 Answer Here (http://dpaste.com/3QJX8G3#wrap) Err codemadness.org 70 i 13253 Brad - vBSDcon Trip Report (http://dpaste.com/316MGVX#wrap) Err codemadness.org 70 i 13254 Jacob - Using terminfo on FreeBSD (http://dpaste.com/131N05J#wrap) Err codemadness.org 70 i 13255 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 13256 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 13257 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0324.mp4" type="video/mp4"> Err codemadness.org 70 i 13258 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 13259 </video> Err codemadness.org 70 i 13260 Err codemadness.org 70 i 13261 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, migrating drive, migrating zpool, zpool, migration, zlib, dhcpcd, awk, batch, renaming, x11, ICCCM, hammer 2, emergency space mode Err codemadness.org 70 i 13262 Err codemadness.org 70 i 13263 Migrating drives and zpool between hosts, OpenBSD in 2019, Dragonfly’s new zlib and dhcpcd, Batch renaming images and resolution with awk, a rant on the X11 ICCCM selection system, hammer 2 emergency space mode, and more.

Err codemadness.org 70 i 13264 Err codemadness.org 70 i 13265
Err codemadness.org 70 i 13266 Err codemadness.org 70 i 13267

Headlines

Err codemadness.org 70 i 13268 Err codemadness.org 70 i 13269

Migrating drives and the zpool from one host to another.

Err codemadness.org 70 i 13270 Err codemadness.org 70 i 13271
Err codemadness.org 70 i 13272

Today is the day.

Err codemadness.org 70 i 13273 Err codemadness.org 70 i 13274

Today I move a zpool from an R710 into an R720. The goal: all services on that zpool start running on the new host.

Err codemadness.org 70 i 13275 Err codemadness.org 70 i 13276

Fortunately, that zpool is dedicated to jails, more or less. I have done some planning about this, including moving a poudriere on the R710 into a jail.

Err codemadness.org 70 i 13277 Err codemadness.org 70 i 13278

Now it is almost noon on Saturday, I am sitting in the basement (just outside the server room), and I’m typing this up.

Err codemadness.org 70 i 13279
Err codemadness.org 70 i 13280 Err codemadness.org 70 i 13281
    Err codemadness.org 70 i 13282
  • In this post:

    Err codemadness.org 70 i 13283 Err codemadness.org 70 i 13284
      Err codemadness.org 70 i 13285
    • FreeBSD 12.0
    • Err codemadness.org 70 i 13286
    • Dell R710 (r710-01)
    • Err codemadness.org 70 i 13287
    • Dell R720 (r720-01)
    • Err codemadness.org 70 i 13288
    • drive caddies from eBay and now I know the difference between SATA and SATAu
    • Err codemadness.org 70 i 13289
  • Err codemadness.org 70 i 13290
  • PLEASE READ THIS first: Migrating ZFS Storage Pools

  • Err codemadness.org 70 i 13291
Err codemadness.org 70 i 13292 Err codemadness.org 70 i 13293
Err codemadness.org 70 i 13294 Err codemadness.org 70 i 13295

OpenBSD in 2019

Err codemadness.org 70 i 13296 Err codemadness.org 70 i 13297
Err codemadness.org 70 i 13298

I’ve used OpenBSD on and off since 2.1. More back then than in the last 10 years or so though, so I thought I’d try it again.

Err codemadness.org 70 i 13299 Err codemadness.org 70 i 13300

What triggered this was me finding a silly bug in GNU cpio that has existed with a “FIXME” comment since at least 1994. I checked OpenBSD to see if it had a related bug, but as expected no it was just fine.

Err codemadness.org 70 i 13301 Err codemadness.org 70 i 13302

I don’t quite remember why I stopped using OpenBSD for servers, but I do remember filesystem corruption on “unexpected power disconnections” (even with softdep turned on), which I’ve never really seen on Linux.

Err codemadness.org 70 i 13303 Err codemadness.org 70 i 13304

That and that fewer things “just worked” than with Linux, which matters more when I installed more random things than I do now. I’ve become a lot more minimalist. Probably due to less spare time. Life is better when you don’t run things like PHP (not that OpenBSD doesn’t support PHP, just an example) or your own email server with various antispam tooling, and other things.

Err codemadness.org 70 i 13305 Err codemadness.org 70 i 13306

This is all experience from running OpenBSD on a server. On my next laptop I intend to try running OpenBSD on the dektop, and will see if that more ad-hoc environment works well. E.g. will gnuradio work? Lack of other-OS VM support may be a problem.

Err codemadness.org 70 i 13307
Err codemadness.org 70 i 13308 Err codemadness.org 70 i 13309
    Err codemadness.org 70 i 13310
  • Verdict
  • Err codemadness.org 70 i 13311
Err codemadness.org 70 i 13312 Err codemadness.org 70 i 13313
Err codemadness.org 70 i 13314

Ouch, that’s a long list of bad stuff. Still, I like it. I’ll continue to run it, and will make sure my stuff continues working on OpenBSD.

Err codemadness.org 70 i 13315 Err codemadness.org 70 i 13316

And maybe in a year I’ll have a review of OpenBSD on a laptop.

Err codemadness.org 70 i 13317
Err codemadness.org 70 i 13318 Err codemadness.org 70 i 13319
Err codemadness.org 70 i 13320 Err codemadness.org 70 i 13321

News Roundup

Err codemadness.org 70 i 13322 Err codemadness.org 70 i 13323

New zlib, new dhcpcd

Err codemadness.org 70 i 13324 Err codemadness.org 70 i 13325
Err codemadness.org 70 i 13326

zlib and dhcpcd are both updated in DragonFly… but my quick perusal of the commits makes it sound like bugfix only; no usage changes needed.

Err codemadness.org 70 i 13327
Err codemadness.org 70 i 13328 Err codemadness.org 70 i 13329 Err codemadness.org 70 i 13333 Err codemadness.org 70 i 13334
Err codemadness.org 70 i 13335 Err codemadness.org 70 i 13336

Batch renaming images, including image resolution, with awk

Err codemadness.org 70 i 13337 Err codemadness.org 70 i 13338
Err codemadness.org 70 i 13339

The most recent item on my list of “Geeky things I did that made me feel pretty awesome” is an hour’s adventure that culminated in this code:

Err codemadness.org 70 i 13340
Err codemadness.org 70 i 13341 Err codemadness.org 70 i 13342
$ file IMG* | awk 'BEGIN{a=0} {print substr($1, 1, length($1)-5),a++"_"substr($8,1, length($8)-1)}' | while read fn fr; do echo $(rename -v "s/$fn/img_$fr/g" *); done	Err	codemadness.org	70
i 13343 IMG_20170808_172653_425.jpg renamed as img_0_4032x3024.jpg	Err	codemadness.org	70
i 13344 IMG_20170808_173020_267.jpg renamed as img_1_3024x3506.jpg	Err	codemadness.org	70
i 13345 IMG_20170808_173130_616.jpg renamed as img_2_3024x3779.jpg	Err	codemadness.org	70
i 13346 IMG_20170808_173221_425.jpg renamed as img_3_3024x3780.jpg	Err	codemadness.org	70
i 13347 IMG_20170808_173417_059.jpg renamed as img_4_2956x2980.jpg	Err	codemadness.org	70
i 13348 IMG_20170808_173450_971.jpg renamed as img_5_3024x3024.jpg	Err	codemadness.org	70
i 13349 IMG_20170808_173536_034.jpg renamed as img_6_4032x3024.jpg	Err	codemadness.org	70
i 13350 IMG_20170808_173602_732.jpg renamed as img_7_1617x1617.jpg	Err	codemadness.org	70
i 13351 IMG_20170808_173645_339.jpg renamed as img_8_3024x3780.jpg	Err	codemadness.org	70
i 13352 IMG_20170909_170146_585.jpg renamed as img_9_3036x3036.jpg	Err	codemadness.org	70
i 13353 IMG_20170911_211522_543.jpg renamed as img_10_3036x3036.jpg	Err	codemadness.org	70
i 13354 IMG_20170913_071608_288.jpg renamed as img_11_2760x2760.jpg	Err	codemadness.org	70
i 13355 IMG_20170913_073205_522.jpg renamed as img_12_2738x2738.jpg	Err	codemadness.org	70
i 13356 // ... etc etc	Err	codemadness.org	70
i 13357 
Err codemadness.org 70 i 13358 Err codemadness.org 70 i 13359
Err codemadness.org 70 i 13360

The last item on the aforementioned list is “TODO: come up with a shorter title for this list.”

Err codemadness.org 70 i 13361
Err codemadness.org 70 i 13362 Err codemadness.org 70 i 13363
Err codemadness.org 70 i 13364 Err codemadness.org 70 i 13365

I hate the X11 ICCCM selection system, and you should too - A Rant

Err codemadness.org 70 i 13366 Err codemadness.org 70 i 13367
Err codemadness.org 70 i 13368

d00d, that document is devilspawn. I've recently spent my nights in pain
Err codemadness.org 70 i 13369 implementing the selection mechanism. WHY OH WHY OH WHY? why me? why did I choose to do this? and what sick evil twisted mind wrote this damn spec? I don't know why I'm working with it, I just wanted to make a useful program.

Err codemadness.org 70 i 13370 Err codemadness.org 70 i 13371

I didn't know what I was getting myself in to. Nobody knows until they try it. And once you start, you're unable to stop. You can't stop, if you stop then you haven't completed it to spec. You can't fail on this, it's just a few pages of text, how can that be so hard? So what if they use Atoms for everything. So what if there's no explicit correlation between the target type of a SelectionNotify event and the type of the property it indicates?

Err codemadness.org 70 i 13372 Err codemadness.org 70 i 13373

So what if the distinction is ambiguous? So what if the document is littered with such atrocities? It's not the spec's fault, the spec is authoritative. It's obviously YOUR (the implementor's) fault for misunderstanding it. If you didn't misunderstand it, you wouldn't be here complaining about it would you?

Err codemadness.org 70 i 13374
Err codemadness.org 70 i 13375 Err codemadness.org 70 i 13376
Err codemadness.org 70 i 13377 Err codemadness.org 70 i 13378

HAMMER2 emergency space mode

Err codemadness.org 70 i 13379 Err codemadness.org 70 i 13380
Err codemadness.org 70 i 13381

As anyone who has been running HAMMER1 or HAMMER2 has noticed, snapshots and copy on write and infinite history can eat a lot of disk space, even if the actual file volume isn’t changing much. There’s now an ‘emergency mode‘ for HAMMER2, where disk operations can happen even if there isn’t space for the normal history activity. It’s dangerous, in that the normal protections against data loss if power is cut go away, and snapshots created while in this mode will be mangled. So definitely don’t leave it on!

Err codemadness.org 70 i 13382
Err codemadness.org 70 i 13383 Err codemadness.org 70 i 13384
Err codemadness.org 70 i 13385 Err codemadness.org 70 i 13386

Beastie Bits

Err codemadness.org 70 i 13387 Err codemadness.org 70 i 13388 Err codemadness.org 70 i 13397 Err codemadness.org 70 i 13398

Feedback/Questions

Err codemadness.org 70 i 13399 Err codemadness.org 70 i 13400 Err codemadness.org 70 i 13409 Err codemadness.org 70 i 13410
Err codemadness.org 70 i 13411 Err codemadness.org 70 i 13412
    Err codemadness.org 70 i 13413
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 13414
Err codemadness.org 70 i 13415 Err codemadness.org 70 i 13416
Err codemadness.org 70 i 13417 Err codemadness.org 70 i 13418 ]]> Err codemadness.org 70 i 13422
Err codemadness.org 70 i 13423 Err codemadness.org 70 i 13424 Migrating drives and zpool between hosts, OpenBSD in 2019, Dragonfly’s new zlib and dhcpcd, Batch renaming images and resolution with awk, a rant on the X11 ICCCM selection system, hammer 2 emergency space mode, and more.

Err codemadness.org 70 i 13425 Err codemadness.org 70 i 13426
Err codemadness.org 70 i 13427 Err codemadness.org 70 i 13428

Headlines

Err codemadness.org 70 i 13429 Err codemadness.org 70 i 13430

Migrating drives and the zpool from one host to another.

Err codemadness.org 70 i 13431 Err codemadness.org 70 i 13432
Err codemadness.org 70 i 13433

Today is the day.

Err codemadness.org 70 i 13434 Err codemadness.org 70 i 13435

Today I move a zpool from an R710 into an R720. The goal: all services on that zpool start running on the new host.

Err codemadness.org 70 i 13436 Err codemadness.org 70 i 13437

Fortunately, that zpool is dedicated to jails, more or less. I have done some planning about this, including moving a poudriere on the R710 into a jail.

Err codemadness.org 70 i 13438 Err codemadness.org 70 i 13439

Now it is almost noon on Saturday, I am sitting in the basement (just outside the server room), and I’m typing this up.

Err codemadness.org 70 i 13440
Err codemadness.org 70 i 13441 Err codemadness.org 70 i 13442
    Err codemadness.org 70 i 13443
  • In this post:

    Err codemadness.org 70 i 13444 Err codemadness.org 70 i 13445
      Err codemadness.org 70 i 13446
    • FreeBSD 12.0
    • Err codemadness.org 70 i 13447
    • Dell R710 (r710-01)
    • Err codemadness.org 70 i 13448
    • Dell R720 (r720-01)
    • Err codemadness.org 70 i 13449
    • drive caddies from eBay and now I know the difference between SATA and SATAu
    • Err codemadness.org 70 i 13450
  • Err codemadness.org 70 i 13451
  • PLEASE READ THIS first: Migrating ZFS Storage Pools

  • Err codemadness.org 70 i 13452
Err codemadness.org 70 i 13453 Err codemadness.org 70 i 13454
Err codemadness.org 70 i 13455 Err codemadness.org 70 i 13456

OpenBSD in 2019

Err codemadness.org 70 i 13457 Err codemadness.org 70 i 13458
Err codemadness.org 70 i 13459

I’ve used OpenBSD on and off since 2.1. More back then than in the last 10 years or so though, so I thought I’d try it again.

Err codemadness.org 70 i 13460 Err codemadness.org 70 i 13461

What triggered this was me finding a silly bug in GNU cpio that has existed with a “FIXME” comment since at least 1994. I checked OpenBSD to see if it had a related bug, but as expected no it was just fine.

Err codemadness.org 70 i 13462 Err codemadness.org 70 i 13463

I don’t quite remember why I stopped using OpenBSD for servers, but I do remember filesystem corruption on “unexpected power disconnections” (even with softdep turned on), which I’ve never really seen on Linux.

Err codemadness.org 70 i 13464 Err codemadness.org 70 i 13465

That and that fewer things “just worked” than with Linux, which matters more when I installed more random things than I do now. I’ve become a lot more minimalist. Probably due to less spare time. Life is better when you don’t run things like PHP (not that OpenBSD doesn’t support PHP, just an example) or your own email server with various antispam tooling, and other things.

Err codemadness.org 70 i 13466 Err codemadness.org 70 i 13467

This is all experience from running OpenBSD on a server. On my next laptop I intend to try running OpenBSD on the dektop, and will see if that more ad-hoc environment works well. E.g. will gnuradio work? Lack of other-OS VM support may be a problem.

Err codemadness.org 70 i 13468
Err codemadness.org 70 i 13469 Err codemadness.org 70 i 13470
    Err codemadness.org 70 i 13471
  • Verdict
  • Err codemadness.org 70 i 13472
Err codemadness.org 70 i 13473 Err codemadness.org 70 i 13474
Err codemadness.org 70 i 13475

Ouch, that’s a long list of bad stuff. Still, I like it. I’ll continue to run it, and will make sure my stuff continues working on OpenBSD.

Err codemadness.org 70 i 13476 Err codemadness.org 70 i 13477

And maybe in a year I’ll have a review of OpenBSD on a laptop.

Err codemadness.org 70 i 13478
Err codemadness.org 70 i 13479 Err codemadness.org 70 i 13480
Err codemadness.org 70 i 13481 Err codemadness.org 70 i 13482

News Roundup

Err codemadness.org 70 i 13483 Err codemadness.org 70 i 13484

New zlib, new dhcpcd

Err codemadness.org 70 i 13485 Err codemadness.org 70 i 13486
Err codemadness.org 70 i 13487

zlib and dhcpcd are both updated in DragonFly… but my quick perusal of the commits makes it sound like bugfix only; no usage changes needed.

Err codemadness.org 70 i 13488
Err codemadness.org 70 i 13489 Err codemadness.org 70 i 13490 Err codemadness.org 70 i 13494 Err codemadness.org 70 i 13495
Err codemadness.org 70 i 13496 Err codemadness.org 70 i 13497

Batch renaming images, including image resolution, with awk

Err codemadness.org 70 i 13498 Err codemadness.org 70 i 13499
Err codemadness.org 70 i 13500

The most recent item on my list of “Geeky things I did that made me feel pretty awesome” is an hour’s adventure that culminated in this code:

Err codemadness.org 70 i 13501
Err codemadness.org 70 i 13502 Err codemadness.org 70 i 13503
$ file IMG* | awk 'BEGIN{a=0} {print substr($1, 1, length($1)-5),a++"_"substr($8,1, length($8)-1)}' | while read fn fr; do echo $(rename -v "s/$fn/img_$fr/g" *); done	Err	codemadness.org	70
i 13504 IMG_20170808_172653_425.jpg renamed as img_0_4032x3024.jpg	Err	codemadness.org	70
i 13505 IMG_20170808_173020_267.jpg renamed as img_1_3024x3506.jpg	Err	codemadness.org	70
i 13506 IMG_20170808_173130_616.jpg renamed as img_2_3024x3779.jpg	Err	codemadness.org	70
i 13507 IMG_20170808_173221_425.jpg renamed as img_3_3024x3780.jpg	Err	codemadness.org	70
i 13508 IMG_20170808_173417_059.jpg renamed as img_4_2956x2980.jpg	Err	codemadness.org	70
i 13509 IMG_20170808_173450_971.jpg renamed as img_5_3024x3024.jpg	Err	codemadness.org	70
i 13510 IMG_20170808_173536_034.jpg renamed as img_6_4032x3024.jpg	Err	codemadness.org	70
i 13511 IMG_20170808_173602_732.jpg renamed as img_7_1617x1617.jpg	Err	codemadness.org	70
i 13512 IMG_20170808_173645_339.jpg renamed as img_8_3024x3780.jpg	Err	codemadness.org	70
i 13513 IMG_20170909_170146_585.jpg renamed as img_9_3036x3036.jpg	Err	codemadness.org	70
i 13514 IMG_20170911_211522_543.jpg renamed as img_10_3036x3036.jpg	Err	codemadness.org	70
i 13515 IMG_20170913_071608_288.jpg renamed as img_11_2760x2760.jpg	Err	codemadness.org	70
i 13516 IMG_20170913_073205_522.jpg renamed as img_12_2738x2738.jpg	Err	codemadness.org	70
i 13517 // ... etc etc	Err	codemadness.org	70
i 13518 
Err codemadness.org 70 i 13519 Err codemadness.org 70 i 13520
Err codemadness.org 70 i 13521

The last item on the aforementioned list is “TODO: come up with a shorter title for this list.”

Err codemadness.org 70 i 13522
Err codemadness.org 70 i 13523 Err codemadness.org 70 i 13524
Err codemadness.org 70 i 13525 Err codemadness.org 70 i 13526

I hate the X11 ICCCM selection system, and you should too - A Rant

Err codemadness.org 70 i 13527 Err codemadness.org 70 i 13528
Err codemadness.org 70 i 13529

d00d, that document is devilspawn. I've recently spent my nights in pain
Err codemadness.org 70 i 13530 implementing the selection mechanism. WHY OH WHY OH WHY? why me? why did I choose to do this? and what sick evil twisted mind wrote this damn spec? I don't know why I'm working with it, I just wanted to make a useful program.

Err codemadness.org 70 i 13531 Err codemadness.org 70 i 13532

I didn't know what I was getting myself in to. Nobody knows until they try it. And once you start, you're unable to stop. You can't stop, if you stop then you haven't completed it to spec. You can't fail on this, it's just a few pages of text, how can that be so hard? So what if they use Atoms for everything. So what if there's no explicit correlation between the target type of a SelectionNotify event and the type of the property it indicates?

Err codemadness.org 70 i 13533 Err codemadness.org 70 i 13534

So what if the distinction is ambiguous? So what if the document is littered with such atrocities? It's not the spec's fault, the spec is authoritative. It's obviously YOUR (the implementor's) fault for misunderstanding it. If you didn't misunderstand it, you wouldn't be here complaining about it would you?

Err codemadness.org 70 i 13535
Err codemadness.org 70 i 13536 Err codemadness.org 70 i 13537
Err codemadness.org 70 i 13538 Err codemadness.org 70 i 13539

HAMMER2 emergency space mode

Err codemadness.org 70 i 13540 Err codemadness.org 70 i 13541
Err codemadness.org 70 i 13542

As anyone who has been running HAMMER1 or HAMMER2 has noticed, snapshots and copy on write and infinite history can eat a lot of disk space, even if the actual file volume isn’t changing much. There’s now an ‘emergency mode‘ for HAMMER2, where disk operations can happen even if there isn’t space for the normal history activity. It’s dangerous, in that the normal protections against data loss if power is cut go away, and snapshots created while in this mode will be mangled. So definitely don’t leave it on!

Err codemadness.org 70 i 13543
Err codemadness.org 70 i 13544 Err codemadness.org 70 i 13545
Err codemadness.org 70 i 13546 Err codemadness.org 70 i 13547

Beastie Bits

Err codemadness.org 70 i 13548 Err codemadness.org 70 i 13549 Err codemadness.org 70 i 13558 Err codemadness.org 70 i 13559

Feedback/Questions

Err codemadness.org 70 i 13560 Err codemadness.org 70 i 13561 Err codemadness.org 70 i 13570 Err codemadness.org 70 i 13571
Err codemadness.org 70 i 13572 Err codemadness.org 70 i 13573
    Err codemadness.org 70 i 13574
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 13575
Err codemadness.org 70 i 13576 Err codemadness.org 70 i 13577
Err codemadness.org 70 i 13578 Err codemadness.org 70 i 13579 ]]> Err codemadness.org 70 i 13583
Err codemadness.org 70 i 13584 https://fireside.fm/player/v2/FYhhasNR+JgDU4X5g Err codemadness.org 70 i 13585 Err codemadness.org 70 i 13586 ]]> Err codemadness.org 70 i 13587 Err codemadness.org 70 i 13588
Err codemadness.org 70 i 13589 Err codemadness.org 70 i 13590 323: OSI Burrito Guy Err codemadness.org 70 i 13591 https://www.bsdnow.tv/323 Err codemadness.org 70 i 13592 cf54c1fe-70ba-49a3-9b13-1ceb64ab896a Err codemadness.org 70 i 13593 Thu, 07 Nov 2019 04:00:00 -0800 Err codemadness.org 70 i 13594 Allan Jude Err codemadness.org 70 i 13595 Err codemadness.org 70 i 13596 full Err codemadness.org 70 i 13597 Allan Jude Err codemadness.org 70 i 13598 The earliest Unix code, how to replace fail2ban with blacklistd, OpenBSD crossed 400k commits, how to install Bolt CMS on FreeBSD, optimized hammer2, appeasing the OSI 7-layer burrito guys, and more. Err codemadness.org 70 i 13599 49:22 Err codemadness.org 70 i 13600 no Err codemadness.org 70 i 13601 Err codemadness.org 70 i 13602 The earliest Unix code, how to replace fail2ban with blacklistd, OpenBSD crossed 400k commits, how to install Bolt CMS on FreeBSD, optimized hammer2, appeasing the OSI 7-layer burrito guys, and more. Err codemadness.org 70 i 13603 Headlines Err codemadness.org 70 i 13604 The Earliest Unix Code: An Anniversary Source Code Release (https://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/) Err codemadness.org 70 i 13605 What is it that runs the servers that hold our online world, be it the web or the cloud? What enables the mobile apps that are at the center of increasingly on-demand lives in the developed world and of mobile banking and messaging in the developing world? The answer is the operating system Unix and its many descendants: Linux, Android, BSD Unix, MacOS, iOS—the list goes on and on. Want to glimpse the Unix in your Mac? Open a Terminal window and enter “man roff” to view the Unix manual entry for an early text formatting program that lives within your operating system. Err codemadness.org 70 i 13606 2019 marks the 50th anniversary of the start of Unix. In the summer of 1969, that same summer that saw humankind’s first steps on the surface of the Moon, computer scientists at the Bell Telephone Laboratories—most centrally Ken Thompson and Dennis Ritchie—began the construction of a new operating system, using a then-aging DEC PDP-7 computer at the labs. Err codemadness.org 70 i 13607 This man sent the first online message 50 years ago (https://www.cbc.ca/radio/thecurrent/the-current-for-oct-29-2019-1.5339212/this-man-sent-the-first-online-message-50-years-ago-he-s-since-seen-the-web-s-dark-side-emerge-1.5339244) Err codemadness.org 70 i 13608 As many of you have heard in the past, the first online message ever sent between two computers was "lo", just over 50 years ago, on Oct. 29, 1969. Err codemadness.org 70 i 13609 It was supposed to say "log," but the computer sending the message — based at UCLA — crashed before the letter "g" was typed. A computer at Stanford 560 kilometres away was supposed to fill in the remaining characters "in," as in "log in." Err codemadness.org 70 i 13610 The CBC Radio show, “The Current” has a half-hour interview with the man who sent that message, Leonard Kleinrock, distinguished professor of computer science at UCLA Err codemadness.org 70 i 13611 "The idea of the network was you could sit at one computer, log on through the network to a remote computer and use its services there," Err codemadness.org 70 i 13612 50 years later, the internet has become so ubiquitous that it has almost been rendered invisible. There's hardly an aspect in our daily lives that hasn't been touched and transformed by it. Err codemadness.org 70 i 13613 Q: Take us back to that day 50 years ago. Did you have the sense that this was going to be something you'd be talking about a half a century later? Err codemadness.org 70 i 13614 A: Well, yes and no. Four months before that message was sent, there was a press release that came out of UCLA in which it quotes me as describing what my vision for this network would become. Basically what it said is that this network would be always on, always available. Anybody with any device could get on at anytime from any location, and it would be invisible. Err codemadness.org 70 i 13615 Well, what I missed ... was that this is going to become a social network. People talking to people. Not computers talking to computers, but [the] human element. Err codemadness.org 70 i 13616 Q: Can you briefly explain what you were working on in that lab? Why were you trying to get computers to actually talk to one another? Err codemadness.org 70 i 13617 A: As an MIT graduate student, years before, I recognized I was surrounded by computers and I realized there was no effective [or efficient] way for them to communicate. I did my dissertation, my research, on establishing a mathematical theory of how these networks would work. But there was no such network existing. AT&T said it won't work and, even if it does, we want nothing to do with it. Err codemadness.org 70 i 13618 So I had to wait around for years until the Advanced Research Projects Agency within the Department of Defence decided they needed a network to connect together the computer scientists they were supervising and supporting. Err codemadness.org 70 i 13619 Q: For all the promise of the internet, it has also developed some dark sides that I'm guessing pioneers like yourselves never anticipated. Err codemadness.org 70 i 13620 A: We did not. I knew everybody on the internet at that time, and they were all well-behaved and they all believed in an open, shared free network. So we did not put in any security controls. Err codemadness.org 70 i 13621 When the first spam email occurred, we began to see the dark side emerge as this network reached nefarious people sitting in basements with a high-speed connection, reaching out to millions of people instantaneously, at no cost in time or money, anonymously until all sorts of unpleasant events occurred, which we called the dark side. Err codemadness.org 70 i 13622 But in those early days, I considered the network to be going through its teenage years. Hacking to spam, annoying kinds of effects. I thought that one day this network would mature and grow up. Well, in fact, it took a turn for the worse when nation states, organized crime and extremists came in and began to abuse the network in severe ways. Err codemadness.org 70 i 13623 Q: Is there any part of you that regrets giving birth to this? Err codemadness.org 70 i 13624 A: Absolutely not. The greater good is much more important. Err codemadness.org 70 i 13625 News Roundup Err codemadness.org 70 i 13626 How to use blacklistd(8) with NPF as a fail2ban replacement (https://www.unitedbsd.com/d/63-how-to-use-blacklistd8-with-npf-as-a-fail2ban-replacement) Err codemadness.org 70 i 13627 blacklistd(8) provides an API that can be used by network daemons to communicate with a packet filter via a daemon to enforce opening and closing ports dynamically based on policy. Err codemadness.org 70 i 13628 The interface to the packet filter is in /libexec/blacklistd-helper (this is currently designed for npf) and the configuration file (inspired from inetd.conf) is in etc/blacklistd.conf Err codemadness.org 70 i 13629 Now, blacklistd(8) will require bpfjit(4) (Just-In-Time compiler for Berkeley Packet Filter) in order to properly work, in addition to, naturally, npf(7) as frontend and syslogd(8), as a backend to print diagnostic messages. Also remember npf shall rely on the npflog* virtual network interface to provide logging for tcpdump() to use. Err codemadness.org 70 i 13630 Unfortunately (dont' ask me why ??) in 8.1 all the required kernel components are still not compiled by default in the GENERIC kernel (though they are in HEAD), and are rather provided as modules. Enabling NPF and blacklistd services would normally result in them being automatically loaded as root, but predictably on securelevel=1 this is not going to happen. Err codemadness.org 70 i 13631 FreeBSD’s handbook chapter on blacklistd (https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls-blacklistd.html) Err codemadness.org 70 i 13632 OpenBSD crossed 400,000 commits (https://marc.info/?l=openbsd-tech&m=157059352620659&w=2) Err codemadness.org 70 i 13633 Sometime in the last week OpenBSD crossed 400,000 commits (*) upon all our repositories since starting at 1995/10/18 08:37:01 Canada/Mountain. That's a lot of commits by a lot of amazing people. Err codemadness.org 70 i 13634 (*) by one measure. Since the repository is so large and old, there are a variety of quirks including ChangeLog missing entries and branches not convertible to other repo forms, so measuring is hard. If you think you've got a great way of measuring, don't be so sure of yourself -- you may have overcounted or undercounted. Err codemadness.org 70 i 13635 Subject to the notes Theo made about under and over counting, FreeBSD should hit 1 million commits (base + ports + docs) some time in 2020 Err codemadness.org 70 i 13636 NetBSD + pkgsrc are approaching 600,000, but of course pkgsrc covers other operating systems too Err codemadness.org 70 i 13637 How to Install Bolt CMS with Nginx and Let's Encrypt on FreeBSD 12 (https://www.howtoforge.com/how-to-install-bolt-cms-nginx-ssl-on-freebsd-12/) Err codemadness.org 70 i 13638 Bolt is a sophisticated, lightweight and simple CMS built with PHP. It is released under the open-source MIT-license and source code is hosted as a public repository on Github. A bolt is a tool for Content Management, which strives to be as simple and straightforward as possible. It is quick to set up, easy to configure, uses elegant templates. Bolt is created using modern open-source libraries and is best suited to build sites in HTML5 with modern markup. In this tutorial, we will go through the Bolt CMS installation on FreeBSD 12 system by using Nginx as a web server, MySQL as a database server, and optionally you can secure the transport layer by using acme.sh client and Let's Encrypt certificate authority to add SSL support. Err codemadness.org 70 i 13639 Requirements Err codemadness.org 70 i 13640 The system requirements for Bolt are modest, and it should run on any fairly modern web server: Err codemadness.org 70 i 13641 PHP version 5.5.9 or higher with the following common PHP extensions: pdo, mysqlnd, pgsql, openssl, curl, gd, intl, json, mbstring, opcache, posix, xml, fileinfo, exif, zip. Err codemadness.org 70 i 13642 Access to SQLite (which comes bundled with PHP), or MySQL or PostgreSQL. Err codemadness.org 70 i 13643 Apache with mod_rewrite enabled (.htaccess files) or Nginx (virtual host configuration covered below). Err codemadness.org 70 i 13644 A minimum of 32MB of memory allocated to PHP. Err codemadness.org 70 i 13645 hammer2 - Optimize hammer2 support threads and dispatch (http://lists.dragonflybsd.org/pipermail/commits/2019-September/719632.html) Err codemadness.org 70 i 13646 Refactor the XOP groups in order to be able to queue strategy calls, whenever possible, to the same CPU as the issuer. This optimizes several cases and reduces unnecessary IPI traffic between cores. The next best thing to do would be to not queue certain XOPs to an H2 support thread at all, but I would like to keep the threads intact for later clustering work. Err codemadness.org 70 i 13647 The best scaling case for this is when one has a large number of user threads doing I/O. One instance of a single-threaded program on an otherwise idle machine might see a slightly reduction in performance but at the same time we completely avoid unnecessarily spamming all cores in the system on the behalf of a single program, so overhead is also significantly lower. Err codemadness.org 70 i 13648 This will tend to increase the number of H2 support threads since we need a certain degree of multiplication for domain separation. Err codemadness.org 70 i 13649 This should significantly increase I/O performance for multi-threaded workloads. Err codemadness.org 70 i 13650 You know, we might as well just run every network service over HTTPS/2 and build another six layers on top of that to appease the OSI 7-layer burrito guys (http://boston.conman.org/2019/10/17.1) Err codemadness.org 70 i 13651 I've seen the writing on the wall, and while for now you can configure Firefox not to use DoH, I'm not confident enough to think it will remain that way. To that end, I've finally set up my own DoH server for use at Chez Boca. It only involved setting up my own CA to generate the appropriate certificates, install my CA certificate into Firefox, configure Apache to run over HTTP/2 (THANK YOU SO VERY XXXXX­XX MUCH GOOGLE FOR SHOVING THIS HTTP/2 XXXXX­XXX DOWN OUR THROATS!—no, I'm not bitter) and write a 150 line script that just queries my own local DNS, because, you know, it's more XXXXX­XX secure or some XXXXX­XXX reason like that. Err codemadness.org 70 i 13652 Sigh. Err codemadness.org 70 i 13653 Beastie Bits Err codemadness.org 70 i 13654 An Oral History of Unix (https://www.princeton.edu/~hos/Mahoney/unixhistory) Err codemadness.org 70 i 13655 NUMA Siloing in the FreeBSD Network Stack [pdf] (https://people.freebsd.org/~gallatin/talks/euro2019.pdf) Err codemadness.org 70 i 13656 EuroBSDCon 2019 videos available (https://www.youtube.com/playlist?list=PLskKNopggjc6NssLc8GEGSiFYJLYdlTQx) Err codemadness.org 70 i 13657 Barbie knows best (https://twitter.com/eksffa/status/1188638425567682560) Err codemadness.org 70 i 13658 For the #OpenBSD #e2k19 attendees. I did a pre visit today. (https://twitter.com/bob_beck/status/1188226661684301824) Err codemadness.org 70 i 13659 Drawer Find (https://twitter.com/pasha_sh/status/1187877745499561985) Err codemadness.org 70 i 13660 Slides - Removing ROP Gadgets from OpenBSD - AsiaBSDCon 2019 (https://www.openbsd.org/papers/asiabsdcon2019-rop-slides.pdf) Err codemadness.org 70 i 13661 Feedback/Questions Err codemadness.org 70 i 13662 Bostjan - Open source doesn't mean secure (http://dpaste.com/1M5MVCX#wrap) Err codemadness.org 70 i 13663 Malcolm - Allan is Correct. (http://dpaste.com/2RFNR94) Err codemadness.org 70 i 13664 Michael - FreeNAS inside a Jail (http://dpaste.com/28YW3BB#wrap) Err codemadness.org 70 i 13665 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 13666 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 13667 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0323.mp4" type="video/mp4"> Err codemadness.org 70 i 13668 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 13669 </video> Err codemadness.org 70 i 13670 Err codemadness.org 70 i 13671 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, Unix, code, blacklistd, fail2ban, npf, bolt, cms, nginx, lets encrypt, hammer2, OSI, 7 layer, https2 Err codemadness.org 70 i 13672 Err codemadness.org 70 i 13673 The earliest Unix code, how to replace fail2ban with blacklistd, OpenBSD crossed 400k commits, how to install Bolt CMS on FreeBSD, optimized hammer2, appeasing the OSI 7-layer burrito guys, and more.

Err codemadness.org 70 i 13674 Err codemadness.org 70 i 13675

Headlines

Err codemadness.org 70 i 13676 Err codemadness.org 70 i 13677

The Earliest Unix Code: An Anniversary Source Code Release

Err codemadness.org 70 i 13678 Err codemadness.org 70 i 13679
Err codemadness.org 70 i 13680

What is it that runs the servers that hold our online world, be it the web or the cloud? What enables the mobile apps that are at the center of increasingly on-demand lives in the developed world and of mobile banking and messaging in the developing world? The answer is the operating system Unix and its many descendants: Linux, Android, BSD Unix, MacOS, iOS—the list goes on and on. Want to glimpse the Unix in your Mac? Open a Terminal window and enter “man roff” to view the Unix manual entry for an early text formatting program that lives within your operating system.

Err codemadness.org 70 i 13681 Err codemadness.org 70 i 13682

2019 marks the 50th anniversary of the start of Unix. In the summer of 1969, that same summer that saw humankind’s first steps on the surface of the Moon, computer scientists at the Bell Telephone Laboratories—most centrally Ken Thompson and Dennis Ritchie—began the construction of a new operating system, using a then-aging DEC PDP-7 computer at the labs.

Err codemadness.org 70 i 13683
Err codemadness.org 70 i 13684 Err codemadness.org 70 i 13685
Err codemadness.org 70 i 13686 Err codemadness.org 70 i 13687

This man sent the first online message 50 years ago

Err codemadness.org 70 i 13688 Err codemadness.org 70 i 13689
    Err codemadness.org 70 i 13690
  • As many of you have heard in the past, the first online message ever sent between two computers was "lo", just over 50 years ago, on Oct. 29, 1969.
  • Err codemadness.org 70 i 13691
Err codemadness.org 70 i 13692 Err codemadness.org 70 i 13693
Err codemadness.org 70 i 13694

It was supposed to say "log," but the computer sending the message — based at UCLA — crashed before the letter "g" was typed. A computer at Stanford 560 kilometres away was supposed to fill in the remaining characters "in," as in "log in."

Err codemadness.org 70 i 13695
Err codemadness.org 70 i 13696 Err codemadness.org 70 i 13697
    Err codemadness.org 70 i 13698
  • The CBC Radio show, “The Current” has a half-hour interview with the man who sent that message, Leonard Kleinrock, distinguished professor of computer science at UCLA
  • Err codemadness.org 70 i 13699
Err codemadness.org 70 i 13700 Err codemadness.org 70 i 13701
Err codemadness.org 70 i 13702

"The idea of the network was you could sit at one computer, log on through the network to a remote computer and use its services there,"

Err codemadness.org 70 i 13703 Err codemadness.org 70 i 13704

50 years later, the internet has become so ubiquitous that it has almost been rendered invisible. There's hardly an aspect in our daily lives that hasn't been touched and transformed by it.

Err codemadness.org 70 i 13705 Err codemadness.org 70 i 13706

Q: Take us back to that day 50 years ago. Did you have the sense that this was going to be something you'd be talking about a half a century later?

Err codemadness.org 70 i 13707 Err codemadness.org 70 i 13708

A: Well, yes and no. Four months before that message was sent, there was a press release that came out of UCLA in which it quotes me as describing what my vision for this network would become. Basically what it said is that this network would be always on, always available. Anybody with any device could get on at anytime from any location, and it would be invisible.

Err codemadness.org 70 i 13709 Err codemadness.org 70 i 13710

Well, what I missed ... was that this is going to become a social network. People talking to people. Not computers talking to computers, but [the] human element.

Err codemadness.org 70 i 13711 Err codemadness.org 70 i 13712

Q: Can you briefly explain what you were working on in that lab? Why were you trying to get computers to actually talk to one another?

Err codemadness.org 70 i 13713 Err codemadness.org 70 i 13714

A: As an MIT graduate student, years before, I recognized I was surrounded by computers and I realized there was no effective [or efficient] way for them to communicate. I did my dissertation, my research, on establishing a mathematical theory of how these networks would work. But there was no such network existing. AT&T said it won't work and, even if it does, we want nothing to do with it.

Err codemadness.org 70 i 13715 Err codemadness.org 70 i 13716

So I had to wait around for years until the Advanced Research Projects Agency within the Department of Defence decided they needed a network to connect together the computer scientists they were supervising and supporting.

Err codemadness.org 70 i 13717 Err codemadness.org 70 i 13718

Q: For all the promise of the internet, it has also developed some dark sides that I'm guessing pioneers like yourselves never anticipated.

Err codemadness.org 70 i 13719 Err codemadness.org 70 i 13720

A: We did not. I knew everybody on the internet at that time, and they were all well-behaved and they all believed in an open, shared free network. So we did not put in any security controls.

Err codemadness.org 70 i 13721 Err codemadness.org 70 i 13722

When the first spam email occurred, we began to see the dark side emerge as this network reached nefarious people sitting in basements with a high-speed connection, reaching out to millions of people instantaneously, at no cost in time or money, anonymously until all sorts of unpleasant events occurred, which we called the dark side.

Err codemadness.org 70 i 13723 Err codemadness.org 70 i 13724

But in those early days, I considered the network to be going through its teenage years. Hacking to spam, annoying kinds of effects. I thought that one day this network would mature and grow up. Well, in fact, it took a turn for the worse when nation states, organized crime and extremists came in and began to abuse the network in severe ways.

Err codemadness.org 70 i 13725 Err codemadness.org 70 i 13726

Q: Is there any part of you that regrets giving birth to this?

Err codemadness.org 70 i 13727 Err codemadness.org 70 i 13728

A: Absolutely not. The greater good is much more important.

Err codemadness.org 70 i 13729
Err codemadness.org 70 i 13730 Err codemadness.org 70 i 13731
Err codemadness.org 70 i 13732 Err codemadness.org 70 i 13733

News Roundup

Err codemadness.org 70 i 13734 Err codemadness.org 70 i 13735

How to use blacklistd(8) with NPF as a fail2ban replacement

Err codemadness.org 70 i 13736 Err codemadness.org 70 i 13737
Err codemadness.org 70 i 13738

blacklistd(8) provides an API that can be used by network daemons to communicate with a packet filter via a daemon to enforce opening and closing ports dynamically based on policy.

Err codemadness.org 70 i 13739 Err codemadness.org 70 i 13740

The interface to the packet filter is in /libexec/blacklistd-helper (this is currently designed for npf) and the configuration file (inspired from inetd.conf) is in etc/blacklistd.conf

Err codemadness.org 70 i 13741 Err codemadness.org 70 i 13742

Now, blacklistd(8) will require bpfjit(4) (Just-In-Time compiler for Berkeley Packet Filter) in order to properly work, in addition to, naturally, npf(7) as frontend and syslogd(8), as a backend to print diagnostic messages. Also remember npf shall rely on the npflog* virtual network interface to provide logging for tcpdump() to use.

Err codemadness.org 70 i 13743 Err codemadness.org 70 i 13744

Unfortunately (dont' ask me why ??) in 8.1 all the required kernel components are still not compiled by default in the GENERIC kernel (though they are in HEAD), and are rather provided as modules. Enabling NPF and blacklistd services would normally result in them being automatically loaded as root, but predictably on securelevel=1 this is not going to happen.

Err codemadness.org 70 i 13745
Err codemadness.org 70 i 13746 Err codemadness.org 70 i 13747 Err codemadness.org 70 i 13750 Err codemadness.org 70 i 13751
Err codemadness.org 70 i 13752 Err codemadness.org 70 i 13753

OpenBSD crossed 400,000 commits

Err codemadness.org 70 i 13754 Err codemadness.org 70 i 13755
Err codemadness.org 70 i 13756

Sometime in the last week OpenBSD crossed 400,000 commits (*) upon all our repositories since starting at 1995/10/18 08:37:01 Canada/Mountain. That's a lot of commits by a lot of amazing people.

Err codemadness.org 70 i 13757 Err codemadness.org 70 i 13758

(*) by one measure. Since the repository is so large and old, there are a variety of quirks including ChangeLog missing entries and branches not convertible to other repo forms, so measuring is hard. If you think you've got a great way of measuring, don't be so sure of yourself -- you may have overcounted or undercounted.

Err codemadness.org 70 i 13759
Err codemadness.org 70 i 13760 Err codemadness.org 70 i 13761
    Err codemadness.org 70 i 13762
  • Subject to the notes Theo made about under and over counting, FreeBSD should hit 1 million commits (base + ports + docs) some time in 2020
  • Err codemadness.org 70 i 13763
  • NetBSD + pkgsrc are approaching 600,000, but of course pkgsrc covers other operating systems too
  • Err codemadness.org 70 i 13764
Err codemadness.org 70 i 13765 Err codemadness.org 70 i 13766
Err codemadness.org 70 i 13767 Err codemadness.org 70 i 13768

How to Install Bolt CMS with Nginx and Let's Encrypt on FreeBSD 12

Err codemadness.org 70 i 13769 Err codemadness.org 70 i 13770
Err codemadness.org 70 i 13771

Bolt is a sophisticated, lightweight and simple CMS built with PHP. It is released under the open-source MIT-license and source code is hosted as a public repository on Github. A bolt is a tool for Content Management, which strives to be as simple and straightforward as possible. It is quick to set up, easy to configure, uses elegant templates. Bolt is created using modern open-source libraries and is best suited to build sites in HTML5 with modern markup. In this tutorial, we will go through the Bolt CMS installation on FreeBSD 12 system by using Nginx as a web server, MySQL as a database server, and optionally you can secure the transport layer by using acme.sh client and Let's Encrypt certificate authority to add SSL support.

Err codemadness.org 70 i 13772
Err codemadness.org 70 i 13773 Err codemadness.org 70 i 13774
    Err codemadness.org 70 i 13775
  • Requirements
  • Err codemadness.org 70 i 13776
  • The system requirements for Bolt are modest, and it should run on any fairly modern web server: Err codemadness.org 70 i 13777 Err codemadness.org 70 i 13778
      Err codemadness.org 70 i 13779
    • PHP version 5.5.9 or higher with the following common PHP extensions: pdo, mysqlnd, pgsql, openssl, curl, gd, intl, json, mbstring, opcache, posix, xml, fileinfo, exif, zip.
    • Err codemadness.org 70 i 13780
    • Access to SQLite (which comes bundled with PHP), or MySQL or PostgreSQL.
    • Err codemadness.org 70 i 13781
    • Apache with mod_rewrite enabled (.htaccess files) or Nginx (virtual host configuration covered below).
    • Err codemadness.org 70 i 13782
    • A minimum of 32MB of memory allocated to PHP.
    • Err codemadness.org 70 i 13783
  • Err codemadness.org 70 i 13784
Err codemadness.org 70 i 13785 Err codemadness.org 70 i 13786
Err codemadness.org 70 i 13787 Err codemadness.org 70 i 13788

hammer2 - Optimize hammer2 support threads and dispatch

Err codemadness.org 70 i 13789 Err codemadness.org 70 i 13790
Err codemadness.org 70 i 13791

Refactor the XOP groups in order to be able to queue strategy calls, whenever possible, to the same CPU as the issuer. This optimizes several cases and reduces unnecessary IPI traffic between cores. The next best thing to do would be to not queue certain XOPs to an H2 support thread at all, but I would like to keep the threads intact for later clustering work.

Err codemadness.org 70 i 13792 The best scaling case for this is when one has a large number of user threads doing I/O. One instance of a single-threaded program on an otherwise idle machine might see a slightly reduction in performance but at the same time we completely avoid unnecessarily spamming all cores in the system on the behalf of a single program, so overhead is also significantly lower.

Err codemadness.org 70 i 13793 Err codemadness.org 70 i 13794

This will tend to increase the number of H2 support threads since we need a certain degree of multiplication for domain separation.

Err codemadness.org 70 i 13795 Err codemadness.org 70 i 13796

This should significantly increase I/O performance for multi-threaded workloads.

Err codemadness.org 70 i 13797
Err codemadness.org 70 i 13798 Err codemadness.org 70 i 13799
Err codemadness.org 70 i 13800 Err codemadness.org 70 i 13801

You know, we might as well just run every network service over HTTPS/2 and build another six layers on top of that to appease the OSI 7-layer burrito guys

Err codemadness.org 70 i 13802 Err codemadness.org 70 i 13803
Err codemadness.org 70 i 13804

I've seen the writing on the wall, and while for now you can configure Firefox not to use DoH, I'm not confident enough to think it will remain that way. To that end, I've finally set up my own DoH server for use at Chez Boca. It only involved setting up my own CA to generate the appropriate certificates, install my CA certificate into Firefox, configure Apache to run over HTTP/2 (THANK YOU SO VERY XXXXX­XX MUCH GOOGLE FOR SHOVING THIS HTTP/2 XXXXX­XXX DOWN OUR THROATS!—no, I'm not bitter) and write a 150 line script that just queries my own local DNS, because, you know, it's more XXXXX­XX secure or some XXXXX­XXX reason like that.

Err codemadness.org 70 i 13805 Err codemadness.org 70 i 13806

Sigh.

Err codemadness.org 70 i 13807
Err codemadness.org 70 i 13808 Err codemadness.org 70 i 13809
Err codemadness.org 70 i 13810 Err codemadness.org 70 i 13811

Beastie Bits

Err codemadness.org 70 i 13812 Err codemadness.org 70 i 13813 Err codemadness.org 70 i 13822 Err codemadness.org 70 i 13823
Err codemadness.org 70 i 13824 Err codemadness.org 70 i 13825

Feedback/Questions

Err codemadness.org 70 i 13826 Err codemadness.org 70 i 13827 Err codemadness.org 70 i 13835 Err codemadness.org 70 i 13836
Err codemadness.org 70 i 13837 Err codemadness.org 70 i 13838 ]]> Err codemadness.org 70 i 13842
Err codemadness.org 70 i 13843 Err codemadness.org 70 i 13844 The earliest Unix code, how to replace fail2ban with blacklistd, OpenBSD crossed 400k commits, how to install Bolt CMS on FreeBSD, optimized hammer2, appeasing the OSI 7-layer burrito guys, and more.

Err codemadness.org 70 i 13845 Err codemadness.org 70 i 13846

Headlines

Err codemadness.org 70 i 13847 Err codemadness.org 70 i 13848

The Earliest Unix Code: An Anniversary Source Code Release

Err codemadness.org 70 i 13849 Err codemadness.org 70 i 13850
Err codemadness.org 70 i 13851

What is it that runs the servers that hold our online world, be it the web or the cloud? What enables the mobile apps that are at the center of increasingly on-demand lives in the developed world and of mobile banking and messaging in the developing world? The answer is the operating system Unix and its many descendants: Linux, Android, BSD Unix, MacOS, iOS—the list goes on and on. Want to glimpse the Unix in your Mac? Open a Terminal window and enter “man roff” to view the Unix manual entry for an early text formatting program that lives within your operating system.

Err codemadness.org 70 i 13852 Err codemadness.org 70 i 13853

2019 marks the 50th anniversary of the start of Unix. In the summer of 1969, that same summer that saw humankind’s first steps on the surface of the Moon, computer scientists at the Bell Telephone Laboratories—most centrally Ken Thompson and Dennis Ritchie—began the construction of a new operating system, using a then-aging DEC PDP-7 computer at the labs.

Err codemadness.org 70 i 13854
Err codemadness.org 70 i 13855 Err codemadness.org 70 i 13856
Err codemadness.org 70 i 13857 Err codemadness.org 70 i 13858

This man sent the first online message 50 years ago

Err codemadness.org 70 i 13859 Err codemadness.org 70 i 13860
    Err codemadness.org 70 i 13861
  • As many of you have heard in the past, the first online message ever sent between two computers was "lo", just over 50 years ago, on Oct. 29, 1969.
  • Err codemadness.org 70 i 13862
Err codemadness.org 70 i 13863 Err codemadness.org 70 i 13864
Err codemadness.org 70 i 13865

It was supposed to say "log," but the computer sending the message — based at UCLA — crashed before the letter "g" was typed. A computer at Stanford 560 kilometres away was supposed to fill in the remaining characters "in," as in "log in."

Err codemadness.org 70 i 13866
Err codemadness.org 70 i 13867 Err codemadness.org 70 i 13868
    Err codemadness.org 70 i 13869
  • The CBC Radio show, “The Current” has a half-hour interview with the man who sent that message, Leonard Kleinrock, distinguished professor of computer science at UCLA
  • Err codemadness.org 70 i 13870
Err codemadness.org 70 i 13871 Err codemadness.org 70 i 13872
Err codemadness.org 70 i 13873

"The idea of the network was you could sit at one computer, log on through the network to a remote computer and use its services there,"

Err codemadness.org 70 i 13874 Err codemadness.org 70 i 13875

50 years later, the internet has become so ubiquitous that it has almost been rendered invisible. There's hardly an aspect in our daily lives that hasn't been touched and transformed by it.

Err codemadness.org 70 i 13876 Err codemadness.org 70 i 13877

Q: Take us back to that day 50 years ago. Did you have the sense that this was going to be something you'd be talking about a half a century later?

Err codemadness.org 70 i 13878 Err codemadness.org 70 i 13879

A: Well, yes and no. Four months before that message was sent, there was a press release that came out of UCLA in which it quotes me as describing what my vision for this network would become. Basically what it said is that this network would be always on, always available. Anybody with any device could get on at anytime from any location, and it would be invisible.

Err codemadness.org 70 i 13880 Err codemadness.org 70 i 13881

Well, what I missed ... was that this is going to become a social network. People talking to people. Not computers talking to computers, but [the] human element.

Err codemadness.org 70 i 13882 Err codemadness.org 70 i 13883

Q: Can you briefly explain what you were working on in that lab? Why were you trying to get computers to actually talk to one another?

Err codemadness.org 70 i 13884 Err codemadness.org 70 i 13885

A: As an MIT graduate student, years before, I recognized I was surrounded by computers and I realized there was no effective [or efficient] way for them to communicate. I did my dissertation, my research, on establishing a mathematical theory of how these networks would work. But there was no such network existing. AT&T said it won't work and, even if it does, we want nothing to do with it.

Err codemadness.org 70 i 13886 Err codemadness.org 70 i 13887

So I had to wait around for years until the Advanced Research Projects Agency within the Department of Defence decided they needed a network to connect together the computer scientists they were supervising and supporting.

Err codemadness.org 70 i 13888 Err codemadness.org 70 i 13889

Q: For all the promise of the internet, it has also developed some dark sides that I'm guessing pioneers like yourselves never anticipated.

Err codemadness.org 70 i 13890 Err codemadness.org 70 i 13891

A: We did not. I knew everybody on the internet at that time, and they were all well-behaved and they all believed in an open, shared free network. So we did not put in any security controls.

Err codemadness.org 70 i 13892 Err codemadness.org 70 i 13893

When the first spam email occurred, we began to see the dark side emerge as this network reached nefarious people sitting in basements with a high-speed connection, reaching out to millions of people instantaneously, at no cost in time or money, anonymously until all sorts of unpleasant events occurred, which we called the dark side.

Err codemadness.org 70 i 13894 Err codemadness.org 70 i 13895

But in those early days, I considered the network to be going through its teenage years. Hacking to spam, annoying kinds of effects. I thought that one day this network would mature and grow up. Well, in fact, it took a turn for the worse when nation states, organized crime and extremists came in and began to abuse the network in severe ways.

Err codemadness.org 70 i 13896 Err codemadness.org 70 i 13897

Q: Is there any part of you that regrets giving birth to this?

Err codemadness.org 70 i 13898 Err codemadness.org 70 i 13899

A: Absolutely not. The greater good is much more important.

Err codemadness.org 70 i 13900
Err codemadness.org 70 i 13901 Err codemadness.org 70 i 13902
Err codemadness.org 70 i 13903 Err codemadness.org 70 i 13904

News Roundup

Err codemadness.org 70 i 13905 Err codemadness.org 70 i 13906

How to use blacklistd(8) with NPF as a fail2ban replacement

Err codemadness.org 70 i 13907 Err codemadness.org 70 i 13908
Err codemadness.org 70 i 13909

blacklistd(8) provides an API that can be used by network daemons to communicate with a packet filter via a daemon to enforce opening and closing ports dynamically based on policy.

Err codemadness.org 70 i 13910 Err codemadness.org 70 i 13911

The interface to the packet filter is in /libexec/blacklistd-helper (this is currently designed for npf) and the configuration file (inspired from inetd.conf) is in etc/blacklistd.conf

Err codemadness.org 70 i 13912 Err codemadness.org 70 i 13913

Now, blacklistd(8) will require bpfjit(4) (Just-In-Time compiler for Berkeley Packet Filter) in order to properly work, in addition to, naturally, npf(7) as frontend and syslogd(8), as a backend to print diagnostic messages. Also remember npf shall rely on the npflog* virtual network interface to provide logging for tcpdump() to use.

Err codemadness.org 70 i 13914 Err codemadness.org 70 i 13915

Unfortunately (dont' ask me why ??) in 8.1 all the required kernel components are still not compiled by default in the GENERIC kernel (though they are in HEAD), and are rather provided as modules. Enabling NPF and blacklistd services would normally result in them being automatically loaded as root, but predictably on securelevel=1 this is not going to happen.

Err codemadness.org 70 i 13916
Err codemadness.org 70 i 13917 Err codemadness.org 70 i 13918 Err codemadness.org 70 i 13921 Err codemadness.org 70 i 13922
Err codemadness.org 70 i 13923 Err codemadness.org 70 i 13924

OpenBSD crossed 400,000 commits

Err codemadness.org 70 i 13925 Err codemadness.org 70 i 13926
Err codemadness.org 70 i 13927

Sometime in the last week OpenBSD crossed 400,000 commits (*) upon all our repositories since starting at 1995/10/18 08:37:01 Canada/Mountain. That's a lot of commits by a lot of amazing people.

Err codemadness.org 70 i 13928 Err codemadness.org 70 i 13929

(*) by one measure. Since the repository is so large and old, there are a variety of quirks including ChangeLog missing entries and branches not convertible to other repo forms, so measuring is hard. If you think you've got a great way of measuring, don't be so sure of yourself -- you may have overcounted or undercounted.

Err codemadness.org 70 i 13930
Err codemadness.org 70 i 13931 Err codemadness.org 70 i 13932
    Err codemadness.org 70 i 13933
  • Subject to the notes Theo made about under and over counting, FreeBSD should hit 1 million commits (base + ports + docs) some time in 2020
  • Err codemadness.org 70 i 13934
  • NetBSD + pkgsrc are approaching 600,000, but of course pkgsrc covers other operating systems too
  • Err codemadness.org 70 i 13935
Err codemadness.org 70 i 13936 Err codemadness.org 70 i 13937
Err codemadness.org 70 i 13938 Err codemadness.org 70 i 13939

How to Install Bolt CMS with Nginx and Let's Encrypt on FreeBSD 12

Err codemadness.org 70 i 13940 Err codemadness.org 70 i 13941
Err codemadness.org 70 i 13942

Bolt is a sophisticated, lightweight and simple CMS built with PHP. It is released under the open-source MIT-license and source code is hosted as a public repository on Github. A bolt is a tool for Content Management, which strives to be as simple and straightforward as possible. It is quick to set up, easy to configure, uses elegant templates. Bolt is created using modern open-source libraries and is best suited to build sites in HTML5 with modern markup. In this tutorial, we will go through the Bolt CMS installation on FreeBSD 12 system by using Nginx as a web server, MySQL as a database server, and optionally you can secure the transport layer by using acme.sh client and Let's Encrypt certificate authority to add SSL support.

Err codemadness.org 70 i 13943
Err codemadness.org 70 i 13944 Err codemadness.org 70 i 13945
    Err codemadness.org 70 i 13946
  • Requirements
  • Err codemadness.org 70 i 13947
  • The system requirements for Bolt are modest, and it should run on any fairly modern web server: Err codemadness.org 70 i 13948 Err codemadness.org 70 i 13949
      Err codemadness.org 70 i 13950
    • PHP version 5.5.9 or higher with the following common PHP extensions: pdo, mysqlnd, pgsql, openssl, curl, gd, intl, json, mbstring, opcache, posix, xml, fileinfo, exif, zip.
    • Err codemadness.org 70 i 13951
    • Access to SQLite (which comes bundled with PHP), or MySQL or PostgreSQL.
    • Err codemadness.org 70 i 13952
    • Apache with mod_rewrite enabled (.htaccess files) or Nginx (virtual host configuration covered below).
    • Err codemadness.org 70 i 13953
    • A minimum of 32MB of memory allocated to PHP.
    • Err codemadness.org 70 i 13954
  • Err codemadness.org 70 i 13955
Err codemadness.org 70 i 13956 Err codemadness.org 70 i 13957
Err codemadness.org 70 i 13958 Err codemadness.org 70 i 13959

hammer2 - Optimize hammer2 support threads and dispatch

Err codemadness.org 70 i 13960 Err codemadness.org 70 i 13961
Err codemadness.org 70 i 13962

Refactor the XOP groups in order to be able to queue strategy calls, whenever possible, to the same CPU as the issuer. This optimizes several cases and reduces unnecessary IPI traffic between cores. The next best thing to do would be to not queue certain XOPs to an H2 support thread at all, but I would like to keep the threads intact for later clustering work.

Err codemadness.org 70 i 13963 The best scaling case for this is when one has a large number of user threads doing I/O. One instance of a single-threaded program on an otherwise idle machine might see a slightly reduction in performance but at the same time we completely avoid unnecessarily spamming all cores in the system on the behalf of a single program, so overhead is also significantly lower.

Err codemadness.org 70 i 13964 Err codemadness.org 70 i 13965

This will tend to increase the number of H2 support threads since we need a certain degree of multiplication for domain separation.

Err codemadness.org 70 i 13966 Err codemadness.org 70 i 13967

This should significantly increase I/O performance for multi-threaded workloads.

Err codemadness.org 70 i 13968
Err codemadness.org 70 i 13969 Err codemadness.org 70 i 13970
Err codemadness.org 70 i 13971 Err codemadness.org 70 i 13972

You know, we might as well just run every network service over HTTPS/2 and build another six layers on top of that to appease the OSI 7-layer burrito guys

Err codemadness.org 70 i 13973 Err codemadness.org 70 i 13974
Err codemadness.org 70 i 13975

I've seen the writing on the wall, and while for now you can configure Firefox not to use DoH, I'm not confident enough to think it will remain that way. To that end, I've finally set up my own DoH server for use at Chez Boca. It only involved setting up my own CA to generate the appropriate certificates, install my CA certificate into Firefox, configure Apache to run over HTTP/2 (THANK YOU SO VERY XXXXX­XX MUCH GOOGLE FOR SHOVING THIS HTTP/2 XXXXX­XXX DOWN OUR THROATS!—no, I'm not bitter) and write a 150 line script that just queries my own local DNS, because, you know, it's more XXXXX­XX secure or some XXXXX­XXX reason like that.

Err codemadness.org 70 i 13976 Err codemadness.org 70 i 13977

Sigh.

Err codemadness.org 70 i 13978
Err codemadness.org 70 i 13979 Err codemadness.org 70 i 13980
Err codemadness.org 70 i 13981 Err codemadness.org 70 i 13982

Beastie Bits

Err codemadness.org 70 i 13983 Err codemadness.org 70 i 13984 Err codemadness.org 70 i 13993 Err codemadness.org 70 i 13994
Err codemadness.org 70 i 13995 Err codemadness.org 70 i 13996

Feedback/Questions

Err codemadness.org 70 i 13997 Err codemadness.org 70 i 13998 Err codemadness.org 70 i 14006 Err codemadness.org 70 i 14007
Err codemadness.org 70 i 14008 Err codemadness.org 70 i 14009 ]]> Err codemadness.org 70 i 14013
Err codemadness.org 70 i 14014 https://fireside.fm/player/v2/FYhhasNR+UtiLBigh Err codemadness.org 70 i 14015 Err codemadness.org 70 i 14016 ]]> Err codemadness.org 70 i 14017 Err codemadness.org 70 i 14018
Err codemadness.org 70 i 14019 Err codemadness.org 70 i 14020 322: Happy Birthday, Unix Err codemadness.org 70 i 14021 https://www.bsdnow.tv/322 Err codemadness.org 70 i 14022 9f37f100-02f4-4b71-9eeb-3e9fa09f147c Err codemadness.org 70 i 14023 Thu, 31 Oct 2019 04:00:00 -0700 Err codemadness.org 70 i 14024 Allan Jude Err codemadness.org 70 i 14025 Err codemadness.org 70 i 14026 full Err codemadness.org 70 i 14027 Allan Jude Err codemadness.org 70 i 14028 Unix is 50, Hunting down Ken's PDP-7, OpenBSD and OPNSense have new releases, Clarification on what GhostBSD is, sshuttle - VPN over SSH, and more. Err codemadness.org 70 i 14029 1:07:30 Err codemadness.org 70 i 14030 no Err codemadness.org 70 i 14031 Err codemadness.org 70 i 14032 Unix is 50, Hunting down Ken's PDP-7, OpenBSD and OPNSense have new releases, Clarification on what GhostBSD is, sshuttle - VPN over SSH, and more. Err codemadness.org 70 i 14033 Headlines Err codemadness.org 70 i 14034 Unix is 50 (https://www.bell-labs.com/unix50/) Err codemadness.org 70 i 14035 In the summer of 1969 computer scientists Ken Thompson and Dennis Ritchie created the first implementation of Unix with the goal of designing an elegant and economical operating system for a little-used PDP-7 minicomputer at Bell Labs. That modest project, however, would have a far-reaching legacy. Unix made large-scale networking of diverse computing systems — and the Internet — practical. The Unix team went on to develop the C language, which brought an unprecedented combination of efficiency and expressiveness to programming. Both made computing more "portable". Today, Linux, the most popular descendent of Unix, powers the vast majority of servers, and elements of Unix and Linux are found in most mobile devices. Meanwhile C++ remains one of the most widely used programming languages today. Unix may be a half-century old but its influence is only growing. Err codemadness.org 70 i 14036 Hunting down Ken's PDP-7: video footage found (https://bsdimp.blogspot.com/2019/10/video-footage-of-first-pdp-7-to-run-unix.html) Err codemadness.org 70 i 14037 In my prior blog post, I traced Ken's scrounged PDP-7 to SN 34. In this post I'll show that we have actual video footage of that PDP-7 due to an old film from Bell Labs. this gives us almost a minute of footage of the PDP-7 Ken later used to create Unix. Err codemadness.org 70 i 14038 News Roundup Err codemadness.org 70 i 14039 OpenBSD 6.6 Released (https://openbsd.org/66.html) Err codemadness.org 70 i 14040 Announce: https://marc.info/?l=openbsd-tech&m=157132024225971&w=2 Err codemadness.org 70 i 14041 Upgrade Guide: https://openbsd.org/faq/upgrade66.html Err codemadness.org 70 i 14042 Changelog: https://openbsd.org/plus66.html Err codemadness.org 70 i 14043 OPNsense 19.7.5 released (https://opnsense.org/opnsense-19-7-5-released/) Err codemadness.org 70 i 14044 Hello friends and followers, Lots of plugin and ports updates this time with a few minor improvements in all core areas. Behind the scenes we are starting to migrate the base system to version Err codemadness.org 70 i 14045 12.1 which is supposed to hit the next 20.1 release. Stay tuned for more infos in the next month or so. Err codemadness.org 70 i 14046 Here are the full patch notes: Err codemadness.org 70 i 14047 + system: show all swap partitions in system information widget Err codemadness.org 70 i 14048 + system: flatten services_get() in preparation for removal Err codemadness.org 70 i 14049 + system: pin Syslog-ng version to specific package name Err codemadness.org 70 i 14050 + system: fix LDAP/StartTLS with user import page Err codemadness.org 70 i 14051 + system: fix a PHP warning on authentication server page Err codemadness.org 70 i 14052 + system: replace most subprocess.call use Err codemadness.org 70 i 14053 + interfaces: fix devd handling of carp devices (contributed by stumbaumr) Err codemadness.org 70 i 14054 + firewall: improve firewall rules inline toggles Err codemadness.org 70 i 14055 + firewall: only allow TCP flags on TCP protocol Err codemadness.org 70 i 14056 + firewall: simplify help text for direction setting Err codemadness.org 70 i 14057 + firewall: make protocol log summary case insensitive Err codemadness.org 70 i 14058 + reporting: ignore malformed flow records Err codemadness.org 70 i 14059 + captive portal: fix type mismatch for timeout read Err codemadness.org 70 i 14060 + dhcp: add note for static lease limitation with lease registration (contributed by Northguy) Err codemadness.org 70 i 14061 + ipsec: add margintime and rekeyfuzz options Err codemadness.org 70 i 14062 + ipsec: clear $dpdline correctly if not set Err codemadness.org 70 i 14063 + ui: fix tokenizer reorder on multiple saves Err codemadness.org 70 i 14064 + plugins: os-acme-client 1.26[1] Err codemadness.org 70 i 14065 + plugins: os-bind will reload bind on record change (contributed by blablup) Err codemadness.org 70 i 14066 + plugins: os-etpro-telemetry minor subprocess.call replacement Err codemadness.org 70 i 14067 + plugins: os-freeradius 1.9.4[2] Err codemadness.org 70 i 14068 + plugins: os-frr 1.12[3] Err codemadness.org 70 i 14069 + plugins: os-haproxy 2.19[4] Err codemadness.org 70 i 14070 + plugins: os-mailtrail 1.2[5] Err codemadness.org 70 i 14071 + plugins: os-postfix 1.11[6] Err codemadness.org 70 i 14072 + plugins: os-rspamd 1.8[7] Err codemadness.org 70 i 14073 + plugins: os-sunnyvalley LibreSSL support (contributed by Sunny Valley Networks) Err codemadness.org 70 i 14074 + plugins: os-telegraf 1.7.6[8] Err codemadness.org 70 i 14075 + plugins: os-theme-cicada 1.21 (contributed by Team Rebellion) Err codemadness.org 70 i 14076 + plugins: os-theme-tukan 1.21 (contributed by Team Rebellion) Err codemadness.org 70 i 14077 + plugins: os-tinc minor subprocess.call replacement Err codemadness.org 70 i 14078 + plugins: os-tor 1.8 adds dormant mode disable option (contributed by Fabian Franz) Err codemadness.org 70 i 14079 + plugins: os-virtualbox 1.0 (contributed by andrewhotlab) Err codemadness.org 70 i 14080 Dealing with the misunderstandings of what is GhostBSD (http://ghostbsd.org/node/194) Err codemadness.org 70 i 14081 Since the release of 19.09, I have seen a lot of misunderstandings on what is GhostBSD and the future of GhostBSD. GhostBSD is based on TrueOS with FreeBSD 12 STABLE with our twist to it. We are still continuing to use TrueOS for OpenRC, and the new package's system for the base system that is built from ports. GhostBSD is becoming a slow-moving rolling release base on the latest TrueOS with FreeBSD 12 STABLE. When FreeBSD 13 STABLE gets released, GhostBSD will be upgraded to TrueOS with FreeBSD 13 STABLE. Err codemadness.org 70 i 14082 Our official desktop is MATE, which means that the leading developer of GhostBSD does not officially support XFCE. Community releases are maintained by the community and for the community. GhostBSD project will provide help to build and to host the community release. If anyone wants to have a particular desktop supported, it is up to the community. Sure I will help where I can, answer questions and guide new community members that contribute to community release. Err codemadness.org 70 i 14083 There is some effort going on for Plasma5 desktop. If anyone is interested in helping with XFCE and Plasma5 or in creating another community release, you are well come to contribute. Also, Contribution to the GhostBSD base system, to ports and new ports, and in house software are welcome. We are mostly active on Telegram https://t.me/ghostbsd, but you can also reach us on the forum. Err codemadness.org 70 i 14084 SHUTTLE – VPN over SSH | VPN Alternative (https://www.terminalbytes.com/sshuttle-vpn-over-ssh-vpn-alternative/) Err codemadness.org 70 i 14085 Looking for a lightweight VPN client, but are not ready to spend a monthly recurring amount on a VPN? VPNs can be expensive depending upon the quality of service and amount of privacy you want. A good VPN plan can easily set you back by 10$ a month and even that doesn’t guarantee your privacy. There is no way to be sure whether the VPN is storing your confidential information and traffic logs or not. sshuttle is the answer to your problem it provides VPN over ssh and in this article we’re going to explore this cheap yet powerful alternative to the expensive VPNs. By using open source tools you can control your own privacy. Err codemadness.org 70 i 14086 VPN over SSH – sshuttle Err codemadness.org 70 i 14087 sshuttle is an awesome program that allows you to create a VPN connection from your local machine to any remote server that you have ssh access on. The tunnel established over the ssh connection can then be used to route all your traffic from client machine through the remote machine including all the dns traffic. In the bare bones sshuttle is just a proxy server which runs on the client machine and forwards all the traffic to a ssh tunnel. Since its open source it holds quite a lot of major advantages over traditional VPN. Err codemadness.org 70 i 14088 OpenSSH 8.1 Released (http://www.openssh.com/txt/release-8.1) Err codemadness.org 70 i 14089 Security Err codemadness.org 70 i 14090 ssh(1), sshd(8), ssh-add(1), ssh-keygen(1): an exploitable integer overflow bug was found in the private key parsing code for the XMSS key type. This key type is still experimental and support for it is not compiled by default. No user-facing autoconf option exists in portable OpenSSH to enable it. This bug was found by Adam Zabrocki and reported via SecuriTeam's SSD program. Err codemadness.org 70 i 14091 ssh(1), sshd(8), ssh-agent(1): add protection for private keys at rest in RAM against speculation and memory side-channel attacks like Spectre, Meltdown and Rambleed. This release encrypts private keys when they are not in use with a symmetric key that is derived from a relatively large "prekey" consisting of random data (currently 16KB). Err codemadness.org 70 i 14092 This release includes a number of changes that may affect existing configurations: Err codemadness.org 70 i 14093 ssh-keygen(1): when acting as a CA and signing certificates with an RSA key, default to using the rsa-sha2-512 signature algorithm. Certificates signed by RSA keys will therefore be incompatible with OpenSSH versions prior to 7.2 unless the default is overridden (using "ssh-keygen -t ssh-rsa -s ..."). Err codemadness.org 70 i 14094 New Features Err codemadness.org 70 i 14095 ssh(1): Allow %n to be expanded in ProxyCommand strings Err codemadness.org 70 i 14096 ssh(1), sshd(8): Allow prepending a list of algorithms to the default set by starting the list with the '^' character, E.g. "HostKeyAlgorithms ^ssh-ed25519" Err codemadness.org 70 i 14097 ssh-keygen(1): add an experimental lightweight signature and verification ability. Signatures may be made using regular ssh keys held on disk or stored in a ssh-agent and verified against an authorized_keys-like list of allowed keys. Signatures embed a namespace that prevents confusion and attacks between different usage domains (e.g. files vs email). Err codemadness.org 70 i 14098 ssh-keygen(1): print key comment when extracting public key from a private key. Err codemadness.org 70 i 14099 ssh-keygen(1): accept the verbose flag when searching for host keys in known hosts (i.e. "ssh-keygen -vF host") to print the matching host's random-art signature too. Err codemadness.org 70 i 14100 All: support PKCS8 as an optional format for storage of private keys to disk. The OpenSSH native key format remains the default, but PKCS8 is a superior format to PEM if interoperability with non-OpenSSH software is required, as it may use a less insecure key derivation function than PEM's. Err codemadness.org 70 i 14101 Beastie Bits Err codemadness.org 70 i 14102 Say goodbye to the 32 CPU limit in NetBSD/aarch64 (https://twitter.com/jmcwhatever/status/1185584719183962112) Err codemadness.org 70 i 14103 vBSDcon 2019 videos (https://www.youtube.com/channel/UCvcdrOSlYOSzOzLjv_n1_GQ/videos) Err codemadness.org 70 i 14104 Browse the web in the terminal - W3M (https://www.youtube.com/watch?v=3Hfda0Tjqsg&feature=youtu.be) Err codemadness.org 70 i 14105 NetBSD 9 and GSoC (http://netbsd.org/~kamil/GSoC2019.html#slide1) Err codemadness.org 70 i 14106 BSDCan 2019 Videos (https://www.youtube.com/playlist?list=PLeF8ZihVdpFegPoAKppaDSoYmsBvpnSZv) Err codemadness.org 70 i 14107 NYC*BUG Install Fest: Nov 6th 18:45 @ Suspenders (https://www.nycbug.org/index?action=view&id=10673) Err codemadness.org 70 i 14108 FreeBSD Miniconf at linux.conf.au 2020 Call for Sessions Now Open (https://www.freebsdfoundation.org/blog/freebsd-miniconf-at-linux-conf-au-2020-call-for-sessions-now-open/) Err codemadness.org 70 i 14109 FOSDEM 2020 - BSD Devroom Call for Participation (https://people.freebsd.org/~rodrigo/fosdem20/) Err codemadness.org 70 i 14110 University of Cambridge looking for Research Assistants/Associates (https://twitter.com/ed_maste/status/1184865668317007874) Err codemadness.org 70 i 14111 Feedback/Questions Err codemadness.org 70 i 14112 Trenton - Beeping Thinkpad (http://dpaste.com/0ZEXNM6#wrap) Err codemadness.org 70 i 14113 Alex - Per user ZFS Datasets (http://dpaste.com/1K31A65#wrap) Err codemadness.org 70 i 14114 Allan’s old patch from 2015 (https://reviews.freebsd.org/D2272) Err codemadness.org 70 i 14115 Javier - FBSD 12.0 + ZFS + encryption (http://dpaste.com/1XX4NNA#wrap) Err codemadness.org 70 i 14116 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 14117 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 14118 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0322.mp4" type="video/mp4"> Err codemadness.org 70 i 14119 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 14120 </video> Err codemadness.org 70 i 14121 Err codemadness.org 70 i 14122 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, unix, 50 years unix, pdp 7, pdp, release, opnsense, ghostbsd, sshuttle, vpn, ssh, vpn over ssh, openssh Err codemadness.org 70 i 14123 Err codemadness.org 70 i 14124 Unix is 50, Hunting down Ken's PDP-7, OpenBSD and OPNSense have new releases, Clarification on what GhostBSD is, sshuttle - VPN over SSH, and more.

Err codemadness.org 70 i 14125 Err codemadness.org 70 i 14126

Headlines

Err codemadness.org 70 i 14127 Err codemadness.org 70 i 14128

Unix is 50

Err codemadness.org 70 i 14129 Err codemadness.org 70 i 14130
Err codemadness.org 70 i 14131

In the summer of 1969 computer scientists Ken Thompson and Dennis Ritchie created the first implementation of Unix with the goal of designing an elegant and economical operating system for a little-used PDP-7 minicomputer at Bell Labs. That modest project, however, would have a far-reaching legacy. Unix made large-scale networking of diverse computing systems — and the Internet — practical. The Unix team went on to develop the C language, which brought an unprecedented combination of efficiency and expressiveness to programming. Both made computing more "portable". Today, Linux, the most popular descendent of Unix, powers the vast majority of servers, and elements of Unix and Linux are found in most mobile devices. Meanwhile C++ remains one of the most widely used programming languages today. Unix may be a half-century old but its influence is only growing.

Err codemadness.org 70 i 14132
Err codemadness.org 70 i 14133 Err codemadness.org 70 i 14134
Err codemadness.org 70 i 14135 Err codemadness.org 70 i 14136

Hunting down Ken's PDP-7: video footage found

Err codemadness.org 70 i 14137 Err codemadness.org 70 i 14138
Err codemadness.org 70 i 14139

In my prior blog post, I traced Ken's scrounged PDP-7 to SN 34. In this post I'll show that we have actual video footage of that PDP-7 due to an old film from Bell Labs. this gives us almost a minute of footage of the PDP-7 Ken later used to create Unix.

Err codemadness.org 70 i 14140
Err codemadness.org 70 i 14141 Err codemadness.org 70 i 14142
Err codemadness.org 70 i 14143 Err codemadness.org 70 i 14144

News Roundup

Err codemadness.org 70 i 14145 Err codemadness.org 70 i 14146

OpenBSD 6.6 Released

Err codemadness.org 70 i 14147 Err codemadness.org 70 i 14148 Err codemadness.org 70 i 14153 Err codemadness.org 70 i 14154
Err codemadness.org 70 i 14155 Err codemadness.org 70 i 14156

OPNsense 19.7.5 released

Err codemadness.org 70 i 14157 Err codemadness.org 70 i 14158
Err codemadness.org 70 i 14159

Hello friends and followers, Lots of plugin and ports updates this time with a few minor improvements in all core areas. Behind the scenes we are starting to migrate the base system to version

Err codemadness.org 70 i 14160
Err codemadness.org 70 i 14161 Err codemadness.org 70 i 14162

12.1 which is supposed to hit the next 20.1 release. Stay tuned for more infos in the next month or so.

Err codemadness.org 70 i 14163 Err codemadness.org 70 i 14164

Here are the full patch notes:

Err codemadness.org 70 i 14165 Err codemadness.org 70 i 14166
    Err codemadness.org 70 i 14167
  • system: show all swap partitions in system information widget
  • Err codemadness.org 70 i 14168
  • system: flatten services_get() in preparation for removal
  • Err codemadness.org 70 i 14169
  • system: pin Syslog-ng version to specific package name
  • Err codemadness.org 70 i 14170
  • system: fix LDAP/StartTLS with user import page
  • Err codemadness.org 70 i 14171
  • system: fix a PHP warning on authentication server page
  • Err codemadness.org 70 i 14172
  • system: replace most subprocess.call use
  • Err codemadness.org 70 i 14173
  • interfaces: fix devd handling of carp devices (contributed by stumbaumr)
  • Err codemadness.org 70 i 14174
  • firewall: improve firewall rules inline toggles
  • Err codemadness.org 70 i 14175
  • firewall: only allow TCP flags on TCP protocol
  • Err codemadness.org 70 i 14176
  • firewall: simplify help text for direction setting
  • Err codemadness.org 70 i 14177
  • firewall: make protocol log summary case insensitive
  • Err codemadness.org 70 i 14178
  • reporting: ignore malformed flow records
  • Err codemadness.org 70 i 14179
  • captive portal: fix type mismatch for timeout read
  • Err codemadness.org 70 i 14180
  • dhcp: add note for static lease limitation with lease registration (contributed by Northguy)
  • Err codemadness.org 70 i 14181
  • ipsec: add margintime and rekeyfuzz options
  • Err codemadness.org 70 i 14182
  • ipsec: clear $dpdline correctly if not set
  • Err codemadness.org 70 i 14183
  • ui: fix tokenizer reorder on multiple saves
  • Err codemadness.org 70 i 14184
  • plugins: os-acme-client 1.26[1]
  • Err codemadness.org 70 i 14185
  • plugins: os-bind will reload bind on record change (contributed by blablup)
  • Err codemadness.org 70 i 14186
  • plugins: os-etpro-telemetry minor subprocess.call replacement
  • Err codemadness.org 70 i 14187
  • plugins: os-freeradius 1.9.4[2]
  • Err codemadness.org 70 i 14188
  • plugins: os-frr 1.12[3]
  • Err codemadness.org 70 i 14189
  • plugins: os-haproxy 2.19[4]
  • Err codemadness.org 70 i 14190
  • plugins: os-mailtrail 1.2[5]
  • Err codemadness.org 70 i 14191
  • plugins: os-postfix 1.11[6]
  • Err codemadness.org 70 i 14192
  • plugins: os-rspamd 1.8[7]
  • Err codemadness.org 70 i 14193
  • plugins: os-sunnyvalley LibreSSL support (contributed by Sunny Valley Networks)
  • Err codemadness.org 70 i 14194
  • plugins: os-telegraf 1.7.6[8]
  • Err codemadness.org 70 i 14195
  • plugins: os-theme-cicada 1.21 (contributed by Team Rebellion)
  • Err codemadness.org 70 i 14196
  • plugins: os-theme-tukan 1.21 (contributed by Team Rebellion)
  • Err codemadness.org 70 i 14197
  • plugins: os-tinc minor subprocess.call replacement
  • Err codemadness.org 70 i 14198
  • plugins: os-tor 1.8 adds dormant mode disable option (contributed by Fabian Franz)
  • Err codemadness.org 70 i 14199
  • plugins: os-virtualbox 1.0 (contributed by andrewhotlab)
  • Err codemadness.org 70 i 14200
Err codemadness.org 70 i 14201 Err codemadness.org 70 i 14202
Err codemadness.org 70 i 14203 Err codemadness.org 70 i 14204

Dealing with the misunderstandings of what is GhostBSD

Err codemadness.org 70 i 14205 Err codemadness.org 70 i 14206
Err codemadness.org 70 i 14207

Since the release of 19.09, I have seen a lot of misunderstandings on what is GhostBSD and the future of GhostBSD. GhostBSD is based on TrueOS with FreeBSD 12 STABLE with our twist to it. We are still continuing to use TrueOS for OpenRC, and the new package's system for the base system that is built from ports. GhostBSD is becoming a slow-moving rolling release base on the latest TrueOS with FreeBSD 12 STABLE. When FreeBSD 13 STABLE gets released, GhostBSD will be upgraded to TrueOS with FreeBSD 13 STABLE.

Err codemadness.org 70 i 14208 Err codemadness.org 70 i 14209

Our official desktop is MATE, which means that the leading developer of GhostBSD does not officially support XFCE. Community releases are maintained by the community and for the community. GhostBSD project will provide help to build and to host the community release. If anyone wants to have a particular desktop supported, it is up to the community. Sure I will help where I can, answer questions and guide new community members that contribute to community release.

Err codemadness.org 70 i 14210 Err codemadness.org 70 i 14211

There is some effort going on for Plasma5 desktop. If anyone is interested in helping with XFCE and Plasma5 or in creating another community release, you are well come to contribute. Also, Contribution to the GhostBSD base system, to ports and new ports, and in house software are welcome. We are mostly active on Telegram https://t.me/ghostbsd, but you can also reach us on the forum.

Err codemadness.org 70 i 14212
Err codemadness.org 70 i 14213 Err codemadness.org 70 i 14214
Err codemadness.org 70 i 14215 Err codemadness.org 70 i 14216

SHUTTLE – VPN over SSH | VPN Alternative

Err codemadness.org 70 i 14217 Err codemadness.org 70 i 14218
Err codemadness.org 70 i 14219

Looking for a lightweight VPN client, but are not ready to spend a monthly recurring amount on a VPN? VPNs can be expensive depending upon the quality of service and amount of privacy you want. A good VPN plan can easily set you back by 10$ a month and even that doesn’t guarantee your privacy. There is no way to be sure whether the VPN is storing your confidential information and traffic logs or not. sshuttle is the answer to your problem it provides VPN over ssh and in this article we’re going to explore this cheap yet powerful alternative to the expensive VPNs. By using open source tools you can control your own privacy.

Err codemadness.org 70 i 14220
Err codemadness.org 70 i 14221 Err codemadness.org 70 i 14222
    Err codemadness.org 70 i 14223
  • VPN over SSH – sshuttle
  • Err codemadness.org 70 i 14224
Err codemadness.org 70 i 14225 Err codemadness.org 70 i 14226
Err codemadness.org 70 i 14227

sshuttle is an awesome program that allows you to create a VPN connection from your local machine to any remote server that you have ssh access on. The tunnel established over the ssh connection can then be used to route all your traffic from client machine through the remote machine including all the dns traffic. In the bare bones sshuttle is just a proxy server which runs on the client machine and forwards all the traffic to a ssh tunnel. Since its open source it holds quite a lot of major advantages over traditional VPN.

Err codemadness.org 70 i 14228
Err codemadness.org 70 i 14229 Err codemadness.org 70 i 14230
Err codemadness.org 70 i 14231 Err codemadness.org 70 i 14232

OpenSSH 8.1 Released

Err codemadness.org 70 i 14233 Err codemadness.org 70 i 14234
    Err codemadness.org 70 i 14235
  • Security

    Err codemadness.org 70 i 14236 Err codemadness.org 70 i 14237
      Err codemadness.org 70 i 14238
    • ssh(1), sshd(8), ssh-add(1), ssh-keygen(1): an exploitable integer overflow bug was found in the private key parsing code for the XMSS key type. This key type is still experimental and support for it is not compiled by default. No user-facing autoconf option exists in portable OpenSSH to enable it. This bug was found by Adam Zabrocki and reported via SecuriTeam's SSD program.
    • Err codemadness.org 70 i 14239
    • ssh(1), sshd(8), ssh-agent(1): add protection for private keys at rest in RAM against speculation and memory side-channel attacks like Spectre, Meltdown and Rambleed. This release encrypts private keys when they are not in use with a symmetric key that is derived from a relatively large "prekey" consisting of random data (currently 16KB).
    • Err codemadness.org 70 i 14240
  • Err codemadness.org 70 i 14241
  • This release includes a number of changes that may affect existing configurations:

    Err codemadness.org 70 i 14242 Err codemadness.org 70 i 14243
      Err codemadness.org 70 i 14244
    • ssh-keygen(1): when acting as a CA and signing certificates with an RSA key, default to using the rsa-sha2-512 signature algorithm. Certificates signed by RSA keys will therefore be incompatible with OpenSSH versions prior to 7.2 unless the default is overridden (using "ssh-keygen -t ssh-rsa -s ...").
    • Err codemadness.org 70 i 14245
  • Err codemadness.org 70 i 14246
  • New Features

    Err codemadness.org 70 i 14247 Err codemadness.org 70 i 14248
      Err codemadness.org 70 i 14249
    • ssh(1): Allow %n to be expanded in ProxyCommand strings
    • Err codemadness.org 70 i 14250
    • ssh(1), sshd(8): Allow prepending a list of algorithms to the default set by starting the list with the '' character, E.g. "HostKeyAlgorithms ssh-ed25519"
    • Err codemadness.org 70 i 14251
    • ssh-keygen(1): add an experimental lightweight signature and verification ability. Signatures may be made using regular ssh keys held on disk or stored in a ssh-agent and verified against an authorized_keys-like list of allowed keys. Signatures embed a namespace that prevents confusion and attacks between different usage domains (e.g. files vs email).
    • Err codemadness.org 70 i 14252
    • ssh-keygen(1): print key comment when extracting public key from a private key.
    • Err codemadness.org 70 i 14253
    • ssh-keygen(1): accept the verbose flag when searching for host keys in known hosts (i.e. "ssh-keygen -vF host") to print the matching host's random-art signature too.
    • Err codemadness.org 70 i 14254
    • All: support PKCS8 as an optional format for storage of private keys to disk. The OpenSSH native key format remains the default, but PKCS8 is a superior format to PEM if interoperability with non-OpenSSH software is required, as it may use a less insecure key derivation function than PEM's.
    • Err codemadness.org 70 i 14255
  • Err codemadness.org 70 i 14256
Err codemadness.org 70 i 14257 Err codemadness.org 70 i 14258
Err codemadness.org 70 i 14259 Err codemadness.org 70 i 14260

Beastie Bits

Err codemadness.org 70 i 14261 Err codemadness.org 70 i 14262 Err codemadness.org 70 i 14273 Err codemadness.org 70 i 14274
Err codemadness.org 70 i 14275 Err codemadness.org 70 i 14276

Feedback/Questions

Err codemadness.org 70 i 14277 Err codemadness.org 70 i 14278 Err codemadness.org 70 i 14287 Err codemadness.org 70 i 14288
Err codemadness.org 70 i 14289 Err codemadness.org 70 i 14290
    Err codemadness.org 70 i 14291
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 14292
Err codemadness.org 70 i 14293 Err codemadness.org 70 i 14294
Err codemadness.org 70 i 14295 Err codemadness.org 70 i 14296 ]]> Err codemadness.org 70 i 14300
Err codemadness.org 70 i 14301 Err codemadness.org 70 i 14302 Unix is 50, Hunting down Ken's PDP-7, OpenBSD and OPNSense have new releases, Clarification on what GhostBSD is, sshuttle - VPN over SSH, and more.

Err codemadness.org 70 i 14303 Err codemadness.org 70 i 14304

Headlines

Err codemadness.org 70 i 14305 Err codemadness.org 70 i 14306

Unix is 50

Err codemadness.org 70 i 14307 Err codemadness.org 70 i 14308
Err codemadness.org 70 i 14309

In the summer of 1969 computer scientists Ken Thompson and Dennis Ritchie created the first implementation of Unix with the goal of designing an elegant and economical operating system for a little-used PDP-7 minicomputer at Bell Labs. That modest project, however, would have a far-reaching legacy. Unix made large-scale networking of diverse computing systems — and the Internet — practical. The Unix team went on to develop the C language, which brought an unprecedented combination of efficiency and expressiveness to programming. Both made computing more "portable". Today, Linux, the most popular descendent of Unix, powers the vast majority of servers, and elements of Unix and Linux are found in most mobile devices. Meanwhile C++ remains one of the most widely used programming languages today. Unix may be a half-century old but its influence is only growing.

Err codemadness.org 70 i 14310
Err codemadness.org 70 i 14311 Err codemadness.org 70 i 14312
Err codemadness.org 70 i 14313 Err codemadness.org 70 i 14314

Hunting down Ken's PDP-7: video footage found

Err codemadness.org 70 i 14315 Err codemadness.org 70 i 14316
Err codemadness.org 70 i 14317

In my prior blog post, I traced Ken's scrounged PDP-7 to SN 34. In this post I'll show that we have actual video footage of that PDP-7 due to an old film from Bell Labs. this gives us almost a minute of footage of the PDP-7 Ken later used to create Unix.

Err codemadness.org 70 i 14318
Err codemadness.org 70 i 14319 Err codemadness.org 70 i 14320
Err codemadness.org 70 i 14321 Err codemadness.org 70 i 14322

News Roundup

Err codemadness.org 70 i 14323 Err codemadness.org 70 i 14324

OpenBSD 6.6 Released

Err codemadness.org 70 i 14325 Err codemadness.org 70 i 14326 Err codemadness.org 70 i 14331 Err codemadness.org 70 i 14332
Err codemadness.org 70 i 14333 Err codemadness.org 70 i 14334

OPNsense 19.7.5 released

Err codemadness.org 70 i 14335 Err codemadness.org 70 i 14336
Err codemadness.org 70 i 14337

Hello friends and followers, Lots of plugin and ports updates this time with a few minor improvements in all core areas. Behind the scenes we are starting to migrate the base system to version

Err codemadness.org 70 i 14338
Err codemadness.org 70 i 14339 Err codemadness.org 70 i 14340

12.1 which is supposed to hit the next 20.1 release. Stay tuned for more infos in the next month or so.

Err codemadness.org 70 i 14341 Err codemadness.org 70 i 14342

Here are the full patch notes:

Err codemadness.org 70 i 14343 Err codemadness.org 70 i 14344
    Err codemadness.org 70 i 14345
  • system: show all swap partitions in system information widget
  • Err codemadness.org 70 i 14346
  • system: flatten services_get() in preparation for removal
  • Err codemadness.org 70 i 14347
  • system: pin Syslog-ng version to specific package name
  • Err codemadness.org 70 i 14348
  • system: fix LDAP/StartTLS with user import page
  • Err codemadness.org 70 i 14349
  • system: fix a PHP warning on authentication server page
  • Err codemadness.org 70 i 14350
  • system: replace most subprocess.call use
  • Err codemadness.org 70 i 14351
  • interfaces: fix devd handling of carp devices (contributed by stumbaumr)
  • Err codemadness.org 70 i 14352
  • firewall: improve firewall rules inline toggles
  • Err codemadness.org 70 i 14353
  • firewall: only allow TCP flags on TCP protocol
  • Err codemadness.org 70 i 14354
  • firewall: simplify help text for direction setting
  • Err codemadness.org 70 i 14355
  • firewall: make protocol log summary case insensitive
  • Err codemadness.org 70 i 14356
  • reporting: ignore malformed flow records
  • Err codemadness.org 70 i 14357
  • captive portal: fix type mismatch for timeout read
  • Err codemadness.org 70 i 14358
  • dhcp: add note for static lease limitation with lease registration (contributed by Northguy)
  • Err codemadness.org 70 i 14359
  • ipsec: add margintime and rekeyfuzz options
  • Err codemadness.org 70 i 14360
  • ipsec: clear $dpdline correctly if not set
  • Err codemadness.org 70 i 14361
  • ui: fix tokenizer reorder on multiple saves
  • Err codemadness.org 70 i 14362
  • plugins: os-acme-client 1.26[1]
  • Err codemadness.org 70 i 14363
  • plugins: os-bind will reload bind on record change (contributed by blablup)
  • Err codemadness.org 70 i 14364
  • plugins: os-etpro-telemetry minor subprocess.call replacement
  • Err codemadness.org 70 i 14365
  • plugins: os-freeradius 1.9.4[2]
  • Err codemadness.org 70 i 14366
  • plugins: os-frr 1.12[3]
  • Err codemadness.org 70 i 14367
  • plugins: os-haproxy 2.19[4]
  • Err codemadness.org 70 i 14368
  • plugins: os-mailtrail 1.2[5]
  • Err codemadness.org 70 i 14369
  • plugins: os-postfix 1.11[6]
  • Err codemadness.org 70 i 14370
  • plugins: os-rspamd 1.8[7]
  • Err codemadness.org 70 i 14371
  • plugins: os-sunnyvalley LibreSSL support (contributed by Sunny Valley Networks)
  • Err codemadness.org 70 i 14372
  • plugins: os-telegraf 1.7.6[8]
  • Err codemadness.org 70 i 14373
  • plugins: os-theme-cicada 1.21 (contributed by Team Rebellion)
  • Err codemadness.org 70 i 14374
  • plugins: os-theme-tukan 1.21 (contributed by Team Rebellion)
  • Err codemadness.org 70 i 14375
  • plugins: os-tinc minor subprocess.call replacement
  • Err codemadness.org 70 i 14376
  • plugins: os-tor 1.8 adds dormant mode disable option (contributed by Fabian Franz)
  • Err codemadness.org 70 i 14377
  • plugins: os-virtualbox 1.0 (contributed by andrewhotlab)
  • Err codemadness.org 70 i 14378
Err codemadness.org 70 i 14379 Err codemadness.org 70 i 14380
Err codemadness.org 70 i 14381 Err codemadness.org 70 i 14382

Dealing with the misunderstandings of what is GhostBSD

Err codemadness.org 70 i 14383 Err codemadness.org 70 i 14384
Err codemadness.org 70 i 14385

Since the release of 19.09, I have seen a lot of misunderstandings on what is GhostBSD and the future of GhostBSD. GhostBSD is based on TrueOS with FreeBSD 12 STABLE with our twist to it. We are still continuing to use TrueOS for OpenRC, and the new package's system for the base system that is built from ports. GhostBSD is becoming a slow-moving rolling release base on the latest TrueOS with FreeBSD 12 STABLE. When FreeBSD 13 STABLE gets released, GhostBSD will be upgraded to TrueOS with FreeBSD 13 STABLE.

Err codemadness.org 70 i 14386 Err codemadness.org 70 i 14387

Our official desktop is MATE, which means that the leading developer of GhostBSD does not officially support XFCE. Community releases are maintained by the community and for the community. GhostBSD project will provide help to build and to host the community release. If anyone wants to have a particular desktop supported, it is up to the community. Sure I will help where I can, answer questions and guide new community members that contribute to community release.

Err codemadness.org 70 i 14388 Err codemadness.org 70 i 14389

There is some effort going on for Plasma5 desktop. If anyone is interested in helping with XFCE and Plasma5 or in creating another community release, you are well come to contribute. Also, Contribution to the GhostBSD base system, to ports and new ports, and in house software are welcome. We are mostly active on Telegram https://t.me/ghostbsd, but you can also reach us on the forum.

Err codemadness.org 70 i 14390
Err codemadness.org 70 i 14391 Err codemadness.org 70 i 14392
Err codemadness.org 70 i 14393 Err codemadness.org 70 i 14394

SHUTTLE – VPN over SSH | VPN Alternative

Err codemadness.org 70 i 14395 Err codemadness.org 70 i 14396
Err codemadness.org 70 i 14397

Looking for a lightweight VPN client, but are not ready to spend a monthly recurring amount on a VPN? VPNs can be expensive depending upon the quality of service and amount of privacy you want. A good VPN plan can easily set you back by 10$ a month and even that doesn’t guarantee your privacy. There is no way to be sure whether the VPN is storing your confidential information and traffic logs or not. sshuttle is the answer to your problem it provides VPN over ssh and in this article we’re going to explore this cheap yet powerful alternative to the expensive VPNs. By using open source tools you can control your own privacy.

Err codemadness.org 70 i 14398
Err codemadness.org 70 i 14399 Err codemadness.org 70 i 14400
    Err codemadness.org 70 i 14401
  • VPN over SSH – sshuttle
  • Err codemadness.org 70 i 14402
Err codemadness.org 70 i 14403 Err codemadness.org 70 i 14404
Err codemadness.org 70 i 14405

sshuttle is an awesome program that allows you to create a VPN connection from your local machine to any remote server that you have ssh access on. The tunnel established over the ssh connection can then be used to route all your traffic from client machine through the remote machine including all the dns traffic. In the bare bones sshuttle is just a proxy server which runs on the client machine and forwards all the traffic to a ssh tunnel. Since its open source it holds quite a lot of major advantages over traditional VPN.

Err codemadness.org 70 i 14406
Err codemadness.org 70 i 14407 Err codemadness.org 70 i 14408
Err codemadness.org 70 i 14409 Err codemadness.org 70 i 14410

OpenSSH 8.1 Released

Err codemadness.org 70 i 14411 Err codemadness.org 70 i 14412
    Err codemadness.org 70 i 14413
  • Security

    Err codemadness.org 70 i 14414 Err codemadness.org 70 i 14415
      Err codemadness.org 70 i 14416
    • ssh(1), sshd(8), ssh-add(1), ssh-keygen(1): an exploitable integer overflow bug was found in the private key parsing code for the XMSS key type. This key type is still experimental and support for it is not compiled by default. No user-facing autoconf option exists in portable OpenSSH to enable it. This bug was found by Adam Zabrocki and reported via SecuriTeam's SSD program.
    • Err codemadness.org 70 i 14417
    • ssh(1), sshd(8), ssh-agent(1): add protection for private keys at rest in RAM against speculation and memory side-channel attacks like Spectre, Meltdown and Rambleed. This release encrypts private keys when they are not in use with a symmetric key that is derived from a relatively large "prekey" consisting of random data (currently 16KB).
    • Err codemadness.org 70 i 14418
  • Err codemadness.org 70 i 14419
  • This release includes a number of changes that may affect existing configurations:

    Err codemadness.org 70 i 14420 Err codemadness.org 70 i 14421
      Err codemadness.org 70 i 14422
    • ssh-keygen(1): when acting as a CA and signing certificates with an RSA key, default to using the rsa-sha2-512 signature algorithm. Certificates signed by RSA keys will therefore be incompatible with OpenSSH versions prior to 7.2 unless the default is overridden (using "ssh-keygen -t ssh-rsa -s ...").
    • Err codemadness.org 70 i 14423
  • Err codemadness.org 70 i 14424
  • New Features

    Err codemadness.org 70 i 14425 Err codemadness.org 70 i 14426
      Err codemadness.org 70 i 14427
    • ssh(1): Allow %n to be expanded in ProxyCommand strings
    • Err codemadness.org 70 i 14428
    • ssh(1), sshd(8): Allow prepending a list of algorithms to the default set by starting the list with the '' character, E.g. "HostKeyAlgorithms ssh-ed25519"
    • Err codemadness.org 70 i 14429
    • ssh-keygen(1): add an experimental lightweight signature and verification ability. Signatures may be made using regular ssh keys held on disk or stored in a ssh-agent and verified against an authorized_keys-like list of allowed keys. Signatures embed a namespace that prevents confusion and attacks between different usage domains (e.g. files vs email).
    • Err codemadness.org 70 i 14430
    • ssh-keygen(1): print key comment when extracting public key from a private key.
    • Err codemadness.org 70 i 14431
    • ssh-keygen(1): accept the verbose flag when searching for host keys in known hosts (i.e. "ssh-keygen -vF host") to print the matching host's random-art signature too.
    • Err codemadness.org 70 i 14432
    • All: support PKCS8 as an optional format for storage of private keys to disk. The OpenSSH native key format remains the default, but PKCS8 is a superior format to PEM if interoperability with non-OpenSSH software is required, as it may use a less insecure key derivation function than PEM's.
    • Err codemadness.org 70 i 14433
  • Err codemadness.org 70 i 14434
Err codemadness.org 70 i 14435 Err codemadness.org 70 i 14436
Err codemadness.org 70 i 14437 Err codemadness.org 70 i 14438

Beastie Bits

Err codemadness.org 70 i 14439 Err codemadness.org 70 i 14440 Err codemadness.org 70 i 14451 Err codemadness.org 70 i 14452
Err codemadness.org 70 i 14453 Err codemadness.org 70 i 14454

Feedback/Questions

Err codemadness.org 70 i 14455 Err codemadness.org 70 i 14456 Err codemadness.org 70 i 14465 Err codemadness.org 70 i 14466
Err codemadness.org 70 i 14467 Err codemadness.org 70 i 14468
    Err codemadness.org 70 i 14469
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 14470
Err codemadness.org 70 i 14471 Err codemadness.org 70 i 14472
Err codemadness.org 70 i 14473 Err codemadness.org 70 i 14474 ]]> Err codemadness.org 70 i 14478
Err codemadness.org 70 i 14479 https://fireside.fm/player/v2/FYhhasNR+3OsGiuHv Err codemadness.org 70 i 14480 Err codemadness.org 70 i 14481 ]]> Err codemadness.org 70 i 14482 Err codemadness.org 70 i 14483
Err codemadness.org 70 i 14484 Err codemadness.org 70 i 14485 321: The Robot OS Err codemadness.org 70 i 14486 https://www.bsdnow.tv/321 Err codemadness.org 70 i 14487 fca983bf-93c9-460f-8c32-3b32663d463d Err codemadness.org 70 i 14488 Wed, 23 Oct 2019 20:00:00 -0700 Err codemadness.org 70 i 14489 Allan Jude Err codemadness.org 70 i 14490 Err codemadness.org 70 i 14491 full Err codemadness.org 70 i 14492 Allan Jude Err codemadness.org 70 i 14493 An interview with Trenton Schulz about his early days with FreeBSD, Robot OS, Qt, and more. Err codemadness.org 70 i 14494 55:16 Err codemadness.org 70 i 14495 no Err codemadness.org 70 i 14496 Err codemadness.org 70 i 14497 An interview with Trenton Schulz about his early days with FreeBSD, Robot OS, Qt, and more. Err codemadness.org 70 i 14498 Interview - Trenton Schulz - freenas@norwegianrockcat.com (mailto:freenas@norwegianrockcat.com) Err codemadness.org 70 i 14499 Robot OS on FreeBSD Err codemadness.org 70 i 14500 BR: Welcome to the show. Can you tell us a little bit about yourself and how you got started with BSD? Err codemadness.org 70 i 14501 AJ: You were working for Trolltech (creators of Qt). Was FreeBSD used there and how? Err codemadness.org 70 i 14502 BR: Can you tell us more about the work you are doing with Robot OS on FreeBSD? Err codemadness.org 70 i 14503 AJ: Was EuroBSDcon your first BSD conference? How did you like it? Err codemadness.org 70 i 14504 BR: Do you have some tips or advice on how to get started with the BSDs? Err codemadness.org 70 i 14505 AJ: Is there anything else you’d like to tell us before we let you go? Err codemadness.org 70 i 14506 Beastie Bits Err codemadness.org 70 i 14507 FreeBSD Miniconf at linux.conf.au 2020 Call for Sessions Now Open (https://www.freebsdfoundation.org/blog/freebsd-miniconf-at-linux-conf-au-2020-call-for-sessions-now-open/) Err codemadness.org 70 i 14508 Portland BSD Pizza Night: Oct 24th, 19:00 @ Rudy’s Gourmet Pizza (http://calagator.org/events/1250476319) Err codemadness.org 70 i 14509 NYC*BUG Install Fest: Nov 6th 18:45 @ Suspenders (https://www.nycbug.org/index?action=view&id=10673) Err codemadness.org 70 i 14510 FOSDEM 2020 - BSD Devroom Call for Participation (https://people.freebsd.org/~rodrigo/fosdem20/) Err codemadness.org 70 i 14511 University of Cambridge looking for Research Assistants/Associates (https://twitter.com/ed_maste/status/1184865668317007874) Err codemadness.org 70 i 14512 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 14513 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 14514 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0321.mp4" type="video/mp4"> Err codemadness.org 70 i 14515 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 14516 </video> Special Guest: Trenton Shulz. Err codemadness.org 70 i 14517 Err codemadness.org 70 i 14518 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, unix at 50, unix code, source code, release, Ken Thompson, pdp-7, pdp 7 Err codemadness.org 70 i 14519 Err codemadness.org 70 i 14520 An interview with Trenton Schulz about his early days with FreeBSD, Robot OS, Qt, and more.

Err codemadness.org 70 i 14521 Err codemadness.org 70 i 14522

Interview - Trenton Schulz - freenas@norwegianrockcat.com

Err codemadness.org 70 i 14523 Err codemadness.org 70 i 14524

Robot OS on FreeBSD

Err codemadness.org 70 i 14525 Err codemadness.org 70 i 14526
    Err codemadness.org 70 i 14527
  • BR: Welcome to the show. Can you tell us a little bit about yourself and how you got started with BSD?
  • Err codemadness.org 70 i 14528
  • AJ: You were working for Trolltech (creators of Qt). Was FreeBSD used there and how?
  • Err codemadness.org 70 i 14529
  • BR: Can you tell us more about the work you are doing with Robot OS on FreeBSD?
  • Err codemadness.org 70 i 14530
  • AJ: Was EuroBSDcon your first BSD conference? How did you like it?
  • Err codemadness.org 70 i 14531
  • BR: Do you have some tips or advice on how to get started with the BSDs?
  • Err codemadness.org 70 i 14532
  • AJ: Is there anything else you’d like to tell us before we let you go?
  • Err codemadness.org 70 i 14533
Err codemadness.org 70 i 14534 Err codemadness.org 70 i 14535
Err codemadness.org 70 i 14536 Err codemadness.org 70 i 14537

Beastie Bits

Err codemadness.org 70 i 14538 Err codemadness.org 70 i 14539 Err codemadness.org 70 i 14546 Err codemadness.org 70 i 14547
Err codemadness.org 70 i 14548 Err codemadness.org 70 i 14549
    Err codemadness.org 70 i 14550
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 14551
Err codemadness.org 70 i 14552 Err codemadness.org 70 i 14553
Err codemadness.org 70 i 14554 Err codemadness.org 70 i 14555

Special Guest: Trenton Shulz.

]]> Err codemadness.org 70 i 14559
Err codemadness.org 70 i 14560 Err codemadness.org 70 i 14561 An interview with Trenton Schulz about his early days with FreeBSD, Robot OS, Qt, and more.

Err codemadness.org 70 i 14562 Err codemadness.org 70 i 14563

Interview - Trenton Schulz - freenas@norwegianrockcat.com

Err codemadness.org 70 i 14564 Err codemadness.org 70 i 14565

Robot OS on FreeBSD

Err codemadness.org 70 i 14566 Err codemadness.org 70 i 14567
    Err codemadness.org 70 i 14568
  • BR: Welcome to the show. Can you tell us a little bit about yourself and how you got started with BSD?
  • Err codemadness.org 70 i 14569
  • AJ: You were working for Trolltech (creators of Qt). Was FreeBSD used there and how?
  • Err codemadness.org 70 i 14570
  • BR: Can you tell us more about the work you are doing with Robot OS on FreeBSD?
  • Err codemadness.org 70 i 14571
  • AJ: Was EuroBSDcon your first BSD conference? How did you like it?
  • Err codemadness.org 70 i 14572
  • BR: Do you have some tips or advice on how to get started with the BSDs?
  • Err codemadness.org 70 i 14573
  • AJ: Is there anything else you’d like to tell us before we let you go?
  • Err codemadness.org 70 i 14574
Err codemadness.org 70 i 14575 Err codemadness.org 70 i 14576
Err codemadness.org 70 i 14577 Err codemadness.org 70 i 14578

Beastie Bits

Err codemadness.org 70 i 14579 Err codemadness.org 70 i 14580 Err codemadness.org 70 i 14587 Err codemadness.org 70 i 14588
Err codemadness.org 70 i 14589 Err codemadness.org 70 i 14590
    Err codemadness.org 70 i 14591
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 14592
Err codemadness.org 70 i 14593 Err codemadness.org 70 i 14594
Err codemadness.org 70 i 14595 Err codemadness.org 70 i 14596

Special Guest: Trenton Shulz.

]]> Err codemadness.org 70 i 14600
Err codemadness.org 70 i 14601 https://fireside.fm/player/v2/FYhhasNR+o55LBtyZ Err codemadness.org 70 i 14602 Err codemadness.org 70 i 14603 ]]> Err codemadness.org 70 i 14604 Err codemadness.org 70 i 14605
Err codemadness.org 70 i 14606 Err codemadness.org 70 i 14607 320: Codebase: Neck Deep Err codemadness.org 70 i 14608 https://www.bsdnow.tv/320 Err codemadness.org 70 i 14609 11b9f24e-1789-4328-8396-4b9654aa2dfc Err codemadness.org 70 i 14610 Wed, 16 Oct 2019 20:00:00 -0700 Err codemadness.org 70 i 14611 Allan Jude Err codemadness.org 70 i 14612 Err codemadness.org 70 i 14613 full Err codemadness.org 70 i 14614 Allan Jude Err codemadness.org 70 i 14615 FreeBSD on the Google Pixelbook, Porting NetBSD to the AMD x86-64, ZFS performance really does degrade as you approach quota limits, Fixing up KA9Q-unix, HAMMER2 and fsck for review, the return of startx(1) for non-root users, and more. Err codemadness.org 70 i 14616 56:41 Err codemadness.org 70 i 14617 no Err codemadness.org 70 i 14618 Err codemadness.org 70 i 14619 Headlines Err codemadness.org 70 i 14620 FreeBSD and custom firmware on the Google Pixelbook (https://unrelenting.technology/articles/FreeBSD-and-custom-firmware-on-the-Google-Pixelbook) Err codemadness.org 70 i 14621 FreeBSD and custom firmware on the Google Pixelbook Err codemadness.org 70 i 14622 Back in 2015, I jumped on the ThinkPad bandwagon by getting an X240 to run FreeBSD on. Unlike most people in the ThinkPad crowd, I actually liked the clickpad and didn\u2019t use the trackpoint much. But this summer I\u2019ve decided that it was time for something newer. I wanted something.. Err codemadness.org 70 i 14623 lighter and thinner (ha, turns out this is actually important, I got tired of carrying a T H I C C laptop - Apple was right all along); Err codemadness.org 70 i 14624 with a 3:2 display (why is Lenovo making these Serious Work\u2122 laptops 16:9 in the first place?? 16:9 is awful in below-13-inch sizes especially); Err codemadness.org 70 i 14625 with a HiDPI display (and ideally with a good size for exact 2x scaling instead of fractional); Err codemadness.org 70 i 14626 with USB-C ports; Err codemadness.org 70 i 14627 without a dGPU, especially without an NVIDIA GPU; Err codemadness.org 70 i 14628 assembled with screws and not glue (I don\u2019t necessarily need expansion and stuff in a laptop all that much, but being able to replace the battery without dealing with a glued chassis is good); Err codemadness.org 70 i 14629 supported by FreeBSD of course (\u201csome development required\u201d is okay but I\u2019m not going to write big drivers); Err codemadness.org 70 i 14630 how about something with open source firmware, that would be fun. Err codemadness.org 70 i 14631 I was considering a ThinkPad X1 Carbon from an old generation - the one from the same year as the X230 is corebootable, so that\u2019s fun. But going back in processor generations just doesn\u2019t feel great. I want something more efficient, not less! Err codemadness.org 70 i 14632 And then I discovered the Pixelbook. Other than the big huge large bezels around the screen, I liked everything about it. Thin aluminum design, a 3:2 HiDPI screen, rubber palm rests (why isn\u2019t every laptop ever doing that?!), the \u201cconvertibleness\u201d (flip the screen around to turn it into.. something rather big for a tablet, but it is useful actually), a Wacom touchscreen that supports a pen, mostly reasonable hardware (Intel Wi-Fi), and that famous coreboot support (Chromebooks\u2019 stock firmware is coreboot + depthcharge). Err codemadness.org 70 i 14633 So here it is, my new laptop, a Google Pixelbook. Err codemadness.org 70 i 14634 Conclusion Err codemadness.org 70 i 14635 Pixelbook, FreeBSD, coreboot, EDK2 good. Err codemadness.org 70 i 14636 Seriously, I have no big words to say, other than just recommending this laptop to FOSS enthusiasts :) Err codemadness.org 70 i 14637 Porting NetBSD to the AMD x86-64: a case study in OS portability (https://www.usenix.org/legacy/publications/library/proceedings/bsdcon02/full_papers/linden/linden_html/index.html) Err codemadness.org 70 i 14638 Abstract Err codemadness.org 70 i 14639 NetBSD is known as a very portable operating system, currently running on 44 different architectures (12 different types of CPU). This paper takes a look at what has been done to make it portable, and how this has decreased the amount of effort needed to port NetBSD to a new architecture. The new AMD x86-64 architecture, of which the specifications were published at the end of 2000, with hardware to follow in 2002, is used as an example. Err codemadness.org 70 i 14640 Portability Err codemadness.org 70 i 14641 Supporting multiple platforms was a primary goal of the NetBSD project from the start. As NetBSD was ported to more and more platforms, the NetBSD kernel code was adapted to become more portable along the way. Err codemadness.org 70 i 14642 General Err codemadness.org 70 i 14643 Generally, code is shared between ports as much as possible. In NetBSD, it should always be considered if the code can be assumed to be useful on other architectures, present or future. If so, it is machine-independent and put it in an appropriate place in the source tree. When writing code that is intended to be machine-independent, and it contains conditional preprocessor statements depending on the architecture, then the code is likely wrong, or an extra abstraction layer is needed to get rid of these statements. Err codemadness.org 70 i 14644 Types Err codemadness.org 70 i 14645 Assumptions about the size of any type are not made. Assumptions made about type sizes on 32-bit platforms were a large problem when 64-bit platforms came around. Most of the problems of this kind had to be dealt with when NetBSD was ported to the DEC Alpha in 1994. A variation on this problem had to be dealt with with the UltraSPARC (sparc64) port in 1998, which is 64-bit, but big endian (vs. the little-endianness of the Alpha). When interacting with datastructures of a fixed size, such as on-disk metadata for filesystems, or datastructures directly interpreted by device hardware, explicitly sized types are used, such as uint32t, int8t, etc. Err codemadness.org 70 i 14646 Conclusions and future work Err codemadness.org 70 i 14647 The port of NetBSD to AMD's x86-64 architecture was done in six weeks, which confirms NetBSD's reputation as being a very portable operating system. One week was spent setting up the cross-toolchain and reading the x86-64 specifications, three weeks were spent writing the kernel code, one week was spent writing the userspace code, and one week testing and debugging it all. No problems were observed in any of the machine-independent parts of the kernel during test runs; all (simulated) device drivers, file systems, etc, worked without modification. Err codemadness.org 70 i 14648 News Roundup Err codemadness.org 70 i 14649 ZFS performance really does degrade as you approach quota limits (https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSFullQuotaPerformanceIssue) Err codemadness.org 70 i 14650 Every so often (currently monthly), there is an "OpenZFS leadership meeting". What this really means is 'lead developers from the various ZFS implementations get together to talk about things'. Announcements and meeting notes from these meetings get sent out to various mailing lists, including the ZFS on Linux ones. Err codemadness.org 70 i 14651 In the September meeting notes, I read a very interesting (to me) agenda item: Err codemadness.org 70 i 14652 Relax quota semantics for improved performance (Allan Jude) Err codemadness.org 70 i 14653 Problem: As you approach quotas, ZFS performance degrades. Err codemadness.org 70 i 14654 Proposal: Can we have a property like quota-policy=strict or loose, where we can optionally allow ZFS to run over the quota as long as performance is not decreased. Err codemadness.org 70 i 14655 This is very interesting to me because of two reasons. First, in the past we have definitely seen significant problems on our OmniOS machines, both when an entire pool hits a quota limit and when a single filesystem hits a refquota limit. It's nice to know that this wasn't just our imagination and that there is a real issue here. Even better, it might someday be improved (and perhaps in a way that we can use at least some of the time). Err codemadness.org 70 i 14656 Second, any number of people here run very close to and sometimes at the quota limits of both filesystems and pools, fundamentally because people aren't willing to buy more space. We have in the past assumed that this was relatively harmless and would only make people run out of space. If this is a known issue that causes serious performance degradation, well, I don't know if there's anything we can do, but at least we're going to have to think about it and maybe push harder at people. The first step will have to be learning the details of what's going on at the ZFS level to cause the slowdown. (It's apparently similar to what happens when the pool is almost full, but I don't know the specifics of that either.) Err codemadness.org 70 i 14657 With that said, we don't seem to have seen clear adverse effects on our Linux fileservers, and they've definitely run into quota limits (repeatedly). One possible reason for this is that having lots of RAM and SSDs makes the effects mostly go away. Another possible reason is that we haven't been looking closely enough to see that we're experiencing global slowdowns that correlate to filesystems hitting quota limits. We've had issues before with somewhat subtle slowdowns that we didn't understand (cf), so I can't discount that we're having it happen again. Err codemadness.org 70 i 14658 Fixing up KA9Q-unix, or "neck deep in 30 year old codebases.." (http://adrianchadd.blogspot.com/2019/09/fixing-up-ka9q-unix-or-neck-deep-in-30.html) Err codemadness.org 70 i 14659 I'll preface this by saying - yes, I'm still neck deep in FreeBSD's wifi stack and 802.11ac support, but it turns out it's slow work to fix 15 year old locking related issues that worked fine on 11abg cards, kinda worked ok on 11n cards, and are terrible for these 11ac cards. I'll .. get there. Err codemadness.org 70 i 14660 Anyhoo, I've finally been mucking around with AX.25 packet radio. I've been wanting to do this since I was a teenager and found out about its existence, but back in high school and .. well, until a few years ago really .. I didn't have my amateur radio licence. But, now I do, and I've done a bunch of other stuff with a bunch of other radios. The main stumbling block? All my devices are either Apple products or run FreeBSD - and none of them have useful AX.25 stacks. The main stacks of choice these days run on Linux, Windows or are a full hardware TNC. Err codemadness.org 70 i 14661 So yes, I was avoiding hacking on AX.25 stuff because there wasn't a BSD compatible AX.25 stack. I'm 40 now, leave me be. Err codemadness.org 70 i 14662 But! A few weeks ago I found that someone was still running a packet BBS out of San Francisco. And amazingly, his local node ran on FreeBSD! It turns out Jeremy (KK6JJJ) ported both an old copy of KA9Q and N0ARY-BBS to run on FreeBSD! Cool! Err codemadness.org 70 i 14663 I grabbed my 2m radio (which is already cabled up for digital modes), compiled up his KA9Q port, figured out how to get it to speak to Direwolf, and .. ok. Well, it worked. Kinda. Err codemadness.org 70 i 14664 HAMMER2 and fsck for review (https://www.dragonflydigest.com/2019/09/24/23540.html) Err codemadness.org 70 i 14665 HAMMER2 is Copy on Write, meaning changes are made to copies of existing data. This means operations are generally atomic and can survive a power outage, etc. (You should read up on it!) However, there\u2019s now a fsck command, useful if you want a report of data validity rather than any manual repair process. Err codemadness.org 70 i 14666 [The return of startx(1) for non-root users with some caveats (https://undeadly.org/cgi?action=article;sid=20190917091236) Err codemadness.org 70 i 14667 Mark Kettenis (kettenis@) has recently committed changes which restore a certain amount of startx(1)/xinit(1) functionality for non-root users. The commit messages explain the situation: Err codemadness.org 70 i 14668 ``` Err codemadness.org 70 i 14669 CVSROOT: /cvs Err codemadness.org 70 i 14670 Module name: src Err codemadness.org 70 i 14671 Changes by: kettenis@cvs.openbsd.org 2019/09/15 06:25:41 Err codemadness.org 70 i 14672 Modified files: Err codemadness.org 70 i 14673 etc/etc.amd64 : fbtab Err codemadness.org 70 i 14674 etc/etc.arm64 : fbtab Err codemadness.org 70 i 14675 etc/etc.hppa : fbtab Err codemadness.org 70 i 14676 etc/etc.i386 : fbtab Err codemadness.org 70 i 14677 etc/etc.loongson: fbtab Err codemadness.org 70 i 14678 etc/etc.luna88k: fbtab Err codemadness.org 70 i 14679 etc/etc.macppc : fbtab Err codemadness.org 70 i 14680 etc/etc.octeon : fbtab Err codemadness.org 70 i 14681 etc/etc.sgi : fbtab Err codemadness.org 70 i 14682 etc/etc.sparc64: fbtab Err codemadness.org 70 i 14683 Log message: Err codemadness.org 70 i 14684 Add ttyC4 to lost of devices to change when logging in on ttyC0 (and in some cases also the serial console) such that X can use it as its VT when running without root privileges. Err codemadness.org 70 i 14685 ok jsg@, matthieu@ Err codemadness.org 70 i 14686 CVSROOT: /cvs Err codemadness.org 70 i 14687 Module name: xenocara Err codemadness.org 70 i 14688 Changes by: kettenis@cvs.openbsd.org 2019/09/15 06:31:08 Err codemadness.org 70 i 14689 Modified files: Err codemadness.org 70 i 14690 xserver/hw/xfree86/common: xf86AutoConfig.c Err codemadness.org 70 i 14691 Log message: Err codemadness.org 70 i 14692 Add modesetting driver as a fall-back when appropriate such that we can use it when running without root privileges which prevents us from scanning the PCI bus. Err codemadness.org 70 i 14693 This makes startx(1)/xinit(1) work again on modern systems with inteldrm(4), radeondrm(4) and amdgpu(4). In some cases this will result in using a different driver than with xenodm(4) which may expose issues (e.g. when we prefer the intel Xorg driver) or loss of acceleration (e.g. older cards supported by radeondrm(4)). Err codemadness.org 70 i 14694 ok jsg@, matthieu@ Err codemadness.org 70 i 14695 ``` Err codemadness.org 70 i 14696 Beastie Bits Err codemadness.org 70 i 14697 ASCII table and history. Or, why does Ctrl+i insert a Tab in my terminal? (https://bestasciitable.com/) Err codemadness.org 70 i 14698 Sourcehut makes BSD software better (https://sourcehut.org/blog/2019-09-12-sourcehut-makes-bsd-software-better/) Err codemadness.org 70 i 14699 Chaosnet for Unx (https://github.com/LM-3/chaos) Err codemadness.org 70 i 14700 The Vim-Inspired Editor with a Linguistic Twist (https://cosine.blue/2019-09-06-kakoune.html) Err codemadness.org 70 i 14701 bhyvearm64: CPU and Memory Virtualization on Armv8.0-A (https://papers.freebsd.org/2019/bsdcan/elisei-bhyvearm64_cpu_and_memory_virtualization_on_armv8.0_a/) Err codemadness.org 70 i 14702 DefCon25 - Are all BSD created Equally - A Survey of BSD Kernel vulnerabilities (https://www.youtube.com/watch?v=a2m56Yq-EIs) Err codemadness.org 70 i 14703 Feedback/Questions Err codemadness.org 70 i 14704 Tim - GSoC project ideas for pf rule syntax translation (http://dpaste.com/1RCSFK7#wrap) Err codemadness.org 70 i 14705 Brad - Steam on FreeBSD (http://dpaste.com/2SKA9YB#wrap) Err codemadness.org 70 i 14706 Ruslan - FreeBSD Quarterly Status Report - Q2 2019 (http://dpaste.com/0DQM3Q1) Err codemadness.org 70 i 14707 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 14708 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 14709 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0320.mp4" type="video/mp4"> Err codemadness.org 70 i 14710 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 14711 </video> Err codemadness.org 70 i 14712 Err codemadness.org 70 i 14713 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, google pixelbook, pixelbook, case study, portability, porting, zfs, zfs performance, performance, quota, quota limits, zfs quota, ka9q, unix, hammer2, fsck, startx Err codemadness.org 70 i 14714 Err codemadness.org 70 i 14715 Headlines Err codemadness.org 70 i 14716 Err codemadness.org 70 i 14717

FreeBSD and custom firmware on the Google Pixelbook

Err codemadness.org 70 i 14718 Err codemadness.org 70 i 14719
    Err codemadness.org 70 i 14720
  • FreeBSD and custom firmware on the Google Pixelbook
  • Err codemadness.org 70 i 14721
Err codemadness.org 70 i 14722 Err codemadness.org 70 i 14723
Err codemadness.org 70 i 14724

Back in 2015, I jumped on the ThinkPad bandwagon by getting an X240 to run FreeBSD on. Unlike most people in the ThinkPad crowd, I actually liked the clickpad and didn\u2019t use the trackpoint much. But this summer I\u2019ve decided that it was time for something newer. I wanted something..

Err codemadness.org 70 i 14725
Err codemadness.org 70 i 14726 Err codemadness.org 70 i 14727
    Err codemadness.org 70 i 14728
  • lighter and thinner (ha, turns out this is actually important, I got tired of carrying a T H I C C laptop - Apple was right all along);
  • Err codemadness.org 70 i 14729
  • with a 3:2 display (why is Lenovo making these Serious Work\u2122 laptops 16:9 in the first place?? 16:9 is awful in below-13-inch sizes especially);
  • Err codemadness.org 70 i 14730
  • with a HiDPI display (and ideally with a good size for exact 2x scaling instead of fractional);
  • Err codemadness.org 70 i 14731
  • with USB-C ports;
  • Err codemadness.org 70 i 14732
  • without a dGPU, especially without an NVIDIA GPU;
  • Err codemadness.org 70 i 14733
  • assembled with screws and not glue (I don\u2019t necessarily need expansion and stuff in a laptop all that much, but being able to replace the battery without dealing with a glued chassis is good);
  • Err codemadness.org 70 i 14734
  • supported by FreeBSD of course (\u201csome development required\u201d is okay but I\u2019m not going to write big drivers);
  • Err codemadness.org 70 i 14735
  • how about something with open source firmware, that would be fun.
  • Err codemadness.org 70 i 14736
Err codemadness.org 70 i 14737 Err codemadness.org 70 i 14738
Err codemadness.org 70 i 14739

I was considering a ThinkPad X1 Carbon from an old generation - the one from the same year as the X230 is corebootable, so that\u2019s fun. But going back in processor generations just doesn\u2019t feel great. I want something more efficient, not less!

Err codemadness.org 70 i 14740 Err codemadness.org 70 i 14741

And then I discovered the Pixelbook. Other than the big huge large bezels around the screen, I liked everything about it. Thin aluminum design, a 3:2 HiDPI screen, rubber palm rests (why isn\u2019t every laptop ever doing that?!), the \u201cconvertibleness\u201d (flip the screen around to turn it into.. something rather big for a tablet, but it is useful actually), a Wacom touchscreen that supports a pen, mostly reasonable hardware (Intel Wi-Fi), and that famous coreboot support (Chromebooks\u2019 stock firmware is coreboot + depthcharge).

Err codemadness.org 70 i 14742 Err codemadness.org 70 i 14743

So here it is, my new laptop, a Google Pixelbook.

Err codemadness.org 70 i 14744
Err codemadness.org 70 i 14745 Err codemadness.org 70 i 14746
    Err codemadness.org 70 i 14747
  • Conclusion
  • Err codemadness.org 70 i 14748
Err codemadness.org 70 i 14749 Err codemadness.org 70 i 14750
Err codemadness.org 70 i 14751

Pixelbook, FreeBSD, coreboot, EDK2 good.

Err codemadness.org 70 i 14752 Err codemadness.org 70 i 14753

Seriously, I have no big words to say, other than just recommending this laptop to FOSS enthusiasts :)

Err codemadness.org 70 i 14754
Err codemadness.org 70 i 14755 Err codemadness.org 70 i 14756
Err codemadness.org 70 i 14757 Err codemadness.org 70 i 14758

Porting NetBSD to the AMD x86-64: a case study in OS portability

Err codemadness.org 70 i 14759 Err codemadness.org 70 i 14760
    Err codemadness.org 70 i 14761
  • Abstract
  • Err codemadness.org 70 i 14762
Err codemadness.org 70 i 14763 Err codemadness.org 70 i 14764
Err codemadness.org 70 i 14765

NetBSD is known as a very portable operating system, currently running on 44 different architectures (12 different types of CPU). This paper takes a look at what has been done to make it portable, and how this has decreased the amount of effort needed to port NetBSD to a new architecture. The new AMD x86-64 architecture, of which the specifications were published at the end of 2000, with hardware to follow in 2002, is used as an example.

Err codemadness.org 70 i 14766
Err codemadness.org 70 i 14767 Err codemadness.org 70 i 14768
    Err codemadness.org 70 i 14769
  • Portability
  • Err codemadness.org 70 i 14770
Err codemadness.org 70 i 14771 Err codemadness.org 70 i 14772
Err codemadness.org 70 i 14773

Supporting multiple platforms was a primary goal of the NetBSD project from the start. As NetBSD was ported to more and more platforms, the NetBSD kernel code was adapted to become more portable along the way.

Err codemadness.org 70 i 14774
Err codemadness.org 70 i 14775 Err codemadness.org 70 i 14776
    Err codemadness.org 70 i 14777
  • General
  • Err codemadness.org 70 i 14778
Err codemadness.org 70 i 14779 Err codemadness.org 70 i 14780
Err codemadness.org 70 i 14781

Generally, code is shared between ports as much as possible. In NetBSD, it should always be considered if the code can be assumed to be useful on other architectures, present or future. If so, it is machine-independent and put it in an appropriate place in the source tree. When writing code that is intended to be machine-independent, and it contains conditional preprocessor statements depending on the architecture, then the code is likely wrong, or an extra abstraction layer is needed to get rid of these statements.

Err codemadness.org 70 i 14782
Err codemadness.org 70 i 14783 Err codemadness.org 70 i 14784
    Err codemadness.org 70 i 14785
  • Types
  • Err codemadness.org 70 i 14786
Err codemadness.org 70 i 14787 Err codemadness.org 70 i 14788
Err codemadness.org 70 i 14789

Assumptions about the size of any type are not made. Assumptions made about type sizes on 32-bit platforms were a large problem when 64-bit platforms came around. Most of the problems of this kind had to be dealt with when NetBSD was ported to the DEC Alpha in 1994. A variation on this problem had to be dealt with with the UltraSPARC (sparc64) port in 1998, which is 64-bit, but big endian (vs. the little-endianness of the Alpha). When interacting with datastructures of a fixed size, such as on-disk metadata for filesystems, or datastructures directly interpreted by device hardware, explicitly sized types are used, such as uint32_t, int8_t, etc.

Err codemadness.org 70 i 14790
Err codemadness.org 70 i 14791 Err codemadness.org 70 i 14792
    Err codemadness.org 70 i 14793
  • Conclusions and future work
  • Err codemadness.org 70 i 14794
Err codemadness.org 70 i 14795 Err codemadness.org 70 i 14796
Err codemadness.org 70 i 14797

The port of NetBSD to AMD's x86-64 architecture was done in six weeks, which confirms NetBSD's reputation as being a very portable operating system. One week was spent setting up the cross-toolchain and reading the x86-64 specifications, three weeks were spent writing the kernel code, one week was spent writing the userspace code, and one week testing and debugging it all. No problems were observed in any of the machine-independent parts of the kernel during test runs; all (simulated) device drivers, file systems, etc, worked without modification.

Err codemadness.org 70 i 14798
Err codemadness.org 70 i 14799 Err codemadness.org 70 i 14800
Err codemadness.org 70 i 14801 Err codemadness.org 70 i 14802

News Roundup

Err codemadness.org 70 i 14803 Err codemadness.org 70 i 14804

ZFS performance really does degrade as you approach quota limits

Err codemadness.org 70 i 14805 Err codemadness.org 70 i 14806
Err codemadness.org 70 i 14807

Every so often (currently monthly), there is an "OpenZFS leadership meeting". What this really means is 'lead developers from the various ZFS implementations get together to talk about things'. Announcements and meeting notes from these meetings get sent out to various mailing lists, including the ZFS on Linux ones.

Err codemadness.org 70 i 14808
Err codemadness.org 70 i 14809 Err codemadness.org 70 i 14810
    Err codemadness.org 70 i 14811
  • In the September meeting notes, I read a very interesting (to me) agenda item: Err codemadness.org 70 i 14812 Err codemadness.org 70 i 14813
      Err codemadness.org 70 i 14814
    • Relax quota semantics for improved performance (Allan Jude)
    • Err codemadness.org 70 i 14815
    • Problem: As you approach quotas, ZFS performance degrades.
    • Err codemadness.org 70 i 14816
    • Proposal: Can we have a property like quota-policy=strict or loose, where we can optionally allow ZFS to run over the quota as long as performance is not decreased.
    • Err codemadness.org 70 i 14817
  • Err codemadness.org 70 i 14818
Err codemadness.org 70 i 14819 Err codemadness.org 70 i 14820
Err codemadness.org 70 i 14821

This is very interesting to me because of two reasons. First, in the past we have definitely seen significant problems on our OmniOS machines, both when an entire pool hits a quota limit and when a single filesystem hits a refquota limit. It's nice to know that this wasn't just our imagination and that there is a real issue here. Even better, it might someday be improved (and perhaps in a way that we can use at least some of the time).

Err codemadness.org 70 i 14822 Err codemadness.org 70 i 14823

Second, any number of people here run very close to and sometimes at the quota limits of both filesystems and pools, fundamentally because people aren't willing to buy more space. We have in the past assumed that this was relatively harmless and would only make people run out of space. If this is a known issue that causes serious performance degradation, well, I don't know if there's anything we can do, but at least we're going to have to think about it and maybe push harder at people. The first step will have to be learning the details of what's going on at the ZFS level to cause the slowdown. (It's apparently similar to what happens when the pool is almost full, but I don't know the specifics of that either.)

Err codemadness.org 70 i 14824 Err codemadness.org 70 i 14825

With that said, we don't seem to have seen clear adverse effects on our Linux fileservers, and they've definitely run into quota limits (repeatedly). One possible reason for this is that having lots of RAM and SSDs makes the effects mostly go away. Another possible reason is that we haven't been looking closely enough to see that we're experiencing global slowdowns that correlate to filesystems hitting quota limits. We've had issues before with somewhat subtle slowdowns that we didn't understand (cf), so I can't discount that we're having it happen again.

Err codemadness.org 70 i 14826
Err codemadness.org 70 i 14827 Err codemadness.org 70 i 14828
Err codemadness.org 70 i 14829 Err codemadness.org 70 i 14830

Fixing up KA9Q-unix, or "neck deep in 30 year old codebases.."

Err codemadness.org 70 i 14831 Err codemadness.org 70 i 14832
Err codemadness.org 70 i 14833

I'll preface this by saying - yes, I'm still neck deep in FreeBSD's wifi stack and 802.11ac support, but it turns out it's slow work to fix 15 year old locking related issues that worked fine on 11abg cards, kinda worked ok on 11n cards, and are terrible for these 11ac cards. I'll .. get there.

Err codemadness.org 70 i 14834 Err codemadness.org 70 i 14835

Anyhoo, I've finally been mucking around with AX.25 packet radio. I've been wanting to do this since I was a teenager and found out about its existence, but back in high school and .. well, until a few years ago really .. I didn't have my amateur radio licence. But, now I do, and I've done a bunch of other stuff with a bunch of other radios. The main stumbling block? All my devices are either Apple products or run FreeBSD - and none of them have useful AX.25 stacks. The main stacks of choice these days run on Linux, Windows or are a full hardware TNC.

Err codemadness.org 70 i 14836 Err codemadness.org 70 i 14837

So yes, I was avoiding hacking on AX.25 stuff because there wasn't a BSD compatible AX.25 stack. I'm 40 now, leave me be.

Err codemadness.org 70 i 14838 Err codemadness.org 70 i 14839

But! A few weeks ago I found that someone was still running a packet BBS out of San Francisco. And amazingly, his local node ran on FreeBSD! It turns out Jeremy (KK6JJJ) ported both an old copy of KA9Q and N0ARY-BBS to run on FreeBSD! Cool!

Err codemadness.org 70 i 14840 Err codemadness.org 70 i 14841

I grabbed my 2m radio (which is already cabled up for digital modes), compiled up his KA9Q port, figured out how to get it to speak to Direwolf, and .. ok. Well, it worked. Kinda.

Err codemadness.org 70 i 14842
Err codemadness.org 70 i 14843 Err codemadness.org 70 i 14844
Err codemadness.org 70 i 14845 Err codemadness.org 70 i 14846

HAMMER2 and fsck for review

Err codemadness.org 70 i 14847 Err codemadness.org 70 i 14848
Err codemadness.org 70 i 14849

HAMMER2 is Copy on Write, meaning changes are made to copies of existing data. This means operations are generally atomic and can survive a power outage, etc. (You should read up on it!) However, there\u2019s now a fsck command, useful if you want a report of data validity rather than any manual repair process.

Err codemadness.org 70 i 14850
Err codemadness.org 70 i 14851 Err codemadness.org 70 i 14852
Err codemadness.org 70 i 14853 Err codemadness.org 70 i 14854

[The return of startx(1) for non-root users with some caveats

Err codemadness.org 70 i 14855 Err codemadness.org 70 i 14856

Mark Kettenis (kettenis@) has recently committed changes which restore a certain amount of startx(1)/xinit(1) functionality for non-root users. The commit messages explain the situation:

Err codemadness.org 70 i 14857 Err codemadness.org 70 i 14858
CVSROOT:    /cvs	Err	codemadness.org	70
i 14859 Module name:    src	Err	codemadness.org	70
i 14860 Changes by:    kettenis@cvs.openbsd.org    2019/09/15 06:25:41	Err	codemadness.org	70
i 14861 	Err	codemadness.org	70
i 14862 Modified files:	Err	codemadness.org	70
i 14863     etc/etc.amd64  : fbtab 	Err	codemadness.org	70
i 14864     etc/etc.arm64  : fbtab 	Err	codemadness.org	70
i 14865     etc/etc.hppa   : fbtab 	Err	codemadness.org	70
i 14866     etc/etc.i386   : fbtab 	Err	codemadness.org	70
i 14867     etc/etc.loongson: fbtab 	Err	codemadness.org	70
i 14868     etc/etc.luna88k: fbtab 	Err	codemadness.org	70
i 14869     etc/etc.macppc : fbtab 	Err	codemadness.org	70
i 14870     etc/etc.octeon : fbtab 	Err	codemadness.org	70
i 14871     etc/etc.sgi    : fbtab 	Err	codemadness.org	70
i 14872     etc/etc.sparc64: fbtab 	Err	codemadness.org	70
i 14873 	Err	codemadness.org	70
i 14874 Log message:	Err	codemadness.org	70
i 14875 Add ttyC4 to lost of devices to change when logging in on ttyC0 (and in some cases also the serial console) such that X can use it as its VT when running without root privileges.	Err	codemadness.org	70
i 14876 	Err	codemadness.org	70
i 14877 ok jsg@, matthieu@	Err	codemadness.org	70
i 14878 CVSROOT:    /cvs	Err	codemadness.org	70
i 14879 Module name:    xenocara	Err	codemadness.org	70
i 14880 Changes by:    kettenis@cvs.openbsd.org    2019/09/15 06:31:08	Err	codemadness.org	70
i 14881 	Err	codemadness.org	70
i 14882 Modified files:	Err	codemadness.org	70
i 14883     xserver/hw/xfree86/common: xf86AutoConfig.c 	Err	codemadness.org	70
i 14884 	Err	codemadness.org	70
i 14885 Log message:	Err	codemadness.org	70
i 14886 Add modesetting driver as a fall-back when appropriate such that we can use it when running without root privileges which prevents us from scanning the PCI bus.	Err	codemadness.org	70
i 14887 	Err	codemadness.org	70
i 14888 This makes startx(1)/xinit(1) work again on modern systems with inteldrm(4), radeondrm(4) and amdgpu(4).  In some cases this will result in using a different driver than with xenodm(4) which may expose issues (e.g. when we prefer the intel Xorg driver) or loss of acceleration (e.g. older cards supported by radeondrm(4)).	Err	codemadness.org	70
i 14889 	Err	codemadness.org	70
i 14890 ok jsg@, matthieu@	Err	codemadness.org	70
i 14891 
Err codemadness.org 70 i 14892 Err codemadness.org 70 i 14893
Err codemadness.org 70 i 14894 Err codemadness.org 70 i 14895

Beastie Bits

Err codemadness.org 70 i 14896 Err codemadness.org 70 i 14897 Err codemadness.org 70 i 14905 Err codemadness.org 70 i 14906
Err codemadness.org 70 i 14907 Err codemadness.org 70 i 14908

Feedback/Questions

Err codemadness.org 70 i 14909 Err codemadness.org 70 i 14910 Err codemadness.org 70 i 14915 Err codemadness.org 70 i 14916
Err codemadness.org 70 i 14917 Err codemadness.org 70 i 14918
    Err codemadness.org 70 i 14919
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 14920
Err codemadness.org 70 i 14921 Err codemadness.org 70 i 14922
Err codemadness.org 70 i 14923 Err codemadness.org 70 i 14924 ]]> Err codemadness.org 70 i 14928
Err codemadness.org 70 i 14929 Err codemadness.org 70 i 14930 Headlines Err codemadness.org 70 i 14931 Err codemadness.org 70 i 14932

FreeBSD and custom firmware on the Google Pixelbook

Err codemadness.org 70 i 14933 Err codemadness.org 70 i 14934
    Err codemadness.org 70 i 14935
  • FreeBSD and custom firmware on the Google Pixelbook
  • Err codemadness.org 70 i 14936
Err codemadness.org 70 i 14937 Err codemadness.org 70 i 14938
Err codemadness.org 70 i 14939

Back in 2015, I jumped on the ThinkPad bandwagon by getting an X240 to run FreeBSD on. Unlike most people in the ThinkPad crowd, I actually liked the clickpad and didn\u2019t use the trackpoint much. But this summer I\u2019ve decided that it was time for something newer. I wanted something..

Err codemadness.org 70 i 14940
Err codemadness.org 70 i 14941 Err codemadness.org 70 i 14942
    Err codemadness.org 70 i 14943
  • lighter and thinner (ha, turns out this is actually important, I got tired of carrying a T H I C C laptop - Apple was right all along);
  • Err codemadness.org 70 i 14944
  • with a 3:2 display (why is Lenovo making these Serious Work\u2122 laptops 16:9 in the first place?? 16:9 is awful in below-13-inch sizes especially);
  • Err codemadness.org 70 i 14945
  • with a HiDPI display (and ideally with a good size for exact 2x scaling instead of fractional);
  • Err codemadness.org 70 i 14946
  • with USB-C ports;
  • Err codemadness.org 70 i 14947
  • without a dGPU, especially without an NVIDIA GPU;
  • Err codemadness.org 70 i 14948
  • assembled with screws and not glue (I don\u2019t necessarily need expansion and stuff in a laptop all that much, but being able to replace the battery without dealing with a glued chassis is good);
  • Err codemadness.org 70 i 14949
  • supported by FreeBSD of course (\u201csome development required\u201d is okay but I\u2019m not going to write big drivers);
  • Err codemadness.org 70 i 14950
  • how about something with open source firmware, that would be fun.
  • Err codemadness.org 70 i 14951
Err codemadness.org 70 i 14952 Err codemadness.org 70 i 14953
Err codemadness.org 70 i 14954

I was considering a ThinkPad X1 Carbon from an old generation - the one from the same year as the X230 is corebootable, so that\u2019s fun. But going back in processor generations just doesn\u2019t feel great. I want something more efficient, not less!

Err codemadness.org 70 i 14955 Err codemadness.org 70 i 14956

And then I discovered the Pixelbook. Other than the big huge large bezels around the screen, I liked everything about it. Thin aluminum design, a 3:2 HiDPI screen, rubber palm rests (why isn\u2019t every laptop ever doing that?!), the \u201cconvertibleness\u201d (flip the screen around to turn it into.. something rather big for a tablet, but it is useful actually), a Wacom touchscreen that supports a pen, mostly reasonable hardware (Intel Wi-Fi), and that famous coreboot support (Chromebooks\u2019 stock firmware is coreboot + depthcharge).

Err codemadness.org 70 i 14957 Err codemadness.org 70 i 14958

So here it is, my new laptop, a Google Pixelbook.

Err codemadness.org 70 i 14959
Err codemadness.org 70 i 14960 Err codemadness.org 70 i 14961
    Err codemadness.org 70 i 14962
  • Conclusion
  • Err codemadness.org 70 i 14963
Err codemadness.org 70 i 14964 Err codemadness.org 70 i 14965
Err codemadness.org 70 i 14966

Pixelbook, FreeBSD, coreboot, EDK2 good.

Err codemadness.org 70 i 14967 Err codemadness.org 70 i 14968

Seriously, I have no big words to say, other than just recommending this laptop to FOSS enthusiasts :)

Err codemadness.org 70 i 14969
Err codemadness.org 70 i 14970 Err codemadness.org 70 i 14971
Err codemadness.org 70 i 14972 Err codemadness.org 70 i 14973

Porting NetBSD to the AMD x86-64: a case study in OS portability

Err codemadness.org 70 i 14974 Err codemadness.org 70 i 14975
    Err codemadness.org 70 i 14976
  • Abstract
  • Err codemadness.org 70 i 14977
Err codemadness.org 70 i 14978 Err codemadness.org 70 i 14979
Err codemadness.org 70 i 14980

NetBSD is known as a very portable operating system, currently running on 44 different architectures (12 different types of CPU). This paper takes a look at what has been done to make it portable, and how this has decreased the amount of effort needed to port NetBSD to a new architecture. The new AMD x86-64 architecture, of which the specifications were published at the end of 2000, with hardware to follow in 2002, is used as an example.

Err codemadness.org 70 i 14981
Err codemadness.org 70 i 14982 Err codemadness.org 70 i 14983
    Err codemadness.org 70 i 14984
  • Portability
  • Err codemadness.org 70 i 14985
Err codemadness.org 70 i 14986 Err codemadness.org 70 i 14987
Err codemadness.org 70 i 14988

Supporting multiple platforms was a primary goal of the NetBSD project from the start. As NetBSD was ported to more and more platforms, the NetBSD kernel code was adapted to become more portable along the way.

Err codemadness.org 70 i 14989
Err codemadness.org 70 i 14990 Err codemadness.org 70 i 14991
    Err codemadness.org 70 i 14992
  • General
  • Err codemadness.org 70 i 14993
Err codemadness.org 70 i 14994 Err codemadness.org 70 i 14995
Err codemadness.org 70 i 14996

Generally, code is shared between ports as much as possible. In NetBSD, it should always be considered if the code can be assumed to be useful on other architectures, present or future. If so, it is machine-independent and put it in an appropriate place in the source tree. When writing code that is intended to be machine-independent, and it contains conditional preprocessor statements depending on the architecture, then the code is likely wrong, or an extra abstraction layer is needed to get rid of these statements.

Err codemadness.org 70 i 14997
Err codemadness.org 70 i 14998 Err codemadness.org 70 i 14999
    Err codemadness.org 70 i 15000
  • Types
  • Err codemadness.org 70 i 15001
Err codemadness.org 70 i 15002 Err codemadness.org 70 i 15003
Err codemadness.org 70 i 15004

Assumptions about the size of any type are not made. Assumptions made about type sizes on 32-bit platforms were a large problem when 64-bit platforms came around. Most of the problems of this kind had to be dealt with when NetBSD was ported to the DEC Alpha in 1994. A variation on this problem had to be dealt with with the UltraSPARC (sparc64) port in 1998, which is 64-bit, but big endian (vs. the little-endianness of the Alpha). When interacting with datastructures of a fixed size, such as on-disk metadata for filesystems, or datastructures directly interpreted by device hardware, explicitly sized types are used, such as uint32_t, int8_t, etc.

Err codemadness.org 70 i 15005
Err codemadness.org 70 i 15006 Err codemadness.org 70 i 15007
    Err codemadness.org 70 i 15008
  • Conclusions and future work
  • Err codemadness.org 70 i 15009
Err codemadness.org 70 i 15010 Err codemadness.org 70 i 15011
Err codemadness.org 70 i 15012

The port of NetBSD to AMD's x86-64 architecture was done in six weeks, which confirms NetBSD's reputation as being a very portable operating system. One week was spent setting up the cross-toolchain and reading the x86-64 specifications, three weeks were spent writing the kernel code, one week was spent writing the userspace code, and one week testing and debugging it all. No problems were observed in any of the machine-independent parts of the kernel during test runs; all (simulated) device drivers, file systems, etc, worked without modification.

Err codemadness.org 70 i 15013
Err codemadness.org 70 i 15014 Err codemadness.org 70 i 15015
Err codemadness.org 70 i 15016 Err codemadness.org 70 i 15017

News Roundup

Err codemadness.org 70 i 15018 Err codemadness.org 70 i 15019

ZFS performance really does degrade as you approach quota limits

Err codemadness.org 70 i 15020 Err codemadness.org 70 i 15021
Err codemadness.org 70 i 15022

Every so often (currently monthly), there is an "OpenZFS leadership meeting". What this really means is 'lead developers from the various ZFS implementations get together to talk about things'. Announcements and meeting notes from these meetings get sent out to various mailing lists, including the ZFS on Linux ones.

Err codemadness.org 70 i 15023
Err codemadness.org 70 i 15024 Err codemadness.org 70 i 15025
    Err codemadness.org 70 i 15026
  • In the September meeting notes, I read a very interesting (to me) agenda item: Err codemadness.org 70 i 15027 Err codemadness.org 70 i 15028
      Err codemadness.org 70 i 15029
    • Relax quota semantics for improved performance (Allan Jude)
    • Err codemadness.org 70 i 15030
    • Problem: As you approach quotas, ZFS performance degrades.
    • Err codemadness.org 70 i 15031
    • Proposal: Can we have a property like quota-policy=strict or loose, where we can optionally allow ZFS to run over the quota as long as performance is not decreased.
    • Err codemadness.org 70 i 15032
  • Err codemadness.org 70 i 15033
Err codemadness.org 70 i 15034 Err codemadness.org 70 i 15035
Err codemadness.org 70 i 15036

This is very interesting to me because of two reasons. First, in the past we have definitely seen significant problems on our OmniOS machines, both when an entire pool hits a quota limit and when a single filesystem hits a refquota limit. It's nice to know that this wasn't just our imagination and that there is a real issue here. Even better, it might someday be improved (and perhaps in a way that we can use at least some of the time).

Err codemadness.org 70 i 15037 Err codemadness.org 70 i 15038

Second, any number of people here run very close to and sometimes at the quota limits of both filesystems and pools, fundamentally because people aren't willing to buy more space. We have in the past assumed that this was relatively harmless and would only make people run out of space. If this is a known issue that causes serious performance degradation, well, I don't know if there's anything we can do, but at least we're going to have to think about it and maybe push harder at people. The first step will have to be learning the details of what's going on at the ZFS level to cause the slowdown. (It's apparently similar to what happens when the pool is almost full, but I don't know the specifics of that either.)

Err codemadness.org 70 i 15039 Err codemadness.org 70 i 15040

With that said, we don't seem to have seen clear adverse effects on our Linux fileservers, and they've definitely run into quota limits (repeatedly). One possible reason for this is that having lots of RAM and SSDs makes the effects mostly go away. Another possible reason is that we haven't been looking closely enough to see that we're experiencing global slowdowns that correlate to filesystems hitting quota limits. We've had issues before with somewhat subtle slowdowns that we didn't understand (cf), so I can't discount that we're having it happen again.

Err codemadness.org 70 i 15041
Err codemadness.org 70 i 15042 Err codemadness.org 70 i 15043
Err codemadness.org 70 i 15044 Err codemadness.org 70 i 15045

Fixing up KA9Q-unix, or "neck deep in 30 year old codebases.."

Err codemadness.org 70 i 15046 Err codemadness.org 70 i 15047
Err codemadness.org 70 i 15048

I'll preface this by saying - yes, I'm still neck deep in FreeBSD's wifi stack and 802.11ac support, but it turns out it's slow work to fix 15 year old locking related issues that worked fine on 11abg cards, kinda worked ok on 11n cards, and are terrible for these 11ac cards. I'll .. get there.

Err codemadness.org 70 i 15049 Err codemadness.org 70 i 15050

Anyhoo, I've finally been mucking around with AX.25 packet radio. I've been wanting to do this since I was a teenager and found out about its existence, but back in high school and .. well, until a few years ago really .. I didn't have my amateur radio licence. But, now I do, and I've done a bunch of other stuff with a bunch of other radios. The main stumbling block? All my devices are either Apple products or run FreeBSD - and none of them have useful AX.25 stacks. The main stacks of choice these days run on Linux, Windows or are a full hardware TNC.

Err codemadness.org 70 i 15051 Err codemadness.org 70 i 15052

So yes, I was avoiding hacking on AX.25 stuff because there wasn't a BSD compatible AX.25 stack. I'm 40 now, leave me be.

Err codemadness.org 70 i 15053 Err codemadness.org 70 i 15054

But! A few weeks ago I found that someone was still running a packet BBS out of San Francisco. And amazingly, his local node ran on FreeBSD! It turns out Jeremy (KK6JJJ) ported both an old copy of KA9Q and N0ARY-BBS to run on FreeBSD! Cool!

Err codemadness.org 70 i 15055 Err codemadness.org 70 i 15056

I grabbed my 2m radio (which is already cabled up for digital modes), compiled up his KA9Q port, figured out how to get it to speak to Direwolf, and .. ok. Well, it worked. Kinda.

Err codemadness.org 70 i 15057
Err codemadness.org 70 i 15058 Err codemadness.org 70 i 15059
Err codemadness.org 70 i 15060 Err codemadness.org 70 i 15061

HAMMER2 and fsck for review

Err codemadness.org 70 i 15062 Err codemadness.org 70 i 15063
Err codemadness.org 70 i 15064

HAMMER2 is Copy on Write, meaning changes are made to copies of existing data. This means operations are generally atomic and can survive a power outage, etc. (You should read up on it!) However, there\u2019s now a fsck command, useful if you want a report of data validity rather than any manual repair process.

Err codemadness.org 70 i 15065
Err codemadness.org 70 i 15066 Err codemadness.org 70 i 15067
Err codemadness.org 70 i 15068 Err codemadness.org 70 i 15069

[The return of startx(1) for non-root users with some caveats

Err codemadness.org 70 i 15070 Err codemadness.org 70 i 15071

Mark Kettenis (kettenis@) has recently committed changes which restore a certain amount of startx(1)/xinit(1) functionality for non-root users. The commit messages explain the situation:

Err codemadness.org 70 i 15072 Err codemadness.org 70 i 15073
CVSROOT:    /cvs	Err	codemadness.org	70
i 15074 Module name:    src	Err	codemadness.org	70
i 15075 Changes by:    kettenis@cvs.openbsd.org    2019/09/15 06:25:41	Err	codemadness.org	70
i 15076 	Err	codemadness.org	70
i 15077 Modified files:	Err	codemadness.org	70
i 15078     etc/etc.amd64  : fbtab 	Err	codemadness.org	70
i 15079     etc/etc.arm64  : fbtab 	Err	codemadness.org	70
i 15080     etc/etc.hppa   : fbtab 	Err	codemadness.org	70
i 15081     etc/etc.i386   : fbtab 	Err	codemadness.org	70
i 15082     etc/etc.loongson: fbtab 	Err	codemadness.org	70
i 15083     etc/etc.luna88k: fbtab 	Err	codemadness.org	70
i 15084     etc/etc.macppc : fbtab 	Err	codemadness.org	70
i 15085     etc/etc.octeon : fbtab 	Err	codemadness.org	70
i 15086     etc/etc.sgi    : fbtab 	Err	codemadness.org	70
i 15087     etc/etc.sparc64: fbtab 	Err	codemadness.org	70
i 15088 	Err	codemadness.org	70
i 15089 Log message:	Err	codemadness.org	70
i 15090 Add ttyC4 to lost of devices to change when logging in on ttyC0 (and in some cases also the serial console) such that X can use it as its VT when running without root privileges.	Err	codemadness.org	70
i 15091 	Err	codemadness.org	70
i 15092 ok jsg@, matthieu@	Err	codemadness.org	70
i 15093 CVSROOT:    /cvs	Err	codemadness.org	70
i 15094 Module name:    xenocara	Err	codemadness.org	70
i 15095 Changes by:    kettenis@cvs.openbsd.org    2019/09/15 06:31:08	Err	codemadness.org	70
i 15096 	Err	codemadness.org	70
i 15097 Modified files:	Err	codemadness.org	70
i 15098     xserver/hw/xfree86/common: xf86AutoConfig.c 	Err	codemadness.org	70
i 15099 	Err	codemadness.org	70
i 15100 Log message:	Err	codemadness.org	70
i 15101 Add modesetting driver as a fall-back when appropriate such that we can use it when running without root privileges which prevents us from scanning the PCI bus.	Err	codemadness.org	70
i 15102 	Err	codemadness.org	70
i 15103 This makes startx(1)/xinit(1) work again on modern systems with inteldrm(4), radeondrm(4) and amdgpu(4).  In some cases this will result in using a different driver than with xenodm(4) which may expose issues (e.g. when we prefer the intel Xorg driver) or loss of acceleration (e.g. older cards supported by radeondrm(4)).	Err	codemadness.org	70
i 15104 	Err	codemadness.org	70
i 15105 ok jsg@, matthieu@	Err	codemadness.org	70
i 15106 
Err codemadness.org 70 i 15107 Err codemadness.org 70 i 15108
Err codemadness.org 70 i 15109 Err codemadness.org 70 i 15110

Beastie Bits

Err codemadness.org 70 i 15111 Err codemadness.org 70 i 15112 Err codemadness.org 70 i 15120 Err codemadness.org 70 i 15121
Err codemadness.org 70 i 15122 Err codemadness.org 70 i 15123

Feedback/Questions

Err codemadness.org 70 i 15124 Err codemadness.org 70 i 15125 Err codemadness.org 70 i 15130 Err codemadness.org 70 i 15131
Err codemadness.org 70 i 15132 Err codemadness.org 70 i 15133
    Err codemadness.org 70 i 15134
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 15135
Err codemadness.org 70 i 15136 Err codemadness.org 70 i 15137
Err codemadness.org 70 i 15138 Err codemadness.org 70 i 15139 ]]> Err codemadness.org 70 i 15143
Err codemadness.org 70 i 15144 https://fireside.fm/player/v2/FYhhasNR+49BGA1BK Err codemadness.org 70 i 15145 Err codemadness.org 70 i 15146 ]]> Err codemadness.org 70 i 15147 Err codemadness.org 70 i 15148
Err codemadness.org 70 i 15149 Err codemadness.org 70 i 15150 319: Lack Rack, Jack Err codemadness.org 70 i 15151 https://www.bsdnow.tv/319 Err codemadness.org 70 i 15152 19c9942c-0790-4157-af73-31faf1e2b8e4 Err codemadness.org 70 i 15153 Wed, 09 Oct 2019 20:00:00 -0700 Err codemadness.org 70 i 15154 Allan Jude Err codemadness.org 70 i 15155 Err codemadness.org 70 i 15156 full Err codemadness.org 70 i 15157 Allan Jude Err codemadness.org 70 i 15158 Causing ZFS corruption for fun, NetBSD Assembly Programming Tutorial, The IKEA Lack Rack for Servers, a new OmniOS Community Edition LTS has been published, List Block Devices on FreeBSD lsblk(8) Style, Project Trident 19.10 available, and more. Err codemadness.org 70 i 15159 1:07:50 Err codemadness.org 70 i 15160 no Err codemadness.org 70 i 15161 Err codemadness.org 70 i 15162 Causing ZFS corruption for fun, NetBSD Assembly Programming Tutorial, The IKEA Lack Rack for Servers, a new OmniOS Community Edition LTS has been published, List Block Devices on FreeBSD lsblk(8) Style, Project Trident 19.10 available, and more. Err codemadness.org 70 i 15163 Headlines Err codemadness.org 70 i 15164 Causing ZFS corruption for fun and profit (https://datto.engineering/post/causing-zfs-corruption) Err codemadness.org 70 i 15165 Datto backs up data, a lot of it. At the time of writing Datto has over 500 PB of data stored on ZFS. This count includes both backup appliances that are sent to customer sites, as well as cloud storage servers that are used for secondary and tertiary backup of those appliances. At this scale drive swaps are a daily occurrence, and data corruption is inevitable. How we handle this corruption when it happens determines whether we truly lose data, or successfully restore from secondary backup. In this post we'll be showing you how at Datto we intentionally cause corruption in our testing environments, to ensure we're building software that can properly handle these scenarios. Err codemadness.org 70 i 15166 Causing Corruption Err codemadness.org 70 i 15167 Since this is a mirror setup, a naive solution to cause corruption would be to randomly dd the same sectors of both /dev/sdb and /dev/sdc. This works, but is equally likely to just overwrite random unused space, or take down the zpool entirely. What we really want is to corrupt a specific snapshot, or even a specific file in that snapshot, to simulate a more realistic minor corruption event. Luckily we have a tool called zdb that lets us view some low level information about datasets. Err codemadness.org 70 i 15168 Conclusion Err codemadness.org 70 i 15169 At the 500 PB scale, it's not a matter of if data corruption will happen but when. Intentionally causing corruption is one of the strategies we use to ensure we're building software that can handle these rare (but inevitable) events. Err codemadness.org 70 i 15170 To others out there using ZFS: I'm curious to hear how you've solved this problem. We did quite a bit of experimentation with zinject before going with this more brute force method. So I'd be especially interested if you've had luck simply simulating corruption with zinject. Err codemadness.org 70 i 15171 NetBSD Assembly Programming Tutorial (https://polprog.net/blog/netbsdasmprog/) Err codemadness.org 70 i 15172 A sparc64 version is also being prepared and will be added when done Err codemadness.org 70 i 15173 This post describes how to write a simple hello world program in pure assembly on NetBSD/amd64. We will not use (nor link against) libc, nor use gcc to compile it. I will be using GNU as (gas), and therefore the AT&T syntax instead of Intel. Err codemadness.org 70 i 15174 Why assembly? Err codemadness.org 70 i 15175 Why not? Because it's fun to program in assembly directly. Contrary to a popular belief assembly programs aren't always faster than what optimizing compilers produce. Nevertheless it's good to be able to read assembly, especially when debugging C programs Err codemadness.org 70 i 15176 Due to the nature of the guide, visit the site for the complete breakdown Err codemadness.org 70 i 15177 News Roundup Err codemadness.org 70 i 15178 The IKEA Lack Rack for Servers (https://wiki.eth0.nl/index.php/LackRack) Err codemadness.org 70 i 15179 The LackRack Err codemadness.org 70 i 15180 First occurrence on eth0:2010 Winterlan, the LackRack is the ultimate, low-cost, high shininess solution for your modular datacenter-in-the-living-room. Featuring the LACK (side table) from Ikea, the LackRack is an easy-to-implement, exact-fit datacenter building block. It's a little known fact that we have seen Google engineers tinker with Lack tables since way back in 2009. Err codemadness.org 70 i 15181 The LackRack will certainly make its appearance again this summer at eth0:2010 Summer. Err codemadness.org 70 i 15182 Summary Err codemadness.org 70 i 15183 When temporarily not in use, multiple LackRacks can be stacked in a space-efficient way without disassembly, unlike competing 19" server racks. Err codemadness.org 70 i 15184 The LackRack was first seen on eth0:2010 Winterlan in the no-shoe Lounge area. Its low-cost and perfect fit are great for mounting up to 8 U of 19" hardware, such as switches (see below), or perhaps other 19" gear. It's very easy to assemble, and thanks to the design, they are stable enough to hold (for example) 19" switches and you can put your bottle of Club-Mate on top! Multi-shiny LackRack can also be painted to your specific preferences and the airflow is unprecedented! Err codemadness.org 70 i 15185 Howto Err codemadness.org 70 i 15186 You can find a howto on buying a LackRack on this page. This includes the proof that a 19" switch can indeed be placed in the LackRack in its natural habitat! Err codemadness.org 70 i 15187 OmniOS Community Edition r151030 LTS - Published at May 6, 2019 (https://omniosce.org/article/release-030) Err codemadness.org 70 i 15188 The OmniOS Community Edition Association is proud to announce the general availability of OmniOS - r151030. Err codemadness.org 70 i 15189 OmniOS is published according to a 6-month release cycle, r151030 LTS takes over from r151028, published in November 2018; and since it is a LTS release it also takes over from r151022. The r151030 LTS release will be supported for 3 Years. It is the first LTS release published by the OmniOS CE Association since taking over the reins from OmniTI in 2017. The next LTS release is scheduled for May 2021. The old stable r151026 release is now end-of-life. See the release schedule for further details. Err codemadness.org 70 i 15190 This is only a small selection of the new features, and bug fixes in the new release; review the release notes for full details. Err codemadness.org 70 i 15191 If you upgrade from r22 and want to see all new features added since then, make sure to also read the release notes for r24, r26 and r28. Err codemadness.org 70 i 15192 For full relase notes including upgrade instructions; Err codemadness.org 70 i 15193 release notes (https://omniosce.org/releasenotes.html) Err codemadness.org 70 i 15194 upgrade instructions (https://omniosce.org/upgrade.html) Err codemadness.org 70 i 15195 List Block Devices on FreeBSD lsblk(8) Style (https://vermaden.wordpress.com/2019/09/27/list-block-devices-on-freebsd-lsblk8-style/) Err codemadness.org 70 i 15196 When I have to work on Linux systems I usually miss many nice FreeBSD tools such as these for example to name the few: sockstat, gstat, top -b -o res, top -m io -o total, usbconfig, rcorder, beadm/bectl, idprio/rtprio,… but sometimes – which rarely happens – Linux has some very useful tool that is not available on FreeBSD. An example of such tool is lsblk(8) that does one thing and does it quite well – lists block devices and their contents. It has some problems like listing a disk that is entirely used under ZFS pool on which lsblk(8) displays two partitions instead of information about ZFS just being there – but we all know how much in some circles the CDDL licensed ZFS is unloved in that GPL world. Err codemadness.org 70 i 15197 Example lsblk(8) output from Linux system: Err codemadness.org 70 i 15198 Err codemadness.org 70 i 15199 $ lsblk Err codemadness.org 70 i 15200 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT Err codemadness.org 70 i 15201 sr0 11:0 1 1024M 0 rom Err codemadness.org 70 i 15202 sda 8:0 0 931.5G 0 disk Err codemadness.org 70 i 15203 |-sda1 8:1 0 500M 0 part /boot Err codemadness.org 70 i 15204 `-sda2 8:2 0 931G 0 part Err codemadness.org 70 i 15205 |-vg_local-lv_root (dm-0) 253:0 0 50G 0 lvm / Err codemadness.org 70 i 15206 |-vg_local-lv_swap (dm-1) 253:1 0 17.7G 0 lvm [SWAP] Err codemadness.org 70 i 15207 `-vg_local-lv_home (dm-2) 253:2 0 1.8T 0 lvm /home Err codemadness.org 70 i 15208 sdc 8:32 0 232.9G 0 disk Err codemadness.org 70 i 15209 `-sdc1 8:33 0 232.9G 0 part Err codemadness.org 70 i 15210 `-md1 9:1 0 232.9G 0 raid10 /data Err codemadness.org 70 i 15211 sdd 8:48 0 232.9G 0 disk Err codemadness.org 70 i 15212 `-sdd1 8:49 0 232.9G 0 part Err codemadness.org 70 i 15213 `-md1 9:1 0 232.9G 0 raid10 /data Err codemadness.org 70 i 15214 Err codemadness.org 70 i 15215 What FreeBSD offers in this department? The camcontrol(8) and geom(8) commands are available. You can also use gpart(8) command to list partitions. Below you will find output of these commands from my single disk laptop. Please note that because of WordPress limitations I need to change all > < characters to ] [ ones in the commands outputs. Err codemadness.org 70 i 15216 See the article for the rest of the guide Err codemadness.org 70 i 15217 Project Trident 19.10 Now Available (https://project-trident.org/post/2019-10-05_19.10_available/) Err codemadness.org 70 i 15218 This is a general package update to the CURRENT release repository based upon TrueOS 19.10 Err codemadness.org 70 i 15219 PACKAGE CHANGES FROM 19.08 Err codemadness.org 70 i 15220 New Packages: 601 Err codemadness.org 70 i 15221 Deleted Packages: 165 Err codemadness.org 70 i 15222 Updated Packages: 3341 Err codemadness.org 70 i 15223 Beastie Bits Err codemadness.org 70 i 15224 NetBSD building tools (https://imgur.com/gallery/0sG4b1K) Err codemadness.org 70 i 15225 Sponsorships open for SNMP Mastery (https://mwl.io/archives/4569) Err codemadness.org 70 i 15226 pkgsrc-2019Q3 release announcement (2019-10-03) (http://mail-index.netbsd.org/pkgsrc-users/2019/10/03/msg029485.html) Err codemadness.org 70 i 15227 pfetch - A simple system information tool written in POSIX sh (https://github.com/dylanaraps/pfetch) Err codemadness.org 70 i 15228 Taking NetBSD kernel bug roast to the next level: Kernel Fuzzers (quick A.D. 2019 overview) (https://netbsd.org/~kamil/eurobsdcon2019_fuzzing/presentation.html#slide1) Err codemadness.org 70 i 15229 Cracking Ken Thomson’s password (https://leahneukirchen.org/blog/archive/2019/10/ken-thompson-s-unix-password.html) Err codemadness.org 70 i 15230 Feedback/Questions Err codemadness.org 70 i 15231 Evilham - Couple Questions (http://dpaste.com/2JC85WV) Err codemadness.org 70 i 15232 Rob - APU2 alternatives and GPT partition types (http://dpaste.com/0SDX9ZX) Err codemadness.org 70 i 15233 Tom - FreeBSD journal article by A. Fengler (http://dpaste.com/2B43MY1#wrap) Err codemadness.org 70 i 15234 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 15235 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 15236 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0319.mp4" type="video/mp4"> Err codemadness.org 70 i 15237 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 15238 </video> Err codemadness.org 70 i 15239 Err codemadness.org 70 i 15240 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, Untitled 1interview, zfs, assembly, assembly programming, programming, programming tutorial, ikea, rack, server rack, omnios, omnios lts, lsblk, project trident Err codemadness.org 70 i 15241 Err codemadness.org 70 i 15242 Causing ZFS corruption for fun, NetBSD Assembly Programming Tutorial, The IKEA Lack Rack for Servers, a new OmniOS Community Edition LTS has been published, List Block Devices on FreeBSD lsblk(8) Style, Project Trident 19.10 available, and more.

Err codemadness.org 70 i 15243 Err codemadness.org 70 i 15244

Headlines

Err codemadness.org 70 i 15245 Err codemadness.org 70 i 15246

Causing ZFS corruption for fun and profit

Err codemadness.org 70 i 15247 Err codemadness.org 70 i 15248
Err codemadness.org 70 i 15249

Datto backs up data, a lot of it. At the time of writing Datto has over 500 PB of data stored on ZFS. This count includes both backup appliances that are sent to customer sites, as well as cloud storage servers that are used for secondary and tertiary backup of those appliances. At this scale drive swaps are a daily occurrence, and data corruption is inevitable. How we handle this corruption when it happens determines whether we truly lose data, or successfully restore from secondary backup. In this post we'll be showing you how at Datto we intentionally cause corruption in our testing environments, to ensure we're building software that can properly handle these scenarios.

Err codemadness.org 70 i 15250
Err codemadness.org 70 i 15251 Err codemadness.org 70 i 15252
    Err codemadness.org 70 i 15253
  • Causing Corruption
  • Err codemadness.org 70 i 15254
Err codemadness.org 70 i 15255 Err codemadness.org 70 i 15256
Err codemadness.org 70 i 15257

Since this is a mirror setup, a naive solution to cause corruption would be to randomly dd the same sectors of both /dev/sdb and /dev/sdc. This works, but is equally likely to just overwrite random unused space, or take down the zpool entirely. What we really want is to corrupt a specific snapshot, or even a specific file in that snapshot, to simulate a more realistic minor corruption event. Luckily we have a tool called zdb that lets us view some low level information about datasets.

Err codemadness.org 70 i 15258
Err codemadness.org 70 i 15259 Err codemadness.org 70 i 15260
    Err codemadness.org 70 i 15261
  • Conclusion
  • Err codemadness.org 70 i 15262
Err codemadness.org 70 i 15263 Err codemadness.org 70 i 15264
Err codemadness.org 70 i 15265

At the 500 PB scale, it's not a matter of if data corruption will happen but when. Intentionally causing corruption is one of the strategies we use to ensure we're building software that can handle these rare (but inevitable) events.

Err codemadness.org 70 i 15266 Err codemadness.org 70 i 15267

To others out there using ZFS: I'm curious to hear how you've solved this problem. We did quite a bit of experimentation with zinject before going with this more brute force method. So I'd be especially interested if you've had luck simply simulating corruption with zinject.

Err codemadness.org 70 i 15268
Err codemadness.org 70 i 15269 Err codemadness.org 70 i 15270
Err codemadness.org 70 i 15271 Err codemadness.org 70 i 15272

NetBSD Assembly Programming Tutorial

Err codemadness.org 70 i 15273 Err codemadness.org 70 i 15274
Err codemadness.org 70 i 15275

A sparc64 version is also being prepared and will be added when done

Err codemadness.org 70 i 15276 Err codemadness.org 70 i 15277

This post describes how to write a simple hello world program in pure assembly on NetBSD/amd64. We will not use (nor link against) libc, nor use gcc to compile it. I will be using GNU as (gas), and therefore the AT&T syntax instead of Intel.

Err codemadness.org 70 i 15278
Err codemadness.org 70 i 15279 Err codemadness.org 70 i 15280
    Err codemadness.org 70 i 15281
  • Why assembly?
  • Err codemadness.org 70 i 15282
Err codemadness.org 70 i 15283 Err codemadness.org 70 i 15284
Err codemadness.org 70 i 15285

Why not? Because it's fun to program in assembly directly. Contrary to a popular belief assembly programs aren't always faster than what optimizing compilers produce. Nevertheless it's good to be able to read assembly, especially when debugging C programs

Err codemadness.org 70 i 15286
Err codemadness.org 70 i 15287 Err codemadness.org 70 i 15288
    Err codemadness.org 70 i 15289
  • Due to the nature of the guide, visit the site for the complete breakdown
  • Err codemadness.org 70 i 15290
Err codemadness.org 70 i 15291 Err codemadness.org 70 i 15292
Err codemadness.org 70 i 15293 Err codemadness.org 70 i 15294

News Roundup

Err codemadness.org 70 i 15295 Err codemadness.org 70 i 15296

The IKEA Lack Rack for Servers

Err codemadness.org 70 i 15297 Err codemadness.org 70 i 15298
    Err codemadness.org 70 i 15299
  • The LackRack
  • Err codemadness.org 70 i 15300
Err codemadness.org 70 i 15301 Err codemadness.org 70 i 15302
Err codemadness.org 70 i 15303

First occurrence on eth0:2010 Winterlan, the LackRack is the ultimate, low-cost, high shininess solution for your modular datacenter-in-the-living-room. Featuring the LACK (side table) from Ikea, the LackRack is an easy-to-implement, exact-fit datacenter building block. It's a little known fact that we have seen Google engineers tinker with Lack tables since way back in 2009.

Err codemadness.org 70 i 15304 Err codemadness.org 70 i 15305

The LackRack will certainly make its appearance again this summer at eth0:2010 Summer.

Err codemadness.org 70 i 15306
Err codemadness.org 70 i 15307 Err codemadness.org 70 i 15308
    Err codemadness.org 70 i 15309
  • Summary
  • Err codemadness.org 70 i 15310
Err codemadness.org 70 i 15311 Err codemadness.org 70 i 15312
Err codemadness.org 70 i 15313

When temporarily not in use, multiple LackRacks can be stacked in a space-efficient way without disassembly, unlike competing 19" server racks.

Err codemadness.org 70 i 15314 Err codemadness.org 70 i 15315

The LackRack was first seen on eth0:2010 Winterlan in the no-shoe Lounge area. Its low-cost and perfect fit are great for mounting up to 8 U of 19" hardware, such as switches (see below), or perhaps other 19" gear. It's very easy to assemble, and thanks to the design, they are stable enough to hold (for example) 19" switches and you can put your bottle of Club-Mate on top! Multi-shiny LackRack can also be painted to your specific preferences and the airflow is unprecedented!

Err codemadness.org 70 i 15316
Err codemadness.org 70 i 15317 Err codemadness.org 70 i 15318
    Err codemadness.org 70 i 15319
  • Howto
  • Err codemadness.org 70 i 15320
Err codemadness.org 70 i 15321 Err codemadness.org 70 i 15322
Err codemadness.org 70 i 15323

You can find a howto on buying a LackRack on this page. This includes the proof that a 19" switch can indeed be placed in the LackRack in its natural habitat!

Err codemadness.org 70 i 15324
Err codemadness.org 70 i 15325 Err codemadness.org 70 i 15326
Err codemadness.org 70 i 15327 Err codemadness.org 70 i 15328

OmniOS Community Edition r151030 LTS - Published at May 6, 2019

Err codemadness.org 70 i 15329 Err codemadness.org 70 i 15330
Err codemadness.org 70 i 15331

The OmniOS Community Edition Association is proud to announce the general availability of OmniOS - r151030.

Err codemadness.org 70 i 15332 Err codemadness.org 70 i 15333

OmniOS is published according to a 6-month release cycle, r151030 LTS takes over from r151028, published in November 2018; and since it is a LTS release it also takes over from r151022. The r151030 LTS release will be supported for 3 Years. It is the first LTS release published by the OmniOS CE Association since taking over the reins from OmniTI in 2017. The next LTS release is scheduled for May 2021. The old stable r151026 release is now end-of-life. See the release schedule for further details.

Err codemadness.org 70 i 15334 Err codemadness.org 70 i 15335

This is only a small selection of the new features, and bug fixes in the new release; review the release notes for full details.

Err codemadness.org 70 i 15336 Err codemadness.org 70 i 15337

If you upgrade from r22 and want to see all new features added since then, make sure to also read the release notes for r24, r26 and r28.

Err codemadness.org 70 i 15338
Err codemadness.org 70 i 15339 Err codemadness.org 70 i 15340
    Err codemadness.org 70 i 15341
  • For full relase notes including upgrade instructions;
  • Err codemadness.org 70 i 15342
  • release notes
  • Err codemadness.org 70 i 15343
  • upgrade instructions
  • Err codemadness.org 70 i 15344
Err codemadness.org 70 i 15345 Err codemadness.org 70 i 15346
Err codemadness.org 70 i 15347 Err codemadness.org 70 i 15348

List Block Devices on FreeBSD lsblk(8) Style

Err codemadness.org 70 i 15349 Err codemadness.org 70 i 15350
Err codemadness.org 70 i 15351

When I have to work on Linux systems I usually miss many nice FreeBSD tools such as these for example to name the few: sockstat, gstat, top -b -o res, top -m io -o total, usbconfig, rcorder, beadm/bectl, idprio/rtprio,… but sometimes – which rarely happens – Linux has some very useful tool that is not available on FreeBSD. An example of such tool is lsblk(8) that does one thing and does it quite well – lists block devices and their contents. It has some problems like listing a disk that is entirely used under ZFS pool on which lsblk(8) displays two partitions instead of information about ZFS just being there – but we all know how much in some circles the CDDL licensed ZFS is unloved in that GPL world.

Err codemadness.org 70 i 15352
Err codemadness.org 70 i 15353 Err codemadness.org 70 i 15354

Example lsblk(8) output from Linux system:

Err codemadness.org 70 i 15355 Err codemadness.org 70 i 15356
$ lsblk	Err	codemadness.org	70
i 15357 NAME                         MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINT	Err	codemadness.org	70
i 15358 sr0                           11:0    1  1024M  0 rom	Err	codemadness.org	70
i 15359 sda                            8:0    0 931.5G  0 disk	Err	codemadness.org	70
i 15360 |-sda1                         8:1    0   500M  0 part   /boot	Err	codemadness.org	70
i 15361 `-sda2                         8:2    0   931G  0 part	Err	codemadness.org	70
i 15362   |-vg_local-lv_root (dm-0)  253:0    0    50G  0 lvm    /	Err	codemadness.org	70
i 15363   |-vg_local-lv_swap (dm-1)  253:1    0  17.7G  0 lvm    [SWAP]	Err	codemadness.org	70
i 15364   `-vg_local-lv_home (dm-2)  253:2    0   1.8T  0 lvm    /home	Err	codemadness.org	70
i 15365 sdc                            8:32   0 232.9G  0 disk	Err	codemadness.org	70
i 15366 `-sdc1                         8:33   0 232.9G  0 part	Err	codemadness.org	70
i 15367   `-md1                        9:1    0 232.9G  0 raid10 /data	Err	codemadness.org	70
i 15368 sdd                            8:48   0 232.9G  0 disk	Err	codemadness.org	70
i 15369 `-sdd1                         8:49   0 232.9G  0 part	Err	codemadness.org	70
i 15370   `-md1                        9:1    0 232.9G  0 raid10 /data	Err	codemadness.org	70
i 15371 
Err codemadness.org 70 i 15372 Err codemadness.org 70 i 15373
Err codemadness.org 70 i 15374

What FreeBSD offers in this department? The camcontrol(8) and geom(8) commands are available. You can also use gpart(8) command to list partitions. Below you will find output of these commands from my single disk laptop. Please note that because of WordPress limitations I need to change all > < characters to ] [ ones in the commands outputs.

Err codemadness.org 70 i 15375
Err codemadness.org 70 i 15376 Err codemadness.org 70 i 15377
    Err codemadness.org 70 i 15378
  • See the article for the rest of the guide
  • Err codemadness.org 70 i 15379
Err codemadness.org 70 i 15380 Err codemadness.org 70 i 15381
Err codemadness.org 70 i 15382 Err codemadness.org 70 i 15383

Project Trident 19.10 Now Available

Err codemadness.org 70 i 15384 Err codemadness.org 70 i 15385
Err codemadness.org 70 i 15386

This is a general package update to the CURRENT release repository based upon TrueOS 19.10

Err codemadness.org 70 i 15387
Err codemadness.org 70 i 15388 Err codemadness.org 70 i 15389
    Err codemadness.org 70 i 15390
  • PACKAGE CHANGES FROM 19.08 Err codemadness.org 70 i 15391 Err codemadness.org 70 i 15392
      Err codemadness.org 70 i 15393
    • New Packages: 601
    • Err codemadness.org 70 i 15394
    • Deleted Packages: 165
    • Err codemadness.org 70 i 15395
    • Updated Packages: 3341
    • Err codemadness.org 70 i 15396
  • Err codemadness.org 70 i 15397
Err codemadness.org 70 i 15398 Err codemadness.org 70 i 15399
Err codemadness.org 70 i 15400 Err codemadness.org 70 i 15401

Beastie Bits

Err codemadness.org 70 i 15402 Err codemadness.org 70 i 15403 Err codemadness.org 70 i 15411 Err codemadness.org 70 i 15412
Err codemadness.org 70 i 15413 Err codemadness.org 70 i 15414

Feedback/Questions

Err codemadness.org 70 i 15415 Err codemadness.org 70 i 15416 Err codemadness.org 70 i 15421 Err codemadness.org 70 i 15422
Err codemadness.org 70 i 15423 Err codemadness.org 70 i 15424
    Err codemadness.org 70 i 15425
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 15426
Err codemadness.org 70 i 15427 Err codemadness.org 70 i 15428
Err codemadness.org 70 i 15429 Err codemadness.org 70 i 15430 ]]> Err codemadness.org 70 i 15434
Err codemadness.org 70 i 15435 Err codemadness.org 70 i 15436 Causing ZFS corruption for fun, NetBSD Assembly Programming Tutorial, The IKEA Lack Rack for Servers, a new OmniOS Community Edition LTS has been published, List Block Devices on FreeBSD lsblk(8) Style, Project Trident 19.10 available, and more.

Err codemadness.org 70 i 15437 Err codemadness.org 70 i 15438

Headlines

Err codemadness.org 70 i 15439 Err codemadness.org 70 i 15440

Causing ZFS corruption for fun and profit

Err codemadness.org 70 i 15441 Err codemadness.org 70 i 15442
Err codemadness.org 70 i 15443

Datto backs up data, a lot of it. At the time of writing Datto has over 500 PB of data stored on ZFS. This count includes both backup appliances that are sent to customer sites, as well as cloud storage servers that are used for secondary and tertiary backup of those appliances. At this scale drive swaps are a daily occurrence, and data corruption is inevitable. How we handle this corruption when it happens determines whether we truly lose data, or successfully restore from secondary backup. In this post we'll be showing you how at Datto we intentionally cause corruption in our testing environments, to ensure we're building software that can properly handle these scenarios.

Err codemadness.org 70 i 15444
Err codemadness.org 70 i 15445 Err codemadness.org 70 i 15446
    Err codemadness.org 70 i 15447
  • Causing Corruption
  • Err codemadness.org 70 i 15448
Err codemadness.org 70 i 15449 Err codemadness.org 70 i 15450
Err codemadness.org 70 i 15451

Since this is a mirror setup, a naive solution to cause corruption would be to randomly dd the same sectors of both /dev/sdb and /dev/sdc. This works, but is equally likely to just overwrite random unused space, or take down the zpool entirely. What we really want is to corrupt a specific snapshot, or even a specific file in that snapshot, to simulate a more realistic minor corruption event. Luckily we have a tool called zdb that lets us view some low level information about datasets.

Err codemadness.org 70 i 15452
Err codemadness.org 70 i 15453 Err codemadness.org 70 i 15454
    Err codemadness.org 70 i 15455
  • Conclusion
  • Err codemadness.org 70 i 15456
Err codemadness.org 70 i 15457 Err codemadness.org 70 i 15458
Err codemadness.org 70 i 15459

At the 500 PB scale, it's not a matter of if data corruption will happen but when. Intentionally causing corruption is one of the strategies we use to ensure we're building software that can handle these rare (but inevitable) events.

Err codemadness.org 70 i 15460 Err codemadness.org 70 i 15461

To others out there using ZFS: I'm curious to hear how you've solved this problem. We did quite a bit of experimentation with zinject before going with this more brute force method. So I'd be especially interested if you've had luck simply simulating corruption with zinject.

Err codemadness.org 70 i 15462
Err codemadness.org 70 i 15463 Err codemadness.org 70 i 15464
Err codemadness.org 70 i 15465 Err codemadness.org 70 i 15466

NetBSD Assembly Programming Tutorial

Err codemadness.org 70 i 15467 Err codemadness.org 70 i 15468
Err codemadness.org 70 i 15469

A sparc64 version is also being prepared and will be added when done

Err codemadness.org 70 i 15470 Err codemadness.org 70 i 15471

This post describes how to write a simple hello world program in pure assembly on NetBSD/amd64. We will not use (nor link against) libc, nor use gcc to compile it. I will be using GNU as (gas), and therefore the AT&T syntax instead of Intel.

Err codemadness.org 70 i 15472
Err codemadness.org 70 i 15473 Err codemadness.org 70 i 15474
    Err codemadness.org 70 i 15475
  • Why assembly?
  • Err codemadness.org 70 i 15476
Err codemadness.org 70 i 15477 Err codemadness.org 70 i 15478
Err codemadness.org 70 i 15479

Why not? Because it's fun to program in assembly directly. Contrary to a popular belief assembly programs aren't always faster than what optimizing compilers produce. Nevertheless it's good to be able to read assembly, especially when debugging C programs

Err codemadness.org 70 i 15480
Err codemadness.org 70 i 15481 Err codemadness.org 70 i 15482
    Err codemadness.org 70 i 15483
  • Due to the nature of the guide, visit the site for the complete breakdown
  • Err codemadness.org 70 i 15484
Err codemadness.org 70 i 15485 Err codemadness.org 70 i 15486
Err codemadness.org 70 i 15487 Err codemadness.org 70 i 15488

News Roundup

Err codemadness.org 70 i 15489 Err codemadness.org 70 i 15490

The IKEA Lack Rack for Servers

Err codemadness.org 70 i 15491 Err codemadness.org 70 i 15492
    Err codemadness.org 70 i 15493
  • The LackRack
  • Err codemadness.org 70 i 15494
Err codemadness.org 70 i 15495 Err codemadness.org 70 i 15496
Err codemadness.org 70 i 15497

First occurrence on eth0:2010 Winterlan, the LackRack is the ultimate, low-cost, high shininess solution for your modular datacenter-in-the-living-room. Featuring the LACK (side table) from Ikea, the LackRack is an easy-to-implement, exact-fit datacenter building block. It's a little known fact that we have seen Google engineers tinker with Lack tables since way back in 2009.

Err codemadness.org 70 i 15498 Err codemadness.org 70 i 15499

The LackRack will certainly make its appearance again this summer at eth0:2010 Summer.

Err codemadness.org 70 i 15500
Err codemadness.org 70 i 15501 Err codemadness.org 70 i 15502
    Err codemadness.org 70 i 15503
  • Summary
  • Err codemadness.org 70 i 15504
Err codemadness.org 70 i 15505 Err codemadness.org 70 i 15506
Err codemadness.org 70 i 15507

When temporarily not in use, multiple LackRacks can be stacked in a space-efficient way without disassembly, unlike competing 19" server racks.

Err codemadness.org 70 i 15508 Err codemadness.org 70 i 15509

The LackRack was first seen on eth0:2010 Winterlan in the no-shoe Lounge area. Its low-cost and perfect fit are great for mounting up to 8 U of 19" hardware, such as switches (see below), or perhaps other 19" gear. It's very easy to assemble, and thanks to the design, they are stable enough to hold (for example) 19" switches and you can put your bottle of Club-Mate on top! Multi-shiny LackRack can also be painted to your specific preferences and the airflow is unprecedented!

Err codemadness.org 70 i 15510
Err codemadness.org 70 i 15511 Err codemadness.org 70 i 15512
    Err codemadness.org 70 i 15513
  • Howto
  • Err codemadness.org 70 i 15514
Err codemadness.org 70 i 15515 Err codemadness.org 70 i 15516
Err codemadness.org 70 i 15517

You can find a howto on buying a LackRack on this page. This includes the proof that a 19" switch can indeed be placed in the LackRack in its natural habitat!

Err codemadness.org 70 i 15518
Err codemadness.org 70 i 15519 Err codemadness.org 70 i 15520
Err codemadness.org 70 i 15521 Err codemadness.org 70 i 15522

OmniOS Community Edition r151030 LTS - Published at May 6, 2019

Err codemadness.org 70 i 15523 Err codemadness.org 70 i 15524
Err codemadness.org 70 i 15525

The OmniOS Community Edition Association is proud to announce the general availability of OmniOS - r151030.

Err codemadness.org 70 i 15526 Err codemadness.org 70 i 15527

OmniOS is published according to a 6-month release cycle, r151030 LTS takes over from r151028, published in November 2018; and since it is a LTS release it also takes over from r151022. The r151030 LTS release will be supported for 3 Years. It is the first LTS release published by the OmniOS CE Association since taking over the reins from OmniTI in 2017. The next LTS release is scheduled for May 2021. The old stable r151026 release is now end-of-life. See the release schedule for further details.

Err codemadness.org 70 i 15528 Err codemadness.org 70 i 15529

This is only a small selection of the new features, and bug fixes in the new release; review the release notes for full details.

Err codemadness.org 70 i 15530 Err codemadness.org 70 i 15531

If you upgrade from r22 and want to see all new features added since then, make sure to also read the release notes for r24, r26 and r28.

Err codemadness.org 70 i 15532
Err codemadness.org 70 i 15533 Err codemadness.org 70 i 15534
    Err codemadness.org 70 i 15535
  • For full relase notes including upgrade instructions;
  • Err codemadness.org 70 i 15536
  • release notes
  • Err codemadness.org 70 i 15537
  • upgrade instructions
  • Err codemadness.org 70 i 15538
Err codemadness.org 70 i 15539 Err codemadness.org 70 i 15540
Err codemadness.org 70 i 15541 Err codemadness.org 70 i 15542

List Block Devices on FreeBSD lsblk(8) Style

Err codemadness.org 70 i 15543 Err codemadness.org 70 i 15544
Err codemadness.org 70 i 15545

When I have to work on Linux systems I usually miss many nice FreeBSD tools such as these for example to name the few: sockstat, gstat, top -b -o res, top -m io -o total, usbconfig, rcorder, beadm/bectl, idprio/rtprio,… but sometimes – which rarely happens – Linux has some very useful tool that is not available on FreeBSD. An example of such tool is lsblk(8) that does one thing and does it quite well – lists block devices and their contents. It has some problems like listing a disk that is entirely used under ZFS pool on which lsblk(8) displays two partitions instead of information about ZFS just being there – but we all know how much in some circles the CDDL licensed ZFS is unloved in that GPL world.

Err codemadness.org 70 i 15546
Err codemadness.org 70 i 15547 Err codemadness.org 70 i 15548

Example lsblk(8) output from Linux system:

Err codemadness.org 70 i 15549 Err codemadness.org 70 i 15550
$ lsblk	Err	codemadness.org	70
i 15551 NAME                         MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINT	Err	codemadness.org	70
i 15552 sr0                           11:0    1  1024M  0 rom	Err	codemadness.org	70
i 15553 sda                            8:0    0 931.5G  0 disk	Err	codemadness.org	70
i 15554 |-sda1                         8:1    0   500M  0 part   /boot	Err	codemadness.org	70
i 15555 `-sda2                         8:2    0   931G  0 part	Err	codemadness.org	70
i 15556   |-vg_local-lv_root (dm-0)  253:0    0    50G  0 lvm    /	Err	codemadness.org	70
i 15557   |-vg_local-lv_swap (dm-1)  253:1    0  17.7G  0 lvm    [SWAP]	Err	codemadness.org	70
i 15558   `-vg_local-lv_home (dm-2)  253:2    0   1.8T  0 lvm    /home	Err	codemadness.org	70
i 15559 sdc                            8:32   0 232.9G  0 disk	Err	codemadness.org	70
i 15560 `-sdc1                         8:33   0 232.9G  0 part	Err	codemadness.org	70
i 15561   `-md1                        9:1    0 232.9G  0 raid10 /data	Err	codemadness.org	70
i 15562 sdd                            8:48   0 232.9G  0 disk	Err	codemadness.org	70
i 15563 `-sdd1                         8:49   0 232.9G  0 part	Err	codemadness.org	70
i 15564   `-md1                        9:1    0 232.9G  0 raid10 /data	Err	codemadness.org	70
i 15565 
Err codemadness.org 70 i 15566 Err codemadness.org 70 i 15567
Err codemadness.org 70 i 15568

What FreeBSD offers in this department? The camcontrol(8) and geom(8) commands are available. You can also use gpart(8) command to list partitions. Below you will find output of these commands from my single disk laptop. Please note that because of WordPress limitations I need to change all > < characters to ] [ ones in the commands outputs.

Err codemadness.org 70 i 15569
Err codemadness.org 70 i 15570 Err codemadness.org 70 i 15571
    Err codemadness.org 70 i 15572
  • See the article for the rest of the guide
  • Err codemadness.org 70 i 15573
Err codemadness.org 70 i 15574 Err codemadness.org 70 i 15575
Err codemadness.org 70 i 15576 Err codemadness.org 70 i 15577

Project Trident 19.10 Now Available

Err codemadness.org 70 i 15578 Err codemadness.org 70 i 15579
Err codemadness.org 70 i 15580

This is a general package update to the CURRENT release repository based upon TrueOS 19.10

Err codemadness.org 70 i 15581
Err codemadness.org 70 i 15582 Err codemadness.org 70 i 15583
    Err codemadness.org 70 i 15584
  • PACKAGE CHANGES FROM 19.08 Err codemadness.org 70 i 15585 Err codemadness.org 70 i 15586
      Err codemadness.org 70 i 15587
    • New Packages: 601
    • Err codemadness.org 70 i 15588
    • Deleted Packages: 165
    • Err codemadness.org 70 i 15589
    • Updated Packages: 3341
    • Err codemadness.org 70 i 15590
  • Err codemadness.org 70 i 15591
Err codemadness.org 70 i 15592 Err codemadness.org 70 i 15593
Err codemadness.org 70 i 15594 Err codemadness.org 70 i 15595

Beastie Bits

Err codemadness.org 70 i 15596 Err codemadness.org 70 i 15597 Err codemadness.org 70 i 15605 Err codemadness.org 70 i 15606
Err codemadness.org 70 i 15607 Err codemadness.org 70 i 15608

Feedback/Questions

Err codemadness.org 70 i 15609 Err codemadness.org 70 i 15610 Err codemadness.org 70 i 15615 Err codemadness.org 70 i 15616
Err codemadness.org 70 i 15617 Err codemadness.org 70 i 15618
    Err codemadness.org 70 i 15619
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 15620
Err codemadness.org 70 i 15621 Err codemadness.org 70 i 15622
Err codemadness.org 70 i 15623 Err codemadness.org 70 i 15624 ]]> Err codemadness.org 70 i 15628
Err codemadness.org 70 i 15629 https://fireside.fm/player/v2/FYhhasNR+yTRLAWIA Err codemadness.org 70 i 15630 Err codemadness.org 70 i 15631 ]]> Err codemadness.org 70 i 15632 Err codemadness.org 70 i 15633
Err codemadness.org 70 i 15634 Err codemadness.org 70 i 15635 318: The TrueNAS Library Err codemadness.org 70 i 15636 https://www.bsdnow.tv/318 Err codemadness.org 70 i 15637 a53fad97-5df2-4cd3-91a8-e75d5a2f38d7 Err codemadness.org 70 i 15638 Wed, 02 Oct 2019 20:00:00 -0700 Err codemadness.org 70 i 15639 Allan Jude Err codemadness.org 70 i 15640 Err codemadness.org 70 i 15641 full Err codemadness.org 70 i 15642 Allan Jude Err codemadness.org 70 i 15643 DragonFlyBSD vs. FreeBSD vs. Linux benchmark on Ryzen 7, JFK Presidential Library chooses TrueNAS for digital archives, FreeBSD 12.1-beta is available, cool but obscure X11 tools, vBSDcon trip report, Project Trident 12-U7 is available, a couple new Unix artifacts, and more. Err codemadness.org 70 i 15644 46:40 Err codemadness.org 70 i 15645 no Err codemadness.org 70 i 15646 Err codemadness.org 70 i 15647 DragonFlyBSD vs. FreeBSD vs. Linux benchmark on Ryzen 7, JFK Presidential Library chooses TrueNAS for digital archives, FreeBSD 12.1-beta is available, cool but obscure X11 tools, vBSDcon trip report, Project Trident 12-U7 is available, a couple new Unix artifacts, and more. Err codemadness.org 70 i 15648 Headlines Err codemadness.org 70 i 15649 DragonFlyBSD 5.6 vs. FreeBSD 12 vs. Linux - Ryzen 7 3700X (https://www.phoronix.com/scan.php?page=article&item=bsd-linux-3700x) Err codemadness.org 70 i 15650 For those wondering how well FreeBSD and DragonFlyBSD are handling AMD's new Ryzen 3000 series desktop processors, here are some benchmarks on a Ryzen 7 3700X with MSI MEG X570 GODLIKE where both of these popular BSD operating systems were working out-of-the-box. For some fun mid-week benchmarking, here are those results of FreeBSD 12.0 and DragonFlyBSD 5.6.2 up against openSUSE Tumbleweed and Ubuntu 19.04. Err codemadness.org 70 i 15651 Back in July I looked at FreeBSD 12 on the Ryzen 9 3900X but at that time at least DragonFlyBSD had troubles booting on that system. When trying out the Ryzen 7 3700X + MSI GODLIKE X570 motherboard on the latest BIOS, everything "just worked" without any compatibility issues for either of these BSDs. Err codemadness.org 70 i 15652 We've been eager to see how well DragonFlyBSD is performing on these new AMD Zen 2 CPUs with DragonFlyBSD lead developer Matthew Dillon having publicly expressed being impressed by the new AMD Ryzen 3000 series CPUs. Err codemadness.org 70 i 15653 For comparison to those BSDs, Ubuntu 19.04 and openSUSE Tumbleweed were tested on the same hardware in their out-of-the-box configurations. While Clear Linux is normally the fastest, on this system Clear's power management defaults had caused issues in being unable to detect the Samsung 970 EVO Plus NVMe SSD used for testing and so we left it out this round. Err codemadness.org 70 i 15654 All of the hardware was the same throughout testing as were the BIOS settings and running the Ryzen 7 3700X at stock speeds. (Any differences in the reported hardware for the system table just come down to differences in what is exposed by each OS for reporting.) All of the BSD/Linux benchmarks on this eight core / sixteen thread processor were run via the Phoronix Test Suite. In the case of FreeBSD 12.0, we benchmarked both with its default LLVM Clang 6.0 compiler as well as with GCC 9.1 so that it would match the GCC compiler being the default on the other operating systems under test. Err codemadness.org 70 i 15655 JFK Presidential Library Chooses iXsystems TrueNAS to Preserve Precious Digital Archives (https://www.ixsystems.com/blog/jfk-presidential-library-pr/) Err codemadness.org 70 i 15656 iXsystems is honored to have the TrueNAS® M-Series unified storage selected to store, serve, and protect the entire digital archive for the John F. Kennedy Library Foundation. This is in support of the collection at the John F. Kennedy Presidential Library and Museum (JFK Library). Over the next several years, the Foundation hopes to grow the digital collection from hundreds of terabytes today to cover much more of the Archives at the Kennedy Library. Overall there is a total of 25 million documents, audio recordings, photos, and videos once the project is complete. Err codemadness.org 70 i 15657 Having first deployed the TrueNAS M50-HA earlier in 2019, the JFK Library has now completed the migration of its existing digital collection and is now in the process of digitizing much of the rest of its vast collection. Err codemadness.org 70 i 15658 Not only is the catalog of material vast, it is also diverse, with files being copied to the storage system from a variety of sources in numerous file types. To achieve this ambitious goal, the library required a high-end NAS system capable of sharing with a variety of systems throughout the digitization process. The digital archive will be served from the TrueNAS M50 and made available to both in-person and online visitors. Err codemadness.org 70 i 15659 With precious material and information comes robust demands. The highly-available TrueNAS M-Series has multiple layers of protection to help keep data safe, including data scrubs, checksums, unlimited snapshots, replication, and more. TrueNAS is also inherently scalable with data shares only limited by the number of drives connected to the pool. Perfect for archival storage, the deployed TrueNAS M50 will grow with the library’s content, easily expanding its storage capacity over time as needed. Supporting a variety of protocols, multi-petabyte scalability in a single share, and anytime, uninterrupted capacity expansion, the TrueNAS M-Series ticked all the right boxes. Err codemadness.org 70 i 15660 Youtube Video (https://www.youtube.com/watch?v=8rFjH5-0Fiw) Err codemadness.org 70 i 15661 News Roundup Err codemadness.org 70 i 15662 FreeBSD 12.1-beta available (https://www.phoronix.com/scan.php?page=news_item&px=FreeBSD-12.1-Beta-Released) Err codemadness.org 70 i 15663 FreeBSD 12.0 is already approaching one year old while FreeBSD 12.1 is now on the way as the next installment with various bug/security fixes and other alterations to this BSD operating system. Err codemadness.org 70 i 15664 FreeBSD 12.1 has many security/bug fixes throughout, no longer enables "-Werror" by default as a compiler flag (Update: This change is just for the GCC 4.2 compiler), has imported BearSSL into the FreeBSD base system as a lightweight TLS/SSL implementation, bzip2recover has been added, and a variety of mostly lower-level changes. More details can be found via the in-progress release notes. Err codemadness.org 70 i 15665 For those with time to test this weekend, FreeBSD 12.1 Beta 1 is available for all prominent architectures. Err codemadness.org 70 i 15666 The FreeBSD release team is planning for at least another beta or two and around three release candidates. If all goes well, FreeBSD 12.1 will be out in early November. Err codemadness.org 70 i 15667 Announcement Link (https://lists.freebsd.org/pipermail/freebsd-stable/2019-September/091533.html) Err codemadness.org 70 i 15668 Cool, but obscure X11 tools. More suggestions in the source link (https://cyber.dabamos.de/unix/x11/) Err codemadness.org 70 i 15669 ASClock Err codemadness.org 70 i 15670 Free42 Err codemadness.org 70 i 15671 FSV2 Err codemadness.org 70 i 15672 GLXGears Err codemadness.org 70 i 15673 GMixer Err codemadness.org 70 i 15674 GVIM Err codemadness.org 70 i 15675 Micropolis Err codemadness.org 70 i 15676 Sunclock Err codemadness.org 70 i 15677 Ted Err codemadness.org 70 i 15678 TiEmu Err codemadness.org 70 i 15679 X026 Err codemadness.org 70 i 15680 X48 Err codemadness.org 70 i 15681 XAbacus Err codemadness.org 70 i 15682 XAntfarm Err codemadness.org 70 i 15683 XArchiver Err codemadness.org 70 i 15684 XASCII Err codemadness.org 70 i 15685 XBiff Err codemadness.org 70 i 15686 XBill Err codemadness.org 70 i 15687 XBoard Err codemadness.org 70 i 15688 XCalc Err codemadness.org 70 i 15689 XCalendar Err codemadness.org 70 i 15690 XCHM Err codemadness.org 70 i 15691 XChomp Err codemadness.org 70 i 15692 XClipboard Err codemadness.org 70 i 15693 XClock Err codemadness.org 70 i 15694 XClock/Cat Clock Err codemadness.org 70 i 15695 XColorSel Err codemadness.org 70 i 15696 XConsole Err codemadness.org 70 i 15697 XDiary Err codemadness.org 70 i 15698 XEarth Err codemadness.org 70 i 15699 XEdit Err codemadness.org 70 i 15700 Xev Err codemadness.org 70 i 15701 XEyes Err codemadness.org 70 i 15702 XFontSel Err codemadness.org 70 i 15703 XGalaga Err codemadness.org 70 i 15704 XInvaders 3D Err codemadness.org 70 i 15705 XKill Err codemadness.org 70 i 15706 XLennart Err codemadness.org 70 i 15707 XLoad Err codemadness.org 70 i 15708 XLock Err codemadness.org 70 i 15709 XLogo Err codemadness.org 70 i 15710 XMahjongg Err codemadness.org 70 i 15711 XMan Err codemadness.org 70 i 15712 XMessage Err codemadness.org 70 i 15713 XmGrace Err codemadness.org 70 i 15714 XMixer Err codemadness.org 70 i 15715 XmMix Err codemadness.org 70 i 15716 XMore Err codemadness.org 70 i 15717 XMosaic Err codemadness.org 70 i 15718 XMOTD Err codemadness.org 70 i 15719 XMountains Err codemadness.org 70 i 15720 XNeko Err codemadness.org 70 i 15721 XOdometer Err codemadness.org 70 i 15722 XOSView Err codemadness.org 70 i 15723 Xplore Err codemadness.org 70 i 15724 XPostIt Err codemadness.org 70 i 15725 XRoach Err codemadness.org 70 i 15726 XScreenSaver Err codemadness.org 70 i 15727 XSnow Err codemadness.org 70 i 15728 XSpread Err codemadness.org 70 i 15729 XTerm Err codemadness.org 70 i 15730 XTide Err codemadness.org 70 i 15731 Xv Err codemadness.org 70 i 15732 Xvkbd Err codemadness.org 70 i 15733 XWPE Err codemadness.org 70 i 15734 XZoom Err codemadness.org 70 i 15735 vBSDCon 2019 trip report from iXSystems (https://www.ixsystems.com/blog/vbsdcon-2019/) Err codemadness.org 70 i 15736 The fourth biennial vBSDCon was held in Reston, VA on September 5th through 7th and attracted attendees and presenters from not only the Washington, DC area, but also Canada, Germany, Kenya, and beyond. While MeetBSD caters to Silicon Valley BSD enthusiasts on even years, vBSDcon caters to East Coast and DC area enthusiasts on odd years. Verisign was again the key sponsor of vBSDcon 2019 but this year made a conscious effort to entrust the organization of the event to a team of community members led by Dan Langille, who you probably know as the lead BSDCan organizer. The result of this shift was a low key but professional event that fostered great conversation and brainstorming at every turn. Err codemadness.org 70 i 15737 Project Trident 12-U7 now available (https://project-trident.org/post/2019-09-21_stable12-u7_available/) Err codemadness.org 70 i 15738 Package Summary Err codemadness.org 70 i 15739 New Packages: 130 Err codemadness.org 70 i 15740 Deleted Packages: 72 Err codemadness.org 70 i 15741 Updated Packages: 865 Err codemadness.org 70 i 15742 Stable ISO - https://pkg.project-trident.org/iso/stable/Trident-x64-TOS-12-U7-20190920.iso Err codemadness.org 70 i 15743 A Couple new Unix Artifacts (https://minnie.tuhs.org//pipermail/tuhs/2019-September/018685.html) Err codemadness.org 70 i 15744 I fear we're drifting a bit here and the S/N ratio is dropping a bit w.r.t the actual history of Unix. Please no more on the relative merits of version control systems or alternative text processing systems. Err codemadness.org 70 i 15745 So I'll try to distract you by saying this. I'm sitting on two artifacts that have recently been given to me: Err codemadness.org 70 i 15746 by two large organisations Err codemadness.org 70 i 15747 of great significance to Unix history Err codemadness.org 70 i 15748 who want me to keep "mum" about them Err codemadness.org 70 i 15749 as they are going to make announcements about them soon* Err codemadness.org 70 i 15750 and I am going slowly crazy as I wait for them to be offically released. Now you have a new topic to talk about :-) Err codemadness.org 70 i 15751 Cheers, Warren Err codemadness.org 70 i 15752 * for some definition of "soon" Err codemadness.org 70 i 15753 Beastie Bits Err codemadness.org 70 i 15754 NetBSD machines at Open Source Conference 2019 Hiroshima (https://mail-index.netbsd.org/netbsd-advocacy/2019/09/16/msg000813.html) Err codemadness.org 70 i 15755 Hyperbola a GNU/Linux OS is using OpenBSD's Xenocara (https://www.hyperbola.info/news/end-of-xorg-support/) Err codemadness.org 70 i 15756 Talos is looking for a FreeBSD Engineer (https://www.talosintelligence.com/careers/freebsd_engineer) Err codemadness.org 70 i 15757 GitHub - dylanaraps/pure-sh-bible: A collection of pure POSIX sh alternatives to external processes. (https://github.com/dylanaraps/pure-sh-bible) Err codemadness.org 70 i 15758 dsynth: you’re building it (https://www.dragonflydigest.com/2019/09/23/23523.html) Err codemadness.org 70 i 15759 Percy Ludgate, the missing link between Babbage’s machine and everything else (http://lists.sigcis.org/pipermail/members-sigcis.org/2019-September/001606.html) Err codemadness.org 70 i 15760 Feedback/Questions Err codemadness.org 70 i 15761 Bruce - Down the expect rabbithole (http://dpaste.com/147HGP3#wrap) Err codemadness.org 70 i 15762 Bruce - Expect (update) (http://dpaste.com/37MNVSW#wrap) Err codemadness.org 70 i 15763 David - Netgraph answer (http://dpaste.com/2SE1YSE) Err codemadness.org 70 i 15764 Mason - Beeps? (http://dpaste.com/00KKXJM) Err codemadness.org 70 i 15765 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 15766 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 15767 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0318.mp4" type="video/mp4"> Err codemadness.org 70 i 15768 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 15769 </video> Err codemadness.org 70 i 15770 Err codemadness.org 70 i 15771 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, ryzen, ryzen 7, ryzen 7 3700X, amd, benchmark, presidential library, digital archives, digital library, presidential archive, truenas, obscure tools, x11, vbsdcon, trip report, project trident, Unix, Unix artifacts Err codemadness.org 70 i 15772 Err codemadness.org 70 i 15773 DragonFlyBSD vs. FreeBSD vs. Linux benchmark on Ryzen 7, JFK Presidential Library chooses TrueNAS for digital archives, FreeBSD 12.1-beta is available, cool but obscure X11 tools, vBSDcon trip report, Project Trident 12-U7 is available, a couple new Unix artifacts, and more.

Err codemadness.org 70 i 15774 Err codemadness.org 70 i 15775

Headlines

Err codemadness.org 70 i 15776 Err codemadness.org 70 i 15777

DragonFlyBSD 5.6 vs. FreeBSD 12 vs. Linux - Ryzen 7 3700X

Err codemadness.org 70 i 15778 Err codemadness.org 70 i 15779
Err codemadness.org 70 i 15780

For those wondering how well FreeBSD and DragonFlyBSD are handling AMD's new Ryzen 3000 series desktop processors, here are some benchmarks on a Ryzen 7 3700X with MSI MEG X570 GODLIKE where both of these popular BSD operating systems were working out-of-the-box. For some fun mid-week benchmarking, here are those results of FreeBSD 12.0 and DragonFlyBSD 5.6.2 up against openSUSE Tumbleweed and Ubuntu 19.04.

Err codemadness.org 70 i 15781 Err codemadness.org 70 i 15782

Back in July I looked at FreeBSD 12 on the Ryzen 9 3900X but at that time at least DragonFlyBSD had troubles booting on that system. When trying out the Ryzen 7 3700X + MSI GODLIKE X570 motherboard on the latest BIOS, everything "just worked" without any compatibility issues for either of these BSDs.

Err codemadness.org 70 i 15783 Err codemadness.org 70 i 15784

We've been eager to see how well DragonFlyBSD is performing on these new AMD Zen 2 CPUs with DragonFlyBSD lead developer Matthew Dillon having publicly expressed being impressed by the new AMD Ryzen 3000 series CPUs.

Err codemadness.org 70 i 15785 Err codemadness.org 70 i 15786

For comparison to those BSDs, Ubuntu 19.04 and openSUSE Tumbleweed were tested on the same hardware in their out-of-the-box configurations. While Clear Linux is normally the fastest, on this system Clear's power management defaults had caused issues in being unable to detect the Samsung 970 EVO Plus NVMe SSD used for testing and so we left it out this round.

Err codemadness.org 70 i 15787 Err codemadness.org 70 i 15788

All of the hardware was the same throughout testing as were the BIOS settings and running the Ryzen 7 3700X at stock speeds. (Any differences in the reported hardware for the system table just come down to differences in what is exposed by each OS for reporting.) All of the BSD/Linux benchmarks on this eight core / sixteen thread processor were run via the Phoronix Test Suite. In the case of FreeBSD 12.0, we benchmarked both with its default LLVM Clang 6.0 compiler as well as with GCC 9.1 so that it would match the GCC compiler being the default on the other operating systems under test.

Err codemadness.org 70 i 15789
Err codemadness.org 70 i 15790 Err codemadness.org 70 i 15791
Err codemadness.org 70 i 15792 Err codemadness.org 70 i 15793

JFK Presidential Library Chooses iXsystems TrueNAS to Preserve Precious Digital Archives

Err codemadness.org 70 i 15794 Err codemadness.org 70 i 15795
Err codemadness.org 70 i 15796

iXsystems is honored to have the TrueNAS® M-Series unified storage selected to store, serve, and protect the entire digital archive for the John F. Kennedy Library Foundation. This is in support of the collection at the John F. Kennedy Presidential Library and Museum (JFK Library). Over the next several years, the Foundation hopes to grow the digital collection from hundreds of terabytes today to cover much more of the Archives at the Kennedy Library. Overall there is a total of 25 million documents, audio recordings, photos, and videos once the project is complete.

Err codemadness.org 70 i 15797 Err codemadness.org 70 i 15798

Having first deployed the TrueNAS M50-HA earlier in 2019, the JFK Library has now completed the migration of its existing digital collection and is now in the process of digitizing much of the rest of its vast collection.

Err codemadness.org 70 i 15799 Err codemadness.org 70 i 15800

Not only is the catalog of material vast, it is also diverse, with files being copied to the storage system from a variety of sources in numerous file types. To achieve this ambitious goal, the library required a high-end NAS system capable of sharing with a variety of systems throughout the digitization process. The digital archive will be served from the TrueNAS M50 and made available to both in-person and online visitors.

Err codemadness.org 70 i 15801 Err codemadness.org 70 i 15802

With precious material and information comes robust demands. The highly-available TrueNAS M-Series has multiple layers of protection to help keep data safe, including data scrubs, checksums, unlimited snapshots, replication, and more. TrueNAS is also inherently scalable with data shares only limited by the number of drives connected to the pool. Perfect for archival storage, the deployed TrueNAS M50 will grow with the library’s content, easily expanding its storage capacity over time as needed. Supporting a variety of protocols, multi-petabyte scalability in a single share, and anytime, uninterrupted capacity expansion, the TrueNAS M-Series ticked all the right boxes.

Err codemadness.org 70 i 15803
Err codemadness.org 70 i 15804 Err codemadness.org 70 i 15805
    Err codemadness.org 70 i 15806
  • Youtube Video
  • Err codemadness.org 70 i 15807
Err codemadness.org 70 i 15808 Err codemadness.org 70 i 15809
Err codemadness.org 70 i 15810 Err codemadness.org 70 i 15811

News Roundup

Err codemadness.org 70 i 15812 Err codemadness.org 70 i 15813

FreeBSD 12.1-beta available

Err codemadness.org 70 i 15814 Err codemadness.org 70 i 15815
Err codemadness.org 70 i 15816

FreeBSD 12.0 is already approaching one year old while FreeBSD 12.1 is now on the way as the next installment with various bug/security fixes and other alterations to this BSD operating system.

Err codemadness.org 70 i 15817 Err codemadness.org 70 i 15818

FreeBSD 12.1 has many security/bug fixes throughout, no longer enables "-Werror" by default as a compiler flag (Update: This change is just for the GCC 4.2 compiler), has imported BearSSL into the FreeBSD base system as a lightweight TLS/SSL implementation, bzip2recover has been added, and a variety of mostly lower-level changes. More details can be found via the in-progress release notes.

Err codemadness.org 70 i 15819 Err codemadness.org 70 i 15820

For those with time to test this weekend, FreeBSD 12.1 Beta 1 is available for all prominent architectures.

Err codemadness.org 70 i 15821 Err codemadness.org 70 i 15822

The FreeBSD release team is planning for at least another beta or two and around three release candidates. If all goes well, FreeBSD 12.1 will be out in early November.

Err codemadness.org 70 i 15823
Err codemadness.org 70 i 15824 Err codemadness.org 70 i 15825 Err codemadness.org 70 i 15828 Err codemadness.org 70 i 15829
Err codemadness.org 70 i 15830 Err codemadness.org 70 i 15831

Cool, but obscure X11 tools. More suggestions in the source link

Err codemadness.org 70 i 15832 Err codemadness.org 70 i 15833
    Err codemadness.org 70 i 15834
  • ASClock
  • Err codemadness.org 70 i 15835
  • Free42
  • Err codemadness.org 70 i 15836
  • FSV2
  • Err codemadness.org 70 i 15837
  • GLXGears
  • Err codemadness.org 70 i 15838
  • GMixer
  • Err codemadness.org 70 i 15839
  • GVIM
  • Err codemadness.org 70 i 15840
  • Micropolis
  • Err codemadness.org 70 i 15841
  • Sunclock
  • Err codemadness.org 70 i 15842
  • Ted
  • Err codemadness.org 70 i 15843
  • TiEmu
  • Err codemadness.org 70 i 15844
  • X026
  • Err codemadness.org 70 i 15845
  • X48
  • Err codemadness.org 70 i 15846
  • XAbacus
  • Err codemadness.org 70 i 15847
  • XAntfarm
  • Err codemadness.org 70 i 15848
  • XArchiver
  • Err codemadness.org 70 i 15849
  • XASCII
  • Err codemadness.org 70 i 15850
  • XBiff
  • Err codemadness.org 70 i 15851
  • XBill
  • Err codemadness.org 70 i 15852
  • XBoard
  • Err codemadness.org 70 i 15853
  • XCalc
  • Err codemadness.org 70 i 15854
  • XCalendar
  • Err codemadness.org 70 i 15855
  • XCHM
  • Err codemadness.org 70 i 15856
  • XChomp
  • Err codemadness.org 70 i 15857
  • XClipboard
  • Err codemadness.org 70 i 15858
  • XClock
  • Err codemadness.org 70 i 15859
  • XClock/Cat Clock
  • Err codemadness.org 70 i 15860
  • XColorSel
  • Err codemadness.org 70 i 15861
  • XConsole
  • Err codemadness.org 70 i 15862
  • XDiary
  • Err codemadness.org 70 i 15863
  • XEarth
  • Err codemadness.org 70 i 15864
  • XEdit
  • Err codemadness.org 70 i 15865
  • Xev
  • Err codemadness.org 70 i 15866
  • XEyes
  • Err codemadness.org 70 i 15867
  • XFontSel
  • Err codemadness.org 70 i 15868
  • XGalaga
  • Err codemadness.org 70 i 15869
  • XInvaders 3D
  • Err codemadness.org 70 i 15870
  • XKill
  • Err codemadness.org 70 i 15871
  • XLennart
  • Err codemadness.org 70 i 15872
  • XLoad
  • Err codemadness.org 70 i 15873
  • XLock
  • Err codemadness.org 70 i 15874
  • XLogo
  • Err codemadness.org 70 i 15875
  • XMahjongg
  • Err codemadness.org 70 i 15876
  • XMan
  • Err codemadness.org 70 i 15877
  • XMessage
  • Err codemadness.org 70 i 15878
  • XmGrace
  • Err codemadness.org 70 i 15879
  • XMixer
  • Err codemadness.org 70 i 15880
  • XmMix
  • Err codemadness.org 70 i 15881
  • XMore
  • Err codemadness.org 70 i 15882
  • XMosaic
  • Err codemadness.org 70 i 15883
  • XMOTD
  • Err codemadness.org 70 i 15884
  • XMountains
  • Err codemadness.org 70 i 15885
  • XNeko
  • Err codemadness.org 70 i 15886
  • XOdometer
  • Err codemadness.org 70 i 15887
  • XOSView
  • Err codemadness.org 70 i 15888
  • Xplore
  • Err codemadness.org 70 i 15889
  • XPostIt
  • Err codemadness.org 70 i 15890
  • XRoach
  • Err codemadness.org 70 i 15891
  • XScreenSaver
  • Err codemadness.org 70 i 15892
  • XSnow
  • Err codemadness.org 70 i 15893
  • XSpread
  • Err codemadness.org 70 i 15894
  • XTerm
  • Err codemadness.org 70 i 15895
  • XTide
  • Err codemadness.org 70 i 15896
  • Xv
  • Err codemadness.org 70 i 15897
  • Xvkbd
  • Err codemadness.org 70 i 15898
  • XWPE
  • Err codemadness.org 70 i 15899
  • XZoom
  • Err codemadness.org 70 i 15900
Err codemadness.org 70 i 15901 Err codemadness.org 70 i 15902
Err codemadness.org 70 i 15903 Err codemadness.org 70 i 15904

vBSDCon 2019 trip report from iXSystems

Err codemadness.org 70 i 15905 Err codemadness.org 70 i 15906
Err codemadness.org 70 i 15907

The fourth biennial vBSDCon was held in Reston, VA on September 5th through 7th and attracted attendees and presenters from not only the Washington, DC area, but also Canada, Germany, Kenya, and beyond. While MeetBSD caters to Silicon Valley BSD enthusiasts on even years, vBSDcon caters to East Coast and DC area enthusiasts on odd years. Verisign was again the key sponsor of vBSDcon 2019 but this year made a conscious effort to entrust the organization of the event to a team of community members led by Dan Langille, who you probably know as the lead BSDCan organizer. The result of this shift was a low key but professional event that fostered great conversation and brainstorming at every turn.

Err codemadness.org 70 i 15908
Err codemadness.org 70 i 15909 Err codemadness.org 70 i 15910
Err codemadness.org 70 i 15911 Err codemadness.org 70 i 15912

Project Trident 12-U7 now available

Err codemadness.org 70 i 15913 Err codemadness.org 70 i 15914
    Err codemadness.org 70 i 15915
  • Package Summary Err codemadness.org 70 i 15916 Err codemadness.org 70 i 15917
      Err codemadness.org 70 i 15918
    • New Packages: 130
    • Err codemadness.org 70 i 15919
    • Deleted Packages: 72
    • Err codemadness.org 70 i 15920
    • Updated Packages: 865
    • Err codemadness.org 70 i 15921
  • Err codemadness.org 70 i 15922
  • Stable ISO - https://pkg.project-trident.org/iso/stable/Trident-x64-TOS-12-U7-20190920.iso
  • Err codemadness.org 70 i 15923
Err codemadness.org 70 i 15924 Err codemadness.org 70 i 15925
Err codemadness.org 70 i 15926 Err codemadness.org 70 i 15927

A Couple new Unix Artifacts

Err codemadness.org 70 i 15928 Err codemadness.org 70 i 15929
Err codemadness.org 70 i 15930

I fear we're drifting a bit here and the S/N ratio is dropping a bit w.r.t the actual history of Unix. Please no more on the relative merits of version control systems or alternative text processing systems.

Err codemadness.org 70 i 15931 Err codemadness.org 70 i 15932

So I'll try to distract you by saying this. I'm sitting on two artifacts that have recently been given to me:

Err codemadness.org 70 i 15933
Err codemadness.org 70 i 15934 Err codemadness.org 70 i 15935
    Err codemadness.org 70 i 15936
  • by two large organisations
  • Err codemadness.org 70 i 15937
  • of great significance to Unix history
  • Err codemadness.org 70 i 15938
  • who want me to keep "mum" about them
  • Err codemadness.org 70 i 15939
  • as they are going to make announcements about them soon*
  • Err codemadness.org 70 i 15940
Err codemadness.org 70 i 15941 Err codemadness.org 70 i 15942
Err codemadness.org 70 i 15943

and I am going slowly crazy as I wait for them to be offically released. Now you have a new topic to talk about :-)

Err codemadness.org 70 i 15944 Err codemadness.org 70 i 15945

Cheers, Warren

Err codemadness.org 70 i 15946
Err codemadness.org 70 i 15947 Err codemadness.org 70 i 15948

* for some definition of "soon"

Err codemadness.org 70 i 15949 Err codemadness.org 70 i 15950
Err codemadness.org 70 i 15951 Err codemadness.org 70 i 15952

Beastie Bits

Err codemadness.org 70 i 15953 Err codemadness.org 70 i 15954 Err codemadness.org 70 i 15962 Err codemadness.org 70 i 15963
Err codemadness.org 70 i 15964 Err codemadness.org 70 i 15965

Feedback/Questions

Err codemadness.org 70 i 15966 Err codemadness.org 70 i 15967 Err codemadness.org 70 i 15973 Err codemadness.org 70 i 15974
Err codemadness.org 70 i 15975 Err codemadness.org 70 i 15976
    Err codemadness.org 70 i 15977
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 15978
Err codemadness.org 70 i 15979 Err codemadness.org 70 i 15980
Err codemadness.org 70 i 15981 Err codemadness.org 70 i 15982 ]]> Err codemadness.org 70 i 15986
Err codemadness.org 70 i 15987 Err codemadness.org 70 i 15988 DragonFlyBSD vs. FreeBSD vs. Linux benchmark on Ryzen 7, JFK Presidential Library chooses TrueNAS for digital archives, FreeBSD 12.1-beta is available, cool but obscure X11 tools, vBSDcon trip report, Project Trident 12-U7 is available, a couple new Unix artifacts, and more.

Err codemadness.org 70 i 15989 Err codemadness.org 70 i 15990

Headlines

Err codemadness.org 70 i 15991 Err codemadness.org 70 i 15992

DragonFlyBSD 5.6 vs. FreeBSD 12 vs. Linux - Ryzen 7 3700X

Err codemadness.org 70 i 15993 Err codemadness.org 70 i 15994
Err codemadness.org 70 i 15995

For those wondering how well FreeBSD and DragonFlyBSD are handling AMD's new Ryzen 3000 series desktop processors, here are some benchmarks on a Ryzen 7 3700X with MSI MEG X570 GODLIKE where both of these popular BSD operating systems were working out-of-the-box. For some fun mid-week benchmarking, here are those results of FreeBSD 12.0 and DragonFlyBSD 5.6.2 up against openSUSE Tumbleweed and Ubuntu 19.04.

Err codemadness.org 70 i 15996 Err codemadness.org 70 i 15997

Back in July I looked at FreeBSD 12 on the Ryzen 9 3900X but at that time at least DragonFlyBSD had troubles booting on that system. When trying out the Ryzen 7 3700X + MSI GODLIKE X570 motherboard on the latest BIOS, everything "just worked" without any compatibility issues for either of these BSDs.

Err codemadness.org 70 i 15998 Err codemadness.org 70 i 15999

We've been eager to see how well DragonFlyBSD is performing on these new AMD Zen 2 CPUs with DragonFlyBSD lead developer Matthew Dillon having publicly expressed being impressed by the new AMD Ryzen 3000 series CPUs.

Err codemadness.org 70 i 16000 Err codemadness.org 70 i 16001

For comparison to those BSDs, Ubuntu 19.04 and openSUSE Tumbleweed were tested on the same hardware in their out-of-the-box configurations. While Clear Linux is normally the fastest, on this system Clear's power management defaults had caused issues in being unable to detect the Samsung 970 EVO Plus NVMe SSD used for testing and so we left it out this round.

Err codemadness.org 70 i 16002 Err codemadness.org 70 i 16003

All of the hardware was the same throughout testing as were the BIOS settings and running the Ryzen 7 3700X at stock speeds. (Any differences in the reported hardware for the system table just come down to differences in what is exposed by each OS for reporting.) All of the BSD/Linux benchmarks on this eight core / sixteen thread processor were run via the Phoronix Test Suite. In the case of FreeBSD 12.0, we benchmarked both with its default LLVM Clang 6.0 compiler as well as with GCC 9.1 so that it would match the GCC compiler being the default on the other operating systems under test.

Err codemadness.org 70 i 16004
Err codemadness.org 70 i 16005 Err codemadness.org 70 i 16006
Err codemadness.org 70 i 16007 Err codemadness.org 70 i 16008

JFK Presidential Library Chooses iXsystems TrueNAS to Preserve Precious Digital Archives

Err codemadness.org 70 i 16009 Err codemadness.org 70 i 16010
Err codemadness.org 70 i 16011

iXsystems is honored to have the TrueNAS® M-Series unified storage selected to store, serve, and protect the entire digital archive for the John F. Kennedy Library Foundation. This is in support of the collection at the John F. Kennedy Presidential Library and Museum (JFK Library). Over the next several years, the Foundation hopes to grow the digital collection from hundreds of terabytes today to cover much more of the Archives at the Kennedy Library. Overall there is a total of 25 million documents, audio recordings, photos, and videos once the project is complete.

Err codemadness.org 70 i 16012 Err codemadness.org 70 i 16013

Having first deployed the TrueNAS M50-HA earlier in 2019, the JFK Library has now completed the migration of its existing digital collection and is now in the process of digitizing much of the rest of its vast collection.

Err codemadness.org 70 i 16014 Err codemadness.org 70 i 16015

Not only is the catalog of material vast, it is also diverse, with files being copied to the storage system from a variety of sources in numerous file types. To achieve this ambitious goal, the library required a high-end NAS system capable of sharing with a variety of systems throughout the digitization process. The digital archive will be served from the TrueNAS M50 and made available to both in-person and online visitors.

Err codemadness.org 70 i 16016 Err codemadness.org 70 i 16017

With precious material and information comes robust demands. The highly-available TrueNAS M-Series has multiple layers of protection to help keep data safe, including data scrubs, checksums, unlimited snapshots, replication, and more. TrueNAS is also inherently scalable with data shares only limited by the number of drives connected to the pool. Perfect for archival storage, the deployed TrueNAS M50 will grow with the library’s content, easily expanding its storage capacity over time as needed. Supporting a variety of protocols, multi-petabyte scalability in a single share, and anytime, uninterrupted capacity expansion, the TrueNAS M-Series ticked all the right boxes.

Err codemadness.org 70 i 16018
Err codemadness.org 70 i 16019 Err codemadness.org 70 i 16020
    Err codemadness.org 70 i 16021
  • Youtube Video
  • Err codemadness.org 70 i 16022
Err codemadness.org 70 i 16023 Err codemadness.org 70 i 16024
Err codemadness.org 70 i 16025 Err codemadness.org 70 i 16026

News Roundup

Err codemadness.org 70 i 16027 Err codemadness.org 70 i 16028

FreeBSD 12.1-beta available

Err codemadness.org 70 i 16029 Err codemadness.org 70 i 16030
Err codemadness.org 70 i 16031

FreeBSD 12.0 is already approaching one year old while FreeBSD 12.1 is now on the way as the next installment with various bug/security fixes and other alterations to this BSD operating system.

Err codemadness.org 70 i 16032 Err codemadness.org 70 i 16033

FreeBSD 12.1 has many security/bug fixes throughout, no longer enables "-Werror" by default as a compiler flag (Update: This change is just for the GCC 4.2 compiler), has imported BearSSL into the FreeBSD base system as a lightweight TLS/SSL implementation, bzip2recover has been added, and a variety of mostly lower-level changes. More details can be found via the in-progress release notes.

Err codemadness.org 70 i 16034 Err codemadness.org 70 i 16035

For those with time to test this weekend, FreeBSD 12.1 Beta 1 is available for all prominent architectures.

Err codemadness.org 70 i 16036 Err codemadness.org 70 i 16037

The FreeBSD release team is planning for at least another beta or two and around three release candidates. If all goes well, FreeBSD 12.1 will be out in early November.

Err codemadness.org 70 i 16038
Err codemadness.org 70 i 16039 Err codemadness.org 70 i 16040 Err codemadness.org 70 i 16043 Err codemadness.org 70 i 16044
Err codemadness.org 70 i 16045 Err codemadness.org 70 i 16046

Cool, but obscure X11 tools. More suggestions in the source link

Err codemadness.org 70 i 16047 Err codemadness.org 70 i 16048
    Err codemadness.org 70 i 16049
  • ASClock
  • Err codemadness.org 70 i 16050
  • Free42
  • Err codemadness.org 70 i 16051
  • FSV2
  • Err codemadness.org 70 i 16052
  • GLXGears
  • Err codemadness.org 70 i 16053
  • GMixer
  • Err codemadness.org 70 i 16054
  • GVIM
  • Err codemadness.org 70 i 16055
  • Micropolis
  • Err codemadness.org 70 i 16056
  • Sunclock
  • Err codemadness.org 70 i 16057
  • Ted
  • Err codemadness.org 70 i 16058
  • TiEmu
  • Err codemadness.org 70 i 16059
  • X026
  • Err codemadness.org 70 i 16060
  • X48
  • Err codemadness.org 70 i 16061
  • XAbacus
  • Err codemadness.org 70 i 16062
  • XAntfarm
  • Err codemadness.org 70 i 16063
  • XArchiver
  • Err codemadness.org 70 i 16064
  • XASCII
  • Err codemadness.org 70 i 16065
  • XBiff
  • Err codemadness.org 70 i 16066
  • XBill
  • Err codemadness.org 70 i 16067
  • XBoard
  • Err codemadness.org 70 i 16068
  • XCalc
  • Err codemadness.org 70 i 16069
  • XCalendar
  • Err codemadness.org 70 i 16070
  • XCHM
  • Err codemadness.org 70 i 16071
  • XChomp
  • Err codemadness.org 70 i 16072
  • XClipboard
  • Err codemadness.org 70 i 16073
  • XClock
  • Err codemadness.org 70 i 16074
  • XClock/Cat Clock
  • Err codemadness.org 70 i 16075
  • XColorSel
  • Err codemadness.org 70 i 16076
  • XConsole
  • Err codemadness.org 70 i 16077
  • XDiary
  • Err codemadness.org 70 i 16078
  • XEarth
  • Err codemadness.org 70 i 16079
  • XEdit
  • Err codemadness.org 70 i 16080
  • Xev
  • Err codemadness.org 70 i 16081
  • XEyes
  • Err codemadness.org 70 i 16082
  • XFontSel
  • Err codemadness.org 70 i 16083
  • XGalaga
  • Err codemadness.org 70 i 16084
  • XInvaders 3D
  • Err codemadness.org 70 i 16085
  • XKill
  • Err codemadness.org 70 i 16086
  • XLennart
  • Err codemadness.org 70 i 16087
  • XLoad
  • Err codemadness.org 70 i 16088
  • XLock
  • Err codemadness.org 70 i 16089
  • XLogo
  • Err codemadness.org 70 i 16090
  • XMahjongg
  • Err codemadness.org 70 i 16091
  • XMan
  • Err codemadness.org 70 i 16092
  • XMessage
  • Err codemadness.org 70 i 16093
  • XmGrace
  • Err codemadness.org 70 i 16094
  • XMixer
  • Err codemadness.org 70 i 16095
  • XmMix
  • Err codemadness.org 70 i 16096
  • XMore
  • Err codemadness.org 70 i 16097
  • XMosaic
  • Err codemadness.org 70 i 16098
  • XMOTD
  • Err codemadness.org 70 i 16099
  • XMountains
  • Err codemadness.org 70 i 16100
  • XNeko
  • Err codemadness.org 70 i 16101
  • XOdometer
  • Err codemadness.org 70 i 16102
  • XOSView
  • Err codemadness.org 70 i 16103
  • Xplore
  • Err codemadness.org 70 i 16104
  • XPostIt
  • Err codemadness.org 70 i 16105
  • XRoach
  • Err codemadness.org 70 i 16106
  • XScreenSaver
  • Err codemadness.org 70 i 16107
  • XSnow
  • Err codemadness.org 70 i 16108
  • XSpread
  • Err codemadness.org 70 i 16109
  • XTerm
  • Err codemadness.org 70 i 16110
  • XTide
  • Err codemadness.org 70 i 16111
  • Xv
  • Err codemadness.org 70 i 16112
  • Xvkbd
  • Err codemadness.org 70 i 16113
  • XWPE
  • Err codemadness.org 70 i 16114
  • XZoom
  • Err codemadness.org 70 i 16115
Err codemadness.org 70 i 16116 Err codemadness.org 70 i 16117
Err codemadness.org 70 i 16118 Err codemadness.org 70 i 16119

vBSDCon 2019 trip report from iXSystems

Err codemadness.org 70 i 16120 Err codemadness.org 70 i 16121
Err codemadness.org 70 i 16122

The fourth biennial vBSDCon was held in Reston, VA on September 5th through 7th and attracted attendees and presenters from not only the Washington, DC area, but also Canada, Germany, Kenya, and beyond. While MeetBSD caters to Silicon Valley BSD enthusiasts on even years, vBSDcon caters to East Coast and DC area enthusiasts on odd years. Verisign was again the key sponsor of vBSDcon 2019 but this year made a conscious effort to entrust the organization of the event to a team of community members led by Dan Langille, who you probably know as the lead BSDCan organizer. The result of this shift was a low key but professional event that fostered great conversation and brainstorming at every turn.

Err codemadness.org 70 i 16123
Err codemadness.org 70 i 16124 Err codemadness.org 70 i 16125
Err codemadness.org 70 i 16126 Err codemadness.org 70 i 16127

Project Trident 12-U7 now available

Err codemadness.org 70 i 16128 Err codemadness.org 70 i 16129
    Err codemadness.org 70 i 16130
  • Package Summary Err codemadness.org 70 i 16131 Err codemadness.org 70 i 16132
      Err codemadness.org 70 i 16133
    • New Packages: 130
    • Err codemadness.org 70 i 16134
    • Deleted Packages: 72
    • Err codemadness.org 70 i 16135
    • Updated Packages: 865
    • Err codemadness.org 70 i 16136
  • Err codemadness.org 70 i 16137
  • Stable ISO - https://pkg.project-trident.org/iso/stable/Trident-x64-TOS-12-U7-20190920.iso
  • Err codemadness.org 70 i 16138
Err codemadness.org 70 i 16139 Err codemadness.org 70 i 16140
Err codemadness.org 70 i 16141 Err codemadness.org 70 i 16142

A Couple new Unix Artifacts

Err codemadness.org 70 i 16143 Err codemadness.org 70 i 16144
Err codemadness.org 70 i 16145

I fear we're drifting a bit here and the S/N ratio is dropping a bit w.r.t the actual history of Unix. Please no more on the relative merits of version control systems or alternative text processing systems.

Err codemadness.org 70 i 16146 Err codemadness.org 70 i 16147

So I'll try to distract you by saying this. I'm sitting on two artifacts that have recently been given to me:

Err codemadness.org 70 i 16148
Err codemadness.org 70 i 16149 Err codemadness.org 70 i 16150
    Err codemadness.org 70 i 16151
  • by two large organisations
  • Err codemadness.org 70 i 16152
  • of great significance to Unix history
  • Err codemadness.org 70 i 16153
  • who want me to keep "mum" about them
  • Err codemadness.org 70 i 16154
  • as they are going to make announcements about them soon*
  • Err codemadness.org 70 i 16155
Err codemadness.org 70 i 16156 Err codemadness.org 70 i 16157
Err codemadness.org 70 i 16158

and I am going slowly crazy as I wait for them to be offically released. Now you have a new topic to talk about :-)

Err codemadness.org 70 i 16159 Err codemadness.org 70 i 16160

Cheers, Warren

Err codemadness.org 70 i 16161
Err codemadness.org 70 i 16162 Err codemadness.org 70 i 16163

* for some definition of "soon"

Err codemadness.org 70 i 16164 Err codemadness.org 70 i 16165
Err codemadness.org 70 i 16166 Err codemadness.org 70 i 16167

Beastie Bits

Err codemadness.org 70 i 16168 Err codemadness.org 70 i 16169 Err codemadness.org 70 i 16177 Err codemadness.org 70 i 16178
Err codemadness.org 70 i 16179 Err codemadness.org 70 i 16180

Feedback/Questions

Err codemadness.org 70 i 16181 Err codemadness.org 70 i 16182 Err codemadness.org 70 i 16188 Err codemadness.org 70 i 16189
Err codemadness.org 70 i 16190 Err codemadness.org 70 i 16191
    Err codemadness.org 70 i 16192
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 16193
Err codemadness.org 70 i 16194 Err codemadness.org 70 i 16195
Err codemadness.org 70 i 16196 Err codemadness.org 70 i 16197 ]]> Err codemadness.org 70 i 16201
Err codemadness.org 70 i 16202 https://fireside.fm/player/v2/FYhhasNR+d9BG-_xA Err codemadness.org 70 i 16203 Err codemadness.org 70 i 16204 ]]> Err codemadness.org 70 i 16205 Err codemadness.org 70 i 16206
Err codemadness.org 70 i 16207 Err codemadness.org 70 i 16208 317: Bots Building Jails Err codemadness.org 70 i 16209 https://www.bsdnow.tv/317 Err codemadness.org 70 i 16210 e26d9711-a9ef-433e-bf8e-90d57030f3e7 Err codemadness.org 70 i 16211 Wed, 25 Sep 2019 23:00:00 -0700 Err codemadness.org 70 i 16212 Allan Jude Err codemadness.org 70 i 16213 Err codemadness.org 70 i 16214 full Err codemadness.org 70 i 16215 Allan Jude Err codemadness.org 70 i 16216 Setting up buildbot in FreeBSD jails, Set up a mail server with OpenSMTPD, Dovecot and Rspamd, OpenBSD amateur packet radio with HamBSD, DragonFlyBSD's HAMMER2 gets fsck, return of startx for users. Err codemadness.org 70 i 16217 52:36 Err codemadness.org 70 i 16218 no Err codemadness.org 70 i 16219 Err codemadness.org 70 i 16220 Setting up buildbot in FreeBSD jails, Set up a mail server with OpenSMTPD, Dovecot and Rspamd, OpenBSD amateur packet radio with HamBSD, DragonFlyBSD's HAMMER2 gets fsck, return of startx for users. Err codemadness.org 70 i 16221 Headlines Err codemadness.org 70 i 16222 EuroBSDcon 2019 Recap (https://2019.eurobsdcon.org/) Err codemadness.org 70 i 16223 We’re back from EuroBSDcon in Lillehammer, Norway. It was a great conference with 212 people attending. 2 days of tutorials (https://2019.eurobsdcon.org/tutorial-speakers/), parallel to the FreeBSD Devsummit (https://wiki.freebsd.org/DevSummit/201909), followed by two days of talks (https://2019.eurobsdcon.org/program/). Some speakers uploaded their slides to papers.freebsd.org (https://papers.freebsd.org/2019/eurobsdcon/) already with more to come. Err codemadness.org 70 i 16224 The social event was also interesting. We visited an open air museum with building preserved from different time periods. In the older section they had a collection of farm buildings, a church originally built in the 1200s and relocated to the museum, and a school house. In the more modern area, they had houses from 1915, and each decade from 1930 to 1990, plus a “house of the future” as imagined in 2001. Many had open doors to allow you to tour the inside, and some were even “inhabited”. The latter fact gave a much more interactive experience and we could learn additional things about the history of that particular house. The town at the end included a general store, a post office, and more. Then, we all had a nice dinner together in the museum’s restaurant. Err codemadness.org 70 i 16225 The opening keynote by Patricia Aas was very good. Her talk on embedded ethics, from her perspective as someone trying to defend the sanctity of Norwegian elections, and a former developer for the Opera web browser, provided a great deal of insight into the issues. Her points about how the tech community has unleashed a very complex digital work upon people with barely any technical literacy were well taken. Her stories of trying to explain the problems with involving computers in the election process to journalists and politicians struck a chord with many of us, who have had to deal with legislation written by those who do not truly understand the issues with technology. Err codemadness.org 70 i 16226 Setting up buildbot in FreeBSD jails (https://andidog.de/blog/2018-04-22-buildbot-setup-freebsd-jails) Err codemadness.org 70 i 16227 In this article, I would like to present a tutorial to set up buildbot, a continuous integration (CI) software (like Jenkins, drone, etc.), making use of FreeBSD’s containerization mechanism "jails". We will cover terminology, rationale for using both buildbot and jails together, and installation steps. At the end, you will have a working buildbot instance using its sample build configuration, ready to play around with your own CI plans (or even CD, it’s very flexible!). Some hints for production-grade installations are given, but the tutorial steps are meant for a test environment (namely a virtual machine). Buildbot’s configuration and detailed concepts are not in scope here. Err codemadness.org 70 i 16228 Setting up a mail server with OpenSMTPD, Dovecot and Rspamd (https://poolp.org/posts/2019-09-14/setting-up-a-mail-server-with-opensmtpd-dovecot-and-rspamd/) Err codemadness.org 70 i 16229 Self-hosting and encouraging smaller providers is for the greater good Err codemadness.org 70 i 16230 First of all, I was not clear enough about the political consequences of centralizing mail services at Big Mailer Corps. Err codemadness.org 70 i 16231 It doesn’t make sense for Random Joe, sharing kitten pictures with his family and friends, to build a personal mail infrastructure when multiple Big Mailer Corps offer “for free” an amazing quality of service. They provide him with an e-mail address that is immediately available and which will generally work reliably. It really doesn’t make sense for Random Joe not to go there, and particularly if even techies go there without hesitation, proving it is a sound choice. Err codemadness.org 70 i 16232 There is nothing wrong with Random Joes using a service that works. Err codemadness.org 70 i 16233 What is terribly wrong though is the centralization of a communication protocol in the hands of a few commercial companies, EVERY SINGLE ONE OF THEM coming from the same country (currently led by a lunatic who abuses power and probably suffers from NPD), EVERY SINGLE ONE OF THEM having been in the news and/or in a court for random/assorted “unpleasant” behaviors (privacy abuses, eavesdropping, monopoly abuse, sexual or professional harassment, you just name it…), and EVERY SINGLE ONE OF THEM growing user bases that far exceeds the total population of multiple countries combined. Err codemadness.org 70 i 16234 News Roundup Err codemadness.org 70 i 16235 The HamBSD project aims to bring amateur packet radio to OpenBSD (https://hambsd.org/) Err codemadness.org 70 i 16236 The HamBSD project aims to bring amateur packet radio to OpenBSD, including support for TCP/IP over AX.25 and APRS tracking/digipeating in the base system. Err codemadness.org 70 i 16237 HamBSD will not provide a full AX.25 stack but instead only implement support for UI frames. There will be a focus on simplicity, security and readable code. Err codemadness.org 70 i 16238 The amateur radio community needs a reliable platform for packet radio for use in both leisure and emergency scenarios. It should be expected that the system is stable and resilient (but as yet it is neither). Err codemadness.org 70 i 16239 DragonFlyBSD's HAMMER2 Gets Basic FSCK Support (https://www.dragonflydigest.com/2019/09/24/23540.html) Err codemadness.org 70 i 16240 HAMMER2 is Copy on Write, meaning changes are made to copies of existing data. This means operations are generally atomic and can survive a power outage, etc. (You should read up on it!) However, there’s now a fsck command, useful if you want a report of data validity rather than any manual repair process. Err codemadness.org 70 i 16241 commit (https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5554cc8b81fbfcfd347f50be3f3b1b9a54b871b) Err codemadness.org 70 i 16242 Add initial fsck support for HAMMER2, although CoW fs doesn't require fsck as a concept. Currently no repairing (no write), just verifying. Err codemadness.org 70 i 16243 Keep this as a separate command for now. Err codemadness.org 70 i 16244 https://i.redd.it/vkdss0mtdpo31.jpg Err codemadness.org 70 i 16245 The return of startx for users (http://undeadly.org/cgi?action=article;sid=20190917091236) Err codemadness.org 70 i 16246 Add modesetting driver as a fall-back when appropriate such that we can use it when running without root privileges which prevents us from scanning the PCI bus. Err codemadness.org 70 i 16247 This makes startx(1)/xinit(1) work again on modern systems with inteldrm(4), radeondrm(4) and amdgpu(4). In some cases this will result in using a different driver than with xenodm(4) which may expose issues (e.g. when we prefer the intel Xorg driver) or loss of acceleration (e.g. older cards supported by radeondrm(4)). Err codemadness.org 70 i 16248 Beastie Bits Err codemadness.org 70 i 16249 Ori Bernstein will be giving the October talk at NYCBUG (http://lists.nycbug.org:8080/pipermail/talk/2019-September/018046.html) Err codemadness.org 70 i 16250 BSD Pizza Night: 2019/09/26, 7–9PM, Portland, Oregon, USA (http://calagator.org/events/1250476200) Err codemadness.org 70 i 16251 Nick Wolff : Home Lab Show & Tell (http://knoxbug.org/2019-09-30) Err codemadness.org 70 i 16252 Installing the Lumina Desktop in DragonflyBSD (https://www.youtube.com/watch?v=eWkCjj4_xsk) Err codemadness.org 70 i 16253 dhcpcd 8.0.6 added (https://www.dragonflydigest.com/2019/09/20/23519.html) Err codemadness.org 70 i 16254 Feedback/Questions Err codemadness.org 70 i 16255 Bruce - FOSDEM videos (http://dpaste.com/15ABRRB#wrap) Err codemadness.org 70 i 16256 Lars - Super Cluster of BSD on Rock64Pr (http://dpaste.com/1X9FEJJ) Err codemadness.org 70 i 16257 Madhukar - Question (http://dpaste.com/0TWF1NB#wrap) Err codemadness.org 70 i 16258 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 16259 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 16260 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0317.mp4" type="video/mp4"> Err codemadness.org 70 i 16261 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 16262 </video> Err codemadness.org 70 i 16263 Err codemadness.org 70 i 16264 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, buildbot, jails, opensmtp, dovecot, rspamd, mail, mailserver, amateur radio, amateur packet radio, packet radio, hammer2, filesystem, fsck, file system check, startx Err codemadness.org 70 i 16265 Err codemadness.org 70 i 16266 Setting up buildbot in FreeBSD jails, Set up a mail server with OpenSMTPD, Dovecot and Rspamd, OpenBSD amateur packet radio with HamBSD, DragonFlyBSD's HAMMER2 gets fsck, return of startx for users.

Err codemadness.org 70 i 16267 Err codemadness.org 70 i 16268

Headlines

Err codemadness.org 70 i 16269 Err codemadness.org 70 i 16270

EuroBSDcon 2019 Recap

Err codemadness.org 70 i 16271 Err codemadness.org 70 i 16272
Err codemadness.org 70 i 16273

We’re back from EuroBSDcon in Lillehammer, Norway. It was a great conference with 212 people attending. 2 days of tutorials, parallel to the FreeBSD Devsummit, followed by two days of talks. Some speakers uploaded their slides to papers.freebsd.org already with more to come.

Err codemadness.org 70 i 16274 Err codemadness.org 70 i 16275

The social event was also interesting. We visited an open air museum with building preserved from different time periods. In the older section they had a collection of farm buildings, a church originally built in the 1200s and relocated to the museum, and a school house. In the more modern area, they had houses from 1915, and each decade from 1930 to 1990, plus a “house of the future” as imagined in 2001. Many had open doors to allow you to tour the inside, and some were even “inhabited”. The latter fact gave a much more interactive experience and we could learn additional things about the history of that particular house. The town at the end included a general store, a post office, and more. Then, we all had a nice dinner together in the museum’s restaurant.

Err codemadness.org 70 i 16276
Err codemadness.org 70 i 16277 Err codemadness.org 70 i 16278
    Err codemadness.org 70 i 16279
  • The opening keynote by Patricia Aas was very good. Her talk on embedded ethics, from her perspective as someone trying to defend the sanctity of Norwegian elections, and a former developer for the Opera web browser, provided a great deal of insight into the issues. Her points about how the tech community has unleashed a very complex digital work upon people with barely any technical literacy were well taken. Her stories of trying to explain the problems with involving computers in the election process to journalists and politicians struck a chord with many of us, who have had to deal with legislation written by those who do not truly understand the issues with technology.
  • Err codemadness.org 70 i 16280
Err codemadness.org 70 i 16281 Err codemadness.org 70 i 16282
Err codemadness.org 70 i 16283 Err codemadness.org 70 i 16284

Setting up buildbot in FreeBSD jails

Err codemadness.org 70 i 16285 Err codemadness.org 70 i 16286
Err codemadness.org 70 i 16287

In this article, I would like to present a tutorial to set up buildbot, a continuous integration (CI) software (like Jenkins, drone, etc.), making use of FreeBSD’s containerization mechanism "jails". We will cover terminology, rationale for using both buildbot and jails together, and installation steps. At the end, you will have a working buildbot instance using its sample build configuration, ready to play around with your own CI plans (or even CD, it’s very flexible!). Some hints for production-grade installations are given, but the tutorial steps are meant for a test environment (namely a virtual machine). Buildbot’s configuration and detailed concepts are not in scope here.

Err codemadness.org 70 i 16288
Err codemadness.org 70 i 16289 Err codemadness.org 70 i 16290
Err codemadness.org 70 i 16291 Err codemadness.org 70 i 16292

Setting up a mail server with OpenSMTPD, Dovecot and Rspamd

Err codemadness.org 70 i 16293 Err codemadness.org 70 i 16294
    Err codemadness.org 70 i 16295
  • Self-hosting and encouraging smaller providers is for the greater good
  • Err codemadness.org 70 i 16296
Err codemadness.org 70 i 16297 Err codemadness.org 70 i 16298
Err codemadness.org 70 i 16299

First of all, I was not clear enough about the political consequences of centralizing mail services at Big Mailer Corps.

Err codemadness.org 70 i 16300 Err codemadness.org 70 i 16301

It doesn’t make sense for Random Joe, sharing kitten pictures with his family and friends, to build a personal mail infrastructure when multiple Big Mailer Corps offer “for free” an amazing quality of service. They provide him with an e-mail address that is immediately available and which will generally work reliably. It really doesn’t make sense for Random Joe not to go there, and particularly if even techies go there without hesitation, proving it is a sound choice.

Err codemadness.org 70 i 16302 Err codemadness.org 70 i 16303

There is nothing wrong with Random Joes using a service that works.

Err codemadness.org 70 i 16304 Err codemadness.org 70 i 16305

What is terribly wrong though is the centralization of a communication protocol in the hands of a few commercial companies, EVERY SINGLE ONE OF THEM coming from the same country (currently led by a lunatic who abuses power and probably suffers from NPD), EVERY SINGLE ONE OF THEM having been in the news and/or in a court for random/assorted “unpleasant” behaviors (privacy abuses, eavesdropping, monopoly abuse, sexual or professional harassment, you just name it…), and EVERY SINGLE ONE OF THEM growing user bases that far exceeds the total population of multiple countries combined.

Err codemadness.org 70 i 16306
Err codemadness.org 70 i 16307 Err codemadness.org 70 i 16308
Err codemadness.org 70 i 16309 Err codemadness.org 70 i 16310

News Roundup

Err codemadness.org 70 i 16311 Err codemadness.org 70 i 16312

The HamBSD project aims to bring amateur packet radio to OpenBSD

Err codemadness.org 70 i 16313 Err codemadness.org 70 i 16314
Err codemadness.org 70 i 16315

The HamBSD project aims to bring amateur packet radio to OpenBSD, including support for TCP/IP over AX.25 and APRS tracking/digipeating in the base system.

Err codemadness.org 70 i 16316 Err codemadness.org 70 i 16317

HamBSD will not provide a full AX.25 stack but instead only implement support for UI frames. There will be a focus on simplicity, security and readable code.

Err codemadness.org 70 i 16318 Err codemadness.org 70 i 16319

The amateur radio community needs a reliable platform for packet radio for use in both leisure and emergency scenarios. It should be expected that the system is stable and resilient (but as yet it is neither).

Err codemadness.org 70 i 16320
Err codemadness.org 70 i 16321 Err codemadness.org 70 i 16322
Err codemadness.org 70 i 16323 Err codemadness.org 70 i 16324

DragonFlyBSD's HAMMER2 Gets Basic FSCK Support

Err codemadness.org 70 i 16325 Err codemadness.org 70 i 16326
Err codemadness.org 70 i 16327

HAMMER2 is Copy on Write, meaning changes are made to copies of existing data. This means operations are generally atomic and can survive a power outage, etc. (You should read up on it!) However, there’s now a fsck command, useful if you want a report of data validity rather than any manual repair process.

Err codemadness.org 70 i 16328
Err codemadness.org 70 i 16329 Err codemadness.org 70 i 16330
    Err codemadness.org 70 i 16331
  • commit
  • Err codemadness.org 70 i 16332
Err codemadness.org 70 i 16333 Err codemadness.org 70 i 16334
Err codemadness.org 70 i 16335

Add initial fsck support for HAMMER2, although CoW fs doesn't require fsck as a concept. Currently no repairing (no write), just verifying.

Err codemadness.org 70 i 16336 Err codemadness.org 70 i 16337

Keep this as a separate command for now.
Err codemadness.org 70 i 16338 https://i.redd.it/vkdss0mtdpo31.jpg

Err codemadness.org 70 i 16339 Err codemadness.org 70 i 16340
Err codemadness.org 70 i 16341
Err codemadness.org 70 i 16342 Err codemadness.org 70 i 16343

The return of startx for users

Err codemadness.org 70 i 16344 Err codemadness.org 70 i 16345
Err codemadness.org 70 i 16346

Add modesetting driver as a fall-back when appropriate such that we can use it when running without root privileges which prevents us from scanning the PCI bus.

Err codemadness.org 70 i 16347 Err codemadness.org 70 i 16348

This makes startx(1)/xinit(1) work again on modern systems with inteldrm(4), radeondrm(4) and amdgpu(4). In some cases this will result in using a different driver than with xenodm(4) which may expose issues (e.g. when we prefer the intel Xorg driver) or loss of acceleration (e.g. older cards supported by radeondrm(4)).

Err codemadness.org 70 i 16349
Err codemadness.org 70 i 16350 Err codemadness.org 70 i 16351
Err codemadness.org 70 i 16352 Err codemadness.org 70 i 16353

Beastie Bits

Err codemadness.org 70 i 16354 Err codemadness.org 70 i 16355 Err codemadness.org 70 i 16362 Err codemadness.org 70 i 16363
Err codemadness.org 70 i 16364 Err codemadness.org 70 i 16365

Feedback/Questions

Err codemadness.org 70 i 16366 Err codemadness.org 70 i 16367 Err codemadness.org 70 i 16372 Err codemadness.org 70 i 16373
Err codemadness.org 70 i 16374 Err codemadness.org 70 i 16375
    Err codemadness.org 70 i 16376
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 16377
Err codemadness.org 70 i 16378 Err codemadness.org 70 i 16379
Err codemadness.org 70 i 16380 Err codemadness.org 70 i 16381 ]]> Err codemadness.org 70 i 16385
Err codemadness.org 70 i 16386 Err codemadness.org 70 i 16387 Setting up buildbot in FreeBSD jails, Set up a mail server with OpenSMTPD, Dovecot and Rspamd, OpenBSD amateur packet radio with HamBSD, DragonFlyBSD's HAMMER2 gets fsck, return of startx for users.

Err codemadness.org 70 i 16388 Err codemadness.org 70 i 16389

Headlines

Err codemadness.org 70 i 16390 Err codemadness.org 70 i 16391

EuroBSDcon 2019 Recap

Err codemadness.org 70 i 16392 Err codemadness.org 70 i 16393
Err codemadness.org 70 i 16394

We’re back from EuroBSDcon in Lillehammer, Norway. It was a great conference with 212 people attending. 2 days of tutorials, parallel to the FreeBSD Devsummit, followed by two days of talks. Some speakers uploaded their slides to papers.freebsd.org already with more to come.

Err codemadness.org 70 i 16395 Err codemadness.org 70 i 16396

The social event was also interesting. We visited an open air museum with building preserved from different time periods. In the older section they had a collection of farm buildings, a church originally built in the 1200s and relocated to the museum, and a school house. In the more modern area, they had houses from 1915, and each decade from 1930 to 1990, plus a “house of the future” as imagined in 2001. Many had open doors to allow you to tour the inside, and some were even “inhabited”. The latter fact gave a much more interactive experience and we could learn additional things about the history of that particular house. The town at the end included a general store, a post office, and more. Then, we all had a nice dinner together in the museum’s restaurant.

Err codemadness.org 70 i 16397
Err codemadness.org 70 i 16398 Err codemadness.org 70 i 16399
    Err codemadness.org 70 i 16400
  • The opening keynote by Patricia Aas was very good. Her talk on embedded ethics, from her perspective as someone trying to defend the sanctity of Norwegian elections, and a former developer for the Opera web browser, provided a great deal of insight into the issues. Her points about how the tech community has unleashed a very complex digital work upon people with barely any technical literacy were well taken. Her stories of trying to explain the problems with involving computers in the election process to journalists and politicians struck a chord with many of us, who have had to deal with legislation written by those who do not truly understand the issues with technology.
  • Err codemadness.org 70 i 16401
Err codemadness.org 70 i 16402 Err codemadness.org 70 i 16403
Err codemadness.org 70 i 16404 Err codemadness.org 70 i 16405

Setting up buildbot in FreeBSD jails

Err codemadness.org 70 i 16406 Err codemadness.org 70 i 16407
Err codemadness.org 70 i 16408

In this article, I would like to present a tutorial to set up buildbot, a continuous integration (CI) software (like Jenkins, drone, etc.), making use of FreeBSD’s containerization mechanism "jails". We will cover terminology, rationale for using both buildbot and jails together, and installation steps. At the end, you will have a working buildbot instance using its sample build configuration, ready to play around with your own CI plans (or even CD, it’s very flexible!). Some hints for production-grade installations are given, but the tutorial steps are meant for a test environment (namely a virtual machine). Buildbot’s configuration and detailed concepts are not in scope here.

Err codemadness.org 70 i 16409
Err codemadness.org 70 i 16410 Err codemadness.org 70 i 16411
Err codemadness.org 70 i 16412 Err codemadness.org 70 i 16413

Setting up a mail server with OpenSMTPD, Dovecot and Rspamd

Err codemadness.org 70 i 16414 Err codemadness.org 70 i 16415
    Err codemadness.org 70 i 16416
  • Self-hosting and encouraging smaller providers is for the greater good
  • Err codemadness.org 70 i 16417
Err codemadness.org 70 i 16418 Err codemadness.org 70 i 16419
Err codemadness.org 70 i 16420

First of all, I was not clear enough about the political consequences of centralizing mail services at Big Mailer Corps.

Err codemadness.org 70 i 16421 Err codemadness.org 70 i 16422

It doesn’t make sense for Random Joe, sharing kitten pictures with his family and friends, to build a personal mail infrastructure when multiple Big Mailer Corps offer “for free” an amazing quality of service. They provide him with an e-mail address that is immediately available and which will generally work reliably. It really doesn’t make sense for Random Joe not to go there, and particularly if even techies go there without hesitation, proving it is a sound choice.

Err codemadness.org 70 i 16423 Err codemadness.org 70 i 16424

There is nothing wrong with Random Joes using a service that works.

Err codemadness.org 70 i 16425 Err codemadness.org 70 i 16426

What is terribly wrong though is the centralization of a communication protocol in the hands of a few commercial companies, EVERY SINGLE ONE OF THEM coming from the same country (currently led by a lunatic who abuses power and probably suffers from NPD), EVERY SINGLE ONE OF THEM having been in the news and/or in a court for random/assorted “unpleasant” behaviors (privacy abuses, eavesdropping, monopoly abuse, sexual or professional harassment, you just name it…), and EVERY SINGLE ONE OF THEM growing user bases that far exceeds the total population of multiple countries combined.

Err codemadness.org 70 i 16427
Err codemadness.org 70 i 16428 Err codemadness.org 70 i 16429
Err codemadness.org 70 i 16430 Err codemadness.org 70 i 16431

News Roundup

Err codemadness.org 70 i 16432 Err codemadness.org 70 i 16433

The HamBSD project aims to bring amateur packet radio to OpenBSD

Err codemadness.org 70 i 16434 Err codemadness.org 70 i 16435
Err codemadness.org 70 i 16436

The HamBSD project aims to bring amateur packet radio to OpenBSD, including support for TCP/IP over AX.25 and APRS tracking/digipeating in the base system.

Err codemadness.org 70 i 16437 Err codemadness.org 70 i 16438

HamBSD will not provide a full AX.25 stack but instead only implement support for UI frames. There will be a focus on simplicity, security and readable code.

Err codemadness.org 70 i 16439 Err codemadness.org 70 i 16440

The amateur radio community needs a reliable platform for packet radio for use in both leisure and emergency scenarios. It should be expected that the system is stable and resilient (but as yet it is neither).

Err codemadness.org 70 i 16441
Err codemadness.org 70 i 16442 Err codemadness.org 70 i 16443
Err codemadness.org 70 i 16444 Err codemadness.org 70 i 16445

DragonFlyBSD's HAMMER2 Gets Basic FSCK Support

Err codemadness.org 70 i 16446 Err codemadness.org 70 i 16447
Err codemadness.org 70 i 16448

HAMMER2 is Copy on Write, meaning changes are made to copies of existing data. This means operations are generally atomic and can survive a power outage, etc. (You should read up on it!) However, there’s now a fsck command, useful if you want a report of data validity rather than any manual repair process.

Err codemadness.org 70 i 16449
Err codemadness.org 70 i 16450 Err codemadness.org 70 i 16451
    Err codemadness.org 70 i 16452
  • commit
  • Err codemadness.org 70 i 16453
Err codemadness.org 70 i 16454 Err codemadness.org 70 i 16455
Err codemadness.org 70 i 16456

Add initial fsck support for HAMMER2, although CoW fs doesn't require fsck as a concept. Currently no repairing (no write), just verifying.

Err codemadness.org 70 i 16457 Err codemadness.org 70 i 16458

Keep this as a separate command for now.
Err codemadness.org 70 i 16459 https://i.redd.it/vkdss0mtdpo31.jpg

Err codemadness.org 70 i 16460 Err codemadness.org 70 i 16461
Err codemadness.org 70 i 16462
Err codemadness.org 70 i 16463 Err codemadness.org 70 i 16464

The return of startx for users

Err codemadness.org 70 i 16465 Err codemadness.org 70 i 16466
Err codemadness.org 70 i 16467

Add modesetting driver as a fall-back when appropriate such that we can use it when running without root privileges which prevents us from scanning the PCI bus.

Err codemadness.org 70 i 16468 Err codemadness.org 70 i 16469

This makes startx(1)/xinit(1) work again on modern systems with inteldrm(4), radeondrm(4) and amdgpu(4). In some cases this will result in using a different driver than with xenodm(4) which may expose issues (e.g. when we prefer the intel Xorg driver) or loss of acceleration (e.g. older cards supported by radeondrm(4)).

Err codemadness.org 70 i 16470
Err codemadness.org 70 i 16471 Err codemadness.org 70 i 16472
Err codemadness.org 70 i 16473 Err codemadness.org 70 i 16474

Beastie Bits

Err codemadness.org 70 i 16475 Err codemadness.org 70 i 16476 Err codemadness.org 70 i 16483 Err codemadness.org 70 i 16484
Err codemadness.org 70 i 16485 Err codemadness.org 70 i 16486

Feedback/Questions

Err codemadness.org 70 i 16487 Err codemadness.org 70 i 16488 Err codemadness.org 70 i 16493 Err codemadness.org 70 i 16494
Err codemadness.org 70 i 16495 Err codemadness.org 70 i 16496
    Err codemadness.org 70 i 16497
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 16498
Err codemadness.org 70 i 16499 Err codemadness.org 70 i 16500
Err codemadness.org 70 i 16501 Err codemadness.org 70 i 16502 ]]> Err codemadness.org 70 i 16506
Err codemadness.org 70 i 16507 https://fireside.fm/player/v2/FYhhasNR+N9u9kb6C Err codemadness.org 70 i 16508 Err codemadness.org 70 i 16509 ]]> Err codemadness.org 70 i 16510 Err codemadness.org 70 i 16511
Err codemadness.org 70 i 16512 Err codemadness.org 70 i 16513 316: git commit FreeBSD Err codemadness.org 70 i 16514 https://www.bsdnow.tv/316 Err codemadness.org 70 i 16515 c6ea44fd-cbae-453a-bd88-a35b2b662859 Err codemadness.org 70 i 16516 Wed, 18 Sep 2019 20:00:00 -0700 Err codemadness.org 70 i 16517 Allan Jude Err codemadness.org 70 i 16518 Err codemadness.org 70 i 16519 full Err codemadness.org 70 i 16520 Allan Jude Err codemadness.org 70 i 16521 NetBSD LLVM sanitizers and GDB regression test suite, Ada—The Language of Cost Savings, Homura - a Windows Games Launcher for FreeBSD, FreeBSD core team appoints a WG to explore transition to Git, OpenBSD 6.6 Beta tagged, Project Trident 12-U5 update now available, and more. Err codemadness.org 70 i 16522 1:05:04 Err codemadness.org 70 i 16523 no Err codemadness.org 70 i 16524 Err codemadness.org 70 i 16525 NetBSD LLVM sanitizers and GDB regression test suite, Ada—The Language of Cost Savings, Homura - a Windows Games Launcher for FreeBSD, FreeBSD core team appoints a WG to explore transition to Git, OpenBSD 6.6 Beta tagged, Project Trident 12-U5 update now available, and more. Err codemadness.org 70 i 16526 Headlines Err codemadness.org 70 i 16527 LLVM santizers and GDB regression test suite. (http://blog.netbsd.org/tnf/entry/llvm_santizers_and_gdb_regression) Err codemadness.org 70 i 16528 As NetBSD-9 is branched, I have been asked to finish the LLVM sanitizer integration. This work is now accomplished and with MKLLVM=yes build option (by default off), the distribution will be populated with LLVM files for ASan, TSan, MSan, UBSan, libFuzzer, SafeStack and XRay. Err codemadness.org 70 i 16529 I have also transplanted basesystem GDB patched to my GDB repository and managed to run the GDB regression test-suite. Err codemadness.org 70 i 16530 NetBSD distribution changes Err codemadness.org 70 i 16531 I have enhanced and imported my local MKSANITIZER code that makes whole distribution sanitization possible. Few real bugs were fixed and a number of patches were newly written to reflect the current NetBSD sources state. I have also merged another chunk of the fruits of the GSoC-2018 project with fuzzing the userland (by plusun@). Err codemadness.org 70 i 16532 The following changes were committed to the sources: Err codemadness.org 70 i 16533 ab7de18d0283 Cherry-pick upstream compiler-rt patches for LLVM sanitizers Err codemadness.org 70 i 16534 966c62a34e30 Add LLVM sanitizers in the MKLLVM=yes build Err codemadness.org 70 i 16535 8367b667adb9 telnetd: Stop defining the same variables concurrently in bss and data Err codemadness.org 70 i 16536 fe72740f64bf fsck: Stop defining the same variable concurrently in bss and data Err codemadness.org 70 i 16537 40e89e890d66 Fix build of tubsan/tubsanxx under MKSANITIZER Err codemadness.org 70 i 16538 b71326fd7b67 Avoid symbol clashes in tests/usr.bin/id under MKSANITIZER Err codemadness.org 70 i 16539 c581f2e39fa5 Avoid symbol clashes in fs/nfs/nfsservice under MKSANITIZER Err codemadness.org 70 i 16540 030a4686a3c6 Avoid symbol clashes in bin/df under MKSANITIZER Err codemadness.org 70 i 16541 fd9679f6e8b1 Avoid symbol clashes in usr.sbin/ypserv/ypserv under MKSANITIZER Err codemadness.org 70 i 16542 5df2d7939ce3 Stop defining _rpcsvcdirty in bss and data Err codemadness.org 70 i 16543 5fafbe8b8f64 Add missing extern declaration of ibmachemips in installboot Err codemadness.org 70 i 16544 d134584be69a Add SANITIZERRENAMECLASSES in bsd.prog.mk Err codemadness.org 70 i 16545 2d00d9b08eae Adapt tests/kernel/tsubrprf for MKSANITIZER Err codemadness.org 70 i 16546 ce54363fe452 Ship with sanitizer/lsan_interface.h for GCC 7 Err codemadness.org 70 i 16547 7bd5ee95e9a0 Ship with sanitizer/lsan_interface.h for LLVM 7 Err codemadness.org 70 i 16548 d8671fba7a78 Set NODEBUG for LLVM sanitizers Err codemadness.org 70 i 16549 242cd44890a2 Add PAXCTL_FLAG rules for MKSANITIZER Err codemadness.org 70 i 16550 5e80ab99d9ce Avoid symbol clashes in test/rump/modautoload/t_modautoload with sanitizers Err codemadness.org 70 i 16551 e7ce7ecd9c2a sysctl: Add indirection of symbols to remove clash with sanitizers Err codemadness.org 70 i 16552 231aea846aba traceroute: Add indirection of symbol to remove clash with sanitizers Err codemadness.org 70 i 16553 8d85053f487c sockstat: Add indirection of symbols to remove clash with sanitizers Err codemadness.org 70 i 16554 81b333ab151a netstat: Add indirection of symbols to remove clash with sanitizers Err codemadness.org 70 i 16555 a472baefefe8 Correct the memset(3)'s third argument in i386 biosdisk.c Err codemadness.org 70 i 16556 7e4e92115bc3 Add ATF c and c++ tests for TSan, MSan, libFuzzer Err codemadness.org 70 i 16557 921ddc9bc97c Set NOSANITIZER in i386 ramdisk image Err codemadness.org 70 i 16558 64361771c78d Enhance MKSANITIZER support Err codemadness.org 70 i 16559 3b5608f80a2b Define targetnotsupported_body() in TSan, MSan and libFuzzer tests Err codemadness.org 70 i 16560 c27f4619d513 Avoids signedness bit shift in dbgetvalue() Err codemadness.org 70 i 16561 680c5b3cc24f Fix LLVM sanitizer build by GCC (HAVE_LLVM=no) Err codemadness.org 70 i 16562 4ecfbbba2f2a Rework the LLVM compiler_rt build rules Err codemadness.org 70 i 16563 748813da5547 Correct the build rules of LLVM sanitizers Err codemadness.org 70 i 16564 20e223156dee Enhance the support of LLVM sanitizers Err codemadness.org 70 i 16565 0bb38eb2f20d Register syms.extra in LLVM sanitizer .syms files Err codemadness.org 70 i 16566 Almost all of the mentioned commits were backported to NetBSD-9 and will land 9.0. Err codemadness.org 70 i 16567 Homura - a Windows Games Launcher for FreeBSD (https://github.com/Alexander88207/Homura) Err codemadness.org 70 i 16568 Inspired by lutris (a Linux gaming platform), we would like to provide a game launcher to play windows games on FreeBSD. Err codemadness.org 70 i 16569 Makes it easier to run games on FreeBSD, by providing the tweaks and dependencies for you Err codemadness.org 70 i 16570 Dependencies Err codemadness.org 70 i 16571 curl Err codemadness.org 70 i 16572 bash Err codemadness.org 70 i 16573 p7zip Err codemadness.org 70 i 16574 zenity Err codemadness.org 70 i 16575 webfonts Err codemadness.org 70 i 16576 alsa-utils (Optional) Err codemadness.org 70 i 16577 winetricks Err codemadness.org 70 i 16578 vulkan-tools Err codemadness.org 70 i 16579 mesa-demos Err codemadness.org 70 i 16580 i386-wine-devel on amd64 or wine-devel on i386 Err codemadness.org 70 i 16581 News Roundup Err codemadness.org 70 i 16582 Ada—The Language of Cost Savings? (https://www.electronicdesign.com/embedded-revolution/ada-language-cost-savings) Err codemadness.org 70 i 16583 Many myths surround the Ada programming language, but it continues to be used and evolve at the same time. And while the increased adoption of Ada and SPARK, its provable subset, is slow, it’s noticeable. Ada already addresses more of the features found in found in heavily used embedded languages like C+ and C#. It also tackles problems addressed by upcoming languages like Rust. Err codemadness.org 70 i 16584 Chris concludes, “Development technologies have a profound impact on one of the largest and most variable costs associated with embedded-system engineering—labor. At a time when on-time system deployment can not only impact customer satisfaction, but access to services revenue streams, engineering team efficiency is at a premium. Our research showed that programming language choices can have significant influence in this area, leading to shorter projects, better schedules and, ultimately, lower development costs. While a variety of factors can influence and dictate language choice, our research showed that Ada’s evolution has made it an increasingly compelling option for engineering organizations, providing both technically and financially sound solution.” Err codemadness.org 70 i 16585 In general, Ada already makes embedded “programming in the large” much easier by handling issues that aren’t even addressed in other languages. Though these features are often provided by third-party software, it results in inconsistent practices among developers. Ada also supports the gamut of embedded platforms from systems like Arm’s Cortex-M through supercomputers. Learning Ada isn’t as hard as one might think and the benefits can be significant. Err codemadness.org 70 i 16586 FreeBSD core team appoints a WG to explore transitioning from Subversion to Git. (https://www.freebsd.org/news/status/report-2019-04-2019-06.html#FreeBSD-Core-Team) Err codemadness.org 70 i 16587 The FreeBSD Core Team is the governing body of FreeBSD. Err codemadness.org 70 i 16588 Core approved source commit bits for Doug Moore (dougm), Chuck Silvers (chs), Brandon Bergren (bdragon), and a vendor commit bit for Scott Phillips (scottph). Err codemadness.org 70 i 16589 The annual developer survey closed on 2019-04-02. Of the 397 developers, 243 took the survey with an average completion time of 12 minutes. The public survey closed on 2019-05-13. It was taken by 3637 users and had a 79% completion rate. A presentation of the survey results took place at BSDCan 2019. Err codemadness.org 70 i 16590 The core team voted to appoint a working group to explore transitioning our source code 'source of truth' from Subversion to Git. Core asked Ed Maste to chair the group as Ed has been researching this topic for some time. For example, Ed gave a MeetBSD 2018 talk on the topic. Err codemadness.org 70 i 16591 There is a variety of viewpoints within core regarding where and how to host a Git repository, however core feels that Git is the prudent path forward. Err codemadness.org 70 i 16592 OpenBSD 6.6 Beta tagged (https://undeadly.org/cgi?action=article;sid=20190810123243) Err codemadness.org 70 i 16593 ``` Err codemadness.org 70 i 16594 CVSROOT: /cvs Err codemadness.org 70 i 16595 Module name: src Err codemadness.org 70 i 16596 Changes by: deraadt@cvs.openbsd.org 2019/08/09 21:56:02 Err codemadness.org 70 i 16597 Modified files: Err codemadness.org 70 i 16598 etc/root : root.mail Err codemadness.org 70 i 16599 share/mk : sys.mk Err codemadness.org 70 i 16600 sys/arch/macppc/stand/tbxidata: bsd.tbxi Err codemadness.org 70 i 16601 sys/conf : newvers.sh Err codemadness.org 70 i 16602 sys/sys : param.h Err codemadness.org 70 i 16603 usr.bin/signify: signify.1 Err codemadness.org 70 i 16604 Log message: Err codemadness.org 70 i 16605 move to 6.6-beta Err codemadness.org 70 i 16606 ``` Err codemadness.org 70 i 16607 Preliminary release notes (https://www.openbsd.org/66.html) Err codemadness.org 70 i 16608 Improved hardware support, including: Err codemadness.org 70 i 16609 clang(1) is now provided on powerpc. Err codemadness.org 70 i 16610 IEEE 802.11 wireless stack improvements: Err codemadness.org 70 i 16611 Generic network stack improvements: Err codemadness.org 70 i 16612 Installer improvements: Err codemadness.org 70 i 16613 Security improvements: Err codemadness.org 70 i 16614 + Routing daemons and other userland network improvements Err codemadness.org 70 i 16615 + The ntpd(8) daemon now gets and sets the clock in a secure way when booting even when a battery-backed clock is absent. Err codemadness.org 70 i 16616 + bgdp(8) improvements Err codemadness.org 70 i 16617 + Assorted improvements: Err codemadness.org 70 i 16618 + The filesystem buffer cache now more aggressively uses memory outside the DMA region, to improve cache performance on amd64 machines. Err codemadness.org 70 i 16619 The BER API previously internal to ldap(1), ldapd(8), ypldap(8), and snmpd(8) has been moved into libutil. See berreadelements(3). Err codemadness.org 70 i 16620 Support for specifying boot device in vm.conf(5). Err codemadness.org 70 i 16621 OpenSMTPD 6.6.0 Err codemadness.org 70 i 16622 LibreSSL 3.0.X Err codemadness.org 70 i 16623 API and Documentation Enhancements Err codemadness.org 70 i 16624 Completed the port of RSA_METHOD accessors from the OpenSSL 1.1 API. Err codemadness.org 70 i 16625 Documented undescribed options and removed unfunctional options description in openssl(1) manual. Err codemadness.org 70 i 16626 OpenSSH 8.0 Err codemadness.org 70 i 16627 Project Trident 12-U5 update now available (https://project-trident.org/post/2019-09-04_stable12-u5_available/) Err codemadness.org 70 i 16628 This is the fifth general package update to the STABLE release repository based upon TrueOS 12-Stable. Err codemadness.org 70 i 16629 Package changes from Stable 12-U4 Err codemadness.org 70 i 16630 Package Summary Err codemadness.org 70 i 16631 New Packages: 20 Err codemadness.org 70 i 16632 Deleted Packages: 24 Err codemadness.org 70 i 16633 Updated Packages: 279 Err codemadness.org 70 i 16634 New Packages (20) Err codemadness.org 70 i 16635 artemis (biology/artemis) : 17.0.1.11 Err codemadness.org 70 i 16636 catesc (games/catesc) : 0.6 Err codemadness.org 70 i 16637 dmlc-core (devel/dmlc-core) : 0.3.105 Err codemadness.org 70 i 16638 go-wtf (sysutils/go-wtf) : 0.20.0_1 Err codemadness.org 70 i 16639 instead (games/instead) : 3.3.0_1 Err codemadness.org 70 i 16640 lidarr (net-p2p/lidarr) : 0.6.2.883 Err codemadness.org 70 i 16641 minerbold (games/minerbold) : 1.4 Err codemadness.org 70 i 16642 onnx (math/onnx) : 1.5.0 Err codemadness.org 70 i 16643 openzwave-devel (comms/openzwave-devel) : 1.6.897 Err codemadness.org 70 i 16644 polkit-qt-1 (sysutils/polkit-qt) : 0.113.0_8 Err codemadness.org 70 i 16645 py36-traitsui (graphics/py-traitsui) : 6.1.2 Err codemadness.org 70 i 16646 rubygem-aws-sigv2 (devel/rubygem-aws-sigv2) : 1.0.1 Err codemadness.org 70 i 16647 rubygem-defaultvaluefor32 (devel/rubygem-defaultvaluefor32) : 3.2.0 Err codemadness.org 70 i 16648 rubygem-ffi110 (devel/rubygem-ffi110) : 1.10.0 Err codemadness.org 70 i 16649 rubygem-zeitwerk (devel/rubygem-zeitwerk) : 2.1.9 Err codemadness.org 70 i 16650 sems (net/sems) : 1.7.0.g20190822 Err codemadness.org 70 i 16651 skypat (devel/skypat) : 3.1.1 Err codemadness.org 70 i 16652 tvm (math/tvm) : 0.4.1440 Err codemadness.org 70 i 16653 vavoom (games/vavoom) : 1.33_15 Err codemadness.org 70 i 16654 vavoom-extras (games/vavoom-extras) : 1.30_4 Err codemadness.org 70 i 16655 Deleted Packages (24) Err codemadness.org 70 i 16656 geeqie (graphics/geeqie) : Unknown reason Err codemadness.org 70 i 16657 iriverter (multimedia/iriverter) : Unknown reason Err codemadness.org 70 i 16658 kde5 (x11/kde5) : Unknown reason Err codemadness.org 70 i 16659 kicad-doc (cad/kicad-doc) : Unknown reason Err codemadness.org 70 i 16660 os-nozfs-buildworld (os/buildworld) : Unknown reason Err codemadness.org 70 i 16661 os-nozfs-userland (os/userland) : Unknown reason Err codemadness.org 70 i 16662 os-nozfs-userland-base (os/userland-base) : Unknown reason Err codemadness.org 70 i 16663 os-nozfs-userland-base-bootstrap (os/userland-base-bootstrap) : Unknown reason Err codemadness.org 70 i 16664 os-nozfs-userland-bin (os/userland-bin) : Unknown reason Err codemadness.org 70 i 16665 os-nozfs-userland-boot (os/userland-boot) : Unknown reason Err codemadness.org 70 i 16666 os-nozfs-userland-conf (os/userland-conf) : Unknown reason Err codemadness.org 70 i 16667 os-nozfs-userland-debug (os/userland-debug) : Unknown reason Err codemadness.org 70 i 16668 os-nozfs-userland-devtools (os/userland-devtools) : Unknown reason Err codemadness.org 70 i 16669 os-nozfs-userland-docs (os/userland-docs) : Unknown reason Err codemadness.org 70 i 16670 os-nozfs-userland-lib (os/userland-lib) : Unknown reason Err codemadness.org 70 i 16671 os-nozfs-userland-lib32 (os/userland-lib32) : Unknown reason Err codemadness.org 70 i 16672 os-nozfs-userland-lib32-development (os/userland-lib32-development) : Unknown reason Err codemadness.org 70 i 16673 os-nozfs-userland-rescue (os/userland-rescue) : Unknown reason Err codemadness.org 70 i 16674 os-nozfs-userland-sbin (os/userland-sbin) : Unknown reason Err codemadness.org 70 i 16675 os-nozfs-userland-tests (os/userland-tests) : Unknown reason Err codemadness.org 70 i 16676 photoprint (print/photoprint) : Unknown reason Err codemadness.org 70 i 16677 plasma5-plasma (x11/plasma5-plasma) : Unknown reason Err codemadness.org 70 i 16678 polkit-qt5 (sysutils/polkit-qt) : Unknown reason Err codemadness.org 70 i 16679 secpanel (security/secpanel) : Unknown reason Err codemadness.org 70 i 16680 Beastie Bits Err codemadness.org 70 i 16681 DragonFlyBSD - msdosfs updates (https://www.dragonflydigest.com/2019/09/10/23472.html) Err codemadness.org 70 i 16682 Stand out as a speaker (https://science.sciencemag.org/content/365/6455/834.full) Err codemadness.org 70 i 16683 Not a review of the 7th Gen X1 Carbon (http://akpoff.com/archive/2019/not_a_review_of_the_lenovo_x1c7.html) Err codemadness.org 70 i 16684 FreeBSD Meets Linux At The Open Source Summit (https://www.tfir.io/2019/08/24/freebsd-meets-linux-at-the-open-source-summit/) Err codemadness.org 70 i 16685 QEMU VM Escape (https://blog.bi0s.in/2019/08/24/Pwn/VM-Escape/2019-07-29-qemu-vm-escape-cve-2019-14378/) Err codemadness.org 70 i 16686 Porting wine to amd64 on NetBSD, third evaluation report. (http://blog.netbsd.org/tnf/entry/porting_wine_to_amd64_on1) Err codemadness.org 70 i 16687 OpenBSD disabled DoH by default in Firefox (https://undeadly.org/cgi?action=article;sid=20190911113856) Err codemadness.org 70 i 16688 Feedback/Questions Err codemadness.org 70 i 16689 Reinis - GELI with UEFI (http://dpaste.com/0SG8630#wrap) Err codemadness.org 70 i 16690 Mason - Beeping (http://dpaste.com/1FQN173) Err codemadness.org 70 i 16691 [CHVT feedback] Err codemadness.org 70 i 16692 DJ - Feedback (http://dpaste.com/08M3XNH#wrap) Err codemadness.org 70 i 16693 Ben - chvt (http://dpaste.com/274RVCE#wrap) Err codemadness.org 70 i 16694 Harri - Marc's chvt question (http://dpaste.com/23R1YMK#wrap) Err codemadness.org 70 i 16695 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 16696 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 16697 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0316.mp4" type="video/mp4"> Err codemadness.org 70 i 16698 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 16699 </video> Err codemadness.org 70 i 16700 Err codemadness.org 70 i 16701 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, gdb, regression test, llvm, llvm sanitizers, sanitizers, ada, cost savings, homura, windows game, game launcher, core team, git, git transition Err codemadness.org 70 i 16702 Err codemadness.org 70 i 16703 NetBSD LLVM sanitizers and GDB regression test suite, Ada—The Language of Cost Savings, Homura - a Windows Games Launcher for FreeBSD, FreeBSD core team appoints a WG to explore transition to Git, OpenBSD 6.6 Beta tagged, Project Trident 12-U5 update now available, and more.

Err codemadness.org 70 i 16704 Err codemadness.org 70 i 16705

Headlines

Err codemadness.org 70 i 16706 Err codemadness.org 70 i 16707

LLVM santizers and GDB regression test suite.

Err codemadness.org 70 i 16708 Err codemadness.org 70 i 16709
Err codemadness.org 70 i 16710

As NetBSD-9 is branched, I have been asked to finish the LLVM sanitizer integration. This work is now accomplished and with MKLLVM=yes build option (by default off), the distribution will be populated with LLVM files for ASan, TSan, MSan, UBSan, libFuzzer, SafeStack and XRay.

Err codemadness.org 70 i 16711 Err codemadness.org 70 i 16712

I have also transplanted basesystem GDB patched to my GDB repository and managed to run the GDB regression test-suite.

Err codemadness.org 70 i 16713
Err codemadness.org 70 i 16714 Err codemadness.org 70 i 16715
    Err codemadness.org 70 i 16716
  • NetBSD distribution changes
  • Err codemadness.org 70 i 16717
Err codemadness.org 70 i 16718 Err codemadness.org 70 i 16719
Err codemadness.org 70 i 16720

I have enhanced and imported my local MKSANITIZER code that makes whole distribution sanitization possible. Few real bugs were fixed and a number of patches were newly written to reflect the current NetBSD sources state. I have also merged another chunk of the fruits of the GSoC-2018 project with fuzzing the userland (by plusun@).

Err codemadness.org 70 i 16721
Err codemadness.org 70 i 16722 Err codemadness.org 70 i 16723
    Err codemadness.org 70 i 16724
  • The following changes were committed to the sources: Err codemadness.org 70 i 16725 Err codemadness.org 70 i 16726
      Err codemadness.org 70 i 16727
    • ab7de18d0283 Cherry-pick upstream compiler-rt patches for LLVM sanitizers
    • Err codemadness.org 70 i 16728
    • 966c62a34e30 Add LLVM sanitizers in the MKLLVM=yes build
    • Err codemadness.org 70 i 16729
    • 8367b667adb9 telnetd: Stop defining the same variables concurrently in bss and data
    • Err codemadness.org 70 i 16730
    • fe72740f64bf fsck: Stop defining the same variable concurrently in bss and data
    • Err codemadness.org 70 i 16731
    • 40e89e890d66 Fix build of t_ubsan/t_ubsanxx under MKSANITIZER
    • Err codemadness.org 70 i 16732
    • b71326fd7b67 Avoid symbol clashes in tests/usr.bin/id under MKSANITIZER
    • Err codemadness.org 70 i 16733
    • c581f2e39fa5 Avoid symbol clashes in fs/nfs/nfsservice under MKSANITIZER
    • Err codemadness.org 70 i 16734
    • 030a4686a3c6 Avoid symbol clashes in bin/df under MKSANITIZER
    • Err codemadness.org 70 i 16735
    • fd9679f6e8b1 Avoid symbol clashes in usr.sbin/ypserv/ypserv under MKSANITIZER
    • Err codemadness.org 70 i 16736
    • 5df2d7939ce3 Stop defining _rpcsvcdirty in bss and data
    • Err codemadness.org 70 i 16737
    • 5fafbe8b8f64 Add missing extern declaration of ib_mach_emips in installboot
    • Err codemadness.org 70 i 16738
    • d134584be69a Add SANITIZER_RENAME_CLASSES in bsd.prog.mk
    • Err codemadness.org 70 i 16739
    • 2d00d9b08eae Adapt tests/kernel/t_subr_prf for MKSANITIZER
    • Err codemadness.org 70 i 16740
    • ce54363fe452 Ship with sanitizer/lsan_interface.h for GCC 7
    • Err codemadness.org 70 i 16741
    • 7bd5ee95e9a0 Ship with sanitizer/lsan_interface.h for LLVM 7
    • Err codemadness.org 70 i 16742
    • d8671fba7a78 Set NODEBUG for LLVM sanitizers
    • Err codemadness.org 70 i 16743
    • 242cd44890a2 Add PAXCTL_FLAG rules for MKSANITIZER
    • Err codemadness.org 70 i 16744
    • 5e80ab99d9ce Avoid symbol clashes in test/rump/modautoload/t_modautoload with sanitizers
    • Err codemadness.org 70 i 16745
    • e7ce7ecd9c2a sysctl: Add indirection of symbols to remove clash with sanitizers
    • Err codemadness.org 70 i 16746
    • 231aea846aba traceroute: Add indirection of symbol to remove clash with sanitizers
    • Err codemadness.org 70 i 16747
    • 8d85053f487c sockstat: Add indirection of symbols to remove clash with sanitizers
    • Err codemadness.org 70 i 16748
    • 81b333ab151a netstat: Add indirection of symbols to remove clash with sanitizers
    • Err codemadness.org 70 i 16749
    • a472baefefe8 Correct the memset(3)'s third argument in i386 biosdisk.c
    • Err codemadness.org 70 i 16750
    • 7e4e92115bc3 Add ATF c and c++ tests for TSan, MSan, libFuzzer
    • Err codemadness.org 70 i 16751
    • 921ddc9bc97c Set NOSANITIZER in i386 ramdisk image
    • Err codemadness.org 70 i 16752
    • 64361771c78d Enhance MKSANITIZER support
    • Err codemadness.org 70 i 16753
    • 3b5608f80a2b Define target_not_supported_body() in TSan, MSan and libFuzzer tests
    • Err codemadness.org 70 i 16754
    • c27f4619d513 Avoids signedness bit shift in db_get_value()
    • Err codemadness.org 70 i 16755
    • 680c5b3cc24f Fix LLVM sanitizer build by GCC (HAVE_LLVM=no)
    • Err codemadness.org 70 i 16756
    • 4ecfbbba2f2a Rework the LLVM compiler_rt build rules
    • Err codemadness.org 70 i 16757
    • 748813da5547 Correct the build rules of LLVM sanitizers
    • Err codemadness.org 70 i 16758
    • 20e223156dee Enhance the support of LLVM sanitizers
    • Err codemadness.org 70 i 16759
    • 0bb38eb2f20d Register syms.extra in LLVM sanitizer .syms files
    • Err codemadness.org 70 i 16760
    • Almost all of the mentioned commits were backported to NetBSD-9 and will land 9.0.
    • Err codemadness.org 70 i 16761
  • Err codemadness.org 70 i 16762
Err codemadness.org 70 i 16763 Err codemadness.org 70 i 16764
Err codemadness.org 70 i 16765 Err codemadness.org 70 i 16766

Homura - a Windows Games Launcher for FreeBSD

Err codemadness.org 70 i 16767 Err codemadness.org 70 i 16768
Err codemadness.org 70 i 16769

Inspired by lutris (a Linux gaming platform), we would like to provide a game launcher to play windows games on FreeBSD.

Err codemadness.org 70 i 16770
Err codemadness.org 70 i 16771 Err codemadness.org 70 i 16772
    Err codemadness.org 70 i 16773
  • Makes it easier to run games on FreeBSD, by providing the tweaks and dependencies for you
  • Err codemadness.org 70 i 16774
  • Dependencies Err codemadness.org 70 i 16775 Err codemadness.org 70 i 16776
      Err codemadness.org 70 i 16777
    • curl
    • Err codemadness.org 70 i 16778
    • bash
    • Err codemadness.org 70 i 16779
    • p7zip
    • Err codemadness.org 70 i 16780
    • zenity
    • Err codemadness.org 70 i 16781
    • webfonts
    • Err codemadness.org 70 i 16782
    • alsa-utils (Optional)
    • Err codemadness.org 70 i 16783
    • winetricks
    • Err codemadness.org 70 i 16784
    • vulkan-tools
    • Err codemadness.org 70 i 16785
    • mesa-demos
    • Err codemadness.org 70 i 16786
    • i386-wine-devel on amd64 or wine-devel on i386
    • Err codemadness.org 70 i 16787
  • Err codemadness.org 70 i 16788
Err codemadness.org 70 i 16789 Err codemadness.org 70 i 16790
Err codemadness.org 70 i 16791 Err codemadness.org 70 i 16792

News Roundup

Err codemadness.org 70 i 16793 Err codemadness.org 70 i 16794

Ada—The Language of Cost Savings?

Err codemadness.org 70 i 16795 Err codemadness.org 70 i 16796
Err codemadness.org 70 i 16797

Many myths surround the Ada programming language, but it continues to be used and evolve at the same time. And while the increased adoption of Ada and SPARK, its provable subset, is slow, it’s noticeable. Ada already addresses more of the features found in found in heavily used embedded languages like C+ and C#. It also tackles problems addressed by upcoming languages like Rust.

Err codemadness.org 70 i 16798 Err codemadness.org 70 i 16799

Chris concludes, “Development technologies have a profound impact on one of the largest and most variable costs associated with embedded-system engineering—labor. At a time when on-time system deployment can not only impact customer satisfaction, but access to services revenue streams, engineering team efficiency is at a premium. Our research showed that programming language choices can have significant influence in this area, leading to shorter projects, better schedules and, ultimately, lower development costs. While a variety of factors can influence and dictate language choice, our research showed that Ada’s evolution has made it an increasingly compelling option for engineering organizations, providing both technically and financially sound solution.”

Err codemadness.org 70 i 16800 Err codemadness.org 70 i 16801

In general, Ada already makes embedded “programming in the large” much easier by handling issues that aren’t even addressed in other languages. Though these features are often provided by third-party software, it results in inconsistent practices among developers. Ada also supports the gamut of embedded platforms from systems like Arm’s Cortex-M through supercomputers. Learning Ada isn’t as hard as one might think and the benefits can be significant.

Err codemadness.org 70 i 16802
Err codemadness.org 70 i 16803 Err codemadness.org 70 i 16804
Err codemadness.org 70 i 16805 Err codemadness.org 70 i 16806

FreeBSD core team appoints a WG to explore transitioning from Subversion to Git.

Err codemadness.org 70 i 16807 Err codemadness.org 70 i 16808
    Err codemadness.org 70 i 16809
  • The FreeBSD Core Team is the governing body of FreeBSD.
  • Err codemadness.org 70 i 16810
Err codemadness.org 70 i 16811 Err codemadness.org 70 i 16812
Err codemadness.org 70 i 16813

Core approved source commit bits for Doug Moore (dougm), Chuck Silvers (chs), Brandon Bergren (bdragon), and a vendor commit bit for Scott Phillips (scottph).

Err codemadness.org 70 i 16814 Err codemadness.org 70 i 16815

The annual developer survey closed on 2019-04-02. Of the 397 developers, 243 took the survey with an average completion time of 12 minutes. The public survey closed on 2019-05-13. It was taken by 3637 users and had a 79% completion rate. A presentation of the survey results took place at BSDCan 2019.

Err codemadness.org 70 i 16816 Err codemadness.org 70 i 16817

The core team voted to appoint a working group to explore transitioning our source code 'source of truth' from Subversion to Git. Core asked Ed Maste to chair the group as Ed has been researching this topic for some time. For example, Ed gave a MeetBSD 2018 talk on the topic.

Err codemadness.org 70 i 16818 Err codemadness.org 70 i 16819

There is a variety of viewpoints within core regarding where and how to host a Git repository, however core feels that Git is the prudent path forward.

Err codemadness.org 70 i 16820
Err codemadness.org 70 i 16821 Err codemadness.org 70 i 16822
Err codemadness.org 70 i 16823 Err codemadness.org 70 i 16824

OpenBSD 6.6 Beta tagged

Err codemadness.org 70 i 16825 Err codemadness.org 70 i 16826
CVSROOT:    /cvs	Err	codemadness.org	70
i 16827 Module name:    src	Err	codemadness.org	70
i 16828 Changes by:    deraadt@cvs.openbsd.org    2019/08/09 21:56:02	Err	codemadness.org	70
i 16829 	Err	codemadness.org	70
i 16830 Modified files:	Err	codemadness.org	70
i 16831     etc/root : root.mail	Err	codemadness.org	70
i 16832     share/mk : sys.mk	Err	codemadness.org	70
i 16833     sys/arch/macppc/stand/tbxidata: bsd.tbxi	Err	codemadness.org	70
i 16834     sys/conf : newvers.sh	Err	codemadness.org	70
i 16835     sys/sys : param.h	Err	codemadness.org	70
i 16836     usr.bin/signify: signify.1	Err	codemadness.org	70
i 16837 	Err	codemadness.org	70
i 16838 Log message:	Err	codemadness.org	70
i 16839 move to 6.6-beta	Err	codemadness.org	70
i 16840 
Err codemadness.org 70 i 16841 Err codemadness.org 70 i 16842

Preliminary release notes

Err codemadness.org 70 i 16843 Err codemadness.org 70 i 16844

Improved hardware support, including:

Err codemadness.org 70 i 16845 Err codemadness.org 70 i 16846
    Err codemadness.org 70 i 16847
  • clang(1) is now provided on powerpc.
  • Err codemadness.org 70 i 16848
  • IEEE 802.11 wireless stack improvements:
  • Err codemadness.org 70 i 16849
  • Generic network stack improvements:
  • Err codemadness.org 70 i 16850
  • Installer improvements:
  • Err codemadness.org 70 i 16851
  • Security improvements:
  • Err codemadness.org 70 i 16852
  • + Routing daemons and other userland network improvements
  • Err codemadness.org 70 i 16853
  • + The ntpd(8) daemon now gets and sets the clock in a secure way when booting even when a battery-backed clock is absent.
  • Err codemadness.org 70 i 16854
  • + bgdp(8) improvements
  • Err codemadness.org 70 i 16855
  • + Assorted improvements:
  • Err codemadness.org 70 i 16856
  • + The filesystem buffer cache now more aggressively uses memory outside the DMA region, to improve cache performance on amd64 machines.
  • Err codemadness.org 70 i 16857
  • The BER API previously internal to ldap(1), ldapd(8), ypldap(8), and snmpd(8) has been moved into libutil. See ber_read_elements(3).
  • Err codemadness.org 70 i 16858
  • Support for specifying boot device in vm.conf(5).
  • Err codemadness.org 70 i 16859
  • OpenSMTPD 6.6.0
  • Err codemadness.org 70 i 16860
  • LibreSSL 3.0.X
  • Err codemadness.org 70 i 16861
  • API and Documentation Enhancements
  • Err codemadness.org 70 i 16862
  • Completed the port of RSA_METHOD accessors from the OpenSSL 1.1 API.
  • Err codemadness.org 70 i 16863
  • Documented undescribed options and removed unfunctional options description in openssl(1) manual.
  • Err codemadness.org 70 i 16864
  • OpenSSH 8.0
  • Err codemadness.org 70 i 16865
Err codemadness.org 70 i 16866 Err codemadness.org 70 i 16867
Err codemadness.org 70 i 16868 Err codemadness.org 70 i 16869

Project Trident 12-U5 update now available

Err codemadness.org 70 i 16870 Err codemadness.org 70 i 16871
Err codemadness.org 70 i 16872

This is the fifth general package update to the STABLE release repository based upon TrueOS 12-Stable.

Err codemadness.org 70 i 16873
Err codemadness.org 70 i 16874 Err codemadness.org 70 i 16875
    Err codemadness.org 70 i 16876
  • Package changes from Stable 12-U4
  • Err codemadness.org 70 i 16877
  • Package Summary

    Err codemadness.org 70 i 16878 Err codemadness.org 70 i 16879
      Err codemadness.org 70 i 16880
    • New Packages: 20
    • Err codemadness.org 70 i 16881
    • Deleted Packages: 24
    • Err codemadness.org 70 i 16882
    • Updated Packages: 279
    • Err codemadness.org 70 i 16883
  • Err codemadness.org 70 i 16884
  • New Packages (20)

    Err codemadness.org 70 i 16885 Err codemadness.org 70 i 16886
      Err codemadness.org 70 i 16887
    • artemis (biology/artemis) : 17.0.1.11
    • Err codemadness.org 70 i 16888
    • catesc (games/catesc) : 0.6
    • Err codemadness.org 70 i 16889
    • dmlc-core (devel/dmlc-core) : 0.3.105
    • Err codemadness.org 70 i 16890
    • go-wtf (sysutils/go-wtf) : 0.20.0_1
    • Err codemadness.org 70 i 16891
    • instead (games/instead) : 3.3.0_1
    • Err codemadness.org 70 i 16892
    • lidarr (net-p2p/lidarr) : 0.6.2.883
    • Err codemadness.org 70 i 16893
    • minerbold (games/minerbold) : 1.4
    • Err codemadness.org 70 i 16894
    • onnx (math/onnx) : 1.5.0
    • Err codemadness.org 70 i 16895
    • openzwave-devel (comms/openzwave-devel) : 1.6.897
    • Err codemadness.org 70 i 16896
    • polkit-qt-1 (sysutils/polkit-qt) : 0.113.0_8
    • Err codemadness.org 70 i 16897
    • py36-traitsui (graphics/py-traitsui) : 6.1.2
    • Err codemadness.org 70 i 16898
    • rubygem-aws-sigv2 (devel/rubygem-aws-sigv2) : 1.0.1
    • Err codemadness.org 70 i 16899
    • rubygem-default_value_for32 (devel/rubygem-default_value_for32) : 3.2.0
    • Err codemadness.org 70 i 16900
    • rubygem-ffi110 (devel/rubygem-ffi110) : 1.10.0
    • Err codemadness.org 70 i 16901
    • rubygem-zeitwerk (devel/rubygem-zeitwerk) : 2.1.9
    • Err codemadness.org 70 i 16902
    • sems (net/sems) : 1.7.0.g20190822
    • Err codemadness.org 70 i 16903
    • skypat (devel/skypat) : 3.1.1
    • Err codemadness.org 70 i 16904
    • tvm (math/tvm) : 0.4.1440
    • Err codemadness.org 70 i 16905
    • vavoom (games/vavoom) : 1.33_15
    • Err codemadness.org 70 i 16906
    • vavoom-extras (games/vavoom-extras) : 1.30_4
    • Err codemadness.org 70 i 16907
  • Err codemadness.org 70 i 16908
  • Deleted Packages (24)

    Err codemadness.org 70 i 16909 Err codemadness.org 70 i 16910
      Err codemadness.org 70 i 16911
    • geeqie (graphics/geeqie) : Unknown reason
    • Err codemadness.org 70 i 16912
    • iriverter (multimedia/iriverter) : Unknown reason
    • Err codemadness.org 70 i 16913
    • kde5 (x11/kde5) : Unknown reason
    • Err codemadness.org 70 i 16914
    • kicad-doc (cad/kicad-doc) : Unknown reason
    • Err codemadness.org 70 i 16915
    • os-nozfs-buildworld (os/buildworld) : Unknown reason
    • Err codemadness.org 70 i 16916
    • os-nozfs-userland (os/userland) : Unknown reason
    • Err codemadness.org 70 i 16917
    • os-nozfs-userland-base (os/userland-base) : Unknown reason
    • Err codemadness.org 70 i 16918
    • os-nozfs-userland-base-bootstrap (os/userland-base-bootstrap) : Unknown reason
    • Err codemadness.org 70 i 16919
    • os-nozfs-userland-bin (os/userland-bin) : Unknown reason
    • Err codemadness.org 70 i 16920
    • os-nozfs-userland-boot (os/userland-boot) : Unknown reason
    • Err codemadness.org 70 i 16921
    • os-nozfs-userland-conf (os/userland-conf) : Unknown reason
    • Err codemadness.org 70 i 16922
    • os-nozfs-userland-debug (os/userland-debug) : Unknown reason
    • Err codemadness.org 70 i 16923
    • os-nozfs-userland-devtools (os/userland-devtools) : Unknown reason
    • Err codemadness.org 70 i 16924
    • os-nozfs-userland-docs (os/userland-docs) : Unknown reason
    • Err codemadness.org 70 i 16925
    • os-nozfs-userland-lib (os/userland-lib) : Unknown reason
    • Err codemadness.org 70 i 16926
    • os-nozfs-userland-lib32 (os/userland-lib32) : Unknown reason
    • Err codemadness.org 70 i 16927
    • os-nozfs-userland-lib32-development (os/userland-lib32-development) : Unknown reason
    • Err codemadness.org 70 i 16928
    • os-nozfs-userland-rescue (os/userland-rescue) : Unknown reason
    • Err codemadness.org 70 i 16929
    • os-nozfs-userland-sbin (os/userland-sbin) : Unknown reason
    • Err codemadness.org 70 i 16930
    • os-nozfs-userland-tests (os/userland-tests) : Unknown reason
    • Err codemadness.org 70 i 16931
    • photoprint (print/photoprint) : Unknown reason
    • Err codemadness.org 70 i 16932
    • plasma5-plasma (x11/plasma5-plasma) : Unknown reason
    • Err codemadness.org 70 i 16933
    • polkit-qt5 (sysutils/polkit-qt) : Unknown reason
    • Err codemadness.org 70 i 16934
    • secpanel (security/secpanel) : Unknown reason
    • Err codemadness.org 70 i 16935
  • Err codemadness.org 70 i 16936
Err codemadness.org 70 i 16937 Err codemadness.org 70 i 16938
Err codemadness.org 70 i 16939 Err codemadness.org 70 i 16940

Beastie Bits

Err codemadness.org 70 i 16941 Err codemadness.org 70 i 16942 Err codemadness.org 70 i 16951 Err codemadness.org 70 i 16952
Err codemadness.org 70 i 16953 Err codemadness.org 70 i 16954

Feedback/Questions

Err codemadness.org 70 i 16955 Err codemadness.org 70 i 16956
    Err codemadness.org 70 i 16957
  • Reinis - GELI with UEFI
  • Err codemadness.org 70 i 16958
  • Mason - Beeping
  • Err codemadness.org 70 i 16959
Err codemadness.org 70 i 16960 Err codemadness.org 70 i 16961

[CHVT feedback]
Err codemadness.org 70 i 16962 DJ - Feedback
Err codemadness.org 70 i 16963 Ben - chvt
Err codemadness.org 70 i 16964 Harri - Marc's chvt question

Err codemadness.org 70 i 16965 Err codemadness.org 70 i 16966
Err codemadness.org 70 i 16967 Err codemadness.org 70 i 16968
    Err codemadness.org 70 i 16969
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 16970
Err codemadness.org 70 i 16971 Err codemadness.org 70 i 16972
Err codemadness.org 70 i 16973 Err codemadness.org 70 i 16974 ]]> Err codemadness.org 70 i 16978
Err codemadness.org 70 i 16979 Err codemadness.org 70 i 16980 NetBSD LLVM sanitizers and GDB regression test suite, Ada—The Language of Cost Savings, Homura - a Windows Games Launcher for FreeBSD, FreeBSD core team appoints a WG to explore transition to Git, OpenBSD 6.6 Beta tagged, Project Trident 12-U5 update now available, and more.

Err codemadness.org 70 i 16981 Err codemadness.org 70 i 16982

Headlines

Err codemadness.org 70 i 16983 Err codemadness.org 70 i 16984

LLVM santizers and GDB regression test suite.

Err codemadness.org 70 i 16985 Err codemadness.org 70 i 16986
Err codemadness.org 70 i 16987

As NetBSD-9 is branched, I have been asked to finish the LLVM sanitizer integration. This work is now accomplished and with MKLLVM=yes build option (by default off), the distribution will be populated with LLVM files for ASan, TSan, MSan, UBSan, libFuzzer, SafeStack and XRay.

Err codemadness.org 70 i 16988 Err codemadness.org 70 i 16989

I have also transplanted basesystem GDB patched to my GDB repository and managed to run the GDB regression test-suite.

Err codemadness.org 70 i 16990
Err codemadness.org 70 i 16991 Err codemadness.org 70 i 16992
    Err codemadness.org 70 i 16993
  • NetBSD distribution changes
  • Err codemadness.org 70 i 16994
Err codemadness.org 70 i 16995 Err codemadness.org 70 i 16996
Err codemadness.org 70 i 16997

I have enhanced and imported my local MKSANITIZER code that makes whole distribution sanitization possible. Few real bugs were fixed and a number of patches were newly written to reflect the current NetBSD sources state. I have also merged another chunk of the fruits of the GSoC-2018 project with fuzzing the userland (by plusun@).

Err codemadness.org 70 i 16998
Err codemadness.org 70 i 16999 Err codemadness.org 70 i 17000
    Err codemadness.org 70 i 17001
  • The following changes were committed to the sources: Err codemadness.org 70 i 17002 Err codemadness.org 70 i 17003
      Err codemadness.org 70 i 17004
    • ab7de18d0283 Cherry-pick upstream compiler-rt patches for LLVM sanitizers
    • Err codemadness.org 70 i 17005
    • 966c62a34e30 Add LLVM sanitizers in the MKLLVM=yes build
    • Err codemadness.org 70 i 17006
    • 8367b667adb9 telnetd: Stop defining the same variables concurrently in bss and data
    • Err codemadness.org 70 i 17007
    • fe72740f64bf fsck: Stop defining the same variable concurrently in bss and data
    • Err codemadness.org 70 i 17008
    • 40e89e890d66 Fix build of t_ubsan/t_ubsanxx under MKSANITIZER
    • Err codemadness.org 70 i 17009
    • b71326fd7b67 Avoid symbol clashes in tests/usr.bin/id under MKSANITIZER
    • Err codemadness.org 70 i 17010
    • c581f2e39fa5 Avoid symbol clashes in fs/nfs/nfsservice under MKSANITIZER
    • Err codemadness.org 70 i 17011
    • 030a4686a3c6 Avoid symbol clashes in bin/df under MKSANITIZER
    • Err codemadness.org 70 i 17012
    • fd9679f6e8b1 Avoid symbol clashes in usr.sbin/ypserv/ypserv under MKSANITIZER
    • Err codemadness.org 70 i 17013
    • 5df2d7939ce3 Stop defining _rpcsvcdirty in bss and data
    • Err codemadness.org 70 i 17014
    • 5fafbe8b8f64 Add missing extern declaration of ib_mach_emips in installboot
    • Err codemadness.org 70 i 17015
    • d134584be69a Add SANITIZER_RENAME_CLASSES in bsd.prog.mk
    • Err codemadness.org 70 i 17016
    • 2d00d9b08eae Adapt tests/kernel/t_subr_prf for MKSANITIZER
    • Err codemadness.org 70 i 17017
    • ce54363fe452 Ship with sanitizer/lsan_interface.h for GCC 7
    • Err codemadness.org 70 i 17018
    • 7bd5ee95e9a0 Ship with sanitizer/lsan_interface.h for LLVM 7
    • Err codemadness.org 70 i 17019
    • d8671fba7a78 Set NODEBUG for LLVM sanitizers
    • Err codemadness.org 70 i 17020
    • 242cd44890a2 Add PAXCTL_FLAG rules for MKSANITIZER
    • Err codemadness.org 70 i 17021
    • 5e80ab99d9ce Avoid symbol clashes in test/rump/modautoload/t_modautoload with sanitizers
    • Err codemadness.org 70 i 17022
    • e7ce7ecd9c2a sysctl: Add indirection of symbols to remove clash with sanitizers
    • Err codemadness.org 70 i 17023
    • 231aea846aba traceroute: Add indirection of symbol to remove clash with sanitizers
    • Err codemadness.org 70 i 17024
    • 8d85053f487c sockstat: Add indirection of symbols to remove clash with sanitizers
    • Err codemadness.org 70 i 17025
    • 81b333ab151a netstat: Add indirection of symbols to remove clash with sanitizers
    • Err codemadness.org 70 i 17026
    • a472baefefe8 Correct the memset(3)'s third argument in i386 biosdisk.c
    • Err codemadness.org 70 i 17027
    • 7e4e92115bc3 Add ATF c and c++ tests for TSan, MSan, libFuzzer
    • Err codemadness.org 70 i 17028
    • 921ddc9bc97c Set NOSANITIZER in i386 ramdisk image
    • Err codemadness.org 70 i 17029
    • 64361771c78d Enhance MKSANITIZER support
    • Err codemadness.org 70 i 17030
    • 3b5608f80a2b Define target_not_supported_body() in TSan, MSan and libFuzzer tests
    • Err codemadness.org 70 i 17031
    • c27f4619d513 Avoids signedness bit shift in db_get_value()
    • Err codemadness.org 70 i 17032
    • 680c5b3cc24f Fix LLVM sanitizer build by GCC (HAVE_LLVM=no)
    • Err codemadness.org 70 i 17033
    • 4ecfbbba2f2a Rework the LLVM compiler_rt build rules
    • Err codemadness.org 70 i 17034
    • 748813da5547 Correct the build rules of LLVM sanitizers
    • Err codemadness.org 70 i 17035
    • 20e223156dee Enhance the support of LLVM sanitizers
    • Err codemadness.org 70 i 17036
    • 0bb38eb2f20d Register syms.extra in LLVM sanitizer .syms files
    • Err codemadness.org 70 i 17037
    • Almost all of the mentioned commits were backported to NetBSD-9 and will land 9.0.
    • Err codemadness.org 70 i 17038
  • Err codemadness.org 70 i 17039
Err codemadness.org 70 i 17040 Err codemadness.org 70 i 17041
Err codemadness.org 70 i 17042 Err codemadness.org 70 i 17043

Homura - a Windows Games Launcher for FreeBSD

Err codemadness.org 70 i 17044 Err codemadness.org 70 i 17045
Err codemadness.org 70 i 17046

Inspired by lutris (a Linux gaming platform), we would like to provide a game launcher to play windows games on FreeBSD.

Err codemadness.org 70 i 17047
Err codemadness.org 70 i 17048 Err codemadness.org 70 i 17049
    Err codemadness.org 70 i 17050
  • Makes it easier to run games on FreeBSD, by providing the tweaks and dependencies for you
  • Err codemadness.org 70 i 17051
  • Dependencies Err codemadness.org 70 i 17052 Err codemadness.org 70 i 17053
      Err codemadness.org 70 i 17054
    • curl
    • Err codemadness.org 70 i 17055
    • bash
    • Err codemadness.org 70 i 17056
    • p7zip
    • Err codemadness.org 70 i 17057
    • zenity
    • Err codemadness.org 70 i 17058
    • webfonts
    • Err codemadness.org 70 i 17059
    • alsa-utils (Optional)
    • Err codemadness.org 70 i 17060
    • winetricks
    • Err codemadness.org 70 i 17061
    • vulkan-tools
    • Err codemadness.org 70 i 17062
    • mesa-demos
    • Err codemadness.org 70 i 17063
    • i386-wine-devel on amd64 or wine-devel on i386
    • Err codemadness.org 70 i 17064
  • Err codemadness.org 70 i 17065
Err codemadness.org 70 i 17066 Err codemadness.org 70 i 17067
Err codemadness.org 70 i 17068 Err codemadness.org 70 i 17069

News Roundup

Err codemadness.org 70 i 17070 Err codemadness.org 70 i 17071

Ada—The Language of Cost Savings?

Err codemadness.org 70 i 17072 Err codemadness.org 70 i 17073
Err codemadness.org 70 i 17074

Many myths surround the Ada programming language, but it continues to be used and evolve at the same time. And while the increased adoption of Ada and SPARK, its provable subset, is slow, it’s noticeable. Ada already addresses more of the features found in found in heavily used embedded languages like C+ and C#. It also tackles problems addressed by upcoming languages like Rust.

Err codemadness.org 70 i 17075 Err codemadness.org 70 i 17076

Chris concludes, “Development technologies have a profound impact on one of the largest and most variable costs associated with embedded-system engineering—labor. At a time when on-time system deployment can not only impact customer satisfaction, but access to services revenue streams, engineering team efficiency is at a premium. Our research showed that programming language choices can have significant influence in this area, leading to shorter projects, better schedules and, ultimately, lower development costs. While a variety of factors can influence and dictate language choice, our research showed that Ada’s evolution has made it an increasingly compelling option for engineering organizations, providing both technically and financially sound solution.”

Err codemadness.org 70 i 17077 Err codemadness.org 70 i 17078

In general, Ada already makes embedded “programming in the large” much easier by handling issues that aren’t even addressed in other languages. Though these features are often provided by third-party software, it results in inconsistent practices among developers. Ada also supports the gamut of embedded platforms from systems like Arm’s Cortex-M through supercomputers. Learning Ada isn’t as hard as one might think and the benefits can be significant.

Err codemadness.org 70 i 17079
Err codemadness.org 70 i 17080 Err codemadness.org 70 i 17081
Err codemadness.org 70 i 17082 Err codemadness.org 70 i 17083

FreeBSD core team appoints a WG to explore transitioning from Subversion to Git.

Err codemadness.org 70 i 17084 Err codemadness.org 70 i 17085
    Err codemadness.org 70 i 17086
  • The FreeBSD Core Team is the governing body of FreeBSD.
  • Err codemadness.org 70 i 17087
Err codemadness.org 70 i 17088 Err codemadness.org 70 i 17089
Err codemadness.org 70 i 17090

Core approved source commit bits for Doug Moore (dougm), Chuck Silvers (chs), Brandon Bergren (bdragon), and a vendor commit bit for Scott Phillips (scottph).

Err codemadness.org 70 i 17091 Err codemadness.org 70 i 17092

The annual developer survey closed on 2019-04-02. Of the 397 developers, 243 took the survey with an average completion time of 12 minutes. The public survey closed on 2019-05-13. It was taken by 3637 users and had a 79% completion rate. A presentation of the survey results took place at BSDCan 2019.

Err codemadness.org 70 i 17093 Err codemadness.org 70 i 17094

The core team voted to appoint a working group to explore transitioning our source code 'source of truth' from Subversion to Git. Core asked Ed Maste to chair the group as Ed has been researching this topic for some time. For example, Ed gave a MeetBSD 2018 talk on the topic.

Err codemadness.org 70 i 17095 Err codemadness.org 70 i 17096

There is a variety of viewpoints within core regarding where and how to host a Git repository, however core feels that Git is the prudent path forward.

Err codemadness.org 70 i 17097
Err codemadness.org 70 i 17098 Err codemadness.org 70 i 17099
Err codemadness.org 70 i 17100 Err codemadness.org 70 i 17101

OpenBSD 6.6 Beta tagged

Err codemadness.org 70 i 17102 Err codemadness.org 70 i 17103
CVSROOT:    /cvs	Err	codemadness.org	70
i 17104 Module name:    src	Err	codemadness.org	70
i 17105 Changes by:    deraadt@cvs.openbsd.org    2019/08/09 21:56:02	Err	codemadness.org	70
i 17106 	Err	codemadness.org	70
i 17107 Modified files:	Err	codemadness.org	70
i 17108     etc/root : root.mail	Err	codemadness.org	70
i 17109     share/mk : sys.mk	Err	codemadness.org	70
i 17110     sys/arch/macppc/stand/tbxidata: bsd.tbxi	Err	codemadness.org	70
i 17111     sys/conf : newvers.sh	Err	codemadness.org	70
i 17112     sys/sys : param.h	Err	codemadness.org	70
i 17113     usr.bin/signify: signify.1	Err	codemadness.org	70
i 17114 	Err	codemadness.org	70
i 17115 Log message:	Err	codemadness.org	70
i 17116 move to 6.6-beta	Err	codemadness.org	70
i 17117 
Err codemadness.org 70 i 17118 Err codemadness.org 70 i 17119

Preliminary release notes

Err codemadness.org 70 i 17120 Err codemadness.org 70 i 17121

Improved hardware support, including:

Err codemadness.org 70 i 17122 Err codemadness.org 70 i 17123
    Err codemadness.org 70 i 17124
  • clang(1) is now provided on powerpc.
  • Err codemadness.org 70 i 17125
  • IEEE 802.11 wireless stack improvements:
  • Err codemadness.org 70 i 17126
  • Generic network stack improvements:
  • Err codemadness.org 70 i 17127
  • Installer improvements:
  • Err codemadness.org 70 i 17128
  • Security improvements:
  • Err codemadness.org 70 i 17129
  • + Routing daemons and other userland network improvements
  • Err codemadness.org 70 i 17130
  • + The ntpd(8) daemon now gets and sets the clock in a secure way when booting even when a battery-backed clock is absent.
  • Err codemadness.org 70 i 17131
  • + bgdp(8) improvements
  • Err codemadness.org 70 i 17132
  • + Assorted improvements:
  • Err codemadness.org 70 i 17133
  • + The filesystem buffer cache now more aggressively uses memory outside the DMA region, to improve cache performance on amd64 machines.
  • Err codemadness.org 70 i 17134
  • The BER API previously internal to ldap(1), ldapd(8), ypldap(8), and snmpd(8) has been moved into libutil. See ber_read_elements(3).
  • Err codemadness.org 70 i 17135
  • Support for specifying boot device in vm.conf(5).
  • Err codemadness.org 70 i 17136
  • OpenSMTPD 6.6.0
  • Err codemadness.org 70 i 17137
  • LibreSSL 3.0.X
  • Err codemadness.org 70 i 17138
  • API and Documentation Enhancements
  • Err codemadness.org 70 i 17139
  • Completed the port of RSA_METHOD accessors from the OpenSSL 1.1 API.
  • Err codemadness.org 70 i 17140
  • Documented undescribed options and removed unfunctional options description in openssl(1) manual.
  • Err codemadness.org 70 i 17141
  • OpenSSH 8.0
  • Err codemadness.org 70 i 17142
Err codemadness.org 70 i 17143 Err codemadness.org 70 i 17144
Err codemadness.org 70 i 17145 Err codemadness.org 70 i 17146

Project Trident 12-U5 update now available

Err codemadness.org 70 i 17147 Err codemadness.org 70 i 17148
Err codemadness.org 70 i 17149

This is the fifth general package update to the STABLE release repository based upon TrueOS 12-Stable.

Err codemadness.org 70 i 17150
Err codemadness.org 70 i 17151 Err codemadness.org 70 i 17152
    Err codemadness.org 70 i 17153
  • Package changes from Stable 12-U4
  • Err codemadness.org 70 i 17154
  • Package Summary

    Err codemadness.org 70 i 17155 Err codemadness.org 70 i 17156
      Err codemadness.org 70 i 17157
    • New Packages: 20
    • Err codemadness.org 70 i 17158
    • Deleted Packages: 24
    • Err codemadness.org 70 i 17159
    • Updated Packages: 279
    • Err codemadness.org 70 i 17160
  • Err codemadness.org 70 i 17161
  • New Packages (20)

    Err codemadness.org 70 i 17162 Err codemadness.org 70 i 17163
      Err codemadness.org 70 i 17164
    • artemis (biology/artemis) : 17.0.1.11
    • Err codemadness.org 70 i 17165
    • catesc (games/catesc) : 0.6
    • Err codemadness.org 70 i 17166
    • dmlc-core (devel/dmlc-core) : 0.3.105
    • Err codemadness.org 70 i 17167
    • go-wtf (sysutils/go-wtf) : 0.20.0_1
    • Err codemadness.org 70 i 17168
    • instead (games/instead) : 3.3.0_1
    • Err codemadness.org 70 i 17169
    • lidarr (net-p2p/lidarr) : 0.6.2.883
    • Err codemadness.org 70 i 17170
    • minerbold (games/minerbold) : 1.4
    • Err codemadness.org 70 i 17171
    • onnx (math/onnx) : 1.5.0
    • Err codemadness.org 70 i 17172
    • openzwave-devel (comms/openzwave-devel) : 1.6.897
    • Err codemadness.org 70 i 17173
    • polkit-qt-1 (sysutils/polkit-qt) : 0.113.0_8
    • Err codemadness.org 70 i 17174
    • py36-traitsui (graphics/py-traitsui) : 6.1.2
    • Err codemadness.org 70 i 17175
    • rubygem-aws-sigv2 (devel/rubygem-aws-sigv2) : 1.0.1
    • Err codemadness.org 70 i 17176
    • rubygem-default_value_for32 (devel/rubygem-default_value_for32) : 3.2.0
    • Err codemadness.org 70 i 17177
    • rubygem-ffi110 (devel/rubygem-ffi110) : 1.10.0
    • Err codemadness.org 70 i 17178
    • rubygem-zeitwerk (devel/rubygem-zeitwerk) : 2.1.9
    • Err codemadness.org 70 i 17179
    • sems (net/sems) : 1.7.0.g20190822
    • Err codemadness.org 70 i 17180
    • skypat (devel/skypat) : 3.1.1
    • Err codemadness.org 70 i 17181
    • tvm (math/tvm) : 0.4.1440
    • Err codemadness.org 70 i 17182
    • vavoom (games/vavoom) : 1.33_15
    • Err codemadness.org 70 i 17183
    • vavoom-extras (games/vavoom-extras) : 1.30_4
    • Err codemadness.org 70 i 17184
  • Err codemadness.org 70 i 17185
  • Deleted Packages (24)

    Err codemadness.org 70 i 17186 Err codemadness.org 70 i 17187
      Err codemadness.org 70 i 17188
    • geeqie (graphics/geeqie) : Unknown reason
    • Err codemadness.org 70 i 17189
    • iriverter (multimedia/iriverter) : Unknown reason
    • Err codemadness.org 70 i 17190
    • kde5 (x11/kde5) : Unknown reason
    • Err codemadness.org 70 i 17191
    • kicad-doc (cad/kicad-doc) : Unknown reason
    • Err codemadness.org 70 i 17192
    • os-nozfs-buildworld (os/buildworld) : Unknown reason
    • Err codemadness.org 70 i 17193
    • os-nozfs-userland (os/userland) : Unknown reason
    • Err codemadness.org 70 i 17194
    • os-nozfs-userland-base (os/userland-base) : Unknown reason
    • Err codemadness.org 70 i 17195
    • os-nozfs-userland-base-bootstrap (os/userland-base-bootstrap) : Unknown reason
    • Err codemadness.org 70 i 17196
    • os-nozfs-userland-bin (os/userland-bin) : Unknown reason
    • Err codemadness.org 70 i 17197
    • os-nozfs-userland-boot (os/userland-boot) : Unknown reason
    • Err codemadness.org 70 i 17198
    • os-nozfs-userland-conf (os/userland-conf) : Unknown reason
    • Err codemadness.org 70 i 17199
    • os-nozfs-userland-debug (os/userland-debug) : Unknown reason
    • Err codemadness.org 70 i 17200
    • os-nozfs-userland-devtools (os/userland-devtools) : Unknown reason
    • Err codemadness.org 70 i 17201
    • os-nozfs-userland-docs (os/userland-docs) : Unknown reason
    • Err codemadness.org 70 i 17202
    • os-nozfs-userland-lib (os/userland-lib) : Unknown reason
    • Err codemadness.org 70 i 17203
    • os-nozfs-userland-lib32 (os/userland-lib32) : Unknown reason
    • Err codemadness.org 70 i 17204
    • os-nozfs-userland-lib32-development (os/userland-lib32-development) : Unknown reason
    • Err codemadness.org 70 i 17205
    • os-nozfs-userland-rescue (os/userland-rescue) : Unknown reason
    • Err codemadness.org 70 i 17206
    • os-nozfs-userland-sbin (os/userland-sbin) : Unknown reason
    • Err codemadness.org 70 i 17207
    • os-nozfs-userland-tests (os/userland-tests) : Unknown reason
    • Err codemadness.org 70 i 17208
    • photoprint (print/photoprint) : Unknown reason
    • Err codemadness.org 70 i 17209
    • plasma5-plasma (x11/plasma5-plasma) : Unknown reason
    • Err codemadness.org 70 i 17210
    • polkit-qt5 (sysutils/polkit-qt) : Unknown reason
    • Err codemadness.org 70 i 17211
    • secpanel (security/secpanel) : Unknown reason
    • Err codemadness.org 70 i 17212
  • Err codemadness.org 70 i 17213
Err codemadness.org 70 i 17214 Err codemadness.org 70 i 17215
Err codemadness.org 70 i 17216 Err codemadness.org 70 i 17217

Beastie Bits

Err codemadness.org 70 i 17218 Err codemadness.org 70 i 17219 Err codemadness.org 70 i 17228 Err codemadness.org 70 i 17229
Err codemadness.org 70 i 17230 Err codemadness.org 70 i 17231

Feedback/Questions

Err codemadness.org 70 i 17232 Err codemadness.org 70 i 17233
    Err codemadness.org 70 i 17234
  • Reinis - GELI with UEFI
  • Err codemadness.org 70 i 17235
  • Mason - Beeping
  • Err codemadness.org 70 i 17236
Err codemadness.org 70 i 17237 Err codemadness.org 70 i 17238

[CHVT feedback]
Err codemadness.org 70 i 17239 DJ - Feedback
Err codemadness.org 70 i 17240 Ben - chvt
Err codemadness.org 70 i 17241 Harri - Marc's chvt question

Err codemadness.org 70 i 17242 Err codemadness.org 70 i 17243
Err codemadness.org 70 i 17244 Err codemadness.org 70 i 17245
    Err codemadness.org 70 i 17246
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 17247
Err codemadness.org 70 i 17248 Err codemadness.org 70 i 17249
Err codemadness.org 70 i 17250 Err codemadness.org 70 i 17251 ]]> Err codemadness.org 70 i 17255
Err codemadness.org 70 i 17256 https://fireside.fm/player/v2/FYhhasNR+AdKpSAYm Err codemadness.org 70 i 17257 Err codemadness.org 70 i 17258 ]]> Err codemadness.org 70 i 17259 Err codemadness.org 70 i 17260
Err codemadness.org 70 i 17261 Err codemadness.org 70 i 17262 315: Recapping vBSDcon 2019 Err codemadness.org 70 i 17263 https://www.bsdnow.tv/315 Err codemadness.org 70 i 17264 7b9117e9-57d1-48ae-8ceb-d92cabe2a2bd Err codemadness.org 70 i 17265 Wed, 11 Sep 2019 22:45:00 -0700 Err codemadness.org 70 i 17266 Allan Jude Err codemadness.org 70 i 17267 Err codemadness.org 70 i 17268 full Err codemadness.org 70 i 17269 Allan Jude Err codemadness.org 70 i 17270 vBSDcon 2019 recap, Unix at 50, OpenBSD on fan-less Tuxedo InfinityBook, humungus - an hg server, how to configure a network dump in FreeBSD, and more. Err codemadness.org 70 i 17271 1:16:55 Err codemadness.org 70 i 17272 no Err codemadness.org 70 i 17273 Err codemadness.org 70 i 17274 vBSDcon 2019 recap, Unix at 50, OpenBSD on fan-less Tuxedo InfinityBook, humungus - an hg server, how to configure a network dump in FreeBSD, and more. Err codemadness.org 70 i 17275 Headlines Err codemadness.org 70 i 17276 vBSDcon Recap Err codemadness.org 70 i 17277 Allan and Benedict attended vBSDcon 2019, which ended last week. Err codemadness.org 70 i 17278 It was held again at the Hyatt Regency Reston and the main conference was organized by Dan Langille of BSDCan fame.The two day conference was preceded by a one day FreeBSD hackathon, where FreeBSD developers had the chance to work on patches and PRs. In the evening, a reception was held to welcome attendees and give them a chance to chat and get to know each other over food and drinks. Err codemadness.org 70 i 17279 The first day of the conference was opened with a Keynote by Paul Vixie about DNS over HTTPS (DoH). He explained how we got to the current state and what challenges (technical and social) this entails. Err codemadness.org 70 i 17280 If you missed this talk and are dying to see it, it will also be presented at EuroBSDCon next week Err codemadness.org 70 i 17281 John Baldwin followed up by giving an overview of the work on “In-Kernel TLS Framing and Encryption for FreeBSD” abstract (https://www.vbsdcon.com/schedule/2019-09-06.html#talk:132615) and the recent commit we covered in episode 313. Err codemadness.org 70 i 17282 Meanwhile, Brian Callahan was giving a separate session in another room about “Learning to (Open)BSD through its porting system: an attendee-driven educational session” where people had the chance to learn about how to create ports for the BSDs. Err codemadness.org 70 i 17283 David Fullard’s talk about “Transitioning from FreeNAS to FreeBSD” was his first talk at a BSD conference and described how he built his own home NAS setup trying to replicate FreeNAS’ functionality on FreeBSD, and why he transitioned from using an appliance to using vanilla FreeBSD. Err codemadness.org 70 i 17284 Shawn Webb followed with his overview talk about the “State of the Hardened Union”. Err codemadness.org 70 i 17285 Benedict’s talk about “Replacing an Oracle Server with FreeBSD, OpenZFS, and PostgreSQL” was well received as people are interested in how we liberated ourselves from the clutches of Oracle without compromising functionality. Err codemadness.org 70 i 17286 Entertaining and educational at the same time, Michael W. Lucas talk about “Twenty Years in Jail: FreeBSD Jails, Then and Now” closed the first day. Lucas also had a table in the hallway with his various tech and non-tech books for sale. Err codemadness.org 70 i 17287 People formed small groups and went into town for dinner. Some returned later that night to some work in the hacker lounge or talk amongst fellow BSD enthusiasts. Err codemadness.org 70 i 17288 Colin Percival was the keynote speaker for the second day and had an in-depth look at “23 years of software side channel attacks”. Err codemadness.org 70 i 17289 Allan reprised his “ELI5: ZFS Caching” talk explaining how the ZFS adaptive replacement cache (ARC) work and how it can be tuned for various workloads. Err codemadness.org 70 i 17290 “By the numbers: ZFS Performance Results from Six Operating Systems and Their Derivatives” by Michael Dexter followed with his approach to benchmarking OpenZFS on various platforms. Err codemadness.org 70 i 17291 Conor Beh was also a new speaker to vBSDcon. His talk was about “FreeBSD at Work: Building Network and Storage Infrastructure with pfSense and FreeNAS”. Err codemadness.org 70 i 17292 Two OpenBSD talks closed the talk session: Kurt Mosiejczuk with “Care and Feeding of OpenBSD Porters” and Aaron Poffenberger with “Road Warrior Disaster Recovery: Secure, Synchronized, and Backed-up”. Err codemadness.org 70 i 17293 A dinner and reception was enjoyed by the attendees and gave more time to discuss the talks given and other things until late at night. Err codemadness.org 70 i 17294 We want to thank the vBSDcon organizers and especially Dan Langille for running such a great conference. We are grateful to Verisign as the main sponsor and The FreeBSD Foundation for sponsoring the tote bags. Thanks to all the speakers and attendees! Err codemadness.org 70 i 17295 humungus - an hg server (https://humungus.tedunangst.com/r/humungus) Err codemadness.org 70 i 17296 Features Err codemadness.org 70 i 17297 View changes, files, changesets, etc. Some syntax highlighting. Err codemadness.org 70 i 17298 Read only. Err codemadness.org 70 i 17299 Serves multiple repositories. Err codemadness.org 70 i 17300 Allows cloning via the obvious URL. Supports go get. Err codemadness.org 70 i 17301 Serves files for downloads. Err codemadness.org 70 i 17302 Online documentation via mandoc. Err codemadness.org 70 i 17303 Terminal based admin interface. Err codemadness.org 70 i 17304 News Roundup Err codemadness.org 70 i 17305 OpenBSD on fan-less Tuxedo InfinityBook 14″ v2. (https://hazardous.org/archive/blog/openbsd/2019/09/02/OpenBSD-on-Infinitybook14) Err codemadness.org 70 i 17306 The InfinityBook 14” v2 is a fanless 14” notebook. It is an excellent choice for running OpenBSD - but order it with the supported wireless card (see below.). Err codemadness.org 70 i 17307 I’ve set it up in a dual-boot configuration so that I can switch between Linux and OpenBSD - mainly to spot differences in the drivers. TUXEDO allows a variety of configurations through their webshop. Err codemadness.org 70 i 17308 The dual boot setup with grub2 and EFI boot will be covered in a separate blogpost. My tests were done with OpenBSD-current - which is as of writing flagged as 6.6-beta. Err codemadness.org 70 i 17309 See Article for breakdown of CPU, Wireless, Video, Webcam, Audio, ACPI, Battery, Touchpad, and MicroSD Card Reader Err codemadness.org 70 i 17310 Unix at 50: How the OS that powered smartphones started from failure (https://arstechnica.com/gadgets/2019/08/unix-at-50-it-starts-with-a-mainframe-a-gator-and-three-dedicated-researchers/) Err codemadness.org 70 i 17311 Maybe its pervasiveness has long obscured its origins. But Unix, the operating system that in one derivative or another powers nearly all smartphones sold worldwide, was born 50 years ago from the failure of an ambitious project that involved titans like Bell Labs, GE, and MIT. Largely the brainchild of a few programmers at Bell Labs, the unlikely story of Unix begins with a meeting on the top floor of an otherwise unremarkable annex at the sprawling Bell Labs complex in Murray Hill, New Jersey. Err codemadness.org 70 i 17312 It was a bright, cold Monday, the last day of March 1969, and the computer sciences department was hosting distinguished guests: Bill Baker, a Bell Labs vice president, and Ed David, the director of research. Baker was about to pull the plug on Multics (a condensed form of MULTiplexed Information and Computing Service), a software project that the computer sciences department had been working on for four years. Multics was two years overdue, way over budget, and functional only in the loosest possible understanding of the term. Err codemadness.org 70 i 17313 Trying to put the best spin possible on what was clearly an abject failure, Baker gave a speech in which he claimed that Bell Labs had accomplished everything it was trying to accomplish in Multics and that they no longer needed to work on the project. As Berk Tague, a staffer present at the meeting, later told Princeton University, “Like Vietnam, he declared victory and got out of Multics.” Err codemadness.org 70 i 17314 Within the department, this announcement was hardly unexpected. The programmers were acutely aware of the various issues with both the scope of the project and the computer they had been asked to build it for. Err codemadness.org 70 i 17315 Still, it was something to work on, and as long as Bell Labs was working on Multics, they would also have a $7 million mainframe computer to play around with in their spare time. Dennis Ritchie, one of the programmers working on Multics, later said they all felt some stake in the success of the project, even though they knew the odds of that success were exceedingly remote. Err codemadness.org 70 i 17316 Cancellation of Multics meant the end of the only project that the programmers in the Computer science department had to work on—and it also meant the loss of the only computer in the Computer science department. After the GE 645 mainframe was taken apart and hauled off, the computer science department’s resources were reduced to little more than office supplies and a few terminals. Err codemadness.org 70 i 17317 Some of Allan’s favourite excerpts: Err codemadness.org 70 i 17318 In the early '60s, Bill Ninke, a researcher in acoustics, had demonstrated a rudimentary graphical user interface with a DEC PDP-7 minicomputer. Acoustics still had that computer, but they weren’t using it and had stuck it somewhere out of the way up on the sixth floor. Err codemadness.org 70 i 17319 And so Thompson, an indefatigable explorer of the labs’ nooks and crannies, finally found that PDP-7 shortly after Davis and Baker cancelled Multics. Err codemadness.org 70 i 17320 With the rest of the team’s help, Thompson bundled up the various pieces of the PDP-7—a machine about the size of a refrigerator, not counting the terminal—moved it into a closet assigned to the acoustics department, and got it up and running. One way or another, they convinced acoustics to provide space for the computer and also to pay for the not infrequent repairs to it out of that department’s budget. Err codemadness.org 70 i 17321 McIlroy’s programmers suddenly had a computer, kind of. So during the summer of 1969, Thompson, Ritchie, and Canaday hashed out the basics of a file manager that would run on the PDP-7. This was no simple task. Batch computing—running programs one after the other—rarely required that a computer be able to permanently store information, and many mainframes did not have any permanent storage device (whether a tape or a hard disk) attached to them. But the time-sharing environment that these programmers had fallen in love with required attached storage. And with multiple users connected to the same computer at the same time, the file manager had to be written well enough to keep one user’s files from being written over another user’s. When a file was read, the output from that file had to be sent to the user that was opening it. Err codemadness.org 70 i 17322 It was a challenge that McIlroy’s team was willing to accept. They had seen the future of computing and wanted to explore it. They knew that Multics was a dead-end, but they had discovered the possibilities opened up by shared development, shared access, and real-time computing. Twenty years later, Ritchie characterized it for Princeton as such: “What we wanted to preserve was not just a good environment in which to do programming, but a system around which a fellowship could form.” Err codemadness.org 70 i 17323 Eventually when they had the file management system more or less fleshed out conceptually, it came time to actually write the code. The trio—all of whom had terrible handwriting—decided to use the Labs’ dictating service. One of them called up a lab extension and dictated the entire code base into a tape recorder. And thus, some unidentified clerical worker or workers soon had the unenviable task of trying to convert that into a typewritten document. Err codemadness.org 70 i 17324 Of course, it was done imperfectly. Among various errors, “inode” came back as “eye node,” but the output was still viewed as a decided improvement over their assorted scribbles. Err codemadness.org 70 i 17325 In August 1969, Thompson’s wife and son went on a three-week vacation to see her family out in Berkeley, and Thompson decided to spend that time writing an assembler, a file editor, and a kernel to manage the PDP-7 processor. This would turn the group’s file manager into a full-fledged operating system. He generously allocated himself one week for each task. Err codemadness.org 70 i 17326 Thompson finished his tasks more or less on schedule. And by September, the computer science department at Bell Labs had an operating system running on a PDP-7—and it wasn’t Multics. Err codemadness.org 70 i 17327 By the summer of 1970, the team had attached a tape drive to the PDP-7, and their blossoming OS also had a growing selection of tools for programmers (several of which persist down to this day). But despite the successes, Thompson, Canaday, and Ritchie were still being rebuffed by labs management in their efforts to get a brand-new computer. Err codemadness.org 70 i 17328 It wasn’t until late 1971 that the computer science department got a truly modern computer. The Unix team had developed several tools designed to automatically format text files for printing over the past year or so. They had done so to simplify the production of documentation for their pet project, but their tools had escaped and were being used by several researchers elsewhere on the top floor. At the same time, the legal department was prepared to spend a fortune on a mainframe program called “AstroText.” Catching wind of this, the Unix crew realized that they could, with only a little effort, upgrade the tools they had written for their own use into something that the legal department could use to prepare patent applications. Err codemadness.org 70 i 17329 The computer science department pitched lab management on the purchase of a DEC PDP-11 for document production purposes, and Max Mathews offered to pay for the machine out of the acoustics department budget. Finally, management gave in and purchased a computer for the Unix team to play with. Eventually, word leaked out about this operating system, and businesses and institutions with PDP-11s began contacting Bell Labs about their new operating system. The Labs made it available for free—requesting only the cost of postage and media from anyone who wanted a copy. Err codemadness.org 70 i 17330 The rest has quite literally made tech history. Err codemadness.org 70 i 17331 See the link for the rest of the article Err codemadness.org 70 i 17332 How to configure a network dump in FreeBSD? (https://www.oshogbo.vexillium.org/blog/68/) Err codemadness.org 70 i 17333 A network dump might be very useful for collecting kernel crash dumps from embedded machines and machines with a larger amount of RAM then available swap partition size. Besides net dumps we can also try to compress the core dump. However, often this may still not be enough swap to keep whole core dump. In such situation using network dump is a convenient and reliable way for collecting kernel dump. Err codemadness.org 70 i 17334 So, first, let’s talk a little bit about history. The first implementation of the network dumps was implemented around 2000 for the FreeBSD 4.x as a kernel module. The code was implemented in 2010 with the intention of being part of FreeBSD 9.0. However, the code never landed in FreeBSD. Finally, in 2018 with the commit r333283 by Mark Johnston the netdump client code landed in the FreeBSD. Subsequently, many other commitments were then implemented to add support for the different drivers (for example r333289). The first official release of FreeBSD, which support netdump is FreeBSD 12.0. Err codemadness.org 70 i 17335 Now, let’s get back to the main topic. How to configure the network dump? Two machines are needed. One machine is to collect core dump, let’s call it server. We will use the second one to send us the core dump - the client. Err codemadness.org 70 i 17336 See the link for the rest of the article Err codemadness.org 70 i 17337 Beastie Bits Err codemadness.org 70 i 17338 Sudo Mastery 2nd edition is not out (https://mwl.io/archives/4530) Err codemadness.org 70 i 17339 Empirical Notes on the Interaction Between Continuous Kernel Fuzzing and Development (http://users.utu.fi/kakrind/publications/19/vulnfuzz_camera.pdf) Err codemadness.org 70 i 17340 soso (https://github.com/ozkl/soso) Err codemadness.org 70 i 17341 GregKH - OpenBSD was right (https://youtu.be/gUqcMs0svNU?t=254) Err codemadness.org 70 i 17342 Game of Trees (https://gameoftrees.org/faq.html) Err codemadness.org 70 i 17343 Feedback/Questions Err codemadness.org 70 i 17344 BostJan - Another Question (http://dpaste.com/1ZPCCQY#wrap) Err codemadness.org 70 i 17345 Tom - PF (http://dpaste.com/3ZSCB8N#wrap) Err codemadness.org 70 i 17346 JohnnyK - Changing VT without keys (http://dpaste.com/3QZQ7Q5#wrap) Err codemadness.org 70 i 17347 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 17348 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 17349 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0315.mp4" type="video/mp4"> Err codemadness.org 70 i 17350 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 17351 </video> Err codemadness.org 70 i 17352 Err codemadness.org 70 i 17353 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, vBSDcon 2019, fan-less, fanless, tuxedo, infinitybook, tuxedo infinitybook, humungus, hg, hg server, network dump, configure, configuration Err codemadness.org 70 i 17354 Err codemadness.org 70 i 17355 vBSDcon 2019 recap, Unix at 50, OpenBSD on fan-less Tuxedo InfinityBook, humungus - an hg server, how to configure a network dump in FreeBSD, and more.

Err codemadness.org 70 i 17356 Err codemadness.org 70 i 17357

Headlines

Err codemadness.org 70 i 17358 Err codemadness.org 70 i 17359

vBSDcon Recap

Err codemadness.org 70 i 17360 Err codemadness.org 70 i 17361

Allan and Benedict attended vBSDcon 2019, which ended last week.

Err codemadness.org 70 i 17362 Err codemadness.org 70 i 17363

It was held again at the Hyatt Regency Reston and the main conference was organized by Dan Langille of BSDCan fame.The two day conference was preceded by a one day FreeBSD hackathon, where FreeBSD developers had the chance to work on patches and PRs. In the evening, a reception was held to welcome attendees and give them a chance to chat and get to know each other over food and drinks.

Err codemadness.org 70 i 17364 Err codemadness.org 70 i 17365

The first day of the conference was opened with a Keynote by Paul Vixie about DNS over HTTPS (DoH). He explained how we got to the current state and what challenges (technical and social) this entails.

Err codemadness.org 70 i 17366 Err codemadness.org 70 i 17367
    Err codemadness.org 70 i 17368
  • If you missed this talk and are dying to see it, it will also be presented at EuroBSDCon next week
  • Err codemadness.org 70 i 17369
Err codemadness.org 70 i 17370 Err codemadness.org 70 i 17371

John Baldwin followed up by giving an overview of the work on “In-Kernel TLS Framing and Encryption for FreeBSD” abstract and the recent commit we covered in episode 313.

Err codemadness.org 70 i 17372 Err codemadness.org 70 i 17373

Meanwhile, Brian Callahan was giving a separate session in another room about “Learning to (Open)BSD through its porting system: an attendee-driven educational session” where people had the chance to learn about how to create ports for the BSDs.

Err codemadness.org 70 i 17374 Err codemadness.org 70 i 17375

David Fullard’s talk about “Transitioning from FreeNAS to FreeBSD” was his first talk at a BSD conference and described how he built his own home NAS setup trying to replicate FreeNAS’ functionality on FreeBSD, and why he transitioned from using an appliance to using vanilla FreeBSD.

Err codemadness.org 70 i 17376 Err codemadness.org 70 i 17377

Shawn Webb followed with his overview talk about the “State of the Hardened Union”.

Err codemadness.org 70 i 17378 Err codemadness.org 70 i 17379

Benedict’s talk about “Replacing an Oracle Server with FreeBSD, OpenZFS, and PostgreSQL” was well received as people are interested in how we liberated ourselves from the clutches of Oracle without compromising functionality.

Err codemadness.org 70 i 17380 Err codemadness.org 70 i 17381

Entertaining and educational at the same time, Michael W. Lucas talk about “Twenty Years in Jail: FreeBSD Jails, Then and Now” closed the first day. Lucas also had a table in the hallway with his various tech and non-tech books for sale.

Err codemadness.org 70 i 17382 Err codemadness.org 70 i 17383

People formed small groups and went into town for dinner. Some returned later that night to some work in the hacker lounge or talk amongst fellow BSD enthusiasts.

Err codemadness.org 70 i 17384 Err codemadness.org 70 i 17385

Colin Percival was the keynote speaker for the second day and had an in-depth look at “23 years of software side channel attacks”.

Err codemadness.org 70 i 17386 Err codemadness.org 70 i 17387

Allan reprised his “ELI5: ZFS Caching” talk explaining how the ZFS adaptive replacement cache (ARC) work and how it can be tuned for various workloads.

Err codemadness.org 70 i 17388 Err codemadness.org 70 i 17389

“By the numbers: ZFS Performance Results from Six Operating Systems and Their Derivatives” by Michael Dexter followed with his approach to benchmarking OpenZFS on various platforms.

Err codemadness.org 70 i 17390 Err codemadness.org 70 i 17391

Conor Beh was also a new speaker to vBSDcon. His talk was about “FreeBSD at Work: Building Network and Storage Infrastructure with pfSense and FreeNAS”.

Err codemadness.org 70 i 17392 Err codemadness.org 70 i 17393

Two OpenBSD talks closed the talk session: Kurt Mosiejczuk with “Care and Feeding of OpenBSD Porters” and Aaron Poffenberger with “Road Warrior Disaster Recovery: Secure, Synchronized, and Backed-up”.

Err codemadness.org 70 i 17394 Err codemadness.org 70 i 17395

A dinner and reception was enjoyed by the attendees and gave more time to discuss the talks given and other things until late at night.

Err codemadness.org 70 i 17396 Err codemadness.org 70 i 17397

We want to thank the vBSDcon organizers and especially Dan Langille for running such a great conference. We are grateful to Verisign as the main sponsor and The FreeBSD Foundation for sponsoring the tote bags. Thanks to all the speakers and attendees!

Err codemadness.org 70 i 17398 Err codemadness.org 70 i 17399

humungus - an hg server

Err codemadness.org 70 i 17400 Err codemadness.org 70 i 17401
    Err codemadness.org 70 i 17402
  • Features Err codemadness.org 70 i 17403 Err codemadness.org 70 i 17404
      Err codemadness.org 70 i 17405
    • View changes, files, changesets, etc. Some syntax highlighting.
    • Err codemadness.org 70 i 17406
    • Read only.
    • Err codemadness.org 70 i 17407
    • Serves multiple repositories.
    • Err codemadness.org 70 i 17408
    • Allows cloning via the obvious URL. Supports go get.
    • Err codemadness.org 70 i 17409
    • Serves files for downloads.
    • Err codemadness.org 70 i 17410
    • Online documentation via mandoc.
    • Err codemadness.org 70 i 17411
    • Terminal based admin interface.
    • Err codemadness.org 70 i 17412
  • Err codemadness.org 70 i 17413
Err codemadness.org 70 i 17414 Err codemadness.org 70 i 17415
Err codemadness.org 70 i 17416 Err codemadness.org 70 i 17417

News Roundup

Err codemadness.org 70 i 17418 Err codemadness.org 70 i 17419

OpenBSD on fan-less Tuxedo InfinityBook 14″ v2.

Err codemadness.org 70 i 17420 Err codemadness.org 70 i 17421
Err codemadness.org 70 i 17422

The InfinityBook 14” v2 is a fanless 14” notebook. It is an excellent choice for running OpenBSD - but order it with the supported wireless card (see below.).

Err codemadness.org 70 i 17423 Err codemadness.org 70 i 17424

I’ve set it up in a dual-boot configuration so that I can switch between Linux and OpenBSD - mainly to spot differences in the drivers. TUXEDO allows a variety of configurations through their webshop.

Err codemadness.org 70 i 17425 Err codemadness.org 70 i 17426

The dual boot setup with grub2 and EFI boot will be covered in a separate blogpost. My tests were done with OpenBSD-current - which is as of writing flagged as 6.6-beta.

Err codemadness.org 70 i 17427
Err codemadness.org 70 i 17428 Err codemadness.org 70 i 17429
    Err codemadness.org 70 i 17430
  • See Article for breakdown of CPU, Wireless, Video, Webcam, Audio, ACPI, Battery, Touchpad, and MicroSD Card Reader
  • Err codemadness.org 70 i 17431
Err codemadness.org 70 i 17432 Err codemadness.org 70 i 17433
Err codemadness.org 70 i 17434 Err codemadness.org 70 i 17435

Unix at 50: How the OS that powered smartphones started from failure

Err codemadness.org 70 i 17436 Err codemadness.org 70 i 17437
Err codemadness.org 70 i 17438

Maybe its pervasiveness has long obscured its origins. But Unix, the operating system that in one derivative or another powers nearly all smartphones sold worldwide, was born 50 years ago from the failure of an ambitious project that involved titans like Bell Labs, GE, and MIT. Largely the brainchild of a few programmers at Bell Labs, the unlikely story of Unix begins with a meeting on the top floor of an otherwise unremarkable annex at the sprawling Bell Labs complex in Murray Hill, New Jersey.

Err codemadness.org 70 i 17439 Err codemadness.org 70 i 17440

It was a bright, cold Monday, the last day of March 1969, and the computer sciences department was hosting distinguished guests: Bill Baker, a Bell Labs vice president, and Ed David, the director of research. Baker was about to pull the plug on Multics (a condensed form of MULTiplexed Information and Computing Service), a software project that the computer sciences department had been working on for four years. Multics was two years overdue, way over budget, and functional only in the loosest possible understanding of the term.

Err codemadness.org 70 i 17441 Err codemadness.org 70 i 17442

Trying to put the best spin possible on what was clearly an abject failure, Baker gave a speech in which he claimed that Bell Labs had accomplished everything it was trying to accomplish in Multics and that they no longer needed to work on the project. As Berk Tague, a staffer present at the meeting, later told Princeton University, “Like Vietnam, he declared victory and got out of Multics.”

Err codemadness.org 70 i 17443 Err codemadness.org 70 i 17444

Within the department, this announcement was hardly unexpected. The programmers were acutely aware of the various issues with both the scope of the project and the computer they had been asked to build it for.

Err codemadness.org 70 i 17445 Err codemadness.org 70 i 17446

Still, it was something to work on, and as long as Bell Labs was working on Multics, they would also have a $7 million mainframe computer to play around with in their spare time. Dennis Ritchie, one of the programmers working on Multics, later said they all felt some stake in the success of the project, even though they knew the odds of that success were exceedingly remote.

Err codemadness.org 70 i 17447 Err codemadness.org 70 i 17448

Cancellation of Multics meant the end of the only project that the programmers in the Computer science department had to work on—and it also meant the loss of the only computer in the Computer science department. After the GE 645 mainframe was taken apart and hauled off, the computer science department’s resources were reduced to little more than office supplies and a few terminals.

Err codemadness.org 70 i 17449
Err codemadness.org 70 i 17450 Err codemadness.org 70 i 17451
    Err codemadness.org 70 i 17452
  • Some of Allan’s favourite excerpts:
  • Err codemadness.org 70 i 17453
Err codemadness.org 70 i 17454 Err codemadness.org 70 i 17455
Err codemadness.org 70 i 17456

In the early '60s, Bill Ninke, a researcher in acoustics, had demonstrated a rudimentary graphical user interface with a DEC PDP-7 minicomputer. Acoustics still had that computer, but they weren’t using it and had stuck it somewhere out of the way up on the sixth floor.

Err codemadness.org 70 i 17457 Err codemadness.org 70 i 17458

And so Thompson, an indefatigable explorer of the labs’ nooks and crannies, finally found that PDP-7 shortly after Davis and Baker cancelled Multics.

Err codemadness.org 70 i 17459 Err codemadness.org 70 i 17460

With the rest of the team’s help, Thompson bundled up the various pieces of the PDP-7—a machine about the size of a refrigerator, not counting the terminal—moved it into a closet assigned to the acoustics department, and got it up and running. One way or another, they convinced acoustics to provide space for the computer and also to pay for the not infrequent repairs to it out of that department’s budget.

Err codemadness.org 70 i 17461 Err codemadness.org 70 i 17462

McIlroy’s programmers suddenly had a computer, kind of. So during the summer of 1969, Thompson, Ritchie, and Canaday hashed out the basics of a file manager that would run on the PDP-7. This was no simple task. Batch computing—running programs one after the other—rarely required that a computer be able to permanently store information, and many mainframes did not have any permanent storage device (whether a tape or a hard disk) attached to them. But the time-sharing environment that these programmers had fallen in love with required attached storage. And with multiple users connected to the same computer at the same time, the file manager had to be written well enough to keep one user’s files from being written over another user’s. When a file was read, the output from that file had to be sent to the user that was opening it.

Err codemadness.org 70 i 17463 Err codemadness.org 70 i 17464

It was a challenge that McIlroy’s team was willing to accept. They had seen the future of computing and wanted to explore it. They knew that Multics was a dead-end, but they had discovered the possibilities opened up by shared development, shared access, and real-time computing. Twenty years later, Ritchie characterized it for Princeton as such: “What we wanted to preserve was not just a good environment in which to do programming, but a system around which a fellowship could form.”

Err codemadness.org 70 i 17465 Err codemadness.org 70 i 17466

Eventually when they had the file management system more or less fleshed out conceptually, it came time to actually write the code. The trio—all of whom had terrible handwriting—decided to use the Labs’ dictating service. One of them called up a lab extension and dictated the entire code base into a tape recorder. And thus, some unidentified clerical worker or workers soon had the unenviable task of trying to convert that into a typewritten document.

Err codemadness.org 70 i 17467 Err codemadness.org 70 i 17468

Of course, it was done imperfectly. Among various errors, “inode” came back as “eye node,” but the output was still viewed as a decided improvement over their assorted scribbles.

Err codemadness.org 70 i 17469 Err codemadness.org 70 i 17470

In August 1969, Thompson’s wife and son went on a three-week vacation to see her family out in Berkeley, and Thompson decided to spend that time writing an assembler, a file editor, and a kernel to manage the PDP-7 processor. This would turn the group’s file manager into a full-fledged operating system. He generously allocated himself one week for each task.

Err codemadness.org 70 i 17471 Err codemadness.org 70 i 17472

Thompson finished his tasks more or less on schedule. And by September, the computer science department at Bell Labs had an operating system running on a PDP-7—and it wasn’t Multics.

Err codemadness.org 70 i 17473 Err codemadness.org 70 i 17474

By the summer of 1970, the team had attached a tape drive to the PDP-7, and their blossoming OS also had a growing selection of tools for programmers (several of which persist down to this day). But despite the successes, Thompson, Canaday, and Ritchie were still being rebuffed by labs management in their efforts to get a brand-new computer.

Err codemadness.org 70 i 17475 Err codemadness.org 70 i 17476

It wasn’t until late 1971 that the computer science department got a truly modern computer. The Unix team had developed several tools designed to automatically format text files for printing over the past year or so. They had done so to simplify the production of documentation for their pet project, but their tools had escaped and were being used by several researchers elsewhere on the top floor. At the same time, the legal department was prepared to spend a fortune on a mainframe program called “AstroText.” Catching wind of this, the Unix crew realized that they could, with only a little effort, upgrade the tools they had written for their own use into something that the legal department could use to prepare patent applications.

Err codemadness.org 70 i 17477 Err codemadness.org 70 i 17478

The computer science department pitched lab management on the purchase of a DEC PDP-11 for document production purposes, and Max Mathews offered to pay for the machine out of the acoustics department budget. Finally, management gave in and purchased a computer for the Unix team to play with. Eventually, word leaked out about this operating system, and businesses and institutions with PDP-11s began contacting Bell Labs about their new operating system. The Labs made it available for free—requesting only the cost of postage and media from anyone who wanted a copy.

Err codemadness.org 70 i 17479 Err codemadness.org 70 i 17480

The rest has quite literally made tech history.

Err codemadness.org 70 i 17481
Err codemadness.org 70 i 17482 Err codemadness.org 70 i 17483
    Err codemadness.org 70 i 17484
  • See the link for the rest of the article
  • Err codemadness.org 70 i 17485
Err codemadness.org 70 i 17486 Err codemadness.org 70 i 17487
Err codemadness.org 70 i 17488 Err codemadness.org 70 i 17489

How to configure a network dump in FreeBSD?

Err codemadness.org 70 i 17490 Err codemadness.org 70 i 17491
Err codemadness.org 70 i 17492

A network dump might be very useful for collecting kernel crash dumps from embedded machines and machines with a larger amount of RAM then available swap partition size. Besides net dumps we can also try to compress the core dump. However, often this may still not be enough swap to keep whole core dump. In such situation using network dump is a convenient and reliable way for collecting kernel dump.

Err codemadness.org 70 i 17493 Err codemadness.org 70 i 17494

So, first, let’s talk a little bit about history. The first implementation of the network dumps was implemented around 2000 for the FreeBSD 4.x as a kernel module. The code was implemented in 2010 with the intention of being part of FreeBSD 9.0. However, the code never landed in FreeBSD. Finally, in 2018 with the commit r333283 by Mark Johnston the netdump client code landed in the FreeBSD. Subsequently, many other commitments were then implemented to add support for the different drivers (for example r333289). The first official release of FreeBSD, which support netdump is FreeBSD 12.0.

Err codemadness.org 70 i 17495 Err codemadness.org 70 i 17496

Now, let’s get back to the main topic. How to configure the network dump? Two machines are needed. One machine is to collect core dump, let’s call it server. We will use the second one to send us the core dump - the client.

Err codemadness.org 70 i 17497
Err codemadness.org 70 i 17498 Err codemadness.org 70 i 17499
    Err codemadness.org 70 i 17500
  • See the link for the rest of the article
  • Err codemadness.org 70 i 17501
Err codemadness.org 70 i 17502 Err codemadness.org 70 i 17503
Err codemadness.org 70 i 17504 Err codemadness.org 70 i 17505

Beastie Bits

Err codemadness.org 70 i 17506 Err codemadness.org 70 i 17507 Err codemadness.org 70 i 17514 Err codemadness.org 70 i 17515
Err codemadness.org 70 i 17516 Err codemadness.org 70 i 17517

Feedback/Questions

Err codemadness.org 70 i 17518 Err codemadness.org 70 i 17519 Err codemadness.org 70 i 17524 Err codemadness.org 70 i 17525
Err codemadness.org 70 i 17526 Err codemadness.org 70 i 17527
    Err codemadness.org 70 i 17528
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 17529
Err codemadness.org 70 i 17530 Err codemadness.org 70 i 17531
Err codemadness.org 70 i 17532 Err codemadness.org 70 i 17533 ]]> Err codemadness.org 70 i 17537
Err codemadness.org 70 i 17538 Err codemadness.org 70 i 17539 vBSDcon 2019 recap, Unix at 50, OpenBSD on fan-less Tuxedo InfinityBook, humungus - an hg server, how to configure a network dump in FreeBSD, and more.

Err codemadness.org 70 i 17540 Err codemadness.org 70 i 17541

Headlines

Err codemadness.org 70 i 17542 Err codemadness.org 70 i 17543

vBSDcon Recap

Err codemadness.org 70 i 17544 Err codemadness.org 70 i 17545

Allan and Benedict attended vBSDcon 2019, which ended last week.

Err codemadness.org 70 i 17546 Err codemadness.org 70 i 17547

It was held again at the Hyatt Regency Reston and the main conference was organized by Dan Langille of BSDCan fame.The two day conference was preceded by a one day FreeBSD hackathon, where FreeBSD developers had the chance to work on patches and PRs. In the evening, a reception was held to welcome attendees and give them a chance to chat and get to know each other over food and drinks.

Err codemadness.org 70 i 17548 Err codemadness.org 70 i 17549

The first day of the conference was opened with a Keynote by Paul Vixie about DNS over HTTPS (DoH). He explained how we got to the current state and what challenges (technical and social) this entails.

Err codemadness.org 70 i 17550 Err codemadness.org 70 i 17551
    Err codemadness.org 70 i 17552
  • If you missed this talk and are dying to see it, it will also be presented at EuroBSDCon next week
  • Err codemadness.org 70 i 17553
Err codemadness.org 70 i 17554 Err codemadness.org 70 i 17555

John Baldwin followed up by giving an overview of the work on “In-Kernel TLS Framing and Encryption for FreeBSD” abstract and the recent commit we covered in episode 313.

Err codemadness.org 70 i 17556 Err codemadness.org 70 i 17557

Meanwhile, Brian Callahan was giving a separate session in another room about “Learning to (Open)BSD through its porting system: an attendee-driven educational session” where people had the chance to learn about how to create ports for the BSDs.

Err codemadness.org 70 i 17558 Err codemadness.org 70 i 17559

David Fullard’s talk about “Transitioning from FreeNAS to FreeBSD” was his first talk at a BSD conference and described how he built his own home NAS setup trying to replicate FreeNAS’ functionality on FreeBSD, and why he transitioned from using an appliance to using vanilla FreeBSD.

Err codemadness.org 70 i 17560 Err codemadness.org 70 i 17561

Shawn Webb followed with his overview talk about the “State of the Hardened Union”.

Err codemadness.org 70 i 17562 Err codemadness.org 70 i 17563

Benedict’s talk about “Replacing an Oracle Server with FreeBSD, OpenZFS, and PostgreSQL” was well received as people are interested in how we liberated ourselves from the clutches of Oracle without compromising functionality.

Err codemadness.org 70 i 17564 Err codemadness.org 70 i 17565

Entertaining and educational at the same time, Michael W. Lucas talk about “Twenty Years in Jail: FreeBSD Jails, Then and Now” closed the first day. Lucas also had a table in the hallway with his various tech and non-tech books for sale.

Err codemadness.org 70 i 17566 Err codemadness.org 70 i 17567

People formed small groups and went into town for dinner. Some returned later that night to some work in the hacker lounge or talk amongst fellow BSD enthusiasts.

Err codemadness.org 70 i 17568 Err codemadness.org 70 i 17569

Colin Percival was the keynote speaker for the second day and had an in-depth look at “23 years of software side channel attacks”.

Err codemadness.org 70 i 17570 Err codemadness.org 70 i 17571

Allan reprised his “ELI5: ZFS Caching” talk explaining how the ZFS adaptive replacement cache (ARC) work and how it can be tuned for various workloads.

Err codemadness.org 70 i 17572 Err codemadness.org 70 i 17573

“By the numbers: ZFS Performance Results from Six Operating Systems and Their Derivatives” by Michael Dexter followed with his approach to benchmarking OpenZFS on various platforms.

Err codemadness.org 70 i 17574 Err codemadness.org 70 i 17575

Conor Beh was also a new speaker to vBSDcon. His talk was about “FreeBSD at Work: Building Network and Storage Infrastructure with pfSense and FreeNAS”.

Err codemadness.org 70 i 17576 Err codemadness.org 70 i 17577

Two OpenBSD talks closed the talk session: Kurt Mosiejczuk with “Care and Feeding of OpenBSD Porters” and Aaron Poffenberger with “Road Warrior Disaster Recovery: Secure, Synchronized, and Backed-up”.

Err codemadness.org 70 i 17578 Err codemadness.org 70 i 17579

A dinner and reception was enjoyed by the attendees and gave more time to discuss the talks given and other things until late at night.

Err codemadness.org 70 i 17580 Err codemadness.org 70 i 17581

We want to thank the vBSDcon organizers and especially Dan Langille for running such a great conference. We are grateful to Verisign as the main sponsor and The FreeBSD Foundation for sponsoring the tote bags. Thanks to all the speakers and attendees!

Err codemadness.org 70 i 17582 Err codemadness.org 70 i 17583

humungus - an hg server

Err codemadness.org 70 i 17584 Err codemadness.org 70 i 17585
    Err codemadness.org 70 i 17586
  • Features Err codemadness.org 70 i 17587 Err codemadness.org 70 i 17588
      Err codemadness.org 70 i 17589
    • View changes, files, changesets, etc. Some syntax highlighting.
    • Err codemadness.org 70 i 17590
    • Read only.
    • Err codemadness.org 70 i 17591
    • Serves multiple repositories.
    • Err codemadness.org 70 i 17592
    • Allows cloning via the obvious URL. Supports go get.
    • Err codemadness.org 70 i 17593
    • Serves files for downloads.
    • Err codemadness.org 70 i 17594
    • Online documentation via mandoc.
    • Err codemadness.org 70 i 17595
    • Terminal based admin interface.
    • Err codemadness.org 70 i 17596
  • Err codemadness.org 70 i 17597
Err codemadness.org 70 i 17598 Err codemadness.org 70 i 17599
Err codemadness.org 70 i 17600 Err codemadness.org 70 i 17601

News Roundup

Err codemadness.org 70 i 17602 Err codemadness.org 70 i 17603

OpenBSD on fan-less Tuxedo InfinityBook 14″ v2.

Err codemadness.org 70 i 17604 Err codemadness.org 70 i 17605
Err codemadness.org 70 i 17606

The InfinityBook 14” v2 is a fanless 14” notebook. It is an excellent choice for running OpenBSD - but order it with the supported wireless card (see below.).

Err codemadness.org 70 i 17607 Err codemadness.org 70 i 17608

I’ve set it up in a dual-boot configuration so that I can switch between Linux and OpenBSD - mainly to spot differences in the drivers. TUXEDO allows a variety of configurations through their webshop.

Err codemadness.org 70 i 17609 Err codemadness.org 70 i 17610

The dual boot setup with grub2 and EFI boot will be covered in a separate blogpost. My tests were done with OpenBSD-current - which is as of writing flagged as 6.6-beta.

Err codemadness.org 70 i 17611
Err codemadness.org 70 i 17612 Err codemadness.org 70 i 17613
    Err codemadness.org 70 i 17614
  • See Article for breakdown of CPU, Wireless, Video, Webcam, Audio, ACPI, Battery, Touchpad, and MicroSD Card Reader
  • Err codemadness.org 70 i 17615
Err codemadness.org 70 i 17616 Err codemadness.org 70 i 17617
Err codemadness.org 70 i 17618 Err codemadness.org 70 i 17619

Unix at 50: How the OS that powered smartphones started from failure

Err codemadness.org 70 i 17620 Err codemadness.org 70 i 17621
Err codemadness.org 70 i 17622

Maybe its pervasiveness has long obscured its origins. But Unix, the operating system that in one derivative or another powers nearly all smartphones sold worldwide, was born 50 years ago from the failure of an ambitious project that involved titans like Bell Labs, GE, and MIT. Largely the brainchild of a few programmers at Bell Labs, the unlikely story of Unix begins with a meeting on the top floor of an otherwise unremarkable annex at the sprawling Bell Labs complex in Murray Hill, New Jersey.

Err codemadness.org 70 i 17623 Err codemadness.org 70 i 17624

It was a bright, cold Monday, the last day of March 1969, and the computer sciences department was hosting distinguished guests: Bill Baker, a Bell Labs vice president, and Ed David, the director of research. Baker was about to pull the plug on Multics (a condensed form of MULTiplexed Information and Computing Service), a software project that the computer sciences department had been working on for four years. Multics was two years overdue, way over budget, and functional only in the loosest possible understanding of the term.

Err codemadness.org 70 i 17625 Err codemadness.org 70 i 17626

Trying to put the best spin possible on what was clearly an abject failure, Baker gave a speech in which he claimed that Bell Labs had accomplished everything it was trying to accomplish in Multics and that they no longer needed to work on the project. As Berk Tague, a staffer present at the meeting, later told Princeton University, “Like Vietnam, he declared victory and got out of Multics.”

Err codemadness.org 70 i 17627 Err codemadness.org 70 i 17628

Within the department, this announcement was hardly unexpected. The programmers were acutely aware of the various issues with both the scope of the project and the computer they had been asked to build it for.

Err codemadness.org 70 i 17629 Err codemadness.org 70 i 17630

Still, it was something to work on, and as long as Bell Labs was working on Multics, they would also have a $7 million mainframe computer to play around with in their spare time. Dennis Ritchie, one of the programmers working on Multics, later said they all felt some stake in the success of the project, even though they knew the odds of that success were exceedingly remote.

Err codemadness.org 70 i 17631 Err codemadness.org 70 i 17632

Cancellation of Multics meant the end of the only project that the programmers in the Computer science department had to work on—and it also meant the loss of the only computer in the Computer science department. After the GE 645 mainframe was taken apart and hauled off, the computer science department’s resources were reduced to little more than office supplies and a few terminals.

Err codemadness.org 70 i 17633
Err codemadness.org 70 i 17634 Err codemadness.org 70 i 17635
    Err codemadness.org 70 i 17636
  • Some of Allan’s favourite excerpts:
  • Err codemadness.org 70 i 17637
Err codemadness.org 70 i 17638 Err codemadness.org 70 i 17639
Err codemadness.org 70 i 17640

In the early '60s, Bill Ninke, a researcher in acoustics, had demonstrated a rudimentary graphical user interface with a DEC PDP-7 minicomputer. Acoustics still had that computer, but they weren’t using it and had stuck it somewhere out of the way up on the sixth floor.

Err codemadness.org 70 i 17641 Err codemadness.org 70 i 17642

And so Thompson, an indefatigable explorer of the labs’ nooks and crannies, finally found that PDP-7 shortly after Davis and Baker cancelled Multics.

Err codemadness.org 70 i 17643 Err codemadness.org 70 i 17644

With the rest of the team’s help, Thompson bundled up the various pieces of the PDP-7—a machine about the size of a refrigerator, not counting the terminal—moved it into a closet assigned to the acoustics department, and got it up and running. One way or another, they convinced acoustics to provide space for the computer and also to pay for the not infrequent repairs to it out of that department’s budget.

Err codemadness.org 70 i 17645 Err codemadness.org 70 i 17646

McIlroy’s programmers suddenly had a computer, kind of. So during the summer of 1969, Thompson, Ritchie, and Canaday hashed out the basics of a file manager that would run on the PDP-7. This was no simple task. Batch computing—running programs one after the other—rarely required that a computer be able to permanently store information, and many mainframes did not have any permanent storage device (whether a tape or a hard disk) attached to them. But the time-sharing environment that these programmers had fallen in love with required attached storage. And with multiple users connected to the same computer at the same time, the file manager had to be written well enough to keep one user’s files from being written over another user’s. When a file was read, the output from that file had to be sent to the user that was opening it.

Err codemadness.org 70 i 17647 Err codemadness.org 70 i 17648

It was a challenge that McIlroy’s team was willing to accept. They had seen the future of computing and wanted to explore it. They knew that Multics was a dead-end, but they had discovered the possibilities opened up by shared development, shared access, and real-time computing. Twenty years later, Ritchie characterized it for Princeton as such: “What we wanted to preserve was not just a good environment in which to do programming, but a system around which a fellowship could form.”

Err codemadness.org 70 i 17649 Err codemadness.org 70 i 17650

Eventually when they had the file management system more or less fleshed out conceptually, it came time to actually write the code. The trio—all of whom had terrible handwriting—decided to use the Labs’ dictating service. One of them called up a lab extension and dictated the entire code base into a tape recorder. And thus, some unidentified clerical worker or workers soon had the unenviable task of trying to convert that into a typewritten document.

Err codemadness.org 70 i 17651 Err codemadness.org 70 i 17652

Of course, it was done imperfectly. Among various errors, “inode” came back as “eye node,” but the output was still viewed as a decided improvement over their assorted scribbles.

Err codemadness.org 70 i 17653 Err codemadness.org 70 i 17654

In August 1969, Thompson’s wife and son went on a three-week vacation to see her family out in Berkeley, and Thompson decided to spend that time writing an assembler, a file editor, and a kernel to manage the PDP-7 processor. This would turn the group’s file manager into a full-fledged operating system. He generously allocated himself one week for each task.

Err codemadness.org 70 i 17655 Err codemadness.org 70 i 17656

Thompson finished his tasks more or less on schedule. And by September, the computer science department at Bell Labs had an operating system running on a PDP-7—and it wasn’t Multics.

Err codemadness.org 70 i 17657 Err codemadness.org 70 i 17658

By the summer of 1970, the team had attached a tape drive to the PDP-7, and their blossoming OS also had a growing selection of tools for programmers (several of which persist down to this day). But despite the successes, Thompson, Canaday, and Ritchie were still being rebuffed by labs management in their efforts to get a brand-new computer.

Err codemadness.org 70 i 17659 Err codemadness.org 70 i 17660

It wasn’t until late 1971 that the computer science department got a truly modern computer. The Unix team had developed several tools designed to automatically format text files for printing over the past year or so. They had done so to simplify the production of documentation for their pet project, but their tools had escaped and were being used by several researchers elsewhere on the top floor. At the same time, the legal department was prepared to spend a fortune on a mainframe program called “AstroText.” Catching wind of this, the Unix crew realized that they could, with only a little effort, upgrade the tools they had written for their own use into something that the legal department could use to prepare patent applications.

Err codemadness.org 70 i 17661 Err codemadness.org 70 i 17662

The computer science department pitched lab management on the purchase of a DEC PDP-11 for document production purposes, and Max Mathews offered to pay for the machine out of the acoustics department budget. Finally, management gave in and purchased a computer for the Unix team to play with. Eventually, word leaked out about this operating system, and businesses and institutions with PDP-11s began contacting Bell Labs about their new operating system. The Labs made it available for free—requesting only the cost of postage and media from anyone who wanted a copy.

Err codemadness.org 70 i 17663 Err codemadness.org 70 i 17664

The rest has quite literally made tech history.

Err codemadness.org 70 i 17665
Err codemadness.org 70 i 17666 Err codemadness.org 70 i 17667
    Err codemadness.org 70 i 17668
  • See the link for the rest of the article
  • Err codemadness.org 70 i 17669
Err codemadness.org 70 i 17670 Err codemadness.org 70 i 17671
Err codemadness.org 70 i 17672 Err codemadness.org 70 i 17673

How to configure a network dump in FreeBSD?

Err codemadness.org 70 i 17674 Err codemadness.org 70 i 17675
Err codemadness.org 70 i 17676

A network dump might be very useful for collecting kernel crash dumps from embedded machines and machines with a larger amount of RAM then available swap partition size. Besides net dumps we can also try to compress the core dump. However, often this may still not be enough swap to keep whole core dump. In such situation using network dump is a convenient and reliable way for collecting kernel dump.

Err codemadness.org 70 i 17677 Err codemadness.org 70 i 17678

So, first, let’s talk a little bit about history. The first implementation of the network dumps was implemented around 2000 for the FreeBSD 4.x as a kernel module. The code was implemented in 2010 with the intention of being part of FreeBSD 9.0. However, the code never landed in FreeBSD. Finally, in 2018 with the commit r333283 by Mark Johnston the netdump client code landed in the FreeBSD. Subsequently, many other commitments were then implemented to add support for the different drivers (for example r333289). The first official release of FreeBSD, which support netdump is FreeBSD 12.0.

Err codemadness.org 70 i 17679 Err codemadness.org 70 i 17680

Now, let’s get back to the main topic. How to configure the network dump? Two machines are needed. One machine is to collect core dump, let’s call it server. We will use the second one to send us the core dump - the client.

Err codemadness.org 70 i 17681
Err codemadness.org 70 i 17682 Err codemadness.org 70 i 17683
    Err codemadness.org 70 i 17684
  • See the link for the rest of the article
  • Err codemadness.org 70 i 17685
Err codemadness.org 70 i 17686 Err codemadness.org 70 i 17687
Err codemadness.org 70 i 17688 Err codemadness.org 70 i 17689

Beastie Bits

Err codemadness.org 70 i 17690 Err codemadness.org 70 i 17691 Err codemadness.org 70 i 17698 Err codemadness.org 70 i 17699
Err codemadness.org 70 i 17700 Err codemadness.org 70 i 17701

Feedback/Questions

Err codemadness.org 70 i 17702 Err codemadness.org 70 i 17703 Err codemadness.org 70 i 17708 Err codemadness.org 70 i 17709
Err codemadness.org 70 i 17710 Err codemadness.org 70 i 17711
    Err codemadness.org 70 i 17712
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 17713
Err codemadness.org 70 i 17714 Err codemadness.org 70 i 17715
Err codemadness.org 70 i 17716 Err codemadness.org 70 i 17717 ]]> Err codemadness.org 70 i 17721
Err codemadness.org 70 i 17722 https://fireside.fm/player/v2/FYhhasNR+Ws5hqiZQ Err codemadness.org 70 i 17723 Err codemadness.org 70 i 17724 ]]> Err codemadness.org 70 i 17725 Err codemadness.org 70 i 17726
Err codemadness.org 70 i 17727 Err codemadness.org 70 i 17728 314: Swap that Space Err codemadness.org 70 i 17729 https://www.bsdnow.tv/314 Err codemadness.org 70 i 17730 a98d492a-7c4f-4f70-b6cf-388387042427 Err codemadness.org 70 i 17731 Wed, 04 Sep 2019 17:00:00 -0700 Err codemadness.org 70 i 17732 Allan Jude Err codemadness.org 70 i 17733 Err codemadness.org 70 i 17734 full Err codemadness.org 70 i 17735 Allan Jude Err codemadness.org 70 i 17736 Unix virtual memory when you have no swap space, Dsynth details on Dragonfly, Instant Workstation on FreeBSD, new servers new tech, Experimenting with streaming setups on NetBSD, NetBSD’s progress towards Steam support thanks to GSoC, and more. Err codemadness.org 70 i 17737 48:28 Err codemadness.org 70 i 17738 no Err codemadness.org 70 i 17739 Err codemadness.org 70 i 17740 Unix virtual memory when you have no swap space, Dsynth details on Dragonfly, Instant Workstation on FreeBSD, new servers new tech, Experimenting with streaming setups on NetBSD, NetBSD’s progress towards Steam support thanks to GSoC, and more. Err codemadness.org 70 i 17741 Headlines Err codemadness.org 70 i 17742 What has to happen with Unix virtual memory when you have no swap space (https://utcc.utoronto.ca/~cks/space/blog/unix/NoSwapConsequence) Err codemadness.org 70 i 17743 Recently, Artem S. Tashkinov wrote on the Linux kernel mailing list about a Linux problem under memory pressure (via, and threaded here). The specific reproduction instructions involved having low RAM, turning off swap space, and then putting the system under load, and when that happened (emphasis mine): Err codemadness.org 70 i 17744 Once you hit a situation when opening a new tab requires more RAM than is currently available, the system will stall hard. You will barely be able to move the mouse pointer. Your disk LED will be flashing incessantly (I'm not entirely sure why). [...] Err codemadness.org 70 i 17745 I'm afraid I have bad news for the people snickering at Linux here; if you're running without swap space, you can probably get any Unix to behave this way under memory pressure. If you can't on your particular Unix, I'd actually say that your Unix is probably not letting you get full use out of your RAM. Err codemadness.org 70 i 17746 To simplify a bit, we can divide pages of user memory up into anonymous pages and file-backed pages. File-backed pages are what they sound like; they come from some specific file on the filesystem that they can be written out to (if they're dirty) or read back in from. Anonymous pages are not backed by a file, so the only place they can be written out to and read back in from is swap space. Anonymous pages mostly come from dynamic memory allocations and from modifying the program's global variables and data; file backed pages come mostly from mapping files into memory with mmap() and also, crucially, from the code and read-only data of the program. Err codemadness.org 70 i 17747 See link for the rest of the article Err codemadness.org 70 i 17748 Dsynth details on Dragonfly (https://www.dragonflydigest.com/2019/08/27/23398.html) Err codemadness.org 70 i 17749 First, history: DragonFly has had binaries of dports available for download for quite some time. These were originally built using poudriere, and then using the synth tool put together by John Marino. Synth worked both to build all software in dports, and as a way to test DragonFly’s SMP capability under extreme load. Err codemadness.org 70 i 17750 Matthew Dillon is working on a new version, called dsynth. It is available now but not yet part of the build. He’s been working quickly on it and there’s plenty more commits than what I have linked here. It’s already led to finding more high-load fixes. Err codemadness.org 70 i 17751 dsynth Err codemadness.org 70 i 17752 DSynth is basically synth written in C, from scratch. It is designed to give us a bulk builder in base and be friendly to porting and jails down the line (for now its uses chroot's). Err codemadness.org 70 i 17753 The original synth was written by John R. Marino and its basic flow was used in writing this program, but as it was written in ada no code was directly copied. Err codemadness.org 70 i 17754 The intent is to make dsynth compatible with synth's configuration files and directory structure. Err codemadness.org 70 i 17755 This is a work in progress and not yet ready for prime-time. Pushing so we can get some more eyeballs. Most of the directives do not yet work (everything, and build works, and 'cleanup' can be used to clean up any dangling mounts). Err codemadness.org 70 i 17756 dsynth code (https://gitweb.dragonflybsd.org/dragonfly.git/blob/HEAD:/usr.bin/dsynth/dsynth.1) Err codemadness.org 70 i 17757 News Roundup Err codemadness.org 70 i 17758 Instant Workstation (https://euroquis.nl/freebsd/2019/08/12/instant-workstation.html) Err codemadness.org 70 i 17759 Some considerable time ago I wrote up instructions on how to set up a FreeBSD machine with the latest KDE Plasma Desktop. Those instructions, while fairly short (set up X, install the KDE meta-port, .. and that’s it) are a bit fiddly. Err codemadness.org 70 i 17760 So – prompted slightly by a Twitter exchange recently – I’ve started a mini-sub-project to script the installation of a desktop environment and the bits needed to support it. To give it at least a modicum of UI, dialog(1) is used to ask for an environment to install and a display manager. Err codemadness.org 70 i 17761 The tricky bits – pointed out to me after I started – are hardware support, although a best-effort is better than having nothing, I think. Err codemadness.org 70 i 17762 In any case, in a VBox host it’s now down to running a single script and picking Plasma and SDDM to get a usable system for me. Other combinations have not been tested, nor has system-hardware-setup. I’ll probably maintain it for a while and if I have time and energy it’ll be tried with nVidia (those work quite well on FreeBSD) and AMD (not so much, in my experience) graphics cards when I shuffle some machines around. Err codemadness.org 70 i 17763 Here is the script in my GitHub repository with notes-for-myself. (https://raw.githubusercontent.com/adriaandegroot/FreeBSDTools/master/bin/instant-workstation) Err codemadness.org 70 i 17764 New Servers, new Tech (https://www.dragonflydigest.com/2019/08/26/23396.html) Err codemadness.org 70 i 17765 Following up on an earlier post, the new servers for DragonFly are in place. The old 40-core machine used for bulk build, monster, is being retired. The power efficiency of the new machines is startling. Incidentally, this is where donations go – infrastructure. Err codemadness.org 70 i 17766 New servers in the colo, monster is being retired (http://lists.dragonflybsd.org/pipermail/users/2019-August/358271.html) Err codemadness.org 70 i 17767 We have three new servers in the colo now that will be taking most/all bulk package building duties from monster and the two blades (muscles and pkgbox64) that previously did the work. Monster will be retired. The new servers are a dual-socket Xeon (sting) and two 3900X based systems (thor and loki) which all together burn only around half the wattage that monster burned (500W vs 1000W) and 3 times the performance. That's at least a 6:1 improvement in performance efficiency. Err codemadness.org 70 i 17768 With SSD prices down significantly the new machines have all-SSDs. These new machines allow us to build dports binary packages for release, master, and staged at the same time and reduces the full-on bulk build times for getting all three done down from 2 weeks to 2 days. It will allow us to more promptly synchronize updates to ports with dports and get binary packages up sooner. Err codemadness.org 70 i 17769 Monster, our venerable 48-core quad-socket opteron is being retired. This was a wonderful dev machine for working on DragonFly's SMP algorithms over the last 6+ years precisely because its inter-core and inter-socket latencies were quite high. If a SMP algorithm wasn't spot-on, you could feel it. Over the years DragonFly's performance on monster in doing things like bulk builds increased radically as the SMP algorithms got better and the cores became more and more localized. This kept monster relevant far longer than I thought it would be. Err codemadness.org 70 i 17770 But we are at a point now where improvements in efficiency are just too good to ignore. Monster's quad-socket opteron (4 x 12 core 6168's) pulls 1000W under full load while a single Ryzen 3900X (12 core / 24 thread) in a server configuration pulls only 150W, and is slightly faster on the same workload to boot. Err codemadness.org 70 i 17771 I would like to thank everyone's generous donations over the last few years! We burned a few thousand on the new machines (as well as the major SSD upgrades we did to the blades) and made very good use of the money, particularly this year as prices for all major components (RAM, SSDs, CPUs, Mobos, etc) have dropped significantly. Err codemadness.org 70 i 17772 Experimenting with streaming setups on NetBSD (https://dressupgeekout.blogspot.com/2019/08/experimenting-with-streaming-setups-on.html?m=1) Err codemadness.org 70 i 17773 Ever since OBS was successfully ported to NetBSD, I’ve been trying it out, seeing what works and what doesn’t. I’ve only just gotten started, and there’ll definitely be a lot of tweaking going forward. Err codemadness.org 70 i 17774 Capturing a specific application’s windows seems to work okay. Capturing an entire display works, too. I actually haven’t tried streaming to Twitch or YouTube yet, but in a previous experiment a few weeks ago, I was able to run a FFmpeg command line and that could stream to Twitch mostly OK. Err codemadness.org 70 i 17775 My laptop combined with my external monitor allows me to have a dual-monitor setup wherein the smaller laptop screen can be my “broadcasting station” while the bigger screen is where all the action takes place. I can make OBS visible on all Xfce workspaces, but keep it tucked away on that display only. Altogether, the setup should let me use the big screen for the fun stuff but I can still monitor everything in the small screen. Err codemadness.org 70 i 17776 NetBSD Made Progress Thanks To GSoC In Its March Towards Steam Support (https://www.phoronix.com/scan.php?page=news_item&px=NetBSD-Linux-DRM-Ioctl-GSoC2019) Err codemadness.org 70 i 17777 Ultimately the goal is to get Valve's Steam client running on NetBSD using their Linux compatibility layer while the focus the past few months with Google Summer of Code 2019 were supporting the necessary DRM ioctls for allowing Linux software running on NetBSD to be able to tap accelerated graphics support. Err codemadness.org 70 i 17778 Student developer Surya P spent the summer working on compat_netbsd32 DRM interfaces to allow Direct Rendering Manager using applications running under their Linux compatibility layer. Err codemadness.org 70 i 17779 These interfaces have been tested and working as well as updating the "suse131" packages in NetBSD to make use of those interfaces. So the necessary interfaces are now in place for Linux software running on NetBSD to be able to use accelerated graphics though Steam itself isn't yet running on NetBSD with this layer. Err codemadness.org 70 i 17780 Those curious about this DRM ioctl GSoC project can learn more from the NetBSD blog (https://blog.netbsd.org/tnf/entry/gsoc_2019_report_implementation_of). NetBSD has also been seeing work this summer on Wayland support and better Wine support to ultimately make this BSD a better desktop operating system and potentially a comparable gaming platform to Linux. Err codemadness.org 70 i 17781 Beastie Bits Err codemadness.org 70 i 17782 FreeBSD in Wellington? (https://twitter.com/MengTangmu/status/1163265206660694016) Err codemadness.org 70 i 17783 FreeBSD on GFE (https://twitter.com/onewilshire/status/1163792878642114560) Err codemadness.org 70 i 17784 Clarification (https://twitter.com/onewilshire/status/1166323112620826624) Err codemadness.org 70 i 17785 Distrotest.net now with BSDs (https://distrotest.net/) Err codemadness.org 70 i 17786 Lecture: Anykernels meet fuzzing NetBSD (https://fahrplan.events.ccc.de/camp/2019/Fahrplan/events/10334.html) Err codemadness.org 70 i 17787 Sun Microsystems business plan from 1982 [pdf] (https://www.khoslaventures.com/wp-content/uploads/SunMicrosystem_bus_plan.pdf) Err codemadness.org 70 i 17788 Feedback/Questions Err codemadness.org 70 i 17789 Alan - Questions (http://dpaste.com/1Z8EGTW) Err codemadness.org 70 i 17790 Rodriguez - Feedback and a question (http://dpaste.com/2PZFP4X#wrap) Err codemadness.org 70 i 17791 Jeff - OpenZFS follow-up, FreeBSD Adventures (http://dpaste.com/02ZM6YE#wrap) Err codemadness.org 70 i 17792 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 17793 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 17794 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0314.mp4" type="video/mp4"> Err codemadness.org 70 i 17795 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 17796 </video> Err codemadness.org 70 i 17797 Err codemadness.org 70 i 17798 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, virtual memory, swap, swap space, VM, dsynth, workstation, servers, streaming, steam, gsoc Err codemadness.org 70 i 17799 Err codemadness.org 70 i 17800 Unix virtual memory when you have no swap space, Dsynth details on Dragonfly, Instant Workstation on FreeBSD, new servers new tech, Experimenting with streaming setups on NetBSD, NetBSD’s progress towards Steam support thanks to GSoC, and more.

Err codemadness.org 70 i 17801 Err codemadness.org 70 i 17802

Headlines

Err codemadness.org 70 i 17803 Err codemadness.org 70 i 17804

What has to happen with Unix virtual memory when you have no swap space

Err codemadness.org 70 i 17805 Err codemadness.org 70 i 17806
Err codemadness.org 70 i 17807

Recently, Artem S. Tashkinov wrote on the Linux kernel mailing list about a Linux problem under memory pressure (via, and threaded here). The specific reproduction instructions involved having low RAM, turning off swap space, and then putting the system under load, and when that happened (emphasis mine):

Err codemadness.org 70 i 17808 Err codemadness.org 70 i 17809

Once you hit a situation when opening a new tab requires more RAM than is currently available, the system will stall hard. You will barely be able to move the mouse pointer. Your disk LED will be flashing incessantly (I'm not entirely sure why). [...]

Err codemadness.org 70 i 17810 Err codemadness.org 70 i 17811

I'm afraid I have bad news for the people snickering at Linux here; if you're running without swap space, you can probably get any Unix to behave this way under memory pressure. If you can't on your particular Unix, I'd actually say that your Unix is probably not letting you get full use out of your RAM.

Err codemadness.org 70 i 17812 Err codemadness.org 70 i 17813

To simplify a bit, we can divide pages of user memory up into anonymous pages and file-backed pages. File-backed pages are what they sound like; they come from some specific file on the filesystem that they can be written out to (if they're dirty) or read back in from. Anonymous pages are not backed by a file, so the only place they can be written out to and read back in from is swap space. Anonymous pages mostly come from dynamic memory allocations and from modifying the program's global variables and data; file backed pages come mostly from mapping files into memory with mmap() and also, crucially, from the code and read-only data of the program.

Err codemadness.org 70 i 17814
Err codemadness.org 70 i 17815 Err codemadness.org 70 i 17816
    Err codemadness.org 70 i 17817
  • See link for the rest of the article
  • Err codemadness.org 70 i 17818
Err codemadness.org 70 i 17819 Err codemadness.org 70 i 17820
Err codemadness.org 70 i 17821 Err codemadness.org 70 i 17822

Dsynth details on Dragonfly

Err codemadness.org 70 i 17823 Err codemadness.org 70 i 17824
Err codemadness.org 70 i 17825

First, history: DragonFly has had binaries of dports available for download for quite some time. These were originally built using poudriere, and then using the synth tool put together by John Marino. Synth worked both to build all software in dports, and as a way to test DragonFly’s SMP capability under extreme load.

Err codemadness.org 70 i 17826 Err codemadness.org 70 i 17827

Matthew Dillon is working on a new version, called dsynth. It is available now but not yet part of the build. He’s been working quickly on it and there’s plenty more commits than what I have linked here. It’s already led to finding more high-load fixes.

Err codemadness.org 70 i 17828
Err codemadness.org 70 i 17829 Err codemadness.org 70 i 17830
    Err codemadness.org 70 i 17831
  • dsynth
  • Err codemadness.org 70 i 17832
Err codemadness.org 70 i 17833 Err codemadness.org 70 i 17834
Err codemadness.org 70 i 17835

DSynth is basically synth written in C, from scratch. It is designed to give us a bulk builder in base and be friendly to porting and jails down the line (for now its uses chroot's).

Err codemadness.org 70 i 17836 Err codemadness.org 70 i 17837

The original synth was written by John R. Marino and its basic flow was used in writing this program, but as it was written in ada no code was directly copied.

Err codemadness.org 70 i 17838 Err codemadness.org 70 i 17839
    Err codemadness.org 70 i 17840
  • The intent is to make dsynth compatible with synth's configuration files and directory structure.

  • Err codemadness.org 70 i 17841
  • This is a work in progress and not yet ready for prime-time. Pushing so we can get some more eyeballs. Most of the directives do not yet work (everything, and build works, and 'cleanup' can be used to clean up any dangling mounts).

  • Err codemadness.org 70 i 17842
Err codemadness.org 70 i 17843
Err codemadness.org 70 i 17844 Err codemadness.org 70 i 17845
    Err codemadness.org 70 i 17846
  • dsynth code
  • Err codemadness.org 70 i 17847
Err codemadness.org 70 i 17848 Err codemadness.org 70 i 17849
Err codemadness.org 70 i 17850 Err codemadness.org 70 i 17851

News Roundup

Err codemadness.org 70 i 17852 Err codemadness.org 70 i 17853

Instant Workstation

Err codemadness.org 70 i 17854 Err codemadness.org 70 i 17855
Err codemadness.org 70 i 17856

Some considerable time ago I wrote up instructions on how to set up a FreeBSD machine with the latest KDE Plasma Desktop. Those instructions, while fairly short (set up X, install the KDE meta-port, .. and that’s it) are a bit fiddly.

Err codemadness.org 70 i 17857 Err codemadness.org 70 i 17858

So – prompted slightly by a Twitter exchange recently – I’ve started a mini-sub-project to script the installation of a desktop environment and the bits needed to support it. To give it at least a modicum of UI, dialog(1) is used to ask for an environment to install and a display manager.

Err codemadness.org 70 i 17859 Err codemadness.org 70 i 17860

The tricky bits – pointed out to me after I started – are hardware support, although a best-effort is better than having nothing, I think.

Err codemadness.org 70 i 17861 Err codemadness.org 70 i 17862

In any case, in a VBox host it’s now down to running a single script and picking Plasma and SDDM to get a usable system for me. Other combinations have not been tested, nor has system-hardware-setup. I’ll probably maintain it for a while and if I have time and energy it’ll be tried with nVidia (those work quite well on FreeBSD) and AMD (not so much, in my experience) graphics cards when I shuffle some machines around.

Err codemadness.org 70 i 17863
Err codemadness.org 70 i 17864 Err codemadness.org 70 i 17865 Err codemadness.org 70 i 17868 Err codemadness.org 70 i 17869
Err codemadness.org 70 i 17870 Err codemadness.org 70 i 17871

New Servers, new Tech

Err codemadness.org 70 i 17872 Err codemadness.org 70 i 17873
Err codemadness.org 70 i 17874

Following up on an earlier post, the new servers for DragonFly are in place. The old 40-core machine used for bulk build, monster, is being retired. The power efficiency of the new machines is startling. Incidentally, this is where donations go – infrastructure.

Err codemadness.org 70 i 17875
Err codemadness.org 70 i 17876 Err codemadness.org 70 i 17877 Err codemadness.org 70 i 17880 Err codemadness.org 70 i 17881
Err codemadness.org 70 i 17882

We have three new servers in the colo now that will be taking most/all bulk package building duties from monster and the two blades (muscles and pkgbox64) that previously did the work. Monster will be retired. The new servers are a dual-socket Xeon (sting) and two 3900X based systems (thor and loki) which all together burn only around half the wattage that monster burned (500W vs 1000W) and 3 times the performance. That's at least a 6:1 improvement in performance efficiency.

Err codemadness.org 70 i 17883 Err codemadness.org 70 i 17884

With SSD prices down significantly the new machines have all-SSDs. These new machines allow us to build dports binary packages for release, master, and staged at the same time and reduces the full-on bulk build times for getting all three done down from 2 weeks to 2 days. It will allow us to more promptly synchronize updates to ports with dports and get binary packages up sooner.

Err codemadness.org 70 i 17885 Err codemadness.org 70 i 17886

Monster, our venerable 48-core quad-socket opteron is being retired. This was a wonderful dev machine for working on DragonFly's SMP algorithms over the last 6+ years precisely because its inter-core and inter-socket latencies were quite high. If a SMP algorithm wasn't spot-on, you could feel it. Over the years DragonFly's performance on monster in doing things like bulk builds increased radically as the SMP algorithms got better and the cores became more and more localized. This kept monster relevant far longer than I thought it would be.

Err codemadness.org 70 i 17887 Err codemadness.org 70 i 17888

But we are at a point now where improvements in efficiency are just too good to ignore. Monster's quad-socket opteron (4 x 12 core 6168's) pulls 1000W under full load while a single Ryzen 3900X (12 core / 24 thread) in a server configuration pulls only 150W, and is slightly faster on the same workload to boot.

Err codemadness.org 70 i 17889 Err codemadness.org 70 i 17890

I would like to thank everyone's generous donations over the last few years! We burned a few thousand on the new machines (as well as the major SSD upgrades we did to the blades) and made very good use of the money, particularly this year as prices for all major components (RAM, SSDs, CPUs, Mobos, etc) have dropped significantly.

Err codemadness.org 70 i 17891
Err codemadness.org 70 i 17892 Err codemadness.org 70 i 17893
Err codemadness.org 70 i 17894 Err codemadness.org 70 i 17895

Experimenting with streaming setups on NetBSD

Err codemadness.org 70 i 17896 Err codemadness.org 70 i 17897
Err codemadness.org 70 i 17898

Ever since OBS was successfully ported to NetBSD, I’ve been trying it out, seeing what works and what doesn’t. I’ve only just gotten started, and there’ll definitely be a lot of tweaking going forward.

Err codemadness.org 70 i 17899 Err codemadness.org 70 i 17900

Capturing a specific application’s windows seems to work okay. Capturing an entire display works, too. I actually haven’t tried streaming to Twitch or YouTube yet, but in a previous experiment a few weeks ago, I was able to run a FFmpeg command line and that could stream to Twitch mostly OK.

Err codemadness.org 70 i 17901 Err codemadness.org 70 i 17902

My laptop combined with my external monitor allows me to have a dual-monitor setup wherein the smaller laptop screen can be my “broadcasting station” while the bigger screen is where all the action takes place. I can make OBS visible on all Xfce workspaces, but keep it tucked away on that display only. Altogether, the setup should let me use the big screen for the fun stuff but I can still monitor everything in the small screen.

Err codemadness.org 70 i 17903
Err codemadness.org 70 i 17904 Err codemadness.org 70 i 17905
Err codemadness.org 70 i 17906 Err codemadness.org 70 i 17907

NetBSD Made Progress Thanks To GSoC In Its March Towards Steam Support

Err codemadness.org 70 i 17908 Err codemadness.org 70 i 17909
Err codemadness.org 70 i 17910

Ultimately the goal is to get Valve's Steam client running on NetBSD using their Linux compatibility layer while the focus the past few months with Google Summer of Code 2019 were supporting the necessary DRM ioctls for allowing Linux software running on NetBSD to be able to tap accelerated graphics support.

Err codemadness.org 70 i 17911 Err codemadness.org 70 i 17912

Student developer Surya P spent the summer working on compat_netbsd32 DRM interfaces to allow Direct Rendering Manager using applications running under their Linux compatibility layer.

Err codemadness.org 70 i 17913 Err codemadness.org 70 i 17914

These interfaces have been tested and working as well as updating the "suse131" packages in NetBSD to make use of those interfaces. So the necessary interfaces are now in place for Linux software running on NetBSD to be able to use accelerated graphics though Steam itself isn't yet running on NetBSD with this layer.

Err codemadness.org 70 i 17915 Err codemadness.org 70 i 17916

Those curious about this DRM ioctl GSoC project can learn more from the NetBSD blog. NetBSD has also been seeing work this summer on Wayland support and better Wine support to ultimately make this BSD a better desktop operating system and potentially a comparable gaming platform to Linux.

Err codemadness.org 70 i 17917
Err codemadness.org 70 i 17918 Err codemadness.org 70 i 17919
Err codemadness.org 70 i 17920 Err codemadness.org 70 i 17921

Beastie Bits

Err codemadness.org 70 i 17922 Err codemadness.org 70 i 17923 Err codemadness.org 70 i 17931 Err codemadness.org 70 i 17932
Err codemadness.org 70 i 17933 Err codemadness.org 70 i 17934

Feedback/Questions

Err codemadness.org 70 i 17935 Err codemadness.org 70 i 17936 Err codemadness.org 70 i 17941 Err codemadness.org 70 i 17942
Err codemadness.org 70 i 17943 Err codemadness.org 70 i 17944
    Err codemadness.org 70 i 17945
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 17946
Err codemadness.org 70 i 17947 Err codemadness.org 70 i 17948
Err codemadness.org 70 i 17949 Err codemadness.org 70 i 17950 ]]> Err codemadness.org 70 i 17954
Err codemadness.org 70 i 17955 Err codemadness.org 70 i 17956 Unix virtual memory when you have no swap space, Dsynth details on Dragonfly, Instant Workstation on FreeBSD, new servers new tech, Experimenting with streaming setups on NetBSD, NetBSD’s progress towards Steam support thanks to GSoC, and more.

Err codemadness.org 70 i 17957 Err codemadness.org 70 i 17958

Headlines

Err codemadness.org 70 i 17959 Err codemadness.org 70 i 17960

What has to happen with Unix virtual memory when you have no swap space

Err codemadness.org 70 i 17961 Err codemadness.org 70 i 17962
Err codemadness.org 70 i 17963

Recently, Artem S. Tashkinov wrote on the Linux kernel mailing list about a Linux problem under memory pressure (via, and threaded here). The specific reproduction instructions involved having low RAM, turning off swap space, and then putting the system under load, and when that happened (emphasis mine):

Err codemadness.org 70 i 17964 Err codemadness.org 70 i 17965

Once you hit a situation when opening a new tab requires more RAM than is currently available, the system will stall hard. You will barely be able to move the mouse pointer. Your disk LED will be flashing incessantly (I'm not entirely sure why). [...]

Err codemadness.org 70 i 17966 Err codemadness.org 70 i 17967

I'm afraid I have bad news for the people snickering at Linux here; if you're running without swap space, you can probably get any Unix to behave this way under memory pressure. If you can't on your particular Unix, I'd actually say that your Unix is probably not letting you get full use out of your RAM.

Err codemadness.org 70 i 17968 Err codemadness.org 70 i 17969

To simplify a bit, we can divide pages of user memory up into anonymous pages and file-backed pages. File-backed pages are what they sound like; they come from some specific file on the filesystem that they can be written out to (if they're dirty) or read back in from. Anonymous pages are not backed by a file, so the only place they can be written out to and read back in from is swap space. Anonymous pages mostly come from dynamic memory allocations and from modifying the program's global variables and data; file backed pages come mostly from mapping files into memory with mmap() and also, crucially, from the code and read-only data of the program.

Err codemadness.org 70 i 17970
Err codemadness.org 70 i 17971 Err codemadness.org 70 i 17972
    Err codemadness.org 70 i 17973
  • See link for the rest of the article
  • Err codemadness.org 70 i 17974
Err codemadness.org 70 i 17975 Err codemadness.org 70 i 17976
Err codemadness.org 70 i 17977 Err codemadness.org 70 i 17978

Dsynth details on Dragonfly

Err codemadness.org 70 i 17979 Err codemadness.org 70 i 17980
Err codemadness.org 70 i 17981

First, history: DragonFly has had binaries of dports available for download for quite some time. These were originally built using poudriere, and then using the synth tool put together by John Marino. Synth worked both to build all software in dports, and as a way to test DragonFly’s SMP capability under extreme load.

Err codemadness.org 70 i 17982 Err codemadness.org 70 i 17983

Matthew Dillon is working on a new version, called dsynth. It is available now but not yet part of the build. He’s been working quickly on it and there’s plenty more commits than what I have linked here. It’s already led to finding more high-load fixes.

Err codemadness.org 70 i 17984
Err codemadness.org 70 i 17985 Err codemadness.org 70 i 17986
    Err codemadness.org 70 i 17987
  • dsynth
  • Err codemadness.org 70 i 17988
Err codemadness.org 70 i 17989 Err codemadness.org 70 i 17990
Err codemadness.org 70 i 17991

DSynth is basically synth written in C, from scratch. It is designed to give us a bulk builder in base and be friendly to porting and jails down the line (for now its uses chroot's).

Err codemadness.org 70 i 17992 Err codemadness.org 70 i 17993

The original synth was written by John R. Marino and its basic flow was used in writing this program, but as it was written in ada no code was directly copied.

Err codemadness.org 70 i 17994 Err codemadness.org 70 i 17995
    Err codemadness.org 70 i 17996
  • The intent is to make dsynth compatible with synth's configuration files and directory structure.

  • Err codemadness.org 70 i 17997
  • This is a work in progress and not yet ready for prime-time. Pushing so we can get some more eyeballs. Most of the directives do not yet work (everything, and build works, and 'cleanup' can be used to clean up any dangling mounts).

  • Err codemadness.org 70 i 17998
Err codemadness.org 70 i 17999
Err codemadness.org 70 i 18000 Err codemadness.org 70 i 18001
    Err codemadness.org 70 i 18002
  • dsynth code
  • Err codemadness.org 70 i 18003
Err codemadness.org 70 i 18004 Err codemadness.org 70 i 18005
Err codemadness.org 70 i 18006 Err codemadness.org 70 i 18007

News Roundup

Err codemadness.org 70 i 18008 Err codemadness.org 70 i 18009

Instant Workstation

Err codemadness.org 70 i 18010 Err codemadness.org 70 i 18011
Err codemadness.org 70 i 18012

Some considerable time ago I wrote up instructions on how to set up a FreeBSD machine with the latest KDE Plasma Desktop. Those instructions, while fairly short (set up X, install the KDE meta-port, .. and that’s it) are a bit fiddly.

Err codemadness.org 70 i 18013 Err codemadness.org 70 i 18014

So – prompted slightly by a Twitter exchange recently – I’ve started a mini-sub-project to script the installation of a desktop environment and the bits needed to support it. To give it at least a modicum of UI, dialog(1) is used to ask for an environment to install and a display manager.

Err codemadness.org 70 i 18015 Err codemadness.org 70 i 18016

The tricky bits – pointed out to me after I started – are hardware support, although a best-effort is better than having nothing, I think.

Err codemadness.org 70 i 18017 Err codemadness.org 70 i 18018

In any case, in a VBox host it’s now down to running a single script and picking Plasma and SDDM to get a usable system for me. Other combinations have not been tested, nor has system-hardware-setup. I’ll probably maintain it for a while and if I have time and energy it’ll be tried with nVidia (those work quite well on FreeBSD) and AMD (not so much, in my experience) graphics cards when I shuffle some machines around.

Err codemadness.org 70 i 18019
Err codemadness.org 70 i 18020 Err codemadness.org 70 i 18021 Err codemadness.org 70 i 18024 Err codemadness.org 70 i 18025
Err codemadness.org 70 i 18026 Err codemadness.org 70 i 18027

New Servers, new Tech

Err codemadness.org 70 i 18028 Err codemadness.org 70 i 18029
Err codemadness.org 70 i 18030

Following up on an earlier post, the new servers for DragonFly are in place. The old 40-core machine used for bulk build, monster, is being retired. The power efficiency of the new machines is startling. Incidentally, this is where donations go – infrastructure.

Err codemadness.org 70 i 18031
Err codemadness.org 70 i 18032 Err codemadness.org 70 i 18033 Err codemadness.org 70 i 18036 Err codemadness.org 70 i 18037
Err codemadness.org 70 i 18038

We have three new servers in the colo now that will be taking most/all bulk package building duties from monster and the two blades (muscles and pkgbox64) that previously did the work. Monster will be retired. The new servers are a dual-socket Xeon (sting) and two 3900X based systems (thor and loki) which all together burn only around half the wattage that monster burned (500W vs 1000W) and 3 times the performance. That's at least a 6:1 improvement in performance efficiency.

Err codemadness.org 70 i 18039 Err codemadness.org 70 i 18040

With SSD prices down significantly the new machines have all-SSDs. These new machines allow us to build dports binary packages for release, master, and staged at the same time and reduces the full-on bulk build times for getting all three done down from 2 weeks to 2 days. It will allow us to more promptly synchronize updates to ports with dports and get binary packages up sooner.

Err codemadness.org 70 i 18041 Err codemadness.org 70 i 18042

Monster, our venerable 48-core quad-socket opteron is being retired. This was a wonderful dev machine for working on DragonFly's SMP algorithms over the last 6+ years precisely because its inter-core and inter-socket latencies were quite high. If a SMP algorithm wasn't spot-on, you could feel it. Over the years DragonFly's performance on monster in doing things like bulk builds increased radically as the SMP algorithms got better and the cores became more and more localized. This kept monster relevant far longer than I thought it would be.

Err codemadness.org 70 i 18043 Err codemadness.org 70 i 18044

But we are at a point now where improvements in efficiency are just too good to ignore. Monster's quad-socket opteron (4 x 12 core 6168's) pulls 1000W under full load while a single Ryzen 3900X (12 core / 24 thread) in a server configuration pulls only 150W, and is slightly faster on the same workload to boot.

Err codemadness.org 70 i 18045 Err codemadness.org 70 i 18046

I would like to thank everyone's generous donations over the last few years! We burned a few thousand on the new machines (as well as the major SSD upgrades we did to the blades) and made very good use of the money, particularly this year as prices for all major components (RAM, SSDs, CPUs, Mobos, etc) have dropped significantly.

Err codemadness.org 70 i 18047
Err codemadness.org 70 i 18048 Err codemadness.org 70 i 18049
Err codemadness.org 70 i 18050 Err codemadness.org 70 i 18051

Experimenting with streaming setups on NetBSD

Err codemadness.org 70 i 18052 Err codemadness.org 70 i 18053
Err codemadness.org 70 i 18054

Ever since OBS was successfully ported to NetBSD, I’ve been trying it out, seeing what works and what doesn’t. I’ve only just gotten started, and there’ll definitely be a lot of tweaking going forward.

Err codemadness.org 70 i 18055 Err codemadness.org 70 i 18056

Capturing a specific application’s windows seems to work okay. Capturing an entire display works, too. I actually haven’t tried streaming to Twitch or YouTube yet, but in a previous experiment a few weeks ago, I was able to run a FFmpeg command line and that could stream to Twitch mostly OK.

Err codemadness.org 70 i 18057 Err codemadness.org 70 i 18058

My laptop combined with my external monitor allows me to have a dual-monitor setup wherein the smaller laptop screen can be my “broadcasting station” while the bigger screen is where all the action takes place. I can make OBS visible on all Xfce workspaces, but keep it tucked away on that display only. Altogether, the setup should let me use the big screen for the fun stuff but I can still monitor everything in the small screen.

Err codemadness.org 70 i 18059
Err codemadness.org 70 i 18060 Err codemadness.org 70 i 18061
Err codemadness.org 70 i 18062 Err codemadness.org 70 i 18063

NetBSD Made Progress Thanks To GSoC In Its March Towards Steam Support

Err codemadness.org 70 i 18064 Err codemadness.org 70 i 18065
Err codemadness.org 70 i 18066

Ultimately the goal is to get Valve's Steam client running on NetBSD using their Linux compatibility layer while the focus the past few months with Google Summer of Code 2019 were supporting the necessary DRM ioctls for allowing Linux software running on NetBSD to be able to tap accelerated graphics support.

Err codemadness.org 70 i 18067 Err codemadness.org 70 i 18068

Student developer Surya P spent the summer working on compat_netbsd32 DRM interfaces to allow Direct Rendering Manager using applications running under their Linux compatibility layer.

Err codemadness.org 70 i 18069 Err codemadness.org 70 i 18070

These interfaces have been tested and working as well as updating the "suse131" packages in NetBSD to make use of those interfaces. So the necessary interfaces are now in place for Linux software running on NetBSD to be able to use accelerated graphics though Steam itself isn't yet running on NetBSD with this layer.

Err codemadness.org 70 i 18071 Err codemadness.org 70 i 18072

Those curious about this DRM ioctl GSoC project can learn more from the NetBSD blog. NetBSD has also been seeing work this summer on Wayland support and better Wine support to ultimately make this BSD a better desktop operating system and potentially a comparable gaming platform to Linux.

Err codemadness.org 70 i 18073
Err codemadness.org 70 i 18074 Err codemadness.org 70 i 18075
Err codemadness.org 70 i 18076 Err codemadness.org 70 i 18077

Beastie Bits

Err codemadness.org 70 i 18078 Err codemadness.org 70 i 18079 Err codemadness.org 70 i 18087 Err codemadness.org 70 i 18088
Err codemadness.org 70 i 18089 Err codemadness.org 70 i 18090

Feedback/Questions

Err codemadness.org 70 i 18091 Err codemadness.org 70 i 18092 Err codemadness.org 70 i 18097 Err codemadness.org 70 i 18098
Err codemadness.org 70 i 18099 Err codemadness.org 70 i 18100
    Err codemadness.org 70 i 18101
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 18102
Err codemadness.org 70 i 18103 Err codemadness.org 70 i 18104
Err codemadness.org 70 i 18105 Err codemadness.org 70 i 18106 ]]> Err codemadness.org 70 i 18110
Err codemadness.org 70 i 18111 https://fireside.fm/player/v2/FYhhasNR+0q7RTYhx Err codemadness.org 70 i 18112 Err codemadness.org 70 i 18113 ]]> Err codemadness.org 70 i 18114 Err codemadness.org 70 i 18115
Err codemadness.org 70 i 18116 Err codemadness.org 70 i 18117 313: In-Kernel TLS Err codemadness.org 70 i 18118 https://www.bsdnow.tv/313 Err codemadness.org 70 i 18119 15bbd7ef-a3c7-4996-9751-d37aa7b5a255 Err codemadness.org 70 i 18120 Wed, 28 Aug 2019 21:30:00 -0700 Err codemadness.org 70 i 18121 Allan Jude Err codemadness.org 70 i 18122 Err codemadness.org 70 i 18123 full Err codemadness.org 70 i 18124 Allan Jude Err codemadness.org 70 i 18125 OpenBSD on 7th gen Thinkpad X1 Carbon, how to install FreeBSD on a MacBook, Kernel portion of in-kernel TLS (KTLS), Boot Environments on DragonflyBSD, Project Trident Updates, vBSDcon schedule, and more. Err codemadness.org 70 i 18126 55:12 Err codemadness.org 70 i 18127 no Err codemadness.org 70 i 18128 Err codemadness.org 70 i 18129 OpenBSD on 7th gen Thinkpad X1 Carbon, how to install FreeBSD on a MacBook, Kernel portion of in-kernel TLS (KTLS), Boot Environments on DragonflyBSD, Project Trident Updates, vBSDcon schedule, and more. Err codemadness.org 70 i 18130 Headlines Err codemadness.org 70 i 18131 OpenBSD on the Thinkpad X1 Carbon 7th Gen (https://jcs.org/2019/08/14/x1c7) Err codemadness.org 70 i 18132 Another year, another ThinkPad X1 Carbon, this time with a Dolby Atmos sound system and a smaller battery. Err codemadness.org 70 i 18133 The seventh generation X1 Carbon isn't much different than the fifth and sixth generations. I opted for the non-vPro Core i5-8265U, 16Gb of RAM, a 512Gb NVMe SSD, and a matte non-touch WQHD display at ~300 nits. A brighter 500-nit 4k display is available, though early reports indicated it severely impacts battery life. Err codemadness.org 70 i 18134 Gone are the microSD card slot on the back and 1mm of overall thickness (from 15.95mm to 14.95mm), but also 6Whr of battery (down to 51Whr) and a little bit of travel in the keyboard and TrackPoint buttons. I still very much like the feel of both of them, so kudos to Lenovo for not going too far down the Apple route of sacrificing performance and usability just for a thinner profile. Err codemadness.org 70 i 18135 On my fifth generation X1 Carbon, I used a vinyl plotter to cut out stickers to cover the webcam, "X1 Carbon" branding from the bottom of the display, the power button LED, and the "ThinkPad" branding from the lower part of the keyboard deck. Err codemadness.org 70 i 18136 See link for the rest of the article Err codemadness.org 70 i 18137 How To Install FreeBSD On A MacBook 1,1 or 2,1 (http://lexploit.com/freebsdmacbook1-1-2-1/) Err codemadness.org 70 i 18138 FreeBSD Setup For MacBook 1,1 and 2,1 Err codemadness.org 70 i 18139 FreeBSD with some additional setup can be installed on a MacBook 1,1 or 2,1. This article covers how to do so with FreeBSD 10-12. Err codemadness.org 70 i 18140 Installing Err codemadness.org 70 i 18141 FreeBSD can be installed as the only OS on your MacBook if desired. What you should have is: Err codemadness.org 70 i 18142 A Mac OS X 10.4.6-10.7.5 installer. Unofficial versions modified for these MacBooks such as 10.8 also work. Err codemadness.org 70 i 18143 A blank CD or DVD to burn the FreeBSD image to. Discs simply work best with these older MacBooks. Err codemadness.org 70 i 18144 An ISO file of FreeBSD for x86. The AMD64 ISO does not boot due to the 32 bit EFI of these MacBooks. Err codemadness.org 70 i 18145 Burn the ISO file to the blank CD or DVD. Once done, make sure it's in your MacBook and then power off the MacBook. Turn it on, and hold down the c key until the FreeBSD disc boots. Err codemadness.org 70 i 18146 See link for the rest of the guide Err codemadness.org 70 i 18147 News Roundup Err codemadness.org 70 i 18148 Patch for review: Kernel portion of in-kernel TLS (KTLS) (https://svnweb.freebsd.org/base?view=revision&revision=351522) Err codemadness.org 70 i 18149 One of the projects I have been working on for the past several months in conjunction with several other folks is upstreaming work from Netflix to handle some aspects of Transport Layer Security (TLS) in the kernel. In particular, this lets a web server use sendfile() to send static content on HTTPS connections. There is a lot more detail in the review itself, so I will spare pasting a big wall of text here. However, I have posted the patch to add the kernel-side of KTLS for review at the URL below. KTLS also requires other patches to OpenSSL and nginx, but this review is only for the kernel bits. Patches and reviews for the other bits will follow later. Err codemadness.org 70 i 18150 https://reviews.freebsd.org/D21277 Err codemadness.org 70 i 18151 DragonFly Boot Enviroments (https://github.com/newnix/dfbeadm) Err codemadness.org 70 i 18152 This is a tool inspired by the beadm utility for FreeBSD/Illumos systems that creates and manages ZFS boot environments. This utility in contrast is written from the ground up in C, this should provide better performance, integration, and extensibility than the POSIX sh and awk script it was inspired by. During the time this project has been worked on, beadm has been superseded by bectl on FreeBSD. After hammering out some of the outstanding internal logic issues, I might look at providing a similar interface to the command as bectl. Err codemadness.org 70 i 18153 See link for the rest of the details Err codemadness.org 70 i 18154 Project Trident Updates Err codemadness.org 70 i 18155 19.08 Available (https://project-trident.org/post/2019-08-15_19.08_available/) Err codemadness.org 70 i 18156 This is a general package update to the CURRENT release repository based upon TrueOS 19.08. Err codemadness.org 70 i 18157 Legacy boot ISO functional again Err codemadness.org 70 i 18158 This update includes the FreeBSD fixes for the “vesa” graphics driver for legacy-boot systems. The system can once again be installed on legacy-boot systems. Err codemadness.org 70 i 18159 PACKAGE CHANGES FROM 19.07-U1 Err codemadness.org 70 i 18160 New Packages: 154 Err codemadness.org 70 i 18161 Deleted Packages: 394 Err codemadness.org 70 i 18162 Updated Packages: 4926 Err codemadness.org 70 i 18163 12-U3 Available (https://project-trident.org/post/2019-08-22_stable12-u3_available/) Err codemadness.org 70 i 18164 This is the third general package update to the STABLE release repository based upon TrueOS 12-Stable. Err codemadness.org 70 i 18165 PACKAGE CHANGES FROM STABLE 12-U2 Err codemadness.org 70 i 18166 New Packages: 105 Err codemadness.org 70 i 18167 Deleted Packages: 386 Err codemadness.org 70 i 18168 Updated Packages: 1046 Err codemadness.org 70 i 18169 vBSDcon (https://www.vbsdcon.com/schedule/) Err codemadness.org 70 i 18170 vBSDcon 2019 will return to the Hyatt Regency in Reston, VA on September 5-7 2019. Err codemadness.org 70 i 18171 *** Err codemadness.org 70 i 18172 Beastie Bits Err codemadness.org 70 i 18173 The next NYCBUG meeting will be Sept 4 @ 18:45 (https://www.nycbug.org/index?action=view&id=10671) Err codemadness.org 70 i 18174 Feedback/Questions Err codemadness.org 70 i 18175 Tom - Questions (http://dpaste.com/1AXXK7G#wrap) Err codemadness.org 70 i 18176 Michael - dfbeadm (http://dpaste.com/0PNEDYT#wrap) Err codemadness.org 70 i 18177 Bostjan - Questions (http://dpaste.com/1N7T7BR#wrap) Err codemadness.org 70 i 18178 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 18179 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 18180 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0313.mp4" type="video/mp4"> Err codemadness.org 70 i 18181 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 18182 </video> Err codemadness.org 70 i 18183 Err codemadness.org 70 i 18184 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, thinkpad, x1 carbon, macbook, install, installation, tls, kernel tls, ktls, boot environment, project trident, vbsdcon Err codemadness.org 70 i 18185 Err codemadness.org 70 i 18186 OpenBSD on 7th gen Thinkpad X1 Carbon, how to install FreeBSD on a MacBook, Kernel portion of in-kernel TLS (KTLS), Boot Environments on DragonflyBSD, Project Trident Updates, vBSDcon schedule, and more.

Err codemadness.org 70 i 18187 Err codemadness.org 70 i 18188

Headlines

Err codemadness.org 70 i 18189 Err codemadness.org 70 i 18190

OpenBSD on the Thinkpad X1 Carbon 7th Gen

Err codemadness.org 70 i 18191 Err codemadness.org 70 i 18192
Err codemadness.org 70 i 18193

Another year, another ThinkPad X1 Carbon, this time with a Dolby Atmos sound system and a smaller battery.
Err codemadness.org 70 i 18194 The seventh generation X1 Carbon isn't much different than the fifth and sixth generations. I opted for the non-vPro Core i5-8265U, 16Gb of RAM, a 512Gb NVMe SSD, and a matte non-touch WQHD display at ~300 nits. A brighter 500-nit 4k display is available, though early reports indicated it severely impacts battery life.
Err codemadness.org 70 i 18195 Gone are the microSD card slot on the back and 1mm of overall thickness (from 15.95mm to 14.95mm), but also 6Whr of battery (down to 51Whr) and a little bit of travel in the keyboard and TrackPoint buttons. I still very much like the feel of both of them, so kudos to Lenovo for not going too far down the Apple route of sacrificing performance and usability just for a thinner profile.
Err codemadness.org 70 i 18196 On my fifth generation X1 Carbon, I used a vinyl plotter to cut out stickers to cover the webcam, "X1 Carbon" branding from the bottom of the display, the power button LED, and the "ThinkPad" branding from the lower part of the keyboard deck.

Err codemadness.org 70 i 18197
Err codemadness.org 70 i 18198 Err codemadness.org 70 i 18199
    Err codemadness.org 70 i 18200
  • See link for the rest of the article
  • Err codemadness.org 70 i 18201
Err codemadness.org 70 i 18202 Err codemadness.org 70 i 18203
Err codemadness.org 70 i 18204 Err codemadness.org 70 i 18205

How To Install FreeBSD On A MacBook 1,1 or 2,1

Err codemadness.org 70 i 18206 Err codemadness.org 70 i 18207
    Err codemadness.org 70 i 18208
  • FreeBSD Setup For MacBook 1,1 and 2,1
  • Err codemadness.org 70 i 18209
Err codemadness.org 70 i 18210 Err codemadness.org 70 i 18211
Err codemadness.org 70 i 18212

FreeBSD with some additional setup can be installed on a MacBook 1,1 or 2,1. This article covers how to do so with FreeBSD 10-12.

Err codemadness.org 70 i 18213
Err codemadness.org 70 i 18214 Err codemadness.org 70 i 18215
    Err codemadness.org 70 i 18216
  • Installing
  • Err codemadness.org 70 i 18217
Err codemadness.org 70 i 18218 Err codemadness.org 70 i 18219
Err codemadness.org 70 i 18220

FreeBSD can be installed as the only OS on your MacBook if desired. What you should have is:

Err codemadness.org 70 i 18221
Err codemadness.org 70 i 18222 Err codemadness.org 70 i 18223
    Err codemadness.org 70 i 18224
  • A Mac OS X 10.4.6-10.7.5 installer. Unofficial versions modified for these MacBooks such as 10.8 also work.
  • Err codemadness.org 70 i 18225
  • A blank CD or DVD to burn the FreeBSD image to. Discs simply work best with these older MacBooks.
  • Err codemadness.org 70 i 18226
  • An ISO file of FreeBSD for x86. The AMD64 ISO does not boot due to the 32 bit EFI of these MacBooks.
  • Err codemadness.org 70 i 18227
  • Burn the ISO file to the blank CD or DVD. Once done, make sure it's in your MacBook and then power off the MacBook. Turn it on, and hold down the c key until the FreeBSD disc boots.

    Err codemadness.org 70 i 18228 Err codemadness.org 70 i 18229
      Err codemadness.org 70 i 18230
    • See link for the rest of the guide
    • Err codemadness.org 70 i 18231
  • Err codemadness.org 70 i 18232
Err codemadness.org 70 i 18233 Err codemadness.org 70 i 18234
Err codemadness.org 70 i 18235 Err codemadness.org 70 i 18236

News Roundup

Err codemadness.org 70 i 18237 Err codemadness.org 70 i 18238

Patch for review: Kernel portion of in-kernel TLS (KTLS)

Err codemadness.org 70 i 18239 Err codemadness.org 70 i 18240
Err codemadness.org 70 i 18241

One of the projects I have been working on for the past several months in conjunction with several other folks is upstreaming work from Netflix to handle some aspects of Transport Layer Security (TLS) in the kernel. In particular, this lets a web server use sendfile() to send static content on HTTPS connections. There is a lot more detail in the review itself, so I will spare pasting a big wall of text here. However, I have posted the patch to add the kernel-side of KTLS for review at the URL below. KTLS also requires other patches to OpenSSL and nginx, but this review is only for the kernel bits. Patches and reviews for the other bits will follow later.

Err codemadness.org 70 i 18242
Err codemadness.org 70 i 18243 Err codemadness.org 70 i 18244 Err codemadness.org 70 i 18247 Err codemadness.org 70 i 18248
Err codemadness.org 70 i 18249 Err codemadness.org 70 i 18250

DragonFly Boot Enviroments

Err codemadness.org 70 i 18251 Err codemadness.org 70 i 18252
Err codemadness.org 70 i 18253

This is a tool inspired by the beadm utility for FreeBSD/Illumos systems that creates and manages ZFS boot environments. This utility in contrast is written from the ground up in C, this should provide better performance, integration, and extensibility than the POSIX sh and awk script it was inspired by. During the time this project has been worked on, beadm has been superseded by bectl on FreeBSD. After hammering out some of the outstanding internal logic issues, I might look at providing a similar interface to the command as bectl.

Err codemadness.org 70 i 18254
Err codemadness.org 70 i 18255 Err codemadness.org 70 i 18256
    Err codemadness.org 70 i 18257
  • See link for the rest of the details
  • Err codemadness.org 70 i 18258
Err codemadness.org 70 i 18259 Err codemadness.org 70 i 18260
Err codemadness.org 70 i 18261 Err codemadness.org 70 i 18262

Project Trident Updates

Err codemadness.org 70 i 18263 Err codemadness.org 70 i 18264
    Err codemadness.org 70 i 18265
  • 19.08 Available
  • Err codemadness.org 70 i 18266
Err codemadness.org 70 i 18267 Err codemadness.org 70 i 18268
Err codemadness.org 70 i 18269

This is a general package update to the CURRENT release repository based upon TrueOS 19.08.
Err codemadness.org 70 i 18270 Legacy boot ISO functional again
Err codemadness.org 70 i 18271 This update includes the FreeBSD fixes for the “vesa” graphics driver for legacy-boot systems. The system can once again be installed on legacy-boot systems.

Err codemadness.org 70 i 18272
Err codemadness.org 70 i 18273 Err codemadness.org 70 i 18274
    Err codemadness.org 70 i 18275
  • PACKAGE CHANGES FROM 19.07-U1

    Err codemadness.org 70 i 18276 Err codemadness.org 70 i 18277
      Err codemadness.org 70 i 18278
    • New Packages: 154
    • Err codemadness.org 70 i 18279
    • Deleted Packages: 394
    • Err codemadness.org 70 i 18280
    • Updated Packages: 4926
    • Err codemadness.org 70 i 18281
  • Err codemadness.org 70 i 18282
  • 12-U3 Available

  • Err codemadness.org 70 i 18283
Err codemadness.org 70 i 18284 Err codemadness.org 70 i 18285
Err codemadness.org 70 i 18286

This is the third general package update to the STABLE release repository based upon TrueOS 12-Stable.

Err codemadness.org 70 i 18287
Err codemadness.org 70 i 18288 Err codemadness.org 70 i 18289
    Err codemadness.org 70 i 18290
  • PACKAGE CHANGES FROM STABLE 12-U2 Err codemadness.org 70 i 18291 Err codemadness.org 70 i 18292
      Err codemadness.org 70 i 18293
    • New Packages: 105
    • Err codemadness.org 70 i 18294
    • Deleted Packages: 386
    • Err codemadness.org 70 i 18295
    • Updated Packages: 1046
    • Err codemadness.org 70 i 18296
  • Err codemadness.org 70 i 18297
Err codemadness.org 70 i 18298 Err codemadness.org 70 i 18299
Err codemadness.org 70 i 18300 Err codemadness.org 70 i 18301

vBSDcon

Err codemadness.org 70 i 18302 Err codemadness.org 70 i 18303
    Err codemadness.org 70 i 18304
  • vBSDcon 2019 will return to the Hyatt Regency in Reston, VA on September 5-7 2019. Err codemadness.org 70 i 18305 ***
  • Err codemadness.org 70 i 18306
Err codemadness.org 70 i 18307 Err codemadness.org 70 i 18308

Beastie Bits

Err codemadness.org 70 i 18309 Err codemadness.org 70 i 18310 Err codemadness.org 70 i 18313 Err codemadness.org 70 i 18314
Err codemadness.org 70 i 18315 Err codemadness.org 70 i 18316

Feedback/Questions

Err codemadness.org 70 i 18317 Err codemadness.org 70 i 18318
    Err codemadness.org 70 i 18319
  • Tom - Questions
  • Err codemadness.org 70 i 18320
  • Michael - dfbeadm
  • Err codemadness.org 70 i 18321
  • Bostjan - Questions
  • Err codemadness.org 70 i 18322
Err codemadness.org 70 i 18323 Err codemadness.org 70 i 18324
Err codemadness.org 70 i 18325 Err codemadness.org 70 i 18326
    Err codemadness.org 70 i 18327
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 18328
Err codemadness.org 70 i 18329 Err codemadness.org 70 i 18330
Err codemadness.org 70 i 18331 Err codemadness.org 70 i 18332 ]]> Err codemadness.org 70 i 18336
Err codemadness.org 70 i 18337 Err codemadness.org 70 i 18338 OpenBSD on 7th gen Thinkpad X1 Carbon, how to install FreeBSD on a MacBook, Kernel portion of in-kernel TLS (KTLS), Boot Environments on DragonflyBSD, Project Trident Updates, vBSDcon schedule, and more.

Err codemadness.org 70 i 18339 Err codemadness.org 70 i 18340

Headlines

Err codemadness.org 70 i 18341 Err codemadness.org 70 i 18342

OpenBSD on the Thinkpad X1 Carbon 7th Gen

Err codemadness.org 70 i 18343 Err codemadness.org 70 i 18344
Err codemadness.org 70 i 18345

Another year, another ThinkPad X1 Carbon, this time with a Dolby Atmos sound system and a smaller battery.
Err codemadness.org 70 i 18346 The seventh generation X1 Carbon isn't much different than the fifth and sixth generations. I opted for the non-vPro Core i5-8265U, 16Gb of RAM, a 512Gb NVMe SSD, and a matte non-touch WQHD display at ~300 nits. A brighter 500-nit 4k display is available, though early reports indicated it severely impacts battery life.
Err codemadness.org 70 i 18347 Gone are the microSD card slot on the back and 1mm of overall thickness (from 15.95mm to 14.95mm), but also 6Whr of battery (down to 51Whr) and a little bit of travel in the keyboard and TrackPoint buttons. I still very much like the feel of both of them, so kudos to Lenovo for not going too far down the Apple route of sacrificing performance and usability just for a thinner profile.
Err codemadness.org 70 i 18348 On my fifth generation X1 Carbon, I used a vinyl plotter to cut out stickers to cover the webcam, "X1 Carbon" branding from the bottom of the display, the power button LED, and the "ThinkPad" branding from the lower part of the keyboard deck.

Err codemadness.org 70 i 18349
Err codemadness.org 70 i 18350 Err codemadness.org 70 i 18351
    Err codemadness.org 70 i 18352
  • See link for the rest of the article
  • Err codemadness.org 70 i 18353
Err codemadness.org 70 i 18354 Err codemadness.org 70 i 18355
Err codemadness.org 70 i 18356 Err codemadness.org 70 i 18357

How To Install FreeBSD On A MacBook 1,1 or 2,1

Err codemadness.org 70 i 18358 Err codemadness.org 70 i 18359
    Err codemadness.org 70 i 18360
  • FreeBSD Setup For MacBook 1,1 and 2,1
  • Err codemadness.org 70 i 18361
Err codemadness.org 70 i 18362 Err codemadness.org 70 i 18363
Err codemadness.org 70 i 18364

FreeBSD with some additional setup can be installed on a MacBook 1,1 or 2,1. This article covers how to do so with FreeBSD 10-12.

Err codemadness.org 70 i 18365
Err codemadness.org 70 i 18366 Err codemadness.org 70 i 18367
    Err codemadness.org 70 i 18368
  • Installing
  • Err codemadness.org 70 i 18369
Err codemadness.org 70 i 18370 Err codemadness.org 70 i 18371
Err codemadness.org 70 i 18372

FreeBSD can be installed as the only OS on your MacBook if desired. What you should have is:

Err codemadness.org 70 i 18373
Err codemadness.org 70 i 18374 Err codemadness.org 70 i 18375
    Err codemadness.org 70 i 18376
  • A Mac OS X 10.4.6-10.7.5 installer. Unofficial versions modified for these MacBooks such as 10.8 also work.
  • Err codemadness.org 70 i 18377
  • A blank CD or DVD to burn the FreeBSD image to. Discs simply work best with these older MacBooks.
  • Err codemadness.org 70 i 18378
  • An ISO file of FreeBSD for x86. The AMD64 ISO does not boot due to the 32 bit EFI of these MacBooks.
  • Err codemadness.org 70 i 18379
  • Burn the ISO file to the blank CD or DVD. Once done, make sure it's in your MacBook and then power off the MacBook. Turn it on, and hold down the c key until the FreeBSD disc boots.

    Err codemadness.org 70 i 18380 Err codemadness.org 70 i 18381
      Err codemadness.org 70 i 18382
    • See link for the rest of the guide
    • Err codemadness.org 70 i 18383
  • Err codemadness.org 70 i 18384
Err codemadness.org 70 i 18385 Err codemadness.org 70 i 18386
Err codemadness.org 70 i 18387 Err codemadness.org 70 i 18388

News Roundup

Err codemadness.org 70 i 18389 Err codemadness.org 70 i 18390

Patch for review: Kernel portion of in-kernel TLS (KTLS)

Err codemadness.org 70 i 18391 Err codemadness.org 70 i 18392
Err codemadness.org 70 i 18393

One of the projects I have been working on for the past several months in conjunction with several other folks is upstreaming work from Netflix to handle some aspects of Transport Layer Security (TLS) in the kernel. In particular, this lets a web server use sendfile() to send static content on HTTPS connections. There is a lot more detail in the review itself, so I will spare pasting a big wall of text here. However, I have posted the patch to add the kernel-side of KTLS for review at the URL below. KTLS also requires other patches to OpenSSL and nginx, but this review is only for the kernel bits. Patches and reviews for the other bits will follow later.

Err codemadness.org 70 i 18394
Err codemadness.org 70 i 18395 Err codemadness.org 70 i 18396 Err codemadness.org 70 i 18399 Err codemadness.org 70 i 18400
Err codemadness.org 70 i 18401 Err codemadness.org 70 i 18402

DragonFly Boot Enviroments

Err codemadness.org 70 i 18403 Err codemadness.org 70 i 18404
Err codemadness.org 70 i 18405

This is a tool inspired by the beadm utility for FreeBSD/Illumos systems that creates and manages ZFS boot environments. This utility in contrast is written from the ground up in C, this should provide better performance, integration, and extensibility than the POSIX sh and awk script it was inspired by. During the time this project has been worked on, beadm has been superseded by bectl on FreeBSD. After hammering out some of the outstanding internal logic issues, I might look at providing a similar interface to the command as bectl.

Err codemadness.org 70 i 18406
Err codemadness.org 70 i 18407 Err codemadness.org 70 i 18408
    Err codemadness.org 70 i 18409
  • See link for the rest of the details
  • Err codemadness.org 70 i 18410
Err codemadness.org 70 i 18411 Err codemadness.org 70 i 18412
Err codemadness.org 70 i 18413 Err codemadness.org 70 i 18414

Project Trident Updates

Err codemadness.org 70 i 18415 Err codemadness.org 70 i 18416
    Err codemadness.org 70 i 18417
  • 19.08 Available
  • Err codemadness.org 70 i 18418
Err codemadness.org 70 i 18419 Err codemadness.org 70 i 18420
Err codemadness.org 70 i 18421

This is a general package update to the CURRENT release repository based upon TrueOS 19.08.
Err codemadness.org 70 i 18422 Legacy boot ISO functional again
Err codemadness.org 70 i 18423 This update includes the FreeBSD fixes for the “vesa” graphics driver for legacy-boot systems. The system can once again be installed on legacy-boot systems.

Err codemadness.org 70 i 18424
Err codemadness.org 70 i 18425 Err codemadness.org 70 i 18426
    Err codemadness.org 70 i 18427
  • PACKAGE CHANGES FROM 19.07-U1

    Err codemadness.org 70 i 18428 Err codemadness.org 70 i 18429
      Err codemadness.org 70 i 18430
    • New Packages: 154
    • Err codemadness.org 70 i 18431
    • Deleted Packages: 394
    • Err codemadness.org 70 i 18432
    • Updated Packages: 4926
    • Err codemadness.org 70 i 18433
  • Err codemadness.org 70 i 18434
  • 12-U3 Available

  • Err codemadness.org 70 i 18435
Err codemadness.org 70 i 18436 Err codemadness.org 70 i 18437
Err codemadness.org 70 i 18438

This is the third general package update to the STABLE release repository based upon TrueOS 12-Stable.

Err codemadness.org 70 i 18439
Err codemadness.org 70 i 18440 Err codemadness.org 70 i 18441
    Err codemadness.org 70 i 18442
  • PACKAGE CHANGES FROM STABLE 12-U2 Err codemadness.org 70 i 18443 Err codemadness.org 70 i 18444
      Err codemadness.org 70 i 18445
    • New Packages: 105
    • Err codemadness.org 70 i 18446
    • Deleted Packages: 386
    • Err codemadness.org 70 i 18447
    • Updated Packages: 1046
    • Err codemadness.org 70 i 18448
  • Err codemadness.org 70 i 18449
Err codemadness.org 70 i 18450 Err codemadness.org 70 i 18451
Err codemadness.org 70 i 18452 Err codemadness.org 70 i 18453

vBSDcon

Err codemadness.org 70 i 18454 Err codemadness.org 70 i 18455
    Err codemadness.org 70 i 18456
  • vBSDcon 2019 will return to the Hyatt Regency in Reston, VA on September 5-7 2019. Err codemadness.org 70 i 18457 ***
  • Err codemadness.org 70 i 18458
Err codemadness.org 70 i 18459 Err codemadness.org 70 i 18460

Beastie Bits

Err codemadness.org 70 i 18461 Err codemadness.org 70 i 18462 Err codemadness.org 70 i 18465 Err codemadness.org 70 i 18466
Err codemadness.org 70 i 18467 Err codemadness.org 70 i 18468

Feedback/Questions

Err codemadness.org 70 i 18469 Err codemadness.org 70 i 18470
    Err codemadness.org 70 i 18471
  • Tom - Questions
  • Err codemadness.org 70 i 18472
  • Michael - dfbeadm
  • Err codemadness.org 70 i 18473
  • Bostjan - Questions
  • Err codemadness.org 70 i 18474
Err codemadness.org 70 i 18475 Err codemadness.org 70 i 18476
Err codemadness.org 70 i 18477 Err codemadness.org 70 i 18478
    Err codemadness.org 70 i 18479
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 18480
Err codemadness.org 70 i 18481 Err codemadness.org 70 i 18482
Err codemadness.org 70 i 18483 Err codemadness.org 70 i 18484 ]]> Err codemadness.org 70 i 18488
Err codemadness.org 70 i 18489 https://fireside.fm/player/v2/FYhhasNR+VILFdysu Err codemadness.org 70 i 18490 Err codemadness.org 70 i 18491 ]]> Err codemadness.org 70 i 18492 Err codemadness.org 70 i 18493
Err codemadness.org 70 i 18494 Err codemadness.org 70 i 18495 312: Why Package Managers Err codemadness.org 70 i 18496 https://www.bsdnow.tv/312 Err codemadness.org 70 i 18497 6dfbd978-c8a2-45c6-a49a-3a4937d83c69 Err codemadness.org 70 i 18498 Wed, 21 Aug 2019 20:00:00 -0700 Err codemadness.org 70 i 18499 Allan Jude Err codemadness.org 70 i 18500 Err codemadness.org 70 i 18501 full Err codemadness.org 70 i 18502 Allan Jude Err codemadness.org 70 i 18503 The UNIX Philosophy in 2019, why use package managers, touchpad interrupted, Porting wine to amd64 on NetBSD second evaluation report, Enhancing Syzkaller Support for NetBSD, all about the Pinebook Pro, killing a process and all of its descendants, fast software the best software, and more. Err codemadness.org 70 i 18504 1:12:03 Err codemadness.org 70 i 18505 no Err codemadness.org 70 i 18506 Err codemadness.org 70 i 18507 The UNIX Philosophy in 2019, why use package managers, touchpad interrupted, Porting wine to amd64 on NetBSD second evaluation report, Enhancing Syzkaller Support for NetBSD, all about the Pinebook Pro, killing a process and all of its descendants, fast software the best software, and more. Err codemadness.org 70 i 18508 Headlines Err codemadness.org 70 i 18509 The UNIX Philosophy in 2019 (https://triosdevelopers.com/jason.eckert/blog/Entries/2019/6/1_Entry_1.html) Err codemadness.org 70 i 18510 Today, Linux and open source rules the world, and the UNIX philosophy is widely considered compulsory. Organizations are striving to build small, focused applications that work collaboratively in a cloud and microservices environment. We rely on the network, as well as HTTP (text) APIs for storing and referencing data. Moreover, nearly all configuration is stored and communicated using text (e.g. YAML, JSON or XML). And while the UNIX philosophy has changed dramatically over the past 5 decades, it hasn’t strayed too far from Ken Thompson’s original definition in 1973: Err codemadness.org 70 i 18511 We write programs that do one thing and do it well Err codemadness.org 70 i 18512 We write programs to work together Err codemadness.org 70 i 18513 And we write programs that handle text streams, because that is a universal interface Err codemadness.org 70 i 18514 Why Use Package Managers? (https://uwm.edu/hpc/software-management/) Err codemadness.org 70 i 18515 Valuable research is often hindered or outright prevented by the inability to install software. This need not be the case. Err codemadness.org 70 i 18516 Since I began supporting research computing in 1999, I’ve frequently seen researchers struggle for days or weeks trying to install a single open source application. In most cases, they ultimately failed. Err codemadness.org 70 i 18517 In many cases, they could have easily installed the software in seconds with one simple command, using a package manager such as Debian packages, FreeBSD ports, MacPorts, or Pkgsrc, just to name a few. Err codemadness.org 70 i 18518 Developer websites often contain poorly written instructions for doing “caveman installs”; manually downloading, unpacking, patching, and building the software. The same laborious process must often be followed for other software packages on which it depends, which can sometimes number in the dozens. Many researchers are simply unaware that there are easier ways to install the software they need. Caveman installs are a colossal waste of man-hours. If 1000 people around the globe spend an average of 20 hours each trying to install the same program that could have been installed with a package manager (this is not uncommon), then 20,000 man-hours have been lost that could have gone toward science. How many important discoveries are delayed by this? Err codemadness.org 70 i 18519 The elite research institutions have ample funding and dozens of IT staff dedicated to research computing. They can churn out publications even if their operation is inefficient. Most institutions, however, have few or no IT staff dedicated to research, and cannot afford to squander precious man-hours on temporary, one-off software installs. The wise approach for those of us in that situation is to collaborate on making software deployment easier for everyone. If we do so, then even the smallest research groups can leverage that work to be more productive and make more frequent contributions to science. Err codemadness.org 70 i 18520 Fortunately, the vast majority of open source software installs can be made trivial for anyone to do for themselves. Modern package managers perform all the same steps as a caveman install, but automatically. Package managers also install dependencies for us automatically. Err codemadness.org 70 i 18521 News Roundup Err codemadness.org 70 i 18522 Touchpad, Interrupted (https://jcs.org/2019/07/28/ihidev) Err codemadness.org 70 i 18523 For two years I've been driving myself crazy trying to figure out the source of a driver problem on OpenBSD: interrupts never arrived for certain touchpad devices. A couple weeks ago, I put out a public plea asking for help in case any non-OpenBSD developers recognized the problem, but while debugging an unrelated issue over the weekend, I finally solved it. Err codemadness.org 70 i 18524 It's been a long journey and it's a technical tale, but here it is. Err codemadness.org 70 i 18525 Porting wine to amd64 on NetBSD, second evaluation report (https://blog.netbsd.org/tnf/entry/porting_wine_to_amd64_on2) Err codemadness.org 70 i 18526 Summary Err codemadness.org 70 i 18527 Presently, Wine on amd64 is in test phase. It seems to work fine with caveats like LDLIBRARYPATH which has to be set as 32-bit Xorg libs don't have ${PREFIX}/emul/netbsd32/lib in its rpath section. The latter is due to us extracting 32-bit libs from tarballs in lieu of building 32-bit Xorg on amd64. As previously stated, pkgsrc doesn't search for pkgconfig files in ${PREFIX}/emul/netbsd32/lib which might have inadvertent effects that I am unaware of as of now. I shall be working on these issues during the final coding period. I would like to thank @leot, @maya and @christos for saving me from shooting myself in the foot many a time. I, admittedly, have had times when multiple approaches, which all seemed right at that time, perplexed me. I believe those are times when having a mentor counts, and I have been lucky enough to have really good ones. Once again, thanks to Google for this wonderful opportunity. Err codemadness.org 70 i 18528 Enhancing Syzkaller Support for NetBSD, Part 2 (https://blog.netbsd.org/tnf/entry/enchancing_syzkaller_support_for_netbsd) Err codemadness.org 70 i 18529 As a part of Google Summer of Code’19, I am working on improving the support for Syzkaller kernel fuzzer. Syzkaller is an unsupervised coverage-guided kernel fuzzer, that supports a variety of operating systems including NetBSD. This report details the work done during the second coding period. Err codemadness.org 70 i 18530 You can also take a look at the first report to learn more about the initial support that we added. : https://blog.netbsd.org/tnf/entry/enhancingsyzkallersupportfornetbsd Err codemadness.org 70 i 18531 July Update: All about the Pinebook Pro (https://www.pine64.org/2019/07/05/july-update-all-about-the-pinebook-pro/) Err codemadness.org 70 i 18532 "So I said I won’t be talking about the BSDs, but I feel like I should at the very least give you a general overview of the RK3399 *BSD functionality. I’ll make it quick. I’ve spoken to *BSD devs whom worked on the RockPro64 and from what I’ve gathered (despite the different *BSDs having varying degree of support for the RK3399 SOC) many of the core features are already supported, which bodes well for *BSD on the Pro. That said, some of the things you’d require on a functional laptop – such as the LCD (using eDP) for instance – will not work on the Pinebook Pro using *BSD as of today. So clearly a degree of work is yet needed for a BSD to run on the device. However, keep in mind that *BSD developers will be receiving their units soon and by the time you receive yours some basic functionality may be available." Err codemadness.org 70 i 18533 Killing a process and all of its descendants (http://morningcoffee.io/killing-a-process-and-all-of-its-descendants.html) Err codemadness.org 70 i 18534 Killing processes in a Unix-like system can be trickier than expected. Last week I was debugging an odd issue related to job stopping on Semaphore. More specifically, an issue related to the killing of a running process in a job. Here are the highlights of what I learned: Err codemadness.org 70 i 18535 Unix-like operating systems have sophisticated process relationships. Parent-child, process groups, sessions, and session leaders. However, the details are not uniform across operating systems like Linux and macOS. POSIX compliant operating systems support sending signals to process groups with a negative PID number. Err codemadness.org 70 i 18536 Sending signals to all processes in a session is not trivial with syscalls. Err codemadness.org 70 i 18537 Child processes started with exec inherit their parent signal configuration. If the parent process is ignoring the SIGHUP signal, for example, this configuration is propagated to the children. Err codemadness.org 70 i 18538 The answer to the “What happens with orphaned process groups” question is not trivial. Err codemadness.org 70 i 18539 Fast Software, the Best Software (https://craigmod.com/essays/fast_software/) Err codemadness.org 70 i 18540 I love fast software. That is, software speedy both in function and interface. Software with minimal to no lag between wanting to activate or manipulate something and the thing happening. Lightness. Err codemadness.org 70 i 18541 Software that’s speedy usually means it’s focused. Like a good tool, it often means that it’s simple, but that’s not necessarily true. Speed in software is probably the most valuable, least valued asset. To me, speedy software is the difference between an application smoothly integrating into your life, and one called upon with great reluctance. Fastness in software is like great margins in a book — makes you smile without necessarily knowing why. Err codemadness.org 70 i 18542 But why is slow bad? Fast software is not always good software, but slow software is rarely able to rise to greatness. Fast software gives the user a chance to “meld” with its toolset. That is, not break flow. When the nerds upon Nerd Hill fight to the death over Vi and Emacs, it’s partly because they have such a strong affinity for the flow of the application and its meldiness. They have invested. The Tool Is Good, so they feel. Not breaking flow is an axiom of great tools. Err codemadness.org 70 i 18543 A typewriter is an excellent tool because, even though it’s slow in a relative sense, every aspect of the machine itself operates as quickly as the user can move. It is focused. There are no delays when making a new line or slamming a key into the paper. Yes, you have to put a new sheet of paper into the machine at the end of a page, but that action becomes part of the flow of using the machine, and the accumulation of paper a visual indication of work completed. It is not wasted work. There are no fundamental mechanical delays in using the machine. The best software inches ever closer to the physical directness of something like a typewriter. (The machine may break down, of course, ribbons need to be changed — but this is maintenance and separate from the use of the tool. I’d be delighted to “maintain” Photoshop if it would lighten it up.) Err codemadness.org 70 i 18544 Beastie Bits Err codemadness.org 70 i 18545 Register for vBSDCon 2019, Sept 5-7 in Reston VA (https://vbsdcon.com/registration) Err codemadness.org 70 i 18546 Register for EuroBSDCon 2019, Sept 19-22 in Lillehammer, Norway (https://2019.eurobsdcon.org/registration/) Err codemadness.org 70 i 18547 Feedback/Questions Err codemadness.org 70 i 18548 Paulo - FreeNAS Question (http://dpaste.com/2GDG7WR#wrap) Err codemadness.org 70 i 18549 Marc - Changing VT without function keys? (http://dpaste.com/1AKC7A1#wrap) Err codemadness.org 70 i 18550 Caleb - Patch, update, and upgrade management (http://dpaste.com/2D6J482#wrap) Err codemadness.org 70 i 18551 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 18552 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 18553 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0312.mp4" type="video/mp4"> Err codemadness.org 70 i 18554 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 18555 </video> Err codemadness.org 70 i 18556 Err codemadness.org 70 i 18557 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, philosophy, package manager, touchpad, porting, wine, evaluation, syzkaller, pinebook pro, process Err codemadness.org 70 i 18558 Err codemadness.org 70 i 18559 The UNIX Philosophy in 2019, why use package managers, touchpad interrupted, Porting wine to amd64 on NetBSD second evaluation report, Enhancing Syzkaller Support for NetBSD, all about the Pinebook Pro, killing a process and all of its descendants, fast software the best software, and more.

Err codemadness.org 70 i 18560 Err codemadness.org 70 i 18561

Headlines

Err codemadness.org 70 i 18562 Err codemadness.org 70 i 18563

The UNIX Philosophy in 2019

Err codemadness.org 70 i 18564 Err codemadness.org 70 i 18565
Err codemadness.org 70 i 18566

Today, Linux and open source rules the world, and the UNIX philosophy is widely considered compulsory. Organizations are striving to build small, focused applications that work collaboratively in a cloud and microservices environment. We rely on the network, as well as HTTP (text) APIs for storing and referencing data. Moreover, nearly all configuration is stored and communicated using text (e.g. YAML, JSON or XML). And while the UNIX philosophy has changed dramatically over the past 5 decades, it hasn’t strayed too far from Ken Thompson’s original definition in 1973:

Err codemadness.org 70 i 18567
Err codemadness.org 70 i 18568 Err codemadness.org 70 i 18569
    Err codemadness.org 70 i 18570
  • We write programs that do one thing and do it well
  • Err codemadness.org 70 i 18571
  • We write programs to work together
  • Err codemadness.org 70 i 18572
  • And we write programs that handle text streams, because that is a universal interface
  • Err codemadness.org 70 i 18573
Err codemadness.org 70 i 18574 Err codemadness.org 70 i 18575
Err codemadness.org 70 i 18576 Err codemadness.org 70 i 18577

Why Use Package Managers?

Err codemadness.org 70 i 18578 Err codemadness.org 70 i 18579
Err codemadness.org 70 i 18580

Valuable research is often hindered or outright prevented by the inability to install software. This need not be the case.

Err codemadness.org 70 i 18581 Err codemadness.org 70 i 18582

Since I began supporting research computing in 1999, I’ve frequently seen researchers struggle for days or weeks trying to install a single open source application. In most cases, they ultimately failed.

Err codemadness.org 70 i 18583 Err codemadness.org 70 i 18584

In many cases, they could have easily installed the software in seconds with one simple command, using a package manager such as Debian packages, FreeBSD ports, MacPorts, or Pkgsrc, just to name a few.

Err codemadness.org 70 i 18585 Err codemadness.org 70 i 18586

Developer websites often contain poorly written instructions for doing “caveman installs”; manually downloading, unpacking, patching, and building the software. The same laborious process must often be followed for other software packages on which it depends, which can sometimes number in the dozens. Many researchers are simply unaware that there are easier ways to install the software they need. Caveman installs are a colossal waste of man-hours. If 1000 people around the globe spend an average of 20 hours each trying to install the same program that could have been installed with a package manager (this is not uncommon), then 20,000 man-hours have been lost that could have gone toward science. How many important discoveries are delayed by this?

Err codemadness.org 70 i 18587 Err codemadness.org 70 i 18588

The elite research institutions have ample funding and dozens of IT staff dedicated to research computing. They can churn out publications even if their operation is inefficient. Most institutions, however, have few or no IT staff dedicated to research, and cannot afford to squander precious man-hours on temporary, one-off software installs. The wise approach for those of us in that situation is to collaborate on making software deployment easier for everyone. If we do so, then even the smallest research groups can leverage that work to be more productive and make more frequent contributions to science.

Err codemadness.org 70 i 18589 Err codemadness.org 70 i 18590

Fortunately, the vast majority of open source software installs can be made trivial for anyone to do for themselves. Modern package managers perform all the same steps as a caveman install, but automatically. Package managers also install dependencies for us automatically.

Err codemadness.org 70 i 18591
Err codemadness.org 70 i 18592 Err codemadness.org 70 i 18593
Err codemadness.org 70 i 18594 Err codemadness.org 70 i 18595

News Roundup

Err codemadness.org 70 i 18596 Err codemadness.org 70 i 18597

Touchpad, Interrupted

Err codemadness.org 70 i 18598 Err codemadness.org 70 i 18599
Err codemadness.org 70 i 18600

For two years I've been driving myself crazy trying to figure out the source of a driver problem on OpenBSD: interrupts never arrived for certain touchpad devices. A couple weeks ago, I put out a public plea asking for help in case any non-OpenBSD developers recognized the problem, but while debugging an unrelated issue over the weekend, I finally solved it.

Err codemadness.org 70 i 18601 Err codemadness.org 70 i 18602

It's been a long journey and it's a technical tale, but here it is.

Err codemadness.org 70 i 18603
Err codemadness.org 70 i 18604 Err codemadness.org 70 i 18605
Err codemadness.org 70 i 18606 Err codemadness.org 70 i 18607

Porting wine to amd64 on NetBSD, second evaluation report

Err codemadness.org 70 i 18608 Err codemadness.org 70 i 18609
    Err codemadness.org 70 i 18610
  • Summary
  • Err codemadness.org 70 i 18611
Err codemadness.org 70 i 18612 Err codemadness.org 70 i 18613
Err codemadness.org 70 i 18614

Presently, Wine on amd64 is in test phase. It seems to work fine with caveats like LD_LIBRARY_PATH which has to be set as 32-bit Xorg libs don't have ${PREFIX}/emul/netbsd32/lib in its rpath section. The latter is due to us extracting 32-bit libs from tarballs in lieu of building 32-bit Xorg on amd64. As previously stated, pkgsrc doesn't search for pkgconfig files in ${PREFIX}/emul/netbsd32/lib which might have inadvertent effects that I am unaware of as of now. I shall be working on these issues during the final coding period. I would like to thank @leot, @maya and @christos for saving me from shooting myself in the foot many a time. I, admittedly, have had times when multiple approaches, which all seemed right at that time, perplexed me. I believe those are times when having a mentor counts, and I have been lucky enough to have really good ones. Once again, thanks to Google for this wonderful opportunity.

Err codemadness.org 70 i 18615
Err codemadness.org 70 i 18616 Err codemadness.org 70 i 18617
Err codemadness.org 70 i 18618 Err codemadness.org 70 i 18619

Enhancing Syzkaller Support for NetBSD, Part 2

Err codemadness.org 70 i 18620 Err codemadness.org 70 i 18621
Err codemadness.org 70 i 18622

As a part of Google Summer of Code’19, I am working on improving the support for Syzkaller kernel fuzzer. Syzkaller is an unsupervised coverage-guided kernel fuzzer, that supports a variety of operating systems including NetBSD. This report details the work done during the second coding period.

Err codemadness.org 70 i 18623 Err codemadness.org 70 i 18624

You can also take a look at the first report to learn more about the initial support that we added. : https://blog.netbsd.org/tnf/entry/enhancing_syzkaller_support_for_netbsd

Err codemadness.org 70 i 18625
Err codemadness.org 70 i 18626 Err codemadness.org 70 i 18627
Err codemadness.org 70 i 18628 Err codemadness.org 70 i 18629

July Update: All about the Pinebook Pro

Err codemadness.org 70 i 18630 Err codemadness.org 70 i 18631
Err codemadness.org 70 i 18632

"So I said I won’t be talking about the BSDs, but I feel like I should at the very least give you a general overview of the RK3399 *BSD functionality. I’ll make it quick. I’ve spoken to *BSD devs whom worked on the RockPro64 and from what I’ve gathered (despite the different *BSDs having varying degree of support for the RK3399 SOC) many of the core features are already supported, which bodes well for *BSD on the Pro. That said, some of the things you’d require on a functional laptop – such as the LCD (using eDP) for instance – will not work on the Pinebook Pro using *BSD as of today. So clearly a degree of work is yet needed for a BSD to run on the device. However, keep in mind that *BSD developers will be receiving their units soon and by the time you receive yours some basic functionality may be available."

Err codemadness.org 70 i 18633
Err codemadness.org 70 i 18634 Err codemadness.org 70 i 18635
Err codemadness.org 70 i 18636 Err codemadness.org 70 i 18637

Killing a process and all of its descendants

Err codemadness.org 70 i 18638 Err codemadness.org 70 i 18639
Err codemadness.org 70 i 18640

Killing processes in a Unix-like system can be trickier than expected. Last week I was debugging an odd issue related to job stopping on Semaphore. More specifically, an issue related to the killing of a running process in a job. Here are the highlights of what I learned:

Err codemadness.org 70 i 18641 Err codemadness.org 70 i 18642

Unix-like operating systems have sophisticated process relationships. Parent-child, process groups, sessions, and session leaders. However, the details are not uniform across operating systems like Linux and macOS. POSIX compliant operating systems support sending signals to process groups with a negative PID number.

Err codemadness.org 70 i 18643 Err codemadness.org 70 i 18644

Sending signals to all processes in a session is not trivial with syscalls.

Err codemadness.org 70 i 18645 Err codemadness.org 70 i 18646

Child processes started with exec inherit their parent signal configuration. If the parent process is ignoring the SIGHUP signal, for example, this configuration is propagated to the children.

Err codemadness.org 70 i 18647 Err codemadness.org 70 i 18648

The answer to the “What happens with orphaned process groups” question is not trivial.

Err codemadness.org 70 i 18649
Err codemadness.org 70 i 18650 Err codemadness.org 70 i 18651
Err codemadness.org 70 i 18652 Err codemadness.org 70 i 18653

Fast Software, the Best Software

Err codemadness.org 70 i 18654 Err codemadness.org 70 i 18655
Err codemadness.org 70 i 18656

I love fast software. That is, software speedy both in function and interface. Software with minimal to no lag between wanting to activate or manipulate something and the thing happening. Lightness.

Err codemadness.org 70 i 18657 Err codemadness.org 70 i 18658

Software that’s speedy usually means it’s focused. Like a good tool, it often means that it’s simple, but that’s not necessarily true. Speed in software is probably the most valuable, least valued asset. To me, speedy software is the difference between an application smoothly integrating into your life, and one called upon with great reluctance. Fastness in software is like great margins in a book — makes you smile without necessarily knowing why.

Err codemadness.org 70 i 18659 Err codemadness.org 70 i 18660

But why is slow bad? Fast software is not always good software, but slow software is rarely able to rise to greatness. Fast software gives the user a chance to “meld” with its toolset. That is, not break flow. When the nerds upon Nerd Hill fight to the death over Vi and Emacs, it’s partly because they have such a strong affinity for the flow of the application and its meldiness. They have invested. The Tool Is Good, so they feel. Not breaking flow is an axiom of great tools.

Err codemadness.org 70 i 18661 Err codemadness.org 70 i 18662

A typewriter is an excellent tool because, even though it’s slow in a relative sense, every aspect of the machine itself operates as quickly as the user can move. It is focused. There are no delays when making a new line or slamming a key into the paper. Yes, you have to put a new sheet of paper into the machine at the end of a page, but that action becomes part of the flow of using the machine, and the accumulation of paper a visual indication of work completed. It is not wasted work. There are no fundamental mechanical delays in using the machine. The best software inches ever closer to the physical directness of something like a typewriter. (The machine may break down, of course, ribbons need to be changed — but this is maintenance and separate from the use of the tool. I’d be delighted to “maintain” Photoshop if it would lighten it up.)

Err codemadness.org 70 i 18663
Err codemadness.org 70 i 18664 Err codemadness.org 70 i 18665
Err codemadness.org 70 i 18666 Err codemadness.org 70 i 18667

Beastie Bits

Err codemadness.org 70 i 18668 Err codemadness.org 70 i 18669 Err codemadness.org 70 i 18673 Err codemadness.org 70 i 18674
Err codemadness.org 70 i 18675 Err codemadness.org 70 i 18676

Feedback/Questions

Err codemadness.org 70 i 18677 Err codemadness.org 70 i 18678 Err codemadness.org 70 i 18683 Err codemadness.org 70 i 18684
Err codemadness.org 70 i 18685 Err codemadness.org 70 i 18686
    Err codemadness.org 70 i 18687
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 18688
Err codemadness.org 70 i 18689 Err codemadness.org 70 i 18690
Err codemadness.org 70 i 18691 Err codemadness.org 70 i 18692 ]]> Err codemadness.org 70 i 18696
Err codemadness.org 70 i 18697 Err codemadness.org 70 i 18698 The UNIX Philosophy in 2019, why use package managers, touchpad interrupted, Porting wine to amd64 on NetBSD second evaluation report, Enhancing Syzkaller Support for NetBSD, all about the Pinebook Pro, killing a process and all of its descendants, fast software the best software, and more.

Err codemadness.org 70 i 18699 Err codemadness.org 70 i 18700

Headlines

Err codemadness.org 70 i 18701 Err codemadness.org 70 i 18702

The UNIX Philosophy in 2019

Err codemadness.org 70 i 18703 Err codemadness.org 70 i 18704
Err codemadness.org 70 i 18705

Today, Linux and open source rules the world, and the UNIX philosophy is widely considered compulsory. Organizations are striving to build small, focused applications that work collaboratively in a cloud and microservices environment. We rely on the network, as well as HTTP (text) APIs for storing and referencing data. Moreover, nearly all configuration is stored and communicated using text (e.g. YAML, JSON or XML). And while the UNIX philosophy has changed dramatically over the past 5 decades, it hasn’t strayed too far from Ken Thompson’s original definition in 1973:

Err codemadness.org 70 i 18706
Err codemadness.org 70 i 18707 Err codemadness.org 70 i 18708
    Err codemadness.org 70 i 18709
  • We write programs that do one thing and do it well
  • Err codemadness.org 70 i 18710
  • We write programs to work together
  • Err codemadness.org 70 i 18711
  • And we write programs that handle text streams, because that is a universal interface
  • Err codemadness.org 70 i 18712
Err codemadness.org 70 i 18713 Err codemadness.org 70 i 18714
Err codemadness.org 70 i 18715 Err codemadness.org 70 i 18716

Why Use Package Managers?

Err codemadness.org 70 i 18717 Err codemadness.org 70 i 18718
Err codemadness.org 70 i 18719

Valuable research is often hindered or outright prevented by the inability to install software. This need not be the case.

Err codemadness.org 70 i 18720 Err codemadness.org 70 i 18721

Since I began supporting research computing in 1999, I’ve frequently seen researchers struggle for days or weeks trying to install a single open source application. In most cases, they ultimately failed.

Err codemadness.org 70 i 18722 Err codemadness.org 70 i 18723

In many cases, they could have easily installed the software in seconds with one simple command, using a package manager such as Debian packages, FreeBSD ports, MacPorts, or Pkgsrc, just to name a few.

Err codemadness.org 70 i 18724 Err codemadness.org 70 i 18725

Developer websites often contain poorly written instructions for doing “caveman installs”; manually downloading, unpacking, patching, and building the software. The same laborious process must often be followed for other software packages on which it depends, which can sometimes number in the dozens. Many researchers are simply unaware that there are easier ways to install the software they need. Caveman installs are a colossal waste of man-hours. If 1000 people around the globe spend an average of 20 hours each trying to install the same program that could have been installed with a package manager (this is not uncommon), then 20,000 man-hours have been lost that could have gone toward science. How many important discoveries are delayed by this?

Err codemadness.org 70 i 18726 Err codemadness.org 70 i 18727

The elite research institutions have ample funding and dozens of IT staff dedicated to research computing. They can churn out publications even if their operation is inefficient. Most institutions, however, have few or no IT staff dedicated to research, and cannot afford to squander precious man-hours on temporary, one-off software installs. The wise approach for those of us in that situation is to collaborate on making software deployment easier for everyone. If we do so, then even the smallest research groups can leverage that work to be more productive and make more frequent contributions to science.

Err codemadness.org 70 i 18728 Err codemadness.org 70 i 18729

Fortunately, the vast majority of open source software installs can be made trivial for anyone to do for themselves. Modern package managers perform all the same steps as a caveman install, but automatically. Package managers also install dependencies for us automatically.

Err codemadness.org 70 i 18730
Err codemadness.org 70 i 18731 Err codemadness.org 70 i 18732
Err codemadness.org 70 i 18733 Err codemadness.org 70 i 18734

News Roundup

Err codemadness.org 70 i 18735 Err codemadness.org 70 i 18736

Touchpad, Interrupted

Err codemadness.org 70 i 18737 Err codemadness.org 70 i 18738
Err codemadness.org 70 i 18739

For two years I've been driving myself crazy trying to figure out the source of a driver problem on OpenBSD: interrupts never arrived for certain touchpad devices. A couple weeks ago, I put out a public plea asking for help in case any non-OpenBSD developers recognized the problem, but while debugging an unrelated issue over the weekend, I finally solved it.

Err codemadness.org 70 i 18740 Err codemadness.org 70 i 18741

It's been a long journey and it's a technical tale, but here it is.

Err codemadness.org 70 i 18742
Err codemadness.org 70 i 18743 Err codemadness.org 70 i 18744
Err codemadness.org 70 i 18745 Err codemadness.org 70 i 18746

Porting wine to amd64 on NetBSD, second evaluation report

Err codemadness.org 70 i 18747 Err codemadness.org 70 i 18748
    Err codemadness.org 70 i 18749
  • Summary
  • Err codemadness.org 70 i 18750
Err codemadness.org 70 i 18751 Err codemadness.org 70 i 18752
Err codemadness.org 70 i 18753

Presently, Wine on amd64 is in test phase. It seems to work fine with caveats like LD_LIBRARY_PATH which has to be set as 32-bit Xorg libs don't have ${PREFIX}/emul/netbsd32/lib in its rpath section. The latter is due to us extracting 32-bit libs from tarballs in lieu of building 32-bit Xorg on amd64. As previously stated, pkgsrc doesn't search for pkgconfig files in ${PREFIX}/emul/netbsd32/lib which might have inadvertent effects that I am unaware of as of now. I shall be working on these issues during the final coding period. I would like to thank @leot, @maya and @christos for saving me from shooting myself in the foot many a time. I, admittedly, have had times when multiple approaches, which all seemed right at that time, perplexed me. I believe those are times when having a mentor counts, and I have been lucky enough to have really good ones. Once again, thanks to Google for this wonderful opportunity.

Err codemadness.org 70 i 18754
Err codemadness.org 70 i 18755 Err codemadness.org 70 i 18756
Err codemadness.org 70 i 18757 Err codemadness.org 70 i 18758

Enhancing Syzkaller Support for NetBSD, Part 2

Err codemadness.org 70 i 18759 Err codemadness.org 70 i 18760
Err codemadness.org 70 i 18761

As a part of Google Summer of Code’19, I am working on improving the support for Syzkaller kernel fuzzer. Syzkaller is an unsupervised coverage-guided kernel fuzzer, that supports a variety of operating systems including NetBSD. This report details the work done during the second coding period.

Err codemadness.org 70 i 18762 Err codemadness.org 70 i 18763

You can also take a look at the first report to learn more about the initial support that we added. : https://blog.netbsd.org/tnf/entry/enhancing_syzkaller_support_for_netbsd

Err codemadness.org 70 i 18764
Err codemadness.org 70 i 18765 Err codemadness.org 70 i 18766
Err codemadness.org 70 i 18767 Err codemadness.org 70 i 18768

July Update: All about the Pinebook Pro

Err codemadness.org 70 i 18769 Err codemadness.org 70 i 18770
Err codemadness.org 70 i 18771

"So I said I won’t be talking about the BSDs, but I feel like I should at the very least give you a general overview of the RK3399 *BSD functionality. I’ll make it quick. I’ve spoken to *BSD devs whom worked on the RockPro64 and from what I’ve gathered (despite the different *BSDs having varying degree of support for the RK3399 SOC) many of the core features are already supported, which bodes well for *BSD on the Pro. That said, some of the things you’d require on a functional laptop – such as the LCD (using eDP) for instance – will not work on the Pinebook Pro using *BSD as of today. So clearly a degree of work is yet needed for a BSD to run on the device. However, keep in mind that *BSD developers will be receiving their units soon and by the time you receive yours some basic functionality may be available."

Err codemadness.org 70 i 18772
Err codemadness.org 70 i 18773 Err codemadness.org 70 i 18774
Err codemadness.org 70 i 18775 Err codemadness.org 70 i 18776

Killing a process and all of its descendants

Err codemadness.org 70 i 18777 Err codemadness.org 70 i 18778
Err codemadness.org 70 i 18779

Killing processes in a Unix-like system can be trickier than expected. Last week I was debugging an odd issue related to job stopping on Semaphore. More specifically, an issue related to the killing of a running process in a job. Here are the highlights of what I learned:

Err codemadness.org 70 i 18780 Err codemadness.org 70 i 18781

Unix-like operating systems have sophisticated process relationships. Parent-child, process groups, sessions, and session leaders. However, the details are not uniform across operating systems like Linux and macOS. POSIX compliant operating systems support sending signals to process groups with a negative PID number.

Err codemadness.org 70 i 18782 Err codemadness.org 70 i 18783

Sending signals to all processes in a session is not trivial with syscalls.

Err codemadness.org 70 i 18784 Err codemadness.org 70 i 18785

Child processes started with exec inherit their parent signal configuration. If the parent process is ignoring the SIGHUP signal, for example, this configuration is propagated to the children.

Err codemadness.org 70 i 18786 Err codemadness.org 70 i 18787

The answer to the “What happens with orphaned process groups” question is not trivial.

Err codemadness.org 70 i 18788
Err codemadness.org 70 i 18789 Err codemadness.org 70 i 18790
Err codemadness.org 70 i 18791 Err codemadness.org 70 i 18792

Fast Software, the Best Software

Err codemadness.org 70 i 18793 Err codemadness.org 70 i 18794
Err codemadness.org 70 i 18795

I love fast software. That is, software speedy both in function and interface. Software with minimal to no lag between wanting to activate or manipulate something and the thing happening. Lightness.

Err codemadness.org 70 i 18796 Err codemadness.org 70 i 18797

Software that’s speedy usually means it’s focused. Like a good tool, it often means that it’s simple, but that’s not necessarily true. Speed in software is probably the most valuable, least valued asset. To me, speedy software is the difference between an application smoothly integrating into your life, and one called upon with great reluctance. Fastness in software is like great margins in a book — makes you smile without necessarily knowing why.

Err codemadness.org 70 i 18798 Err codemadness.org 70 i 18799

But why is slow bad? Fast software is not always good software, but slow software is rarely able to rise to greatness. Fast software gives the user a chance to “meld” with its toolset. That is, not break flow. When the nerds upon Nerd Hill fight to the death over Vi and Emacs, it’s partly because they have such a strong affinity for the flow of the application and its meldiness. They have invested. The Tool Is Good, so they feel. Not breaking flow is an axiom of great tools.

Err codemadness.org 70 i 18800 Err codemadness.org 70 i 18801

A typewriter is an excellent tool because, even though it’s slow in a relative sense, every aspect of the machine itself operates as quickly as the user can move. It is focused. There are no delays when making a new line or slamming a key into the paper. Yes, you have to put a new sheet of paper into the machine at the end of a page, but that action becomes part of the flow of using the machine, and the accumulation of paper a visual indication of work completed. It is not wasted work. There are no fundamental mechanical delays in using the machine. The best software inches ever closer to the physical directness of something like a typewriter. (The machine may break down, of course, ribbons need to be changed — but this is maintenance and separate from the use of the tool. I’d be delighted to “maintain” Photoshop if it would lighten it up.)

Err codemadness.org 70 i 18802
Err codemadness.org 70 i 18803 Err codemadness.org 70 i 18804
Err codemadness.org 70 i 18805 Err codemadness.org 70 i 18806

Beastie Bits

Err codemadness.org 70 i 18807 Err codemadness.org 70 i 18808 Err codemadness.org 70 i 18812 Err codemadness.org 70 i 18813
Err codemadness.org 70 i 18814 Err codemadness.org 70 i 18815

Feedback/Questions

Err codemadness.org 70 i 18816 Err codemadness.org 70 i 18817 Err codemadness.org 70 i 18822 Err codemadness.org 70 i 18823
Err codemadness.org 70 i 18824 Err codemadness.org 70 i 18825
    Err codemadness.org 70 i 18826
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 18827
Err codemadness.org 70 i 18828 Err codemadness.org 70 i 18829
Err codemadness.org 70 i 18830 Err codemadness.org 70 i 18831 ]]> Err codemadness.org 70 i 18835
Err codemadness.org 70 i 18836 https://fireside.fm/player/v2/FYhhasNR+_QnomGy0 Err codemadness.org 70 i 18837 Err codemadness.org 70 i 18838 ]]> Err codemadness.org 70 i 18839 Err codemadness.org 70 i 18840
Err codemadness.org 70 i 18841 Err codemadness.org 70 i 18842 311: Conference Gear Breakdown Err codemadness.org 70 i 18843 https://www.bsdnow.tv/311 Err codemadness.org 70 i 18844 1d57e61a-57d9-4d3b-ac9a-c3a4c061da07 Err codemadness.org 70 i 18845 Thu, 15 Aug 2019 06:00:00 -0700 Err codemadness.org 70 i 18846 Allan Jude Err codemadness.org 70 i 18847 Err codemadness.org 70 i 18848 full Err codemadness.org 70 i 18849 Allan Jude Err codemadness.org 70 i 18850 Err codemadness.org 70 i 18851 NetBSD 9.0 release process has started, xargs, a tale of two spellcheckers, Adapting TriforceAFL for NetBSD, Exploiting a no-name freebsd kernel vulnerability, and more. Err codemadness.org 70 i 18852 1:13:25 Err codemadness.org 70 i 18853 no Err codemadness.org 70 i 18854 Err codemadness.org 70 i 18855 NetBSD 9.0 release process has started, xargs, a tale of two spellcheckers, Adapting TriforceAFL for NetBSD, Exploiting a no-name freebsd kernel vulnerability, and more. Err codemadness.org 70 i 18856 Headlines Err codemadness.org 70 i 18857 NetBSD 9.0 release process has started (https://mail-index.netbsd.org/netbsd-announce/2019/07/31/msg000301.html) Err codemadness.org 70 i 18858 If you have been following source-changes, you may have noticed the creation of the netbsd-9 branch! It has some really exciting items that we worked on: Err codemadness.org 70 i 18859 + New AArch64 architecture support: Err codemadness.org 70 i 18860 + Symmetric and asymmetrical multiprocessing support (aka big.LITTLE) Err codemadness.org 70 i 18861 + Support for running 32-bit binaries Err codemadness.org 70 i 18862 + UEFI and ACPI support Err codemadness.org 70 i 18863 + Support for SBSA/SBBR (server-class) hardware. Err codemadness.org 70 i 18864 + The FDT-ization of many ARM boards: Err codemadness.org 70 i 18865 + the 32-bit GENERIC kernel lists 129 different DTS configurations Err codemadness.org 70 i 18866 + the 64-bit GENERIC64 kernel lists 74 different DTS configurations Err codemadness.org 70 i 18867 + All supported by a single kernel, without requiring per-board configuration. Err codemadness.org 70 i 18868 + Graphics driver update, matching Linux 4.4, adding support for up to Kaby Lake based Intel graphics devices. Err codemadness.org 70 i 18869 + ZFS has been updated to a modern version and seen many bugfixes. Err codemadness.org 70 i 18870 + New hardware-accelerated virtualization via NVMM. Err codemadness.org 70 i 18871 + NPF performance improvements and bug fixes. A new lookup algorithm, thmap, is now the default. Err codemadness.org 70 i 18872 + NVMe performance improvements Err codemadness.org 70 i 18873 + Optional kernel ASLR support, and partial kernel ASLR for the default configuration. Err codemadness.org 70 i 18874 + Kernel sanitizers: Err codemadness.org 70 i 18875 + KLEAK, detecting memory leaks Err codemadness.org 70 i 18876 + KASAN, detecting memory overruns Err codemadness.org 70 i 18877 + KUBSAN, detecting undefined behaviour Err codemadness.org 70 i 18878 + These have been used together with continuous fuzzing via the syzkaller project to find many bugs that were fixed. Err codemadness.org 70 i 18879 + The removal of outdated networking components such as ISDN and all of its drivers Err codemadness.org 70 i 18880 + The installer is now capable of performing GPT UEFI installations. Err codemadness.org 70 i 18881 + Dramatically improved support for userland sanitizers, as well as the option to build all of NetBSD's userland using them for bug-finding. Err codemadness.org 70 i 18882 + Update to graphics userland: Mesa was updated to 18.3.4, and llvmpipe is now available for several architectures, providing 3D graphics even in the absence of a supported GPU. Err codemadness.org 70 i 18883 We try to test NetBSD as best as we can, but your testing can help NetBSD 9.0 a great release. Please test it and let us know of any bugs you find. Err codemadness.org 70 i 18884 + Binaries are available at https://nycdn.netbsd.org/pub/NetBSD-daily/netbsd-9/latest/ Err codemadness.org 70 i 18885 xargs wtf (https://medium.com/@aarontharris/xargs-wtf-34d2618286b7) Err codemadness.org 70 i 18886 xargs is probably one of the more difficult to understand of the unix command arsenal and of course that just means it’s one of the most useful too. Err codemadness.org 70 i 18887 I discovered a handy trick that I thought was worth a share. Please note there are probably other (better) ways to do this but I did my stackoverflow research and found nothing better. Err codemadness.org 70 i 18888 xargs — at least how I’ve most utilized it — is handy for taking some number of lines as input and doing some work per line. It’s hard to be more specific than that as it does so much else. Err codemadness.org 70 i 18889 It literally took me an hour of piecing together random man pages + tips from 11 year olds on stack overflow, but eventually I produced this gem: Err codemadness.org 70 i 18890 This is an example of how to find files matching a certain pattern and rename each of them. It sounds so trivial (and it is) but it demonstrates some cool tricks in an easy concept. Err codemadness.org 70 i 18891 News Roundup Err codemadness.org 70 i 18892 PkgSrc: A Tale of Two Spellcheckers (https://bentsukun.ch/posts/pkgsrccon-2019/) Err codemadness.org 70 i 18893 This is a transcript of the talk I gave at pkgsrcCon 2019 in Cambridge, UK. It is about spellcheckers, but there are much more general software engineering lessons that we can learn from this case study. Err codemadness.org 70 i 18894 The reason I got into this subject at all was my paternal leave last year, when I finally had some more time to spend working on pkgsrc. It was a tiny item in the enormous TODO file at the top of the source tree (“update enchant to version 2.2”) that made me go into this rabbit hole. Err codemadness.org 70 i 18895 Adapting TriforceAFL for NetBSD, Part 2 (https://blog.netbsd.org/tnf/entry/adapting_triforceafl_for_netbsd_part1) Err codemadness.org 70 i 18896 I have been working on adapting TriforceAFL for NetBSD kernel syscall fuzzing. This blog post summarizes the work done until the second evaluation. Err codemadness.org 70 i 18897 For work done during the first coding period, check out this post. Err codemadness.org 70 i 18898 Summary Err codemadness.org 70 i 18899 > So far, the TriforceNetBSDSyscallFuzzer has been made available in the form of a pkgsrc package with the ability to fuzz most of NetBSD syscalls. In the final coding period of GSoC. I plan to analyse the crashes that were found until now. Integrate sanitizers, try and find more bugs and finally wrap up neatly with detailed documentation. Err codemadness.org 70 i 18900 > Last but not least, I would like to thank my mentor, Kamil Rytarowski for helping me through the process and guiding me. It has been a wonderful learning experience so far! Err codemadness.org 70 i 18901 Exploiting a no-name freebsd kernel vulnerability (https://www.synacktiv.com/posts/exploit/exploiting-a-no-name-freebsd-kernel-vulnerability.html) Err codemadness.org 70 i 18902 A new patch has been recently shipped in FreeBSD kernels to fix a vulnerability (cve-2019-5602) present in the cdrom device. In this post, we will introduce the bug and discuss its exploitation on pre/post-SMEP FreeBSD revisions. Err codemadness.org 70 i 18903 > A closer look at the commit 6bcf6e3 shows that when invoking the CDIOCREADSUBCHANNEL_SYSSPACE ioctl, data are copied with bcopy instead of the copyout primitive. This endows a local attacker belonging to the operator group with an arbitrary write primitive in the kernel memory. Err codemadness.org 70 i 18904 [Allan and Benedicts Conference Gear Breakdown] Err codemadness.org 70 i 18905 Err codemadness.org 70 i 18906 Benedict’s Gear: Err codemadness.org 70 i 18907 GlocalMe G3 Mobile Travel HotSpot and Powerbank (https://www.glocalme.com/CA/en-US/cloudsim/g3) Err codemadness.org 70 i 18908 Mogics Power Bagel (http://www.mogics.com/3824-2) Err codemadness.org 70 i 18909 Charby Sense Power Cable (https://charbycharge.com/charby-sense-worlds-smartest-auto-cutoff-cable/) Err codemadness.org 70 i 18910 Allan’s Gear: Err codemadness.org 70 i 18911 Huawei E5770s-320 4G LTE 150 Mbps Mobile WiFi Pro (https://smile.amazon.com/gp/product/B013CEGGKI/) Err codemadness.org 70 i 18912 AOW Global Data SIM Card for On-Demand 4G LTE Mobile Data in Over 90 Countries (https://smile.amazon.com/dp/B071HJFX27/) Err codemadness.org 70 i 18913 All my devices charge from USB-C, so that is great Err codemadness.org 70 i 18914 More USB thumb drives than strictly necessary Err codemadness.org 70 i 18915 My Lenovo X270 laptop running FreeBSD 13-current Err codemadness.org 70 i 18916 My 2016 Macbook Pro (a prize from the raffle at vBSDCon 2017) that I use for email and video conferencing to preserve battery on my FreeBSD machine for work Err codemadness.org 70 i 18917 Beastie Bits Err codemadness.org 70 i 18918 Replacing the Unix tradition (Warning may be rage inducing) (https://www.youtube.com/watch?v=L9v4Mg8wi4U&feature=youtu.be) Err codemadness.org 70 i 18919 Installing OpenBSD over remote serial on the AtomicPI (https://www.thanassis.space/remoteserial.html#remoteserial) Err codemadness.org 70 i 18920 Zen 2 and DragonFly (https://www.dragonflydigest.com/2019/08/05/23294.html) Err codemadness.org 70 i 18921 Improve Docking on FreeBSD (https://blog.yukiisbo.red/posts/2019/05/improve-docking-on-freebsd/) Err codemadness.org 70 i 18922 Register for vBSDCon 2019, Sept 5-7 in Reston VA. Early bird ends August 15th. (https://vbsdcon.com/registration) Err codemadness.org 70 i 18923 Register for EuroBSDCon 2019, Sept 19-22 in Lillehammer, Norway (https://2019.eurobsdcon.org/registration/) Err codemadness.org 70 i 18924 Feedback/Questions Err codemadness.org 70 i 18925 JT - Congrats (http://dpaste.com/0D7Y31E#wrap) Err codemadness.org 70 i 18926 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 18927 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 18928 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0311.mp4" type="video/mp4"> Err codemadness.org 70 i 18929 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 18930 </video> Err codemadness.org 70 i 18931 Err codemadness.org 70 i 18932 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, xargs, spellchecker, tale, triforceafl, kernel, vulnerability, conference, gear, tools, gadgets, utilities Err codemadness.org 70 i 18933 Err codemadness.org 70 i 18934 NetBSD 9.0 release process has started, xargs, a tale of two spellcheckers, Adapting TriforceAFL for NetBSD, Exploiting a no-name freebsd kernel vulnerability, and more.

Err codemadness.org 70 i 18935 Err codemadness.org 70 i 18936

Headlines

Err codemadness.org 70 i 18937 Err codemadness.org 70 i 18938

NetBSD 9.0 release process has started

Err codemadness.org 70 i 18939 Err codemadness.org 70 i 18940
Err codemadness.org 70 i 18941

If you have been following source-changes, you may have noticed the creation of the netbsd-9 branch! It has some really exciting items that we worked on:

Err codemadness.org 70 i 18942 Err codemadness.org 70 i 18943
    Err codemadness.org 70 i 18944
  • New AArch64 architecture support: Err codemadness.org 70 i 18945 Err codemadness.org 70 i 18946
      Err codemadness.org 70 i 18947
    • Symmetric and asymmetrical multiprocessing support (aka big.LITTLE)
    • Err codemadness.org 70 i 18948
    • Support for running 32-bit binaries
    • Err codemadness.org 70 i 18949
    • UEFI and ACPI support
    • Err codemadness.org 70 i 18950
    • Support for SBSA/SBBR (server-class) hardware.
    • Err codemadness.org 70 i 18951
  • Err codemadness.org 70 i 18952
  • The FDT-ization of many ARM boards: Err codemadness.org 70 i 18953 Err codemadness.org 70 i 18954
      Err codemadness.org 70 i 18955
    • the 32-bit GENERIC kernel lists 129 different DTS configurations
    • Err codemadness.org 70 i 18956
    • the 64-bit GENERIC64 kernel lists 74 different DTS configurations
    • Err codemadness.org 70 i 18957
    • All supported by a single kernel, without requiring per-board configuration.
    • Err codemadness.org 70 i 18958
  • Err codemadness.org 70 i 18959
  • Graphics driver update, matching Linux 4.4, adding support for up to Kaby Lake based Intel graphics devices.
  • Err codemadness.org 70 i 18960
  • ZFS has been updated to a modern version and seen many bugfixes.
  • Err codemadness.org 70 i 18961
  • New hardware-accelerated virtualization via NVMM.
  • Err codemadness.org 70 i 18962
  • NPF performance improvements and bug fixes. A new lookup algorithm, thmap, is now the default.
  • Err codemadness.org 70 i 18963
  • NVMe performance improvements
  • Err codemadness.org 70 i 18964
  • Optional kernel ASLR support, and partial kernel ASLR for the default configuration.
  • Err codemadness.org 70 i 18965
  • Kernel sanitizers: Err codemadness.org 70 i 18966 Err codemadness.org 70 i 18967
      Err codemadness.org 70 i 18968
    • KLEAK, detecting memory leaks
    • Err codemadness.org 70 i 18969
    • KASAN, detecting memory overruns
    • Err codemadness.org 70 i 18970
    • KUBSAN, detecting undefined behaviour
    • Err codemadness.org 70 i 18971
    • These have been used together with continuous fuzzing via the syzkaller project to find many bugs that were fixed.
    • Err codemadness.org 70 i 18972
  • Err codemadness.org 70 i 18973
  • The removal of outdated networking components such as ISDN and all of its drivers
  • Err codemadness.org 70 i 18974
  • The installer is now capable of performing GPT UEFI installations.
  • Err codemadness.org 70 i 18975
  • Dramatically improved support for userland sanitizers, as well as the option to build all of NetBSD's userland using them for bug-finding.
  • Err codemadness.org 70 i 18976
  • Update to graphics userland: Mesa was updated to 18.3.4, and llvmpipe is now available for several architectures, providing 3D graphics even in the absence of a supported GPU.
  • Err codemadness.org 70 i 18977
Err codemadness.org 70 i 18978 Err codemadness.org 70 i 18979

We try to test NetBSD as best as we can, but your testing can help NetBSD 9.0 a great release. Please test it and let us know of any bugs you find.

Err codemadness.org 70 i 18980 Err codemadness.org 70 i 18981 Err codemadness.org 70 i 18984
Err codemadness.org 70 i 18985 Err codemadness.org 70 i 18986
Err codemadness.org 70 i 18987 Err codemadness.org 70 i 18988

xargs wtf

Err codemadness.org 70 i 18989 Err codemadness.org 70 i 18990
Err codemadness.org 70 i 18991

xargs is probably one of the more difficult to understand of the unix command arsenal and of course that just means it’s one of the most useful too.
Err codemadness.org 70 i 18992 I discovered a handy trick that I thought was worth a share. Please note there are probably other (better) ways to do this but I did my stackoverflow research and found nothing better.
Err codemadness.org 70 i 18993 xargs — at least how I’ve most utilized it — is handy for taking some number of lines as input and doing some work per line. It’s hard to be more specific than that as it does so much else.
Err codemadness.org 70 i 18994 It literally took me an hour of piecing together random man pages + tips from 11 year olds on stack overflow, but eventually I produced this gem:
Err codemadness.org 70 i 18995 This is an example of how to find files matching a certain pattern and rename each of them. It sounds so trivial (and it is) but it demonstrates some cool tricks in an easy concept.

Err codemadness.org 70 i 18996
Err codemadness.org 70 i 18997 Err codemadness.org 70 i 18998
Err codemadness.org 70 i 18999 Err codemadness.org 70 i 19000

News Roundup

Err codemadness.org 70 i 19001 Err codemadness.org 70 i 19002

PkgSrc: A Tale of Two Spellcheckers

Err codemadness.org 70 i 19003 Err codemadness.org 70 i 19004
Err codemadness.org 70 i 19005

This is a transcript of the talk I gave at pkgsrcCon 2019 in Cambridge, UK. It is about spellcheckers, but there are much more general software engineering lessons that we can learn from this case study.
Err codemadness.org 70 i 19006 The reason I got into this subject at all was my paternal leave last year, when I finally had some more time to spend working on pkgsrc. It was a tiny item in the enormous TODO file at the top of the source tree (“update enchant to version 2.2”) that made me go into this rabbit hole.

Err codemadness.org 70 i 19007
Err codemadness.org 70 i 19008 Err codemadness.org 70 i 19009
Err codemadness.org 70 i 19010 Err codemadness.org 70 i 19011

Adapting TriforceAFL for NetBSD, Part 2

Err codemadness.org 70 i 19012 Err codemadness.org 70 i 19013
Err codemadness.org 70 i 19014

I have been working on adapting TriforceAFL for NetBSD kernel syscall fuzzing. This blog post summarizes the work done until the second evaluation.
Err codemadness.org 70 i 19015 For work done during the first coding period, check out this post.

Err codemadness.org 70 i 19016
Err codemadness.org 70 i 19017 Err codemadness.org 70 i 19018
    Err codemadness.org 70 i 19019
  • Summary Err codemadness.org 70 i 19020 > So far, the TriforceNetBSDSyscallFuzzer has been made available in the form of a pkgsrc package with the ability to fuzz most of NetBSD syscalls. In the final coding period of GSoC. I plan to analyse the crashes that were found until now. Integrate sanitizers, try and find more bugs and finally wrap up neatly with detailed documentation. Err codemadness.org 70 i 19021 > Last but not least, I would like to thank my mentor, Kamil Rytarowski for helping me through the process and guiding me. It has been a wonderful learning experience so far!
  • Err codemadness.org 70 i 19022
Err codemadness.org 70 i 19023 Err codemadness.org 70 i 19024
Err codemadness.org 70 i 19025 Err codemadness.org 70 i 19026

Exploiting a no-name freebsd kernel vulnerability

Err codemadness.org 70 i 19027 Err codemadness.org 70 i 19028
    Err codemadness.org 70 i 19029
  • A new patch has been recently shipped in FreeBSD kernels to fix a vulnerability (cve-2019-5602) present in the cdrom device. In this post, we will introduce the bug and discuss its exploitation on pre/post-SMEP FreeBSD revisions. Err codemadness.org 70 i 19030 > A closer look at the commit 6bcf6e3 shows that when invoking the CDIOCREADSUBCHANNEL_SYSSPACE ioctl, data are copied with bcopy instead of the copyout primitive. This endows a local attacker belonging to the operator group with an arbitrary write primitive in the kernel memory.
  • Err codemadness.org 70 i 19031
Err codemadness.org 70 i 19032 Err codemadness.org 70 i 19033
Err codemadness.org 70 i 19034 Err codemadness.org 70 i 19035

[Allan and Benedicts Conference Gear Breakdown]

Err codemadness.org 70 i 19036 Err codemadness.org 70 i 19037
    Err codemadness.org 70 i 19038
  • Err codemadness.org 70 i 19039
  • Benedict’s Gear:

    Err codemadness.org 70 i 19040 Err codemadness.org 70 i 19041
    Err codemadness.org 70 i 19042

    GlocalMe G3 Mobile Travel HotSpot and Powerbank
    Err codemadness.org 70 i 19043 Mogics Power Bagel
    Err codemadness.org 70 i 19044 Charby Sense Power Cable

    Err codemadness.org 70 i 19045
  • Err codemadness.org 70 i 19046
  • Allan’s Gear:

    Err codemadness.org 70 i 19047 Err codemadness.org 70 i 19048
    Err codemadness.org 70 i 19049

    Huawei E5770s-320 4G LTE 150 Mbps Mobile WiFi Pro
    Err codemadness.org 70 i 19050 AOW Global Data SIM Card for On-Demand 4G LTE Mobile Data in Over 90 Countries
    Err codemadness.org 70 i 19051 All my devices charge from USB-C, so that is great
    Err codemadness.org 70 i 19052 More USB thumb drives than strictly necessary
    Err codemadness.org 70 i 19053 My Lenovo X270 laptop running FreeBSD 13-current
    Err codemadness.org 70 i 19054 My 2016 Macbook Pro (a prize from the raffle at vBSDCon 2017) that I use for email and video conferencing to preserve battery on my FreeBSD machine for work

    Err codemadness.org 70 i 19055
  • Err codemadness.org 70 i 19056
Err codemadness.org 70 i 19057 Err codemadness.org 70 i 19058
Err codemadness.org 70 i 19059 Err codemadness.org 70 i 19060

Beastie Bits

Err codemadness.org 70 i 19061 Err codemadness.org 70 i 19062 Err codemadness.org 70 i 19070 Err codemadness.org 70 i 19071
Err codemadness.org 70 i 19072 Err codemadness.org 70 i 19073

Feedback/Questions

Err codemadness.org 70 i 19074 Err codemadness.org 70 i 19075
    Err codemadness.org 70 i 19076
  • JT - Congrats
  • Err codemadness.org 70 i 19077
Err codemadness.org 70 i 19078 Err codemadness.org 70 i 19079
Err codemadness.org 70 i 19080 Err codemadness.org 70 i 19081
    Err codemadness.org 70 i 19082
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 19083
Err codemadness.org 70 i 19084 Err codemadness.org 70 i 19085
Err codemadness.org 70 i 19086 Err codemadness.org 70 i 19087 ]]> Err codemadness.org 70 i 19091
Err codemadness.org 70 i 19092 Err codemadness.org 70 i 19093 NetBSD 9.0 release process has started, xargs, a tale of two spellcheckers, Adapting TriforceAFL for NetBSD, Exploiting a no-name freebsd kernel vulnerability, and more.

Err codemadness.org 70 i 19094 Err codemadness.org 70 i 19095

Headlines

Err codemadness.org 70 i 19096 Err codemadness.org 70 i 19097

NetBSD 9.0 release process has started

Err codemadness.org 70 i 19098 Err codemadness.org 70 i 19099
Err codemadness.org 70 i 19100

If you have been following source-changes, you may have noticed the creation of the netbsd-9 branch! It has some really exciting items that we worked on:

Err codemadness.org 70 i 19101 Err codemadness.org 70 i 19102
    Err codemadness.org 70 i 19103
  • New AArch64 architecture support: Err codemadness.org 70 i 19104 Err codemadness.org 70 i 19105
      Err codemadness.org 70 i 19106
    • Symmetric and asymmetrical multiprocessing support (aka big.LITTLE)
    • Err codemadness.org 70 i 19107
    • Support for running 32-bit binaries
    • Err codemadness.org 70 i 19108
    • UEFI and ACPI support
    • Err codemadness.org 70 i 19109
    • Support for SBSA/SBBR (server-class) hardware.
    • Err codemadness.org 70 i 19110
  • Err codemadness.org 70 i 19111
  • The FDT-ization of many ARM boards: Err codemadness.org 70 i 19112 Err codemadness.org 70 i 19113
      Err codemadness.org 70 i 19114
    • the 32-bit GENERIC kernel lists 129 different DTS configurations
    • Err codemadness.org 70 i 19115
    • the 64-bit GENERIC64 kernel lists 74 different DTS configurations
    • Err codemadness.org 70 i 19116
    • All supported by a single kernel, without requiring per-board configuration.
    • Err codemadness.org 70 i 19117
  • Err codemadness.org 70 i 19118
  • Graphics driver update, matching Linux 4.4, adding support for up to Kaby Lake based Intel graphics devices.
  • Err codemadness.org 70 i 19119
  • ZFS has been updated to a modern version and seen many bugfixes.
  • Err codemadness.org 70 i 19120
  • New hardware-accelerated virtualization via NVMM.
  • Err codemadness.org 70 i 19121
  • NPF performance improvements and bug fixes. A new lookup algorithm, thmap, is now the default.
  • Err codemadness.org 70 i 19122
  • NVMe performance improvements
  • Err codemadness.org 70 i 19123
  • Optional kernel ASLR support, and partial kernel ASLR for the default configuration.
  • Err codemadness.org 70 i 19124
  • Kernel sanitizers: Err codemadness.org 70 i 19125 Err codemadness.org 70 i 19126
      Err codemadness.org 70 i 19127
    • KLEAK, detecting memory leaks
    • Err codemadness.org 70 i 19128
    • KASAN, detecting memory overruns
    • Err codemadness.org 70 i 19129
    • KUBSAN, detecting undefined behaviour
    • Err codemadness.org 70 i 19130
    • These have been used together with continuous fuzzing via the syzkaller project to find many bugs that were fixed.
    • Err codemadness.org 70 i 19131
  • Err codemadness.org 70 i 19132
  • The removal of outdated networking components such as ISDN and all of its drivers
  • Err codemadness.org 70 i 19133
  • The installer is now capable of performing GPT UEFI installations.
  • Err codemadness.org 70 i 19134
  • Dramatically improved support for userland sanitizers, as well as the option to build all of NetBSD's userland using them for bug-finding.
  • Err codemadness.org 70 i 19135
  • Update to graphics userland: Mesa was updated to 18.3.4, and llvmpipe is now available for several architectures, providing 3D graphics even in the absence of a supported GPU.
  • Err codemadness.org 70 i 19136
Err codemadness.org 70 i 19137 Err codemadness.org 70 i 19138

We try to test NetBSD as best as we can, but your testing can help NetBSD 9.0 a great release. Please test it and let us know of any bugs you find.

Err codemadness.org 70 i 19139 Err codemadness.org 70 i 19140 Err codemadness.org 70 i 19143
Err codemadness.org 70 i 19144 Err codemadness.org 70 i 19145
Err codemadness.org 70 i 19146 Err codemadness.org 70 i 19147

xargs wtf

Err codemadness.org 70 i 19148 Err codemadness.org 70 i 19149
Err codemadness.org 70 i 19150

xargs is probably one of the more difficult to understand of the unix command arsenal and of course that just means it’s one of the most useful too.
Err codemadness.org 70 i 19151 I discovered a handy trick that I thought was worth a share. Please note there are probably other (better) ways to do this but I did my stackoverflow research and found nothing better.
Err codemadness.org 70 i 19152 xargs — at least how I’ve most utilized it — is handy for taking some number of lines as input and doing some work per line. It’s hard to be more specific than that as it does so much else.
Err codemadness.org 70 i 19153 It literally took me an hour of piecing together random man pages + tips from 11 year olds on stack overflow, but eventually I produced this gem:
Err codemadness.org 70 i 19154 This is an example of how to find files matching a certain pattern and rename each of them. It sounds so trivial (and it is) but it demonstrates some cool tricks in an easy concept.

Err codemadness.org 70 i 19155
Err codemadness.org 70 i 19156 Err codemadness.org 70 i 19157
Err codemadness.org 70 i 19158 Err codemadness.org 70 i 19159

News Roundup

Err codemadness.org 70 i 19160 Err codemadness.org 70 i 19161

PkgSrc: A Tale of Two Spellcheckers

Err codemadness.org 70 i 19162 Err codemadness.org 70 i 19163
Err codemadness.org 70 i 19164

This is a transcript of the talk I gave at pkgsrcCon 2019 in Cambridge, UK. It is about spellcheckers, but there are much more general software engineering lessons that we can learn from this case study.
Err codemadness.org 70 i 19165 The reason I got into this subject at all was my paternal leave last year, when I finally had some more time to spend working on pkgsrc. It was a tiny item in the enormous TODO file at the top of the source tree (“update enchant to version 2.2”) that made me go into this rabbit hole.

Err codemadness.org 70 i 19166
Err codemadness.org 70 i 19167 Err codemadness.org 70 i 19168
Err codemadness.org 70 i 19169 Err codemadness.org 70 i 19170

Adapting TriforceAFL for NetBSD, Part 2

Err codemadness.org 70 i 19171 Err codemadness.org 70 i 19172
Err codemadness.org 70 i 19173

I have been working on adapting TriforceAFL for NetBSD kernel syscall fuzzing. This blog post summarizes the work done until the second evaluation.
Err codemadness.org 70 i 19174 For work done during the first coding period, check out this post.

Err codemadness.org 70 i 19175
Err codemadness.org 70 i 19176 Err codemadness.org 70 i 19177
    Err codemadness.org 70 i 19178
  • Summary Err codemadness.org 70 i 19179 > So far, the TriforceNetBSDSyscallFuzzer has been made available in the form of a pkgsrc package with the ability to fuzz most of NetBSD syscalls. In the final coding period of GSoC. I plan to analyse the crashes that were found until now. Integrate sanitizers, try and find more bugs and finally wrap up neatly with detailed documentation. Err codemadness.org 70 i 19180 > Last but not least, I would like to thank my mentor, Kamil Rytarowski for helping me through the process and guiding me. It has been a wonderful learning experience so far!
  • Err codemadness.org 70 i 19181
Err codemadness.org 70 i 19182 Err codemadness.org 70 i 19183
Err codemadness.org 70 i 19184 Err codemadness.org 70 i 19185

Exploiting a no-name freebsd kernel vulnerability

Err codemadness.org 70 i 19186 Err codemadness.org 70 i 19187
    Err codemadness.org 70 i 19188
  • A new patch has been recently shipped in FreeBSD kernels to fix a vulnerability (cve-2019-5602) present in the cdrom device. In this post, we will introduce the bug and discuss its exploitation on pre/post-SMEP FreeBSD revisions. Err codemadness.org 70 i 19189 > A closer look at the commit 6bcf6e3 shows that when invoking the CDIOCREADSUBCHANNEL_SYSSPACE ioctl, data are copied with bcopy instead of the copyout primitive. This endows a local attacker belonging to the operator group with an arbitrary write primitive in the kernel memory.
  • Err codemadness.org 70 i 19190
Err codemadness.org 70 i 19191 Err codemadness.org 70 i 19192
Err codemadness.org 70 i 19193 Err codemadness.org 70 i 19194

[Allan and Benedicts Conference Gear Breakdown]

Err codemadness.org 70 i 19195 Err codemadness.org 70 i 19196
    Err codemadness.org 70 i 19197
  • Err codemadness.org 70 i 19198
  • Benedict’s Gear:

    Err codemadness.org 70 i 19199 Err codemadness.org 70 i 19200
    Err codemadness.org 70 i 19201

    GlocalMe G3 Mobile Travel HotSpot and Powerbank
    Err codemadness.org 70 i 19202 Mogics Power Bagel
    Err codemadness.org 70 i 19203 Charby Sense Power Cable

    Err codemadness.org 70 i 19204
  • Err codemadness.org 70 i 19205
  • Allan’s Gear:

    Err codemadness.org 70 i 19206 Err codemadness.org 70 i 19207
    Err codemadness.org 70 i 19208

    Huawei E5770s-320 4G LTE 150 Mbps Mobile WiFi Pro
    Err codemadness.org 70 i 19209 AOW Global Data SIM Card for On-Demand 4G LTE Mobile Data in Over 90 Countries
    Err codemadness.org 70 i 19210 All my devices charge from USB-C, so that is great
    Err codemadness.org 70 i 19211 More USB thumb drives than strictly necessary
    Err codemadness.org 70 i 19212 My Lenovo X270 laptop running FreeBSD 13-current
    Err codemadness.org 70 i 19213 My 2016 Macbook Pro (a prize from the raffle at vBSDCon 2017) that I use for email and video conferencing to preserve battery on my FreeBSD machine for work

    Err codemadness.org 70 i 19214
  • Err codemadness.org 70 i 19215
Err codemadness.org 70 i 19216 Err codemadness.org 70 i 19217
Err codemadness.org 70 i 19218 Err codemadness.org 70 i 19219

Beastie Bits

Err codemadness.org 70 i 19220 Err codemadness.org 70 i 19221 Err codemadness.org 70 i 19229 Err codemadness.org 70 i 19230
Err codemadness.org 70 i 19231 Err codemadness.org 70 i 19232

Feedback/Questions

Err codemadness.org 70 i 19233 Err codemadness.org 70 i 19234
    Err codemadness.org 70 i 19235
  • JT - Congrats
  • Err codemadness.org 70 i 19236
Err codemadness.org 70 i 19237 Err codemadness.org 70 i 19238
Err codemadness.org 70 i 19239 Err codemadness.org 70 i 19240
    Err codemadness.org 70 i 19241
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 19242
Err codemadness.org 70 i 19243 Err codemadness.org 70 i 19244
Err codemadness.org 70 i 19245 Err codemadness.org 70 i 19246 ]]> Err codemadness.org 70 i 19250
Err codemadness.org 70 i 19251 https://fireside.fm/player/v2/FYhhasNR+JegpbEM1 Err codemadness.org 70 i 19252 Err codemadness.org 70 i 19253 ]]> Err codemadness.org 70 i 19254 Err codemadness.org 70 i 19255
Err codemadness.org 70 i 19256 Err codemadness.org 70 i 19257 310: My New Free NAS Err codemadness.org 70 i 19258 https://www.bsdnow.tv/310 Err codemadness.org 70 i 19259 11bc3886-8630-42e4-8ce6-a97cfce82f4d Err codemadness.org 70 i 19260 Wed, 07 Aug 2019 20:00:00 -0700 Err codemadness.org 70 i 19261 Allan Jude Err codemadness.org 70 i 19262 Err codemadness.org 70 i 19263 full Err codemadness.org 70 i 19264 Allan Jude Err codemadness.org 70 i 19265 Err codemadness.org 70 i 19266 OPNsense 19.7.1 is out, ZFS on Linux still has annoying issues with ARC size, Hammer2 is now default, NetBSD audio – an application perspective, new FreeNAS Mini, and more. Err codemadness.org 70 i 19267 48:09 Err codemadness.org 70 i 19268 no Err codemadness.org 70 i 19269 Err codemadness.org 70 i 19270 OPNsense 19.7.1 is out, ZFS on Linux still has annoying issues with ARC size, Hammer2 is now default, NetBSD audio – an application perspective, new FreeNAS Mini, and more. Err codemadness.org 70 i 19271 Headlines Err codemadness.org 70 i 19272 OPNsense 19.7.1 (https://opnsense.org/opnsense-19-7-1-released/) Err codemadness.org 70 i 19273 We do not wish to keep you from enjoying your summer time, but this Err codemadness.org 70 i 19274 is a recommended security update enriched with reliability fixes for the Err codemadness.org 70 i 19275 new 19.7 series. Of special note are performance improvements as well Err codemadness.org 70 i 19276 as a fix for a longstanding NAT before IPsec limitation. Err codemadness.org 70 i 19277 Full patch notes: Err codemadness.org 70 i 19278 system: do not create automatic copies of existing gateways Err codemadness.org 70 i 19279 system: do not translate empty tunables descriptions Err codemadness.org 70 i 19280 system: remove unwanted form action tags Err codemadness.org 70 i 19281 system: do not include Syslog-ng in rc.freebsd handler Err codemadness.org 70 i 19282 system: fix manual system log stop/start/restart Err codemadness.org 70 i 19283 system: scoped IPv6 "%" could confuse mwexecf(), use plain mwexec() instead Err codemadness.org 70 i 19284 system: allow curl-based downloads to use both trusted and local authorities Err codemadness.org 70 i 19285 system: fix group privilege print and correctly redirect after edit Err codemadness.org 70 i 19286 system: use cached address list in referrer check Err codemadness.org 70 i 19287 system: fix Syslog-ng search stats Err codemadness.org 70 i 19288 firewall: HTML-escape dynamic entries to display aliases Err codemadness.org 70 i 19289 firewall: display correct IP version in automatic rules Err codemadness.org 70 i 19290 firewall: fix a warning while reading empty outbound rules configuration Err codemadness.org 70 i 19291 firewall: skip illegal log lines in live log Err codemadness.org 70 i 19292 interfaces: performance improvements for configurations with hundreds of interfaces Err codemadness.org 70 i 19293 reporting: performance improvements for Python 3 NetFlow aggregator rewrite Err codemadness.org 70 i 19294 dhcp: move advanced router advertisement options to correct config section Err codemadness.org 70 i 19295 ipsec: replace global array access with function to ensure side-effect free boot Err codemadness.org 70 i 19296 ipsec: change DPD action on start to "dpdaction = restart" Err codemadness.org 70 i 19297 ipsec: remove already default "dpdaction = none" if not set Err codemadness.org 70 i 19298 ipsec: use interface IP address in local ID when doing NAT before IPsec Err codemadness.org 70 i 19299 web proxy: fix database reset for Squid 4 by replacing use of sslcrtd with securityfile_certgen Err codemadness.org 70 i 19300 plugins: os-acme-client 1.24[1] Err codemadness.org 70 i 19301 plugins: os-bind 1.6[2] Err codemadness.org 70 i 19302 plugins: os-dnscrypt-proxy 1.5[3] Err codemadness.org 70 i 19303 plugins: os-frr now restricts characters BGP prefix-list and route-maps[4] Err codemadness.org 70 i 19304 plugins: os-google-cloud-sdk 1.0[5] Err codemadness.org 70 i 19305 ports: curl 7.65.3[6] Err codemadness.org 70 i 19306 ports: monit 5.26.0[7] Err codemadness.org 70 i 19307 ports: openssh 8.0p1[8] Err codemadness.org 70 i 19308 ports: php 7.2.20[9] Err codemadness.org 70 i 19309 ports: python 3.7.4[10] Err codemadness.org 70 i 19310 ports: sqlite 3.29.0[11] Err codemadness.org 70 i 19311 ports: squid 4.8[12] Err codemadness.org 70 i 19312 Stay safe and hydrated, Your OPNsense team Err codemadness.org 70 i 19313 ZFS on Linux still has annoying issues with ARC size (https://utcc.utoronto.ca/~cks/space/blog/linux/ZFSOnLinuxARCShrinkage) Err codemadness.org 70 i 19314 One of the frustrating things about operating ZFS on Linux is that the ARC size is critical but ZFS's auto-tuning of it is opaque and apparently prone to malfunctions, where your ARC will mysteriously shrink drastically and then stick there. Err codemadness.org 70 i 19315 Linux's regular filesystem disk cache is very predictable; if you do disk IO, the cache will relentlessly grow to use all of your free memory. This sometimes disconcerts people when free reports that there's very little memory actually free, but at least you're getting value from your RAM. This is so reliable and regular that we generally don't think about 'is my system going to use all of my RAM as a disk cache', because the answer is always 'yes'. (The general filesystem cache is also called the page cache.) Err codemadness.org 70 i 19316 This is unfortunately not the case with the ZFS ARC in ZFS on Linux (and it wasn't necessarily the case even on Solaris). ZFS has both a current size and a 'target size' for the ARC (called 'c' in ZFS statistics). When your system boots this target size starts out as the maximum allowed size for the ARC, but various events afterward can cause it to be reduced (which obviously limits the size of your ARC, since that's its purpose). In practice, this reduction in the target size is both pretty sticky and rather mysterious (as ZFS on Linux doesn't currently expose enough statistics to tell why your ARC target size shrunk in any particular case). Err codemadness.org 70 i 19317 The net effect is that the ZFS ARC is not infrequently quite shy and hesitant about using memory, in stark contrast to Linux's normal filesystem cache. The default maximum ARC size starts out as only half of your RAM (unlike the regular filesystem cache, which will use all of it), and then it shrinks from there, sometimes very significantly, and once shrunk it only recovers slowly (if at all). Err codemadness.org 70 i 19318 News Roundup Err codemadness.org 70 i 19319 Hammer2 is now default (http://lists.dragonflybsd.org/pipermail/commits/2019-June/718989.html) Err codemadness.org 70 i 19320 ``` Err codemadness.org 70 i 19321 commit a49112761c919d42d405ec10252eb0553662c824 Err codemadness.org 70 i 19322 Author: Matthew Dillon <dillon at apollo.backplane.com> Err codemadness.org 70 i 19323 Date: Mon Jun 10 17:53:46 2019 -0700 Err codemadness.org 70 i 19324 installer - Default to HAMMER2 Err codemadness.org 70 i 19325 Err codemadness.org 70 i 19326 * Change the installer default from HAMMER1 to HAMMER2. Err codemadness.org 70 i 19327 Err codemadness.org 70 i 19328 * Adjust the nrelease build to print the location of the image files Err codemadness.org 70 i 19329 when it finishes. Err codemadness.org 70 i 19330 Summary of changes: Err codemadness.org 70 i 19331 nrelease/Makefile | 2 +- Err codemadness.org 70 i 19332 usr.sbin/installer/dfuibe_installer/flow.c | 20 ++++++++++---------- Err codemadness.org 70 i 19333 2 files changed, 11 insertions(+), 11 deletions(-) Err codemadness.org 70 i 19334 http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/a49112761c919d42d405ec10252eb0553662c824 Err codemadness.org 70 i 19335 ``` Err codemadness.org 70 i 19336 NetBSD audio – an application perspective (https://netbsd.org/gallery/presentations/nia/netbsd-audio/) Err codemadness.org 70 i 19337 NetBSD audio – an application perspective ... or, "doing it natively, because we can" Err codemadness.org 70 i 19338 audio options for NetBSD in pkgsrc Err codemadness.org 70 i 19339 Use NetBSD native audio (sun audio/audioio.h) Err codemadness.org 70 i 19340 Or OSS emulation layer: Basically a wrapper around sun audio in the kernel. Incomplete and old version, but works for simple stuff Err codemadness.org 70 i 19341 Many many abstraction layers available: Err codemadness.org 70 i 19342 OpenAL-Soft Err codemadness.org 70 i 19343 alsa-lib (config file required) Err codemadness.org 70 i 19344 libao, GStreamer (plugins!) Err codemadness.org 70 i 19345 PortAudio, SDL Err codemadness.org 70 i 19346 PulseAudio, JACK Err codemadness.org 70 i 19347 ... lots more!? some obsolete stuff (esd, nas?) Err codemadness.org 70 i 19348 Advantages of using NetBSD audio directly Err codemadness.org 70 i 19349 Low latency, low CPU usage: Abstraction layers differ in latency (SDL2 vs ALSA/OpenAL) Err codemadness.org 70 i 19350 Query device information: Is /dev/audio1 a USB microphone or another sound card? Err codemadness.org 70 i 19351 Avoid bugs from excessive layering Err codemadness.org 70 i 19352 Nice API, well documented: [nia note: I had no idea how to write audio code. I read a man page and now I do.] Err codemadness.org 70 i 19353 Your code might work on illumos too Err codemadness.org 70 i 19354 [nia note: SDL2 seems very sensitive to the blk_ms sysctl being high or low, with other implementations there seems to be a less noticable difference. I don't know why.] Err codemadness.org 70 i 19355 New FreeNAS Mini (https://www.ixsystems.com/blog/new-freenas-mini-models-release-pr/) Err codemadness.org 70 i 19356 Two new FreeNAS Mini systems join the very popular FreeNAS Mini and Mini XL: Err codemadness.org 70 i 19357 FreeNAS Mini XL+: This powerful 10 Bay platform (8x 3.5” and 1x 2.5” hot-swap, 1x 2.5” internal) includes the latest, compact server technology and provides dual 10GbE ports, 8 CPU cores and 32 GB RAM for high performance workgroups. The Mini XL+ scales beyond 100TB and is ideal for very demanding applications, including hosting virtual machines and multimedia editing. Starting at $1499, the Mini XL+ configured with cache SSD and 80 TB capacity is $4299, and consumes about 100 Watts. Err codemadness.org 70 i 19358 FreeNAS Mini E: This cost-effective 4 Bay platform provides the resources required for SOHO use with quad GbE ports and 8 GB of RAM. The Mini E is ideal for file sharing, streaming and transcoding video at 1080p. Starting at $749, the Mini E configured with 8 TB capacity is $999, and consumes about 36 Watts. Err codemadness.org 70 i 19359 Beastie Bits Err codemadness.org 70 i 19360 Welcome to NetBSD 9.99.1! (https://mail-index.netbsd.org/source-changes/2019/07/30/msg107671.html) Err codemadness.org 70 i 19361 Berkeley smorgasbord — part II (http://blog.snailtext.com/posts/berkeley-smorgasbord-part-2.html) Err codemadness.org 70 i 19362 dtracing postgres (https://www.youtube.com/watch?v=Brt41xnMZqo&list=PLuJmmKtsV1dOTmlImlD9U5j1P1rLxS2V8&index=20&t=0s) Err codemadness.org 70 i 19363 Project Trident 19.07-U1 now available (https://project-trident.org/post/2019-07-30_19.07-u1_available/) Err codemadness.org 70 i 19364 Need a Secure Operating System? Take a Look at OpenBSD (https://www.devprojournal.com/technology-trends/operating-systems/need-a-secure-operating-system-take-a-look-at-openbsd/) Err codemadness.org 70 i 19365 Feedback/Questions Err codemadness.org 70 i 19366 Jeff - OpenZFS Port Testing Feedback (http://dpaste.com/2AT7JGP#wrap) Err codemadness.org 70 i 19367 Malcolm - Best Practices for Custom Ports (http://dpaste.com/1R170D7) Err codemadness.org 70 i 19368 Michael - Little Correction (http://dpaste.com/0CERP6R) Err codemadness.org 70 i 19369 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 19370 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 19371 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0310.mp4" type="video/mp4"> Err codemadness.org 70 i 19372 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 19373 </video> Err codemadness.org 70 i 19374 Err codemadness.org 70 i 19375 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, opnsense, zfs, arc, hammer2, audio, freenas, mini Err codemadness.org 70 i 19376 Err codemadness.org 70 i 19377 OPNsense 19.7.1 is out, ZFS on Linux still has annoying issues with ARC size, Hammer2 is now default, NetBSD audio – an application perspective, new FreeNAS Mini, and more.

Err codemadness.org 70 i 19378 Err codemadness.org 70 i 19379

Headlines

Err codemadness.org 70 i 19380 Err codemadness.org 70 i 19381

OPNsense 19.7.1

Err codemadness.org 70 i 19382 Err codemadness.org 70 i 19383
Err codemadness.org 70 i 19384

We do not wish to keep you from enjoying your summer time, but this
Err codemadness.org 70 i 19385 is a recommended security update enriched with reliability fixes for the
Err codemadness.org 70 i 19386 new 19.7 series. Of special note are performance improvements as well
Err codemadness.org 70 i 19387 as a fix for a longstanding NAT before IPsec limitation.

Err codemadness.org 70 i 19388 Err codemadness.org 70 i 19389

Full patch notes:

Err codemadness.org 70 i 19390
Err codemadness.org 70 i 19391 Err codemadness.org 70 i 19392
    Err codemadness.org 70 i 19393
  • system: do not create automatic copies of existing gateways
  • Err codemadness.org 70 i 19394
  • system: do not translate empty tunables descriptions
  • Err codemadness.org 70 i 19395
  • system: remove unwanted form action tags
  • Err codemadness.org 70 i 19396
  • system: do not include Syslog-ng in rc.freebsd handler
  • Err codemadness.org 70 i 19397
  • system: fix manual system log stop/start/restart
  • Err codemadness.org 70 i 19398
  • system: scoped IPv6 "%" could confuse mwexecf(), use plain mwexec() instead
  • Err codemadness.org 70 i 19399
  • system: allow curl-based downloads to use both trusted and local authorities
  • Err codemadness.org 70 i 19400
  • system: fix group privilege print and correctly redirect after edit
  • Err codemadness.org 70 i 19401
  • system: use cached address list in referrer check
  • Err codemadness.org 70 i 19402
  • system: fix Syslog-ng search stats
  • Err codemadness.org 70 i 19403
  • firewall: HTML-escape dynamic entries to display aliases
  • Err codemadness.org 70 i 19404
  • firewall: display correct IP version in automatic rules
  • Err codemadness.org 70 i 19405
  • firewall: fix a warning while reading empty outbound rules configuration
  • Err codemadness.org 70 i 19406
  • firewall: skip illegal log lines in live log
  • Err codemadness.org 70 i 19407
  • interfaces: performance improvements for configurations with hundreds of interfaces
  • Err codemadness.org 70 i 19408
  • reporting: performance improvements for Python 3 NetFlow aggregator rewrite
  • Err codemadness.org 70 i 19409
  • dhcp: move advanced router advertisement options to correct config section
  • Err codemadness.org 70 i 19410
  • ipsec: replace global array access with function to ensure side-effect free boot
  • Err codemadness.org 70 i 19411
  • ipsec: change DPD action on start to "dpdaction = restart"
  • Err codemadness.org 70 i 19412
  • ipsec: remove already default "dpdaction = none" if not set
  • Err codemadness.org 70 i 19413
  • ipsec: use interface IP address in local ID when doing NAT before IPsec
  • Err codemadness.org 70 i 19414
  • web proxy: fix database reset for Squid 4 by replacing use of ssl_crtd with security_file_certgen
  • Err codemadness.org 70 i 19415
  • plugins: os-acme-client 1.24[1]
  • Err codemadness.org 70 i 19416
  • plugins: os-bind 1.6[2]
  • Err codemadness.org 70 i 19417
  • plugins: os-dnscrypt-proxy 1.5[3]
  • Err codemadness.org 70 i 19418
  • plugins: os-frr now restricts characters BGP prefix-list and route-maps[4]
  • Err codemadness.org 70 i 19419
  • plugins: os-google-cloud-sdk 1.0[5]
  • Err codemadness.org 70 i 19420
  • ports: curl 7.65.3[6]
  • Err codemadness.org 70 i 19421
  • ports: monit 5.26.0[7]
  • Err codemadness.org 70 i 19422
  • ports: openssh 8.0p1[8]
  • Err codemadness.org 70 i 19423
  • ports: php 7.2.20[9]
  • Err codemadness.org 70 i 19424
  • ports: python 3.7.4[10]
  • Err codemadness.org 70 i 19425
  • ports: sqlite 3.29.0[11]
  • Err codemadness.org 70 i 19426
  • ports: squid 4.8[12]
  • Err codemadness.org 70 i 19427
Err codemadness.org 70 i 19428 Err codemadness.org 70 i 19429
Err codemadness.org 70 i 19430

Stay safe and hydrated, Your OPNsense team

Err codemadness.org 70 i 19431
Err codemadness.org 70 i 19432 Err codemadness.org 70 i 19433
Err codemadness.org 70 i 19434 Err codemadness.org 70 i 19435

ZFS on Linux still has annoying issues with ARC size

Err codemadness.org 70 i 19436 Err codemadness.org 70 i 19437

One of the frustrating things about operating ZFS on Linux is that the ARC size is critical but ZFS's auto-tuning of it is opaque and apparently prone to malfunctions, where your ARC will mysteriously shrink drastically and then stick there.

Err codemadness.org 70 i 19438 Err codemadness.org 70 i 19439
Err codemadness.org 70 i 19440

Linux's regular filesystem disk cache is very predictable; if you do disk IO, the cache will relentlessly grow to use all of your free memory. This sometimes disconcerts people when free reports that there's very little memory actually free, but at least you're getting value from your RAM. This is so reliable and regular that we generally don't think about 'is my system going to use all of my RAM as a disk cache', because the answer is always 'yes'. (The general filesystem cache is also called the page cache.)

Err codemadness.org 70 i 19441 Err codemadness.org 70 i 19442

This is unfortunately not the case with the ZFS ARC in ZFS on Linux (and it wasn't necessarily the case even on Solaris). ZFS has both a current size and a 'target size' for the ARC (called 'c' in ZFS statistics). When your system boots this target size starts out as the maximum allowed size for the ARC, but various events afterward can cause it to be reduced (which obviously limits the size of your ARC, since that's its purpose). In practice, this reduction in the target size is both pretty sticky and rather mysterious (as ZFS on Linux doesn't currently expose enough statistics to tell why your ARC target size shrunk in any particular case).

Err codemadness.org 70 i 19443 Err codemadness.org 70 i 19444

The net effect is that the ZFS ARC is not infrequently quite shy and hesitant about using memory, in stark contrast to Linux's normal filesystem cache. The default maximum ARC size starts out as only half of your RAM (unlike the regular filesystem cache, which will use all of it), and then it shrinks from there, sometimes very significantly, and once shrunk it only recovers slowly (if at all).

Err codemadness.org 70 i 19445
Err codemadness.org 70 i 19446 Err codemadness.org 70 i 19447
Err codemadness.org 70 i 19448 Err codemadness.org 70 i 19449

News Roundup

Err codemadness.org 70 i 19450 Err codemadness.org 70 i 19451

Hammer2 is now default

Err codemadness.org 70 i 19452 Err codemadness.org 70 i 19453
commit a49112761c919d42d405ec10252eb0553662c824	Err	codemadness.org	70
i 19454 Author: Matthew Dillon <dillon at apollo.backplane.com>	Err	codemadness.org	70
i 19455 Date:   Mon Jun 10 17:53:46 2019 -0700	Err	codemadness.org	70
i 19456 	Err	codemadness.org	70
i 19457     installer - Default to HAMMER2	Err	codemadness.org	70
i 19458 	Err	codemadness.org	70
i 19459     * Change the installer default from HAMMER1 to HAMMER2.	Err	codemadness.org	70
i 19460 	Err	codemadness.org	70
i 19461     * Adjust the nrelease build to print the location of the image files	Err	codemadness.org	70
i 19462       when it finishes.	Err	codemadness.org	70
i 19463 	Err	codemadness.org	70
i 19464 Summary of changes:	Err	codemadness.org	70
i 19465  nrelease/Makefile                          |  2 +-	Err	codemadness.org	70
i 19466  usr.sbin/installer/dfuibe_installer/flow.c | 20 ++++++++++----------	Err	codemadness.org	70
i 19467  2 files changed, 11 insertions(+), 11 deletions(-)	Err	codemadness.org	70
i 19468 	Err	codemadness.org	70
i 19469 http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/a49112761c919d42d405ec10252eb0553662c824	Err	codemadness.org	70
i 19470 
Err codemadness.org 70 i 19471 Err codemadness.org 70 i 19472
Err codemadness.org 70 i 19473 Err codemadness.org 70 i 19474

NetBSD audio – an application perspective

Err codemadness.org 70 i 19475 Err codemadness.org 70 i 19476
Err codemadness.org 70 i 19477

NetBSD audio – an application perspective ... or, "doing it natively, because we can"

Err codemadness.org 70 i 19478
Err codemadness.org 70 i 19479 Err codemadness.org 70 i 19480
    Err codemadness.org 70 i 19481
  • audio options for NetBSD in pkgsrc

    Err codemadness.org 70 i 19482 Err codemadness.org 70 i 19483
      Err codemadness.org 70 i 19484
    • Use NetBSD native audio (sun audio/audioio.h)
    • Err codemadness.org 70 i 19485
    • Or OSS emulation layer: Basically a wrapper around sun audio in the kernel. Incomplete and old version, but works for simple stuff
    • Err codemadness.org 70 i 19486
  • Err codemadness.org 70 i 19487
  • Many many abstraction layers available:

    Err codemadness.org 70 i 19488 Err codemadness.org 70 i 19489
      Err codemadness.org 70 i 19490
    • OpenAL-Soft
    • Err codemadness.org 70 i 19491
    • alsa-lib (config file required)
    • Err codemadness.org 70 i 19492
    • libao, GStreamer (plugins!)
    • Err codemadness.org 70 i 19493
    • PortAudio, SDL
    • Err codemadness.org 70 i 19494
    • PulseAudio, JACK
    • Err codemadness.org 70 i 19495
    • ... lots more!? some obsolete stuff (esd, nas?)
    • Err codemadness.org 70 i 19496
  • Err codemadness.org 70 i 19497
  • Advantages of using NetBSD audio directly

    Err codemadness.org 70 i 19498 Err codemadness.org 70 i 19499
      Err codemadness.org 70 i 19500
    • Low latency, low CPU usage: Abstraction layers differ in latency (SDL2 vs ALSA/OpenAL)
    • Err codemadness.org 70 i 19501
    • Query device information: Is /dev/audio1 a USB microphone or another sound card?
    • Err codemadness.org 70 i 19502
    • Avoid bugs from excessive layering
    • Err codemadness.org 70 i 19503
    • Nice API, well documented: [nia note: I had no idea how to write audio code. I read a man page and now I do.]
    • Err codemadness.org 70 i 19504
    • Your code might work on illumos too
    • Err codemadness.org 70 i 19505
  • Err codemadness.org 70 i 19506
  • [nia note: SDL2 seems very sensitive to the blk_ms sysctl being high or low, with other implementations there seems to be a less noticable difference. I don't know why.]

  • Err codemadness.org 70 i 19507
Err codemadness.org 70 i 19508 Err codemadness.org 70 i 19509
Err codemadness.org 70 i 19510 Err codemadness.org 70 i 19511

New FreeNAS Mini

Err codemadness.org 70 i 19512 Err codemadness.org 70 i 19513
Err codemadness.org 70 i 19514

Two new FreeNAS Mini systems join the very popular FreeNAS Mini and Mini XL:

Err codemadness.org 70 i 19515 Err codemadness.org 70 i 19516

FreeNAS Mini XL+: This powerful 10 Bay platform (8x 3.5” and 1x 2.5” hot-swap, 1x 2.5” internal) includes the latest, compact server technology and provides dual 10GbE ports, 8 CPU cores and 32 GB RAM for high performance workgroups. The Mini XL+ scales beyond 100TB and is ideal for very demanding applications, including hosting virtual machines and multimedia editing. Starting at $1499, the Mini XL+ configured with cache SSD and 80 TB capacity is $4299, and consumes about 100 Watts.

Err codemadness.org 70 i 19517 Err codemadness.org 70 i 19518

FreeNAS Mini E: This cost-effective 4 Bay platform provides the resources required for SOHO use with quad GbE ports and 8 GB of RAM. The Mini E is ideal for file sharing, streaming and transcoding video at 1080p. Starting at $749, the Mini E configured with 8 TB capacity is $999, and consumes about 36 Watts.

Err codemadness.org 70 i 19519
Err codemadness.org 70 i 19520 Err codemadness.org 70 i 19521
Err codemadness.org 70 i 19522 Err codemadness.org 70 i 19523

Beastie Bits

Err codemadness.org 70 i 19524 Err codemadness.org 70 i 19525 Err codemadness.org 70 i 19532 Err codemadness.org 70 i 19533
Err codemadness.org 70 i 19534 Err codemadness.org 70 i 19535

Feedback/Questions

Err codemadness.org 70 i 19536 Err codemadness.org 70 i 19537 Err codemadness.org 70 i 19542 Err codemadness.org 70 i 19543
Err codemadness.org 70 i 19544 Err codemadness.org 70 i 19545
    Err codemadness.org 70 i 19546
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 19547
Err codemadness.org 70 i 19548 Err codemadness.org 70 i 19549
Err codemadness.org 70 i 19550 Err codemadness.org 70 i 19551 ]]> Err codemadness.org 70 i 19555
Err codemadness.org 70 i 19556 Err codemadness.org 70 i 19557 OPNsense 19.7.1 is out, ZFS on Linux still has annoying issues with ARC size, Hammer2 is now default, NetBSD audio – an application perspective, new FreeNAS Mini, and more.

Err codemadness.org 70 i 19558 Err codemadness.org 70 i 19559

Headlines

Err codemadness.org 70 i 19560 Err codemadness.org 70 i 19561

OPNsense 19.7.1

Err codemadness.org 70 i 19562 Err codemadness.org 70 i 19563
Err codemadness.org 70 i 19564

We do not wish to keep you from enjoying your summer time, but this
Err codemadness.org 70 i 19565 is a recommended security update enriched with reliability fixes for the
Err codemadness.org 70 i 19566 new 19.7 series. Of special note are performance improvements as well
Err codemadness.org 70 i 19567 as a fix for a longstanding NAT before IPsec limitation.

Err codemadness.org 70 i 19568 Err codemadness.org 70 i 19569

Full patch notes:

Err codemadness.org 70 i 19570
Err codemadness.org 70 i 19571 Err codemadness.org 70 i 19572
    Err codemadness.org 70 i 19573
  • system: do not create automatic copies of existing gateways
  • Err codemadness.org 70 i 19574
  • system: do not translate empty tunables descriptions
  • Err codemadness.org 70 i 19575
  • system: remove unwanted form action tags
  • Err codemadness.org 70 i 19576
  • system: do not include Syslog-ng in rc.freebsd handler
  • Err codemadness.org 70 i 19577
  • system: fix manual system log stop/start/restart
  • Err codemadness.org 70 i 19578
  • system: scoped IPv6 "%" could confuse mwexecf(), use plain mwexec() instead
  • Err codemadness.org 70 i 19579
  • system: allow curl-based downloads to use both trusted and local authorities
  • Err codemadness.org 70 i 19580
  • system: fix group privilege print and correctly redirect after edit
  • Err codemadness.org 70 i 19581
  • system: use cached address list in referrer check
  • Err codemadness.org 70 i 19582
  • system: fix Syslog-ng search stats
  • Err codemadness.org 70 i 19583
  • firewall: HTML-escape dynamic entries to display aliases
  • Err codemadness.org 70 i 19584
  • firewall: display correct IP version in automatic rules
  • Err codemadness.org 70 i 19585
  • firewall: fix a warning while reading empty outbound rules configuration
  • Err codemadness.org 70 i 19586
  • firewall: skip illegal log lines in live log
  • Err codemadness.org 70 i 19587
  • interfaces: performance improvements for configurations with hundreds of interfaces
  • Err codemadness.org 70 i 19588
  • reporting: performance improvements for Python 3 NetFlow aggregator rewrite
  • Err codemadness.org 70 i 19589
  • dhcp: move advanced router advertisement options to correct config section
  • Err codemadness.org 70 i 19590
  • ipsec: replace global array access with function to ensure side-effect free boot
  • Err codemadness.org 70 i 19591
  • ipsec: change DPD action on start to "dpdaction = restart"
  • Err codemadness.org 70 i 19592
  • ipsec: remove already default "dpdaction = none" if not set
  • Err codemadness.org 70 i 19593
  • ipsec: use interface IP address in local ID when doing NAT before IPsec
  • Err codemadness.org 70 i 19594
  • web proxy: fix database reset for Squid 4 by replacing use of ssl_crtd with security_file_certgen
  • Err codemadness.org 70 i 19595
  • plugins: os-acme-client 1.24[1]
  • Err codemadness.org 70 i 19596
  • plugins: os-bind 1.6[2]
  • Err codemadness.org 70 i 19597
  • plugins: os-dnscrypt-proxy 1.5[3]
  • Err codemadness.org 70 i 19598
  • plugins: os-frr now restricts characters BGP prefix-list and route-maps[4]
  • Err codemadness.org 70 i 19599
  • plugins: os-google-cloud-sdk 1.0[5]
  • Err codemadness.org 70 i 19600
  • ports: curl 7.65.3[6]
  • Err codemadness.org 70 i 19601
  • ports: monit 5.26.0[7]
  • Err codemadness.org 70 i 19602
  • ports: openssh 8.0p1[8]
  • Err codemadness.org 70 i 19603
  • ports: php 7.2.20[9]
  • Err codemadness.org 70 i 19604
  • ports: python 3.7.4[10]
  • Err codemadness.org 70 i 19605
  • ports: sqlite 3.29.0[11]
  • Err codemadness.org 70 i 19606
  • ports: squid 4.8[12]
  • Err codemadness.org 70 i 19607
Err codemadness.org 70 i 19608 Err codemadness.org 70 i 19609
Err codemadness.org 70 i 19610

Stay safe and hydrated, Your OPNsense team

Err codemadness.org 70 i 19611
Err codemadness.org 70 i 19612 Err codemadness.org 70 i 19613
Err codemadness.org 70 i 19614 Err codemadness.org 70 i 19615

ZFS on Linux still has annoying issues with ARC size

Err codemadness.org 70 i 19616 Err codemadness.org 70 i 19617

One of the frustrating things about operating ZFS on Linux is that the ARC size is critical but ZFS's auto-tuning of it is opaque and apparently prone to malfunctions, where your ARC will mysteriously shrink drastically and then stick there.

Err codemadness.org 70 i 19618 Err codemadness.org 70 i 19619
Err codemadness.org 70 i 19620

Linux's regular filesystem disk cache is very predictable; if you do disk IO, the cache will relentlessly grow to use all of your free memory. This sometimes disconcerts people when free reports that there's very little memory actually free, but at least you're getting value from your RAM. This is so reliable and regular that we generally don't think about 'is my system going to use all of my RAM as a disk cache', because the answer is always 'yes'. (The general filesystem cache is also called the page cache.)

Err codemadness.org 70 i 19621 Err codemadness.org 70 i 19622

This is unfortunately not the case with the ZFS ARC in ZFS on Linux (and it wasn't necessarily the case even on Solaris). ZFS has both a current size and a 'target size' for the ARC (called 'c' in ZFS statistics). When your system boots this target size starts out as the maximum allowed size for the ARC, but various events afterward can cause it to be reduced (which obviously limits the size of your ARC, since that's its purpose). In practice, this reduction in the target size is both pretty sticky and rather mysterious (as ZFS on Linux doesn't currently expose enough statistics to tell why your ARC target size shrunk in any particular case).

Err codemadness.org 70 i 19623 Err codemadness.org 70 i 19624

The net effect is that the ZFS ARC is not infrequently quite shy and hesitant about using memory, in stark contrast to Linux's normal filesystem cache. The default maximum ARC size starts out as only half of your RAM (unlike the regular filesystem cache, which will use all of it), and then it shrinks from there, sometimes very significantly, and once shrunk it only recovers slowly (if at all).

Err codemadness.org 70 i 19625
Err codemadness.org 70 i 19626 Err codemadness.org 70 i 19627
Err codemadness.org 70 i 19628 Err codemadness.org 70 i 19629

News Roundup

Err codemadness.org 70 i 19630 Err codemadness.org 70 i 19631

Hammer2 is now default

Err codemadness.org 70 i 19632 Err codemadness.org 70 i 19633
commit a49112761c919d42d405ec10252eb0553662c824	Err	codemadness.org	70
i 19634 Author: Matthew Dillon <dillon at apollo.backplane.com>	Err	codemadness.org	70
i 19635 Date:   Mon Jun 10 17:53:46 2019 -0700	Err	codemadness.org	70
i 19636 	Err	codemadness.org	70
i 19637     installer - Default to HAMMER2	Err	codemadness.org	70
i 19638 	Err	codemadness.org	70
i 19639     * Change the installer default from HAMMER1 to HAMMER2.	Err	codemadness.org	70
i 19640 	Err	codemadness.org	70
i 19641     * Adjust the nrelease build to print the location of the image files	Err	codemadness.org	70
i 19642       when it finishes.	Err	codemadness.org	70
i 19643 	Err	codemadness.org	70
i 19644 Summary of changes:	Err	codemadness.org	70
i 19645  nrelease/Makefile                          |  2 +-	Err	codemadness.org	70
i 19646  usr.sbin/installer/dfuibe_installer/flow.c | 20 ++++++++++----------	Err	codemadness.org	70
i 19647  2 files changed, 11 insertions(+), 11 deletions(-)	Err	codemadness.org	70
i 19648 	Err	codemadness.org	70
i 19649 http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/a49112761c919d42d405ec10252eb0553662c824	Err	codemadness.org	70
i 19650 
Err codemadness.org 70 i 19651 Err codemadness.org 70 i 19652
Err codemadness.org 70 i 19653 Err codemadness.org 70 i 19654

NetBSD audio – an application perspective

Err codemadness.org 70 i 19655 Err codemadness.org 70 i 19656
Err codemadness.org 70 i 19657

NetBSD audio – an application perspective ... or, "doing it natively, because we can"

Err codemadness.org 70 i 19658
Err codemadness.org 70 i 19659 Err codemadness.org 70 i 19660
    Err codemadness.org 70 i 19661
  • audio options for NetBSD in pkgsrc

    Err codemadness.org 70 i 19662 Err codemadness.org 70 i 19663
      Err codemadness.org 70 i 19664
    • Use NetBSD native audio (sun audio/audioio.h)
    • Err codemadness.org 70 i 19665
    • Or OSS emulation layer: Basically a wrapper around sun audio in the kernel. Incomplete and old version, but works for simple stuff
    • Err codemadness.org 70 i 19666
  • Err codemadness.org 70 i 19667
  • Many many abstraction layers available:

    Err codemadness.org 70 i 19668 Err codemadness.org 70 i 19669
      Err codemadness.org 70 i 19670
    • OpenAL-Soft
    • Err codemadness.org 70 i 19671
    • alsa-lib (config file required)
    • Err codemadness.org 70 i 19672
    • libao, GStreamer (plugins!)
    • Err codemadness.org 70 i 19673
    • PortAudio, SDL
    • Err codemadness.org 70 i 19674
    • PulseAudio, JACK
    • Err codemadness.org 70 i 19675
    • ... lots more!? some obsolete stuff (esd, nas?)
    • Err codemadness.org 70 i 19676
  • Err codemadness.org 70 i 19677
  • Advantages of using NetBSD audio directly

    Err codemadness.org 70 i 19678 Err codemadness.org 70 i 19679
      Err codemadness.org 70 i 19680
    • Low latency, low CPU usage: Abstraction layers differ in latency (SDL2 vs ALSA/OpenAL)
    • Err codemadness.org 70 i 19681
    • Query device information: Is /dev/audio1 a USB microphone or another sound card?
    • Err codemadness.org 70 i 19682
    • Avoid bugs from excessive layering
    • Err codemadness.org 70 i 19683
    • Nice API, well documented: [nia note: I had no idea how to write audio code. I read a man page and now I do.]
    • Err codemadness.org 70 i 19684
    • Your code might work on illumos too
    • Err codemadness.org 70 i 19685
  • Err codemadness.org 70 i 19686
  • [nia note: SDL2 seems very sensitive to the blk_ms sysctl being high or low, with other implementations there seems to be a less noticable difference. I don't know why.]

  • Err codemadness.org 70 i 19687
Err codemadness.org 70 i 19688 Err codemadness.org 70 i 19689
Err codemadness.org 70 i 19690 Err codemadness.org 70 i 19691

New FreeNAS Mini

Err codemadness.org 70 i 19692 Err codemadness.org 70 i 19693
Err codemadness.org 70 i 19694

Two new FreeNAS Mini systems join the very popular FreeNAS Mini and Mini XL:

Err codemadness.org 70 i 19695 Err codemadness.org 70 i 19696

FreeNAS Mini XL+: This powerful 10 Bay platform (8x 3.5” and 1x 2.5” hot-swap, 1x 2.5” internal) includes the latest, compact server technology and provides dual 10GbE ports, 8 CPU cores and 32 GB RAM for high performance workgroups. The Mini XL+ scales beyond 100TB and is ideal for very demanding applications, including hosting virtual machines and multimedia editing. Starting at $1499, the Mini XL+ configured with cache SSD and 80 TB capacity is $4299, and consumes about 100 Watts.

Err codemadness.org 70 i 19697 Err codemadness.org 70 i 19698

FreeNAS Mini E: This cost-effective 4 Bay platform provides the resources required for SOHO use with quad GbE ports and 8 GB of RAM. The Mini E is ideal for file sharing, streaming and transcoding video at 1080p. Starting at $749, the Mini E configured with 8 TB capacity is $999, and consumes about 36 Watts.

Err codemadness.org 70 i 19699
Err codemadness.org 70 i 19700 Err codemadness.org 70 i 19701
Err codemadness.org 70 i 19702 Err codemadness.org 70 i 19703

Beastie Bits

Err codemadness.org 70 i 19704 Err codemadness.org 70 i 19705 Err codemadness.org 70 i 19712 Err codemadness.org 70 i 19713
Err codemadness.org 70 i 19714 Err codemadness.org 70 i 19715

Feedback/Questions

Err codemadness.org 70 i 19716 Err codemadness.org 70 i 19717 Err codemadness.org 70 i 19722 Err codemadness.org 70 i 19723
Err codemadness.org 70 i 19724 Err codemadness.org 70 i 19725
    Err codemadness.org 70 i 19726
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 19727
Err codemadness.org 70 i 19728 Err codemadness.org 70 i 19729
Err codemadness.org 70 i 19730 Err codemadness.org 70 i 19731 ]]> Err codemadness.org 70 i 19735
Err codemadness.org 70 i 19736 https://fireside.fm/player/v2/FYhhasNR+IvVLOWrX Err codemadness.org 70 i 19737 Err codemadness.org 70 i 19738 ]]> Err codemadness.org 70 i 19739 Err codemadness.org 70 i 19740
Err codemadness.org 70 i 19741 Err codemadness.org 70 i 19742 Episode 309: Get Your Telnet Fix Err codemadness.org 70 i 19743 https://www.bsdnow.tv/309 Err codemadness.org 70 i 19744 630a645e-fe37-4a56-a2fd-8c51abb5dfe5 Err codemadness.org 70 i 19745 Wed, 31 Jul 2019 20:45:00 -0700 Err codemadness.org 70 i 19746 Allan Jude Err codemadness.org 70 i 19747 Err codemadness.org 70 i 19748 full Err codemadness.org 70 i 19749 Allan Jude Err codemadness.org 70 i 19750 Err codemadness.org 70 i 19751 DragonFlyBSD Project colo upgrade, future trends, resuming ZFS send, realtime bandwidth terminal graph visualization, fixing telnet fixes, a chapter from the FBI’s history with OpenBSD, an OpenSSH vulnerability, and more. Err codemadness.org 70 i 19752 48:24 Err codemadness.org 70 i 19753 no Err codemadness.org 70 i 19754 Err codemadness.org 70 i 19755 DragonFlyBSD Project Update - colo upgrade, future trends, resuming ZFS send, realtime bandwidth terminal graph visualization, fixing telnet fixes, a chapter from the FBI’s history with OpenBSD and an OpenSSH vuln, and more. Err codemadness.org 70 i 19756 Headlines Err codemadness.org 70 i 19757 DragonFlyBSD Project Update - colo upgrade, future trends (http://lists.dragonflybsd.org/pipermail/users/2019-July/358226.html) Err codemadness.org 70 i 19758 For the last week I've been testing out a replacement for Monster, our 48-core opteron server. The project will be removing Monster from the colo in a week or two and replacing it with three machines which together will use half the power that Monster did alone. Err codemadness.org 70 i 19759 The goal is to clear out a little power budget in the colo and to really beef-up our package-building capabilities to reduce the turn-around time needed to test ports syncs and updates to the binary package system. Err codemadness.org 70 i 19760 Currently we use two blades to do most of the building, plus monster sometimes. The blades take almost a week (120 hours+) to do a full synth run and monster takes around 27.5 hours. But we need to do three bulk builds more or less at the same time... one for the release branch, one for the development branch, and one for staging updates. It just takes too long and its been gnawing at me for a little while. Err codemadness.org 70 i 19761 Well, Zen 2 to the rescue! These new CPUs can take ECC, there's actually an IPMI mobo available, and they are fast as hell and cheap for what we get. Err codemadness.org 70 i 19762 The new machines will be two 3900X based servers, plus a dual-xeon system that I already had at home. The 3900X's can each do a full synth run in 24.5 hours and the Xeon can do it in around 31 hours. Monster will be retired. And the crazy thing about this? Monster burns 1000W going full bore. Each of the 3900X servers burns 160W and the Xeon burns 200W. In otherwords, we are replacing 1000W with only 520W and getting roughly 6x the performance efficiency in the upgrade. This tell you just how much more power-efficient machines have become in the last 9 years or so. > This upgrade will allow us to do full builds for both release and dev in roughly one day instead of seven days, and do it without interfering with staging work that might be happening at the same time. Err codemadness.org 70 i 19763 Future trends - DragonFlyBSD has reached a bit of a cross-roads. With most of the SMP work now essentially complete across the entire system the main project focus is now on supplying reliable binary ports for release and developer branches, DRM (GPU) support and other UI elements to keep DragonFlyBSD relevant on workstations, and continuing Filesystem work on HAMMER2 to get multi-device and clustering going. Err codemadness.org 70 i 19764 Resuming ZFS send (https://www.oshogbo.vexillium.org/blog/66/) Err codemadness.org 70 i 19765 One of the amazing functionalities of ZFS is the possibility of sending a whole dataset from one place to another. This mechanism is amazing to create backups of your ZFS based machines. Although, there were some issues with this functionality for a long time when a user sent a big chunk of data. What if you would do that over the network and your connection has disappeared? What if your machine was rebooted as you are sending a snapshot? Err codemadness.org 70 i 19766 For a very long time, you didn't have any options - you had to send a snapshot from the beginning. Now, this limitation was already bad enough. However, another downside of this approach was that all the data which you already send was thrown away. Therefore, ZFS had to go over all this data and remove them from the dataset. Imagine the terabytes of data which you sent via the network was thrown away because as you were sending the last few bytes, the network went off. Err codemadness.org 70 i 19767 In this short post, I don't want to go over the whole ZFS snapshot infrastructure (if you think that such a post would be useful, please leave a comment). Now, to get back to the point, this infrastructure is used to clone the datasets. Some time ago a new feature called “Resuming ZFS send” was introduced. That means that if there was some problem with transmitting the dataset from one point to another you could resume it or throw them away. But the point is, that yes, you finally have a choice. Err codemadness.org 70 i 19768 News Roundup Err codemadness.org 70 i 19769 Realtime bandwidth terminal graph visualization (https://dataswamp.org/~solene/2019-07-19-ttyplot-netstat-openbsd.html) Err codemadness.org 70 i 19770 If for some reasons you want to visualize your bandwidth traffic on an interface (in or out) in a terminal with a nice graph, here is a small script to do so, involving ttyplot, a nice software making graphics in a terminal. Err codemadness.org 70 i 19771 The following will works on OpenBSD. You can install ttyplot by pkg_add ttyplot as root, ttyplot package appeared since OpenBSD 6.5. Err codemadness.org 70 i 19772 fixing telnet fixes (https://flak.tedunangst.com/post/fixing-telnet-fixes) Err codemadness.org 70 i 19773 There’s a FreeBSD commit to telnet. fix a couple of snprintf() buffer overflows. It’s received a bit of attention for various reasons, telnet in 2019?, etc. I thought I’d take a look. Here’s a few random observations. Err codemadness.org 70 i 19774 The first line is indented with spaces while the others use tabs. Err codemadness.org 70 i 19775 The correct type for string length is size_t not unsigned int. Err codemadness.org 70 i 19776 sizeof(char) is always one. There’s no need to multiply by it. Err codemadness.org 70 i 19777 If you do need to multiply by a size, this is an unsafe pattern. Use calloc or something similar. (OpenBSD provides reallocarray to avoid zeroing cost of calloc.) Err codemadness.org 70 i 19778 Return value of malloc doesn’t need to be cast. In fact, should not be, lest you disguise a warning. Err codemadness.org 70 i 19779 Return value of malloc is not checked for NULL. Err codemadness.org 70 i 19780 No reason to cast cp to char * when passing to snprintf. It already is that type. And if it weren’t, what are you doing? Err codemadness.org 70 i 19781 The whole operation could be simplified by using asprintf. Err codemadness.org 70 i 19782 Although unlikely (probably impossible here, but more generally), adding the two source lengths together can overflow, resulting in truncation with an unchecked snprintf call. asprintf avoids this failure case. Err codemadness.org 70 i 19783 A Chapter from the FBI’s History with OpenBSD and an OpenSSH Vuln (https://twitter.com/RooneyMcNibNug/status/1152327783055601664) Err codemadness.org 70 i 19784 Earlier this year I FOIAed the FBI for details on allegations of backdoor installed in the IPSEC stack in 2010, originally discussed by OpenBSD devs (https://marc.info/?l=openbsd-tech&m=129236621626462 …) Today, I got an interesting but unexpected responsive record: Err codemadness.org 70 i 19785 Freedom of Information Act: FBI: OpenBSD (https://www.muckrock.com/foi/united-states-of-america-10/foia-fbi-openbsd-70084/) Err codemadness.org 70 i 19786 GitHub Repo (https://github.com/RooneyMcNibNug/FOIA/blob/master/Responsive%20Docs/OpenBSD/FBI_OpenBSD_response_OCRd.pdf) Err codemadness.org 70 i 19787 Beastie Bits Err codemadness.org 70 i 19788 “Sudo Mastery, 2nd Edition” open for tech review (https://mwl.io/archives/4378) Err codemadness.org 70 i 19789 FreeBSD Journal: FreeBSD for Makers (https://www.freebsdnews.com/2019/07/12/freebsd-journal-freebsd-for-makers/) Err codemadness.org 70 i 19790 OpenBSD and NetBSD machines at Open Source Conference 2019 Nagoya (http://mail-index.netbsd.org/netbsd-advocacy/2019/07/19/msg000808.html) Err codemadness.org 70 i 19791 FreeBSD 12.0: WINE Gaming (https://www.youtube.com/watch?v=zuj9pRNR2oM) Err codemadness.org 70 i 19792 Introduction to the Structure and Interpretation of TNF (The NetBSD Foundation) (https://www.netbsd.org/gallery/presentations/wiz/pkgsrccon2019/index.html#/) Err codemadness.org 70 i 19793 vBSDcon speakers announced (https://www.vbsdcon.com/) Err codemadness.org 70 i 19794 Feedback/Questions Err codemadness.org 70 i 19795 Pat - NYCBug Aug 7th (http://dpaste.com/21Y1PRM) Err codemadness.org 70 i 19796 Tyler - SSH keys vs password (http://dpaste.com/3JEVVEF#wrap) Err codemadness.org 70 i 19797 Lars - Tor-Talk (http://dpaste.com/0RAFMXZ) Err codemadness.org 70 i 19798 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 19799 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 19800 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0309.mp4" type="video/mp4"> Err codemadness.org 70 i 19801 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 19802 </video> Err codemadness.org 70 i 19803 Err codemadness.org 70 i 19804 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, zfs, send, terminal, bandwidth, graph, realtime, telnet Err codemadness.org 70 i 19805 Err codemadness.org 70 i 19806 DragonFlyBSD Project Update - colo upgrade, future trends, resuming ZFS send, realtime bandwidth terminal graph visualization, fixing telnet fixes, a chapter from the FBI’s history with OpenBSD and an OpenSSH vuln, and more.

Err codemadness.org 70 i 19807 Err codemadness.org 70 i 19808

Headlines

Err codemadness.org 70 i 19809 Err codemadness.org 70 i 19810

DragonFlyBSD Project Update - colo upgrade, future trends

Err codemadness.org 70 i 19811 Err codemadness.org 70 i 19812
Err codemadness.org 70 i 19813

For the last week I've been testing out a replacement for Monster, our 48-core opteron server. The project will be removing Monster from the colo in a week or two and replacing it with three machines which together will use half the power that Monster did alone.

Err codemadness.org 70 i 19814 Err codemadness.org 70 i 19815

The goal is to clear out a little power budget in the colo and to really beef-up our package-building capabilities to reduce the turn-around time needed to test ports syncs and updates to the binary package system.

Err codemadness.org 70 i 19816 Err codemadness.org 70 i 19817

Currently we use two blades to do most of the building, plus monster sometimes. The blades take almost a week (120 hours+) to do a full synth run and monster takes around 27.5 hours. But we need to do three bulk builds more or less at the same time... one for the release branch, one for the development branch, and one for staging updates. It just takes too long and its been gnawing at me for a little while.

Err codemadness.org 70 i 19818 Err codemadness.org 70 i 19819

Well, Zen 2 to the rescue! These new CPUs can take ECC, there's actually an IPMI mobo available, and they are fast as hell and cheap for what we get.

Err codemadness.org 70 i 19820 Err codemadness.org 70 i 19821

The new machines will be two 3900X based servers, plus a dual-xeon system that I already had at home. The 3900X's can each do a full synth run in 24.5 hours and the Xeon can do it in around 31 hours. Monster will be retired. And the crazy thing about this? Monster burns 1000W going full bore. Each of the 3900X servers burns 160W and the Xeon burns 200W. In otherwords, we are replacing 1000W with only 520W and getting roughly 6x the performance efficiency in the upgrade. This tell you just how much more power-efficient machines have become in the last 9 years or so. > This upgrade will allow us to do full builds for both release and dev in roughly one day instead of seven days, and do it without interfering with staging work that might be happening at the same time.

Err codemadness.org 70 i 19822 Err codemadness.org 70 i 19823

Future trends - DragonFlyBSD has reached a bit of a cross-roads. With most of the SMP work now essentially complete across the entire system the main project focus is now on supplying reliable binary ports for release and developer branches, DRM (GPU) support and other UI elements to keep DragonFlyBSD relevant on workstations, and continuing Filesystem work on HAMMER2 to get multi-device and clustering going.

Err codemadness.org 70 i 19824
Err codemadness.org 70 i 19825 Err codemadness.org 70 i 19826
Err codemadness.org 70 i 19827 Err codemadness.org 70 i 19828

Resuming ZFS send

Err codemadness.org 70 i 19829 Err codemadness.org 70 i 19830
Err codemadness.org 70 i 19831

One of the amazing functionalities of ZFS is the possibility of sending a whole dataset from one place to another. This mechanism is amazing to create backups of your ZFS based machines. Although, there were some issues with this functionality for a long time when a user sent a big chunk of data. What if you would do that over the network and your connection has disappeared? What if your machine was rebooted as you are sending a snapshot?

Err codemadness.org 70 i 19832 Err codemadness.org 70 i 19833

For a very long time, you didn't have any options - you had to send a snapshot from the beginning. Now, this limitation was already bad enough. However, another downside of this approach was that all the data which you already send was thrown away. Therefore, ZFS had to go over all this data and remove them from the dataset. Imagine the terabytes of data which you sent via the network was thrown away because as you were sending the last few bytes, the network went off.

Err codemadness.org 70 i 19834 Err codemadness.org 70 i 19835

In this short post, I don't want to go over the whole ZFS snapshot infrastructure (if you think that such a post would be useful, please leave a comment). Now, to get back to the point, this infrastructure is used to clone the datasets. Some time ago a new feature called “Resuming ZFS send” was introduced. That means that if there was some problem with transmitting the dataset from one point to another you could resume it or throw them away. But the point is, that yes, you finally have a choice.

Err codemadness.org 70 i 19836
Err codemadness.org 70 i 19837 Err codemadness.org 70 i 19838
Err codemadness.org 70 i 19839 Err codemadness.org 70 i 19840

News Roundup

Err codemadness.org 70 i 19841 Err codemadness.org 70 i 19842

Realtime bandwidth terminal graph visualization

Err codemadness.org 70 i 19843 Err codemadness.org 70 i 19844
Err codemadness.org 70 i 19845

If for some reasons you want to visualize your bandwidth traffic on an interface (in or out) in a terminal with a nice graph, here is a small script to do so, involving ttyplot, a nice software making graphics in a terminal.

Err codemadness.org 70 i 19846 Err codemadness.org 70 i 19847

The following will works on OpenBSD. You can install ttyplot by pkg_add ttyplot as root, ttyplot package appeared since OpenBSD 6.5.

Err codemadness.org 70 i 19848
Err codemadness.org 70 i 19849 Err codemadness.org 70 i 19850
Err codemadness.org 70 i 19851 Err codemadness.org 70 i 19852

fixing telnet fixes

Err codemadness.org 70 i 19853 Err codemadness.org 70 i 19854
Err codemadness.org 70 i 19855

There’s a FreeBSD commit to telnet. fix a couple of snprintf() buffer overflows. It’s received a bit of attention for various reasons, telnet in 2019?, etc. I thought I’d take a look. Here’s a few random observations.

Err codemadness.org 70 i 19856 Err codemadness.org 70 i 19857
    Err codemadness.org 70 i 19858
  1. The first line is indented with spaces while the others use tabs.

  2. Err codemadness.org 70 i 19859
  3. The correct type for string length is size_t not unsigned int.

  4. Err codemadness.org 70 i 19860
  5. sizeof(char) is always one. There’s no need to multiply by it.

  6. Err codemadness.org 70 i 19861
  7. If you do need to multiply by a size, this is an unsafe pattern. Use calloc or something similar. (OpenBSD provides reallocarray to avoid zeroing cost of calloc.)

  8. Err codemadness.org 70 i 19862
  9. Return value of malloc doesn’t need to be cast. In fact, should not be, lest you disguise a warning.

  10. Err codemadness.org 70 i 19863
  11. Return value of malloc is not checked for NULL.

  12. Err codemadness.org 70 i 19864
  13. No reason to cast cp to char * when passing to snprintf. It already is that type. And if it weren’t, what are you doing?

  14. Err codemadness.org 70 i 19865
  15. The whole operation could be simplified by using asprintf.

  16. Err codemadness.org 70 i 19866
  17. Although unlikely (probably impossible here, but more generally), adding the two source lengths together can overflow, resulting in truncation with an unchecked snprintf call. asprintf avoids this failure case.

  18. Err codemadness.org 70 i 19867
Err codemadness.org 70 i 19868
Err codemadness.org 70 i 19869 Err codemadness.org 70 i 19870
Err codemadness.org 70 i 19871 Err codemadness.org 70 i 19872

A Chapter from the FBI’s History with OpenBSD and an OpenSSH Vuln

Err codemadness.org 70 i 19873 Err codemadness.org 70 i 19874
Err codemadness.org 70 i 19875

Earlier this year I FOIAed the FBI for details on allegations of backdoor installed in the IPSEC stack in 2010, originally discussed by OpenBSD devs (https://marc.info/?l=openbsd-tech&m=129236621626462 …) Today, I got an interesting but unexpected responsive record:

Err codemadness.org 70 i 19876
Err codemadness.org 70 i 19877 Err codemadness.org 70 i 19878 Err codemadness.org 70 i 19882 Err codemadness.org 70 i 19883
Err codemadness.org 70 i 19884 Err codemadness.org 70 i 19885

Beastie Bits

Err codemadness.org 70 i 19886 Err codemadness.org 70 i 19887 Err codemadness.org 70 i 19895 Err codemadness.org 70 i 19896
Err codemadness.org 70 i 19897 Err codemadness.org 70 i 19898

Feedback/Questions

Err codemadness.org 70 i 19899 Err codemadness.org 70 i 19900 Err codemadness.org 70 i 19905 Err codemadness.org 70 i 19906
Err codemadness.org 70 i 19907 Err codemadness.org 70 i 19908
    Err codemadness.org 70 i 19909
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 19910
Err codemadness.org 70 i 19911 Err codemadness.org 70 i 19912
Err codemadness.org 70 i 19913 Err codemadness.org 70 i 19914 ]]> Err codemadness.org 70 i 19918
Err codemadness.org 70 i 19919 Err codemadness.org 70 i 19920 DragonFlyBSD Project Update - colo upgrade, future trends, resuming ZFS send, realtime bandwidth terminal graph visualization, fixing telnet fixes, a chapter from the FBI’s history with OpenBSD and an OpenSSH vuln, and more.

Err codemadness.org 70 i 19921 Err codemadness.org 70 i 19922

Headlines

Err codemadness.org 70 i 19923 Err codemadness.org 70 i 19924

DragonFlyBSD Project Update - colo upgrade, future trends

Err codemadness.org 70 i 19925 Err codemadness.org 70 i 19926
Err codemadness.org 70 i 19927

For the last week I've been testing out a replacement for Monster, our 48-core opteron server. The project will be removing Monster from the colo in a week or two and replacing it with three machines which together will use half the power that Monster did alone.

Err codemadness.org 70 i 19928 Err codemadness.org 70 i 19929

The goal is to clear out a little power budget in the colo and to really beef-up our package-building capabilities to reduce the turn-around time needed to test ports syncs and updates to the binary package system.

Err codemadness.org 70 i 19930 Err codemadness.org 70 i 19931

Currently we use two blades to do most of the building, plus monster sometimes. The blades take almost a week (120 hours+) to do a full synth run and monster takes around 27.5 hours. But we need to do three bulk builds more or less at the same time... one for the release branch, one for the development branch, and one for staging updates. It just takes too long and its been gnawing at me for a little while.

Err codemadness.org 70 i 19932 Err codemadness.org 70 i 19933

Well, Zen 2 to the rescue! These new CPUs can take ECC, there's actually an IPMI mobo available, and they are fast as hell and cheap for what we get.

Err codemadness.org 70 i 19934 Err codemadness.org 70 i 19935

The new machines will be two 3900X based servers, plus a dual-xeon system that I already had at home. The 3900X's can each do a full synth run in 24.5 hours and the Xeon can do it in around 31 hours. Monster will be retired. And the crazy thing about this? Monster burns 1000W going full bore. Each of the 3900X servers burns 160W and the Xeon burns 200W. In otherwords, we are replacing 1000W with only 520W and getting roughly 6x the performance efficiency in the upgrade. This tell you just how much more power-efficient machines have become in the last 9 years or so. > This upgrade will allow us to do full builds for both release and dev in roughly one day instead of seven days, and do it without interfering with staging work that might be happening at the same time.

Err codemadness.org 70 i 19936 Err codemadness.org 70 i 19937

Future trends - DragonFlyBSD has reached a bit of a cross-roads. With most of the SMP work now essentially complete across the entire system the main project focus is now on supplying reliable binary ports for release and developer branches, DRM (GPU) support and other UI elements to keep DragonFlyBSD relevant on workstations, and continuing Filesystem work on HAMMER2 to get multi-device and clustering going.

Err codemadness.org 70 i 19938
Err codemadness.org 70 i 19939 Err codemadness.org 70 i 19940
Err codemadness.org 70 i 19941 Err codemadness.org 70 i 19942

Resuming ZFS send

Err codemadness.org 70 i 19943 Err codemadness.org 70 i 19944
Err codemadness.org 70 i 19945

One of the amazing functionalities of ZFS is the possibility of sending a whole dataset from one place to another. This mechanism is amazing to create backups of your ZFS based machines. Although, there were some issues with this functionality for a long time when a user sent a big chunk of data. What if you would do that over the network and your connection has disappeared? What if your machine was rebooted as you are sending a snapshot?

Err codemadness.org 70 i 19946 Err codemadness.org 70 i 19947

For a very long time, you didn't have any options - you had to send a snapshot from the beginning. Now, this limitation was already bad enough. However, another downside of this approach was that all the data which you already send was thrown away. Therefore, ZFS had to go over all this data and remove them from the dataset. Imagine the terabytes of data which you sent via the network was thrown away because as you were sending the last few bytes, the network went off.

Err codemadness.org 70 i 19948 Err codemadness.org 70 i 19949

In this short post, I don't want to go over the whole ZFS snapshot infrastructure (if you think that such a post would be useful, please leave a comment). Now, to get back to the point, this infrastructure is used to clone the datasets. Some time ago a new feature called “Resuming ZFS send” was introduced. That means that if there was some problem with transmitting the dataset from one point to another you could resume it or throw them away. But the point is, that yes, you finally have a choice.

Err codemadness.org 70 i 19950
Err codemadness.org 70 i 19951 Err codemadness.org 70 i 19952
Err codemadness.org 70 i 19953 Err codemadness.org 70 i 19954

News Roundup

Err codemadness.org 70 i 19955 Err codemadness.org 70 i 19956

Realtime bandwidth terminal graph visualization

Err codemadness.org 70 i 19957 Err codemadness.org 70 i 19958
Err codemadness.org 70 i 19959

If for some reasons you want to visualize your bandwidth traffic on an interface (in or out) in a terminal with a nice graph, here is a small script to do so, involving ttyplot, a nice software making graphics in a terminal.

Err codemadness.org 70 i 19960 Err codemadness.org 70 i 19961

The following will works on OpenBSD. You can install ttyplot by pkg_add ttyplot as root, ttyplot package appeared since OpenBSD 6.5.

Err codemadness.org 70 i 19962
Err codemadness.org 70 i 19963 Err codemadness.org 70 i 19964
Err codemadness.org 70 i 19965 Err codemadness.org 70 i 19966

fixing telnet fixes

Err codemadness.org 70 i 19967 Err codemadness.org 70 i 19968
Err codemadness.org 70 i 19969

There’s a FreeBSD commit to telnet. fix a couple of snprintf() buffer overflows. It’s received a bit of attention for various reasons, telnet in 2019?, etc. I thought I’d take a look. Here’s a few random observations.

Err codemadness.org 70 i 19970 Err codemadness.org 70 i 19971
    Err codemadness.org 70 i 19972
  1. The first line is indented with spaces while the others use tabs.

  2. Err codemadness.org 70 i 19973
  3. The correct type for string length is size_t not unsigned int.

  4. Err codemadness.org 70 i 19974
  5. sizeof(char) is always one. There’s no need to multiply by it.

  6. Err codemadness.org 70 i 19975
  7. If you do need to multiply by a size, this is an unsafe pattern. Use calloc or something similar. (OpenBSD provides reallocarray to avoid zeroing cost of calloc.)

  8. Err codemadness.org 70 i 19976
  9. Return value of malloc doesn’t need to be cast. In fact, should not be, lest you disguise a warning.

  10. Err codemadness.org 70 i 19977
  11. Return value of malloc is not checked for NULL.

  12. Err codemadness.org 70 i 19978
  13. No reason to cast cp to char * when passing to snprintf. It already is that type. And if it weren’t, what are you doing?

  14. Err codemadness.org 70 i 19979
  15. The whole operation could be simplified by using asprintf.

  16. Err codemadness.org 70 i 19980
  17. Although unlikely (probably impossible here, but more generally), adding the two source lengths together can overflow, resulting in truncation with an unchecked snprintf call. asprintf avoids this failure case.

  18. Err codemadness.org 70 i 19981
Err codemadness.org 70 i 19982
Err codemadness.org 70 i 19983 Err codemadness.org 70 i 19984
Err codemadness.org 70 i 19985 Err codemadness.org 70 i 19986

A Chapter from the FBI’s History with OpenBSD and an OpenSSH Vuln

Err codemadness.org 70 i 19987 Err codemadness.org 70 i 19988
Err codemadness.org 70 i 19989

Earlier this year I FOIAed the FBI for details on allegations of backdoor installed in the IPSEC stack in 2010, originally discussed by OpenBSD devs (https://marc.info/?l=openbsd-tech&m=129236621626462 …) Today, I got an interesting but unexpected responsive record:

Err codemadness.org 70 i 19990
Err codemadness.org 70 i 19991 Err codemadness.org 70 i 19992 Err codemadness.org 70 i 19996 Err codemadness.org 70 i 19997
Err codemadness.org 70 i 19998 Err codemadness.org 70 i 19999

Beastie Bits

Err codemadness.org 70 i 20000 Err codemadness.org 70 i 20001 Err codemadness.org 70 i 20009 Err codemadness.org 70 i 20010
Err codemadness.org 70 i 20011 Err codemadness.org 70 i 20012

Feedback/Questions

Err codemadness.org 70 i 20013 Err codemadness.org 70 i 20014 Err codemadness.org 70 i 20019 Err codemadness.org 70 i 20020
Err codemadness.org 70 i 20021 Err codemadness.org 70 i 20022
    Err codemadness.org 70 i 20023
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 20024
Err codemadness.org 70 i 20025 Err codemadness.org 70 i 20026
Err codemadness.org 70 i 20027 Err codemadness.org 70 i 20028 ]]> Err codemadness.org 70 i 20032
Err codemadness.org 70 i 20033 https://fireside.fm/player/v2/FYhhasNR+8-NK-R3F Err codemadness.org 70 i 20034 Err codemadness.org 70 i 20035 ]]> Err codemadness.org 70 i 20036 Err codemadness.org 70 i 20037
Err codemadness.org 70 i 20038 Err codemadness.org 70 i 20039 308: Mumbling with OpenBSD Err codemadness.org 70 i 20040 https://www.bsdnow.tv/308 Err codemadness.org 70 i 20041 583db96b-f838-461b-a366-c6d49825c5be Err codemadness.org 70 i 20042 Wed, 24 Jul 2019 20:00:00 -0700 Err codemadness.org 70 i 20043 Allan Jude Err codemadness.org 70 i 20044 Err codemadness.org 70 i 20045 full Err codemadness.org 70 i 20046 Allan Jude Err codemadness.org 70 i 20047 Replacing a (silently) failing disk in a ZFS pool, OPNsense 19.7 RC1 released, implementing DRM ioctl support for NetBSD, High quality/low latency VOIP server with umurmur/Mumble on OpenBSD, the PDP-7 where Unix began, LLDB watchpoints, and more. Err codemadness.org 70 i 20048 44:25 Err codemadness.org 70 i 20049 no Err codemadness.org 70 i 20050 Err codemadness.org 70 i 20051 Replacing a (silently) failing disk in a ZFS pool, OPNsense 19.7 RC1 released, implementing DRM ioctl support for NetBSD, High quality/low latency VOIP server with umurmur/Mumble on OpenBSD, the PDP-7 where Unix began, LLDB watchpoints, and more. Err codemadness.org 70 i 20052 Headlines Err codemadness.org 70 i 20053 Replacing a (silently) failing disk in a ZFS pool (https://imil.net/blog/2019/07/02/Replacing-a-silently-failing-disk-in-a-ZFS-pool/) Err codemadness.org 70 i 20054 Maybe I can’t read, but I have the feeling that official documentations explain every single corner case for a given tool, except the one you will actually need. My today’s struggle: replacing a disk within a FreeBSD ZFS pool. Err codemadness.org 70 i 20055 What? there’s a shitton of docs on this topic! Are you stupid? Err codemadness.org 70 i 20056 I don’t know, maybe. Yet none covered the process in a simple, straight and complete manner. Err codemadness.org 70 i 20057 OPNsense 19.7 RC1 released (https://opnsense.org/opnsense-19-7-rc1-released/) Err codemadness.org 70 i 20058 Hi there, Err codemadness.org 70 i 20059 For four and a half years now, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, HardenedBSD security, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing. Err codemadness.org 70 i 20060 We thank all of you for helping test, shape and contribute to the project! We know it would not be the same without you. Err codemadness.org 70 i 20061 Download links, an installation guide[1] and the checksums for the images can be found below as well. Err codemadness.org 70 i 20062 News Roundup Err codemadness.org 70 i 20063 Implementation of DRM ioctl Support for NetBSD kernel (https://blog.netbsd.org/tnf/entry/implementation_of_drm_ioctl_support) Err codemadness.org 70 i 20064 What is DRM ioctl ? Err codemadness.org 70 i 20065 Ioctls are input/output control system calls and DRM stands for direct rendering manager The DRM layer provides several services to graphics drivers, many of them driven by the application interfaces it provides through libdrm, the library that wraps most of the DRM ioctls. These include vblank event handling, memory management, output management, framebuffer management, command submission & fencing, suspend/resume support, and DMA services. Err codemadness.org 70 i 20066 Native DRM ioctl calls Err codemadness.org 70 i 20067 NetBSD was able to make native DRM ioctl calls with hardware rendering once xorg and proper mesa packages where installed. We used the glxinfo and glxgears applications to test this out. Err codemadness.org 70 i 20068 High quality / low latency VOIP server with umurmur/Mumble on OpenBSD (https://dataswamp.org/~solene/2019-07-04-umurmur.html) Err codemadness.org 70 i 20069 Discord users keep telling about their so called discord server, which is not dedicated to them at all. And Discord has a very bad quality and a lot of voice distorsion. Err codemadness.org 70 i 20070 Why not run your very own mumble server with high voice quality and low latency and privacy respect? This is very easy to setup on OpenBSD! Err codemadness.org 70 i 20071 Mumble is an open source voip client, it has a client named Mumble (available on various operating system) and at least Android, the server part is murmur but there is a lightweight server named umurmur. People authentication is done through certificate generated locally and automatically accepted on a server, and the certificate get associated with a nickname. Nobody can pick the same nickname as another person if it’s not the same certificate. Err codemadness.org 70 i 20072 TMWL June’19 — JS Fetch API, scheduling in Spring, thoughts on Unix (https://blog.softwaremill.com/tmwl-june19-js-fetch-api-scheduling-in-spring-thoughts-on-unix-fd54f50ecd64) Err codemadness.org 70 i 20073 Unix — going back to the roots Err codemadness.org 70 i 20074 From time to time, I like to review my knowledge in a certain area, even when I feel like I know a lot about it already. I go back to the basics and read tutorials, manuals, books or watch interesting videos. Err codemadness.org 70 i 20075 I’ve been using macOS for a couple of years now, previously being a linux user for some (relatively short) time. Both these operating systems have a common ancestor — Unix. While I’m definitely not an expert, I feel quite comfortable using linux & macOS — I understand the concepts behind the system architecture, know a lot of command line tools & navigate through the shell without a hassle. So-called unix philosophy is also close to my heart. I always feel like there’s more I could squeeze out of it. Err codemadness.org 70 i 20076 Recently, I found that book titled “Unix for dummies, 5th edition” which was published back in… 2004. Feels literally like AGES in the computer-related world. However, it was a great shot — the book starts with the basics, providing some brief history of Unix and how it came to life. It talks a lot about the structure of the system and where certain pieces fit (eg. “standard” set of tools), and how to understand permissions and work with files & directories. There’s even a whole chapter about shell-based text editors like Vi and Emacs! Despite the fact that I am familiar with most of these, I could still find some interesting pieces & tools that I either knew existed (but never had a chance to use), or even haven’t ever heard of. And almost all of these are still valid in the modern “incarnations” of Unix’s descendants: Linux and macOS. Err codemadness.org 70 i 20077 The book also talks about networking, surfing the web & working with email. It’s cute to see pictures of those old browsers rendering “ancient” Internet websites, but hey — this is how it looked like no more than fifteen years ago! Err codemadness.org 70 i 20078 I can really recommend this book to anyone working on modern macOS or Linux — you will certainly find some interesting pieces. Especially if you like to go back to the roots from time to time as I do! Err codemadness.org 70 i 20079 ThePDP-7 Where Unix Began (https://bsdimp.blogspot.com/2019/07/the-pdp-7-where-unix-began.html) Err codemadness.org 70 i 20080 In preparation for a talk on Seventh Edition Unix this fall, I stumbled upon a service list from DEC for all known PDP-7 machines. From that list, and other sources, I believe that PDP-7 serial number 34 was the original Unix machine. Err codemadness.org 70 i 20081 V0 Unix could run on only one of the PDP-7s. Of the 99 PDP-7s produced, only two had disks. Serial number 14 had an RA01 listed, presumably a disk, though of a different type. In addition to the PDP-7 being obsolete in 1970, no other PDP-7 could run Unix, limiting its appeal outside of Bell Labs. By porting Unix to the PDP-11 in 1970, the group ensured Unix would live on into the future. The PDP-9 and PDP-15 were both upgrades of the PDP-7, so to be fair, PDP-7 Unix did have a natural upgrade path (the PDP-11 out sold the 18 bit systems though ~600,000 to ~1000). Ken Thompson reports in a private email that there were 2 PDP-9s and 1 PDP-15 at Bell Labs that could run a version of the PDP-7 Unix, though those machines were viewed as born obsolete. Err codemadness.org 70 i 20082 LLDB: watchpoints, XSTATE in ptrace() and core dumps (https://blog.netbsd.org/tnf/entry/lldb_watchpoints_xstate_in_ptrace) Err codemadness.org 70 i 20083 Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages. Err codemadness.org 70 i 20084 In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support and lately extending NetBSD's ptrace interface to cover more register types and fix compat32 issues. You can read more about that in my May 2019 report. Err codemadness.org 70 i 20085 In June, I have finally finished the remaining ptrace() work for xstate and got it merged both on NetBSD and LLDB end (meaning it's going to make it into NetBSD 9). I have also worked on debug register support in LLDB, effectively fixing watchpoint support. Once again I had to fight some upstream regressions. Err codemadness.org 70 i 20086 Beastie Bits Err codemadness.org 70 i 20087 Project Trident 19.07 Available (https://project-trident.org/post/2019-07-12_19.07_available/) Err codemadness.org 70 i 20088 A list of names from "Cold Blood" -- Any familiar? (https://www.montanalinux.org/cold-blood-list-of-numbers-201907.html) Err codemadness.org 70 i 20089 fern: a curses-based mastodon client modeled off usenet news readers & pine, with an emphasis on getting to 'timeline zero' (https://github.com/enkiv2/fern) Err codemadness.org 70 i 20090 OpenBSD Community goes Platinum for 2019! (https://undeadly.org/cgi?action=article;sid=20190707065226) Err codemadness.org 70 i 20091 tcp keepalive and dports on DragonFly (https://www.dragonflydigest.com/2019/07/15/23199.html) Err codemadness.org 70 i 20092 Feedback/Questions Err codemadness.org 70 i 20093 Patrick - OpenZFS/ZoL Module from Ports (http://dpaste.com/1W2HJ04) Err codemadness.org 70 i 20094 Brad - Services not starting (http://dpaste.com/345VM9Y#wrap) Err codemadness.org 70 i 20095 Simon - Feedback (http://dpaste.com/1B4ZKC8#wrap) Err codemadness.org 70 i 20096 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 20097 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 20098 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0308.mp4" type="video/mp4"> Err codemadness.org 70 i 20099 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 20100 </video> Err codemadness.org 70 i 20101 Err codemadness.org 70 i 20102 Err codemadness.org 70 i 20103 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, zfs, zpool, opnsense, drm, voip, umurmur, mumble, pdp-7, lldp, watchpoints Err codemadness.org 70 i 20104 Err codemadness.org 70 i 20105 Replacing a (silently) failing disk in a ZFS pool, OPNsense 19.7 RC1 released, implementing DRM ioctl support for NetBSD, High quality/low latency VOIP server with umurmur/Mumble on OpenBSD, the PDP-7 where Unix began, LLDB watchpoints, and more.

Err codemadness.org 70 i 20106 Err codemadness.org 70 i 20107

Headlines

Err codemadness.org 70 i 20108 Err codemadness.org 70 i 20109

Replacing a (silently) failing disk in a ZFS pool

Err codemadness.org 70 i 20110 Err codemadness.org 70 i 20111
Err codemadness.org 70 i 20112

Maybe I can’t read, but I have the feeling that official documentations explain every single corner case for a given tool, except the one you will actually need. My today’s struggle: replacing a disk within a FreeBSD ZFS pool.
Err codemadness.org 70 i 20113 What? there’s a shitton of docs on this topic! Are you stupid?
Err codemadness.org 70 i 20114 I don’t know, maybe. Yet none covered the process in a simple, straight and complete manner.

Err codemadness.org 70 i 20115
Err codemadness.org 70 i 20116 Err codemadness.org 70 i 20117
Err codemadness.org 70 i 20118 Err codemadness.org 70 i 20119

OPNsense 19.7 RC1 released

Err codemadness.org 70 i 20120 Err codemadness.org 70 i 20121
Err codemadness.org 70 i 20122

Hi there,
Err codemadness.org 70 i 20123 For four and a half years now, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, HardenedBSD security, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.
Err codemadness.org 70 i 20124 We thank all of you for helping test, shape and contribute to the project! We know it would not be the same without you.
Err codemadness.org 70 i 20125 Download links, an installation guide[1] and the checksums for the images can be found below as well.

Err codemadness.org 70 i 20126
Err codemadness.org 70 i 20127 Err codemadness.org 70 i 20128
Err codemadness.org 70 i 20129 Err codemadness.org 70 i 20130

News Roundup

Err codemadness.org 70 i 20131 Err codemadness.org 70 i 20132

Implementation of DRM ioctl Support for NetBSD kernel

Err codemadness.org 70 i 20133 Err codemadness.org 70 i 20134
    Err codemadness.org 70 i 20135
  • What is DRM ioctl ?
  • Err codemadness.org 70 i 20136
Err codemadness.org 70 i 20137 Err codemadness.org 70 i 20138
Err codemadness.org 70 i 20139

Ioctls are input/output control system calls and DRM stands for direct rendering manager The DRM layer provides several services to graphics drivers, many of them driven by the application interfaces it provides through libdrm, the library that wraps most of the DRM ioctls. These include vblank event handling, memory management, output management, framebuffer management, command submission & fencing, suspend/resume support, and DMA services.

Err codemadness.org 70 i 20140
Err codemadness.org 70 i 20141 Err codemadness.org 70 i 20142
    Err codemadness.org 70 i 20143
  • Native DRM ioctl calls
  • Err codemadness.org 70 i 20144
Err codemadness.org 70 i 20145 Err codemadness.org 70 i 20146
Err codemadness.org 70 i 20147

NetBSD was able to make native DRM ioctl calls with hardware rendering once xorg and proper mesa packages where installed. We used the glxinfo and glxgears applications to test this out.

Err codemadness.org 70 i 20148
Err codemadness.org 70 i 20149 Err codemadness.org 70 i 20150
Err codemadness.org 70 i 20151 Err codemadness.org 70 i 20152

High quality / low latency VOIP server with umurmur/Mumble on OpenBSD

Err codemadness.org 70 i 20153 Err codemadness.org 70 i 20154
Err codemadness.org 70 i 20155

Discord users keep telling about their so called discord server, which is not dedicated to them at all. And Discord has a very bad quality and a lot of voice distorsion.
Err codemadness.org 70 i 20156 Why not run your very own mumble server with high voice quality and low latency and privacy respect? This is very easy to setup on OpenBSD!
Err codemadness.org 70 i 20157 Mumble is an open source voip client, it has a client named Mumble (available on various operating system) and at least Android, the server part is murmur but there is a lightweight server named umurmur. People authentication is done through certificate generated locally and automatically accepted on a server, and the certificate get associated with a nickname. Nobody can pick the same nickname as another person if it’s not the same certificate.

Err codemadness.org 70 i 20158
Err codemadness.org 70 i 20159 Err codemadness.org 70 i 20160
Err codemadness.org 70 i 20161 Err codemadness.org 70 i 20162

TMWL June’19 — JS Fetch API, scheduling in Spring, thoughts on Unix

Err codemadness.org 70 i 20163 Err codemadness.org 70 i 20164
    Err codemadness.org 70 i 20165
  • Unix — going back to the roots
  • Err codemadness.org 70 i 20166
Err codemadness.org 70 i 20167 Err codemadness.org 70 i 20168
Err codemadness.org 70 i 20169

From time to time, I like to review my knowledge in a certain area, even when I feel like I know a lot about it already. I go back to the basics and read tutorials, manuals, books or watch interesting videos.
Err codemadness.org 70 i 20170 I’ve been using macOS for a couple of years now, previously being a linux user for some (relatively short) time. Both these operating systems have a common ancestor — Unix. While I’m definitely not an expert, I feel quite comfortable using linux & macOS — I understand the concepts behind the system architecture, know a lot of command line tools & navigate through the shell without a hassle. So-called unix philosophy is also close to my heart. I always feel like there’s more I could squeeze out of it.
Err codemadness.org 70 i 20171 Recently, I found that book titled “Unix for dummies, 5th edition” which was published back in… 2004. Feels literally like AGES in the computer-related world. However, it was a great shot — the book starts with the basics, providing some brief history of Unix and how it came to life. It talks a lot about the structure of the system and where certain pieces fit (eg. “standard” set of tools), and how to understand permissions and work with files & directories. There’s even a whole chapter about shell-based text editors like Vi and Emacs! Despite the fact that I am familiar with most of these, I could still find some interesting pieces & tools that I either knew existed (but never had a chance to use), or even haven’t ever heard of. And almost all of these are still valid in the modern “incarnations” of Unix’s descendants: Linux and macOS.
Err codemadness.org 70 i 20172 The book also talks about networking, surfing the web & working with email. It’s cute to see pictures of those old browsers rendering “ancient” Internet websites, but hey — this is how it looked like no more than fifteen years ago!
Err codemadness.org 70 i 20173 I can really recommend this book to anyone working on modern macOS or Linux — you will certainly find some interesting pieces. Especially if you like to go back to the roots from time to time as I do!

Err codemadness.org 70 i 20174
Err codemadness.org 70 i 20175 Err codemadness.org 70 i 20176
Err codemadness.org 70 i 20177 Err codemadness.org 70 i 20178

ThePDP-7 Where Unix Began

Err codemadness.org 70 i 20179 Err codemadness.org 70 i 20180
Err codemadness.org 70 i 20181

In preparation for a talk on Seventh Edition Unix this fall, I stumbled upon a service list from DEC for all known PDP-7 machines. From that list, and other sources, I believe that PDP-7 serial number 34 was the original Unix machine.
Err codemadness.org 70 i 20182 V0 Unix could run on only one of the PDP-7s. Of the 99 PDP-7s produced, only two had disks. Serial number 14 had an RA01 listed, presumably a disk, though of a different type. In addition to the PDP-7 being obsolete in 1970, no other PDP-7 could run Unix, limiting its appeal outside of Bell Labs. By porting Unix to the PDP-11 in 1970, the group ensured Unix would live on into the future. The PDP-9 and PDP-15 were both upgrades of the PDP-7, so to be fair, PDP-7 Unix did have a natural upgrade path (the PDP-11 out sold the 18 bit systems though ~600,000 to ~1000). Ken Thompson reports in a private email that there were 2 PDP-9s and 1 PDP-15 at Bell Labs that could run a version of the PDP-7 Unix, though those machines were viewed as born obsolete.

Err codemadness.org 70 i 20183
Err codemadness.org 70 i 20184 Err codemadness.org 70 i 20185
Err codemadness.org 70 i 20186 Err codemadness.org 70 i 20187

LLDB: watchpoints, XSTATE in ptrace() and core dumps

Err codemadness.org 70 i 20188 Err codemadness.org 70 i 20189
Err codemadness.org 70 i 20190

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.
Err codemadness.org 70 i 20191 In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support and lately extending NetBSD's ptrace interface to cover more register types and fix compat32 issues. You can read more about that in my May 2019 report.
Err codemadness.org 70 i 20192 In June, I have finally finished the remaining ptrace() work for xstate and got it merged both on NetBSD and LLDB end (meaning it's going to make it into NetBSD 9). I have also worked on debug register support in LLDB, effectively fixing watchpoint support. Once again I had to fight some upstream regressions.

Err codemadness.org 70 i 20193
Err codemadness.org 70 i 20194 Err codemadness.org 70 i 20195

Beastie Bits

Err codemadness.org 70 i 20196 Err codemadness.org 70 i 20197 Err codemadness.org 70 i 20204 Err codemadness.org 70 i 20205
Err codemadness.org 70 i 20206 Err codemadness.org 70 i 20207

Feedback/Questions

Err codemadness.org 70 i 20208 Err codemadness.org 70 i 20209 Err codemadness.org 70 i 20214 Err codemadness.org 70 i 20215
Err codemadness.org 70 i 20216 Err codemadness.org 70 i 20217
    Err codemadness.org 70 i 20218
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 20219
Err codemadness.org 70 i 20220 Err codemadness.org 70 i 20221
Err codemadness.org 70 i 20222 Err codemadness.org 70 i 20223 ]]> Err codemadness.org 70 i 20227
Err codemadness.org 70 i 20228 Err codemadness.org 70 i 20229 Replacing a (silently) failing disk in a ZFS pool, OPNsense 19.7 RC1 released, implementing DRM ioctl support for NetBSD, High quality/low latency VOIP server with umurmur/Mumble on OpenBSD, the PDP-7 where Unix began, LLDB watchpoints, and more.

Err codemadness.org 70 i 20230 Err codemadness.org 70 i 20231

Headlines

Err codemadness.org 70 i 20232 Err codemadness.org 70 i 20233

Replacing a (silently) failing disk in a ZFS pool

Err codemadness.org 70 i 20234 Err codemadness.org 70 i 20235
Err codemadness.org 70 i 20236

Maybe I can’t read, but I have the feeling that official documentations explain every single corner case for a given tool, except the one you will actually need. My today’s struggle: replacing a disk within a FreeBSD ZFS pool.
Err codemadness.org 70 i 20237 What? there’s a shitton of docs on this topic! Are you stupid?
Err codemadness.org 70 i 20238 I don’t know, maybe. Yet none covered the process in a simple, straight and complete manner.

Err codemadness.org 70 i 20239
Err codemadness.org 70 i 20240 Err codemadness.org 70 i 20241
Err codemadness.org 70 i 20242 Err codemadness.org 70 i 20243

OPNsense 19.7 RC1 released

Err codemadness.org 70 i 20244 Err codemadness.org 70 i 20245
Err codemadness.org 70 i 20246

Hi there,
Err codemadness.org 70 i 20247 For four and a half years now, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, HardenedBSD security, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.
Err codemadness.org 70 i 20248 We thank all of you for helping test, shape and contribute to the project! We know it would not be the same without you.
Err codemadness.org 70 i 20249 Download links, an installation guide[1] and the checksums for the images can be found below as well.

Err codemadness.org 70 i 20250
Err codemadness.org 70 i 20251 Err codemadness.org 70 i 20252
Err codemadness.org 70 i 20253 Err codemadness.org 70 i 20254

News Roundup

Err codemadness.org 70 i 20255 Err codemadness.org 70 i 20256

Implementation of DRM ioctl Support for NetBSD kernel

Err codemadness.org 70 i 20257 Err codemadness.org 70 i 20258
    Err codemadness.org 70 i 20259
  • What is DRM ioctl ?
  • Err codemadness.org 70 i 20260
Err codemadness.org 70 i 20261 Err codemadness.org 70 i 20262
Err codemadness.org 70 i 20263

Ioctls are input/output control system calls and DRM stands for direct rendering manager The DRM layer provides several services to graphics drivers, many of them driven by the application interfaces it provides through libdrm, the library that wraps most of the DRM ioctls. These include vblank event handling, memory management, output management, framebuffer management, command submission & fencing, suspend/resume support, and DMA services.

Err codemadness.org 70 i 20264
Err codemadness.org 70 i 20265 Err codemadness.org 70 i 20266
    Err codemadness.org 70 i 20267
  • Native DRM ioctl calls
  • Err codemadness.org 70 i 20268
Err codemadness.org 70 i 20269 Err codemadness.org 70 i 20270
Err codemadness.org 70 i 20271

NetBSD was able to make native DRM ioctl calls with hardware rendering once xorg and proper mesa packages where installed. We used the glxinfo and glxgears applications to test this out.

Err codemadness.org 70 i 20272
Err codemadness.org 70 i 20273 Err codemadness.org 70 i 20274
Err codemadness.org 70 i 20275 Err codemadness.org 70 i 20276

High quality / low latency VOIP server with umurmur/Mumble on OpenBSD

Err codemadness.org 70 i 20277 Err codemadness.org 70 i 20278
Err codemadness.org 70 i 20279

Discord users keep telling about their so called discord server, which is not dedicated to them at all. And Discord has a very bad quality and a lot of voice distorsion.
Err codemadness.org 70 i 20280 Why not run your very own mumble server with high voice quality and low latency and privacy respect? This is very easy to setup on OpenBSD!
Err codemadness.org 70 i 20281 Mumble is an open source voip client, it has a client named Mumble (available on various operating system) and at least Android, the server part is murmur but there is a lightweight server named umurmur. People authentication is done through certificate generated locally and automatically accepted on a server, and the certificate get associated with a nickname. Nobody can pick the same nickname as another person if it’s not the same certificate.

Err codemadness.org 70 i 20282
Err codemadness.org 70 i 20283 Err codemadness.org 70 i 20284
Err codemadness.org 70 i 20285 Err codemadness.org 70 i 20286

TMWL June’19 — JS Fetch API, scheduling in Spring, thoughts on Unix

Err codemadness.org 70 i 20287 Err codemadness.org 70 i 20288
    Err codemadness.org 70 i 20289
  • Unix — going back to the roots
  • Err codemadness.org 70 i 20290
Err codemadness.org 70 i 20291 Err codemadness.org 70 i 20292
Err codemadness.org 70 i 20293

From time to time, I like to review my knowledge in a certain area, even when I feel like I know a lot about it already. I go back to the basics and read tutorials, manuals, books or watch interesting videos.
Err codemadness.org 70 i 20294 I’ve been using macOS for a couple of years now, previously being a linux user for some (relatively short) time. Both these operating systems have a common ancestor — Unix. While I’m definitely not an expert, I feel quite comfortable using linux & macOS — I understand the concepts behind the system architecture, know a lot of command line tools & navigate through the shell without a hassle. So-called unix philosophy is also close to my heart. I always feel like there’s more I could squeeze out of it.
Err codemadness.org 70 i 20295 Recently, I found that book titled “Unix for dummies, 5th edition” which was published back in… 2004. Feels literally like AGES in the computer-related world. However, it was a great shot — the book starts with the basics, providing some brief history of Unix and how it came to life. It talks a lot about the structure of the system and where certain pieces fit (eg. “standard” set of tools), and how to understand permissions and work with files & directories. There’s even a whole chapter about shell-based text editors like Vi and Emacs! Despite the fact that I am familiar with most of these, I could still find some interesting pieces & tools that I either knew existed (but never had a chance to use), or even haven’t ever heard of. And almost all of these are still valid in the modern “incarnations” of Unix’s descendants: Linux and macOS.
Err codemadness.org 70 i 20296 The book also talks about networking, surfing the web & working with email. It’s cute to see pictures of those old browsers rendering “ancient” Internet websites, but hey — this is how it looked like no more than fifteen years ago!
Err codemadness.org 70 i 20297 I can really recommend this book to anyone working on modern macOS or Linux — you will certainly find some interesting pieces. Especially if you like to go back to the roots from time to time as I do!

Err codemadness.org 70 i 20298
Err codemadness.org 70 i 20299 Err codemadness.org 70 i 20300
Err codemadness.org 70 i 20301 Err codemadness.org 70 i 20302

ThePDP-7 Where Unix Began

Err codemadness.org 70 i 20303 Err codemadness.org 70 i 20304
Err codemadness.org 70 i 20305

In preparation for a talk on Seventh Edition Unix this fall, I stumbled upon a service list from DEC for all known PDP-7 machines. From that list, and other sources, I believe that PDP-7 serial number 34 was the original Unix machine.
Err codemadness.org 70 i 20306 V0 Unix could run on only one of the PDP-7s. Of the 99 PDP-7s produced, only two had disks. Serial number 14 had an RA01 listed, presumably a disk, though of a different type. In addition to the PDP-7 being obsolete in 1970, no other PDP-7 could run Unix, limiting its appeal outside of Bell Labs. By porting Unix to the PDP-11 in 1970, the group ensured Unix would live on into the future. The PDP-9 and PDP-15 were both upgrades of the PDP-7, so to be fair, PDP-7 Unix did have a natural upgrade path (the PDP-11 out sold the 18 bit systems though ~600,000 to ~1000). Ken Thompson reports in a private email that there were 2 PDP-9s and 1 PDP-15 at Bell Labs that could run a version of the PDP-7 Unix, though those machines were viewed as born obsolete.

Err codemadness.org 70 i 20307
Err codemadness.org 70 i 20308 Err codemadness.org 70 i 20309
Err codemadness.org 70 i 20310 Err codemadness.org 70 i 20311

LLDB: watchpoints, XSTATE in ptrace() and core dumps

Err codemadness.org 70 i 20312 Err codemadness.org 70 i 20313
Err codemadness.org 70 i 20314

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.
Err codemadness.org 70 i 20315 In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support and lately extending NetBSD's ptrace interface to cover more register types and fix compat32 issues. You can read more about that in my May 2019 report.
Err codemadness.org 70 i 20316 In June, I have finally finished the remaining ptrace() work for xstate and got it merged both on NetBSD and LLDB end (meaning it's going to make it into NetBSD 9). I have also worked on debug register support in LLDB, effectively fixing watchpoint support. Once again I had to fight some upstream regressions.

Err codemadness.org 70 i 20317
Err codemadness.org 70 i 20318 Err codemadness.org 70 i 20319

Beastie Bits

Err codemadness.org 70 i 20320 Err codemadness.org 70 i 20321 Err codemadness.org 70 i 20328 Err codemadness.org 70 i 20329
Err codemadness.org 70 i 20330 Err codemadness.org 70 i 20331

Feedback/Questions

Err codemadness.org 70 i 20332 Err codemadness.org 70 i 20333 Err codemadness.org 70 i 20338 Err codemadness.org 70 i 20339
Err codemadness.org 70 i 20340 Err codemadness.org 70 i 20341
    Err codemadness.org 70 i 20342
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 20343
Err codemadness.org 70 i 20344 Err codemadness.org 70 i 20345
Err codemadness.org 70 i 20346 Err codemadness.org 70 i 20347 ]]> Err codemadness.org 70 i 20351
Err codemadness.org 70 i 20352 https://fireside.fm/player/v2/FYhhasNR+Js40yXpD Err codemadness.org 70 i 20353 Err codemadness.org 70 i 20354 ]]> Err codemadness.org 70 i 20355 Err codemadness.org 70 i 20356
Err codemadness.org 70 i 20357 Err codemadness.org 70 i 20358 307: Twitching with OpenBSD Err codemadness.org 70 i 20359 https://www.bsdnow.tv/307 Err codemadness.org 70 i 20360 1bd153c0-be65-44ed-8f12-f73d97e93d8b Err codemadness.org 70 i 20361 Thu, 18 Jul 2019 07:00:00 -0700 Err codemadness.org 70 i 20362 Allan Jude Err codemadness.org 70 i 20363 Err codemadness.org 70 i 20364 full Err codemadness.org 70 i 20365 Allan Jude Err codemadness.org 70 i 20366 FreeBSD 11.3 has been released, OpenBSD workstation, write your own fuzzer for the NetBSD kernel, Exploiting FreeBSD-SA-19:02.fd, streaming to twitch using OpenBSD, 3 different ways of dumping hex contents of a file, and more. Err codemadness.org 70 i 20367 50:59 Err codemadness.org 70 i 20368 no Err codemadness.org 70 i 20369 Err codemadness.org 70 i 20370 FreeBSD 11.3 has been released, OpenBSD workstation, write your own fuzzer for the NetBSD kernel, Exploiting FreeBSD-SA-19:02.fd, streaming to twitch using OpenBSD, 3 different ways of dumping hex contents of a file, and more. Err codemadness.org 70 i 20371 Headlines Err codemadness.org 70 i 20372 FreeBSD 11.3-RELEASE Announcement (https://www.freebsd.org/releases/11.3R/announce.html) Err codemadness.org 70 i 20373 The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 11.3-RELEASE. This is the fourth release of the stable/11 branch. Err codemadness.org 70 i 20374 Some of the highlights: Err codemadness.org 70 i 20375 The clang, llvm, lld, lldb, and compiler-rt utilities as well as libc++ have been updated to upstream version 8.0.0. Err codemadness.org 70 i 20376 The ELF Tool Chain has been updated to version r3614. Err codemadness.org 70 i 20377 OpenSSL has been updated to version 1.0.2s. Err codemadness.org 70 i 20378 The ZFS filesystem has been updated to implement parallel mounting. Err codemadness.org 70 i 20379 The loader(8) has been updated to extend geli(8) support to all architectures. Err codemadness.org 70 i 20380 The pkg(8) utility has been updated to version 1.10.5. Err codemadness.org 70 i 20381 The KDE desktop environment has been updated to version 5.15.3. Err codemadness.org 70 i 20382 The GNOME desktop environment has been updated to version 3.28. Err codemadness.org 70 i 20383 The kernel will now log the jail(8) ID when logging a process exit. Err codemadness.org 70 i 20384 Several feature additions and updates to userland applications. Err codemadness.org 70 i 20385 Several network driver firmware updates. Err codemadness.org 70 i 20386 Warnings for features deprecated in future releases will now be printed on all FreeBSD versions. Err codemadness.org 70 i 20387 Warnings have been added for IPSec algorithms deprecated in RFC 8221. Err codemadness.org 70 i 20388 Deprecation warnings have been added for weaker algorithms when creating geli(8) providers. Err codemadness.org 70 i 20389 And more... Err codemadness.org 70 i 20390 OpenBSD Is Now My Workstation (https://sogubsys.com/openbsd-is-now-my-workstation-operating-system/) Err codemadness.org 70 i 20391 Why OpenBSD? Simply because it is the best tool for the job for me for my new-to-me Lenovo Thinkpad T420. Additionally, I do care about security and non-bloat in my personal operating systems (business needs can have different priorities, to be clear). Err codemadness.org 70 i 20392 I will try to detail what my reasons are for going with OpenBSD (instead of GNU/Linux, NetBSD, or FreeBSD of which I’m comfortable using without issue), challenges and frustrations I’ve encountered, and what my opinions are along the way. Err codemadness.org 70 i 20393 Disclaimer: in this post, I’m speaking about what is my opinion, and I’m not trying to convince you to use OpenBSD or anything else. I don’t truly care, but wanted to share in case it could be useful to you. I do hope you give OpenBSD a shot as your workstation, especially if it has been a while. Err codemadness.org 70 i 20394 A Bit About Me and OpenBSD Err codemadness.org 70 i 20395 I’m not new to OpenBSD, to be clear. I’ve been using it off and on for over 20 years. The biggest time in my life was the early 2000s (I was even the Python port maintainer for a bit), where I not only used it for my workstation, but also for production servers and network devices. Err codemadness.org 70 i 20396 I just haven’t used it as a workstation (outside of a virtual machine) in over 10 years, but have used it for servers. Workstation needs, especially for a primary workstation, are greatly different and the small things end up mattering most. Err codemadness.org 70 i 20397 News Roundup Err codemadness.org 70 i 20398 Write your own fuzzer for NetBSD kernel! [Part 1] (https://blog.netbsd.org/tnf/entry/write_your_own_fuzzer_for) Err codemadness.org 70 i 20399 How Fuzzing works? The dummy Fuzzer. Err codemadness.org 70 i 20400 The easy way to describe fuzzing is to compare it to the process of unit testing a program, but with different input. This input can be random, or it can be generated in some way that makes it unexpected form standard execution perspective. Err codemadness.org 70 i 20401 The simplest 'fuzzer' can be written in few lines of bash, by getting N bytes from /dev/rand, and putting them to the program as a parameter. Err codemadness.org 70 i 20402 Coverage and Fuzzing Err codemadness.org 70 i 20403 What can be done to make fuzzing more effective? If we think about fuzzing as a process, where we place data into the input of the program (which is a black box), and we can only interact via input, not much more can be done. Err codemadness.org 70 i 20404 However, programs usually process different inputs at different speeds, which can give us some insight into the program's behavior. During fuzzing, we are trying to crash the program, thus we need additional probes to observe the program's behaviour. Err codemadness.org 70 i 20405 Additional knowledge about program state can be exploited as a feedback loop for generating new input vectors. Knowledge about the program itself and the structure of input data can also be considered. As an example, if the input data is in the form of HTML, changing characters inside the body will probably cause less problems for the parser than experimenting with headers and HTML tags. Err codemadness.org 70 i 20406 For open source programs, we can read the source code to know what input takes which execution path. Nonetheless, this might be very time consuming, and it would be much more helpful if this can be automated. As it turns out, this process can be improved by tracing coverage of the execution Err codemadness.org 70 i 20407 vBSDcon - CFP - Call for Papers ends July 19th (https://vbsdcon.com/) Err codemadness.org 70 i 20408 You can submit your proposal at https://easychair.org/conferences/?conf=vbsdcon2019 Err codemadness.org 70 i 20409 The talks will have a very strong technical content bias. Proposals of a business development or marketing nature are not appropriate for this venue. Err codemadness.org 70 i 20410 If you are doing something interesting with a BSD operating system, please submit a proposal. Whether you are developing a very complex system using BSD as the foundation, or helping others and have a story to tell about how BSD played a role, we want to hear about your experience. People using BSD as a platform for research are also encouraged to submit a proposal. Err codemadness.org 70 i 20411 Possible topics include: How we manage a giant installation with respect to handling spam, snd/or sysadmin, and/or networking, Cool new stuff in BSD, Tell us about your project which runs on BSD. Err codemadness.org 70 i 20412 Both users and developers are encouraged to share their experiences. Err codemadness.org 70 i 20413 Exploiting FreeBSD-SA-19:02.fd (https://secfault-security.com/blog/FreeBSD-SA-1902.fd.html) Err codemadness.org 70 i 20414 In February 2019 the FreeBSD project issued an advisory about a possible vulnerability in the handling of file descriptors. UNIX-like systems such as FreeBSD allow to send file descriptors to other processes via UNIX-domain sockets. This can for example be used to pass file access privileges to the receiving process. Err codemadness.org 70 i 20415 Inside the kernel, file descriptors are used to indirectly reference a C struct which stores the relevant information about the file object. This could for instance include a reference to a vnode which describes the file for the file system, the file type, or the access privileges. Err codemadness.org 70 i 20416 What really happens if a UNIX-domain socket is used to send a file descriptor to another process is that for the receiving process, inside the kernel a reference to this struct is created. As the new file descriptor is a reference to the same file object, all information is inherited. For instance, this can allow to give another process write access to a file on the drive even if the process owner is normally not able to open the file writable. Err codemadness.org 70 i 20417 The advisory describes that FreeBSD 12.0 introduced a bug in this mechanism. As the file descriptor information is sent via a socket, the sender and the receiver have to allocate buffers for the procedure. If the receiving buffer is not large enough, the FreeBSD kernel attempts to close the received file descriptors to prevent a leak of these to the sender. However, while the responsible function closes the file descriptor, it fails to release the reference from the file descriptor to the file object. This could cause the reference counter to wrap. Err codemadness.org 70 i 20418 The advisory further states that the impact of this bug is possibly a local privilege escalation to gain root privileges or a jail escape. However, no proof-of-concept was provided by the advisory authors. Err codemadness.org 70 i 20419 In the next section, the bug itself is analyzed to make a statement about the bug class and a guess about a possible exploitation primitive. Err codemadness.org 70 i 20420 After that, the bug trigger is addressed. Err codemadness.org 70 i 20421 It follows a discussion of three imaginable exploitation strategies - including a discussion of why two of these approaches failed. Err codemadness.org 70 i 20422 In the section before last, the working exploit primitive is discussed. It introduces a (at least to the author’s knowledge) new exploitation technique for these kind of vulnerabilities in FreeBSD. The stabilization of the exploit is addressed, too. Err codemadness.org 70 i 20423 The last section wraps everything up in a conclusion and points out further steps and challenges. Err codemadness.org 70 i 20424 The privilege escalation is now a piece of cake thanks to a technique used by kingcope, who published a FreeBSD root exploit in 2005, which writes to the file /etc/libmap.conf. This configuration file can be used to hook the loading of dynamic libraries if a program is started. The exploit therefore creates a dynamic library, which copies /bin/sh to another file and sets the suid-bit for the copy. The hooked library is libutil, which is for instance called by su. Therefore, a call to su by the user will afterwards result in a suid copy of /bin/sh. Err codemadness.org 70 i 20425 Streaming to Twitch using OpenBSD (https://dataswamp.org/~solene/2019-07-06-twitch.html) Err codemadness.org 70 i 20426 Introduction Err codemadness.org 70 i 20427 If you ever wanted to make a twitch stream from your OpenBSD system, this is now possible, thanks to OpenBSD developer thfr@ who made a wrapper named fauxstream using ffmpeg with relevant parameters. Err codemadness.org 70 i 20428 The setup is quite easy, it only requires a few steps and searching on Twitch website two informations, hopefully, to ease the process, I found the links for you. Err codemadness.org 70 i 20429 You will need to make an account on twitch, get your api key (a long string of characters) which should stay secret because it allow anyone having it to stream on your account. Err codemadness.org 70 i 20430 These same techniques should work for Twitch, YouTube Live, Periscope, Facebook, etc, including the live streaming service ScaleEngine provides free to BSD user groups. Err codemadness.org 70 i 20431 There is also an open source application called ‘OBS’ or Open Broadcaster Studio. It is in FreeBSD ports and should work on all of the other BSDs as well. It has a GUI and supports compositing and green screening. We use it heavily at ScaleEngine and it is also used at JupiterBroadcasting in place of WireCast, a $1000-per-copy commercial application. Err codemadness.org 70 i 20432 Beastie Bits Err codemadness.org 70 i 20433 Portland BSD Pizza Night - 2019-07-25 19:00 - Rudy's Gourmet Pizza (http://calagator.org/events/1250475868) Err codemadness.org 70 i 20434 KnoxBUG - Michael W. Lucas : Twenty Years in Jail (http://knoxbug.org/2019-07-29) Err codemadness.org 70 i 20435 Ohio Linuxfest - CFP - Closes August 17th (https://ohiolinux.org/call-for-presentations/) Err codemadness.org 70 i 20436 My college (NYU Tandon) is moving their CS department and I saw this on a shelf being moved (https://old.reddit.com/r/freebsd/comments/cdx8fp/my_college_nyu_tandon_is_moving_their_cs/) Err codemadness.org 70 i 20437 3 different ways of dumping hex contents of a file (https://moopost.blogspot.com/2019/07/3-different-ways-of-dumping-hex.html) Err codemadness.org 70 i 20438 Feedback/Questions Err codemadness.org 70 i 20439 Sebastian - ZFS setup toward ESXi (http://dpaste.com/0DRKFH6#wrap) Err codemadness.org 70 i 20440 Christopher - Questions (http://dpaste.com/2YNN1SH) Err codemadness.org 70 i 20441 Ser - Bhyve and Microsoft SQL (http://dpaste.com/1F5TMT0#wrap) Err codemadness.org 70 i 20442 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 20443 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 20444 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0307.mp4" type="video/mp4"> Err codemadness.org 70 i 20445 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 20446 </video> Err codemadness.org 70 i 20447 Err codemadness.org 70 i 20448 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, workstation, streaming, twitch, hex, dump, dumping Err codemadness.org 70 i 20449 Err codemadness.org 70 i 20450 FreeBSD 11.3 has been released, OpenBSD workstation, write your own fuzzer for the NetBSD kernel, Exploiting FreeBSD-SA-19:02.fd, streaming to twitch using OpenBSD, 3 different ways of dumping hex contents of a file, and more.

Err codemadness.org 70 i 20451 Err codemadness.org 70 i 20452

Headlines

Err codemadness.org 70 i 20453 Err codemadness.org 70 i 20454

FreeBSD 11.3-RELEASE Announcement

Err codemadness.org 70 i 20455 Err codemadness.org 70 i 20456
Err codemadness.org 70 i 20457

The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 11.3-RELEASE. This is the fourth release of the stable/11 branch.

Err codemadness.org 70 i 20458
Err codemadness.org 70 i 20459 Err codemadness.org 70 i 20460
    Err codemadness.org 70 i 20461
  • Some of the highlights: Err codemadness.org 70 i 20462 Err codemadness.org 70 i 20463
      Err codemadness.org 70 i 20464
    • The clang, llvm, lld, lldb, and compiler-rt utilities as well as libc++ have been updated to upstream version 8.0.0.
    • Err codemadness.org 70 i 20465
    • The ELF Tool Chain has been updated to version r3614.
    • Err codemadness.org 70 i 20466
    • OpenSSL has been updated to version 1.0.2s.
    • Err codemadness.org 70 i 20467
    • The ZFS filesystem has been updated to implement parallel mounting.
    • Err codemadness.org 70 i 20468
    • The loader(8) has been updated to extend geli(8) support to all architectures.
    • Err codemadness.org 70 i 20469
    • The pkg(8) utility has been updated to version 1.10.5.
    • Err codemadness.org 70 i 20470
    • The KDE desktop environment has been updated to version 5.15.3.
    • Err codemadness.org 70 i 20471
    • The GNOME desktop environment has been updated to version 3.28.
    • Err codemadness.org 70 i 20472
    • The kernel will now log the jail(8) ID when logging a process exit.
    • Err codemadness.org 70 i 20473
    • Several feature additions and updates to userland applications.
    • Err codemadness.org 70 i 20474
    • Several network driver firmware updates.
    • Err codemadness.org 70 i 20475
    • Warnings for features deprecated in future releases will now be printed on all FreeBSD versions.
    • Err codemadness.org 70 i 20476
    • Warnings have been added for IPSec algorithms deprecated in RFC 8221.
    • Err codemadness.org 70 i 20477
    • Deprecation warnings have been added for weaker algorithms when creating geli(8) providers.
    • Err codemadness.org 70 i 20478
    • And more...
    • Err codemadness.org 70 i 20479
  • Err codemadness.org 70 i 20480
Err codemadness.org 70 i 20481 Err codemadness.org 70 i 20482
Err codemadness.org 70 i 20483 Err codemadness.org 70 i 20484

OpenBSD Is Now My Workstation

Err codemadness.org 70 i 20485 Err codemadness.org 70 i 20486
Err codemadness.org 70 i 20487

Why OpenBSD? Simply because it is the best tool for the job for me for my new-to-me Lenovo Thinkpad T420. Additionally, I do care about security and non-bloat in my personal operating systems (business needs can have different priorities, to be clear).

Err codemadness.org 70 i 20488 Err codemadness.org 70 i 20489

I will try to detail what my reasons are for going with OpenBSD (instead of GNU/Linux, NetBSD, or FreeBSD of which I’m comfortable using without issue), challenges and frustrations I’ve encountered, and what my opinions are along the way.

Err codemadness.org 70 i 20490 Err codemadness.org 70 i 20491

Disclaimer: in this post, I’m speaking about what is my opinion, and I’m not trying to convince you to use OpenBSD or anything else. I don’t truly care, but wanted to share in case it could be useful to you. I do hope you give OpenBSD a shot as your workstation, especially if it has been a while.

Err codemadness.org 70 i 20492
Err codemadness.org 70 i 20493 Err codemadness.org 70 i 20494
    Err codemadness.org 70 i 20495
  • A Bit About Me and OpenBSD
  • Err codemadness.org 70 i 20496
Err codemadness.org 70 i 20497 Err codemadness.org 70 i 20498
Err codemadness.org 70 i 20499

I’m not new to OpenBSD, to be clear. I’ve been using it off and on for over 20 years. The biggest time in my life was the early 2000s (I was even the Python port maintainer for a bit), where I not only used it for my workstation, but also for production servers and network devices.

Err codemadness.org 70 i 20500 Err codemadness.org 70 i 20501

I just haven’t used it as a workstation (outside of a virtual machine) in over 10 years, but have used it for servers. Workstation needs, especially for a primary workstation, are greatly different and the small things end up mattering most.

Err codemadness.org 70 i 20502
Err codemadness.org 70 i 20503 Err codemadness.org 70 i 20504
Err codemadness.org 70 i 20505 Err codemadness.org 70 i 20506

News Roundup

Err codemadness.org 70 i 20507 Err codemadness.org 70 i 20508

Write your own fuzzer for NetBSD kernel! [Part 1]

Err codemadness.org 70 i 20509 Err codemadness.org 70 i 20510
    Err codemadness.org 70 i 20511
  • How Fuzzing works? The dummy Fuzzer.
  • Err codemadness.org 70 i 20512
Err codemadness.org 70 i 20513 Err codemadness.org 70 i 20514
Err codemadness.org 70 i 20515

The easy way to describe fuzzing is to compare it to the process of unit testing a program, but with different input. This input can be random, or it can be generated in some way that makes it unexpected form standard execution perspective.

Err codemadness.org 70 i 20516 Err codemadness.org 70 i 20517

The simplest 'fuzzer' can be written in few lines of bash, by getting N bytes from /dev/rand, and putting them to the program as a parameter.

Err codemadness.org 70 i 20518
Err codemadness.org 70 i 20519 Err codemadness.org 70 i 20520
    Err codemadness.org 70 i 20521
  • Coverage and Fuzzing
  • Err codemadness.org 70 i 20522
Err codemadness.org 70 i 20523 Err codemadness.org 70 i 20524
Err codemadness.org 70 i 20525

What can be done to make fuzzing more effective? If we think about fuzzing as a process, where we place data into the input of the program (which is a black box), and we can only interact via input, not much more can be done.

Err codemadness.org 70 i 20526 Err codemadness.org 70 i 20527

However, programs usually process different inputs at different speeds, which can give us some insight into the program's behavior. During fuzzing, we are trying to crash the program, thus we need additional probes to observe the program's behaviour.

Err codemadness.org 70 i 20528 Err codemadness.org 70 i 20529

Additional knowledge about program state can be exploited as a feedback loop for generating new input vectors. Knowledge about the program itself and the structure of input data can also be considered. As an example, if the input data is in the form of HTML, changing characters inside the body will probably cause less problems for the parser than experimenting with headers and HTML tags.

Err codemadness.org 70 i 20530 Err codemadness.org 70 i 20531

For open source programs, we can read the source code to know what input takes which execution path. Nonetheless, this might be very time consuming, and it would be much more helpful if this can be automated. As it turns out, this process can be improved by tracing coverage of the execution

Err codemadness.org 70 i 20532
Err codemadness.org 70 i 20533 Err codemadness.org 70 i 20534
Err codemadness.org 70 i 20535 Err codemadness.org 70 i 20536

vBSDcon - CFP - Call for Papers ends July 19th

Err codemadness.org 70 i 20537 Err codemadness.org 70 i 20538
Err codemadness.org 70 i 20539

You can submit your proposal at https://easychair.org/conferences/?conf=vbsdcon2019

Err codemadness.org 70 i 20540 Err codemadness.org 70 i 20541

The talks will have a very strong technical content bias. Proposals of a business development or marketing nature are not appropriate for this venue.

Err codemadness.org 70 i 20542 Err codemadness.org 70 i 20543

If you are doing something interesting with a BSD operating system, please submit a proposal. Whether you are developing a very complex system using BSD as the foundation, or helping others and have a story to tell about how BSD played a role, we want to hear about your experience. People using BSD as a platform for research are also encouraged to submit a proposal.

Err codemadness.org 70 i 20544 Err codemadness.org 70 i 20545

Possible topics include: How we manage a giant installation with respect to handling spam, snd/or sysadmin, and/or networking, Cool new stuff in BSD, Tell us about your project which runs on BSD.

Err codemadness.org 70 i 20546 Err codemadness.org 70 i 20547

Both users and developers are encouraged to share their experiences.

Err codemadness.org 70 i 20548
Err codemadness.org 70 i 20549 Err codemadness.org 70 i 20550
Err codemadness.org 70 i 20551 Err codemadness.org 70 i 20552

Exploiting FreeBSD-SA-19:02.fd

Err codemadness.org 70 i 20553 Err codemadness.org 70 i 20554
Err codemadness.org 70 i 20555

In February 2019 the FreeBSD project issued an advisory about a possible vulnerability in the handling of file descriptors. UNIX-like systems such as FreeBSD allow to send file descriptors to other processes via UNIX-domain sockets. This can for example be used to pass file access privileges to the receiving process.

Err codemadness.org 70 i 20556 Err codemadness.org 70 i 20557

Inside the kernel, file descriptors are used to indirectly reference a C struct which stores the relevant information about the file object. This could for instance include a reference to a vnode which describes the file for the file system, the file type, or the access privileges.

Err codemadness.org 70 i 20558 Err codemadness.org 70 i 20559

What really happens if a UNIX-domain socket is used to send a file descriptor to another process is that for the receiving process, inside the kernel a reference to this struct is created. As the new file descriptor is a reference to the same file object, all information is inherited. For instance, this can allow to give another process write access to a file on the drive even if the process owner is normally not able to open the file writable.

Err codemadness.org 70 i 20560 Err codemadness.org 70 i 20561

The advisory describes that FreeBSD 12.0 introduced a bug in this mechanism. As the file descriptor information is sent via a socket, the sender and the receiver have to allocate buffers for the procedure. If the receiving buffer is not large enough, the FreeBSD kernel attempts to close the received file descriptors to prevent a leak of these to the sender. However, while the responsible function closes the file descriptor, it fails to release the reference from the file descriptor to the file object. This could cause the reference counter to wrap.

Err codemadness.org 70 i 20562 Err codemadness.org 70 i 20563

The advisory further states that the impact of this bug is possibly a local privilege escalation to gain root privileges or a jail escape. However, no proof-of-concept was provided by the advisory authors.

Err codemadness.org 70 i 20564
Err codemadness.org 70 i 20565 Err codemadness.org 70 i 20566
    Err codemadness.org 70 i 20567
  • In the next section, the bug itself is analyzed to make a statement about the bug class and a guess about a possible exploitation primitive.
  • Err codemadness.org 70 i 20568
  • After that, the bug trigger is addressed.
  • Err codemadness.org 70 i 20569
  • It follows a discussion of three imaginable exploitation strategies - including a discussion of why two of these approaches failed.
  • Err codemadness.org 70 i 20570
  • In the section before last, the working exploit primitive is discussed. It introduces a (at least to the author’s knowledge) new exploitation technique for these kind of vulnerabilities in FreeBSD. The stabilization of the exploit is addressed, too.
  • Err codemadness.org 70 i 20571
  • The last section wraps everything up in a conclusion and points out further steps and challenges.
  • Err codemadness.org 70 i 20572
Err codemadness.org 70 i 20573 Err codemadness.org 70 i 20574
Err codemadness.org 70 i 20575

The privilege escalation is now a piece of cake thanks to a technique used by kingcope, who published a FreeBSD root exploit in 2005, which writes to the file /etc/libmap.conf. This configuration file can be used to hook the loading of dynamic libraries if a program is started. The exploit therefore creates a dynamic library, which copies /bin/sh to another file and sets the suid-bit for the copy. The hooked library is libutil, which is for instance called by su. Therefore, a call to su by the user will afterwards result in a suid copy of /bin/sh.

Err codemadness.org 70 i 20576
Err codemadness.org 70 i 20577 Err codemadness.org 70 i 20578
Err codemadness.org 70 i 20579 Err codemadness.org 70 i 20580

Streaming to Twitch using OpenBSD

Err codemadness.org 70 i 20581 Err codemadness.org 70 i 20582
    Err codemadness.org 70 i 20583
  • Introduction
  • Err codemadness.org 70 i 20584
Err codemadness.org 70 i 20585 Err codemadness.org 70 i 20586
Err codemadness.org 70 i 20587

If you ever wanted to make a twitch stream from your OpenBSD system, this is now possible, thanks to OpenBSD developer thfr@ who made a wrapper named fauxstream using ffmpeg with relevant parameters.

Err codemadness.org 70 i 20588 Err codemadness.org 70 i 20589

The setup is quite easy, it only requires a few steps and searching on Twitch website two informations, hopefully, to ease the process, I found the links for you.

Err codemadness.org 70 i 20590 Err codemadness.org 70 i 20591

You will need to make an account on twitch, get your api key (a long string of characters) which should stay secret because it allow anyone having it to stream on your account.

Err codemadness.org 70 i 20592
Err codemadness.org 70 i 20593 Err codemadness.org 70 i 20594
    Err codemadness.org 70 i 20595
  • These same techniques should work for Twitch, YouTube Live, Periscope, Facebook, etc, including the live streaming service ScaleEngine provides free to BSD user groups.
  • Err codemadness.org 70 i 20596
  • There is also an open source application called ‘OBS’ or Open Broadcaster Studio. It is in FreeBSD ports and should work on all of the other BSDs as well. It has a GUI and supports compositing and green screening. We use it heavily at ScaleEngine and it is also used at JupiterBroadcasting in place of WireCast, a $1000-per-copy commercial application.
  • Err codemadness.org 70 i 20597
Err codemadness.org 70 i 20598 Err codemadness.org 70 i 20599
Err codemadness.org 70 i 20600 Err codemadness.org 70 i 20601

Beastie Bits

Err codemadness.org 70 i 20602 Err codemadness.org 70 i 20603 Err codemadness.org 70 i 20610 Err codemadness.org 70 i 20611
Err codemadness.org 70 i 20612 Err codemadness.org 70 i 20613

Feedback/Questions

Err codemadness.org 70 i 20614 Err codemadness.org 70 i 20615 Err codemadness.org 70 i 20620 Err codemadness.org 70 i 20621
Err codemadness.org 70 i 20622 Err codemadness.org 70 i 20623
    Err codemadness.org 70 i 20624
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 20625
Err codemadness.org 70 i 20626 Err codemadness.org 70 i 20627
Err codemadness.org 70 i 20628 Err codemadness.org 70 i 20629 ]]> Err codemadness.org 70 i 20633
Err codemadness.org 70 i 20634 Err codemadness.org 70 i 20635 FreeBSD 11.3 has been released, OpenBSD workstation, write your own fuzzer for the NetBSD kernel, Exploiting FreeBSD-SA-19:02.fd, streaming to twitch using OpenBSD, 3 different ways of dumping hex contents of a file, and more.

Err codemadness.org 70 i 20636 Err codemadness.org 70 i 20637

Headlines

Err codemadness.org 70 i 20638 Err codemadness.org 70 i 20639

FreeBSD 11.3-RELEASE Announcement

Err codemadness.org 70 i 20640 Err codemadness.org 70 i 20641
Err codemadness.org 70 i 20642

The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 11.3-RELEASE. This is the fourth release of the stable/11 branch.

Err codemadness.org 70 i 20643
Err codemadness.org 70 i 20644 Err codemadness.org 70 i 20645
    Err codemadness.org 70 i 20646
  • Some of the highlights: Err codemadness.org 70 i 20647 Err codemadness.org 70 i 20648
      Err codemadness.org 70 i 20649
    • The clang, llvm, lld, lldb, and compiler-rt utilities as well as libc++ have been updated to upstream version 8.0.0.
    • Err codemadness.org 70 i 20650
    • The ELF Tool Chain has been updated to version r3614.
    • Err codemadness.org 70 i 20651
    • OpenSSL has been updated to version 1.0.2s.
    • Err codemadness.org 70 i 20652
    • The ZFS filesystem has been updated to implement parallel mounting.
    • Err codemadness.org 70 i 20653
    • The loader(8) has been updated to extend geli(8) support to all architectures.
    • Err codemadness.org 70 i 20654
    • The pkg(8) utility has been updated to version 1.10.5.
    • Err codemadness.org 70 i 20655
    • The KDE desktop environment has been updated to version 5.15.3.
    • Err codemadness.org 70 i 20656
    • The GNOME desktop environment has been updated to version 3.28.
    • Err codemadness.org 70 i 20657
    • The kernel will now log the jail(8) ID when logging a process exit.
    • Err codemadness.org 70 i 20658
    • Several feature additions and updates to userland applications.
    • Err codemadness.org 70 i 20659
    • Several network driver firmware updates.
    • Err codemadness.org 70 i 20660
    • Warnings for features deprecated in future releases will now be printed on all FreeBSD versions.
    • Err codemadness.org 70 i 20661
    • Warnings have been added for IPSec algorithms deprecated in RFC 8221.
    • Err codemadness.org 70 i 20662
    • Deprecation warnings have been added for weaker algorithms when creating geli(8) providers.
    • Err codemadness.org 70 i 20663
    • And more...
    • Err codemadness.org 70 i 20664
  • Err codemadness.org 70 i 20665
Err codemadness.org 70 i 20666 Err codemadness.org 70 i 20667
Err codemadness.org 70 i 20668 Err codemadness.org 70 i 20669

OpenBSD Is Now My Workstation

Err codemadness.org 70 i 20670 Err codemadness.org 70 i 20671
Err codemadness.org 70 i 20672

Why OpenBSD? Simply because it is the best tool for the job for me for my new-to-me Lenovo Thinkpad T420. Additionally, I do care about security and non-bloat in my personal operating systems (business needs can have different priorities, to be clear).

Err codemadness.org 70 i 20673 Err codemadness.org 70 i 20674

I will try to detail what my reasons are for going with OpenBSD (instead of GNU/Linux, NetBSD, or FreeBSD of which I’m comfortable using without issue), challenges and frustrations I’ve encountered, and what my opinions are along the way.

Err codemadness.org 70 i 20675 Err codemadness.org 70 i 20676

Disclaimer: in this post, I’m speaking about what is my opinion, and I’m not trying to convince you to use OpenBSD or anything else. I don’t truly care, but wanted to share in case it could be useful to you. I do hope you give OpenBSD a shot as your workstation, especially if it has been a while.

Err codemadness.org 70 i 20677
Err codemadness.org 70 i 20678 Err codemadness.org 70 i 20679
    Err codemadness.org 70 i 20680
  • A Bit About Me and OpenBSD
  • Err codemadness.org 70 i 20681
Err codemadness.org 70 i 20682 Err codemadness.org 70 i 20683
Err codemadness.org 70 i 20684

I’m not new to OpenBSD, to be clear. I’ve been using it off and on for over 20 years. The biggest time in my life was the early 2000s (I was even the Python port maintainer for a bit), where I not only used it for my workstation, but also for production servers and network devices.

Err codemadness.org 70 i 20685 Err codemadness.org 70 i 20686

I just haven’t used it as a workstation (outside of a virtual machine) in over 10 years, but have used it for servers. Workstation needs, especially for a primary workstation, are greatly different and the small things end up mattering most.

Err codemadness.org 70 i 20687
Err codemadness.org 70 i 20688 Err codemadness.org 70 i 20689
Err codemadness.org 70 i 20690 Err codemadness.org 70 i 20691

News Roundup

Err codemadness.org 70 i 20692 Err codemadness.org 70 i 20693

Write your own fuzzer for NetBSD kernel! [Part 1]

Err codemadness.org 70 i 20694 Err codemadness.org 70 i 20695
    Err codemadness.org 70 i 20696
  • How Fuzzing works? The dummy Fuzzer.
  • Err codemadness.org 70 i 20697
Err codemadness.org 70 i 20698 Err codemadness.org 70 i 20699
Err codemadness.org 70 i 20700

The easy way to describe fuzzing is to compare it to the process of unit testing a program, but with different input. This input can be random, or it can be generated in some way that makes it unexpected form standard execution perspective.

Err codemadness.org 70 i 20701 Err codemadness.org 70 i 20702

The simplest 'fuzzer' can be written in few lines of bash, by getting N bytes from /dev/rand, and putting them to the program as a parameter.

Err codemadness.org 70 i 20703
Err codemadness.org 70 i 20704 Err codemadness.org 70 i 20705
    Err codemadness.org 70 i 20706
  • Coverage and Fuzzing
  • Err codemadness.org 70 i 20707
Err codemadness.org 70 i 20708 Err codemadness.org 70 i 20709
Err codemadness.org 70 i 20710

What can be done to make fuzzing more effective? If we think about fuzzing as a process, where we place data into the input of the program (which is a black box), and we can only interact via input, not much more can be done.

Err codemadness.org 70 i 20711 Err codemadness.org 70 i 20712

However, programs usually process different inputs at different speeds, which can give us some insight into the program's behavior. During fuzzing, we are trying to crash the program, thus we need additional probes to observe the program's behaviour.

Err codemadness.org 70 i 20713 Err codemadness.org 70 i 20714

Additional knowledge about program state can be exploited as a feedback loop for generating new input vectors. Knowledge about the program itself and the structure of input data can also be considered. As an example, if the input data is in the form of HTML, changing characters inside the body will probably cause less problems for the parser than experimenting with headers and HTML tags.

Err codemadness.org 70 i 20715 Err codemadness.org 70 i 20716

For open source programs, we can read the source code to know what input takes which execution path. Nonetheless, this might be very time consuming, and it would be much more helpful if this can be automated. As it turns out, this process can be improved by tracing coverage of the execution

Err codemadness.org 70 i 20717
Err codemadness.org 70 i 20718 Err codemadness.org 70 i 20719
Err codemadness.org 70 i 20720 Err codemadness.org 70 i 20721

vBSDcon - CFP - Call for Papers ends July 19th

Err codemadness.org 70 i 20722 Err codemadness.org 70 i 20723
Err codemadness.org 70 i 20724

You can submit your proposal at https://easychair.org/conferences/?conf=vbsdcon2019

Err codemadness.org 70 i 20725 Err codemadness.org 70 i 20726

The talks will have a very strong technical content bias. Proposals of a business development or marketing nature are not appropriate for this venue.

Err codemadness.org 70 i 20727 Err codemadness.org 70 i 20728

If you are doing something interesting with a BSD operating system, please submit a proposal. Whether you are developing a very complex system using BSD as the foundation, or helping others and have a story to tell about how BSD played a role, we want to hear about your experience. People using BSD as a platform for research are also encouraged to submit a proposal.

Err codemadness.org 70 i 20729 Err codemadness.org 70 i 20730

Possible topics include: How we manage a giant installation with respect to handling spam, snd/or sysadmin, and/or networking, Cool new stuff in BSD, Tell us about your project which runs on BSD.

Err codemadness.org 70 i 20731 Err codemadness.org 70 i 20732

Both users and developers are encouraged to share their experiences.

Err codemadness.org 70 i 20733
Err codemadness.org 70 i 20734 Err codemadness.org 70 i 20735
Err codemadness.org 70 i 20736 Err codemadness.org 70 i 20737

Exploiting FreeBSD-SA-19:02.fd

Err codemadness.org 70 i 20738 Err codemadness.org 70 i 20739
Err codemadness.org 70 i 20740

In February 2019 the FreeBSD project issued an advisory about a possible vulnerability in the handling of file descriptors. UNIX-like systems such as FreeBSD allow to send file descriptors to other processes via UNIX-domain sockets. This can for example be used to pass file access privileges to the receiving process.

Err codemadness.org 70 i 20741 Err codemadness.org 70 i 20742

Inside the kernel, file descriptors are used to indirectly reference a C struct which stores the relevant information about the file object. This could for instance include a reference to a vnode which describes the file for the file system, the file type, or the access privileges.

Err codemadness.org 70 i 20743 Err codemadness.org 70 i 20744

What really happens if a UNIX-domain socket is used to send a file descriptor to another process is that for the receiving process, inside the kernel a reference to this struct is created. As the new file descriptor is a reference to the same file object, all information is inherited. For instance, this can allow to give another process write access to a file on the drive even if the process owner is normally not able to open the file writable.

Err codemadness.org 70 i 20745 Err codemadness.org 70 i 20746

The advisory describes that FreeBSD 12.0 introduced a bug in this mechanism. As the file descriptor information is sent via a socket, the sender and the receiver have to allocate buffers for the procedure. If the receiving buffer is not large enough, the FreeBSD kernel attempts to close the received file descriptors to prevent a leak of these to the sender. However, while the responsible function closes the file descriptor, it fails to release the reference from the file descriptor to the file object. This could cause the reference counter to wrap.

Err codemadness.org 70 i 20747 Err codemadness.org 70 i 20748

The advisory further states that the impact of this bug is possibly a local privilege escalation to gain root privileges or a jail escape. However, no proof-of-concept was provided by the advisory authors.

Err codemadness.org 70 i 20749
Err codemadness.org 70 i 20750 Err codemadness.org 70 i 20751
    Err codemadness.org 70 i 20752
  • In the next section, the bug itself is analyzed to make a statement about the bug class and a guess about a possible exploitation primitive.
  • Err codemadness.org 70 i 20753
  • After that, the bug trigger is addressed.
  • Err codemadness.org 70 i 20754
  • It follows a discussion of three imaginable exploitation strategies - including a discussion of why two of these approaches failed.
  • Err codemadness.org 70 i 20755
  • In the section before last, the working exploit primitive is discussed. It introduces a (at least to the author’s knowledge) new exploitation technique for these kind of vulnerabilities in FreeBSD. The stabilization of the exploit is addressed, too.
  • Err codemadness.org 70 i 20756
  • The last section wraps everything up in a conclusion and points out further steps and challenges.
  • Err codemadness.org 70 i 20757
Err codemadness.org 70 i 20758 Err codemadness.org 70 i 20759
Err codemadness.org 70 i 20760

The privilege escalation is now a piece of cake thanks to a technique used by kingcope, who published a FreeBSD root exploit in 2005, which writes to the file /etc/libmap.conf. This configuration file can be used to hook the loading of dynamic libraries if a program is started. The exploit therefore creates a dynamic library, which copies /bin/sh to another file and sets the suid-bit for the copy. The hooked library is libutil, which is for instance called by su. Therefore, a call to su by the user will afterwards result in a suid copy of /bin/sh.

Err codemadness.org 70 i 20761
Err codemadness.org 70 i 20762 Err codemadness.org 70 i 20763
Err codemadness.org 70 i 20764 Err codemadness.org 70 i 20765

Streaming to Twitch using OpenBSD

Err codemadness.org 70 i 20766 Err codemadness.org 70 i 20767
    Err codemadness.org 70 i 20768
  • Introduction
  • Err codemadness.org 70 i 20769
Err codemadness.org 70 i 20770 Err codemadness.org 70 i 20771
Err codemadness.org 70 i 20772

If you ever wanted to make a twitch stream from your OpenBSD system, this is now possible, thanks to OpenBSD developer thfr@ who made a wrapper named fauxstream using ffmpeg with relevant parameters.

Err codemadness.org 70 i 20773 Err codemadness.org 70 i 20774

The setup is quite easy, it only requires a few steps and searching on Twitch website two informations, hopefully, to ease the process, I found the links for you.

Err codemadness.org 70 i 20775 Err codemadness.org 70 i 20776

You will need to make an account on twitch, get your api key (a long string of characters) which should stay secret because it allow anyone having it to stream on your account.

Err codemadness.org 70 i 20777
Err codemadness.org 70 i 20778 Err codemadness.org 70 i 20779
    Err codemadness.org 70 i 20780
  • These same techniques should work for Twitch, YouTube Live, Periscope, Facebook, etc, including the live streaming service ScaleEngine provides free to BSD user groups.
  • Err codemadness.org 70 i 20781
  • There is also an open source application called ‘OBS’ or Open Broadcaster Studio. It is in FreeBSD ports and should work on all of the other BSDs as well. It has a GUI and supports compositing and green screening. We use it heavily at ScaleEngine and it is also used at JupiterBroadcasting in place of WireCast, a $1000-per-copy commercial application.
  • Err codemadness.org 70 i 20782
Err codemadness.org 70 i 20783 Err codemadness.org 70 i 20784
Err codemadness.org 70 i 20785 Err codemadness.org 70 i 20786

Beastie Bits

Err codemadness.org 70 i 20787 Err codemadness.org 70 i 20788 Err codemadness.org 70 i 20795 Err codemadness.org 70 i 20796
Err codemadness.org 70 i 20797 Err codemadness.org 70 i 20798

Feedback/Questions

Err codemadness.org 70 i 20799 Err codemadness.org 70 i 20800 Err codemadness.org 70 i 20805 Err codemadness.org 70 i 20806
Err codemadness.org 70 i 20807 Err codemadness.org 70 i 20808
    Err codemadness.org 70 i 20809
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 20810
Err codemadness.org 70 i 20811 Err codemadness.org 70 i 20812
Err codemadness.org 70 i 20813 Err codemadness.org 70 i 20814 ]]> Err codemadness.org 70 i 20818
Err codemadness.org 70 i 20819 https://fireside.fm/player/v2/FYhhasNR+8cwQfEyb Err codemadness.org 70 i 20820 Err codemadness.org 70 i 20821 ]]> Err codemadness.org 70 i 20822 Err codemadness.org 70 i 20823
Err codemadness.org 70 i 20824 Err codemadness.org 70 i 20825 306: Comparing Hammers Err codemadness.org 70 i 20826 https://www.bsdnow.tv/306 Err codemadness.org 70 i 20827 2e907009-f426-4bbd-a592-d91329f11f0f Err codemadness.org 70 i 20828 Thu, 11 Jul 2019 07:00:00 -0700 Err codemadness.org 70 i 20829 Allan Jude Err codemadness.org 70 i 20830 Err codemadness.org 70 i 20831 full Err codemadness.org 70 i 20832 Allan Jude Err codemadness.org 70 i 20833 Am5x86 based retro UNIX build log, setting up services in a FreeNAS Jail, first taste of DragonflyBSD, streaming Netflix on NetBSD, NetBSD on the last G4 Mac mini, Hammer vs Hammer2, and more. Err codemadness.org 70 i 20834 38:21 Err codemadness.org 70 i 20835 no Err codemadness.org 70 i 20836 Err codemadness.org 70 i 20837 Am5x86 based retro UNIX build log, setting up services in a FreeNAS Jail, first taste of DragonflyBSD, streaming Netflix on NetBSD, NetBSD on the last G4 Mac mini, Hammer vs Hammer2, and more. Err codemadness.org 70 i 20838 Headlines Err codemadness.org 70 i 20839 Polprog's Am5x86 based retro UNIX build log (https://polprog.net/blog/486/) Err codemadness.org 70 i 20840 I have recently acquired an Am5x86 computer, in a surprisingly good condition. This is an ongoing project, check this page often for updates! Err codemadness.org 70 i 20841 I began by connecting a front panel. The panel came from a different chassis and is slightly too wide, so I had to attach it with a couple of zip-ties. However, that makes it stick out from the PC front at an angle, allowing easy access when the computer sits at the floor - and thats where it is most of the time. It's not that bad, to be honest, and its way easier to access than it would be, if mounted vertically Err codemadness.org 70 i 20842 There is a mains switch on the front panel because the computer uses an older style power supply. Those power supplies instead of relying on a PSON signal, like modern ATX supplies, run a 4 wire cable to a mains switch. The cable carries live and neutral both ways, and the switch keys in or out the power. The system powers on as soon as the switch is enabled. Err codemadness.org 70 i 20843 Originally there was no graphics card in it. Since a PC will not boot with out a GPU, I had to find one. The mainboard only has PCI and ISA slots, and all the GPUs I had were AGP. Fortunately, I bought a PCI GPU hoping it would solve my issue... Err codemadness.org 70 i 20844 However the GPU turned out to be faulty. It took me some time to repair it. I had to repair a broken trace leading to one of the EEPROM pins, and replace a contact in the EEPROM's socket. Then I replaced all the electrolytic capacitors on it, and that fixed it for good. Err codemadness.org 70 i 20845 Having used up only one of the three PCI slots, I populated the remaining pair with two ethernet cards. I still have a bunch of ISA slots available, but I have nothing to install there. Yet. Err codemadness.org 70 i 20846 See the article for the rest of the writeup Err codemadness.org 70 i 20847 Setting up services in a FreeNAS Jail (https://www.ixsystems.com/blog/services-in-freenas-jail/) Err codemadness.org 70 i 20848 This piece demonstrates the setup of a server service in a FreeNAS jail and how to share files with a jail using Apache 2.4 as an example. Jails are powerful, self-contained FreeBSD environments with separate network settings, package management, and access to thousands of FreeBSD application packages. Popular packages such as Apache, NGINX, LigHTTPD, MySQL, and PHP can be found and installed with the pkg search and pkg install commands. Err codemadness.org 70 i 20849 This example shows creating a jail, installing an Apache web server, and setting up a simple web page. Err codemadness.org 70 i 20850 NOTE: Do not directly attach FreeNAS to an external network (WAN). Use port forwarding, proper firewalls and DDoS protections when using FreeNAS for external web sites. This example demonstrates expanding the functionality of FreeNAS in an isolated LAN environment. Err codemadness.org 70 i 20851 News Roundup Err codemadness.org 70 i 20852 First taste of DragonflyBSD (https://nanxiao.me/en/first-taste-of-dragonfly-bsd/) Err codemadness.org 70 i 20853 Last week, I needed to pick a BSD Operating System which supports NUMA to do some testing, so I decided to give Dragonfly BSD a shot. Dragonfly BSDonly can run on X86_64 architecture, which reminds me of Arch Linux, and after some tweaking, I feel Dragonfly BSD may be a “developer-friendly” Operating System, at least for me. Err codemadness.org 70 i 20854 I mainly use Dragonfly BSD as a server, so I don’t care whether GUI is fancy or not. But I have high requirements of developer tools, i.e., compiler and debugger. The default compiler of Dragonfly BSD is gcc 8.3, and I can also install clang 8.0.0 from package. This means I can test state-of-the-art features of compilers, and it is really important for me. gdb‘s version is 7.6.1, a little lag behind, but still OK. Err codemadness.org 70 i 20855 Furthermore, the upgradation of Dragonfly BSD is pretty simple and straightforward. I followed document to upgrade my Operating System to 5.6.0 this morning, just copied and pasted, no single error, booted successfully. Err codemadness.org 70 i 20856 Streaming Netflix on NetBSD (https://www.unitedbsd.com/d/68-streaming-netflix-on-netbsd) Err codemadness.org 70 i 20857 Here's a step-by-step guide that allows streaming Netflix media on NetBSD using a intel-haxm accelerated QEMU vm. Err codemadness.org 70 i 20858 Heads-up! Sound doesn't work, but everything else is fine. Please read the rest of this thread for a solution to this!! Err codemadness.org 70 i 20859 “Sudo Mastery 2nd Edition” cover art reveal (https://mwl.io/archives/4320) Err codemadness.org 70 i 20860 I’m about halfway through the new edition of Sudo Mastery. Assuming nothing terrible happens, should have a complete first draft in four to six weeks. Enough stuff has changed in sudo that I need to carefully double-check every single feature. (I’m also horrified by the painfully obsolete versions of sudo shipped in the latest versions of CentOS and Debian, but people running those operating systems are already accustomed to their creaky obsolescence.) Err codemadness.org 70 i 20861 But the reason for this blog post? I have Eddie Sharam’s glorious cover art. My Patronizers saw it last month, so now the rest of you get a turn. Err codemadness.org 70 i 20862 NetBSD on the last G4 Mac mini (https://tenfourfox.blogspot.com/2019/06/and-now-for-something-completely.html) Err codemadness.org 70 i 20863 I'm a big fan of NetBSD. I've run it since 2000 on a Mac IIci (of course it's still running it) and I ran it for several years on a Power Mac 7300 with a G3 card which was the second incarnation of the Floodgap gopher server. Today I also still run it on a MIPS-based Cobalt RaQ 2 and an HP Jornada 690. I think NetBSD is a better match for smaller or underpowered systems than current-day Linux, and is fairly easy to harden and keep secure even though none of these systems are exposed to the outside world. Err codemadness.org 70 i 20864 Recently I had a need to set up a bridge system that would be fast enough to connect two networks and I happened to have two of the "secret" last-of-the-line 1.5GHz G4 Mac minis sitting on the shelf doing nothing. Yes, they're probably outclassed by later Raspberry Pi models, but I don't have to buy anything and I like putting old hardware to good use. Err codemadness.org 70 i 20865 Hammer vs Hammer2 (https://phoronix.com/scan.php?page=news_item&px=DragonFlyBSD-5.6-HAMMER2-Perf) Err codemadness.org 70 i 20866 With the newly released DragonFlyBSD 5.6 there are improvements to its original HAMMER2 file-system to the extent that it's now selected by its installer as the default file-system choice for new installations. Curious how the performance now compares between HAMMER and HAMMER2, here are some initial benchmarks on an NVMe solid-state drive using DragonFlyBSD 5.6.0. Err codemadness.org 70 i 20867 With a 120GB Toshiba NVMe SSD on an Intel Core i7 8700K system, I ran some benchmarks of DragonFlyBSD 5.6.0 freshly installed with HAMMER2 and then again when returning to the original HAMMER file-system that remains available via its installer. No other changes were made to the setup during testing. Err codemadness.org 70 i 20868 And then for the more synthetic workloads it was just a mix. But overall HAMMER2 was performing well during the initial testing and great to see it continuing to offer noticeable leads in real-world workloads compared to the aging HAMMER file-system. HAMMER2 also offers better clustering, online deduplication, snapshots, compression, encryption, and many other modern file-system features. Err codemadness.org 70 i 20869 Beastie Bits Err codemadness.org 70 i 20870 Unix CLI relational database (https://spin.atomicobject.com/2019/06/16/unix-cli-relational-database/) Err codemadness.org 70 i 20871 The TTY demystified (https://www.linusakesson.net/programming/tty/index.php) Err codemadness.org 70 i 20872 Ranger, a console file manager with VI keybindings (https://ranger.github.io/) Err codemadness.org 70 i 20873 Some Unix Humor (https://www.reddit.com/r/unix/comments/c6o5ze/some_unix_humor/) Err codemadness.org 70 i 20874 OpenBSD -import vulkan-loader for Vulkan API support (https://marc.info/?l=openbsd-ports-cvs&m=156121732625604&w=2) Err codemadness.org 70 i 20875 FreeBSD ZFS without drives (https://savagedlight.me/2019/06/09/freebsd-zfs-without-drives/) Err codemadness.org 70 i 20876 Feedback/Questions Err codemadness.org 70 i 20877 Moritz - ARM Builds (http://dpaste.com/175RRAZ) Err codemadness.org 70 i 20878 Dave - Videos (http://dpaste.com/2DYK85B) Err codemadness.org 70 i 20879 Chris - Raspberry Pi4 (http://dpaste.com/1B16QVN) Err codemadness.org 70 i 20880 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 20881 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 20882 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0306.mp4" type="video/mp4"> Err codemadness.org 70 i 20883 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 20884 </video> Err codemadness.org 70 i 20885 Err codemadness.org 70 i 20886 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, Am5x86, freenas, jail, g4, mac, streaming, netflix, hammer Err codemadness.org 70 i 20887 Err codemadness.org 70 i 20888 Am5x86 based retro UNIX build log, setting up services in a FreeNAS Jail, first taste of DragonflyBSD, streaming Netflix on NetBSD, NetBSD on the last G4 Mac mini, Hammer vs Hammer2, and more.

Err codemadness.org 70 i 20889 Err codemadness.org 70 i 20890
Err codemadness.org 70 i 20891 Err codemadness.org 70 i 20892

Headlines

Err codemadness.org 70 i 20893 Err codemadness.org 70 i 20894

Polprog's Am5x86 based retro UNIX build log

Err codemadness.org 70 i 20895 Err codemadness.org 70 i 20896
Err codemadness.org 70 i 20897

I have recently acquired an Am5x86 computer, in a surprisingly good condition. This is an ongoing project, check this page often for updates!

Err codemadness.org 70 i 20898 Err codemadness.org 70 i 20899

I began by connecting a front panel. The panel came from a different chassis and is slightly too wide, so I had to attach it with a couple of zip-ties. However, that makes it stick out from the PC front at an angle, allowing easy access when the computer sits at the floor - and thats where it is most of the time. It's not that bad, to be honest, and its way easier to access than it would be, if mounted vertically

Err codemadness.org 70 i 20900 Err codemadness.org 70 i 20901

There is a mains switch on the front panel because the computer uses an older style power supply. Those power supplies instead of relying on a PSON signal, like modern ATX supplies, run a 4 wire cable to a mains switch. The cable carries live and neutral both ways, and the switch keys in or out the power. The system powers on as soon as the switch is enabled.

Err codemadness.org 70 i 20902 Err codemadness.org 70 i 20903

Originally there was no graphics card in it. Since a PC will not boot with out a GPU, I had to find one. The mainboard only has PCI and ISA slots, and all the GPUs I had were AGP. Fortunately, I bought a PCI GPU hoping it would solve my issue...

Err codemadness.org 70 i 20904 Err codemadness.org 70 i 20905

However the GPU turned out to be faulty. It took me some time to repair it. I had to repair a broken trace leading to one of the EEPROM pins, and replace a contact in the EEPROM's socket. Then I replaced all the electrolytic capacitors on it, and that fixed it for good.

Err codemadness.org 70 i 20906 Err codemadness.org 70 i 20907

Having used up only one of the three PCI slots, I populated the remaining pair with two ethernet cards. I still have a bunch of ISA slots available, but I have nothing to install there. Yet.

Err codemadness.org 70 i 20908
Err codemadness.org 70 i 20909 Err codemadness.org 70 i 20910
    Err codemadness.org 70 i 20911
  • See the article for the rest of the writeup
  • Err codemadness.org 70 i 20912
Err codemadness.org 70 i 20913 Err codemadness.org 70 i 20914
Err codemadness.org 70 i 20915 Err codemadness.org 70 i 20916

Setting up services in a FreeNAS Jail

Err codemadness.org 70 i 20917 Err codemadness.org 70 i 20918
Err codemadness.org 70 i 20919

This piece demonstrates the setup of a server service in a FreeNAS jail and how to share files with a jail using Apache 2.4 as an example. Jails are powerful, self-contained FreeBSD environments with separate network settings, package management, and access to thousands of FreeBSD application packages. Popular packages such as Apache, NGINX, LigHTTPD, MySQL, and PHP can be found and installed with the pkg search and pkg install commands.

Err codemadness.org 70 i 20920 Err codemadness.org 70 i 20921

This example shows creating a jail, installing an Apache web server, and setting up a simple web page.

Err codemadness.org 70 i 20922 Err codemadness.org 70 i 20923

NOTE: Do not directly attach FreeNAS to an external network (WAN). Use port forwarding, proper firewalls and DDoS protections when using FreeNAS for external web sites. This example demonstrates expanding the functionality of FreeNAS in an isolated LAN environment.

Err codemadness.org 70 i 20924
Err codemadness.org 70 i 20925 Err codemadness.org 70 i 20926
Err codemadness.org 70 i 20927 Err codemadness.org 70 i 20928

News Roundup

Err codemadness.org 70 i 20929 Err codemadness.org 70 i 20930

First taste of DragonflyBSD

Err codemadness.org 70 i 20931 Err codemadness.org 70 i 20932
Err codemadness.org 70 i 20933

Last week, I needed to pick a BSD Operating System which supports NUMA to do some testing, so I decided to give Dragonfly BSD a shot. Dragonfly BSDonly can run on X86_64 architecture, which reminds me of Arch Linux, and after some tweaking, I feel Dragonfly BSD may be a “developer-friendly” Operating System, at least for me.

Err codemadness.org 70 i 20934 Err codemadness.org 70 i 20935

I mainly use Dragonfly BSD as a server, so I don’t care whether GUI is fancy or not. But I have high requirements of developer tools, i.e., compiler and debugger. The default compiler of Dragonfly BSD is gcc 8.3, and I can also install clang 8.0.0 from package. This means I can test state-of-the-art features of compilers, and it is really important for me. gdb‘s version is 7.6.1, a little lag behind, but still OK.

Err codemadness.org 70 i 20936 Err codemadness.org 70 i 20937

Furthermore, the upgradation of Dragonfly BSD is pretty simple and straightforward. I followed document to upgrade my Operating System to 5.6.0 this morning, just copied and pasted, no single error, booted successfully.

Err codemadness.org 70 i 20938
Err codemadness.org 70 i 20939 Err codemadness.org 70 i 20940
Err codemadness.org 70 i 20941 Err codemadness.org 70 i 20942

Streaming Netflix on NetBSD

Err codemadness.org 70 i 20943 Err codemadness.org 70 i 20944
Err codemadness.org 70 i 20945

Here's a step-by-step guide that allows streaming Netflix media on NetBSD using a intel-haxm accelerated QEMU vm.

Err codemadness.org 70 i 20946 Err codemadness.org 70 i 20947

Heads-up! Sound doesn't work, but everything else is fine. Please read the rest of this thread for a solution to this!!

Err codemadness.org 70 i 20948
Err codemadness.org 70 i 20949 Err codemadness.org 70 i 20950
Err codemadness.org 70 i 20951 Err codemadness.org 70 i 20952

“Sudo Mastery 2nd Edition” cover art reveal

Err codemadness.org 70 i 20953 Err codemadness.org 70 i 20954
Err codemadness.org 70 i 20955

I’m about halfway through the new edition of Sudo Mastery. Assuming nothing terrible happens, should have a complete first draft in four to six weeks. Enough stuff has changed in sudo that I need to carefully double-check every single feature. (I’m also horrified by the painfully obsolete versions of sudo shipped in the latest versions of CentOS and Debian, but people running those operating systems are already accustomed to their creaky obsolescence.)

Err codemadness.org 70 i 20956 Err codemadness.org 70 i 20957

But the reason for this blog post? I have Eddie Sharam’s glorious cover art. My Patronizers saw it last month, so now the rest of you get a turn.

Err codemadness.org 70 i 20958
Err codemadness.org 70 i 20959 Err codemadness.org 70 i 20960
Err codemadness.org 70 i 20961 Err codemadness.org 70 i 20962

NetBSD on the last G4 Mac mini

Err codemadness.org 70 i 20963 Err codemadness.org 70 i 20964
Err codemadness.org 70 i 20965

I'm a big fan of NetBSD. I've run it since 2000 on a Mac IIci (of course it's still running it) and I ran it for several years on a Power Mac 7300 with a G3 card which was the second incarnation of the Floodgap gopher server. Today I also still run it on a MIPS-based Cobalt RaQ 2 and an HP Jornada 690. I think NetBSD is a better match for smaller or underpowered systems than current-day Linux, and is fairly easy to harden and keep secure even though none of these systems are exposed to the outside world.

Err codemadness.org 70 i 20966 Err codemadness.org 70 i 20967

Recently I had a need to set up a bridge system that would be fast enough to connect two networks and I happened to have two of the "secret" last-of-the-line 1.5GHz G4 Mac minis sitting on the shelf doing nothing. Yes, they're probably outclassed by later Raspberry Pi models, but I don't have to buy anything and I like putting old hardware to good use.

Err codemadness.org 70 i 20968
Err codemadness.org 70 i 20969 Err codemadness.org 70 i 20970
Err codemadness.org 70 i 20971 Err codemadness.org 70 i 20972

Hammer vs Hammer2

Err codemadness.org 70 i 20973 Err codemadness.org 70 i 20974
Err codemadness.org 70 i 20975

With the newly released DragonFlyBSD 5.6 there are improvements to its original HAMMER2 file-system to the extent that it's now selected by its installer as the default file-system choice for new installations. Curious how the performance now compares between HAMMER and HAMMER2, here are some initial benchmarks on an NVMe solid-state drive using DragonFlyBSD 5.6.0.

Err codemadness.org 70 i 20976 Err codemadness.org 70 i 20977

With a 120GB Toshiba NVMe SSD on an Intel Core i7 8700K system, I ran some benchmarks of DragonFlyBSD 5.6.0 freshly installed with HAMMER2 and then again when returning to the original HAMMER file-system that remains available via its installer. No other changes were made to the setup during testing.

Err codemadness.org 70 i 20978 Err codemadness.org 70 i 20979

And then for the more synthetic workloads it was just a mix. But overall HAMMER2 was performing well during the initial testing and great to see it continuing to offer noticeable leads in real-world workloads compared to the aging HAMMER file-system. HAMMER2 also offers better clustering, online deduplication, snapshots, compression, encryption, and many other modern file-system features.

Err codemadness.org 70 i 20980
Err codemadness.org 70 i 20981 Err codemadness.org 70 i 20982
Err codemadness.org 70 i 20983 Err codemadness.org 70 i 20984

Beastie Bits

Err codemadness.org 70 i 20985 Err codemadness.org 70 i 20986 Err codemadness.org 70 i 20994 Err codemadness.org 70 i 20995
Err codemadness.org 70 i 20996 Err codemadness.org 70 i 20997

Feedback/Questions

Err codemadness.org 70 i 20998 Err codemadness.org 70 i 20999
    Err codemadness.org 70 i 21000
  • Moritz - ARM Builds
  • Err codemadness.org 70 i 21001
  • Dave - Videos
  • Err codemadness.org 70 i 21002
  • Chris - Raspberry Pi4
  • Err codemadness.org 70 i 21003
Err codemadness.org 70 i 21004 Err codemadness.org 70 i 21005
Err codemadness.org 70 i 21006 Err codemadness.org 70 i 21007
    Err codemadness.org 70 i 21008
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 21009
Err codemadness.org 70 i 21010 Err codemadness.org 70 i 21011
Err codemadness.org 70 i 21012 Err codemadness.org 70 i 21013 ]]> Err codemadness.org 70 i 21017
Err codemadness.org 70 i 21018 Err codemadness.org 70 i 21019 Am5x86 based retro UNIX build log, setting up services in a FreeNAS Jail, first taste of DragonflyBSD, streaming Netflix on NetBSD, NetBSD on the last G4 Mac mini, Hammer vs Hammer2, and more.

Err codemadness.org 70 i 21020 Err codemadness.org 70 i 21021
Err codemadness.org 70 i 21022 Err codemadness.org 70 i 21023

Headlines

Err codemadness.org 70 i 21024 Err codemadness.org 70 i 21025

Polprog's Am5x86 based retro UNIX build log

Err codemadness.org 70 i 21026 Err codemadness.org 70 i 21027
Err codemadness.org 70 i 21028

I have recently acquired an Am5x86 computer, in a surprisingly good condition. This is an ongoing project, check this page often for updates!

Err codemadness.org 70 i 21029 Err codemadness.org 70 i 21030

I began by connecting a front panel. The panel came from a different chassis and is slightly too wide, so I had to attach it with a couple of zip-ties. However, that makes it stick out from the PC front at an angle, allowing easy access when the computer sits at the floor - and thats where it is most of the time. It's not that bad, to be honest, and its way easier to access than it would be, if mounted vertically

Err codemadness.org 70 i 21031 Err codemadness.org 70 i 21032

There is a mains switch on the front panel because the computer uses an older style power supply. Those power supplies instead of relying on a PSON signal, like modern ATX supplies, run a 4 wire cable to a mains switch. The cable carries live and neutral both ways, and the switch keys in or out the power. The system powers on as soon as the switch is enabled.

Err codemadness.org 70 i 21033 Err codemadness.org 70 i 21034

Originally there was no graphics card in it. Since a PC will not boot with out a GPU, I had to find one. The mainboard only has PCI and ISA slots, and all the GPUs I had were AGP. Fortunately, I bought a PCI GPU hoping it would solve my issue...

Err codemadness.org 70 i 21035 Err codemadness.org 70 i 21036

However the GPU turned out to be faulty. It took me some time to repair it. I had to repair a broken trace leading to one of the EEPROM pins, and replace a contact in the EEPROM's socket. Then I replaced all the electrolytic capacitors on it, and that fixed it for good.

Err codemadness.org 70 i 21037 Err codemadness.org 70 i 21038

Having used up only one of the three PCI slots, I populated the remaining pair with two ethernet cards. I still have a bunch of ISA slots available, but I have nothing to install there. Yet.

Err codemadness.org 70 i 21039
Err codemadness.org 70 i 21040 Err codemadness.org 70 i 21041
    Err codemadness.org 70 i 21042
  • See the article for the rest of the writeup
  • Err codemadness.org 70 i 21043
Err codemadness.org 70 i 21044 Err codemadness.org 70 i 21045
Err codemadness.org 70 i 21046 Err codemadness.org 70 i 21047

Setting up services in a FreeNAS Jail

Err codemadness.org 70 i 21048 Err codemadness.org 70 i 21049
Err codemadness.org 70 i 21050

This piece demonstrates the setup of a server service in a FreeNAS jail and how to share files with a jail using Apache 2.4 as an example. Jails are powerful, self-contained FreeBSD environments with separate network settings, package management, and access to thousands of FreeBSD application packages. Popular packages such as Apache, NGINX, LigHTTPD, MySQL, and PHP can be found and installed with the pkg search and pkg install commands.

Err codemadness.org 70 i 21051 Err codemadness.org 70 i 21052

This example shows creating a jail, installing an Apache web server, and setting up a simple web page.

Err codemadness.org 70 i 21053 Err codemadness.org 70 i 21054

NOTE: Do not directly attach FreeNAS to an external network (WAN). Use port forwarding, proper firewalls and DDoS protections when using FreeNAS for external web sites. This example demonstrates expanding the functionality of FreeNAS in an isolated LAN environment.

Err codemadness.org 70 i 21055
Err codemadness.org 70 i 21056 Err codemadness.org 70 i 21057
Err codemadness.org 70 i 21058 Err codemadness.org 70 i 21059

News Roundup

Err codemadness.org 70 i 21060 Err codemadness.org 70 i 21061

First taste of DragonflyBSD

Err codemadness.org 70 i 21062 Err codemadness.org 70 i 21063
Err codemadness.org 70 i 21064

Last week, I needed to pick a BSD Operating System which supports NUMA to do some testing, so I decided to give Dragonfly BSD a shot. Dragonfly BSDonly can run on X86_64 architecture, which reminds me of Arch Linux, and after some tweaking, I feel Dragonfly BSD may be a “developer-friendly” Operating System, at least for me.

Err codemadness.org 70 i 21065 Err codemadness.org 70 i 21066

I mainly use Dragonfly BSD as a server, so I don’t care whether GUI is fancy or not. But I have high requirements of developer tools, i.e., compiler and debugger. The default compiler of Dragonfly BSD is gcc 8.3, and I can also install clang 8.0.0 from package. This means I can test state-of-the-art features of compilers, and it is really important for me. gdb‘s version is 7.6.1, a little lag behind, but still OK.

Err codemadness.org 70 i 21067 Err codemadness.org 70 i 21068

Furthermore, the upgradation of Dragonfly BSD is pretty simple and straightforward. I followed document to upgrade my Operating System to 5.6.0 this morning, just copied and pasted, no single error, booted successfully.

Err codemadness.org 70 i 21069
Err codemadness.org 70 i 21070 Err codemadness.org 70 i 21071
Err codemadness.org 70 i 21072 Err codemadness.org 70 i 21073

Streaming Netflix on NetBSD

Err codemadness.org 70 i 21074 Err codemadness.org 70 i 21075
Err codemadness.org 70 i 21076

Here's a step-by-step guide that allows streaming Netflix media on NetBSD using a intel-haxm accelerated QEMU vm.

Err codemadness.org 70 i 21077 Err codemadness.org 70 i 21078

Heads-up! Sound doesn't work, but everything else is fine. Please read the rest of this thread for a solution to this!!

Err codemadness.org 70 i 21079
Err codemadness.org 70 i 21080 Err codemadness.org 70 i 21081
Err codemadness.org 70 i 21082 Err codemadness.org 70 i 21083

“Sudo Mastery 2nd Edition” cover art reveal

Err codemadness.org 70 i 21084 Err codemadness.org 70 i 21085
Err codemadness.org 70 i 21086

I’m about halfway through the new edition of Sudo Mastery. Assuming nothing terrible happens, should have a complete first draft in four to six weeks. Enough stuff has changed in sudo that I need to carefully double-check every single feature. (I’m also horrified by the painfully obsolete versions of sudo shipped in the latest versions of CentOS and Debian, but people running those operating systems are already accustomed to their creaky obsolescence.)

Err codemadness.org 70 i 21087 Err codemadness.org 70 i 21088

But the reason for this blog post? I have Eddie Sharam’s glorious cover art. My Patronizers saw it last month, so now the rest of you get a turn.

Err codemadness.org 70 i 21089
Err codemadness.org 70 i 21090 Err codemadness.org 70 i 21091
Err codemadness.org 70 i 21092 Err codemadness.org 70 i 21093

NetBSD on the last G4 Mac mini

Err codemadness.org 70 i 21094 Err codemadness.org 70 i 21095
Err codemadness.org 70 i 21096

I'm a big fan of NetBSD. I've run it since 2000 on a Mac IIci (of course it's still running it) and I ran it for several years on a Power Mac 7300 with a G3 card which was the second incarnation of the Floodgap gopher server. Today I also still run it on a MIPS-based Cobalt RaQ 2 and an HP Jornada 690. I think NetBSD is a better match for smaller or underpowered systems than current-day Linux, and is fairly easy to harden and keep secure even though none of these systems are exposed to the outside world.

Err codemadness.org 70 i 21097 Err codemadness.org 70 i 21098

Recently I had a need to set up a bridge system that would be fast enough to connect two networks and I happened to have two of the "secret" last-of-the-line 1.5GHz G4 Mac minis sitting on the shelf doing nothing. Yes, they're probably outclassed by later Raspberry Pi models, but I don't have to buy anything and I like putting old hardware to good use.

Err codemadness.org 70 i 21099
Err codemadness.org 70 i 21100 Err codemadness.org 70 i 21101
Err codemadness.org 70 i 21102 Err codemadness.org 70 i 21103

Hammer vs Hammer2

Err codemadness.org 70 i 21104 Err codemadness.org 70 i 21105
Err codemadness.org 70 i 21106

With the newly released DragonFlyBSD 5.6 there are improvements to its original HAMMER2 file-system to the extent that it's now selected by its installer as the default file-system choice for new installations. Curious how the performance now compares between HAMMER and HAMMER2, here are some initial benchmarks on an NVMe solid-state drive using DragonFlyBSD 5.6.0.

Err codemadness.org 70 i 21107 Err codemadness.org 70 i 21108

With a 120GB Toshiba NVMe SSD on an Intel Core i7 8700K system, I ran some benchmarks of DragonFlyBSD 5.6.0 freshly installed with HAMMER2 and then again when returning to the original HAMMER file-system that remains available via its installer. No other changes were made to the setup during testing.

Err codemadness.org 70 i 21109 Err codemadness.org 70 i 21110

And then for the more synthetic workloads it was just a mix. But overall HAMMER2 was performing well during the initial testing and great to see it continuing to offer noticeable leads in real-world workloads compared to the aging HAMMER file-system. HAMMER2 also offers better clustering, online deduplication, snapshots, compression, encryption, and many other modern file-system features.

Err codemadness.org 70 i 21111
Err codemadness.org 70 i 21112 Err codemadness.org 70 i 21113
Err codemadness.org 70 i 21114 Err codemadness.org 70 i 21115

Beastie Bits

Err codemadness.org 70 i 21116 Err codemadness.org 70 i 21117 Err codemadness.org 70 i 21125 Err codemadness.org 70 i 21126
Err codemadness.org 70 i 21127 Err codemadness.org 70 i 21128

Feedback/Questions

Err codemadness.org 70 i 21129 Err codemadness.org 70 i 21130
    Err codemadness.org 70 i 21131
  • Moritz - ARM Builds
  • Err codemadness.org 70 i 21132
  • Dave - Videos
  • Err codemadness.org 70 i 21133
  • Chris - Raspberry Pi4
  • Err codemadness.org 70 i 21134
Err codemadness.org 70 i 21135 Err codemadness.org 70 i 21136
Err codemadness.org 70 i 21137 Err codemadness.org 70 i 21138
    Err codemadness.org 70 i 21139
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 21140
Err codemadness.org 70 i 21141 Err codemadness.org 70 i 21142
Err codemadness.org 70 i 21143 Err codemadness.org 70 i 21144 ]]> Err codemadness.org 70 i 21148
Err codemadness.org 70 i 21149 https://fireside.fm/player/v2/FYhhasNR+NHr7nOD5 Err codemadness.org 70 i 21150 Err codemadness.org 70 i 21151 ]]> Err codemadness.org 70 i 21152 Err codemadness.org 70 i 21153
Err codemadness.org 70 i 21154 Err codemadness.org 70 i 21155 305: Changing face of Unix Err codemadness.org 70 i 21156 https://www.bsdnow.tv/305 Err codemadness.org 70 i 21157 3ad52b9d-03b4-4c00-a16f-cc4be091e6ff Err codemadness.org 70 i 21158 Wed, 03 Jul 2019 19:00:00 -0700 Err codemadness.org 70 i 21159 Allan Jude Err codemadness.org 70 i 21160 Err codemadness.org 70 i 21161 full Err codemadness.org 70 i 21162 Allan Jude Err codemadness.org 70 i 21163 Website protection with OPNsense, FreeBSD Support Pull Request for ZFS-on-Linux, How much has Unix changed, Porting Wine to amd64 on NetBSD, FreeBSD Enterprise 1 PB Storage, the death watch for X11 has started, and more. Err codemadness.org 70 i 21164 56:09 Err codemadness.org 70 i 21165 no Err codemadness.org 70 i 21166 Err codemadness.org 70 i 21167 Website protection with OPNsense, FreeBSD Support Pull Request for ZFS-on-Linux, How much has Unix changed, Porting Wine to amd64 on NetBSD, FreeBSD Enterprise 1 PB Storage, the death watch for X11 has started, and more. Err codemadness.org 70 i 21168 Headlines Err codemadness.org 70 i 21169 Website protection with OPNsense (https://medium.com/@jccwbb/website-protection-with-opnsense-3586a529d487) Err codemadness.org 70 i 21170 with nginx plugin OPNsense become a strong full featured Web Application Firewall (WAF) Err codemadness.org 70 i 21171 The OPNsense security platform can help you to protect your network and your webservers with the nginx plugin addition. Err codemadness.org 70 i 21172 In old days, install an open source firewall was a very trick task, but today it can be done with few clicks (or key strokes). In this article I'll not describe the detailed OPNsense installation process, but you can watch this video that was extracted from my OPNsense course available in Udemy. The video is in portuguese language, but with the translation CC Youtube feature you may be able to follow it without problems (if you don't are a portuguese speaker ofcourse) :-) Err codemadness.org 70 i 21173 + See the article for the rest of the writeup Err codemadness.org 70 i 21174 FreeBSD Support Pull Request against the ZFS-on-Linux repo (https://github.com/zfsonlinux/zfs/pull/8987) Err codemadness.org 70 i 21175 This pull request integrates the sysutils/openzfs port’s sources into the upstream ZoL repo Err codemadness.org 70 i 21176 > Adding FreeBSD support to ZoL will make it easier to move changes back and forth between FreeBSD and Linux Err codemadness.org 70 i 21177 > Refactor tree to separate out Linux and FreeBSD specific code Err codemadness.org 70 i 21178 > import FreeBSD's SPL Err codemadness.org 70 i 21179 > add ifdefs in common code where it made more sense to do so than duplicate the code in separate files Err codemadness.org 70 i 21180 > Adapted ZFS Test Suite to run on FreeBSD and all tests that pass on ZoL passing on ZoF Err codemadness.org 70 i 21181 The plan to officially rename the common repo from ZFSonLinux to OpenZFS was announced at the ZFS Leadership Meeting on June 25th Err codemadness.org 70 i 21182 Video of Leadership Meeting (https://www.youtube.com/watch?v=TJwykiJmH0M) Err codemadness.org 70 i 21183 Meeting Agenda and Notes (https://docs.google.com/document/d/1w2jv2XVYFmBVvG1EGf-9A5HBVsjAYoLIFZAnWHhV-BM/edit) Err codemadness.org 70 i 21184 This will allow improvements made on one OS to be made available more easily (and more quickly) to the other platforms Err codemadness.org 70 i 21185 For example, mav@’s recent work: Err codemadness.org 70 i 21186 Add wakeupany(), cheaper version of wakeupone() for taskqueue(9) (https://svnweb.freebsd.org/base?view=revision&revision=349220) Err codemadness.org 70 i 21187 > As result, on 72-core Xeon v4 machine sequential ZFS write to 12 ZVOLs with 16KB block size spend 34% less time in wakeupany() and descendants then it was spending in wakeupone(), and total write throughput increased by ~10% with the same as before CPU usage. Err codemadness.org 70 i 21188 News Roundup Err codemadness.org 70 i 21189 Episode 5 Notes - How much has UNIX changed? (http://adventofcomputing.libsyn.com/episode-5-notes-how-much-has-unix-changed) Err codemadness.org 70 i 21190 UNIX-like systems have dominated computing for decades, and with the rise of the internet and mobile devices their reach has become even larger. True, most systems now use more modern OSs like Linux, but how much has the UNIX-like landscape changed since the early days? Err codemadness.org 70 i 21191 So, my question was this: how close is a modern *NIX userland to some of the earliest UNIX releases? To do this I'm going to compare a few key points of a modern Linux system with the earliest UNIX documentation I can get my hands on. The doc I am going to be covering(https://www.tuhs.org/Archive/Distributions/Research/Dennisv1/UNIXProgrammersManual_Nov71.pdf) is from November 1971, predating v1 of the system. Err codemadness.org 70 i 21192 I think the best place to start this comparison is to look at one of the highest-profile parts of the OS, that being the file system. Under the hood modern EXT file systems are completely different from the early UNIX file systems. However, they are still presented in basically the same way, as a heirerarchicat structure of directories with device files. So paths still look identical, and navigating the file system still functions the same. Often used commands like ls, cp, mv, du, and df function the same. So are mount and umount. But, there are some key differences. For instance, cd didn't exist, yet instead chdir filled its place. Also, chmod is somewhat different. Instead of the usual 3-digit octal codes for permissions, this older version only uses 2 digits. Really, that difference is due to the underlying file system using a different permission set than modern systems. For the most part, all the file handling is actually pretty close to a Linux system from 2019. Err codemadness.org 70 i 21193 See the article for the rest of the writeup Err codemadness.org 70 i 21194 Porting Wine to amd64 on NetBSD (https://blog.netbsd.org/tnf/entry/porting_wine_to_amd64_on) Err codemadness.org 70 i 21195 I have been working on porting Wine to amd64 on NetBSD as a GSoC 2019 project. Wine is a compatibility layer which allows running Microsoft Windows applications on POSIX-complaint operating systems. This report provides an overview of the progress of the project during the first coding period. Err codemadness.org 70 i 21196 Initially, when I started working on getting Wine-4.4 to build and run on NetBSD i386 the primary issue that I faced was Wine displaying black windows instead of UI, and this applied to any graphical program I tried running with Wine. Err codemadness.org 70 i 21197 I suspected it , as it is related to graphics, to be an issue with the graphics driver or Xorg. Subsequently, I tried building modular Xorg, and I tried running Wine on it only to realize that Xorg being modular didn't affect it in the least. After having tried a couple of configurations, I realized that trying to hazard out every other probability is going to take an awful lot of time that I didn't have. This motivated me to bisect the repo using git, and find the first version of Wine which failed on NetBSD. Err codemadness.org 70 i 21198 + See the article for the rest of the writeup Err codemadness.org 70 i 21199 FreeBSD Enterprise 1 PB Storage (https://vermaden.wordpress.com/2019/06/19/freebsd-enterprise-1-pb-storage/?utm_source=discoverbsd) Err codemadness.org 70 i 21200 Today FreeBSD operating system turns 26 years old. 19 June is an International FreeBSD Day. This is why I got something special today :). How about using FreeBSD as an Enterprise Storage solution on real hardware? This where FreeBSD shines with all its storage features ZFS included. Err codemadness.org 70 i 21201 Today I will show you how I have built so called Enterprise Storage based on FreeBSD system along with more then 1 PB (Petabyte) of raw capacity. Err codemadness.org 70 i 21202 This project is different. How much storage space can you squeeze from a single 4U system? It turns out a lot! Definitely more then 1 PB (1024 TB) of raw storage space. Err codemadness.org 70 i 21203 See the article for the rest of the writeup Err codemadness.org 70 i 21204 The death watch for the X Window System (aka X11) has probably started (https://utcc.utoronto.ca/~cks/space/blog/unix/XDeathwatchStarts) Err codemadness.org 70 i 21205 Once we are done with this we expect X.org to go into hard maintenance mode fairly quickly. The reality is that X.org is basically maintained by us and thus once we stop paying attention to it there is unlikely to be any major new releases coming out and there might even be some bitrot setting in over time. We will keep an eye on it as we will want to ensure X.org stays supportable until the end of the RHEL8 lifecycle at a minimum, but let this be a friendly notice for everyone who rely the work we do maintaining the Linux graphics stack, get onto Wayland, that is where the future is. Err codemadness.org 70 i 21206 I have no idea how true this is about X.org X server maintenance, either now or in the future, but I definitely think it's a sign that developers have started saying this. If Gnome developers feel that X.org is going to be in hard maintenance mode almost immediately, they're probably pretty likely to also put the Gnome code that deals with X into hard maintenance mode. And public Gnome statements about this (and public action or lack of it) provide implicit support for KDE and any other desktop to move in this direction if they want to (and probably create some pressure to do so). I've known that Wayland was the future for some time, but I would still like it to not arrive any time soon. Err codemadness.org 70 i 21207 Beastie Bits Err codemadness.org 70 i 21208 Porting NetBSD to Risc-V -- Video (https://www.youtube.com/watch?v=2vQXGomKoxA) Err codemadness.org 70 i 21209 FreeBSD 11.3RC3 Available (https://www.freebsd.org/news/newsflash.html#event20190628:01) Err codemadness.org 70 i 21210 Open Source Could Be a Casualty of the Trade War (https://www.bunniestudios.com/blog/?p=5590) Err codemadness.org 70 i 21211 Celebrate UNIX50 and SDF32 (https://sdf.org/sdf32/) Err codemadness.org 70 i 21212 doas environmental security (https://undeadly.org/cgi?action=article;sid=20190621104048) Err codemadness.org 70 i 21213 Feedback/Questions Err codemadness.org 70 i 21214 Matt - BSD or Older Hardware (http://dpaste.com/1RP09F0#wrap) Err codemadness.org 70 i 21215 MJRodriguez - Some Playstation news (http://dpaste.com/046SPPB#wrap) Err codemadness.org 70 i 21216 Moritz - bhyve VT-x passthrough (http://dpaste.com/1H4PJXW) Err codemadness.org 70 i 21217 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 21218 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 21219 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0305.mp4" type="video/mp4"> Err codemadness.org 70 i 21220 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 21221 </video> Err codemadness.org 70 i 21222 Err codemadness.org 70 i 21223 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, opnsense, wine, storage, x11, x windows, risc-v, unix50, sdf32, doas Err codemadness.org 70 i 21224 Err codemadness.org 70 i 21225 Website protection with OPNsense, FreeBSD Support Pull Request for ZFS-on-Linux, How much has Unix changed, Porting Wine to amd64 on NetBSD, FreeBSD Enterprise 1 PB Storage, the death watch for X11 has started, and more.

Err codemadness.org 70 i 21226 Err codemadness.org 70 i 21227

Headlines

Err codemadness.org 70 i 21228 Err codemadness.org 70 i 21229

Website protection with OPNsense

Err codemadness.org 70 i 21230 Err codemadness.org 70 i 21231
    Err codemadness.org 70 i 21232
  • with nginx plugin OPNsense become a strong full featured Web Application Firewall (WAF)
  • Err codemadness.org 70 i 21233
Err codemadness.org 70 i 21234 Err codemadness.org 70 i 21235
Err codemadness.org 70 i 21236

The OPNsense security platform can help you to protect your network and your webservers with the nginx plugin addition.
Err codemadness.org 70 i 21237 In old days, install an open source firewall was a very trick task, but today it can be done with few clicks (or key strokes). In this article I'll not describe the detailed OPNsense installation process, but you can watch this video that was extracted from my OPNsense course available in Udemy. The video is in portuguese language, but with the translation CC Youtube feature you may be able to follow it without problems (if you don't are a portuguese speaker ofcourse) :-)

Err codemadness.org 70 i 21238 Err codemadness.org 70 i 21239
    Err codemadness.org 70 i 21240
  • See the article for the rest of the writeup
  • Err codemadness.org 70 i 21241
Err codemadness.org 70 i 21242
Err codemadness.org 70 i 21243 Err codemadness.org 70 i 21244
Err codemadness.org 70 i 21245 Err codemadness.org 70 i 21246

FreeBSD Support Pull Request against the ZFS-on-Linux repo

Err codemadness.org 70 i 21247 Err codemadness.org 70 i 21248
    Err codemadness.org 70 i 21249
  • This pull request integrates the sysutils/openzfs port’s sources into the upstream ZoL repo Err codemadness.org 70 i 21250 > Adding FreeBSD support to ZoL will make it easier to move changes back and forth between FreeBSD and Linux Err codemadness.org 70 i 21251 > Refactor tree to separate out Linux and FreeBSD specific code Err codemadness.org 70 i 21252 > import FreeBSD's SPL Err codemadness.org 70 i 21253 > add ifdefs in common code where it made more sense to do so than duplicate the code in separate files Err codemadness.org 70 i 21254 > Adapted ZFS Test Suite to run on FreeBSD and all tests that pass on ZoL passing on ZoF
  • Err codemadness.org 70 i 21255
  • The plan to officially rename the common repo from ZFSonLinux to OpenZFS was announced at the ZFS Leadership Meeting on June 25th
  • Err codemadness.org 70 i 21256
  • Video of Leadership Meeting
  • Err codemadness.org 70 i 21257
  • Meeting Agenda and Notes
  • Err codemadness.org 70 i 21258
  • This will allow improvements made on one OS to be made available more easily (and more quickly) to the other platforms
  • Err codemadness.org 70 i 21259
  • For example, mav@’s recent work:
  • Err codemadness.org 70 i 21260
  • Add wakeup_any(), cheaper version of wakeup_one() for taskqueue(9) Err codemadness.org 70 i 21261 > As result, on 72-core Xeon v4 machine sequential ZFS write to 12 ZVOLs with 16KB block size spend 34% less time in wakeup_any() and descendants then it was spending in wakeup_one(), and total write throughput increased by ~10% with the same as before CPU usage.
  • Err codemadness.org 70 i 21262
Err codemadness.org 70 i 21263 Err codemadness.org 70 i 21264
Err codemadness.org 70 i 21265 Err codemadness.org 70 i 21266

News Roundup

Err codemadness.org 70 i 21267 Err codemadness.org 70 i 21268

Episode 5 Notes - How much has UNIX changed?

Err codemadness.org 70 i 21269 Err codemadness.org 70 i 21270
Err codemadness.org 70 i 21271

UNIX-like systems have dominated computing for decades, and with the rise of the internet and mobile devices their reach has become even larger. True, most systems now use more modern OSs like Linux, but how much has the UNIX-like landscape changed since the early days?
Err codemadness.org 70 i 21272 So, my question was this: how close is a modern *NIX userland to some of the earliest UNIX releases? To do this I'm going to compare a few key points of a modern Linux system with the earliest UNIX documentation I can get my hands on. The doc I am going to be covering(https://www.tuhs.org/Archive/Distributions/Research/Dennis_v1/UNIX_ProgrammersManual_Nov71.pdf) is from November 1971, predating v1 of the system.
Err codemadness.org 70 i 21273 I think the best place to start this comparison is to look at one of the highest-profile parts of the OS, that being the file system. Under the hood modern EXT file systems are completely different from the early UNIX file systems. However, they are still presented in basically the same way, as a heirerarchicat structure of directories with device files. So paths still look identical, and navigating the file system still functions the same. Often used commands like ls, cp, mv, du, and df function the same. So are mount and umount. But, there are some key differences. For instance, cd didn't exist, yet instead chdir filled its place. Also, chmod is somewhat different. Instead of the usual 3-digit octal codes for permissions, this older version only uses 2 digits. Really, that difference is due to the underlying file system using a different permission set than modern systems. For the most part, all the file handling is actually pretty close to a Linux system from 2019.

Err codemadness.org 70 i 21274
Err codemadness.org 70 i 21275 Err codemadness.org 70 i 21276
    Err codemadness.org 70 i 21277
  • See the article for the rest of the writeup
  • Err codemadness.org 70 i 21278
Err codemadness.org 70 i 21279 Err codemadness.org 70 i 21280
Err codemadness.org 70 i 21281 Err codemadness.org 70 i 21282

Porting Wine to amd64 on NetBSD

Err codemadness.org 70 i 21283 Err codemadness.org 70 i 21284
Err codemadness.org 70 i 21285

I have been working on porting Wine to amd64 on NetBSD as a GSoC 2019 project. Wine is a compatibility layer which allows running Microsoft Windows applications on POSIX-complaint operating systems. This report provides an overview of the progress of the project during the first coding period.
Err codemadness.org 70 i 21286 Initially, when I started working on getting Wine-4.4 to build and run on NetBSD i386 the primary issue that I faced was Wine displaying black windows instead of UI, and this applied to any graphical program I tried running with Wine.
Err codemadness.org 70 i 21287 I suspected it , as it is related to graphics, to be an issue with the graphics driver or Xorg. Subsequently, I tried building modular Xorg, and I tried running Wine on it only to realize that Xorg being modular didn't affect it in the least. After having tried a couple of configurations, I realized that trying to hazard out every other probability is going to take an awful lot of time that I didn't have. This motivated me to bisect the repo using git, and find the first version of Wine which failed on NetBSD.

Err codemadness.org 70 i 21288 Err codemadness.org 70 i 21289
    Err codemadness.org 70 i 21290
  • See the article for the rest of the writeup
  • Err codemadness.org 70 i 21291
Err codemadness.org 70 i 21292
Err codemadness.org 70 i 21293 Err codemadness.org 70 i 21294
Err codemadness.org 70 i 21295 Err codemadness.org 70 i 21296

FreeBSD Enterprise 1 PB Storage

Err codemadness.org 70 i 21297 Err codemadness.org 70 i 21298
Err codemadness.org 70 i 21299

Today FreeBSD operating system turns 26 years old. 19 June is an International FreeBSD Day. This is why I got something special today :). How about using FreeBSD as an Enterprise Storage solution on real hardware? This where FreeBSD shines with all its storage features ZFS included.
Err codemadness.org 70 i 21300 Today I will show you how I have built so called Enterprise Storage based on FreeBSD system along with more then 1 PB (Petabyte) of raw capacity.
Err codemadness.org 70 i 21301 This project is different. How much storage space can you squeeze from a single 4U system? It turns out a lot! Definitely more then 1 PB (1024 TB) of raw storage space.

Err codemadness.org 70 i 21302
Err codemadness.org 70 i 21303 Err codemadness.org 70 i 21304
    Err codemadness.org 70 i 21305
  • See the article for the rest of the writeup
  • Err codemadness.org 70 i 21306
Err codemadness.org 70 i 21307 Err codemadness.org 70 i 21308
Err codemadness.org 70 i 21309 Err codemadness.org 70 i 21310

The death watch for the X Window System (aka X11) has probably started

Err codemadness.org 70 i 21311 Err codemadness.org 70 i 21312
Err codemadness.org 70 i 21313

Once we are done with this we expect X.org to go into hard maintenance mode fairly quickly. The reality is that X.org is basically maintained by us and thus once we stop paying attention to it there is unlikely to be any major new releases coming out and there might even be some bitrot setting in over time. We will keep an eye on it as we will want to ensure X.org stays supportable until the end of the RHEL8 lifecycle at a minimum, but let this be a friendly notice for everyone who rely the work we do maintaining the Linux graphics stack, get onto Wayland, that is where the future is.
Err codemadness.org 70 i 21314 I have no idea how true this is about X.org X server maintenance, either now or in the future, but I definitely think it's a sign that developers have started saying this. If Gnome developers feel that X.org is going to be in hard maintenance mode almost immediately, they're probably pretty likely to also put the Gnome code that deals with X into hard maintenance mode. And public Gnome statements about this (and public action or lack of it) provide implicit support for KDE and any other desktop to move in this direction if they want to (and probably create some pressure to do so). I've known that Wayland was the future for some time, but I would still like it to not arrive any time soon.

Err codemadness.org 70 i 21315
Err codemadness.org 70 i 21316 Err codemadness.org 70 i 21317
Err codemadness.org 70 i 21318 Err codemadness.org 70 i 21319

Beastie Bits

Err codemadness.org 70 i 21320 Err codemadness.org 70 i 21321 Err codemadness.org 70 i 21328 Err codemadness.org 70 i 21329
Err codemadness.org 70 i 21330 Err codemadness.org 70 i 21331

Feedback/Questions

Err codemadness.org 70 i 21332 Err codemadness.org 70 i 21333 Err codemadness.org 70 i 21338 Err codemadness.org 70 i 21339
Err codemadness.org 70 i 21340 Err codemadness.org 70 i 21341
    Err codemadness.org 70 i 21342
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 21343
Err codemadness.org 70 i 21344 Err codemadness.org 70 i 21345
Err codemadness.org 70 i 21346 Err codemadness.org 70 i 21347 ]]> Err codemadness.org 70 i 21351
Err codemadness.org 70 i 21352 Err codemadness.org 70 i 21353 Website protection with OPNsense, FreeBSD Support Pull Request for ZFS-on-Linux, How much has Unix changed, Porting Wine to amd64 on NetBSD, FreeBSD Enterprise 1 PB Storage, the death watch for X11 has started, and more.

Err codemadness.org 70 i 21354 Err codemadness.org 70 i 21355

Headlines

Err codemadness.org 70 i 21356 Err codemadness.org 70 i 21357

Website protection with OPNsense

Err codemadness.org 70 i 21358 Err codemadness.org 70 i 21359
    Err codemadness.org 70 i 21360
  • with nginx plugin OPNsense become a strong full featured Web Application Firewall (WAF)
  • Err codemadness.org 70 i 21361
Err codemadness.org 70 i 21362 Err codemadness.org 70 i 21363
Err codemadness.org 70 i 21364

The OPNsense security platform can help you to protect your network and your webservers with the nginx plugin addition.
Err codemadness.org 70 i 21365 In old days, install an open source firewall was a very trick task, but today it can be done with few clicks (or key strokes). In this article I'll not describe the detailed OPNsense installation process, but you can watch this video that was extracted from my OPNsense course available in Udemy. The video is in portuguese language, but with the translation CC Youtube feature you may be able to follow it without problems (if you don't are a portuguese speaker ofcourse) :-)

Err codemadness.org 70 i 21366 Err codemadness.org 70 i 21367
    Err codemadness.org 70 i 21368
  • See the article for the rest of the writeup
  • Err codemadness.org 70 i 21369
Err codemadness.org 70 i 21370
Err codemadness.org 70 i 21371 Err codemadness.org 70 i 21372
Err codemadness.org 70 i 21373 Err codemadness.org 70 i 21374

FreeBSD Support Pull Request against the ZFS-on-Linux repo

Err codemadness.org 70 i 21375 Err codemadness.org 70 i 21376
    Err codemadness.org 70 i 21377
  • This pull request integrates the sysutils/openzfs port’s sources into the upstream ZoL repo Err codemadness.org 70 i 21378 > Adding FreeBSD support to ZoL will make it easier to move changes back and forth between FreeBSD and Linux Err codemadness.org 70 i 21379 > Refactor tree to separate out Linux and FreeBSD specific code Err codemadness.org 70 i 21380 > import FreeBSD's SPL Err codemadness.org 70 i 21381 > add ifdefs in common code where it made more sense to do so than duplicate the code in separate files Err codemadness.org 70 i 21382 > Adapted ZFS Test Suite to run on FreeBSD and all tests that pass on ZoL passing on ZoF
  • Err codemadness.org 70 i 21383
  • The plan to officially rename the common repo from ZFSonLinux to OpenZFS was announced at the ZFS Leadership Meeting on June 25th
  • Err codemadness.org 70 i 21384
  • Video of Leadership Meeting
  • Err codemadness.org 70 i 21385
  • Meeting Agenda and Notes
  • Err codemadness.org 70 i 21386
  • This will allow improvements made on one OS to be made available more easily (and more quickly) to the other platforms
  • Err codemadness.org 70 i 21387
  • For example, mav@’s recent work:
  • Err codemadness.org 70 i 21388
  • Add wakeup_any(), cheaper version of wakeup_one() for taskqueue(9) Err codemadness.org 70 i 21389 > As result, on 72-core Xeon v4 machine sequential ZFS write to 12 ZVOLs with 16KB block size spend 34% less time in wakeup_any() and descendants then it was spending in wakeup_one(), and total write throughput increased by ~10% with the same as before CPU usage.
  • Err codemadness.org 70 i 21390
Err codemadness.org 70 i 21391 Err codemadness.org 70 i 21392
Err codemadness.org 70 i 21393 Err codemadness.org 70 i 21394

News Roundup

Err codemadness.org 70 i 21395 Err codemadness.org 70 i 21396

Episode 5 Notes - How much has UNIX changed?

Err codemadness.org 70 i 21397 Err codemadness.org 70 i 21398
Err codemadness.org 70 i 21399

UNIX-like systems have dominated computing for decades, and with the rise of the internet and mobile devices their reach has become even larger. True, most systems now use more modern OSs like Linux, but how much has the UNIX-like landscape changed since the early days?
Err codemadness.org 70 i 21400 So, my question was this: how close is a modern *NIX userland to some of the earliest UNIX releases? To do this I'm going to compare a few key points of a modern Linux system with the earliest UNIX documentation I can get my hands on. The doc I am going to be covering(https://www.tuhs.org/Archive/Distributions/Research/Dennis_v1/UNIX_ProgrammersManual_Nov71.pdf) is from November 1971, predating v1 of the system.
Err codemadness.org 70 i 21401 I think the best place to start this comparison is to look at one of the highest-profile parts of the OS, that being the file system. Under the hood modern EXT file systems are completely different from the early UNIX file systems. However, they are still presented in basically the same way, as a heirerarchicat structure of directories with device files. So paths still look identical, and navigating the file system still functions the same. Often used commands like ls, cp, mv, du, and df function the same. So are mount and umount. But, there are some key differences. For instance, cd didn't exist, yet instead chdir filled its place. Also, chmod is somewhat different. Instead of the usual 3-digit octal codes for permissions, this older version only uses 2 digits. Really, that difference is due to the underlying file system using a different permission set than modern systems. For the most part, all the file handling is actually pretty close to a Linux system from 2019.

Err codemadness.org 70 i 21402
Err codemadness.org 70 i 21403 Err codemadness.org 70 i 21404
    Err codemadness.org 70 i 21405
  • See the article for the rest of the writeup
  • Err codemadness.org 70 i 21406
Err codemadness.org 70 i 21407 Err codemadness.org 70 i 21408
Err codemadness.org 70 i 21409 Err codemadness.org 70 i 21410

Porting Wine to amd64 on NetBSD

Err codemadness.org 70 i 21411 Err codemadness.org 70 i 21412
Err codemadness.org 70 i 21413

I have been working on porting Wine to amd64 on NetBSD as a GSoC 2019 project. Wine is a compatibility layer which allows running Microsoft Windows applications on POSIX-complaint operating systems. This report provides an overview of the progress of the project during the first coding period.
Err codemadness.org 70 i 21414 Initially, when I started working on getting Wine-4.4 to build and run on NetBSD i386 the primary issue that I faced was Wine displaying black windows instead of UI, and this applied to any graphical program I tried running with Wine.
Err codemadness.org 70 i 21415 I suspected it , as it is related to graphics, to be an issue with the graphics driver or Xorg. Subsequently, I tried building modular Xorg, and I tried running Wine on it only to realize that Xorg being modular didn't affect it in the least. After having tried a couple of configurations, I realized that trying to hazard out every other probability is going to take an awful lot of time that I didn't have. This motivated me to bisect the repo using git, and find the first version of Wine which failed on NetBSD.

Err codemadness.org 70 i 21416 Err codemadness.org 70 i 21417
    Err codemadness.org 70 i 21418
  • See the article for the rest of the writeup
  • Err codemadness.org 70 i 21419
Err codemadness.org 70 i 21420
Err codemadness.org 70 i 21421 Err codemadness.org 70 i 21422
Err codemadness.org 70 i 21423 Err codemadness.org 70 i 21424

FreeBSD Enterprise 1 PB Storage

Err codemadness.org 70 i 21425 Err codemadness.org 70 i 21426
Err codemadness.org 70 i 21427

Today FreeBSD operating system turns 26 years old. 19 June is an International FreeBSD Day. This is why I got something special today :). How about using FreeBSD as an Enterprise Storage solution on real hardware? This where FreeBSD shines with all its storage features ZFS included.
Err codemadness.org 70 i 21428 Today I will show you how I have built so called Enterprise Storage based on FreeBSD system along with more then 1 PB (Petabyte) of raw capacity.
Err codemadness.org 70 i 21429 This project is different. How much storage space can you squeeze from a single 4U system? It turns out a lot! Definitely more then 1 PB (1024 TB) of raw storage space.

Err codemadness.org 70 i 21430
Err codemadness.org 70 i 21431 Err codemadness.org 70 i 21432
    Err codemadness.org 70 i 21433
  • See the article for the rest of the writeup
  • Err codemadness.org 70 i 21434
Err codemadness.org 70 i 21435 Err codemadness.org 70 i 21436
Err codemadness.org 70 i 21437 Err codemadness.org 70 i 21438

The death watch for the X Window System (aka X11) has probably started

Err codemadness.org 70 i 21439 Err codemadness.org 70 i 21440
Err codemadness.org 70 i 21441

Once we are done with this we expect X.org to go into hard maintenance mode fairly quickly. The reality is that X.org is basically maintained by us and thus once we stop paying attention to it there is unlikely to be any major new releases coming out and there might even be some bitrot setting in over time. We will keep an eye on it as we will want to ensure X.org stays supportable until the end of the RHEL8 lifecycle at a minimum, but let this be a friendly notice for everyone who rely the work we do maintaining the Linux graphics stack, get onto Wayland, that is where the future is.
Err codemadness.org 70 i 21442 I have no idea how true this is about X.org X server maintenance, either now or in the future, but I definitely think it's a sign that developers have started saying this. If Gnome developers feel that X.org is going to be in hard maintenance mode almost immediately, they're probably pretty likely to also put the Gnome code that deals with X into hard maintenance mode. And public Gnome statements about this (and public action or lack of it) provide implicit support for KDE and any other desktop to move in this direction if they want to (and probably create some pressure to do so). I've known that Wayland was the future for some time, but I would still like it to not arrive any time soon.

Err codemadness.org 70 i 21443
Err codemadness.org 70 i 21444 Err codemadness.org 70 i 21445
Err codemadness.org 70 i 21446 Err codemadness.org 70 i 21447

Beastie Bits

Err codemadness.org 70 i 21448 Err codemadness.org 70 i 21449 Err codemadness.org 70 i 21456 Err codemadness.org 70 i 21457
Err codemadness.org 70 i 21458 Err codemadness.org 70 i 21459

Feedback/Questions

Err codemadness.org 70 i 21460 Err codemadness.org 70 i 21461 Err codemadness.org 70 i 21466 Err codemadness.org 70 i 21467
Err codemadness.org 70 i 21468 Err codemadness.org 70 i 21469
    Err codemadness.org 70 i 21470
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 21471
Err codemadness.org 70 i 21472 Err codemadness.org 70 i 21473
Err codemadness.org 70 i 21474 Err codemadness.org 70 i 21475 ]]> Err codemadness.org 70 i 21479
Err codemadness.org 70 i 21480 https://fireside.fm/player/v2/FYhhasNR+qGi6lEDM Err codemadness.org 70 i 21481 Err codemadness.org 70 i 21482 ]]> Err codemadness.org 70 i 21483 Err codemadness.org 70 i 21484
Err codemadness.org 70 i 21485 Err codemadness.org 70 i 21486 304: Prospering with Vulkan Err codemadness.org 70 i 21487 https://www.bsdnow.tv/304 Err codemadness.org 70 i 21488 6da25674-3858-4ebc-b4a5-257e1eefcbf4 Err codemadness.org 70 i 21489 Thu, 27 Jun 2019 00:45:00 -0700 Err codemadness.org 70 i 21490 Allan Jude Err codemadness.org 70 i 21491 Err codemadness.org 70 i 21492 full Err codemadness.org 70 i 21493 Allan Jude Err codemadness.org 70 i 21494 DragonflyBSD 5.6 is out, OpenBSD Vulkan Support, bad utmp implementations in glibc and FreeBSD, OpenSSH protects itself against Side Channel attacks, ZFS vs OpenZFS, and more. Err codemadness.org 70 i 21495 1:03:33 Err codemadness.org 70 i 21496 no Err codemadness.org 70 i 21497 Err codemadness.org 70 i 21498 DragonflyBSD 5.6 is out, OpenBSD Vulkan Support, bad utmp implementations in glibc and FreeBSD, OpenSSH protects itself against Side Channel attacks, ZFS vs OpenZFS, and more. Err codemadness.org 70 i 21499 Headlines Err codemadness.org 70 i 21500 DragonflyBSD 5.6 is out (https://www.dragonflybsd.org/release56) Err codemadness.org 70 i 21501 Version 5.6.0 released 17 June 2019 Err codemadness.org 70 i 21502 Version 5.6.1 released 19 June 2019 (https://www.dragonflydigest.com/2019/06/19/23091.html) Err codemadness.org 70 i 21503 Big-ticket items Err codemadness.org 70 i 21504 Improved VM Err codemadness.org 70 i 21505 Informal test results showing the changes from 5.4 to 5.6 are available. Err codemadness.org 70 i 21506 Reduce stalls in the kernel vmpagealloc() code (vmpagelist_find()). Err codemadness.org 70 i 21507 Improve page allocation algorithm to avoid re-iterating the same queues as the search is widened. Err codemadness.org 70 i 21508 Add a vmpagehash*() API that allows the kernel to do heuristical lockless lookups of VM pages. Err codemadness.org 70 i 21509 Change vmhold() and vmunhold() semantics to not require any spin-locks. Err codemadness.org 70 i 21510 Change vmpagewakeup() to not require any spin-locks. Err codemadness.org 70 i 21511 Change wiring vm_page's no longer manipulates the queue the page is on, saving a lot of overhead. Instead, the page will be removed from its queue only if the pageout demon encounters it. This allows pages to enter and leave the buffer cache quickly. Err codemadness.org 70 i 21512 Refactor the handling of fictitious pages. Err codemadness.org 70 i 21513 Remove m->md.pvlist entirely. VM pages in mappings no longer allocate pventry's, saving an enormous amount of memory when multiple processes utilize large shared memory maps (e.g. postgres database cache). Err codemadness.org 70 i 21514 Refactor vmobject shadowing, disconnecting the backing linkages from the vmobject itself and instead organizing the linkages in a new structure called vmmapbacking which hangs off the vmmapentry. Err codemadness.org 70 i 21515 pmap operations now iterate vmmapbacking structures (rather than spin-locked page lists based on the vmpage and pventry's), and will test/match operations against the PTE found in the pmap at the requisite location. This doubles VM fault performance on shared pages and reduces the locking overhead for fault and pmap operations. Err codemadness.org 70 i 21516 Simplify the collapse code, removing most of the original code and replacing it with simpler per-vmmapentry optimizations to limit the shadow depth. Err codemadness.org 70 i 21517 DRM Err codemadness.org 70 i 21518 Major updates to the radeon and ttm (amd support code) drivers. We have not quite gotten the AMD support up to the more modern cards or Ryzen APUs yet, however. Err codemadness.org 70 i 21519 Improve UEFI framebuffer support. Err codemadness.org 70 i 21520 A major deadlock has been fixed in the radeon/ttm code. Err codemadness.org 70 i 21521 Refactor the startup delay designed to avoid conflicts between the i915 driver initialization and X startup. Err codemadness.org 70 i 21522 Add DRMIOCTLGET_PCIINFO to improve mesa/libdrm support. Err codemadness.org 70 i 21523 Fix excessive wired memory build-ups. Err codemadness.org 70 i 21524 Fix Linux/DragonFly PAGE_MASK confusion in the DRM code. Err codemadness.org 70 i 21525 Fix idr_*() API bugs. Err codemadness.org 70 i 21526 HAMMER2 Err codemadness.org 70 i 21527 The filesystem sync code has been rewritten to significantly improve performance. Err codemadness.org 70 i 21528 Sequential write performance also improved. Err codemadness.org 70 i 21529 Add simple dependency tracking to prevent directory/file splits during create/rename/remove operations, for better consistency after a crash. Err codemadness.org 70 i 21530 Refactor the snapshot code to reduce flush latency and to ensure a consistent snapshot. Err codemadness.org 70 i 21531 Attempt to pipeline the flush code against the frontend, improving flush vs frontend write concurrency. Err codemadness.org 70 i 21532 Improve umount operation. Err codemadness.org 70 i 21533 Fix an allocator race that could lead to corruption. Err codemadness.org 70 i 21534 Numerous other bugs fixed. Err codemadness.org 70 i 21535 Improve verbosity of CHECK (CRC error) console messages. Err codemadness.org 70 i 21536 OpenBSD Vulkan Support (https://www.phoronix.com/scan.php?page=news_item&px=OpenBSD-Vulkan-Support) Err codemadness.org 70 i 21537 Somewhat surprisingly, OpenBSD has added the Vulkan library and ICD loader support as their newest port. Err codemadness.org 70 i 21538 This new graphics/vulkan-loader port provides the generic Vulkan library and ICD support that is the common code for Vulkan implementations on the system. This doesn't enable any Vulkan hardware drivers or provide something new not available elsewhere, but is rare seeing Vulkan work among the BSDs. There is also in ports the related components like the SPIR-V headers and tools, glsllang, and the Vulkan tools and validation layers. Err codemadness.org 70 i 21539 This is of limited usefulness, at least for the time being considering OpenBSD like the other BSDs lag behind in their DRM kernel driver support that is ported over from the mainline Linux kernel tree but generally years behind the kernel upstream. Particularly with Vulkan, newer kernel releases are needed for some Vulkan features as well as achieving decent performance. The Vulkan drivers of relevance are the open-source Intel ANV Vulkan driver and Radeon RADV drivers, both of which are in Mesa though we haven't seen any testing results to know how well they would work if at all currently on OpenBSD, but they're at least in Mesa and obviously open-source. Err codemadness.org 70 i 21540 + A note: The BSDs are no longer that far behind. Err codemadness.org 70 i 21541 + FreeBSD 12.0 uses DRM from Linux 4.16 (April 2018), and the drm-devel port is based on Linux 5.0 (March 2019) Err codemadness.org 70 i 21542 + OpenBSD -current as of April 2019 uses DRM from Linux 4.19.34 Err codemadness.org 70 i 21543 News Roundup Err codemadness.org 70 i 21544 Bad utmp implementations in glibc and freebsd (https://davmac.wordpress.com/2019/05/04/bad-utmp-implementations-in-glibc-and-freebsd/) Err codemadness.org 70 i 21545 I recently released another version – 0.5.0 – of Dinit, the service manager / init system. There were a number of minor improvements, including to the build system (just running “make” or “gmake” should be enough on any of the systems which have a pre-defined configuration, no need to edit mconfig by hand), but the main features of the release were S6-compatible readiness notification, and support for updating the utmp database. Err codemadness.org 70 i 21546 In other words, utmp is a record of who is currently logged in to the system (another file, “wtmp”, records all logins and logouts, as well as, potentially, certain system events such as reboots and time updates). This is a hint at the main motivation for having utmp support in Dinit – I wanted the “who” command to correctly report current logins (and I wanted boot time to be correctly recorded in the wtmp file). Err codemadness.org 70 i 21547 I wondered: If the files consist of fixed-sized records, and are readable by regular users, how is consistency maintained? That is – how can a process ensure that, when it updates the database, it doesn’t conflict with another process also attempting to update the database at the same time? Similarly, how can a process reading an entry from the database be sure that it receives a consistent, full record and not a record which has been partially updated? (after all, POSIX allows that a write(2) call can return without having written all the requested bytes, and I’m not aware of Linux or any of the *BSDs documenting that this cannot happen for regular files). Clearly, some kind of locking is needed; a process that wants to write to or read from the database locks it first, performs its operation, and then unlocks the database. Once again, this happens under the hood, in the implementation of the getutent/pututline functions or their equivalents. Err codemadness.org 70 i 21548 Then I wondered: if a user process is able to lock the utmp file, and this prevents updates, what’s to stop a user process from manually acquiring and then holding such a lock for a long – even practically infinite – duration? This would prevent the database from being updated, and would perhaps even prevent logins/logouts from completing. Unfortunately, the answer is – nothing; and yes, it is possible on different systems to prevent the database from being correctly updated or even to prevent all other users – including root – from logging in to the system. Err codemadness.org 70 i 21549 + A good find Err codemadness.org 70 i 21550 + On FreeBSD, even though write(2) can be asynchronous, once the write syscall returns, the data is in the buffer cache (or ARC), and any future read(2) will see that new data even if it has not yet been written to disk. Err codemadness.org 70 i 21551 OpenSSH gets an update to protect against Side Channel attacks (https://securityboulevard.com/2019/06/openssh-code-gets-an-update-to-protect-against-side-channel-attacks/) Err codemadness.org 70 i 21552 Last week, Damien Miller, a Google security researcher, and one of the popular OpenSSH and OpenBSD developers announced an update to the existing OpenSSH code that can help protect against the side-channel attacks that leak sensitive data from computer’s memory. This protection, Miller says, will protect the private keys residing in the RAM against Spectre, Meltdown, Rowhammer, and the latest RAMBleed attack. Err codemadness.org 70 i 21553 SSH private keys can be used by malicious threat actors to connect to remote servers without the need of a password. According to CSO, “The approach used by OpenSSH could be copied by other software projects to protect their own keys and secrets in memory”. Err codemadness.org 70 i 21554 However, if the attacker is successful in extracting the data from a computer or server’s RAM, they will only obtain an encrypted version of an SSH private key, rather than the cleartext version. Err codemadness.org 70 i 21555 In an email to OpenBSD, Miller writes, “this change encrypts private keys when they are not in use with a symmetric key that is derived from a relatively large ‘prekey’ consisting of random data (currently 16KB).” Err codemadness.org 70 i 21556 ZFS vs OpenZFS (https://www.ixsystems.com/blog/zfs-vs-openzfs/) Err codemadness.org 70 i 21557 You’ve probably heard us say a mix of “ZFS” and “OpenZFS” and an explanation is long-overdue. Err codemadness.org 70 i 21558 From its inception, “ZFS” has referred to the “Zettabyte File System” developed at Sun Microsystems and published under the CDDL Open Source license in 2005 as part of the OpenSolaris operating system. ZFS was revolutionary for completely decoupling the file system from specialized storage hardware and even a specific computer platform. The portable nature and advanced features of ZFS led FreeBSD, Linux, and even Apple developers to start porting ZFS to their operating systems and by 2008, FreeBSD shipped with ZFS in the 7.0 release. For the first time, ZFS empowered users of any budget with enterprise-class scalability and data integrity and management features like checksumming, compression and snapshotting, and those features remain unrivaled at any price to this day. On any ZFS platform, administrators use the zpool and zfs utilities to configure and manage their storage devices and file systems respectively. Both commands employ a user-friendly syntax such as‘zfs create mypool/mydataset’ and I welcome you to watch the appropriately-titled webinar “Why we love ZFS & you should too” or try a completely-graphical ZFS experience with FreeNAS. Err codemadness.org 70 i 21559 Oracle has steadily continued to develop its own proprietary branch of ZFS and Matt Ahrens points out that over 50% of the original OpenSolaris ZFS code has been replaced in OpenZFS with community contributions. This means that there are, sadly, two politically and technologically-incompatible branches of “ZFS” but fortunately, OpenZFS is orders of magnitude more popular thanks to its open nature. The two projects should be referred to as “Oracle ZFS” and “OpenZFS” to distinguish them as development efforts, but the user still types the ‘zfs’ command, which on FreeBSD relies on the ‘zfs.ko’ kernel module. My impression is that the terms of the CDDL license under which the OpenZFS branch of ZFS is published protects its users from any patent and trademark risks. Hopefully, this all helps you distinguish the OpenZFS project from the ZFS technology. Err codemadness.org 70 i 21560 + There was further discussion of how the ZFSOnLinux repo will become the OpenZFS repo in the future once it also contains the bits to build on FreeBSD as well during the June 25th ZFS Leadership Meeting. The videos for all of the meetings are available here (https://www.youtube.com/channel/UC0IK6Y4Go2KtRueHDiQcxow) Err codemadness.org 70 i 21561 Beastie Bits Err codemadness.org 70 i 21562 How to safely and portably close a file descriptor in a multithreaded process without running into problems with EINTR (https://twitter.com/cperciva/status/1141852451756105729?s=03) Err codemadness.org 70 i 21563 KnoxBug Meetup June 27th at 6pm (http://knoxbug.org/2019-06-27) Err codemadness.org 70 i 21564 BSD Pizza Night, June 27th at 7pm, Flying Pie Pizzeria, 3 Monroe Pkwy, Ste S, Lake Oswego, OR (https://www.flying-pie.com/locations/lake-oswego/) Err codemadness.org 70 i 21565 Difference between $x and ${x} (https://moopost.blogspot.com/2019/06/difference-between-x-and-x.html) Err codemadness.org 70 i 21566 Beware of Software Engineering Media Sites (https://www.nemil.com/on-software-engineering/beware-engineering-media.html) Err codemadness.org 70 i 21567 How Verizon and a BGP optimizer knocked large parts of the internet offline today (https://blog.cloudflare.com/how-verizon-and-a-bgp-optimizer-knocked-large-parts-of-the-internet-offline-today/) Err codemadness.org 70 i 21568 DragonflyBSD - MDS mitigation added a while ago (http://lists.dragonflybsd.org/pipermail/commits/2019-May/718899.html) Err codemadness.org 70 i 21569 Reminder: Register for EuroBSDcon 2019 in Lillehammer, Norway (https://eurobsdcon.org) Err codemadness.org 70 i 21570 Feedback/Questions Err codemadness.org 70 i 21571 Dave - CheriBSD (http://dpaste.com/38233JC) Err codemadness.org 70 i 21572 Neb - Hello from Norway (http://dpaste.com/0B8XKXT#wrap) Err codemadness.org 70 i 21573 Lars - Ansible tutorial? (http://dpaste.com/3N85SHR) Err codemadness.org 70 i 21574 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 21575 *** Err codemadness.org 70 i 21576 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 21577 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0304.mp4" type="video/mp4"> Err codemadness.org 70 i 21578 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 21579 </video> Err codemadness.org 70 i 21580 Err codemadness.org 70 i 21581 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, vm, drm, hammer2, vulkan, openssh, zfs, openzfs, Err codemadness.org 70 i 21582 Err codemadness.org 70 i 21583 DragonflyBSD 5.6 is out, OpenBSD Vulkan Support, bad utmp implementations in glibc and FreeBSD, OpenSSH protects itself against Side Channel attacks, ZFS vs OpenZFS, and more.

Err codemadness.org 70 i 21584 Err codemadness.org 70 i 21585

Headlines

Err codemadness.org 70 i 21586 Err codemadness.org 70 i 21587

DragonflyBSD 5.6 is out

Err codemadness.org 70 i 21588 Err codemadness.org 70 i 21589
    Err codemadness.org 70 i 21590
  • Version 5.6.0 released 17 June 2019
  • Err codemadness.org 70 i 21591
  • Version 5.6.1 released 19 June 2019

  • Err codemadness.org 70 i 21592
  • Big-ticket items

  • Err codemadness.org 70 i 21593
  • Improved VM

    Err codemadness.org 70 i 21594 Err codemadness.org 70 i 21595
      Err codemadness.org 70 i 21596
    • Informal test results showing the changes from 5.4 to 5.6 are available.
    • Err codemadness.org 70 i 21597
    • Reduce stalls in the kernel vm_page_alloc() code (vm_page_list_find()).
    • Err codemadness.org 70 i 21598
    • Improve page allocation algorithm to avoid re-iterating the same queues as the search is widened.
    • Err codemadness.org 70 i 21599
    • Add a vm_page_hash*() API that allows the kernel to do heuristical lockless lookups of VM pages.
    • Err codemadness.org 70 i 21600
    • Change vm_hold() and vm_unhold() semantics to not require any spin-locks.
    • Err codemadness.org 70 i 21601
    • Change vm_page_wakeup() to not require any spin-locks.
    • Err codemadness.org 70 i 21602
    • Change wiring vm_page's no longer manipulates the queue the page is on, saving a lot of overhead. Instead, the page will be removed from its queue only if the pageout demon encounters it. This allows pages to enter and leave the buffer cache quickly.
    • Err codemadness.org 70 i 21603
    • Refactor the handling of fictitious pages.
    • Err codemadness.org 70 i 21604
    • Remove m->md.pv_list entirely. VM pages in mappings no longer allocate pv_entry's, saving an enormous amount of memory when multiple processes utilize large shared memory maps (e.g. postgres database cache).
    • Err codemadness.org 70 i 21605
    • Refactor vm_object shadowing, disconnecting the backing linkages from the vm_object itself and instead organizing the linkages in a new structure called vm_map_backing which hangs off the vm_map_entry.
    • Err codemadness.org 70 i 21606
    • pmap operations now iterate vm_map_backing structures (rather than spin-locked page lists based on the vm_page and pv_entry's), and will test/match operations against the PTE found in the pmap at the requisite location. This doubles VM fault performance on shared pages and reduces the locking overhead for fault and pmap operations.
    • Err codemadness.org 70 i 21607
    • Simplify the collapse code, removing most of the original code and replacing it with simpler per-vm_map_entry optimizations to limit the shadow depth.
    • Err codemadness.org 70 i 21608
  • Err codemadness.org 70 i 21609
  • DRM

    Err codemadness.org 70 i 21610 Err codemadness.org 70 i 21611
      Err codemadness.org 70 i 21612
    • Major updates to the radeon and ttm (amd support code) drivers. We have not quite gotten the AMD support up to the more modern cards or Ryzen APUs yet, however.
    • Err codemadness.org 70 i 21613
    • Improve UEFI framebuffer support.
    • Err codemadness.org 70 i 21614
    • A major deadlock has been fixed in the radeon/ttm code.
    • Err codemadness.org 70 i 21615
    • Refactor the startup delay designed to avoid conflicts between the i915 driver initialization and X startup.
    • Err codemadness.org 70 i 21616
    • Add DRM_IOCTL_GET_PCIINFO to improve mesa/libdrm support.
    • Err codemadness.org 70 i 21617
    • Fix excessive wired memory build-ups.
    • Err codemadness.org 70 i 21618
    • Fix Linux/DragonFly PAGE_MASK confusion in the DRM code.
    • Err codemadness.org 70 i 21619
    • Fix idr_*() API bugs.
    • Err codemadness.org 70 i 21620
  • Err codemadness.org 70 i 21621
  • HAMMER2

    Err codemadness.org 70 i 21622 Err codemadness.org 70 i 21623
      Err codemadness.org 70 i 21624
    • The filesystem sync code has been rewritten to significantly improve performance.
    • Err codemadness.org 70 i 21625
    • Sequential write performance also improved.
    • Err codemadness.org 70 i 21626
    • Add simple dependency tracking to prevent directory/file splits during create/rename/remove operations, for better consistency after a crash.
    • Err codemadness.org 70 i 21627
    • Refactor the snapshot code to reduce flush latency and to ensure a consistent snapshot.
    • Err codemadness.org 70 i 21628
    • Attempt to pipeline the flush code against the frontend, improving flush vs frontend write concurrency.
    • Err codemadness.org 70 i 21629
    • Improve umount operation.
    • Err codemadness.org 70 i 21630
    • Fix an allocator race that could lead to corruption.
    • Err codemadness.org 70 i 21631
    • Numerous other bugs fixed.
    • Err codemadness.org 70 i 21632
    • Improve verbosity of CHECK (CRC error) console messages.
    • Err codemadness.org 70 i 21633
  • Err codemadness.org 70 i 21634
Err codemadness.org 70 i 21635 Err codemadness.org 70 i 21636
Err codemadness.org 70 i 21637 Err codemadness.org 70 i 21638

OpenBSD Vulkan Support

Err codemadness.org 70 i 21639 Err codemadness.org 70 i 21640
Err codemadness.org 70 i 21641

Somewhat surprisingly, OpenBSD has added the Vulkan library and ICD loader support as their newest port.
Err codemadness.org 70 i 21642 This new graphics/vulkan-loader port provides the generic Vulkan library and ICD support that is the common code for Vulkan implementations on the system. This doesn't enable any Vulkan hardware drivers or provide something new not available elsewhere, but is rare seeing Vulkan work among the BSDs. There is also in ports the related components like the SPIR-V headers and tools, glsllang, and the Vulkan tools and validation layers.
Err codemadness.org 70 i 21643 This is of limited usefulness, at least for the time being considering OpenBSD like the other BSDs lag behind in their DRM kernel driver support that is ported over from the mainline Linux kernel tree but generally years behind the kernel upstream. Particularly with Vulkan, newer kernel releases are needed for some Vulkan features as well as achieving decent performance. The Vulkan drivers of relevance are the open-source Intel ANV Vulkan driver and Radeon RADV drivers, both of which are in Mesa though we haven't seen any testing results to know how well they would work if at all currently on OpenBSD, but they're at least in Mesa and obviously open-source.

Err codemadness.org 70 i 21644 Err codemadness.org 70 i 21645
    Err codemadness.org 70 i 21646
  • A note: The BSDs are no longer that far behind.
  • Err codemadness.org 70 i 21647
  • FreeBSD 12.0 uses DRM from Linux 4.16 (April 2018), and the drm-devel port is based on Linux 5.0 (March 2019)
  • Err codemadness.org 70 i 21648
  • OpenBSD -current as of April 2019 uses DRM from Linux 4.19.34 Err codemadness.org 70 i 21649 ***
  • Err codemadness.org 70 i 21650
Err codemadness.org 70 i 21651
Err codemadness.org 70 i 21652 Err codemadness.org 70 i 21653

News Roundup

Err codemadness.org 70 i 21654 Err codemadness.org 70 i 21655

Bad utmp implementations in glibc and freebsd

Err codemadness.org 70 i 21656 Err codemadness.org 70 i 21657
Err codemadness.org 70 i 21658

I recently released another version – 0.5.0 – of Dinit, the service manager / init system. There were a number of minor improvements, including to the build system (just running “make” or “gmake” should be enough on any of the systems which have a pre-defined configuration, no need to edit mconfig by hand), but the main features of the release were S6-compatible readiness notification, and support for updating the utmp database.
Err codemadness.org 70 i 21659 In other words, utmp is a record of who is currently logged in to the system (another file, “wtmp”, records all logins and logouts, as well as, potentially, certain system events such as reboots and time updates). This is a hint at the main motivation for having utmp support in Dinit – I wanted the “who” command to correctly report current logins (and I wanted boot time to be correctly recorded in the wtmp file).
Err codemadness.org 70 i 21660 I wondered: If the files consist of fixed-sized records, and are readable by regular users, how is consistency maintained? That is – how can a process ensure that, when it updates the database, it doesn’t conflict with another process also attempting to update the database at the same time? Similarly, how can a process reading an entry from the database be sure that it receives a consistent, full record and not a record which has been partially updated? (after all, POSIX allows that a write(2) call can return without having written all the requested bytes, and I’m not aware of Linux or any of the *BSDs documenting that this cannot happen for regular files). Clearly, some kind of locking is needed; a process that wants to write to or read from the database locks it first, performs its operation, and then unlocks the database. Once again, this happens under the hood, in the implementation of the getutent/pututline functions or their equivalents.
Err codemadness.org 70 i 21661 Then I wondered: if a user process is able to lock the utmp file, and this prevents updates, what’s to stop a user process from manually acquiring and then holding such a lock for a long – even practically infinite – duration? This would prevent the database from being updated, and would perhaps even prevent logins/logouts from completing. Unfortunately, the answer is – nothing; and yes, it is possible on different systems to prevent the database from being correctly updated or even to prevent all other users – including root – from logging in to the system.

Err codemadness.org 70 i 21662 Err codemadness.org 70 i 21663
    Err codemadness.org 70 i 21664
  • A good find
  • Err codemadness.org 70 i 21665
  • On FreeBSD, even though write(2) can be asynchronous, once the write syscall returns, the data is in the buffer cache (or ARC), and any future read(2) will see that new data even if it has not yet been written to disk. Err codemadness.org 70 i 21666 ***
  • Err codemadness.org 70 i 21667
Err codemadness.org 70 i 21668
Err codemadness.org 70 i 21669 Err codemadness.org 70 i 21670

OpenSSH gets an update to protect against Side Channel attacks

Err codemadness.org 70 i 21671 Err codemadness.org 70 i 21672
Err codemadness.org 70 i 21673

Last week, Damien Miller, a Google security researcher, and one of the popular OpenSSH and OpenBSD developers announced an update to the existing OpenSSH code that can help protect against the side-channel attacks that leak sensitive data from computer’s memory. This protection, Miller says, will protect the private keys residing in the RAM against Spectre, Meltdown, Rowhammer, and the latest RAMBleed attack.
Err codemadness.org 70 i 21674 SSH private keys can be used by malicious threat actors to connect to remote servers without the need of a password. According to CSO, “The approach used by OpenSSH could be copied by other software projects to protect their own keys and secrets in memory”.
Err codemadness.org 70 i 21675 However, if the attacker is successful in extracting the data from a computer or server’s RAM, they will only obtain an encrypted version of an SSH private key, rather than the cleartext version.
Err codemadness.org 70 i 21676 In an email to OpenBSD, Miller writes, “this change encrypts private keys when they are not in use with a symmetric key that is derived from a relatively large ‘prekey’ consisting of random data (currently 16KB).”

Err codemadness.org 70 i 21677
Err codemadness.org 70 i 21678 Err codemadness.org 70 i 21679
Err codemadness.org 70 i 21680 Err codemadness.org 70 i 21681

ZFS vs OpenZFS

Err codemadness.org 70 i 21682 Err codemadness.org 70 i 21683
Err codemadness.org 70 i 21684

You’ve probably heard us say a mix of “ZFS” and “OpenZFS” and an explanation is long-overdue.
Err codemadness.org 70 i 21685 From its inception, “ZFS” has referred to the “Zettabyte File System” developed at Sun Microsystems and published under the CDDL Open Source license in 2005 as part of the OpenSolaris operating system. ZFS was revolutionary for completely decoupling the file system from specialized storage hardware and even a specific computer platform. The portable nature and advanced features of ZFS led FreeBSD, Linux, and even Apple developers to start porting ZFS to their operating systems and by 2008, FreeBSD shipped with ZFS in the 7.0 release. For the first time, ZFS empowered users of any budget with enterprise-class scalability and data integrity and management features like checksumming, compression and snapshotting, and those features remain unrivaled at any price to this day. On any ZFS platform, administrators use the zpool and zfs utilities to configure and manage their storage devices and file systems respectively. Both commands employ a user-friendly syntax such as‘zfs create mypool/mydataset’ and I welcome you to watch the appropriately-titled webinar “Why we love ZFS & you should too” or try a completely-graphical ZFS experience with FreeNAS.
Err codemadness.org 70 i 21686 Oracle has steadily continued to develop its own proprietary branch of ZFS and Matt Ahrens points out that over 50% of the original OpenSolaris ZFS code has been replaced in OpenZFS with community contributions. This means that there are, sadly, two politically and technologically-incompatible branches of “ZFS” but fortunately, OpenZFS is orders of magnitude more popular thanks to its open nature. The two projects should be referred to as “Oracle ZFS” and “OpenZFS” to distinguish them as development efforts, but the user still types the ‘zfs’ command, which on FreeBSD relies on the ‘zfs.ko’ kernel module. My impression is that the terms of the CDDL license under which the OpenZFS branch of ZFS is published protects its users from any patent and trademark risks. Hopefully, this all helps you distinguish the OpenZFS project from the ZFS technology.

Err codemadness.org 70 i 21687 Err codemadness.org 70 i 21688
    Err codemadness.org 70 i 21689
  • There was further discussion of how the ZFSOnLinux repo will become the OpenZFS repo in the future once it also contains the bits to build on FreeBSD as well during the June 25th ZFS Leadership Meeting. The videos for all of the meetings are available here Err codemadness.org 70 i 21690 ***
  • Err codemadness.org 70 i 21691
Err codemadness.org 70 i 21692
Err codemadness.org 70 i 21693 Err codemadness.org 70 i 21694

Beastie Bits

Err codemadness.org 70 i 21695 Err codemadness.org 70 i 21696 Err codemadness.org 70 i 21706 Err codemadness.org 70 i 21707
Err codemadness.org 70 i 21708 Err codemadness.org 70 i 21709

Feedback/Questions

Err codemadness.org 70 i 21710 Err codemadness.org 70 i 21711 Err codemadness.org 70 i 21716 Err codemadness.org 70 i 21717
Err codemadness.org 70 i 21718 Err codemadness.org 70 i 21719
    Err codemadness.org 70 i 21720
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 21721 ***
  • Err codemadness.org 70 i 21722
Err codemadness.org 70 i 21723 Err codemadness.org 70 i 21724 ]]> Err codemadness.org 70 i 21728
Err codemadness.org 70 i 21729 Err codemadness.org 70 i 21730 DragonflyBSD 5.6 is out, OpenBSD Vulkan Support, bad utmp implementations in glibc and FreeBSD, OpenSSH protects itself against Side Channel attacks, ZFS vs OpenZFS, and more.

Err codemadness.org 70 i 21731 Err codemadness.org 70 i 21732

Headlines

Err codemadness.org 70 i 21733 Err codemadness.org 70 i 21734

DragonflyBSD 5.6 is out

Err codemadness.org 70 i 21735 Err codemadness.org 70 i 21736
    Err codemadness.org 70 i 21737
  • Version 5.6.0 released 17 June 2019
  • Err codemadness.org 70 i 21738
  • Version 5.6.1 released 19 June 2019

  • Err codemadness.org 70 i 21739
  • Big-ticket items

  • Err codemadness.org 70 i 21740
  • Improved VM

    Err codemadness.org 70 i 21741 Err codemadness.org 70 i 21742
      Err codemadness.org 70 i 21743
    • Informal test results showing the changes from 5.4 to 5.6 are available.
    • Err codemadness.org 70 i 21744
    • Reduce stalls in the kernel vm_page_alloc() code (vm_page_list_find()).
    • Err codemadness.org 70 i 21745
    • Improve page allocation algorithm to avoid re-iterating the same queues as the search is widened.
    • Err codemadness.org 70 i 21746
    • Add a vm_page_hash*() API that allows the kernel to do heuristical lockless lookups of VM pages.
    • Err codemadness.org 70 i 21747
    • Change vm_hold() and vm_unhold() semantics to not require any spin-locks.
    • Err codemadness.org 70 i 21748
    • Change vm_page_wakeup() to not require any spin-locks.
    • Err codemadness.org 70 i 21749
    • Change wiring vm_page's no longer manipulates the queue the page is on, saving a lot of overhead. Instead, the page will be removed from its queue only if the pageout demon encounters it. This allows pages to enter and leave the buffer cache quickly.
    • Err codemadness.org 70 i 21750
    • Refactor the handling of fictitious pages.
    • Err codemadness.org 70 i 21751
    • Remove m->md.pv_list entirely. VM pages in mappings no longer allocate pv_entry's, saving an enormous amount of memory when multiple processes utilize large shared memory maps (e.g. postgres database cache).
    • Err codemadness.org 70 i 21752
    • Refactor vm_object shadowing, disconnecting the backing linkages from the vm_object itself and instead organizing the linkages in a new structure called vm_map_backing which hangs off the vm_map_entry.
    • Err codemadness.org 70 i 21753
    • pmap operations now iterate vm_map_backing structures (rather than spin-locked page lists based on the vm_page and pv_entry's), and will test/match operations against the PTE found in the pmap at the requisite location. This doubles VM fault performance on shared pages and reduces the locking overhead for fault and pmap operations.
    • Err codemadness.org 70 i 21754
    • Simplify the collapse code, removing most of the original code and replacing it with simpler per-vm_map_entry optimizations to limit the shadow depth.
    • Err codemadness.org 70 i 21755
  • Err codemadness.org 70 i 21756
  • DRM

    Err codemadness.org 70 i 21757 Err codemadness.org 70 i 21758
      Err codemadness.org 70 i 21759
    • Major updates to the radeon and ttm (amd support code) drivers. We have not quite gotten the AMD support up to the more modern cards or Ryzen APUs yet, however.
    • Err codemadness.org 70 i 21760
    • Improve UEFI framebuffer support.
    • Err codemadness.org 70 i 21761
    • A major deadlock has been fixed in the radeon/ttm code.
    • Err codemadness.org 70 i 21762
    • Refactor the startup delay designed to avoid conflicts between the i915 driver initialization and X startup.
    • Err codemadness.org 70 i 21763
    • Add DRM_IOCTL_GET_PCIINFO to improve mesa/libdrm support.
    • Err codemadness.org 70 i 21764
    • Fix excessive wired memory build-ups.
    • Err codemadness.org 70 i 21765
    • Fix Linux/DragonFly PAGE_MASK confusion in the DRM code.
    • Err codemadness.org 70 i 21766
    • Fix idr_*() API bugs.
    • Err codemadness.org 70 i 21767
  • Err codemadness.org 70 i 21768
  • HAMMER2

    Err codemadness.org 70 i 21769 Err codemadness.org 70 i 21770
      Err codemadness.org 70 i 21771
    • The filesystem sync code has been rewritten to significantly improve performance.
    • Err codemadness.org 70 i 21772
    • Sequential write performance also improved.
    • Err codemadness.org 70 i 21773
    • Add simple dependency tracking to prevent directory/file splits during create/rename/remove operations, for better consistency after a crash.
    • Err codemadness.org 70 i 21774
    • Refactor the snapshot code to reduce flush latency and to ensure a consistent snapshot.
    • Err codemadness.org 70 i 21775
    • Attempt to pipeline the flush code against the frontend, improving flush vs frontend write concurrency.
    • Err codemadness.org 70 i 21776
    • Improve umount operation.
    • Err codemadness.org 70 i 21777
    • Fix an allocator race that could lead to corruption.
    • Err codemadness.org 70 i 21778
    • Numerous other bugs fixed.
    • Err codemadness.org 70 i 21779
    • Improve verbosity of CHECK (CRC error) console messages.
    • Err codemadness.org 70 i 21780
  • Err codemadness.org 70 i 21781
Err codemadness.org 70 i 21782 Err codemadness.org 70 i 21783
Err codemadness.org 70 i 21784 Err codemadness.org 70 i 21785

OpenBSD Vulkan Support

Err codemadness.org 70 i 21786 Err codemadness.org 70 i 21787
Err codemadness.org 70 i 21788

Somewhat surprisingly, OpenBSD has added the Vulkan library and ICD loader support as their newest port.
Err codemadness.org 70 i 21789 This new graphics/vulkan-loader port provides the generic Vulkan library and ICD support that is the common code for Vulkan implementations on the system. This doesn't enable any Vulkan hardware drivers or provide something new not available elsewhere, but is rare seeing Vulkan work among the BSDs. There is also in ports the related components like the SPIR-V headers and tools, glsllang, and the Vulkan tools and validation layers.
Err codemadness.org 70 i 21790 This is of limited usefulness, at least for the time being considering OpenBSD like the other BSDs lag behind in their DRM kernel driver support that is ported over from the mainline Linux kernel tree but generally years behind the kernel upstream. Particularly with Vulkan, newer kernel releases are needed for some Vulkan features as well as achieving decent performance. The Vulkan drivers of relevance are the open-source Intel ANV Vulkan driver and Radeon RADV drivers, both of which are in Mesa though we haven't seen any testing results to know how well they would work if at all currently on OpenBSD, but they're at least in Mesa and obviously open-source.

Err codemadness.org 70 i 21791 Err codemadness.org 70 i 21792
    Err codemadness.org 70 i 21793
  • A note: The BSDs are no longer that far behind.
  • Err codemadness.org 70 i 21794
  • FreeBSD 12.0 uses DRM from Linux 4.16 (April 2018), and the drm-devel port is based on Linux 5.0 (March 2019)
  • Err codemadness.org 70 i 21795
  • OpenBSD -current as of April 2019 uses DRM from Linux 4.19.34 Err codemadness.org 70 i 21796 ***
  • Err codemadness.org 70 i 21797
Err codemadness.org 70 i 21798
Err codemadness.org 70 i 21799 Err codemadness.org 70 i 21800

News Roundup

Err codemadness.org 70 i 21801 Err codemadness.org 70 i 21802

Bad utmp implementations in glibc and freebsd

Err codemadness.org 70 i 21803 Err codemadness.org 70 i 21804
Err codemadness.org 70 i 21805

I recently released another version – 0.5.0 – of Dinit, the service manager / init system. There were a number of minor improvements, including to the build system (just running “make” or “gmake” should be enough on any of the systems which have a pre-defined configuration, no need to edit mconfig by hand), but the main features of the release were S6-compatible readiness notification, and support for updating the utmp database.
Err codemadness.org 70 i 21806 In other words, utmp is a record of who is currently logged in to the system (another file, “wtmp”, records all logins and logouts, as well as, potentially, certain system events such as reboots and time updates). This is a hint at the main motivation for having utmp support in Dinit – I wanted the “who” command to correctly report current logins (and I wanted boot time to be correctly recorded in the wtmp file).
Err codemadness.org 70 i 21807 I wondered: If the files consist of fixed-sized records, and are readable by regular users, how is consistency maintained? That is – how can a process ensure that, when it updates the database, it doesn’t conflict with another process also attempting to update the database at the same time? Similarly, how can a process reading an entry from the database be sure that it receives a consistent, full record and not a record which has been partially updated? (after all, POSIX allows that a write(2) call can return without having written all the requested bytes, and I’m not aware of Linux or any of the *BSDs documenting that this cannot happen for regular files). Clearly, some kind of locking is needed; a process that wants to write to or read from the database locks it first, performs its operation, and then unlocks the database. Once again, this happens under the hood, in the implementation of the getutent/pututline functions or their equivalents.
Err codemadness.org 70 i 21808 Then I wondered: if a user process is able to lock the utmp file, and this prevents updates, what’s to stop a user process from manually acquiring and then holding such a lock for a long – even practically infinite – duration? This would prevent the database from being updated, and would perhaps even prevent logins/logouts from completing. Unfortunately, the answer is – nothing; and yes, it is possible on different systems to prevent the database from being correctly updated or even to prevent all other users – including root – from logging in to the system.

Err codemadness.org 70 i 21809 Err codemadness.org 70 i 21810
    Err codemadness.org 70 i 21811
  • A good find
  • Err codemadness.org 70 i 21812
  • On FreeBSD, even though write(2) can be asynchronous, once the write syscall returns, the data is in the buffer cache (or ARC), and any future read(2) will see that new data even if it has not yet been written to disk. Err codemadness.org 70 i 21813 ***
  • Err codemadness.org 70 i 21814
Err codemadness.org 70 i 21815
Err codemadness.org 70 i 21816 Err codemadness.org 70 i 21817

OpenSSH gets an update to protect against Side Channel attacks

Err codemadness.org 70 i 21818 Err codemadness.org 70 i 21819
Err codemadness.org 70 i 21820

Last week, Damien Miller, a Google security researcher, and one of the popular OpenSSH and OpenBSD developers announced an update to the existing OpenSSH code that can help protect against the side-channel attacks that leak sensitive data from computer’s memory. This protection, Miller says, will protect the private keys residing in the RAM against Spectre, Meltdown, Rowhammer, and the latest RAMBleed attack.
Err codemadness.org 70 i 21821 SSH private keys can be used by malicious threat actors to connect to remote servers without the need of a password. According to CSO, “The approach used by OpenSSH could be copied by other software projects to protect their own keys and secrets in memory”.
Err codemadness.org 70 i 21822 However, if the attacker is successful in extracting the data from a computer or server’s RAM, they will only obtain an encrypted version of an SSH private key, rather than the cleartext version.
Err codemadness.org 70 i 21823 In an email to OpenBSD, Miller writes, “this change encrypts private keys when they are not in use with a symmetric key that is derived from a relatively large ‘prekey’ consisting of random data (currently 16KB).”

Err codemadness.org 70 i 21824
Err codemadness.org 70 i 21825 Err codemadness.org 70 i 21826
Err codemadness.org 70 i 21827 Err codemadness.org 70 i 21828

ZFS vs OpenZFS

Err codemadness.org 70 i 21829 Err codemadness.org 70 i 21830
Err codemadness.org 70 i 21831

You’ve probably heard us say a mix of “ZFS” and “OpenZFS” and an explanation is long-overdue.
Err codemadness.org 70 i 21832 From its inception, “ZFS” has referred to the “Zettabyte File System” developed at Sun Microsystems and published under the CDDL Open Source license in 2005 as part of the OpenSolaris operating system. ZFS was revolutionary for completely decoupling the file system from specialized storage hardware and even a specific computer platform. The portable nature and advanced features of ZFS led FreeBSD, Linux, and even Apple developers to start porting ZFS to their operating systems and by 2008, FreeBSD shipped with ZFS in the 7.0 release. For the first time, ZFS empowered users of any budget with enterprise-class scalability and data integrity and management features like checksumming, compression and snapshotting, and those features remain unrivaled at any price to this day. On any ZFS platform, administrators use the zpool and zfs utilities to configure and manage their storage devices and file systems respectively. Both commands employ a user-friendly syntax such as‘zfs create mypool/mydataset’ and I welcome you to watch the appropriately-titled webinar “Why we love ZFS & you should too” or try a completely-graphical ZFS experience with FreeNAS.
Err codemadness.org 70 i 21833 Oracle has steadily continued to develop its own proprietary branch of ZFS and Matt Ahrens points out that over 50% of the original OpenSolaris ZFS code has been replaced in OpenZFS with community contributions. This means that there are, sadly, two politically and technologically-incompatible branches of “ZFS” but fortunately, OpenZFS is orders of magnitude more popular thanks to its open nature. The two projects should be referred to as “Oracle ZFS” and “OpenZFS” to distinguish them as development efforts, but the user still types the ‘zfs’ command, which on FreeBSD relies on the ‘zfs.ko’ kernel module. My impression is that the terms of the CDDL license under which the OpenZFS branch of ZFS is published protects its users from any patent and trademark risks. Hopefully, this all helps you distinguish the OpenZFS project from the ZFS technology.

Err codemadness.org 70 i 21834 Err codemadness.org 70 i 21835
    Err codemadness.org 70 i 21836
  • There was further discussion of how the ZFSOnLinux repo will become the OpenZFS repo in the future once it also contains the bits to build on FreeBSD as well during the June 25th ZFS Leadership Meeting. The videos for all of the meetings are available here Err codemadness.org 70 i 21837 ***
  • Err codemadness.org 70 i 21838
Err codemadness.org 70 i 21839
Err codemadness.org 70 i 21840 Err codemadness.org 70 i 21841

Beastie Bits

Err codemadness.org 70 i 21842 Err codemadness.org 70 i 21843 Err codemadness.org 70 i 21853 Err codemadness.org 70 i 21854
Err codemadness.org 70 i 21855 Err codemadness.org 70 i 21856

Feedback/Questions

Err codemadness.org 70 i 21857 Err codemadness.org 70 i 21858 Err codemadness.org 70 i 21863 Err codemadness.org 70 i 21864
Err codemadness.org 70 i 21865 Err codemadness.org 70 i 21866
    Err codemadness.org 70 i 21867
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 21868 ***
  • Err codemadness.org 70 i 21869
Err codemadness.org 70 i 21870 Err codemadness.org 70 i 21871 ]]> Err codemadness.org 70 i 21875
Err codemadness.org 70 i 21876 https://fireside.fm/player/v2/FYhhasNR+Hm0xKzyo Err codemadness.org 70 i 21877 Err codemadness.org 70 i 21878 ]]> Err codemadness.org 70 i 21879 Err codemadness.org 70 i 21880
Err codemadness.org 70 i 21881 Err codemadness.org 70 i 21882 303: OpenZFS in Ports Err codemadness.org 70 i 21883 https://www.bsdnow.tv/303 Err codemadness.org 70 i 21884 1ed8b630-10c4-44f6-9a48-2ffcb4a8b6fe Err codemadness.org 70 i 21885 Wed, 19 Jun 2019 19:30:00 -0700 Err codemadness.org 70 i 21886 Allan Jude Err codemadness.org 70 i 21887 Err codemadness.org 70 i 21888 full Err codemadness.org 70 i 21889 Allan Jude Err codemadness.org 70 i 21890 OpenZFS-kmod port available, using blacklistd with NPF as fail2ban replacement, ZFS raidz expansion alpha preview 1, audio VU-meter increases CO2 footprint rant, XSAVE and compat32 kernel work for LLDB, where icons for modern X applications come from, and more. Err codemadness.org 70 i 21891 52:33 Err codemadness.org 70 i 21892 no Err codemadness.org 70 i 21893 Err codemadness.org 70 i 21894 OpenZFS-kmod port available, using blacklistd with NPF as fail2ban replacement, ZFS raidz expansion alpha preview 1, audio VU-meter increases CO2 footprint rant, XSAVE and compat32 kernel work for LLDB, where icons for modern X applications come from, and more. Err codemadness.org 70 i 21895 Headlines Err codemadness.org 70 i 21896 ZFSonFreeBSD ports renamed OpenZFS (https://www.freshports.org/sysutils/openzfs-kmod) Err codemadness.org 70 i 21897 The ZFS on FreeBSD project has renamed the userland and kernel ports from zol and zol-kmod to openzfs and openzfs-kmod Err codemadness.org 70 i 21898 The new versions from this week are IOCTL compatible with the command line tools in FreeBSD 12.0, so you can use the old userland with the new kernel module (although obviously not the new features) Err codemadness.org 70 i 21899 With the renaming it is easier to specify which kernel module you want to load in /boot/loader.conf: Err codemadness.org 70 i 21900 > zfs_load=”YES” Err codemadness.org 70 i 21901 or Err codemadness.org 70 i 21902 > openzfs_load=”YES” Err codemadness.org 70 i 21903 To load traditional or the newer version of ZFS Err codemadness.org 70 i 21904 The kmod still requires FreeBSD 12-stable or 13-current because it depends on the newer crypto support in the kernel for the ZFS native encryption feature. Allan is looking at ways to work around this, but it may not be practical. Err codemadness.org 70 i 21905 We would like to do an unofficial poll on how people would the userland to co-exist. Add a suffix to the new commands in /usr/local (zfs.new zpool.new or whatever). One idea i’ve had is to move the zfs and zpool commands to /libexec and make /sbin/zfs and /sbin/zpool a switcher script, that will call the base or ports version based on a config file (or just based on if the port is installed) Err codemadness.org 70 i 21906 For testing purposes, generally you should be fine as long as you don’t run ‘zpool upgrade’, which will make your pool only importable using the newer ZFS. Err codemadness.org 70 i 21907 For extra safety, you can create a ‘zpool checkpoint’, which will allow you to undo any changes that are made to the pool during your testing with the new openzfs tools. Note: the checkpoint will undo EVERYTHING. So don’t save new data you want to keep. Err codemadness.org 70 i 21908 Note: Checkpoints disable all freeing operations, to prevent any data from being overwritten so that you can re-import at the checkpoint and undo any operation (including zfs destroy-ing a dataset), so also be careful you don’t run out of space during testing. Err codemadness.org 70 i 21909 Please test and provide feedback. Err codemadness.org 70 i 21910 How to use blacklistd(8) with NPF as a fail2ban replacement (https://www.unitedbsd.com/d/63-how-to-use-blacklistd8-with-npf-as-a-fail2ban-replacement) Err codemadness.org 70 i 21911 About blacklistd(8) Err codemadness.org 70 i 21912 blacklistd(8) provides an API that can be used by network daemons to communicate with a packet filter via a daemon to enforce opening and closing ports dynamically based on policy. Err codemadness.org 70 i 21913 The interface to the packet filter is in /libexec/blacklistd-helper (this is currently designed for npf) and the configuration file (inspired from inetd.conf) is in etc/blacklistd.conf Err codemadness.org 70 i 21914 Now, blacklistd(8) will require bpfjit(4) (Just-In-Time compiler for Berkeley Packet Filter) in order to properly work, in addition to, naturally, npf(7) as frontend and syslogd(8), as a backend to print diagnostic messages. Also remember npf shall rely on the npflog* virtual network interface to provide logging for tcpdump() to use. Err codemadness.org 70 i 21915 Unfortunately (dont' ask me why :P) in 8.1 all the required kernel components are still not compiled by default in the GENERIC kernel (though they are in HEAD), and are rather provided as modules. Enabling NPF and blacklistd services would normally result in them being automatically loaded as root, but predictably on securelevel=1 this is not going to happen Err codemadness.org 70 i 21916 News Roundup Err codemadness.org 70 i 21917 [WIP] raidz expansion, alpha preview 1 (https://github.com/zfsonlinux/zfs/pull/8853) Err codemadness.org 70 i 21918 Motivation and Context Err codemadness.org 70 i 21919 > This is a alpha-quality preview of RAID-Z expansion. This feature allows disks to be added one at a time to a RAID-Z group, expanding its capacity incrementally. This feature is especially useful for small pools (typically with only one RAID-Z group), where there isn't sufficient hardware to add capacity by adding a whole new RAID-Z group (typically doubling the number of disks). Err codemadness.org 70 i 21920 > For additional context as well as a design overview, see my short talk from the 2017 OpenZFS Developer Summit: slides video Err codemadness.org 70 i 21921 Rant: running audio VU-meter increases my CO2 footprint (https://medium.com/@MartinCracauer/bug-rant-running-audio-vu-meter-increases-my-co2-footprint-871d5c1bee5a) Err codemadness.org 70 i 21922 A couple months ago I noticed that the monitor on my workstation never power off anymore. Screensaver would go on, but DPMs (to do the poweroff) never kicked in. Err codemadness.org 70 i 21923 I grovels the output of various tools that display DPMS settings, which as usual in Xorg were useless. Everybody said DPMS is on with a timeout. I even wrote my own C program to use every available Xlib API call and even the xscreensaver library calls. (should make it available) No go, everybody says that DPMs is on, enabled and set on a timeout. Didn’t matter whether I let xscreeensaver do the job or just the X11 server. Err codemadness.org 70 i 21924 After a while I noticed that DPMS actually worked between starting my X11 server and starting all my clients. I have a minimal .xinitrc and start the actual session from a script, that is how I could notice. If I used a regular desktop login I wouldn’t have noticed. A server state bug was much more likely than a client bug. Err codemadness.org 70 i 21925 + See the article for the rest... Err codemadness.org 70 i 21926 XSAVE and compat32 kernel work for LLDB (http://blog.netbsd.org/tnf/entry/xsave_and_compat32_kernel_work) Err codemadness.org 70 i 21927 Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages. Err codemadness.org 70 i 21928 In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support and lately extending NetBSD's ptrace interface to cover more register types. You can read more about that in my Apr 2019 report. Err codemadness.org 70 i 21929 In May, I was primarily continuing the work on new ptrace interface. Besides that, I've found and fixed a bug in ptrace() compat32 code, pushed LLVM buildbot to ‘green’ status and found some upstream LLVM regressions. More below. Err codemadness.org 70 i 21930 Some things about where icons for modern X applications come from (https://utcc.utoronto.ca/~cks/space/blog/unix/ModernXAppIcons) Err codemadness.org 70 i 21931 If you have a traditional window manager like fvwm, one of the things it can do is iconify X windows so that they turn into icons on the root window (which would often be called the 'desktop'). Even modern desktop environments that don't iconify programs to the root window (or their desktop) may have per-program icons for running programs in their dock or taskbar. If your window manager or desktop environment can do this, you might reasonably wonder where those icons come from by default. Err codemadness.org 70 i 21932 Although I don't know how it was done in the early days of X, the modern standard for this is part of the Extended Window Manager Hints. In EWMH, applications give the window manager a number of possible icons, generally in different sizes, as ARGB bitmaps (instead of, say, SVG format). The window manager or desktop environment can then pick whichever icon size it likes best, taking into account things like the display resolution and so on, and display it however it wants to (in its original size or scaled up or down). Err codemadness.org 70 i 21933 How this is communicated in specific is through the only good interprocess communication method that X supplies, namely X properties. In the specific case of icons, the NETWMICON property is what is used, and xprop can display the size information and an ASCII art summary of what each icon looks like. It's also possible to use some additional magic to read out the raw data from _NETWM_ICON in a useful format; see, for example, this Stackoverflow question and its answers. Err codemadness.org 70 i 21934 Beastie Bits Err codemadness.org 70 i 21935 Recent Security Innovations (http://undeadly.org/cgi?action=article;sid=20190605110020) Err codemadness.org 70 i 21936 Old Unix books + Solaris (https://imgur.com/a/HbSYtQI) Err codemadness.org 70 i 21937 Pro-Desktop - A Tiling Desktop Environment (https://bitcannon.net/post/pro-desktop/) Err codemadness.org 70 i 21938 The Tar Pipe (https://blog.extracheese.org/2010/05/the-tar-pipe.html) Err codemadness.org 70 i 21939 At least one vim trick you might not know (https://www.hillelwayne.com/post/intermediate-vim/) Err codemadness.org 70 i 21940 Feedback/Questions Err codemadness.org 70 i 21941 Johnny - listener feedback (http://dpaste.com/0ZQCQ8Y#wrap) Err codemadness.org 70 i 21942 Brian - Questions (http://dpaste.com/1843RNX#wrap) Err codemadness.org 70 i 21943 Mark - ZFS Question (http://dpaste.com/3M83X9G#wrap) Err codemadness.org 70 i 21944 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 21945 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 21946 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0303.mp4" type="video/mp4"> Err codemadness.org 70 i 21947 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 21948 </video> Err codemadness.org 70 i 21949 Err codemadness.org 70 i 21950 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, zfs, openzfs, blacklistd, raidz, xsave, compat32, awesomewm, vim, npf, Err codemadness.org 70 i 21951 Err codemadness.org 70 i 21952 OpenZFS-kmod port available, using blacklistd with NPF as fail2ban replacement, ZFS raidz expansion alpha preview 1, audio VU-meter increases CO2 footprint rant, XSAVE and compat32 kernel work for LLDB, where icons for modern X applications come from, and more.

Err codemadness.org 70 i 21953 Err codemadness.org 70 i 21954

Headlines

Err codemadness.org 70 i 21955 Err codemadness.org 70 i 21956

ZFSonFreeBSD ports renamed OpenZFS

Err codemadness.org 70 i 21957 Err codemadness.org 70 i 21958
    Err codemadness.org 70 i 21959
  • The ZFS on FreeBSD project has renamed the userland and kernel ports from zol and zol-kmod to openzfs and openzfs-kmod
  • Err codemadness.org 70 i 21960
  • The new versions from this week are IOCTL compatible with the command line tools in FreeBSD 12.0, so you can use the old userland with the new kernel module (although obviously not the new features)
  • Err codemadness.org 70 i 21961
  • With the renaming it is easier to specify which kernel module you want to load in /boot/loader.conf: Err codemadness.org 70 i 21962 > zfs_load=”YES”
  • Err codemadness.org 70 i 21963
  • or Err codemadness.org 70 i 21964 > openzfs_load=”YES”
  • Err codemadness.org 70 i 21965
  • To load traditional or the newer version of ZFS
  • Err codemadness.org 70 i 21966
  • The kmod still requires FreeBSD 12-stable or 13-current because it depends on the newer crypto support in the kernel for the ZFS native encryption feature. Allan is looking at ways to work around this, but it may not be practical.
  • Err codemadness.org 70 i 21967
  • We would like to do an unofficial poll on how people would the userland to co-exist. Add a suffix to the new commands in /usr/local (zfs.new zpool.new or whatever). One idea i’ve had is to move the zfs and zpool commands to /libexec and make /sbin/zfs and /sbin/zpool a switcher script, that will call the base or ports version based on a config file (or just based on if the port is installed)
  • Err codemadness.org 70 i 21968
  • For testing purposes, generally you should be fine as long as you don’t run ‘zpool upgrade’, which will make your pool only importable using the newer ZFS.
  • Err codemadness.org 70 i 21969
  • For extra safety, you can create a ‘zpool checkpoint’, which will allow you to undo any changes that are made to the pool during your testing with the new openzfs tools. Note: the checkpoint will undo EVERYTHING. So don’t save new data you want to keep.
  • Err codemadness.org 70 i 21970
  • Note: Checkpoints disable all freeing operations, to prevent any data from being overwritten so that you can re-import at the checkpoint and undo any operation (including zfs destroy-ing a dataset), so also be careful you don’t run out of space during testing.
  • Err codemadness.org 70 i 21971
  • Please test and provide feedback.
  • Err codemadness.org 70 i 21972
Err codemadness.org 70 i 21973 Err codemadness.org 70 i 21974
Err codemadness.org 70 i 21975 Err codemadness.org 70 i 21976

How to use blacklistd(8) with NPF as a fail2ban replacement

Err codemadness.org 70 i 21977 Err codemadness.org 70 i 21978
    Err codemadness.org 70 i 21979
  • About blacklistd(8)
  • Err codemadness.org 70 i 21980
Err codemadness.org 70 i 21981 Err codemadness.org 70 i 21982
Err codemadness.org 70 i 21983

blacklistd(8) provides an API that can be used by network daemons to communicate with a packet filter via a daemon to enforce opening and closing ports dynamically based on policy.
Err codemadness.org 70 i 21984 The interface to the packet filter is in /libexec/blacklistd-helper (this is currently designed for npf) and the configuration file (inspired from inetd.conf) is in etc/blacklistd.conf
Err codemadness.org 70 i 21985 Now, blacklistd(8) will require bpfjit(4) (Just-In-Time compiler for Berkeley Packet Filter) in order to properly work, in addition to, naturally, npf(7) as frontend and syslogd(8), as a backend to print diagnostic messages. Also remember npf shall rely on the npflog* virtual network interface to provide logging for tcpdump() to use.
Err codemadness.org 70 i 21986 Unfortunately (dont' ask me why :P) in 8.1 all the required kernel components are still not compiled by default in the GENERIC kernel (though they are in HEAD), and are rather provided as modules. Enabling NPF and blacklistd services would normally result in them being automatically loaded as root, but predictably on securelevel=1 this is not going to happen

Err codemadness.org 70 i 21987
Err codemadness.org 70 i 21988 Err codemadness.org 70 i 21989
Err codemadness.org 70 i 21990 Err codemadness.org 70 i 21991

News Roundup

Err codemadness.org 70 i 21992 Err codemadness.org 70 i 21993

[WIP] raidz expansion, alpha preview 1

Err codemadness.org 70 i 21994 Err codemadness.org 70 i 21995
    Err codemadness.org 70 i 21996
  • Motivation and Context Err codemadness.org 70 i 21997 > This is a alpha-quality preview of RAID-Z expansion. This feature allows disks to be added one at a time to a RAID-Z group, expanding its capacity incrementally. This feature is especially useful for small pools (typically with only one RAID-Z group), where there isn't sufficient hardware to add capacity by adding a whole new RAID-Z group (typically doubling the number of disks). Err codemadness.org 70 i 21998 > For additional context as well as a design overview, see my short talk from the 2017 OpenZFS Developer Summit: slides video
  • Err codemadness.org 70 i 21999
Err codemadness.org 70 i 22000 Err codemadness.org 70 i 22001
Err codemadness.org 70 i 22002 Err codemadness.org 70 i 22003

Rant: running audio VU-meter increases my CO2 footprint

Err codemadness.org 70 i 22004 Err codemadness.org 70 i 22005
Err codemadness.org 70 i 22006

A couple months ago I noticed that the monitor on my workstation never power off anymore. Screensaver would go on, but DPMs (to do the poweroff) never kicked in.
Err codemadness.org 70 i 22007 I grovels the output of various tools that display DPMS settings, which as usual in Xorg were useless. Everybody said DPMS is on with a timeout. I even wrote my own C program to use every available Xlib API call and even the xscreensaver library calls. (should make it available) No go, everybody says that DPMs is on, enabled and set on a timeout. Didn’t matter whether I let xscreeensaver do the job or just the X11 server.
Err codemadness.org 70 i 22008 After a while I noticed that DPMS actually worked between starting my X11 server and starting all my clients. I have a minimal .xinitrc and start the actual session from a script, that is how I could notice. If I used a regular desktop login I wouldn’t have noticed. A server state bug was much more likely than a client bug.

Err codemadness.org 70 i 22009 Err codemadness.org 70 i 22010
    Err codemadness.org 70 i 22011
  • See the article for the rest...
  • Err codemadness.org 70 i 22012
Err codemadness.org 70 i 22013
Err codemadness.org 70 i 22014 Err codemadness.org 70 i 22015
Err codemadness.org 70 i 22016 Err codemadness.org 70 i 22017

XSAVE and compat32 kernel work for LLDB

Err codemadness.org 70 i 22018 Err codemadness.org 70 i 22019
Err codemadness.org 70 i 22020

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.
Err codemadness.org 70 i 22021 In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support and lately extending NetBSD's ptrace interface to cover more register types. You can read more about that in my Apr 2019 report.
Err codemadness.org 70 i 22022 In May, I was primarily continuing the work on new ptrace interface. Besides that, I've found and fixed a bug in ptrace() compat32 code, pushed LLVM buildbot to ‘green’ status and found some upstream LLVM regressions. More below.

Err codemadness.org 70 i 22023
Err codemadness.org 70 i 22024 Err codemadness.org 70 i 22025
Err codemadness.org 70 i 22026 Err codemadness.org 70 i 22027

Some things about where icons for modern X applications come from

Err codemadness.org 70 i 22028 Err codemadness.org 70 i 22029
Err codemadness.org 70 i 22030

If you have a traditional window manager like fvwm, one of the things it can do is iconify X windows so that they turn into icons on the root window (which would often be called the 'desktop'). Even modern desktop environments that don't iconify programs to the root window (or their desktop) may have per-program icons for running programs in their dock or taskbar. If your window manager or desktop environment can do this, you might reasonably wonder where those icons come from by default.
Err codemadness.org 70 i 22031 Although I don't know how it was done in the early days of X, the modern standard for this is part of the Extended Window Manager Hints. In EWMH, applications give the window manager a number of possible icons, generally in different sizes, as ARGB bitmaps (instead of, say, SVG format). The window manager or desktop environment can then pick whichever icon size it likes best, taking into account things like the display resolution and so on, and display it however it wants to (in its original size or scaled up or down).
Err codemadness.org 70 i 22032 How this is communicated in specific is through the only good interprocess communication method that X supplies, namely X properties. In the specific case of icons, the _NET_WM_ICON property is what is used, and xprop can display the size information and an ASCII art summary of what each icon looks like. It's also possible to use some additional magic to read out the raw data from _NET_WM_ICON in a useful format; see, for example, this Stackoverflow question and its answers.

Err codemadness.org 70 i 22033
Err codemadness.org 70 i 22034 Err codemadness.org 70 i 22035
Err codemadness.org 70 i 22036 Err codemadness.org 70 i 22037

Beastie Bits

Err codemadness.org 70 i 22038 Err codemadness.org 70 i 22039 Err codemadness.org 70 i 22046 Err codemadness.org 70 i 22047
Err codemadness.org 70 i 22048 Err codemadness.org 70 i 22049

Feedback/Questions

Err codemadness.org 70 i 22050 Err codemadness.org 70 i 22051
    Err codemadness.org 70 i 22052
  • Johnny - listener feedback
  • Err codemadness.org 70 i 22053
  • Brian - Questions
  • Err codemadness.org 70 i 22054
  • Mark - ZFS Question
  • Err codemadness.org 70 i 22055
Err codemadness.org 70 i 22056 Err codemadness.org 70 i 22057
Err codemadness.org 70 i 22058 Err codemadness.org 70 i 22059
    Err codemadness.org 70 i 22060
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 22061
Err codemadness.org 70 i 22062 Err codemadness.org 70 i 22063
Err codemadness.org 70 i 22064 Err codemadness.org 70 i 22065 ]]> Err codemadness.org 70 i 22069
Err codemadness.org 70 i 22070 Err codemadness.org 70 i 22071 OpenZFS-kmod port available, using blacklistd with NPF as fail2ban replacement, ZFS raidz expansion alpha preview 1, audio VU-meter increases CO2 footprint rant, XSAVE and compat32 kernel work for LLDB, where icons for modern X applications come from, and more.

Err codemadness.org 70 i 22072 Err codemadness.org 70 i 22073

Headlines

Err codemadness.org 70 i 22074 Err codemadness.org 70 i 22075

ZFSonFreeBSD ports renamed OpenZFS

Err codemadness.org 70 i 22076 Err codemadness.org 70 i 22077
    Err codemadness.org 70 i 22078
  • The ZFS on FreeBSD project has renamed the userland and kernel ports from zol and zol-kmod to openzfs and openzfs-kmod
  • Err codemadness.org 70 i 22079
  • The new versions from this week are IOCTL compatible with the command line tools in FreeBSD 12.0, so you can use the old userland with the new kernel module (although obviously not the new features)
  • Err codemadness.org 70 i 22080
  • With the renaming it is easier to specify which kernel module you want to load in /boot/loader.conf: Err codemadness.org 70 i 22081 > zfs_load=”YES”
  • Err codemadness.org 70 i 22082
  • or Err codemadness.org 70 i 22083 > openzfs_load=”YES”
  • Err codemadness.org 70 i 22084
  • To load traditional or the newer version of ZFS
  • Err codemadness.org 70 i 22085
  • The kmod still requires FreeBSD 12-stable or 13-current because it depends on the newer crypto support in the kernel for the ZFS native encryption feature. Allan is looking at ways to work around this, but it may not be practical.
  • Err codemadness.org 70 i 22086
  • We would like to do an unofficial poll on how people would the userland to co-exist. Add a suffix to the new commands in /usr/local (zfs.new zpool.new or whatever). One idea i’ve had is to move the zfs and zpool commands to /libexec and make /sbin/zfs and /sbin/zpool a switcher script, that will call the base or ports version based on a config file (or just based on if the port is installed)
  • Err codemadness.org 70 i 22087
  • For testing purposes, generally you should be fine as long as you don’t run ‘zpool upgrade’, which will make your pool only importable using the newer ZFS.
  • Err codemadness.org 70 i 22088
  • For extra safety, you can create a ‘zpool checkpoint’, which will allow you to undo any changes that are made to the pool during your testing with the new openzfs tools. Note: the checkpoint will undo EVERYTHING. So don’t save new data you want to keep.
  • Err codemadness.org 70 i 22089
  • Note: Checkpoints disable all freeing operations, to prevent any data from being overwritten so that you can re-import at the checkpoint and undo any operation (including zfs destroy-ing a dataset), so also be careful you don’t run out of space during testing.
  • Err codemadness.org 70 i 22090
  • Please test and provide feedback.
  • Err codemadness.org 70 i 22091
Err codemadness.org 70 i 22092 Err codemadness.org 70 i 22093
Err codemadness.org 70 i 22094 Err codemadness.org 70 i 22095

How to use blacklistd(8) with NPF as a fail2ban replacement

Err codemadness.org 70 i 22096 Err codemadness.org 70 i 22097
    Err codemadness.org 70 i 22098
  • About blacklistd(8)
  • Err codemadness.org 70 i 22099
Err codemadness.org 70 i 22100 Err codemadness.org 70 i 22101
Err codemadness.org 70 i 22102

blacklistd(8) provides an API that can be used by network daemons to communicate with a packet filter via a daemon to enforce opening and closing ports dynamically based on policy.
Err codemadness.org 70 i 22103 The interface to the packet filter is in /libexec/blacklistd-helper (this is currently designed for npf) and the configuration file (inspired from inetd.conf) is in etc/blacklistd.conf
Err codemadness.org 70 i 22104 Now, blacklistd(8) will require bpfjit(4) (Just-In-Time compiler for Berkeley Packet Filter) in order to properly work, in addition to, naturally, npf(7) as frontend and syslogd(8), as a backend to print diagnostic messages. Also remember npf shall rely on the npflog* virtual network interface to provide logging for tcpdump() to use.
Err codemadness.org 70 i 22105 Unfortunately (dont' ask me why :P) in 8.1 all the required kernel components are still not compiled by default in the GENERIC kernel (though they are in HEAD), and are rather provided as modules. Enabling NPF and blacklistd services would normally result in them being automatically loaded as root, but predictably on securelevel=1 this is not going to happen

Err codemadness.org 70 i 22106
Err codemadness.org 70 i 22107 Err codemadness.org 70 i 22108
Err codemadness.org 70 i 22109 Err codemadness.org 70 i 22110

News Roundup

Err codemadness.org 70 i 22111 Err codemadness.org 70 i 22112

[WIP] raidz expansion, alpha preview 1

Err codemadness.org 70 i 22113 Err codemadness.org 70 i 22114
    Err codemadness.org 70 i 22115
  • Motivation and Context Err codemadness.org 70 i 22116 > This is a alpha-quality preview of RAID-Z expansion. This feature allows disks to be added one at a time to a RAID-Z group, expanding its capacity incrementally. This feature is especially useful for small pools (typically with only one RAID-Z group), where there isn't sufficient hardware to add capacity by adding a whole new RAID-Z group (typically doubling the number of disks). Err codemadness.org 70 i 22117 > For additional context as well as a design overview, see my short talk from the 2017 OpenZFS Developer Summit: slides video
  • Err codemadness.org 70 i 22118
Err codemadness.org 70 i 22119 Err codemadness.org 70 i 22120
Err codemadness.org 70 i 22121 Err codemadness.org 70 i 22122

Rant: running audio VU-meter increases my CO2 footprint

Err codemadness.org 70 i 22123 Err codemadness.org 70 i 22124
Err codemadness.org 70 i 22125

A couple months ago I noticed that the monitor on my workstation never power off anymore. Screensaver would go on, but DPMs (to do the poweroff) never kicked in.
Err codemadness.org 70 i 22126 I grovels the output of various tools that display DPMS settings, which as usual in Xorg were useless. Everybody said DPMS is on with a timeout. I even wrote my own C program to use every available Xlib API call and even the xscreensaver library calls. (should make it available) No go, everybody says that DPMs is on, enabled and set on a timeout. Didn’t matter whether I let xscreeensaver do the job or just the X11 server.
Err codemadness.org 70 i 22127 After a while I noticed that DPMS actually worked between starting my X11 server and starting all my clients. I have a minimal .xinitrc and start the actual session from a script, that is how I could notice. If I used a regular desktop login I wouldn’t have noticed. A server state bug was much more likely than a client bug.

Err codemadness.org 70 i 22128 Err codemadness.org 70 i 22129
    Err codemadness.org 70 i 22130
  • See the article for the rest...
  • Err codemadness.org 70 i 22131
Err codemadness.org 70 i 22132
Err codemadness.org 70 i 22133 Err codemadness.org 70 i 22134
Err codemadness.org 70 i 22135 Err codemadness.org 70 i 22136

XSAVE and compat32 kernel work for LLDB

Err codemadness.org 70 i 22137 Err codemadness.org 70 i 22138
Err codemadness.org 70 i 22139

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages.
Err codemadness.org 70 i 22140 In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support and lately extending NetBSD's ptrace interface to cover more register types. You can read more about that in my Apr 2019 report.
Err codemadness.org 70 i 22141 In May, I was primarily continuing the work on new ptrace interface. Besides that, I've found and fixed a bug in ptrace() compat32 code, pushed LLVM buildbot to ‘green’ status and found some upstream LLVM regressions. More below.

Err codemadness.org 70 i 22142
Err codemadness.org 70 i 22143 Err codemadness.org 70 i 22144
Err codemadness.org 70 i 22145 Err codemadness.org 70 i 22146

Some things about where icons for modern X applications come from

Err codemadness.org 70 i 22147 Err codemadness.org 70 i 22148
Err codemadness.org 70 i 22149

If you have a traditional window manager like fvwm, one of the things it can do is iconify X windows so that they turn into icons on the root window (which would often be called the 'desktop'). Even modern desktop environments that don't iconify programs to the root window (or their desktop) may have per-program icons for running programs in their dock or taskbar. If your window manager or desktop environment can do this, you might reasonably wonder where those icons come from by default.
Err codemadness.org 70 i 22150 Although I don't know how it was done in the early days of X, the modern standard for this is part of the Extended Window Manager Hints. In EWMH, applications give the window manager a number of possible icons, generally in different sizes, as ARGB bitmaps (instead of, say, SVG format). The window manager or desktop environment can then pick whichever icon size it likes best, taking into account things like the display resolution and so on, and display it however it wants to (in its original size or scaled up or down).
Err codemadness.org 70 i 22151 How this is communicated in specific is through the only good interprocess communication method that X supplies, namely X properties. In the specific case of icons, the _NET_WM_ICON property is what is used, and xprop can display the size information and an ASCII art summary of what each icon looks like. It's also possible to use some additional magic to read out the raw data from _NET_WM_ICON in a useful format; see, for example, this Stackoverflow question and its answers.

Err codemadness.org 70 i 22152
Err codemadness.org 70 i 22153 Err codemadness.org 70 i 22154
Err codemadness.org 70 i 22155 Err codemadness.org 70 i 22156

Beastie Bits

Err codemadness.org 70 i 22157 Err codemadness.org 70 i 22158 Err codemadness.org 70 i 22165 Err codemadness.org 70 i 22166
Err codemadness.org 70 i 22167 Err codemadness.org 70 i 22168

Feedback/Questions

Err codemadness.org 70 i 22169 Err codemadness.org 70 i 22170
    Err codemadness.org 70 i 22171
  • Johnny - listener feedback
  • Err codemadness.org 70 i 22172
  • Brian - Questions
  • Err codemadness.org 70 i 22173
  • Mark - ZFS Question
  • Err codemadness.org 70 i 22174
Err codemadness.org 70 i 22175 Err codemadness.org 70 i 22176
Err codemadness.org 70 i 22177 Err codemadness.org 70 i 22178
    Err codemadness.org 70 i 22179
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 22180
Err codemadness.org 70 i 22181 Err codemadness.org 70 i 22182
Err codemadness.org 70 i 22183 Err codemadness.org 70 i 22184 ]]> Err codemadness.org 70 i 22188
Err codemadness.org 70 i 22189 https://fireside.fm/player/v2/FYhhasNR+y0gaq6ep Err codemadness.org 70 i 22190 Err codemadness.org 70 i 22191 ]]> Err codemadness.org 70 i 22192 Err codemadness.org 70 i 22193
Err codemadness.org 70 i 22194 Err codemadness.org 70 i 22195 302: Contention Reduction Err codemadness.org 70 i 22196 https://www.bsdnow.tv/302 Err codemadness.org 70 i 22197 42938801-0d4a-4cf9-a297-c1eeddac85dc Err codemadness.org 70 i 22198 Wed, 12 Jun 2019 20:00:00 -0700 Err codemadness.org 70 i 22199 Allan Jude Err codemadness.org 70 i 22200 Err codemadness.org 70 i 22201 full Err codemadness.org 70 i 22202 Allan Jude Err codemadness.org 70 i 22203 DragonFlyBSD's kernel optimizations pay off, differences between OpenBSD and Linux, NetBSD 2019 Google Summer of Code project list, Reducing that contention, fnaify 1.3 released, vmctl(8): CLI syntax changes, and things that Linux distributions should not do when packaging. Err codemadness.org 70 i 22204 1:09:30 Err codemadness.org 70 i 22205 no Err codemadness.org 70 i 22206 Err codemadness.org 70 i 22207 DragonFlyBSD's kernel optimizations pay off, differences between OpenBSD and Linux, NetBSD 2019 Google Summer of Code project list, Reducing that contention, fnaify 1.3 released, vmctl(8): CLI syntax changes, and things that Linux distributions should not do when packaging. Err codemadness.org 70 i 22208 Headlines Err codemadness.org 70 i 22209 DragonFlyBSD's Kernel Optimizations Are Paying Off (https://www.phoronix.com/scan.php?page=article&item=dragonfly-55-threadripper&num=1) Err codemadness.org 70 i 22210 DragonFlyBSD lead developer Matthew Dillon has been working on a big VM rework in the name of performance and other kernel improvements recently. Here is a look at how those DragonFlyBSD 5.5-DEVELOPMENT improvements are paying off compared to DragonFlyBSD 5.4 as well as FreeBSD 12 and five Linux distribution releases. With Dillon using an AMD Ryzen Threadripper system, we used that too for this round of BSD vs. Linux performance benchmarks. Err codemadness.org 70 i 22211 The work by Dillon on the VM overhaul and other changes (including more HAMMER2 file-system work) will ultimately culminate with the DragonFlyBSD 5.6 release (well, unless he opts for DragonFlyBSD 6.0 or so). These are benchmarks of the latest DragonFlyBSD 5.5-DEVELOPMENT daily ISO as of this week benchmarked across DragonFlyBSD 5.4.3 stable, FreeBSD 12.0, Ubuntu 19.04, Red Hat Enterprise Linux 8.0, Debian 9.9, Debian Buster, and CentOS 7 1810 as a wide variety of reference points both from newer and older Linux distributions. (As for no Clear Linux reference point for a speedy reference point, it currently has a regression with AMD + Samsung NVMe SSD support on some hardware, including this box, prohibiting the drive from coming up due to a presumed power management issue that is still being resolved.) Err codemadness.org 70 i 22212 With Matthew Dillon doing much of his development on an AMD Ryzen Threadripper system after he last year proclaimed the greatness of these AMD HEDT CPUs, for this round of testing I also used a Ryzen Threadripper 2990WX with 32 cores / 64 threads. Tests of other AMD/Intel hardware with DragonFlyBSD will come as the next stable release is near and all of the kernel work has settled down. For now it's mostly entertaining our own curiosity how well these DragonFlyBSD optimizations are paying off and how it's increasing the competition against FreeBSD 12 and Linux distributions. Err codemadness.org 70 i 22213 What are the differences between OpenBSD and Linux? (https://cfenollosa.com/blog/what-are-the-differences-between-openbsd-and-linux.html) Err codemadness.org 70 i 22214 Maybe you have been reading recently about the release of OpenBSD 6.5 and wonder, "What are the differences between Linux and OpenBSD?" Err codemadness.org 70 i 22215 I've also been there at some point in the past and these are my conclusions. Err codemadness.org 70 i 22216 They also apply, to some extent, to other BSDs. However, an important disclaimer applies to this article. Err codemadness.org 70 i 22217 This list is aimed at people who are used to Linux and are curious about OpenBSD. It is written to highlight the most important changes from their perspective, not the absolute most important changes from a technical standpoint. Err codemadness.org 70 i 22218 Please bear with me. Err codemadness.org 70 i 22219 A terminal is a terminal is a terminal Err codemadness.org 70 i 22220 Practical differences Err codemadness.org 70 i 22221 Security and system administration Err codemadness.org 70 i 22222 Why philosophical differences matter Err codemadness.org 70 i 22223 So what do I choose? Err codemadness.org 70 i 22224 How to try OpenBSD Err codemadness.org 70 i 22225 *** Err codemadness.org 70 i 22226 News Roundup Err codemadness.org 70 i 22227 NetBSD 2019 Google Summer of Code (http://blog.netbsd.org/tnf/entry/announcing_google_summer_of_code1) Err codemadness.org 70 i 22228 We are very happy to announce The NetBSD Foundation Google Summer of Code 2019 projects: Err codemadness.org 70 i 22229 Akul Abhilash Pillai - Adapting TriforceAFL for NetBSD kernel fuzzing Err codemadness.org 70 i 22230 Manikishan Ghantasala - Add KNF (NetBSD style) clang-format configuration Err codemadness.org 70 i 22231 Siddharth Muralee - Enhancing Syzkaller support for NetBSD Err codemadness.org 70 i 22232 Surya P - Implementation of COMPATLINUX and COMPATNETBSD32 DRM ioctls support for NetBSD kernel Err codemadness.org 70 i 22233 Jason High - Incorporation of Argon2 Password Hashing Algorithm into NetBSD Err codemadness.org 70 i 22234 Saurav Prakash - Porting NetBSD to HummingBoard Pulse Err codemadness.org 70 i 22235 Naveen Narayanan - Porting WINE to amd64 architecture on NetBSD Err codemadness.org 70 i 22236 The communiting bonding period - where students get in touch with mentors and community - started yesterday. The coding period will start from May 27 until August 19. Err codemadness.org 70 i 22237 Please welcome all our students and a big good luck to students and mentors! A big thank to Google and The NetBSD Foundation organization mentors and administrators! Looking forward to a great Google Summer of Code! Err codemadness.org 70 i 22238 Reducing that contention (http://www.grenadille.net/post/2019/05/09/Reducing-that-contention) Err codemadness.org 70 i 22239 The opening keynote at EuroBSDCon 2016 predicted the future 10 years of BSDs. Amongst all the funny previsions, gnn@FreeBSD said that by 2026 OpenBSD will have its first implementation of SMP. Almost 3 years after this talk, that sounds like a plausible forecast... Why? Where are we? What can we do? Let's dive into the issue! Err codemadness.org 70 i 22240 State of affairs Err codemadness.org 70 i 22241 Most of OpenBSD's kernel still runs under a single lock, ze KERNEL_LOCK(). That includes most of the syscalls, most of the interrupt handlers and most of the fault handlers. Most of them, not all of them. Meaning we have collected & fixed bugs while setting up infrastructures and examples. Now this lock remains the principal responsible for the spin % you can observe in top(1) and systat(1). Err codemadness.org 70 i 22242 I believe that we opted for a difficult hike when we decided to start removing this lock from the bottom. As a result many SCSI & Network interrupt handlers as well as all Audio & USB ones can be executed without big lock. On the other hand very few syscalls are already or almost ready to be unlocked, as we incorrectly say. This explains why basic primitives like tsleep(9), csignal() and selwakeup() are only receiving attention now that the top of the Network Stack is running (mostly) without big lock. Err codemadness.org 70 i 22243 Next steps Err codemadness.org 70 i 22244 In the past years, most of our efforts have been invested into the Network Stack. As I already mentioned it should be ready to be parallelized. However think we should now concentrate on removing the KERNEL_LOCK(), even if the code paths aren't performance critical. Err codemadness.org 70 i 22245 See the Article for the rest of the post Err codemadness.org 70 i 22246 fnaify 1.3 released - more games are "fnaify & run" now (https://www.reddit.com/r/openbsd_gaming/comments/btste9/fnaify_13_released_more_games_are_fnaify_run_now/) Err codemadness.org 70 i 22247 This release finally addresses some of the problems that prevent simple running of several games. Err codemadness.org 70 i 22248 This happens for example when an old FNA.dll library comes with the games that doesn't match the API of our native libraries like SDL2, OpenAL, or MojoShader anymore. Some of those cases can be fixed by simply dropping in a newer FNA.dll. fnaify now asks if FNA 17.12 should be automatically added if a known incompatible FNA version is found. You simply answer yes or no. Err codemadness.org 70 i 22249 Another blocker happens when the game expects to check the SteamAPI - either from a running Steam process, or a bundled steam_api library. OpenBSD 6.5-current now has steamworks-nosteam in ports, a stub library for Steamworks.NET that prevents games from crashing simply because an API function isn't found. The repo is here. fnaify now finds this library in /usr/local/share/steamstubs and uses it instead of the bundled (full) Steamworks.NET.dll. Err codemadness.org 70 i 22250 This may help with any games that use this layer to interact with the SteamAPI, mostly those that can only be obtained via Steam. Err codemadness.org 70 i 22251 vmctl(8): command line syntax changed (https://www.openbsd.org/faq/current.html#r20190529) Err codemadness.org 70 i 22252 The order of the arguments in the create, start, and stop commands of vmctl(8) has been changed to match a commonly expected style. Manual usage or scripting with vmctl must be adjusted to use the new syntax. Err codemadness.org 70 i 22253 For example, the old syntax looked like this: Err codemadness.org 70 i 22254 # vmctl create disk.qcow2 -s 50G Err codemadness.org 70 i 22255 The new syntax specifies the command options before the argument: Err codemadness.org 70 i 22256 # vmctl create -s 50G disk.qcow2 Err codemadness.org 70 i 22257 Something that Linux distributions should not do when packaging things (https://utcc.utoronto.ca/~cks/space/blog/linux/PackageNameClashProblem) Err codemadness.org 70 i 22258 Right now I am a bit unhappy at Fedora for a specific packaging situation, so let me tell you a little story of what I, as a system administrator, would really like distributions to not do. Err codemadness.org 70 i 22259 For reasons beyond the scope of this blog entry, I run a Prometheus and Grafana setup on both my home and office Fedora Linux machines (among other things, it gives me a place to test out various things involving them). When I set this up, I used the official upstream versions of both, because I needed to match what we are running (or would soon be). Err codemadness.org 70 i 22260 Recently, Fedora decided to package Grafana themselves (as a RPM), and they called this RPM package 'grafana'. Since the two different packages are different versions of the same thing as far as package management tools are concerned, Fedora basically took over the 'grafana' package name from Grafana. This caused my systems to offer to upgrade me from the Grafana.com 'grafana-6.1.5-1' package to the Fedora 'grafana-6.1.6-1.fc29' one, which I actually did after taking reasonable steps to make sure that the Fedora version of 6.1.6 was compatible with the file layouts and so on from the Grafana version of 6.1.5. Err codemadness.org 70 i 22261 Why is this a problem? It's simple. If you're going to take over a package name from the upstream, you should keep up with the upstream releases. If you take over a package name and don't keep up to date or keep up to date only sporadically, you cause all sorts of heartburn for system administrators who use the package. The least annoying future of this situation is that Fedora has abandoned Grafana at 6.1.6 and I am going to 'upgrade' it with the upstream 6.2.1, which will hopefully be a transparent replacement and not blow up in my face. The most annoying future is that Fedora and Grafana keep ping-ponging versions back and forth, which will make 'dnf upgrade' into a minefield (because it will frequently try to give me a 'grafana' upgrade that I don't want and that would be dangerous to accept). And of course this situation turns Fedora version upgrades into their own minefield, since now I risk an upgrade to Fedora 30 actually reverting the 'grafana' package version on me. Err codemadness.org 70 i 22262 Beastie Bits Err codemadness.org 70 i 22263 [talk] ZFS v UFS on APU2 msata SSD with FreeBSD (http://lists.nycbug.org:8080/pipermail/talk/2019-May/017885.html) Err codemadness.org 70 i 22264 NetBSD 8.1 is out (http://www.netbsd.org/releases/formal-8/NetBSD-8.1.html) Err codemadness.org 70 i 22265 lazyboi – the laziest possible way to send raw HTTP POST data (https://github.com/ctsrc/lazyboi) Err codemadness.org 70 i 22266 A Keyboard layout that changes by markov frequency (https://github.com/shapr/markovkeyboard) Err codemadness.org 70 i 22267 Open Source Game Clones (https://osgameclones.com/) Err codemadness.org 70 i 22268 EuroBSDcon program & registration open (https://eurobsdcon.org) Err codemadness.org 70 i 22269 *** Err codemadness.org 70 i 22270 Feedback/Questions Err codemadness.org 70 i 22271 John - A segment idea (http://dpaste.com/3YTBQTX#wrap) Err codemadness.org 70 i 22272 Johnny - Audio only format please don't (http://dpaste.com/3WD0A25#wrap) Err codemadness.org 70 i 22273 Alex - Thanks and some Linux Snaps vs PBI feedback (http://dpaste.com/1RQF4QM#wrap) Err codemadness.org 70 i 22274 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 22275 *** Err codemadness.org 70 i 22276 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 22277 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0302.mp4" type="video/mp4"> Err codemadness.org 70 i 22278 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 22279 </video> Err codemadness.org 70 i 22280 Err codemadness.org 70 i 22281 Err codemadness.org 70 i 22282 DragonFlyBSD's kernel optimizations pay off, differences between OpenBSD and Linux, NetBSD 2019 Google Summer of Code project list, Reducing that contention, fnaify 1.3 released, vmctl(8): CLI syntax changes, and things that Linux distributions should not do when packaging.

Err codemadness.org 70 i 22283 Err codemadness.org 70 i 22284

Headlines

Err codemadness.org 70 i 22285 Err codemadness.org 70 i 22286

DragonFlyBSD's Kernel Optimizations Are Paying Off

Err codemadness.org 70 i 22287 Err codemadness.org 70 i 22288
Err codemadness.org 70 i 22289

DragonFlyBSD lead developer Matthew Dillon has been working on a big VM rework in the name of performance and other kernel improvements recently. Here is a look at how those DragonFlyBSD 5.5-DEVELOPMENT improvements are paying off compared to DragonFlyBSD 5.4 as well as FreeBSD 12 and five Linux distribution releases. With Dillon using an AMD Ryzen Threadripper system, we used that too for this round of BSD vs. Linux performance benchmarks.
Err codemadness.org 70 i 22290 The work by Dillon on the VM overhaul and other changes (including more HAMMER2 file-system work) will ultimately culminate with the DragonFlyBSD 5.6 release (well, unless he opts for DragonFlyBSD 6.0 or so). These are benchmarks of the latest DragonFlyBSD 5.5-DEVELOPMENT daily ISO as of this week benchmarked across DragonFlyBSD 5.4.3 stable, FreeBSD 12.0, Ubuntu 19.04, Red Hat Enterprise Linux 8.0, Debian 9.9, Debian Buster, and CentOS 7 1810 as a wide variety of reference points both from newer and older Linux distributions. (As for no Clear Linux reference point for a speedy reference point, it currently has a regression with AMD + Samsung NVMe SSD support on some hardware, including this box, prohibiting the drive from coming up due to a presumed power management issue that is still being resolved.)
Err codemadness.org 70 i 22291 With Matthew Dillon doing much of his development on an AMD Ryzen Threadripper system after he last year proclaimed the greatness of these AMD HEDT CPUs, for this round of testing I also used a Ryzen Threadripper 2990WX with 32 cores / 64 threads. Tests of other AMD/Intel hardware with DragonFlyBSD will come as the next stable release is near and all of the kernel work has settled down. For now it's mostly entertaining our own curiosity how well these DragonFlyBSD optimizations are paying off and how it's increasing the competition against FreeBSD 12 and Linux distributions.

Err codemadness.org 70 i 22292 Err codemadness.org 70 i 22293
Err codemadness.org 70 i 22294
Err codemadness.org 70 i 22295 Err codemadness.org 70 i 22296

What are the differences between OpenBSD and Linux?

Err codemadness.org 70 i 22297 Err codemadness.org 70 i 22298
Err codemadness.org 70 i 22299

Maybe you have been reading recently about the release of OpenBSD 6.5 and wonder, "What are the differences between Linux and OpenBSD?"
Err codemadness.org 70 i 22300 I've also been there at some point in the past and these are my conclusions.
Err codemadness.org 70 i 22301 They also apply, to some extent, to other BSDs. However, an important disclaimer applies to this article.
Err codemadness.org 70 i 22302 This list is aimed at people who are used to Linux and are curious about OpenBSD. It is written to highlight the most important changes from their perspective, not the absolute most important changes from a technical standpoint.
Err codemadness.org 70 i 22303 Please bear with me.

Err codemadness.org 70 i 22304
Err codemadness.org 70 i 22305 Err codemadness.org 70 i 22306
    Err codemadness.org 70 i 22307
  • A terminal is a terminal is a terminal
  • Err codemadness.org 70 i 22308
  • Practical differences
  • Err codemadness.org 70 i 22309
  • Security and system administration
  • Err codemadness.org 70 i 22310
  • Why philosophical differences matter
  • Err codemadness.org 70 i 22311
  • So what do I choose?
  • Err codemadness.org 70 i 22312
  • How to try OpenBSD Err codemadness.org 70 i 22313 ***
  • Err codemadness.org 70 i 22314
Err codemadness.org 70 i 22315 Err codemadness.org 70 i 22316

News Roundup

Err codemadness.org 70 i 22317 Err codemadness.org 70 i 22318

NetBSD 2019 Google Summer of Code

Err codemadness.org 70 i 22319 Err codemadness.org 70 i 22320
Err codemadness.org 70 i 22321

We are very happy to announce The NetBSD Foundation Google Summer of Code 2019 projects:

Err codemadness.org 70 i 22322
Err codemadness.org 70 i 22323 Err codemadness.org 70 i 22324
    Err codemadness.org 70 i 22325
  • Akul Abhilash Pillai - Adapting TriforceAFL for NetBSD kernel fuzzing
  • Err codemadness.org 70 i 22326
  • Manikishan Ghantasala - Add KNF (NetBSD style) clang-format configuration
  • Err codemadness.org 70 i 22327
  • Siddharth Muralee - Enhancing Syzkaller support for NetBSD
  • Err codemadness.org 70 i 22328
  • Surya P - Implementation of COMPAT_LINUX and COMPAT_NETBSD32 DRM ioctls support for NetBSD kernel
  • Err codemadness.org 70 i 22329
  • Jason High - Incorporation of Argon2 Password Hashing Algorithm into NetBSD
  • Err codemadness.org 70 i 22330
  • Saurav Prakash - Porting NetBSD to HummingBoard Pulse
  • Err codemadness.org 70 i 22331
  • Naveen Narayanan - Porting WINE to amd64 architecture on NetBSD
  • Err codemadness.org 70 i 22332
Err codemadness.org 70 i 22333 Err codemadness.org 70 i 22334
Err codemadness.org 70 i 22335

The communiting bonding period - where students get in touch with mentors and community - started yesterday. The coding period will start from May 27 until August 19.
Err codemadness.org 70 i 22336 Please welcome all our students and a big good luck to students and mentors! A big thank to Google and The NetBSD Foundation organization mentors and administrators! Looking forward to a great Google Summer of Code!

Err codemadness.org 70 i 22337
Err codemadness.org 70 i 22338 Err codemadness.org 70 i 22339
Err codemadness.org 70 i 22340 Err codemadness.org 70 i 22341

Reducing that contention

Err codemadness.org 70 i 22342 Err codemadness.org 70 i 22343
Err codemadness.org 70 i 22344

The opening keynote at EuroBSDCon 2016 predicted the future 10 years of BSDs. Amongst all the funny previsions, gnn@FreeBSD said that by 2026 OpenBSD will have its first implementation of SMP. Almost 3 years after this talk, that sounds like a plausible forecast... Why? Where are we? What can we do? Let's dive into the issue!

Err codemadness.org 70 i 22345
Err codemadness.org 70 i 22346 Err codemadness.org 70 i 22347
    Err codemadness.org 70 i 22348
  • State of affairs
  • Err codemadness.org 70 i 22349
Err codemadness.org 70 i 22350 Err codemadness.org 70 i 22351
Err codemadness.org 70 i 22352

Most of OpenBSD's kernel still runs under a single lock, ze KERNEL_LOCK(). That includes most of the syscalls, most of the interrupt handlers and most of the fault handlers. Most of them, not all of them. Meaning we have collected & fixed bugs while setting up infrastructures and examples. Now this lock remains the principal responsible for the spin % you can observe in top(1) and systat(1).
Err codemadness.org 70 i 22353 I believe that we opted for a difficult hike when we decided to start removing this lock from the bottom. As a result many SCSI & Network interrupt handlers as well as all Audio & USB ones can be executed without big lock. On the other hand very few syscalls are already or almost ready to be unlocked, as we incorrectly say. This explains why basic primitives like tsleep(9), csignal() and selwakeup() are only receiving attention now that the top of the Network Stack is running (mostly) without big lock.

Err codemadness.org 70 i 22354
Err codemadness.org 70 i 22355 Err codemadness.org 70 i 22356
    Err codemadness.org 70 i 22357
  • Next steps
  • Err codemadness.org 70 i 22358
Err codemadness.org 70 i 22359 Err codemadness.org 70 i 22360
Err codemadness.org 70 i 22361

In the past years, most of our efforts have been invested into the Network Stack. As I already mentioned it should be ready to be parallelized. However think we should now concentrate on removing the KERNEL_LOCK(), even if the code paths aren't performance critical.

Err codemadness.org 70 i 22362
Err codemadness.org 70 i 22363 Err codemadness.org 70 i 22364
    Err codemadness.org 70 i 22365
  • See the Article for the rest of the post
  • Err codemadness.org 70 i 22366
Err codemadness.org 70 i 22367 Err codemadness.org 70 i 22368
Err codemadness.org 70 i 22369 Err codemadness.org 70 i 22370

fnaify 1.3 released - more games are "fnaify & run" now

Err codemadness.org 70 i 22371 Err codemadness.org 70 i 22372
Err codemadness.org 70 i 22373

This release finally addresses some of the problems that prevent simple running of several games.
Err codemadness.org 70 i 22374 This happens for example when an old FNA.dll library comes with the games that doesn't match the API of our native libraries like SDL2, OpenAL, or MojoShader anymore. Some of those cases can be fixed by simply dropping in a newer FNA.dll. fnaify now asks if FNA 17.12 should be automatically added if a known incompatible FNA version is found. You simply answer yes or no.

Err codemadness.org 70 i 22375 Err codemadness.org 70 i 22376

Another blocker happens when the game expects to check the SteamAPI - either from a running Steam process, or a bundled steam_api library. OpenBSD 6.5-current now has steamworks-nosteam in ports, a stub library for Steamworks.NET that prevents games from crashing simply because an API function isn't found. The repo is here. fnaify now finds this library in /usr/local/share/steamstubs and uses it instead of the bundled (full) Steamworks.NET.dll.
Err codemadness.org 70 i 22377 This may help with any games that use this layer to interact with the SteamAPI, mostly those that can only be obtained via Steam.

Err codemadness.org 70 i 22378
Err codemadness.org 70 i 22379 Err codemadness.org 70 i 22380

vmctl(8): command line syntax changed

Err codemadness.org 70 i 22381 Err codemadness.org 70 i 22382
Err codemadness.org 70 i 22383

The order of the arguments in the create, start, and stop commands of vmctl(8) has been changed to match a commonly expected style. Manual usage or scripting with vmctl must be adjusted to use the new syntax.
Err codemadness.org 70 i 22384 For example, the old syntax looked like this:

Err codemadness.org 70 i 22385
Err codemadness.org 70 i 22386 Err codemadness.org 70 i 22387

# vmctl create disk.qcow2 -s 50G

Err codemadness.org 70 i 22388 Err codemadness.org 70 i 22389
Err codemadness.org 70 i 22390

The new syntax specifies the command options before the argument:

Err codemadness.org 70 i 22391
Err codemadness.org 70 i 22392 Err codemadness.org 70 i 22393

# vmctl create -s 50G disk.qcow2

Err codemadness.org 70 i 22394 Err codemadness.org 70 i 22395
Err codemadness.org 70 i 22396 Err codemadness.org 70 i 22397

Something that Linux distributions should not do when packaging things

Err codemadness.org 70 i 22398 Err codemadness.org 70 i 22399
Err codemadness.org 70 i 22400

Right now I am a bit unhappy at Fedora for a specific packaging situation, so let me tell you a little story of what I, as a system administrator, would really like distributions to not do.
Err codemadness.org 70 i 22401 For reasons beyond the scope of this blog entry, I run a Prometheus and Grafana setup on both my home and office Fedora Linux machines (among other things, it gives me a place to test out various things involving them). When I set this up, I used the official upstream versions of both, because I needed to match what we are running (or would soon be).
Err codemadness.org 70 i 22402 Recently, Fedora decided to package Grafana themselves (as a RPM), and they called this RPM package 'grafana'. Since the two different packages are different versions of the same thing as far as package management tools are concerned, Fedora basically took over the 'grafana' package name from Grafana. This caused my systems to offer to upgrade me from the Grafana.com 'grafana-6.1.5-1' package to the Fedora 'grafana-6.1.6-1.fc29' one, which I actually did after taking reasonable steps to make sure that the Fedora version of 6.1.6 was compatible with the file layouts and so on from the Grafana version of 6.1.5.
Err codemadness.org 70 i 22403 Why is this a problem? It's simple. If you're going to take over a package name from the upstream, you should keep up with the upstream releases. If you take over a package name and don't keep up to date or keep up to date only sporadically, you cause all sorts of heartburn for system administrators who use the package. The least annoying future of this situation is that Fedora has abandoned Grafana at 6.1.6 and I am going to 'upgrade' it with the upstream 6.2.1, which will hopefully be a transparent replacement and not blow up in my face. The most annoying future is that Fedora and Grafana keep ping-ponging versions back and forth, which will make 'dnf upgrade' into a minefield (because it will frequently try to give me a 'grafana' upgrade that I don't want and that would be dangerous to accept). And of course this situation turns Fedora version upgrades into their own minefield, since now I risk an upgrade to Fedora 30 actually reverting the 'grafana' package version on me.

Err codemadness.org 70 i 22404 Err codemadness.org 70 i 22405
Err codemadness.org 70 i 22406
Err codemadness.org 70 i 22407 Err codemadness.org 70 i 22408

Beastie Bits

Err codemadness.org 70 i 22409 Err codemadness.org 70 i 22410 Err codemadness.org 70 i 22419 Err codemadness.org 70 i 22420

Feedback/Questions

Err codemadness.org 70 i 22421 Err codemadness.org 70 i 22422 Err codemadness.org 70 i 22427 Err codemadness.org 70 i 22428
Err codemadness.org 70 i 22429 Err codemadness.org 70 i 22430
    Err codemadness.org 70 i 22431
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 22432 ***
  • Err codemadness.org 70 i 22433
Err codemadness.org 70 i 22434 Err codemadness.org 70 i 22435 ]]> Err codemadness.org 70 i 22439
Err codemadness.org 70 i 22440 Err codemadness.org 70 i 22441 DragonFlyBSD's kernel optimizations pay off, differences between OpenBSD and Linux, NetBSD 2019 Google Summer of Code project list, Reducing that contention, fnaify 1.3 released, vmctl(8): CLI syntax changes, and things that Linux distributions should not do when packaging.

Err codemadness.org 70 i 22442 Err codemadness.org 70 i 22443

Headlines

Err codemadness.org 70 i 22444 Err codemadness.org 70 i 22445

DragonFlyBSD's Kernel Optimizations Are Paying Off

Err codemadness.org 70 i 22446 Err codemadness.org 70 i 22447
Err codemadness.org 70 i 22448

DragonFlyBSD lead developer Matthew Dillon has been working on a big VM rework in the name of performance and other kernel improvements recently. Here is a look at how those DragonFlyBSD 5.5-DEVELOPMENT improvements are paying off compared to DragonFlyBSD 5.4 as well as FreeBSD 12 and five Linux distribution releases. With Dillon using an AMD Ryzen Threadripper system, we used that too for this round of BSD vs. Linux performance benchmarks.
Err codemadness.org 70 i 22449 The work by Dillon on the VM overhaul and other changes (including more HAMMER2 file-system work) will ultimately culminate with the DragonFlyBSD 5.6 release (well, unless he opts for DragonFlyBSD 6.0 or so). These are benchmarks of the latest DragonFlyBSD 5.5-DEVELOPMENT daily ISO as of this week benchmarked across DragonFlyBSD 5.4.3 stable, FreeBSD 12.0, Ubuntu 19.04, Red Hat Enterprise Linux 8.0, Debian 9.9, Debian Buster, and CentOS 7 1810 as a wide variety of reference points both from newer and older Linux distributions. (As for no Clear Linux reference point for a speedy reference point, it currently has a regression with AMD + Samsung NVMe SSD support on some hardware, including this box, prohibiting the drive from coming up due to a presumed power management issue that is still being resolved.)
Err codemadness.org 70 i 22450 With Matthew Dillon doing much of his development on an AMD Ryzen Threadripper system after he last year proclaimed the greatness of these AMD HEDT CPUs, for this round of testing I also used a Ryzen Threadripper 2990WX with 32 cores / 64 threads. Tests of other AMD/Intel hardware with DragonFlyBSD will come as the next stable release is near and all of the kernel work has settled down. For now it's mostly entertaining our own curiosity how well these DragonFlyBSD optimizations are paying off and how it's increasing the competition against FreeBSD 12 and Linux distributions.

Err codemadness.org 70 i 22451 Err codemadness.org 70 i 22452
Err codemadness.org 70 i 22453
Err codemadness.org 70 i 22454 Err codemadness.org 70 i 22455

What are the differences between OpenBSD and Linux?

Err codemadness.org 70 i 22456 Err codemadness.org 70 i 22457
Err codemadness.org 70 i 22458

Maybe you have been reading recently about the release of OpenBSD 6.5 and wonder, "What are the differences between Linux and OpenBSD?"
Err codemadness.org 70 i 22459 I've also been there at some point in the past and these are my conclusions.
Err codemadness.org 70 i 22460 They also apply, to some extent, to other BSDs. However, an important disclaimer applies to this article.
Err codemadness.org 70 i 22461 This list is aimed at people who are used to Linux and are curious about OpenBSD. It is written to highlight the most important changes from their perspective, not the absolute most important changes from a technical standpoint.
Err codemadness.org 70 i 22462 Please bear with me.

Err codemadness.org 70 i 22463
Err codemadness.org 70 i 22464 Err codemadness.org 70 i 22465
    Err codemadness.org 70 i 22466
  • A terminal is a terminal is a terminal
  • Err codemadness.org 70 i 22467
  • Practical differences
  • Err codemadness.org 70 i 22468
  • Security and system administration
  • Err codemadness.org 70 i 22469
  • Why philosophical differences matter
  • Err codemadness.org 70 i 22470
  • So what do I choose?
  • Err codemadness.org 70 i 22471
  • How to try OpenBSD Err codemadness.org 70 i 22472 ***
  • Err codemadness.org 70 i 22473
Err codemadness.org 70 i 22474 Err codemadness.org 70 i 22475

News Roundup

Err codemadness.org 70 i 22476 Err codemadness.org 70 i 22477

NetBSD 2019 Google Summer of Code

Err codemadness.org 70 i 22478 Err codemadness.org 70 i 22479
Err codemadness.org 70 i 22480

We are very happy to announce The NetBSD Foundation Google Summer of Code 2019 projects:

Err codemadness.org 70 i 22481
Err codemadness.org 70 i 22482 Err codemadness.org 70 i 22483
    Err codemadness.org 70 i 22484
  • Akul Abhilash Pillai - Adapting TriforceAFL for NetBSD kernel fuzzing
  • Err codemadness.org 70 i 22485
  • Manikishan Ghantasala - Add KNF (NetBSD style) clang-format configuration
  • Err codemadness.org 70 i 22486
  • Siddharth Muralee - Enhancing Syzkaller support for NetBSD
  • Err codemadness.org 70 i 22487
  • Surya P - Implementation of COMPAT_LINUX and COMPAT_NETBSD32 DRM ioctls support for NetBSD kernel
  • Err codemadness.org 70 i 22488
  • Jason High - Incorporation of Argon2 Password Hashing Algorithm into NetBSD
  • Err codemadness.org 70 i 22489
  • Saurav Prakash - Porting NetBSD to HummingBoard Pulse
  • Err codemadness.org 70 i 22490
  • Naveen Narayanan - Porting WINE to amd64 architecture on NetBSD
  • Err codemadness.org 70 i 22491
Err codemadness.org 70 i 22492 Err codemadness.org 70 i 22493
Err codemadness.org 70 i 22494

The communiting bonding period - where students get in touch with mentors and community - started yesterday. The coding period will start from May 27 until August 19.
Err codemadness.org 70 i 22495 Please welcome all our students and a big good luck to students and mentors! A big thank to Google and The NetBSD Foundation organization mentors and administrators! Looking forward to a great Google Summer of Code!

Err codemadness.org 70 i 22496
Err codemadness.org 70 i 22497 Err codemadness.org 70 i 22498
Err codemadness.org 70 i 22499 Err codemadness.org 70 i 22500

Reducing that contention

Err codemadness.org 70 i 22501 Err codemadness.org 70 i 22502
Err codemadness.org 70 i 22503

The opening keynote at EuroBSDCon 2016 predicted the future 10 years of BSDs. Amongst all the funny previsions, gnn@FreeBSD said that by 2026 OpenBSD will have its first implementation of SMP. Almost 3 years after this talk, that sounds like a plausible forecast... Why? Where are we? What can we do? Let's dive into the issue!

Err codemadness.org 70 i 22504
Err codemadness.org 70 i 22505 Err codemadness.org 70 i 22506
    Err codemadness.org 70 i 22507
  • State of affairs
  • Err codemadness.org 70 i 22508
Err codemadness.org 70 i 22509 Err codemadness.org 70 i 22510
Err codemadness.org 70 i 22511

Most of OpenBSD's kernel still runs under a single lock, ze KERNEL_LOCK(). That includes most of the syscalls, most of the interrupt handlers and most of the fault handlers. Most of them, not all of them. Meaning we have collected & fixed bugs while setting up infrastructures and examples. Now this lock remains the principal responsible for the spin % you can observe in top(1) and systat(1).
Err codemadness.org 70 i 22512 I believe that we opted for a difficult hike when we decided to start removing this lock from the bottom. As a result many SCSI & Network interrupt handlers as well as all Audio & USB ones can be executed without big lock. On the other hand very few syscalls are already or almost ready to be unlocked, as we incorrectly say. This explains why basic primitives like tsleep(9), csignal() and selwakeup() are only receiving attention now that the top of the Network Stack is running (mostly) without big lock.

Err codemadness.org 70 i 22513
Err codemadness.org 70 i 22514 Err codemadness.org 70 i 22515
    Err codemadness.org 70 i 22516
  • Next steps
  • Err codemadness.org 70 i 22517
Err codemadness.org 70 i 22518 Err codemadness.org 70 i 22519
Err codemadness.org 70 i 22520

In the past years, most of our efforts have been invested into the Network Stack. As I already mentioned it should be ready to be parallelized. However think we should now concentrate on removing the KERNEL_LOCK(), even if the code paths aren't performance critical.

Err codemadness.org 70 i 22521
Err codemadness.org 70 i 22522 Err codemadness.org 70 i 22523
    Err codemadness.org 70 i 22524
  • See the Article for the rest of the post
  • Err codemadness.org 70 i 22525
Err codemadness.org 70 i 22526 Err codemadness.org 70 i 22527
Err codemadness.org 70 i 22528 Err codemadness.org 70 i 22529

fnaify 1.3 released - more games are "fnaify & run" now

Err codemadness.org 70 i 22530 Err codemadness.org 70 i 22531
Err codemadness.org 70 i 22532

This release finally addresses some of the problems that prevent simple running of several games.
Err codemadness.org 70 i 22533 This happens for example when an old FNA.dll library comes with the games that doesn't match the API of our native libraries like SDL2, OpenAL, or MojoShader anymore. Some of those cases can be fixed by simply dropping in a newer FNA.dll. fnaify now asks if FNA 17.12 should be automatically added if a known incompatible FNA version is found. You simply answer yes or no.

Err codemadness.org 70 i 22534 Err codemadness.org 70 i 22535

Another blocker happens when the game expects to check the SteamAPI - either from a running Steam process, or a bundled steam_api library. OpenBSD 6.5-current now has steamworks-nosteam in ports, a stub library for Steamworks.NET that prevents games from crashing simply because an API function isn't found. The repo is here. fnaify now finds this library in /usr/local/share/steamstubs and uses it instead of the bundled (full) Steamworks.NET.dll.
Err codemadness.org 70 i 22536 This may help with any games that use this layer to interact with the SteamAPI, mostly those that can only be obtained via Steam.

Err codemadness.org 70 i 22537
Err codemadness.org 70 i 22538 Err codemadness.org 70 i 22539

vmctl(8): command line syntax changed

Err codemadness.org 70 i 22540 Err codemadness.org 70 i 22541
Err codemadness.org 70 i 22542

The order of the arguments in the create, start, and stop commands of vmctl(8) has been changed to match a commonly expected style. Manual usage or scripting with vmctl must be adjusted to use the new syntax.
Err codemadness.org 70 i 22543 For example, the old syntax looked like this:

Err codemadness.org 70 i 22544
Err codemadness.org 70 i 22545 Err codemadness.org 70 i 22546

# vmctl create disk.qcow2 -s 50G

Err codemadness.org 70 i 22547 Err codemadness.org 70 i 22548
Err codemadness.org 70 i 22549

The new syntax specifies the command options before the argument:

Err codemadness.org 70 i 22550
Err codemadness.org 70 i 22551 Err codemadness.org 70 i 22552

# vmctl create -s 50G disk.qcow2

Err codemadness.org 70 i 22553 Err codemadness.org 70 i 22554
Err codemadness.org 70 i 22555 Err codemadness.org 70 i 22556

Something that Linux distributions should not do when packaging things

Err codemadness.org 70 i 22557 Err codemadness.org 70 i 22558
Err codemadness.org 70 i 22559

Right now I am a bit unhappy at Fedora for a specific packaging situation, so let me tell you a little story of what I, as a system administrator, would really like distributions to not do.
Err codemadness.org 70 i 22560 For reasons beyond the scope of this blog entry, I run a Prometheus and Grafana setup on both my home and office Fedora Linux machines (among other things, it gives me a place to test out various things involving them). When I set this up, I used the official upstream versions of both, because I needed to match what we are running (or would soon be).
Err codemadness.org 70 i 22561 Recently, Fedora decided to package Grafana themselves (as a RPM), and they called this RPM package 'grafana'. Since the two different packages are different versions of the same thing as far as package management tools are concerned, Fedora basically took over the 'grafana' package name from Grafana. This caused my systems to offer to upgrade me from the Grafana.com 'grafana-6.1.5-1' package to the Fedora 'grafana-6.1.6-1.fc29' one, which I actually did after taking reasonable steps to make sure that the Fedora version of 6.1.6 was compatible with the file layouts and so on from the Grafana version of 6.1.5.
Err codemadness.org 70 i 22562 Why is this a problem? It's simple. If you're going to take over a package name from the upstream, you should keep up with the upstream releases. If you take over a package name and don't keep up to date or keep up to date only sporadically, you cause all sorts of heartburn for system administrators who use the package. The least annoying future of this situation is that Fedora has abandoned Grafana at 6.1.6 and I am going to 'upgrade' it with the upstream 6.2.1, which will hopefully be a transparent replacement and not blow up in my face. The most annoying future is that Fedora and Grafana keep ping-ponging versions back and forth, which will make 'dnf upgrade' into a minefield (because it will frequently try to give me a 'grafana' upgrade that I don't want and that would be dangerous to accept). And of course this situation turns Fedora version upgrades into their own minefield, since now I risk an upgrade to Fedora 30 actually reverting the 'grafana' package version on me.

Err codemadness.org 70 i 22563 Err codemadness.org 70 i 22564
Err codemadness.org 70 i 22565
Err codemadness.org 70 i 22566 Err codemadness.org 70 i 22567

Beastie Bits

Err codemadness.org 70 i 22568 Err codemadness.org 70 i 22569 Err codemadness.org 70 i 22578 Err codemadness.org 70 i 22579

Feedback/Questions

Err codemadness.org 70 i 22580 Err codemadness.org 70 i 22581 Err codemadness.org 70 i 22586 Err codemadness.org 70 i 22587
Err codemadness.org 70 i 22588 Err codemadness.org 70 i 22589
    Err codemadness.org 70 i 22590
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 22591 ***
  • Err codemadness.org 70 i 22592
Err codemadness.org 70 i 22593 Err codemadness.org 70 i 22594 ]]> Err codemadness.org 70 i 22598
Err codemadness.org 70 i 22599 https://fireside.fm/player/v2/FYhhasNR+ksMFuwi3 Err codemadness.org 70 i 22600 Err codemadness.org 70 i 22601 ]]> Err codemadness.org 70 i 22602 Err codemadness.org 70 i 22603
Err codemadness.org 70 i 22604 Err codemadness.org 70 i 22605 301: GPU Passthrough Err codemadness.org 70 i 22606 https://www.bsdnow.tv/301 Err codemadness.org 70 i 22607 d11a1228-2ac2-4e13-9d11-7a4c5a2dc0c1 Err codemadness.org 70 i 22608 Wed, 05 Jun 2019 20:15:00 -0700 Err codemadness.org 70 i 22609 Allan Jude Err codemadness.org 70 i 22610 Err codemadness.org 70 i 22611 full Err codemadness.org 70 i 22612 Allan Jude Err codemadness.org 70 i 22613 GPU passthrough on bhyve, confusion with used/free disk space on ZFS, OmniOS Community Edition, pfSense 2.4.4 Release p3, NetBSD 8.1 RC1, FreeNAS as your Server OS, and more. Err codemadness.org 70 i 22614 45:34 Err codemadness.org 70 i 22615 no Err codemadness.org 70 i 22616 Err codemadness.org 70 i 22617 GPU passthrough on bhyve, confusion with used/free disk space on ZFS, OmniOS Community Edition, pfSense 2.4.4 Release p3, NetBSD 8.1 RC1, FreeNAS as your Server OS, and more. Err codemadness.org 70 i 22618 <h2 id="headlines">Headlines</h2> Err codemadness.org 70 i 22619 Err codemadness.org 70 i 22620 <h3 id="gpupassthroughreportedworkingonbhyvehttpspassthroughpostgpupassthroughreportedworkingonbhyve"><a href="https://passthroughpo.st/gpu-passthrough-reported-working-on-bhyve/">GPU Passthrough Reported Working on Bhyve</a></h3> Err codemadness.org 70 i 22621 Err codemadness.org 70 i 22622 <blockquote> Err codemadness.org 70 i 22623 <p>Normally we cover news focused on KVM and sometimes Xen, but something very special has happened with their younger cousin in the BSD world, Bhyve. Err codemadness.org 70 i 22624 For those that don’t know, Bhyve (pronounced bee-hive) is the native hypervisor in FreeBSD. It has many powerful features, but one that’s been a pain point for some years now is VGA passthrough. Consumer GPUs have not been useable until very recently despite limited success with enterprise cards. Err codemadness.org 70 i 22625 However, Twitter user Michael Yuji found a workaround that enables passing through a consumer card to any *nix system configured to use X11:</p> Err codemadness.org 70 i 22626 </blockquote> Err codemadness.org 70 i 22627 Err codemadness.org 70 i 22628 <ul> Err codemadness.org 70 i 22629 <li>https://twitter.com/michael_yuji/status/1127136891365658625</li> Err codemadness.org 70 i 22630 </ul> Err codemadness.org 70 i 22631 Err codemadness.org 70 i 22632 <blockquote> Err codemadness.org 70 i 22633 <p>All you have to do is add a line pointing the X server to the Bus ID of the passed card and the VM will boot, with acceleration and everything. He theorizes that this may not be possible on windows because of the way it looks for display devices, but it’s a solid start. Err codemadness.org 70 i 22634 As soon as development surrounding VGA passthrough matures on Bhyve, it will become a very attractive alternative to more common tools like Hyper-V and Qemu, because it makes many powerful features available in the host system like jails, boot environments, BSD networking, and tight ZFS integration. For example, you could potentially run your Router, NAS, preferred workstation OS and any number of other things in one box, and only have to spin up a single VM because of the flexibility afforded by jails over Linux-based containers. Err codemadness.org 70 i 22635 The user who found this workaround also announced they’d be writing it up at some point, so stay tuned for details on the process. Err codemadness.org 70 i 22636 It’s been slow going on Bhyve passthrough development for a while, but this new revelation is encouraging. We’ll be closely monitoring the situation and report on any other happenings.</p> Err codemadness.org 70 i 22637 Err codemadness.org 70 i 22638 <hr /> Err codemadness.org 70 i 22639 </blockquote> Err codemadness.org 70 i 22640 Err codemadness.org 70 i 22641 <h3 id="confusionwithusedfreediskspaceinzfshttpsoshogbovexilliumorgblog65"><a href="https://oshogbo.vexillium.org/blog/65/">Confusion with used/free disk space in ZFS</a></h3> Err codemadness.org 70 i 22642 Err codemadness.org 70 i 22643 <blockquote> Err codemadness.org 70 i 22644 <p>I use ZFS extensively. ZFS is my favorite file system. I write articles and give lectures about it. I work with it every day. In traditional file systems we use df(1) to determine free space on partitions. We can also use du(1) to count the size of the files in the directory. But it’s different on ZFS and this is the most confusing thing EVER. I always forget which tool reports what disk space usage! Every time somebody asks me, I need to google it. For this reason I decided to document it here - for myself - because if I can’t remember it at least I will not need to google it, as it will be on my blog, but maybe you will also benefit from this blog post if you have the same problem or you are starting your journey with ZFS.</p> Err codemadness.org 70 i 22645 Err codemadness.org 70 i 22646 <p>The understanding of how ZFS is uses space and how to determine which value means what is a crucial thing. I hope thanks to this article I will finally remember it!</p> Err codemadness.org 70 i 22647 </blockquote> Err codemadness.org 70 i 22648 Err codemadness.org 70 i 22649 <hr /> Err codemadness.org 70 i 22650 <h2 id="newsroundup">News Roundup</h2> Err codemadness.org 70 i 22651 Err codemadness.org 70 i 22652 <h3 id="omnioscommunityeditionhttpsomniosceorgarticlerelease030html"><a href="https://omniosce.org/article/release-030.html">OmniOS Community Edition</a></h3> Err codemadness.org 70 i 22653 Err codemadness.org 70 i 22654 <blockquote> Err codemadness.org 70 i 22655 <p>The OmniOS Community Edition Association is proud to announce the general availability of OmniOS - r151030. Err codemadness.org 70 i 22656 OmniOS is published according to a 6-month release cycle, r151030 LTS takes over from r151028, published in November 2018; and since it is a LTS release it also takes over from r151022. The r151030 LTS release will be supported for 3 Years. It is the first LTS release published by the OmniOS CE Association since taking over the reins from OmniTI in 2017. The next LTS release is scheduled for May 2021. The old stable r151026 release is now end-of-life. See the release schedule for further details. Err codemadness.org 70 i 22657 This is only a small selection of the new features, and bug fixes in the new release; review the release notes for full details. Err codemadness.org 70 i 22658 If you upgrade from r22 and want to see all new features added since then, make sure to also read the release notes for r24, r26 and r28. Err codemadness.org 70 i 22659 The OmniOS team and the illumos community have been very active in creating new features and improving existing ones over the last 6 months.</p> Err codemadness.org 70 i 22660 </blockquote> Err codemadness.org 70 i 22661 Err codemadness.org 70 i 22662 <hr /> Err codemadness.org 70 i 22663 <h3 id="pfsense244releasep3isavailablehttpswwwnetgatecomblogpfsense244releasep3nowavailablehtml"><a href="https://www.netgate.com/blog/pfsense-2-4-4-release-p3-now-available.html">pfSense 2.4.4 Release p3 is available</a></h3> Err codemadness.org 70 i 22664 Err codemadness.org 70 i 22665 <blockquote> Err codemadness.org 70 i 22666 <p>We are pleased to announce the release of pfSense® software version 2.4.4-p3, now available for new installations and upgrades! Err codemadness.org 70 i 22667 pfSense software version 2.4.4-p3 is a maintenance release, bringing a number of security enhancements as well as a handful of fixes for issues present in the 2.4.4-p2 release. Err codemadness.org 70 i 22668 pfSense 2.4.4-RELEASE-p3 updates and installation images are available now! Err codemadness.org 70 i 22669 To see a complete list of changes and find more detail, see the Release Notes. Err codemadness.org 70 i 22670 We had hoped to bring you this release a few days earlier, but given the announcement last Tuesday of the Intel Microarchitectural Data Sampling (MDS) issue, we did not have sufficient time to fully incorporate those corrections and properly test for release on Thursday. We felt that it was worth delaying for a few days, rather than making multiple releases within a week.</p> Err codemadness.org 70 i 22671 </blockquote> Err codemadness.org 70 i 22672 Err codemadness.org 70 i 22673 <ul> Err codemadness.org 70 i 22674 <li>Upgrade Notes</li> Err codemadness.org 70 i 22675 </ul> Err codemadness.org 70 i 22676 Err codemadness.org 70 i 22677 <blockquote> Err codemadness.org 70 i 22678 <p>Due to the significant nature of the changes in 2.4.4 and later, Err codemadness.org 70 i 22679 warnings and error messages, particularly from PHP and package updates, are likely to occur during the upgrade process. In nearly all cases these errors are a harmless side effect of the changes between FreeBSD 11.1 and 11.2 and between PHP 5.6 and PHP 7.2. Err codemadness.org 70 i 22680 Always take a backup of the firewall configuration prior to any major change to the firewall, such as an upgrade. Err codemadness.org 70 i 22681 Do not update packages before upgrading pfSense! Either remove all packages or do not update packages before running the upgrade. Err codemadness.org 70 i 22682 The upgrade will take several minutes to complete. The exact time varies based on download speed, hardware speed, and other factors such installed packages. Be patient during the upgrade and allow the firewall enough time to complete the entire process. After the update packages finish downloading it could take 10-20 minutes or more until the upgrade process ends. The firewall may reboot several times during the upgrade process. Monitor the upgrade from the firewall console for the most accurate view.</p> Err codemadness.org 70 i 22683 </blockquote> Err codemadness.org 70 i 22684 Err codemadness.org 70 i 22685 <hr /> Err codemadness.org 70 i 22686 <h3 id="netbsd81rc1isouthttpswwwnetbsdorgreleasesformal8netbsd81html"><a href="https://www.netbsd.org/releases/formal-8/NetBSD-8.1.html">NetBSD 8.1 RC1 is out</a></h3> Err codemadness.org 70 i 22687 Err codemadness.org 70 i 22688 <blockquote> Err codemadness.org 70 i 22689 <p>The NetBSD Project is pleased to announce NetBSD 8.1, the first update of the NetBSD 8 release branch. It represents a selected subset of fixes deemed important for security or stability reasons, as well as new features and enhancements.</p> Err codemadness.org 70 i 22690 Err codemadness.org 70 i 22691 <p>Some highlights of the 8.1 release are:</p> Err codemadness.org 70 i 22692 </blockquote> Err codemadness.org 70 i 22693 Err codemadness.org 70 i 22694 <ul> Err codemadness.org 70 i 22695 <li>x86: Mitigation for INTEL-SA-00233 (MDS)</li> Err codemadness.org 70 i 22696 Err codemadness.org 70 i 22697 <li>Various local user kernel data leaks fixed.</li> Err codemadness.org 70 i 22698 Err codemadness.org 70 i 22699 <li>x86: new rc.conf(5) setting smtoff to disable Simultaneous Multi-Threading</li> Err codemadness.org 70 i 22700 Err codemadness.org 70 i 22701 <li>Various network driver fixes and improvements.</li> Err codemadness.org 70 i 22702 Err codemadness.org 70 i 22703 <li>Fixes for thread local storage (TLS) in position independent executables (PIE).</li> Err codemadness.org 70 i 22704 Err codemadness.org 70 i 22705 <li>Fixes to reproducible builds.</li> Err codemadness.org 70 i 22706 Err codemadness.org 70 i 22707 <li>Fixed a performance regression in tmpfs.</li> Err codemadness.org 70 i 22708 Err codemadness.org 70 i 22709 <li>DRM/KMS improvements.</li> Err codemadness.org 70 i 22710 Err codemadness.org 70 i 22711 <li>bwfm(4) wireless driver for Broadcom FullMAC PCI and USB devices added.</li> Err codemadness.org 70 i 22712 Err codemadness.org 70 i 22713 <li>Various sh(1) fixes.</li> Err codemadness.org 70 i 22714 Err codemadness.org 70 i 22715 <li>mfii(4) SAS driver added.</li> Err codemadness.org 70 i 22716 Err codemadness.org 70 i 22717 <li>hcpcd(8) updated to 7.2.2</li> Err codemadness.org 70 i 22718 Err codemadness.org 70 i 22719 <li>httpd(8) updated.</li> Err codemadness.org 70 i 22720 </ul> Err codemadness.org 70 i 22721 Err codemadness.org 70 i 22722 <hr /> Err codemadness.org 70 i 22723 <h3 id="freenasasyourserveroshttpswwwixsystemscomblogfreenasasyourserveros"><a href="https://www.ixsystems.com/blog/freenas-as-your-server-os/">FreeNAS as your Server OS</a></h3> Err codemadness.org 70 i 22724 Err codemadness.org 70 i 22725 <blockquote> Err codemadness.org 70 i 22726 <p>What if you could have a server OS that had built in RAID, NAS and SAN functionality, and could manage packages, containers and VMs in a GUI? What if that server OS was also free to download and install? Wouldn’t that be kind of awesome? Wouldn’t that be FreeNAS? Err codemadness.org 70 i 22727 FreeNAS is the world’s number one, open source storage OS, but it also comes equipped with all the jails, plugins, and VMs you need to run additional server-level services for things like email and web site hosting. File, Block, and even Object storage is all built-in and can be enabled with a few clicks. The ZFS file system scales to more drives than you could ever buy, with no limits for dataset sizes, snapshots, and restores. Err codemadness.org 70 i 22728 FreeNAS is also 100% FreeBSD. This is the OS used in the Netflix CDN, your PS4, and the basis for iOS. Set up a jail and get started downloading packages like Apache or NGINX for web hosting or Postfix for email service. Err codemadness.org 70 i 22729 Just released, our new TrueCommand management platform also streamlines alerts and enables multi-system monitoring.</p> Err codemadness.org 70 i 22730 </blockquote> Err codemadness.org 70 i 22731 Err codemadness.org 70 i 22732 <hr /> Err codemadness.org 70 i 22733 <h2 id="beastiebits">Beastie Bits</h2> Err codemadness.org 70 i 22734 Err codemadness.org 70 i 22735 <ul> Err codemadness.org 70 i 22736 <li><a href="https://www.babaei.net/blog/keep-crashing-daemons-running-on-freebsd/">Keep Crashing Daemons Running on FreeBSD</a></li> Err codemadness.org 70 i 22737 Err codemadness.org 70 i 22738 <li><a href="https://old.reddit.com/r/freebsd/comments/btksgf/look_what_i_found_today_my_first_set_of_bsd_cds/">Look what I found today... my first set of BSD CDs...</a></li> Err codemadness.org 70 i 22739 Err codemadness.org 70 i 22740 <li><a href="https://wiki.netbsd.org/security/intel_mds/">NetBSD - Intel MDS</a></li> Err codemadness.org 70 i 22741 Err codemadness.org 70 i 22742 <li><a href="https://lists.freebsd.org/pipermail/freebsd-stable/2019-May/091227.html">FreeBSD 11.3-BETA2 -- Please test!</a></li> Err codemadness.org 70 i 22743 </ul> Err codemadness.org 70 i 22744 Err codemadness.org 70 i 22745 <hr /> Err codemadness.org 70 i 22746 <h2 id="feedbackquestions">Feedback/Questions</h2> Err codemadness.org 70 i 22747 Err codemadness.org 70 i 22748 <ul> Err codemadness.org 70 i 22749 <li>Anthony - <a href="http://dpaste.com/33S61HH#wrap">Question</a></li> Err codemadness.org 70 i 22750 Err codemadness.org 70 i 22751 <li>Guntbert - <a href="http://dpaste.com/0NDACM2">Podcast</a></li> Err codemadness.org 70 i 22752 Err codemadness.org 70 i 22753 <li>Guillaume - <a href="http://dpaste.com/0N3Q9TN">Another suggestion for Ales from Serbia</a></li> Err codemadness.org 70 i 22754 </ul> Err codemadness.org 70 i 22755 Err codemadness.org 70 i 22756 <hr /> Err codemadness.org 70 i 22757 <ul> Err codemadness.org 70 i 22758 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 22759 </ul> Err codemadness.org 70 i 22760 Err codemadness.org 70 i 22761 <hr /> Err codemadness.org 70 i 22762 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 22763 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0301.mp4" type="video/mp4"> Err codemadness.org 70 i 22764 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 22765 </video> Err codemadness.org 70 i 22766 Err codemadness.org 70 i 22767 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, omniOS, pfsense, p3 Err codemadness.org 70 i 22768 Err codemadness.org 70 i 22769 GPU passthrough on bhyve, confusion with used/free disk space on ZFS, OmniOS Community Edition, pfSense 2.4.4 Release p3, NetBSD 8.1 RC1, FreeNAS as your Server OS, and more.

Err codemadness.org 70 i 22770 Err codemadness.org 70 i 22771

Headlines

Err codemadness.org 70 i 22772 Err codemadness.org 70 i 22773

GPU Passthrough Reported Working on Bhyve

Err codemadness.org 70 i 22774 Err codemadness.org 70 i 22775
Err codemadness.org 70 i 22776

Normally we cover news focused on KVM and sometimes Xen, but something very special has happened with their younger cousin in the BSD world, Bhyve. Err codemadness.org 70 i 22777 For those that don’t know, Bhyve (pronounced bee-hive) is the native hypervisor in FreeBSD. It has many powerful features, but one that’s been a pain point for some years now is VGA passthrough. Consumer GPUs have not been useable until very recently despite limited success with enterprise cards. Err codemadness.org 70 i 22778 However, Twitter user Michael Yuji found a workaround that enables passing through a consumer card to any *nix system configured to use X11:

Err codemadness.org 70 i 22779
Err codemadness.org 70 i 22780 Err codemadness.org 70 i 22781
    Err codemadness.org 70 i 22782
  • https://twitter.com/michael_yuji/status/1127136891365658625
  • Err codemadness.org 70 i 22783
Err codemadness.org 70 i 22784 Err codemadness.org 70 i 22785
Err codemadness.org 70 i 22786

All you have to do is add a line pointing the X server to the Bus ID of the passed card and the VM will boot, with acceleration and everything. He theorizes that this may not be possible on windows because of the way it looks for display devices, but it’s a solid start. Err codemadness.org 70 i 22787 As soon as development surrounding VGA passthrough matures on Bhyve, it will become a very attractive alternative to more common tools like Hyper-V and Qemu, because it makes many powerful features available in the host system like jails, boot environments, BSD networking, and tight ZFS integration. For example, you could potentially run your Router, NAS, preferred workstation OS and any number of other things in one box, and only have to spin up a single VM because of the flexibility afforded by jails over Linux-based containers. Err codemadness.org 70 i 22788 The user who found this workaround also announced they’d be writing it up at some point, so stay tuned for details on the process. Err codemadness.org 70 i 22789 It’s been slow going on Bhyve passthrough development for a while, but this new revelation is encouraging. We’ll be closely monitoring the situation and report on any other happenings.

Err codemadness.org 70 i 22790 Err codemadness.org 70 i 22791
Err codemadness.org 70 i 22792
Err codemadness.org 70 i 22793 Err codemadness.org 70 i 22794

Confusion with used/free disk space in ZFS

Err codemadness.org 70 i 22795 Err codemadness.org 70 i 22796
Err codemadness.org 70 i 22797

I use ZFS extensively. ZFS is my favorite file system. I write articles and give lectures about it. I work with it every day. In traditional file systems we use df(1) to determine free space on partitions. We can also use du(1) to count the size of the files in the directory. But it’s different on ZFS and this is the most confusing thing EVER. I always forget which tool reports what disk space usage! Every time somebody asks me, I need to google it. For this reason I decided to document it here - for myself - because if I can’t remember it at least I will not need to google it, as it will be on my blog, but maybe you will also benefit from this blog post if you have the same problem or you are starting your journey with ZFS.

Err codemadness.org 70 i 22798 Err codemadness.org 70 i 22799

The understanding of how ZFS is uses space and how to determine which value means what is a crucial thing. I hope thanks to this article I will finally remember it!

Err codemadness.org 70 i 22800
Err codemadness.org 70 i 22801 Err codemadness.org 70 i 22802


Err codemadness.org 70 i 22803 Err codemadness.org 70 i 22804

News Roundup

Err codemadness.org 70 i 22805 Err codemadness.org 70 i 22806

OmniOS Community Edition

Err codemadness.org 70 i 22807 Err codemadness.org 70 i 22808
Err codemadness.org 70 i 22809

The OmniOS Community Edition Association is proud to announce the general availability of OmniOS - r151030. Err codemadness.org 70 i 22810 OmniOS is published according to a 6-month release cycle, r151030 LTS takes over from r151028, published in November 2018; and since it is a LTS release it also takes over from r151022. The r151030 LTS release will be supported for 3 Years. It is the first LTS release published by the OmniOS CE Association since taking over the reins from OmniTI in 2017. The next LTS release is scheduled for May 2021. The old stable r151026 release is now end-of-life. See the release schedule for further details. Err codemadness.org 70 i 22811 This is only a small selection of the new features, and bug fixes in the new release; review the release notes for full details. Err codemadness.org 70 i 22812 If you upgrade from r22 and want to see all new features added since then, make sure to also read the release notes for r24, r26 and r28. Err codemadness.org 70 i 22813 The OmniOS team and the illumos community have been very active in creating new features and improving existing ones over the last 6 months.

Err codemadness.org 70 i 22814
Err codemadness.org 70 i 22815 Err codemadness.org 70 i 22816


Err codemadness.org 70 i 22817 Err codemadness.org 70 i 22818

pfSense 2.4.4 Release p3 is available

Err codemadness.org 70 i 22819 Err codemadness.org 70 i 22820
Err codemadness.org 70 i 22821

We are pleased to announce the release of pfSense® software version 2.4.4-p3, now available for new installations and upgrades! Err codemadness.org 70 i 22822 pfSense software version 2.4.4-p3 is a maintenance release, bringing a number of security enhancements as well as a handful of fixes for issues present in the 2.4.4-p2 release. Err codemadness.org 70 i 22823 pfSense 2.4.4-RELEASE-p3 updates and installation images are available now! Err codemadness.org 70 i 22824 To see a complete list of changes and find more detail, see the Release Notes. Err codemadness.org 70 i 22825 We had hoped to bring you this release a few days earlier, but given the announcement last Tuesday of the Intel Microarchitectural Data Sampling (MDS) issue, we did not have sufficient time to fully incorporate those corrections and properly test for release on Thursday. We felt that it was worth delaying for a few days, rather than making multiple releases within a week.

Err codemadness.org 70 i 22826
Err codemadness.org 70 i 22827 Err codemadness.org 70 i 22828
    Err codemadness.org 70 i 22829
  • Upgrade Notes
  • Err codemadness.org 70 i 22830
Err codemadness.org 70 i 22831 Err codemadness.org 70 i 22832
Err codemadness.org 70 i 22833

Due to the significant nature of the changes in 2.4.4 and later, Err codemadness.org 70 i 22834 warnings and error messages, particularly from PHP and package updates, are likely to occur during the upgrade process. In nearly all cases these errors are a harmless side effect of the changes between FreeBSD 11.1 and 11.2 and between PHP 5.6 and PHP 7.2. Err codemadness.org 70 i 22835 Always take a backup of the firewall configuration prior to any major change to the firewall, such as an upgrade. Err codemadness.org 70 i 22836 Do not update packages before upgrading pfSense! Either remove all packages or do not update packages before running the upgrade. Err codemadness.org 70 i 22837 The upgrade will take several minutes to complete. The exact time varies based on download speed, hardware speed, and other factors such installed packages. Be patient during the upgrade and allow the firewall enough time to complete the entire process. After the update packages finish downloading it could take 10-20 minutes or more until the upgrade process ends. The firewall may reboot several times during the upgrade process. Monitor the upgrade from the firewall console for the most accurate view.

Err codemadness.org 70 i 22838
Err codemadness.org 70 i 22839 Err codemadness.org 70 i 22840


Err codemadness.org 70 i 22841 Err codemadness.org 70 i 22842

NetBSD 8.1 RC1 is out

Err codemadness.org 70 i 22843 Err codemadness.org 70 i 22844
Err codemadness.org 70 i 22845

The NetBSD Project is pleased to announce NetBSD 8.1, the first update of the NetBSD 8 release branch. It represents a selected subset of fixes deemed important for security or stability reasons, as well as new features and enhancements.

Err codemadness.org 70 i 22846 Err codemadness.org 70 i 22847

Some highlights of the 8.1 release are:

Err codemadness.org 70 i 22848
Err codemadness.org 70 i 22849 Err codemadness.org 70 i 22850
    Err codemadness.org 70 i 22851
  • x86: Mitigation for INTEL-SA-00233 (MDS)
  • Err codemadness.org 70 i 22852 Err codemadness.org 70 i 22853
  • Various local user kernel data leaks fixed.
  • Err codemadness.org 70 i 22854 Err codemadness.org 70 i 22855
  • x86: new rc.conf(5) setting smtoff to disable Simultaneous Multi-Threading
  • Err codemadness.org 70 i 22856 Err codemadness.org 70 i 22857
  • Various network driver fixes and improvements.
  • Err codemadness.org 70 i 22858 Err codemadness.org 70 i 22859
  • Fixes for thread local storage (TLS) in position independent executables (PIE).
  • Err codemadness.org 70 i 22860 Err codemadness.org 70 i 22861
  • Fixes to reproducible builds.
  • Err codemadness.org 70 i 22862 Err codemadness.org 70 i 22863
  • Fixed a performance regression in tmpfs.
  • Err codemadness.org 70 i 22864 Err codemadness.org 70 i 22865
  • DRM/KMS improvements.
  • Err codemadness.org 70 i 22866 Err codemadness.org 70 i 22867
  • bwfm(4) wireless driver for Broadcom FullMAC PCI and USB devices added.
  • Err codemadness.org 70 i 22868 Err codemadness.org 70 i 22869
  • Various sh(1) fixes.
  • Err codemadness.org 70 i 22870 Err codemadness.org 70 i 22871
  • mfii(4) SAS driver added.
  • Err codemadness.org 70 i 22872 Err codemadness.org 70 i 22873
  • hcpcd(8) updated to 7.2.2
  • Err codemadness.org 70 i 22874 Err codemadness.org 70 i 22875
  • httpd(8) updated.
  • Err codemadness.org 70 i 22876
Err codemadness.org 70 i 22877 Err codemadness.org 70 i 22878


Err codemadness.org 70 i 22879 Err codemadness.org 70 i 22880

FreeNAS as your Server OS

Err codemadness.org 70 i 22881 Err codemadness.org 70 i 22882
Err codemadness.org 70 i 22883

What if you could have a server OS that had built in RAID, NAS and SAN functionality, and could manage packages, containers and VMs in a GUI? What if that server OS was also free to download and install? Wouldn’t that be kind of awesome? Wouldn’t that be FreeNAS? Err codemadness.org 70 i 22884 FreeNAS is the world’s number one, open source storage OS, but it also comes equipped with all the jails, plugins, and VMs you need to run additional server-level services for things like email and web site hosting. File, Block, and even Object storage is all built-in and can be enabled with a few clicks. The ZFS file system scales to more drives than you could ever buy, with no limits for dataset sizes, snapshots, and restores. Err codemadness.org 70 i 22885 FreeNAS is also 100% FreeBSD. This is the OS used in the Netflix CDN, your PS4, and the basis for iOS. Set up a jail and get started downloading packages like Apache or NGINX for web hosting or Postfix for email service. Err codemadness.org 70 i 22886 Just released, our new TrueCommand management platform also streamlines alerts and enables multi-system monitoring.

Err codemadness.org 70 i 22887
Err codemadness.org 70 i 22888 Err codemadness.org 70 i 22889


Err codemadness.org 70 i 22890 Err codemadness.org 70 i 22891

Beastie Bits

Err codemadness.org 70 i 22892 Err codemadness.org 70 i 22893 Err codemadness.org 70 i 22902 Err codemadness.org 70 i 22903


Err codemadness.org 70 i 22904 Err codemadness.org 70 i 22905

Feedback/Questions

Err codemadness.org 70 i 22906 Err codemadness.org 70 i 22907
    Err codemadness.org 70 i 22908
  • Anthony - Question
  • Err codemadness.org 70 i 22909 Err codemadness.org 70 i 22910
  • Guntbert - Podcast
  • Err codemadness.org 70 i 22911 Err codemadness.org 70 i 22912
  • Guillaume - Another suggestion for Ales from Serbia
  • Err codemadness.org 70 i 22913
Err codemadness.org 70 i 22914 Err codemadness.org 70 i 22915


Err codemadness.org 70 i 22916 Err codemadness.org 70 i 22917
    Err codemadness.org 70 i 22918
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 22919
Err codemadness.org 70 i 22920 Err codemadness.org 70 i 22921


Err codemadness.org 70 i 22922 Err codemadness.org 70 i 22923 ]]> Err codemadness.org 70 i 22927
Err codemadness.org 70 i 22928 Err codemadness.org 70 i 22929 GPU passthrough on bhyve, confusion with used/free disk space on ZFS, OmniOS Community Edition, pfSense 2.4.4 Release p3, NetBSD 8.1 RC1, FreeNAS as your Server OS, and more.

Err codemadness.org 70 i 22930 Err codemadness.org 70 i 22931

Headlines

Err codemadness.org 70 i 22932 Err codemadness.org 70 i 22933

GPU Passthrough Reported Working on Bhyve

Err codemadness.org 70 i 22934 Err codemadness.org 70 i 22935
Err codemadness.org 70 i 22936

Normally we cover news focused on KVM and sometimes Xen, but something very special has happened with their younger cousin in the BSD world, Bhyve. Err codemadness.org 70 i 22937 For those that don’t know, Bhyve (pronounced bee-hive) is the native hypervisor in FreeBSD. It has many powerful features, but one that’s been a pain point for some years now is VGA passthrough. Consumer GPUs have not been useable until very recently despite limited success with enterprise cards. Err codemadness.org 70 i 22938 However, Twitter user Michael Yuji found a workaround that enables passing through a consumer card to any *nix system configured to use X11:

Err codemadness.org 70 i 22939
Err codemadness.org 70 i 22940 Err codemadness.org 70 i 22941
    Err codemadness.org 70 i 22942
  • https://twitter.com/michael_yuji/status/1127136891365658625
  • Err codemadness.org 70 i 22943
Err codemadness.org 70 i 22944 Err codemadness.org 70 i 22945
Err codemadness.org 70 i 22946

All you have to do is add a line pointing the X server to the Bus ID of the passed card and the VM will boot, with acceleration and everything. He theorizes that this may not be possible on windows because of the way it looks for display devices, but it’s a solid start. Err codemadness.org 70 i 22947 As soon as development surrounding VGA passthrough matures on Bhyve, it will become a very attractive alternative to more common tools like Hyper-V and Qemu, because it makes many powerful features available in the host system like jails, boot environments, BSD networking, and tight ZFS integration. For example, you could potentially run your Router, NAS, preferred workstation OS and any number of other things in one box, and only have to spin up a single VM because of the flexibility afforded by jails over Linux-based containers. Err codemadness.org 70 i 22948 The user who found this workaround also announced they’d be writing it up at some point, so stay tuned for details on the process. Err codemadness.org 70 i 22949 It’s been slow going on Bhyve passthrough development for a while, but this new revelation is encouraging. We’ll be closely monitoring the situation and report on any other happenings.

Err codemadness.org 70 i 22950 Err codemadness.org 70 i 22951
Err codemadness.org 70 i 22952
Err codemadness.org 70 i 22953 Err codemadness.org 70 i 22954

Confusion with used/free disk space in ZFS

Err codemadness.org 70 i 22955 Err codemadness.org 70 i 22956
Err codemadness.org 70 i 22957

I use ZFS extensively. ZFS is my favorite file system. I write articles and give lectures about it. I work with it every day. In traditional file systems we use df(1) to determine free space on partitions. We can also use du(1) to count the size of the files in the directory. But it’s different on ZFS and this is the most confusing thing EVER. I always forget which tool reports what disk space usage! Every time somebody asks me, I need to google it. For this reason I decided to document it here - for myself - because if I can’t remember it at least I will not need to google it, as it will be on my blog, but maybe you will also benefit from this blog post if you have the same problem or you are starting your journey with ZFS.

Err codemadness.org 70 i 22958 Err codemadness.org 70 i 22959

The understanding of how ZFS is uses space and how to determine which value means what is a crucial thing. I hope thanks to this article I will finally remember it!

Err codemadness.org 70 i 22960
Err codemadness.org 70 i 22961 Err codemadness.org 70 i 22962


Err codemadness.org 70 i 22963 Err codemadness.org 70 i 22964

News Roundup

Err codemadness.org 70 i 22965 Err codemadness.org 70 i 22966

OmniOS Community Edition

Err codemadness.org 70 i 22967 Err codemadness.org 70 i 22968
Err codemadness.org 70 i 22969

The OmniOS Community Edition Association is proud to announce the general availability of OmniOS - r151030. Err codemadness.org 70 i 22970 OmniOS is published according to a 6-month release cycle, r151030 LTS takes over from r151028, published in November 2018; and since it is a LTS release it also takes over from r151022. The r151030 LTS release will be supported for 3 Years. It is the first LTS release published by the OmniOS CE Association since taking over the reins from OmniTI in 2017. The next LTS release is scheduled for May 2021. The old stable r151026 release is now end-of-life. See the release schedule for further details. Err codemadness.org 70 i 22971 This is only a small selection of the new features, and bug fixes in the new release; review the release notes for full details. Err codemadness.org 70 i 22972 If you upgrade from r22 and want to see all new features added since then, make sure to also read the release notes for r24, r26 and r28. Err codemadness.org 70 i 22973 The OmniOS team and the illumos community have been very active in creating new features and improving existing ones over the last 6 months.

Err codemadness.org 70 i 22974
Err codemadness.org 70 i 22975 Err codemadness.org 70 i 22976


Err codemadness.org 70 i 22977 Err codemadness.org 70 i 22978

pfSense 2.4.4 Release p3 is available

Err codemadness.org 70 i 22979 Err codemadness.org 70 i 22980
Err codemadness.org 70 i 22981

We are pleased to announce the release of pfSense® software version 2.4.4-p3, now available for new installations and upgrades! Err codemadness.org 70 i 22982 pfSense software version 2.4.4-p3 is a maintenance release, bringing a number of security enhancements as well as a handful of fixes for issues present in the 2.4.4-p2 release. Err codemadness.org 70 i 22983 pfSense 2.4.4-RELEASE-p3 updates and installation images are available now! Err codemadness.org 70 i 22984 To see a complete list of changes and find more detail, see the Release Notes. Err codemadness.org 70 i 22985 We had hoped to bring you this release a few days earlier, but given the announcement last Tuesday of the Intel Microarchitectural Data Sampling (MDS) issue, we did not have sufficient time to fully incorporate those corrections and properly test for release on Thursday. We felt that it was worth delaying for a few days, rather than making multiple releases within a week.

Err codemadness.org 70 i 22986
Err codemadness.org 70 i 22987 Err codemadness.org 70 i 22988
    Err codemadness.org 70 i 22989
  • Upgrade Notes
  • Err codemadness.org 70 i 22990
Err codemadness.org 70 i 22991 Err codemadness.org 70 i 22992
Err codemadness.org 70 i 22993

Due to the significant nature of the changes in 2.4.4 and later, Err codemadness.org 70 i 22994 warnings and error messages, particularly from PHP and package updates, are likely to occur during the upgrade process. In nearly all cases these errors are a harmless side effect of the changes between FreeBSD 11.1 and 11.2 and between PHP 5.6 and PHP 7.2. Err codemadness.org 70 i 22995 Always take a backup of the firewall configuration prior to any major change to the firewall, such as an upgrade. Err codemadness.org 70 i 22996 Do not update packages before upgrading pfSense! Either remove all packages or do not update packages before running the upgrade. Err codemadness.org 70 i 22997 The upgrade will take several minutes to complete. The exact time varies based on download speed, hardware speed, and other factors such installed packages. Be patient during the upgrade and allow the firewall enough time to complete the entire process. After the update packages finish downloading it could take 10-20 minutes or more until the upgrade process ends. The firewall may reboot several times during the upgrade process. Monitor the upgrade from the firewall console for the most accurate view.

Err codemadness.org 70 i 22998
Err codemadness.org 70 i 22999 Err codemadness.org 70 i 23000


Err codemadness.org 70 i 23001 Err codemadness.org 70 i 23002

NetBSD 8.1 RC1 is out

Err codemadness.org 70 i 23003 Err codemadness.org 70 i 23004
Err codemadness.org 70 i 23005

The NetBSD Project is pleased to announce NetBSD 8.1, the first update of the NetBSD 8 release branch. It represents a selected subset of fixes deemed important for security or stability reasons, as well as new features and enhancements.

Err codemadness.org 70 i 23006 Err codemadness.org 70 i 23007

Some highlights of the 8.1 release are:

Err codemadness.org 70 i 23008
Err codemadness.org 70 i 23009 Err codemadness.org 70 i 23010
    Err codemadness.org 70 i 23011
  • x86: Mitigation for INTEL-SA-00233 (MDS)
  • Err codemadness.org 70 i 23012 Err codemadness.org 70 i 23013
  • Various local user kernel data leaks fixed.
  • Err codemadness.org 70 i 23014 Err codemadness.org 70 i 23015
  • x86: new rc.conf(5) setting smtoff to disable Simultaneous Multi-Threading
  • Err codemadness.org 70 i 23016 Err codemadness.org 70 i 23017
  • Various network driver fixes and improvements.
  • Err codemadness.org 70 i 23018 Err codemadness.org 70 i 23019
  • Fixes for thread local storage (TLS) in position independent executables (PIE).
  • Err codemadness.org 70 i 23020 Err codemadness.org 70 i 23021
  • Fixes to reproducible builds.
  • Err codemadness.org 70 i 23022 Err codemadness.org 70 i 23023
  • Fixed a performance regression in tmpfs.
  • Err codemadness.org 70 i 23024 Err codemadness.org 70 i 23025
  • DRM/KMS improvements.
  • Err codemadness.org 70 i 23026 Err codemadness.org 70 i 23027
  • bwfm(4) wireless driver for Broadcom FullMAC PCI and USB devices added.
  • Err codemadness.org 70 i 23028 Err codemadness.org 70 i 23029
  • Various sh(1) fixes.
  • Err codemadness.org 70 i 23030 Err codemadness.org 70 i 23031
  • mfii(4) SAS driver added.
  • Err codemadness.org 70 i 23032 Err codemadness.org 70 i 23033
  • hcpcd(8) updated to 7.2.2
  • Err codemadness.org 70 i 23034 Err codemadness.org 70 i 23035
  • httpd(8) updated.
  • Err codemadness.org 70 i 23036
Err codemadness.org 70 i 23037 Err codemadness.org 70 i 23038


Err codemadness.org 70 i 23039 Err codemadness.org 70 i 23040

FreeNAS as your Server OS

Err codemadness.org 70 i 23041 Err codemadness.org 70 i 23042
Err codemadness.org 70 i 23043

What if you could have a server OS that had built in RAID, NAS and SAN functionality, and could manage packages, containers and VMs in a GUI? What if that server OS was also free to download and install? Wouldn’t that be kind of awesome? Wouldn’t that be FreeNAS? Err codemadness.org 70 i 23044 FreeNAS is the world’s number one, open source storage OS, but it also comes equipped with all the jails, plugins, and VMs you need to run additional server-level services for things like email and web site hosting. File, Block, and even Object storage is all built-in and can be enabled with a few clicks. The ZFS file system scales to more drives than you could ever buy, with no limits for dataset sizes, snapshots, and restores. Err codemadness.org 70 i 23045 FreeNAS is also 100% FreeBSD. This is the OS used in the Netflix CDN, your PS4, and the basis for iOS. Set up a jail and get started downloading packages like Apache or NGINX for web hosting or Postfix for email service. Err codemadness.org 70 i 23046 Just released, our new TrueCommand management platform also streamlines alerts and enables multi-system monitoring.

Err codemadness.org 70 i 23047
Err codemadness.org 70 i 23048 Err codemadness.org 70 i 23049


Err codemadness.org 70 i 23050 Err codemadness.org 70 i 23051

Beastie Bits

Err codemadness.org 70 i 23052 Err codemadness.org 70 i 23053 Err codemadness.org 70 i 23062 Err codemadness.org 70 i 23063


Err codemadness.org 70 i 23064 Err codemadness.org 70 i 23065

Feedback/Questions

Err codemadness.org 70 i 23066 Err codemadness.org 70 i 23067
    Err codemadness.org 70 i 23068
  • Anthony - Question
  • Err codemadness.org 70 i 23069 Err codemadness.org 70 i 23070
  • Guntbert - Podcast
  • Err codemadness.org 70 i 23071 Err codemadness.org 70 i 23072
  • Guillaume - Another suggestion for Ales from Serbia
  • Err codemadness.org 70 i 23073
Err codemadness.org 70 i 23074 Err codemadness.org 70 i 23075


Err codemadness.org 70 i 23076 Err codemadness.org 70 i 23077
    Err codemadness.org 70 i 23078
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 23079
Err codemadness.org 70 i 23080 Err codemadness.org 70 i 23081


Err codemadness.org 70 i 23082 Err codemadness.org 70 i 23083 ]]> Err codemadness.org 70 i 23087
Err codemadness.org 70 i 23088 https://fireside.fm/player/v2/FYhhasNR+OlJBI_4R Err codemadness.org 70 i 23089 Err codemadness.org 70 i 23090 ]]> Err codemadness.org 70 i 23091 Err codemadness.org 70 i 23092
Err codemadness.org 70 i 23093 Err codemadness.org 70 i 23094 300: The Big Three Err codemadness.org 70 i 23095 https://www.bsdnow.tv/300 Err codemadness.org 70 i 23096 f4d00ce6-8060-4be0-9049-570b73a6adbd Err codemadness.org 70 i 23097 Thu, 30 May 2019 09:00:00 -0700 Err codemadness.org 70 i 23098 Allan Jude Err codemadness.org 70 i 23099 Err codemadness.org 70 i 23100 full Err codemadness.org 70 i 23101 Allan Jude Err codemadness.org 70 i 23102 FreeBSD 11.3-beta 1 is out, BSDCan 2019 recap, OpenIndiana 2019.04 is out, Overview of ZFS Pools in FreeNAS, why open source firmware is important for security, a new Opnsense release, wireguard on OpenBSD, and more. Err codemadness.org 70 i 23103 1:14:06 Err codemadness.org 70 i 23104 no Err codemadness.org 70 i 23105 Err codemadness.org 70 i 23106 FreeBSD 11.3-beta 1 is out, BSDCan 2019 recap, OpenIndiana 2019.04 is out, Overview of ZFS Pools in FreeNAS, why open source firmware is important for security, a new Opnsense release, wireguard on OpenBSD, and more. Err codemadness.org 70 i 23107 <h2 id="headlines">Headlines</h2> Err codemadness.org 70 i 23108 Err codemadness.org 70 i 23109 <h3 id="freebsd113b1isouthttpslistsfreebsdorgpipermailfreebsdstable2019may091210html"><a href="https://lists.freebsd.org/pipermail/freebsd-stable/2019-May/091210.html">FreeBSD 11.3-b1 is out</a></h3> Err codemadness.org 70 i 23110 Err codemadness.org 70 i 23111 <h3 id="bsdcan2019recaphttpswwwbsdcanorg2019"><a href="https://www.bsdcan.org/2019/">BSDCan 2019 Recap</a></h3> Err codemadness.org 70 i 23112 Err codemadness.org 70 i 23113 <ul> Err codemadness.org 70 i 23114 <li>We’re back from BSDCan and it was a packed week as always.</li> Err codemadness.org 70 i 23115 Err codemadness.org 70 i 23116 <li>It started with <a href="http://bhyvecon.org/">bhyvecon</a> on Tuesday. Meanwhile, Benedict spent the whole day in productive meetings: annual FreeBSD Foundation board meeting and FreeBSD Journal editorial board meeting.</li> Err codemadness.org 70 i 23117 Err codemadness.org 70 i 23118 <li>On Wednesday, tutorials for BSDCan started as well as the <a href="https://wiki.freebsd.org/DevSummit/201905">FreeBSD Developer Summit</a>. In the mornings, there were presentations in the big auditorium, while working groups about networking, failsafe bootcode, development web services, swap space management, and testing/CI were held. Friday had a similar format with an update from the FreeBSD core team and the “have, need, want” session for FreeBSD 13. In the afternoon, there were working groups about translation tools, package base, GSoC/Outreachy, or general hacking. Benedict held his Icinga tutorial in the afternoon with about 15 people attending. Err codemadness.org 70 i 23119 Devsummit presentation slides can be found on the wiki page and video recordings done by <a href="https://www.scaleengine.com/">ScaleEngine</a> are available on <a href="https://www.youtube.com/channel/UCxLxR_oW-NAmChIcSkAyZGQ">FreeBSD’s youtube channel</a>.</li> Err codemadness.org 70 i 23120 Err codemadness.org 70 i 23121 <li>The conference program was a good mixture of sysadmin and tech talks across the major BSDs. Benedict saw the following talks: How ZFS snapshots really work by Matt Ahrens, 20 years in Jail by Michael W. Lucas, OpenZFS BOF session, the future of OpenZFS and FreeBSD, MQTT for system administrators by Jan-Piet Mens, and spent the rest of the time in between in the hallway track. </li> Err codemadness.org 70 i 23122 Err codemadness.org 70 i 23123 <li>Photos from the event are available on <a href="https://www.talegraph.com/tales/Qg446T5bKT">Ollivier Robert’s talegraph Err codemadness.org 70 i 23124 </a> and Diane Bruce’s website for <a href="http://www.db.net/gallery/BSDCan/2019_BSDCan_day_1_web/">day 1</a>, <a href="http://www.db.net/gallery/BSDCan/2019_FreeBSD_Dev_Summit_day_2_web">day 2</a>, <a href="http://www.db.net/gallery/BSDCan/2019_BSDCan_day_1_web">conference day 1</a>, and <a href="http://www.db.net/gallery/BSDCan/2019_BSDCan_day_2_web">conference day 2</a>.</li> Err codemadness.org 70 i 23125 Err codemadness.org 70 i 23126 <li>Thanks to all the sponsors, supporters, organizers, speakers, and attendees for making this yet another great BSDCan. Next year’s BSDCan will be from June 2 - 6, 2020.</li> Err codemadness.org 70 i 23127 </ul> Err codemadness.org 70 i 23128 Err codemadness.org 70 i 23129 <hr /> Err codemadness.org 70 i 23130 <h3 id="openindiana201904isouthttpswwwopenindianaorg20190512openindianahipster201904ishere"><a href="https://www.openindiana.org/2019/05/12/openindiana-hipster-2019-04-is-here/">OpenIndiana 2019.04 is out</a></h3> Err codemadness.org 70 i 23131 Err codemadness.org 70 i 23132 <blockquote> Err codemadness.org 70 i 23133 <p>We have released a new OpenIndiana Hipster snapshot 2019.04. The noticeable changes:</p> Err codemadness.org 70 i 23134 </blockquote> Err codemadness.org 70 i 23135 Err codemadness.org 70 i 23136 <ul> Err codemadness.org 70 i 23137 <li><p>Firefox was updated to 60.6.3 ESR</p></li> Err codemadness.org 70 i 23138 Err codemadness.org 70 i 23139 <li><p>Virtualbox packages were added (including guest additions)</p></li> Err codemadness.org 70 i 23140 Err codemadness.org 70 i 23141 <li><p>Mate was updated to 1.22</p></li> Err codemadness.org 70 i 23142 Err codemadness.org 70 i 23143 <li><p>IPS has received updates from OmniOS CE and Oracle IPS repos, including automatic boot environment naming</p></li> Err codemadness.org 70 i 23144 Err codemadness.org 70 i 23145 <li><p>Some OI-specific applications have been ported from Python 2.7/GTK 2 to Python 3.5/GTK 3</p></li> Err codemadness.org 70 i 23146 Err codemadness.org 70 i 23147 <li><p>Quick Demo Video: https://www.youtube.com/watch?v=tQ0-fo3XNrg</p></li> Err codemadness.org 70 i 23148 </ul> Err codemadness.org 70 i 23149 Err codemadness.org 70 i 23150 <hr /> Err codemadness.org 70 i 23151 <h2 id="newsroundup">News Roundup</h2> Err codemadness.org 70 i 23152 Err codemadness.org 70 i 23153 <h3 id="overviewofzfspoolsinfreenashttpswwwixsystemscomblogzfspoolsinfreenas"><a href="https://www.ixsystems.com/blog/zfs-pools-in-freenas/">Overview of ZFS Pools in FreeNAS</a></h3> Err codemadness.org 70 i 23154 Err codemadness.org 70 i 23155 <blockquote> Err codemadness.org 70 i 23156 <p>FreeNAS uses the OpenZFS (ZFS) file system, which handles both disk and volume management. ZFS offers RAID options mirror, stripe, and its own parity distribution called RAIDZ that functions like RAID5 on hardware RAID. The file system is extremely flexible and secure, with various drive combinations, checksums, snapshots, and replication all possible. For a deeper dive on ZFS technology, read the ZFS Primer section of the FreeNAS documentation.</p> Err codemadness.org 70 i 23157 Err codemadness.org 70 i 23158 <p>SUGGEST LAYOUT attempts to balance usable capacity and redundancy by automatically choosing an ideal vdev layout for the number of available disks.</p> Err codemadness.org 70 i 23159 </blockquote> Err codemadness.org 70 i 23160 Err codemadness.org 70 i 23161 <ul> Err codemadness.org 70 i 23162 <li>The following vdev layout options are available when creating a pool: Err codemadness.org 70 i 23163 Err codemadness.org 70 i 23164 Err codemadness.org 70 i 23165 <ul> Err codemadness.org 70 i 23166 <li>Stripe data is shared on two drives, similar to RAID0)</li> Err codemadness.org 70 i 23167 Err codemadness.org 70 i 23168 <li>Mirror copies data on two drives, similar to RAID1 but not limited to 2 disks)</li> Err codemadness.org 70 i 23169 Err codemadness.org 70 i 23170 <li>RAIDZ1 single parity similar to RAID5</li> Err codemadness.org 70 i 23171 Err codemadness.org 70 i 23172 <li>RAIDZ2 double parity similar to RAID6</li> Err codemadness.org 70 i 23173 Err codemadness.org 70 i 23174 <li>RAIDZ3 which uses triple parity and has no RAID equivalent</li></ul> Err codemadness.org 70 i 23175 </li> Err codemadness.org 70 i 23176 </ul> Err codemadness.org 70 i 23177 Err codemadness.org 70 i 23178 <hr /> Err codemadness.org 70 i 23179 <h3 id="whyopensourcefirmwareisimportantforsecurityhttpsblogjessfrazcompostwhyopensourcefirmwareisimportantforsecurity"><a href="https://blog.jessfraz.com/post/why-open-source-firmware-is-important-for-security/">Why OpenSource Firmware is Important for Security</a></h3> Err codemadness.org 70 i 23180 Err codemadness.org 70 i 23181 <ul> Err codemadness.org 70 i 23182 <li>Roots of Trust</li> Err codemadness.org 70 i 23183 </ul> Err codemadness.org 70 i 23184 Err codemadness.org 70 i 23185 <blockquote> Err codemadness.org 70 i 23186 <p>The goal of the root of trust should be to verify that the software installed in every component of the hardware is the software that was intended. This way you can know without a doubt and verify if hardware has been hacked. Since we have very little to no visibility into the code running in a lot of places in our hardware it is hard to do this. How do we really know that the firmware in a component is not vulnerable or that is doesn’t have any backdoors? Well we can’t. Not unless it was all open source. Err codemadness.org 70 i 23187 Every cloud and vendor seems to have their own way of doing a root of trust. Microsoft has Cerberus, Google has Titan, and Amazon has Nitro. These seem to assume an explicit amount of trust in the proprietary code (the code we cannot see). This leaves me with not a great feeling. Wouldn’t it be better to be able to use all open source code? Then we could verify without a doubt that the code you can read and build yourself is the same code running on hardware for all the various places we have firmware. We could then verify that a machine was in a correct state without a doubt of it being vulnerable or with a backdoor. Err codemadness.org 70 i 23188 It makes me wonder what the smaller cloud providers like DigitalOcean or Packet have for a root of trust. Often times we only hear of these projects from the big three or five. </p> Err codemadness.org 70 i 23189 </blockquote> Err codemadness.org 70 i 23190 Err codemadness.org 70 i 23191 <hr /> Err codemadness.org 70 i 23192 <h3 id="opnsensehttpsopnsenseorgopnsense1918released"><a href="https://opnsense.org/opnsense-19-1-8-released/">OPNsense</a></h3> Err codemadness.org 70 i 23193 Err codemadness.org 70 i 23194 <blockquote> Err codemadness.org 70 i 23195 <p>This update addresses several privilege escalation issues in the access control implementation and new memory disclosure issues in Intel CPUs. We would like to thank Arnaud Cordier and Bill Marquette for the top-notch reports and coordination.</p> Err codemadness.org 70 i 23196 </blockquote> Err codemadness.org 70 i 23197 Err codemadness.org 70 i 23198 <ul> Err codemadness.org 70 i 23199 <li><p>Here are the full patch notes:</p></li> Err codemadness.org 70 i 23200 Err codemadness.org 70 i 23201 <li><p>system: address CVE-2019-11816 privilege escalation bugs[1] (reported by Arnaud Cordier)</p></li> Err codemadness.org 70 i 23202 Err codemadness.org 70 i 23203 <li><p>system: /etc/hosts generation without interface<em>has</em>gateway()</p></li> Err codemadness.org 70 i 23204 Err codemadness.org 70 i 23205 <li><p>system: show correct timestamp in config restore save message (contributed by nhirokinet)</p></li> Err codemadness.org 70 i 23206 Err codemadness.org 70 i 23207 <li><p>system: list the commands for the pluginctl utility when n+ argument is given</p></li> Err codemadness.org 70 i 23208 Err codemadness.org 70 i 23209 <li><p>system: introduce and use userIsAdmin() helper function instead of checking for 'page-all' privilege directly</p></li> Err codemadness.org 70 i 23210 Err codemadness.org 70 i 23211 <li><p>system: use absolute path in widget ACLs (reported by Netgate)</p></li> Err codemadness.org 70 i 23212 Err codemadness.org 70 i 23213 <li><p>system: RRD-related cleanups for less code exposure</p></li> Err codemadness.org 70 i 23214 Err codemadness.org 70 i 23215 <li><p>interfaces: add EN DUID Generation using OPNsense PEN (contributed by Team Rebellion)</p></li> Err codemadness.org 70 i 23216 Err codemadness.org 70 i 23217 <li><p>interfaces: replace legacy<em>getall</em>interface_addresses() usage</p></li> Err codemadness.org 70 i 23218 Err codemadness.org 70 i 23219 <li><p>firewall: fix port validation in aliases with leading / trailing spaces</p></li> Err codemadness.org 70 i 23220 Err codemadness.org 70 i 23221 <li><p>firewall: fix outbound NAT translation display in overview page</p></li> Err codemadness.org 70 i 23222 Err codemadness.org 70 i 23223 <li><p>firewall: prevent CARP outgoing packets from using the configured gateway</p></li> Err codemadness.org 70 i 23224 Err codemadness.org 70 i 23225 <li><p>firewall: use CARP net.inet.carp.demotion to control current demotion in status page</p></li> Err codemadness.org 70 i 23226 Err codemadness.org 70 i 23227 <li><p>firewall: stop live log poller on error result</p></li> Err codemadness.org 70 i 23228 Err codemadness.org 70 i 23229 <li><p>dhcpd: change rule priority to 1 to avoid bogon clash</p></li> Err codemadness.org 70 i 23230 Err codemadness.org 70 i 23231 <li><p>dnsmasq: only admins may edit custom options field</p></li> Err codemadness.org 70 i 23232 Err codemadness.org 70 i 23233 <li><p>firmware: use insecure mode for base and kernel sets when package fingerprints are disabled</p></li> Err codemadness.org 70 i 23234 Err codemadness.org 70 i 23235 <li><p>firmware: add optional device support for base and kernel sets</p></li> Err codemadness.org 70 i 23236 Err codemadness.org 70 i 23237 <li><p>firmware: add Hostcentral mirror (HTTP, Melbourne, Australia)</p></li> Err codemadness.org 70 i 23238 Err codemadness.org 70 i 23239 <li><p>ipsec: always reset rightallowany to default when writing configuration</p></li> Err codemadness.org 70 i 23240 Err codemadness.org 70 i 23241 <li><p>lang: say "hola" to Spanish as the newest available GUI language</p></li> Err codemadness.org 70 i 23242 Err codemadness.org 70 i 23243 <li><p>lang: updates for Chinese, Czech, Japanese, German, French, Russian and Portuguese</p></li> Err codemadness.org 70 i 23244 Err codemadness.org 70 i 23245 <li><p>network time: only admins may edit custom options field</p></li> Err codemadness.org 70 i 23246 Err codemadness.org 70 i 23247 <li><p>openvpn: call openvpn<em>refresh</em>crls() indirectly via plugin_configure() for less code exposure</p></li> Err codemadness.org 70 i 23248 Err codemadness.org 70 i 23249 <li><p>openvpn: only admins may edit custom options field to prevent privilege escalation (reported by Bill Marquette)</p></li> Err codemadness.org 70 i 23250 Err codemadness.org 70 i 23251 <li><p>openvpn: remove custom options field from wizard</p></li> Err codemadness.org 70 i 23252 Err codemadness.org 70 i 23253 <li><p>unbound: only admins may edit custom options field</p></li> Err codemadness.org 70 i 23254 Err codemadness.org 70 i 23255 <li><p>wizard: translate typehint as well</p></li> Err codemadness.org 70 i 23256 Err codemadness.org 70 i 23257 <li><p>plugins: os-freeradius 1.9.3 fixes string interpolation in LDAP filters (contributed by theq86)</p></li> Err codemadness.org 70 i 23258 Err codemadness.org 70 i 23259 <li><p>plugins: os-nginx 1.12[2]</p></li> Err codemadness.org 70 i 23260 Err codemadness.org 70 i 23261 <li><p>plugins: os-theme-cicada 1.17 (contributed by Team Rebellion)</p></li> Err codemadness.org 70 i 23262 Err codemadness.org 70 i 23263 <li><p>plugins: os-theme-tukan 1.17 (contributed by Team Rebellion)</p></li> Err codemadness.org 70 i 23264 Err codemadness.org 70 i 23265 <li><p>src: timezone database information update[3]</p></li> Err codemadness.org 70 i 23266 Err codemadness.org 70 i 23267 <li><p>src: install(1) broken with partially matching relative paths[4]</p></li> Err codemadness.org 70 i 23268 Err codemadness.org 70 i 23269 <li><p>src: microarchitectural Data Sampling (MDS) mitigation[5]</p></li> Err codemadness.org 70 i 23270 Err codemadness.org 70 i 23271 <li><p>ports: ca<em>root</em>nss 3.44</p></li> Err codemadness.org 70 i 23272 Err codemadness.org 70 i 23273 <li><p>ports: php 7.2.18[6]</p></li> Err codemadness.org 70 i 23274 Err codemadness.org 70 i 23275 <li><p>ports: sqlite 3.28.0[7]</p></li> Err codemadness.org 70 i 23276 Err codemadness.org 70 i 23277 <li><p>ports: strongswan custom XAuth generic patch removed</p></li> Err codemadness.org 70 i 23278 </ul> Err codemadness.org 70 i 23279 Err codemadness.org 70 i 23280 <hr /> Err codemadness.org 70 i 23281 <h3 id="wiregaurdonopenbsdhttpsblogjasperlawireguardonopenbsdhtml"><a href="https://blog.jasper.la/wireguard-on-openbsd.html">wiregaurd on OpenBSD</a></h3> Err codemadness.org 70 i 23282 Err codemadness.org 70 i 23283 <blockquote> Err codemadness.org 70 i 23284 <p>Earlier this week I imported a port for WireGuard into the OpenBSD ports tree. At the moment we have the userland daemon and the tools available. The in-kernel implementation is only available for Linux. At the time of writing there are packages available for -current. Err codemadness.org 70 i 23285 Jason A. Donenfeld (WireGuard author) has worked to support OpenBSD in WireGuard and as such his post on ports@ last year got me interested in WireGuard, since then others have toyed with WireGuard on OpenBSD before and as such I've used Ted's article as a reference. Note however that some of the options mentioned there are no longer valid. Also, I'll be using two OpenBSD peers here. Err codemadness.org 70 i 23286 The setup will be as follows: two OpenBSD peers, of which we'll dub wg1 the server and wg2 the client. The WireGuard service on wg1 is listening on 100.64.4.3:51820.</p> Err codemadness.org 70 i 23287 </blockquote> Err codemadness.org 70 i 23288 Err codemadness.org 70 i 23289 <ul> Err codemadness.org 70 i 23290 <li>Conclusion</li> Err codemadness.org 70 i 23291 </ul> Err codemadness.org 70 i 23292 Err codemadness.org 70 i 23293 <blockquote> Err codemadness.org 70 i 23294 <p>WireGuard (cl)aims to be easier to setup and faster than OpenVPN and while I haven't been able to verify the latter, the first is certainly true...once you've figured it out. Most documentation out there is for Linux so I had to figure out the wireguard<em>go service and the tun parameters. But all in all, sure, it's easier. Especially the client configuration on iOS which I didn't cover here because it's essentially pkg</em>add libqrencode ; cat client.conf | qrencode -t ansiutf8, scan the code with the WireGuard app and you're good to go. What is particularly neat is that WireGuard on iOS supports Always-on.</p> Err codemadness.org 70 i 23295 </blockquote> Err codemadness.org 70 i 23296 Err codemadness.org 70 i 23297 <hr /> Err codemadness.org 70 i 23298 <h2 id="beastiebits">Beastie Bits</h2> Err codemadness.org 70 i 23299 Err codemadness.org 70 i 23300 <ul> Err codemadness.org 70 i 23301 <li><a href="https://github.com/SerenityOS/serenity">Serenity OS</a></li> Err codemadness.org 70 i 23302 Err codemadness.org 70 i 23303 <li><a href="https://www.dragonflydigest.com/2019/05/27/22985.html">vkernels vs pmap</a></li> Err codemadness.org 70 i 23304 Err codemadness.org 70 i 23305 <li><a href="https://www.youtube.com/watch?v=EY6q5dv_B-o">Brian Kernighan interviews Ken Thompson</a></li> Err codemadness.org 70 i 23306 Err codemadness.org 70 i 23307 <li><a href="http://blog.netbsd.org/tnf/entry/improvements_in_forking_threading_and">Improvements in forking, threading, and signal code</a></li> Err codemadness.org 70 i 23308 Err codemadness.org 70 i 23309 <li><a href="https://www.dragonflydigest.com/2019/05/21/22946.html">DragonFly 5.4.3</a></li> Err codemadness.org 70 i 23310 Err codemadness.org 70 i 23311 <li><a href="https://magazine.odroid.com/article/netbsd-for-the-the-odroid-c2/">NetBSD on the Odroid C2</a></li> Err codemadness.org 70 i 23312 </ul> Err codemadness.org 70 i 23313 Err codemadness.org 70 i 23314 <hr /> Err codemadness.org 70 i 23315 <h2 id="feedbackquestions">Feedback/Questions</h2> Err codemadness.org 70 i 23316 Err codemadness.org 70 i 23317 <ul> Err codemadness.org 70 i 23318 <li>Paulo - <a href="http://dpaste.com/3VXMGX8">Laptops</a></li> Err codemadness.org 70 i 23319 Err codemadness.org 70 i 23320 <li>A Listener - <a href="http://dpaste.com/0SWJNRX#wrap">Thanks</a></li> Err codemadness.org 70 i 23321 Err codemadness.org 70 i 23322 <li>Bostjan - <a href="http://dpaste.com/35NRF40#wrap">Extend a pool and lower RAM footprint</a></li> Err codemadness.org 70 i 23323 </ul> Err codemadness.org 70 i 23324 Err codemadness.org 70 i 23325 <hr /> Err codemadness.org 70 i 23326 <ul> Err codemadness.org 70 i 23327 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 23328 </ul> Err codemadness.org 70 i 23329 Err codemadness.org 70 i 23330 <hr /> Err codemadness.org 70 i 23331 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 23332 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0300.mp4" type="video/mp4"> Err codemadness.org 70 i 23333 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 23334 </video> Err codemadness.org 70 i 23335 Err codemadness.org 70 i 23336 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, bsdcan, zfs, openindiana, freenas, firmware, wireguard Err codemadness.org 70 i 23337 Err codemadness.org 70 i 23338 FreeBSD 11.3-beta 1 is out, BSDCan 2019 recap, OpenIndiana 2019.04 is out, Overview of ZFS Pools in FreeNAS, why open source firmware is important for security, a new Opnsense release, wireguard on OpenBSD, and more.

Err codemadness.org 70 i 23339 Err codemadness.org 70 i 23340

Headlines

Err codemadness.org 70 i 23341 Err codemadness.org 70 i 23342

FreeBSD 11.3-b1 is out

Err codemadness.org 70 i 23343 Err codemadness.org 70 i 23344

BSDCan 2019 Recap

Err codemadness.org 70 i 23345 Err codemadness.org 70 i 23346
    Err codemadness.org 70 i 23347
  • We’re back from BSDCan and it was a packed week as always.
  • Err codemadness.org 70 i 23348 Err codemadness.org 70 i 23349
  • It started with bhyvecon on Tuesday. Meanwhile, Benedict spent the whole day in productive meetings: annual FreeBSD Foundation board meeting and FreeBSD Journal editorial board meeting.
  • Err codemadness.org 70 i 23350 Err codemadness.org 70 i 23351
  • On Wednesday, tutorials for BSDCan started as well as the FreeBSD Developer Summit. In the mornings, there were presentations in the big auditorium, while working groups about networking, failsafe bootcode, development web services, swap space management, and testing/CI were held. Friday had a similar format with an update from the FreeBSD core team and the “have, need, want” session for FreeBSD 13. In the afternoon, there were working groups about translation tools, package base, GSoC/Outreachy, or general hacking. Benedict held his Icinga tutorial in the afternoon with about 15 people attending. Err codemadness.org 70 i 23352 Devsummit presentation slides can be found on the wiki page and video recordings done by ScaleEngine are available on FreeBSD’s youtube channel.
  • Err codemadness.org 70 i 23353 Err codemadness.org 70 i 23354
  • The conference program was a good mixture of sysadmin and tech talks across the major BSDs. Benedict saw the following talks: How ZFS snapshots really work by Matt Ahrens, 20 years in Jail by Michael W. Lucas, OpenZFS BOF session, the future of OpenZFS and FreeBSD, MQTT for system administrators by Jan-Piet Mens, and spent the rest of the time in between in the hallway track.
  • Err codemadness.org 70 i 23355 Err codemadness.org 70 i 23356
  • Photos from the event are available on Ollivier Robert’s talegraph Err codemadness.org 70 i 23357 and Diane Bruce’s website for day 1, day 2, conference day 1, and conference day 2.
  • Err codemadness.org 70 i 23358 Err codemadness.org 70 i 23359
  • Thanks to all the sponsors, supporters, organizers, speakers, and attendees for making this yet another great BSDCan. Next year’s BSDCan will be from June 2 - 6, 2020.
  • Err codemadness.org 70 i 23360
Err codemadness.org 70 i 23361 Err codemadness.org 70 i 23362


Err codemadness.org 70 i 23363 Err codemadness.org 70 i 23364

OpenIndiana 2019.04 is out

Err codemadness.org 70 i 23365 Err codemadness.org 70 i 23366
Err codemadness.org 70 i 23367

We have released a new OpenIndiana Hipster snapshot 2019.04. The noticeable changes:

Err codemadness.org 70 i 23368
Err codemadness.org 70 i 23369 Err codemadness.org 70 i 23370
    Err codemadness.org 70 i 23371
  • Firefox was updated to 60.6.3 ESR

  • Err codemadness.org 70 i 23372 Err codemadness.org 70 i 23373
  • Virtualbox packages were added (including guest additions)

  • Err codemadness.org 70 i 23374 Err codemadness.org 70 i 23375
  • Mate was updated to 1.22

  • Err codemadness.org 70 i 23376 Err codemadness.org 70 i 23377
  • IPS has received updates from OmniOS CE and Oracle IPS repos, including automatic boot environment naming

  • Err codemadness.org 70 i 23378 Err codemadness.org 70 i 23379
  • Some OI-specific applications have been ported from Python 2.7/GTK 2 to Python 3.5/GTK 3

  • Err codemadness.org 70 i 23380 Err codemadness.org 70 i 23381
  • Quick Demo Video: https://www.youtube.com/watch?v=tQ0-fo3XNrg

  • Err codemadness.org 70 i 23382
Err codemadness.org 70 i 23383 Err codemadness.org 70 i 23384


Err codemadness.org 70 i 23385 Err codemadness.org 70 i 23386

News Roundup

Err codemadness.org 70 i 23387 Err codemadness.org 70 i 23388

Overview of ZFS Pools in FreeNAS

Err codemadness.org 70 i 23389 Err codemadness.org 70 i 23390
Err codemadness.org 70 i 23391

FreeNAS uses the OpenZFS (ZFS) file system, which handles both disk and volume management. ZFS offers RAID options mirror, stripe, and its own parity distribution called RAIDZ that functions like RAID5 on hardware RAID. The file system is extremely flexible and secure, with various drive combinations, checksums, snapshots, and replication all possible. For a deeper dive on ZFS technology, read the ZFS Primer section of the FreeNAS documentation.

Err codemadness.org 70 i 23392 Err codemadness.org 70 i 23393

SUGGEST LAYOUT attempts to balance usable capacity and redundancy by automatically choosing an ideal vdev layout for the number of available disks.

Err codemadness.org 70 i 23394
Err codemadness.org 70 i 23395 Err codemadness.org 70 i 23396
    Err codemadness.org 70 i 23397
  • The following vdev layout options are available when creating a pool: Err codemadness.org 70 i 23398 Err codemadness.org 70 i 23399 Err codemadness.org 70 i 23400
      Err codemadness.org 70 i 23401
    • Stripe data is shared on two drives, similar to RAID0)
    • Err codemadness.org 70 i 23402 Err codemadness.org 70 i 23403
    • Mirror copies data on two drives, similar to RAID1 but not limited to 2 disks)
    • Err codemadness.org 70 i 23404 Err codemadness.org 70 i 23405
    • RAIDZ1 single parity similar to RAID5
    • Err codemadness.org 70 i 23406 Err codemadness.org 70 i 23407
    • RAIDZ2 double parity similar to RAID6
    • Err codemadness.org 70 i 23408 Err codemadness.org 70 i 23409
    • RAIDZ3 which uses triple parity and has no RAID equivalent
    Err codemadness.org 70 i 23410
  • Err codemadness.org 70 i 23411
Err codemadness.org 70 i 23412 Err codemadness.org 70 i 23413


Err codemadness.org 70 i 23414 Err codemadness.org 70 i 23415

Why OpenSource Firmware is Important for Security

Err codemadness.org 70 i 23416 Err codemadness.org 70 i 23417
    Err codemadness.org 70 i 23418
  • Roots of Trust
  • Err codemadness.org 70 i 23419
Err codemadness.org 70 i 23420 Err codemadness.org 70 i 23421
Err codemadness.org 70 i 23422

The goal of the root of trust should be to verify that the software installed in every component of the hardware is the software that was intended. This way you can know without a doubt and verify if hardware has been hacked. Since we have very little to no visibility into the code running in a lot of places in our hardware it is hard to do this. How do we really know that the firmware in a component is not vulnerable or that is doesn’t have any backdoors? Well we can’t. Not unless it was all open source. Err codemadness.org 70 i 23423 Every cloud and vendor seems to have their own way of doing a root of trust. Microsoft has Cerberus, Google has Titan, and Amazon has Nitro. These seem to assume an explicit amount of trust in the proprietary code (the code we cannot see). This leaves me with not a great feeling. Wouldn’t it be better to be able to use all open source code? Then we could verify without a doubt that the code you can read and build yourself is the same code running on hardware for all the various places we have firmware. We could then verify that a machine was in a correct state without a doubt of it being vulnerable or with a backdoor. Err codemadness.org 70 i 23424 It makes me wonder what the smaller cloud providers like DigitalOcean or Packet have for a root of trust. Often times we only hear of these projects from the big three or five.

Err codemadness.org 70 i 23425
Err codemadness.org 70 i 23426 Err codemadness.org 70 i 23427


Err codemadness.org 70 i 23428 Err codemadness.org 70 i 23429

OPNsense

Err codemadness.org 70 i 23430 Err codemadness.org 70 i 23431
Err codemadness.org 70 i 23432

This update addresses several privilege escalation issues in the access control implementation and new memory disclosure issues in Intel CPUs. We would like to thank Arnaud Cordier and Bill Marquette for the top-notch reports and coordination.

Err codemadness.org 70 i 23433
Err codemadness.org 70 i 23434 Err codemadness.org 70 i 23435
    Err codemadness.org 70 i 23436
  • Here are the full patch notes:

  • Err codemadness.org 70 i 23437 Err codemadness.org 70 i 23438
  • system: address CVE-2019-11816 privilege escalation bugs[1] (reported by Arnaud Cordier)

  • Err codemadness.org 70 i 23439 Err codemadness.org 70 i 23440
  • system: /etc/hosts generation without interfacehasgateway()

  • Err codemadness.org 70 i 23441 Err codemadness.org 70 i 23442
  • system: show correct timestamp in config restore save message (contributed by nhirokinet)

  • Err codemadness.org 70 i 23443 Err codemadness.org 70 i 23444
  • system: list the commands for the pluginctl utility when n+ argument is given

  • Err codemadness.org 70 i 23445 Err codemadness.org 70 i 23446
  • system: introduce and use userIsAdmin() helper function instead of checking for 'page-all' privilege directly

  • Err codemadness.org 70 i 23447 Err codemadness.org 70 i 23448
  • system: use absolute path in widget ACLs (reported by Netgate)

  • Err codemadness.org 70 i 23449 Err codemadness.org 70 i 23450
  • system: RRD-related cleanups for less code exposure

  • Err codemadness.org 70 i 23451 Err codemadness.org 70 i 23452
  • interfaces: add EN DUID Generation using OPNsense PEN (contributed by Team Rebellion)

  • Err codemadness.org 70 i 23453 Err codemadness.org 70 i 23454
  • interfaces: replace legacygetallinterface_addresses() usage

  • Err codemadness.org 70 i 23455 Err codemadness.org 70 i 23456
  • firewall: fix port validation in aliases with leading / trailing spaces

  • Err codemadness.org 70 i 23457 Err codemadness.org 70 i 23458
  • firewall: fix outbound NAT translation display in overview page

  • Err codemadness.org 70 i 23459 Err codemadness.org 70 i 23460
  • firewall: prevent CARP outgoing packets from using the configured gateway

  • Err codemadness.org 70 i 23461 Err codemadness.org 70 i 23462
  • firewall: use CARP net.inet.carp.demotion to control current demotion in status page

  • Err codemadness.org 70 i 23463 Err codemadness.org 70 i 23464
  • firewall: stop live log poller on error result

  • Err codemadness.org 70 i 23465 Err codemadness.org 70 i 23466
  • dhcpd: change rule priority to 1 to avoid bogon clash

  • Err codemadness.org 70 i 23467 Err codemadness.org 70 i 23468
  • dnsmasq: only admins may edit custom options field

  • Err codemadness.org 70 i 23469 Err codemadness.org 70 i 23470
  • firmware: use insecure mode for base and kernel sets when package fingerprints are disabled

  • Err codemadness.org 70 i 23471 Err codemadness.org 70 i 23472
  • firmware: add optional device support for base and kernel sets

  • Err codemadness.org 70 i 23473 Err codemadness.org 70 i 23474
  • firmware: add Hostcentral mirror (HTTP, Melbourne, Australia)

  • Err codemadness.org 70 i 23475 Err codemadness.org 70 i 23476
  • ipsec: always reset rightallowany to default when writing configuration

  • Err codemadness.org 70 i 23477 Err codemadness.org 70 i 23478
  • lang: say "hola" to Spanish as the newest available GUI language

  • Err codemadness.org 70 i 23479 Err codemadness.org 70 i 23480
  • lang: updates for Chinese, Czech, Japanese, German, French, Russian and Portuguese

  • Err codemadness.org 70 i 23481 Err codemadness.org 70 i 23482
  • network time: only admins may edit custom options field

  • Err codemadness.org 70 i 23483 Err codemadness.org 70 i 23484
  • openvpn: call openvpnrefreshcrls() indirectly via plugin_configure() for less code exposure

  • Err codemadness.org 70 i 23485 Err codemadness.org 70 i 23486
  • openvpn: only admins may edit custom options field to prevent privilege escalation (reported by Bill Marquette)

  • Err codemadness.org 70 i 23487 Err codemadness.org 70 i 23488
  • openvpn: remove custom options field from wizard

  • Err codemadness.org 70 i 23489 Err codemadness.org 70 i 23490
  • unbound: only admins may edit custom options field

  • Err codemadness.org 70 i 23491 Err codemadness.org 70 i 23492
  • wizard: translate typehint as well

  • Err codemadness.org 70 i 23493 Err codemadness.org 70 i 23494
  • plugins: os-freeradius 1.9.3 fixes string interpolation in LDAP filters (contributed by theq86)

  • Err codemadness.org 70 i 23495 Err codemadness.org 70 i 23496
  • plugins: os-nginx 1.12[2]

  • Err codemadness.org 70 i 23497 Err codemadness.org 70 i 23498
  • plugins: os-theme-cicada 1.17 (contributed by Team Rebellion)

  • Err codemadness.org 70 i 23499 Err codemadness.org 70 i 23500
  • plugins: os-theme-tukan 1.17 (contributed by Team Rebellion)

  • Err codemadness.org 70 i 23501 Err codemadness.org 70 i 23502
  • src: timezone database information update[3]

  • Err codemadness.org 70 i 23503 Err codemadness.org 70 i 23504
  • src: install(1) broken with partially matching relative paths[4]

  • Err codemadness.org 70 i 23505 Err codemadness.org 70 i 23506
  • src: microarchitectural Data Sampling (MDS) mitigation[5]

  • Err codemadness.org 70 i 23507 Err codemadness.org 70 i 23508
  • ports: carootnss 3.44

  • Err codemadness.org 70 i 23509 Err codemadness.org 70 i 23510
  • ports: php 7.2.18[6]

  • Err codemadness.org 70 i 23511 Err codemadness.org 70 i 23512
  • ports: sqlite 3.28.0[7]

  • Err codemadness.org 70 i 23513 Err codemadness.org 70 i 23514
  • ports: strongswan custom XAuth generic patch removed

  • Err codemadness.org 70 i 23515
Err codemadness.org 70 i 23516 Err codemadness.org 70 i 23517


Err codemadness.org 70 i 23518 Err codemadness.org 70 i 23519

wiregaurd on OpenBSD

Err codemadness.org 70 i 23520 Err codemadness.org 70 i 23521
Err codemadness.org 70 i 23522

Earlier this week I imported a port for WireGuard into the OpenBSD ports tree. At the moment we have the userland daemon and the tools available. The in-kernel implementation is only available for Linux. At the time of writing there are packages available for -current. Err codemadness.org 70 i 23523 Jason A. Donenfeld (WireGuard author) has worked to support OpenBSD in WireGuard and as such his post on ports@ last year got me interested in WireGuard, since then others have toyed with WireGuard on OpenBSD before and as such I've used Ted's article as a reference. Note however that some of the options mentioned there are no longer valid. Also, I'll be using two OpenBSD peers here. Err codemadness.org 70 i 23524 The setup will be as follows: two OpenBSD peers, of which we'll dub wg1 the server and wg2 the client. The WireGuard service on wg1 is listening on 100.64.4.3:51820.

Err codemadness.org 70 i 23525
Err codemadness.org 70 i 23526 Err codemadness.org 70 i 23527
    Err codemadness.org 70 i 23528
  • Conclusion
  • Err codemadness.org 70 i 23529
Err codemadness.org 70 i 23530 Err codemadness.org 70 i 23531
Err codemadness.org 70 i 23532

WireGuard (cl)aims to be easier to setup and faster than OpenVPN and while I haven't been able to verify the latter, the first is certainly true...once you've figured it out. Most documentation out there is for Linux so I had to figure out the wireguardgo service and the tun parameters. But all in all, sure, it's easier. Especially the client configuration on iOS which I didn't cover here because it's essentially pkgadd libqrencode ; cat client.conf | qrencode -t ansiutf8, scan the code with the WireGuard app and you're good to go. What is particularly neat is that WireGuard on iOS supports Always-on.

Err codemadness.org 70 i 23533
Err codemadness.org 70 i 23534 Err codemadness.org 70 i 23535


Err codemadness.org 70 i 23536 Err codemadness.org 70 i 23537

Beastie Bits

Err codemadness.org 70 i 23538 Err codemadness.org 70 i 23539 Err codemadness.org 70 i 23552 Err codemadness.org 70 i 23553


Err codemadness.org 70 i 23554 Err codemadness.org 70 i 23555

Feedback/Questions

Err codemadness.org 70 i 23556 Err codemadness.org 70 i 23557
    Err codemadness.org 70 i 23558
  • Paulo - Laptops
  • Err codemadness.org 70 i 23559 Err codemadness.org 70 i 23560
  • A Listener - Thanks
  • Err codemadness.org 70 i 23561 Err codemadness.org 70 i 23562
  • Bostjan - Extend a pool and lower RAM footprint
  • Err codemadness.org 70 i 23563
Err codemadness.org 70 i 23564 Err codemadness.org 70 i 23565


Err codemadness.org 70 i 23566 Err codemadness.org 70 i 23567
    Err codemadness.org 70 i 23568
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 23569
Err codemadness.org 70 i 23570 Err codemadness.org 70 i 23571


Err codemadness.org 70 i 23572 Err codemadness.org 70 i 23573 ]]> Err codemadness.org 70 i 23577
Err codemadness.org 70 i 23578 Err codemadness.org 70 i 23579 FreeBSD 11.3-beta 1 is out, BSDCan 2019 recap, OpenIndiana 2019.04 is out, Overview of ZFS Pools in FreeNAS, why open source firmware is important for security, a new Opnsense release, wireguard on OpenBSD, and more.

Err codemadness.org 70 i 23580 Err codemadness.org 70 i 23581

Headlines

Err codemadness.org 70 i 23582 Err codemadness.org 70 i 23583

FreeBSD 11.3-b1 is out

Err codemadness.org 70 i 23584 Err codemadness.org 70 i 23585

BSDCan 2019 Recap

Err codemadness.org 70 i 23586 Err codemadness.org 70 i 23587
    Err codemadness.org 70 i 23588
  • We’re back from BSDCan and it was a packed week as always.
  • Err codemadness.org 70 i 23589 Err codemadness.org 70 i 23590
  • It started with bhyvecon on Tuesday. Meanwhile, Benedict spent the whole day in productive meetings: annual FreeBSD Foundation board meeting and FreeBSD Journal editorial board meeting.
  • Err codemadness.org 70 i 23591 Err codemadness.org 70 i 23592
  • On Wednesday, tutorials for BSDCan started as well as the FreeBSD Developer Summit. In the mornings, there were presentations in the big auditorium, while working groups about networking, failsafe bootcode, development web services, swap space management, and testing/CI were held. Friday had a similar format with an update from the FreeBSD core team and the “have, need, want” session for FreeBSD 13. In the afternoon, there were working groups about translation tools, package base, GSoC/Outreachy, or general hacking. Benedict held his Icinga tutorial in the afternoon with about 15 people attending. Err codemadness.org 70 i 23593 Devsummit presentation slides can be found on the wiki page and video recordings done by ScaleEngine are available on FreeBSD’s youtube channel.
  • Err codemadness.org 70 i 23594 Err codemadness.org 70 i 23595
  • The conference program was a good mixture of sysadmin and tech talks across the major BSDs. Benedict saw the following talks: How ZFS snapshots really work by Matt Ahrens, 20 years in Jail by Michael W. Lucas, OpenZFS BOF session, the future of OpenZFS and FreeBSD, MQTT for system administrators by Jan-Piet Mens, and spent the rest of the time in between in the hallway track.
  • Err codemadness.org 70 i 23596 Err codemadness.org 70 i 23597
  • Photos from the event are available on Ollivier Robert’s talegraph Err codemadness.org 70 i 23598 and Diane Bruce’s website for day 1, day 2, conference day 1, and conference day 2.
  • Err codemadness.org 70 i 23599 Err codemadness.org 70 i 23600
  • Thanks to all the sponsors, supporters, organizers, speakers, and attendees for making this yet another great BSDCan. Next year’s BSDCan will be from June 2 - 6, 2020.
  • Err codemadness.org 70 i 23601
Err codemadness.org 70 i 23602 Err codemadness.org 70 i 23603


Err codemadness.org 70 i 23604 Err codemadness.org 70 i 23605

OpenIndiana 2019.04 is out

Err codemadness.org 70 i 23606 Err codemadness.org 70 i 23607
Err codemadness.org 70 i 23608

We have released a new OpenIndiana Hipster snapshot 2019.04. The noticeable changes:

Err codemadness.org 70 i 23609
Err codemadness.org 70 i 23610 Err codemadness.org 70 i 23611
    Err codemadness.org 70 i 23612
  • Firefox was updated to 60.6.3 ESR

  • Err codemadness.org 70 i 23613 Err codemadness.org 70 i 23614
  • Virtualbox packages were added (including guest additions)

  • Err codemadness.org 70 i 23615 Err codemadness.org 70 i 23616
  • Mate was updated to 1.22

  • Err codemadness.org 70 i 23617 Err codemadness.org 70 i 23618
  • IPS has received updates from OmniOS CE and Oracle IPS repos, including automatic boot environment naming

  • Err codemadness.org 70 i 23619 Err codemadness.org 70 i 23620
  • Some OI-specific applications have been ported from Python 2.7/GTK 2 to Python 3.5/GTK 3

  • Err codemadness.org 70 i 23621 Err codemadness.org 70 i 23622
  • Quick Demo Video: https://www.youtube.com/watch?v=tQ0-fo3XNrg

  • Err codemadness.org 70 i 23623
Err codemadness.org 70 i 23624 Err codemadness.org 70 i 23625


Err codemadness.org 70 i 23626 Err codemadness.org 70 i 23627

News Roundup

Err codemadness.org 70 i 23628 Err codemadness.org 70 i 23629

Overview of ZFS Pools in FreeNAS

Err codemadness.org 70 i 23630 Err codemadness.org 70 i 23631
Err codemadness.org 70 i 23632

FreeNAS uses the OpenZFS (ZFS) file system, which handles both disk and volume management. ZFS offers RAID options mirror, stripe, and its own parity distribution called RAIDZ that functions like RAID5 on hardware RAID. The file system is extremely flexible and secure, with various drive combinations, checksums, snapshots, and replication all possible. For a deeper dive on ZFS technology, read the ZFS Primer section of the FreeNAS documentation.

Err codemadness.org 70 i 23633 Err codemadness.org 70 i 23634

SUGGEST LAYOUT attempts to balance usable capacity and redundancy by automatically choosing an ideal vdev layout for the number of available disks.

Err codemadness.org 70 i 23635
Err codemadness.org 70 i 23636 Err codemadness.org 70 i 23637
    Err codemadness.org 70 i 23638
  • The following vdev layout options are available when creating a pool: Err codemadness.org 70 i 23639 Err codemadness.org 70 i 23640 Err codemadness.org 70 i 23641
      Err codemadness.org 70 i 23642
    • Stripe data is shared on two drives, similar to RAID0)
    • Err codemadness.org 70 i 23643 Err codemadness.org 70 i 23644
    • Mirror copies data on two drives, similar to RAID1 but not limited to 2 disks)
    • Err codemadness.org 70 i 23645 Err codemadness.org 70 i 23646
    • RAIDZ1 single parity similar to RAID5
    • Err codemadness.org 70 i 23647 Err codemadness.org 70 i 23648
    • RAIDZ2 double parity similar to RAID6
    • Err codemadness.org 70 i 23649 Err codemadness.org 70 i 23650
    • RAIDZ3 which uses triple parity and has no RAID equivalent
    Err codemadness.org 70 i 23651
  • Err codemadness.org 70 i 23652
Err codemadness.org 70 i 23653 Err codemadness.org 70 i 23654


Err codemadness.org 70 i 23655 Err codemadness.org 70 i 23656

Why OpenSource Firmware is Important for Security

Err codemadness.org 70 i 23657 Err codemadness.org 70 i 23658
    Err codemadness.org 70 i 23659
  • Roots of Trust
  • Err codemadness.org 70 i 23660
Err codemadness.org 70 i 23661 Err codemadness.org 70 i 23662
Err codemadness.org 70 i 23663

The goal of the root of trust should be to verify that the software installed in every component of the hardware is the software that was intended. This way you can know without a doubt and verify if hardware has been hacked. Since we have very little to no visibility into the code running in a lot of places in our hardware it is hard to do this. How do we really know that the firmware in a component is not vulnerable or that is doesn’t have any backdoors? Well we can’t. Not unless it was all open source. Err codemadness.org 70 i 23664 Every cloud and vendor seems to have their own way of doing a root of trust. Microsoft has Cerberus, Google has Titan, and Amazon has Nitro. These seem to assume an explicit amount of trust in the proprietary code (the code we cannot see). This leaves me with not a great feeling. Wouldn’t it be better to be able to use all open source code? Then we could verify without a doubt that the code you can read and build yourself is the same code running on hardware for all the various places we have firmware. We could then verify that a machine was in a correct state without a doubt of it being vulnerable or with a backdoor. Err codemadness.org 70 i 23665 It makes me wonder what the smaller cloud providers like DigitalOcean or Packet have for a root of trust. Often times we only hear of these projects from the big three or five.

Err codemadness.org 70 i 23666
Err codemadness.org 70 i 23667 Err codemadness.org 70 i 23668


Err codemadness.org 70 i 23669 Err codemadness.org 70 i 23670

OPNsense

Err codemadness.org 70 i 23671 Err codemadness.org 70 i 23672
Err codemadness.org 70 i 23673

This update addresses several privilege escalation issues in the access control implementation and new memory disclosure issues in Intel CPUs. We would like to thank Arnaud Cordier and Bill Marquette for the top-notch reports and coordination.

Err codemadness.org 70 i 23674
Err codemadness.org 70 i 23675 Err codemadness.org 70 i 23676
    Err codemadness.org 70 i 23677
  • Here are the full patch notes:

  • Err codemadness.org 70 i 23678 Err codemadness.org 70 i 23679
  • system: address CVE-2019-11816 privilege escalation bugs[1] (reported by Arnaud Cordier)

  • Err codemadness.org 70 i 23680 Err codemadness.org 70 i 23681
  • system: /etc/hosts generation without interfacehasgateway()

  • Err codemadness.org 70 i 23682 Err codemadness.org 70 i 23683
  • system: show correct timestamp in config restore save message (contributed by nhirokinet)

  • Err codemadness.org 70 i 23684 Err codemadness.org 70 i 23685
  • system: list the commands for the pluginctl utility when n+ argument is given

  • Err codemadness.org 70 i 23686 Err codemadness.org 70 i 23687
  • system: introduce and use userIsAdmin() helper function instead of checking for 'page-all' privilege directly

  • Err codemadness.org 70 i 23688 Err codemadness.org 70 i 23689
  • system: use absolute path in widget ACLs (reported by Netgate)

  • Err codemadness.org 70 i 23690 Err codemadness.org 70 i 23691
  • system: RRD-related cleanups for less code exposure

  • Err codemadness.org 70 i 23692 Err codemadness.org 70 i 23693
  • interfaces: add EN DUID Generation using OPNsense PEN (contributed by Team Rebellion)

  • Err codemadness.org 70 i 23694 Err codemadness.org 70 i 23695
  • interfaces: replace legacygetallinterface_addresses() usage

  • Err codemadness.org 70 i 23696 Err codemadness.org 70 i 23697
  • firewall: fix port validation in aliases with leading / trailing spaces

  • Err codemadness.org 70 i 23698 Err codemadness.org 70 i 23699
  • firewall: fix outbound NAT translation display in overview page

  • Err codemadness.org 70 i 23700 Err codemadness.org 70 i 23701
  • firewall: prevent CARP outgoing packets from using the configured gateway

  • Err codemadness.org 70 i 23702 Err codemadness.org 70 i 23703
  • firewall: use CARP net.inet.carp.demotion to control current demotion in status page

  • Err codemadness.org 70 i 23704 Err codemadness.org 70 i 23705
  • firewall: stop live log poller on error result

  • Err codemadness.org 70 i 23706 Err codemadness.org 70 i 23707
  • dhcpd: change rule priority to 1 to avoid bogon clash

  • Err codemadness.org 70 i 23708 Err codemadness.org 70 i 23709
  • dnsmasq: only admins may edit custom options field

  • Err codemadness.org 70 i 23710 Err codemadness.org 70 i 23711
  • firmware: use insecure mode for base and kernel sets when package fingerprints are disabled

  • Err codemadness.org 70 i 23712 Err codemadness.org 70 i 23713
  • firmware: add optional device support for base and kernel sets

  • Err codemadness.org 70 i 23714 Err codemadness.org 70 i 23715
  • firmware: add Hostcentral mirror (HTTP, Melbourne, Australia)

  • Err codemadness.org 70 i 23716 Err codemadness.org 70 i 23717
  • ipsec: always reset rightallowany to default when writing configuration

  • Err codemadness.org 70 i 23718 Err codemadness.org 70 i 23719
  • lang: say "hola" to Spanish as the newest available GUI language

  • Err codemadness.org 70 i 23720 Err codemadness.org 70 i 23721
  • lang: updates for Chinese, Czech, Japanese, German, French, Russian and Portuguese

  • Err codemadness.org 70 i 23722 Err codemadness.org 70 i 23723
  • network time: only admins may edit custom options field

  • Err codemadness.org 70 i 23724 Err codemadness.org 70 i 23725
  • openvpn: call openvpnrefreshcrls() indirectly via plugin_configure() for less code exposure

  • Err codemadness.org 70 i 23726 Err codemadness.org 70 i 23727
  • openvpn: only admins may edit custom options field to prevent privilege escalation (reported by Bill Marquette)

  • Err codemadness.org 70 i 23728 Err codemadness.org 70 i 23729
  • openvpn: remove custom options field from wizard

  • Err codemadness.org 70 i 23730 Err codemadness.org 70 i 23731
  • unbound: only admins may edit custom options field

  • Err codemadness.org 70 i 23732 Err codemadness.org 70 i 23733
  • wizard: translate typehint as well

  • Err codemadness.org 70 i 23734 Err codemadness.org 70 i 23735
  • plugins: os-freeradius 1.9.3 fixes string interpolation in LDAP filters (contributed by theq86)

  • Err codemadness.org 70 i 23736 Err codemadness.org 70 i 23737
  • plugins: os-nginx 1.12[2]

  • Err codemadness.org 70 i 23738 Err codemadness.org 70 i 23739
  • plugins: os-theme-cicada 1.17 (contributed by Team Rebellion)

  • Err codemadness.org 70 i 23740 Err codemadness.org 70 i 23741
  • plugins: os-theme-tukan 1.17 (contributed by Team Rebellion)

  • Err codemadness.org 70 i 23742 Err codemadness.org 70 i 23743
  • src: timezone database information update[3]

  • Err codemadness.org 70 i 23744 Err codemadness.org 70 i 23745
  • src: install(1) broken with partially matching relative paths[4]

  • Err codemadness.org 70 i 23746 Err codemadness.org 70 i 23747
  • src: microarchitectural Data Sampling (MDS) mitigation[5]

  • Err codemadness.org 70 i 23748 Err codemadness.org 70 i 23749
  • ports: carootnss 3.44

  • Err codemadness.org 70 i 23750 Err codemadness.org 70 i 23751
  • ports: php 7.2.18[6]

  • Err codemadness.org 70 i 23752 Err codemadness.org 70 i 23753
  • ports: sqlite 3.28.0[7]

  • Err codemadness.org 70 i 23754 Err codemadness.org 70 i 23755
  • ports: strongswan custom XAuth generic patch removed

  • Err codemadness.org 70 i 23756
Err codemadness.org 70 i 23757 Err codemadness.org 70 i 23758


Err codemadness.org 70 i 23759 Err codemadness.org 70 i 23760

wiregaurd on OpenBSD

Err codemadness.org 70 i 23761 Err codemadness.org 70 i 23762
Err codemadness.org 70 i 23763

Earlier this week I imported a port for WireGuard into the OpenBSD ports tree. At the moment we have the userland daemon and the tools available. The in-kernel implementation is only available for Linux. At the time of writing there are packages available for -current. Err codemadness.org 70 i 23764 Jason A. Donenfeld (WireGuard author) has worked to support OpenBSD in WireGuard and as such his post on ports@ last year got me interested in WireGuard, since then others have toyed with WireGuard on OpenBSD before and as such I've used Ted's article as a reference. Note however that some of the options mentioned there are no longer valid. Also, I'll be using two OpenBSD peers here. Err codemadness.org 70 i 23765 The setup will be as follows: two OpenBSD peers, of which we'll dub wg1 the server and wg2 the client. The WireGuard service on wg1 is listening on 100.64.4.3:51820.

Err codemadness.org 70 i 23766
Err codemadness.org 70 i 23767 Err codemadness.org 70 i 23768
    Err codemadness.org 70 i 23769
  • Conclusion
  • Err codemadness.org 70 i 23770
Err codemadness.org 70 i 23771 Err codemadness.org 70 i 23772
Err codemadness.org 70 i 23773

WireGuard (cl)aims to be easier to setup and faster than OpenVPN and while I haven't been able to verify the latter, the first is certainly true...once you've figured it out. Most documentation out there is for Linux so I had to figure out the wireguardgo service and the tun parameters. But all in all, sure, it's easier. Especially the client configuration on iOS which I didn't cover here because it's essentially pkgadd libqrencode ; cat client.conf | qrencode -t ansiutf8, scan the code with the WireGuard app and you're good to go. What is particularly neat is that WireGuard on iOS supports Always-on.

Err codemadness.org 70 i 23774
Err codemadness.org 70 i 23775 Err codemadness.org 70 i 23776


Err codemadness.org 70 i 23777 Err codemadness.org 70 i 23778

Beastie Bits

Err codemadness.org 70 i 23779 Err codemadness.org 70 i 23780 Err codemadness.org 70 i 23793 Err codemadness.org 70 i 23794


Err codemadness.org 70 i 23795 Err codemadness.org 70 i 23796

Feedback/Questions

Err codemadness.org 70 i 23797 Err codemadness.org 70 i 23798
    Err codemadness.org 70 i 23799
  • Paulo - Laptops
  • Err codemadness.org 70 i 23800 Err codemadness.org 70 i 23801
  • A Listener - Thanks
  • Err codemadness.org 70 i 23802 Err codemadness.org 70 i 23803
  • Bostjan - Extend a pool and lower RAM footprint
  • Err codemadness.org 70 i 23804
Err codemadness.org 70 i 23805 Err codemadness.org 70 i 23806


Err codemadness.org 70 i 23807 Err codemadness.org 70 i 23808
    Err codemadness.org 70 i 23809
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 23810
Err codemadness.org 70 i 23811 Err codemadness.org 70 i 23812


Err codemadness.org 70 i 23813 Err codemadness.org 70 i 23814 ]]> Err codemadness.org 70 i 23818
Err codemadness.org 70 i 23819 https://fireside.fm/player/v2/FYhhasNR+XngnkJ3s Err codemadness.org 70 i 23820 Err codemadness.org 70 i 23821 ]]> Err codemadness.org 70 i 23822 Err codemadness.org 70 i 23823
Err codemadness.org 70 i 23824 Err codemadness.org 70 i 23825 299: The NAS Fleet Err codemadness.org 70 i 23826 https://www.bsdnow.tv/299 Err codemadness.org 70 i 23827 22eb77a0-e162-4fce-bb37-987c1d34c477 Err codemadness.org 70 i 23828 Wed, 22 May 2019 11:00:00 -0700 Err codemadness.org 70 i 23829 Allan Jude Err codemadness.org 70 i 23830 Err codemadness.org 70 i 23831 full Err codemadness.org 70 i 23832 Allan Jude Err codemadness.org 70 i 23833 Running AIX on QEMU on Linux on Windows, your NAS fleet with TrueCommand, Unleashed 1.3 is available, LLDB: CPU register inspection support extension, V7 Unix programs often not written as expected, and more. Err codemadness.org 70 i 23834 52:47 Err codemadness.org 70 i 23835 no Err codemadness.org 70 i 23836 Err codemadness.org 70 i 23837 Running AIX on QEMU on Linux on Windows, your NAS fleet with TrueCommand, Unleashed 1.3 is available, LLDB: CPU register inspection support extension, V7 Unix programs often not written as expected, and more. Err codemadness.org 70 i 23838 <h2 id="headlines">Headlines</h2> Err codemadness.org 70 i 23839 Err codemadness.org 70 i 23840 <h3 id="runningaixonqemuonlinuxonwindowshttpsvirtuallyfuncomwordpress20190422installingaixonqemu"><a href="https://virtuallyfun.com/wordpress/2019/04/22/installing-aix-on-qemu/">Running AiX on QEMU on Linux on Windows</a></h3> Err codemadness.org 70 i 23841 Err codemadness.org 70 i 23842 <blockquote> Err codemadness.org 70 i 23843 <p>YES it’s real! Err codemadness.org 70 i 23844 I’m using the Linux subsystem on Windows, as it’s easier to build this Qemu tree from source. I’m using Debian, but these steps will work on other systems that use Debian as a base. Err codemadness.org 70 i 23845 first thing first, you need to get your system with the needed pre-requisites to compile Err codemadness.org 70 i 23846 Great with those in place, now clone Artyom Tarasenko’s source repository Err codemadness.org 70 i 23847 Since the frame buffer apparently isn’t quite working just yet, I configure for something more like a text mode build. Err codemadness.org 70 i 23848 Now for me, GCC 7 didn’t build the source cleanly. I had to make a change to the file config-host.mak and remove all references to -Werror. Also I removed the sound hooks, as we won’t need them. Err codemadness.org 70 i 23849 Now you can build Qemu. Err codemadness.org 70 i 23850 Okay, all being well you now have a Qemu. Now following the steps from Artyom Tarasenko’s blog post, we can get started on the install!</p> Err codemadness.org 70 i 23851 </blockquote> Err codemadness.org 70 i 23852 Err codemadness.org 70 i 23853 <ul> Err codemadness.org 70 i 23854 <li>See article for rest of walkthrough.</li> Err codemadness.org 70 i 23855 </ul> Err codemadness.org 70 i 23856 Err codemadness.org 70 i 23857 <hr /> Err codemadness.org 70 i 23858 <h3 id="takecommandofyournasfleetwithtruecommandhttpswwwixsystemscomblogtruecommand"><a href="https://www.ixsystems.com/blog/truecommand/">Take Command of Your NAS Fleet with TrueCommand</a></h3> Err codemadness.org 70 i 23859 Err codemadness.org 70 i 23860 <blockquote> Err codemadness.org 70 i 23861 <p>Hundreds of thousands of FreeNAS and TrueNAS systems are deployed around the world, with many sites having dozens of systems. Managing multiple systems individually can be time-consuming. iXsystems has responded to the challenge by creating a “single pane of glass” application to simplify the scaling of data, drive management, and administration of iXsystems NAS platforms. We are proud to introduce TrueCommand. Err codemadness.org 70 i 23862 TrueCommand is a ZFS-aware management application that manages TrueNAS and FreeNAS systems. Err codemadness.org 70 i 23863 The public Beta of TrueCommand is available for download now. TrueCommand can be used with small iXsystems NAS fleets for free. Licenses can be purchased for large-scale deployments and enterprise support. Err codemadness.org 70 i 23864 TrueCommand expands on the ease of use and power of TrueNAS and FreeNAS systems with multi-system management and reporting.</p> Err codemadness.org 70 i 23865 </blockquote> Err codemadness.org 70 i 23866 Err codemadness.org 70 i 23867 <hr /> Err codemadness.org 70 i 23868 <h2 id="newsroundup">News Roundup</h2> Err codemadness.org 70 i 23869 Err codemadness.org 70 i 23870 <h3 id="unleashed13releasedhttplists31bitsnetarchivesdevel2019april000052html"><a href="http://lists.31bits.net/archives/devel/2019-April/000052.html">Unleashed 1.3 Released</a></h3> Err codemadness.org 70 i 23871 Err codemadness.org 70 i 23872 <blockquote> Err codemadness.org 70 i 23873 <p>This is the fourth release of Unleashed - an operating system fork of illumos. For more information about Unleashed itself and the download links, see our website. Err codemadness.org 70 i 23874 As one might expect, this release removes a few things. Err codemadness.org 70 i 23875 The most notable being the removal of ksh93 along with all its libs. Err codemadness.org 70 i 23876 As far as libc interfaces are concerned, a number of non-standard functions were removed. In general, they have been replaced by the standards-compliant versions. (getgrent<em>r, fgetgrent</em>r, getgrgid<em>r, getgrnam</em>r, ttyname<em>r, getlogin</em>r, shmdt, sigwait, gethostname, putmsg, putpmsg, and getaddrinfo) Err codemadness.org 70 i 23877 Additionally, wordexp and wordfree have been removed from libc. Even though they are technically required by POSIX, software doesn't seem to use them. Because of the fragile implementation (shelling out), we took the OpenBSD approach and just removed them. Err codemadness.org 70 i 23878 The default compilation environment now includes <em>XOPEN</em>SOURCE=700 and <strong>EXTENSIONS</strong>. Additionally, all applications now use 64-bit file offsets, making use of <em>LARGEFILE</em>SOURCE, <em>LARGEFILE64</em>SOURCE, and <em>FILE</em>OFFSET_BITS unnecessary. Err codemadness.org 70 i 23879 Last but not least, nightly.sh is no more. In short, to build one simply runs 'make'. (See README for detailed build instructions.)</p> Err codemadness.org 70 i 23880 </blockquote> Err codemadness.org 70 i 23881 Err codemadness.org 70 i 23882 <ul> Err codemadness.org 70 i 23883 <li><a href="https://www.unleashed-os.org/why.html">Why Unleashed</a></li> Err codemadness.org 70 i 23884 </ul> Err codemadness.org 70 i 23885 Err codemadness.org 70 i 23886 <blockquote> Err codemadness.org 70 i 23887 <p>Why did we decide to fork illumos? After all, there are already many illumos distributions available to choose from. We felt we could do better than any of them by taking a more aggressive stance toward compatibility and reducing cruft from code and community interactions alike.</p> Err codemadness.org 70 i 23888 </blockquote> Err codemadness.org 70 i 23889 Err codemadness.org 70 i 23890 <hr /> Err codemadness.org 70 i 23891 <h3 id="lldbextendingcpuregisterinspectionsupporthttpblognetbsdorgtnfentrylldb_extending_cpu_register_inspection"><a href="http://blog.netbsd.org/tnf/entry/lldb_extending_cpu_register_inspection">LLDB: extending CPU register inspection support</a></h3> Err codemadness.org 70 i 23892 Err codemadness.org 70 i 23893 <blockquote> Err codemadness.org 70 i 23894 <p>Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages. Err codemadness.org 70 i 23895 In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support and updating NetBSD distribution to LLVM 8 (which is still stalled by unresolved regressions in inline assembly syntax). You can read more about that in my Mar 2019 report. Err codemadness.org 70 i 23896 In April, my main focus was on fixing and enhancing the support for reading and writing CPU registers. In this report, I'd like to shortly summarize what I have done, what I have learned in the process and what I still need to do.</p> Err codemadness.org 70 i 23897 </blockquote> Err codemadness.org 70 i 23898 Err codemadness.org 70 i 23899 <ul> Err codemadness.org 70 i 23900 <li>Future plans</li> Err codemadness.org 70 i 23901 </ul> Err codemadness.org 70 i 23902 Err codemadness.org 70 i 23903 <blockquote> Err codemadness.org 70 i 23904 <p>My work continues with the two milestones from last month, plus a third that's closely related: Err codemadness.org 70 i 23905 Add support for FPU registers support for NetBSD/i386 and NetBSD/amd64. Err codemadness.org 70 i 23906 Support XSAVE, XSAVEOPT, ... registers in core(5) files on NetBSD/amd64. Err codemadness.org 70 i 23907 Add support for Debug Registers support for NetBSD/i386 and NetBSD/amd64. Err codemadness.org 70 i 23908 The most important point right now is deciding on the format for passing the remaining registers, and implementing the missing ptrace interface kernel-side. The support for core files should follow using the same format then. Err codemadness.org 70 i 23909 Userland-side, I will work on adding matching ATF tests for ptrace features and implement LLDB side of support for the new ptrace interface and core file notes. Afterwards, I will start working on improving support for the same things on 32-bit (i386) executables.</p> Err codemadness.org 70 i 23910 </blockquote> Err codemadness.org 70 i 23911 Err codemadness.org 70 i 23912 <hr /> Err codemadness.org 70 i 23913 <h3 id="v7unixprogramsareoftennotwrittenthewayyouwouldexpecthttpsutccutorontocatcksspaceblogunixedv7codedunusually"><a href="https://utcc.utoronto.ca/~cks/space/blog/unix/EdV7CodedUnusually">V7 Unix programs are often not written the way you would expect</a></h3> Err codemadness.org 70 i 23914 Err codemadness.org 70 i 23915 <blockquote> Err codemadness.org 70 i 23916 <p>Yesterday I wrote that V7 ed read its terminal input in cooked mode a line at a time, which was an efficient, low-CPU design that was important on V7's small and low-power hardware. Then in comments, frankg pointed out that I was wrong about part of that, namely about how ed read its input.</p> Err codemadness.org 70 i 23917 </blockquote> Err codemadness.org 70 i 23918 Err codemadness.org 70 i 23919 <ul> Err codemadness.org 70 i 23920 <li>Sidebar: An interesting undocumented ed feature</li> Err codemadness.org 70 i 23921 </ul> Err codemadness.org 70 i 23922 Err codemadness.org 70 i 23923 <blockquote> Err codemadness.org 70 i 23924 <p>Reading this section of the source code for ed taught me that it has an interesting, undocumented, and entirely characteristic little behavior. Officially, ed commands that have you enter new text have that new text terminate by a . on a line by itself:</p> Err codemadness.org 70 i 23925 Err codemadness.org 70 i 23926 <p>In other words, it turns a single line with '.' into an EOF. The consequence of this is that if you type a real EOF at the start of a line, you get the same result, thus saving you one character (you use Control-D instead of '.' plus newline). This is very V7 Unix behavior, including the lack of documentation.</p> Err codemadness.org 70 i 23927 Err codemadness.org 70 i 23928 <p>This is also a natural behavior in one sense. A proper program has to react to EOF here in some way, and it might as well do so by ending the input mode. It's also natural to go on to try reading from the terminal again for subsequent commands; if this was a real and persistent EOF, for example because the pty closed, you'll just get EOF again and eventually quit. V7 ed is slightly unusual here in that it deliberately converts '.' by itself to EOF, instead of signaling this in a different way, but in a way that's also the simplest approach; if you have to have some signal for each case and you're going to treat them the same, you might as well have the same signal for both cases.</p> Err codemadness.org 70 i 23929 Err codemadness.org 70 i 23930 <p>Modern versions of ed appear to faithfully reimplement this convenient behavior, although they don't appear to document it. I haven't checked OpenBSD, but both FreeBSD ed and GNU ed work like this in a quick test. I haven't checked their source code to see if they implement it the same way.</p> Err codemadness.org 70 i 23931 Err codemadness.org 70 i 23932 <hr /> Err codemadness.org 70 i 23933 </blockquote> Err codemadness.org 70 i 23934 Err codemadness.org 70 i 23935 <h2 id="beastiebits">Beastie Bits</h2> Err codemadness.org 70 i 23936 Err codemadness.org 70 i 23937 <ul> Err codemadness.org 70 i 23938 <li><a href="https://lteo.net/blog/2019/04/27/carolinacon-15-writing-exploit-resistant-code-with-openbsd/">CarolinaCon 15: Writing Exploit-Resistant Code With OpenBSD</a></li> Err codemadness.org 70 i 23939 Err codemadness.org 70 i 23940 <li><a href="https://lists.freebsd.org/pipermail/freebsd-pkgbase/2019-April/000396.html">CFT: FreeBSD Package Base</a></li> Err codemadness.org 70 i 23941 Err codemadness.org 70 i 23942 <li><a href="https://www.dragonflydigest.com/2019/05/02/22862.html">Initial FUSE support in DragonFly</a></li> Err codemadness.org 70 i 23943 Err codemadness.org 70 i 23944 <li><a href="https://www.dragonflydigest.com/2019/05/03/22869.html">Two significant bugfixes for 5.4</a></li> Err codemadness.org 70 i 23945 Err codemadness.org 70 i 23946 <li><a href="https://www.reddit.com/r/openbsd/comments/bkb2zk/surprised_this_can_still_run_current/">Libretto 100ct: 166mhz Pentium, 16gb compactflash, 32mb ram running OpenBSD</a></li> Err codemadness.org 70 i 23947 </ul> Err codemadness.org 70 i 23948 Err codemadness.org 70 i 23949 <hr /> Err codemadness.org 70 i 23950 <h2 id="feedbackquestions">Feedback/Questions</h2> Err codemadness.org 70 i 23951 Err codemadness.org 70 i 23952 <ul> Err codemadness.org 70 i 23953 <li>DJ - <a href="http://dpaste.com/0DSYJAH#wrap">Feedback</a></li> Err codemadness.org 70 i 23954 Err codemadness.org 70 i 23955 <li>Fabian - <a href="http://dpaste.com/2EC7S10#wrap">ZFS ARC</a></li> Err codemadness.org 70 i 23956 Err codemadness.org 70 i 23957 <li>Caleb - <a href="http://dpaste.com/3ZX177B#wrap">Question</a></li> Err codemadness.org 70 i 23958 Err codemadness.org 70 i 23959 <li>A small programming note: After BSDNow episode 300, the podcast will switch to audio-only, using a new higher quality recording and production system. The live stream will likely still include video.</li> Err codemadness.org 70 i 23960 </ul> Err codemadness.org 70 i 23961 Err codemadness.org 70 i 23962 <hr /> Err codemadness.org 70 i 23963 <ul> Err codemadness.org 70 i 23964 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 23965 </ul> Err codemadness.org 70 i 23966 Err codemadness.org 70 i 23967 <hr /> Err codemadness.org 70 i 23968 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 23969 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0299.mp4" type="video/mp4"> Err codemadness.org 70 i 23970 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 23971 </video> Err codemadness.org 70 i 23972 Err codemadness.org 70 i 23973 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, aix, qemu, true command, nas, unleashed, lldb, v7 Err codemadness.org 70 i 23974 Err codemadness.org 70 i 23975 Running AIX on QEMU on Linux on Windows, your NAS fleet with TrueCommand, Unleashed 1.3 is available, LLDB: CPU register inspection support extension, V7 Unix programs often not written as expected, and more.

Err codemadness.org 70 i 23976 Err codemadness.org 70 i 23977

Headlines

Err codemadness.org 70 i 23978 Err codemadness.org 70 i 23979

Running AiX on QEMU on Linux on Windows

Err codemadness.org 70 i 23980 Err codemadness.org 70 i 23981
Err codemadness.org 70 i 23982

YES it’s real! Err codemadness.org 70 i 23983 I’m using the Linux subsystem on Windows, as it’s easier to build this Qemu tree from source. I’m using Debian, but these steps will work on other systems that use Debian as a base. Err codemadness.org 70 i 23984 first thing first, you need to get your system with the needed pre-requisites to compile Err codemadness.org 70 i 23985 Great with those in place, now clone Artyom Tarasenko’s source repository Err codemadness.org 70 i 23986 Since the frame buffer apparently isn’t quite working just yet, I configure for something more like a text mode build. Err codemadness.org 70 i 23987 Now for me, GCC 7 didn’t build the source cleanly. I had to make a change to the file config-host.mak and remove all references to -Werror. Also I removed the sound hooks, as we won’t need them. Err codemadness.org 70 i 23988 Now you can build Qemu. Err codemadness.org 70 i 23989 Okay, all being well you now have a Qemu. Now following the steps from Artyom Tarasenko’s blog post, we can get started on the install!

Err codemadness.org 70 i 23990
Err codemadness.org 70 i 23991 Err codemadness.org 70 i 23992
    Err codemadness.org 70 i 23993
  • See article for rest of walkthrough.
  • Err codemadness.org 70 i 23994
Err codemadness.org 70 i 23995 Err codemadness.org 70 i 23996


Err codemadness.org 70 i 23997 Err codemadness.org 70 i 23998

Take Command of Your NAS Fleet with TrueCommand

Err codemadness.org 70 i 23999 Err codemadness.org 70 i 24000
Err codemadness.org 70 i 24001

Hundreds of thousands of FreeNAS and TrueNAS systems are deployed around the world, with many sites having dozens of systems. Managing multiple systems individually can be time-consuming. iXsystems has responded to the challenge by creating a “single pane of glass” application to simplify the scaling of data, drive management, and administration of iXsystems NAS platforms. We are proud to introduce TrueCommand. Err codemadness.org 70 i 24002 TrueCommand is a ZFS-aware management application that manages TrueNAS and FreeNAS systems. Err codemadness.org 70 i 24003 The public Beta of TrueCommand is available for download now. TrueCommand can be used with small iXsystems NAS fleets for free. Licenses can be purchased for large-scale deployments and enterprise support. Err codemadness.org 70 i 24004 TrueCommand expands on the ease of use and power of TrueNAS and FreeNAS systems with multi-system management and reporting.

Err codemadness.org 70 i 24005
Err codemadness.org 70 i 24006 Err codemadness.org 70 i 24007


Err codemadness.org 70 i 24008 Err codemadness.org 70 i 24009

News Roundup

Err codemadness.org 70 i 24010 Err codemadness.org 70 i 24011

Unleashed 1.3 Released

Err codemadness.org 70 i 24012 Err codemadness.org 70 i 24013
Err codemadness.org 70 i 24014

This is the fourth release of Unleashed - an operating system fork of illumos. For more information about Unleashed itself and the download links, see our website. Err codemadness.org 70 i 24015 As one might expect, this release removes a few things. Err codemadness.org 70 i 24016 The most notable being the removal of ksh93 along with all its libs. Err codemadness.org 70 i 24017 As far as libc interfaces are concerned, a number of non-standard functions were removed. In general, they have been replaced by the standards-compliant versions. (getgrentr, fgetgrentr, getgrgidr, getgrnamr, ttynamer, getloginr, shmdt, sigwait, gethostname, putmsg, putpmsg, and getaddrinfo) Err codemadness.org 70 i 24018 Additionally, wordexp and wordfree have been removed from libc. Even though they are technically required by POSIX, software doesn't seem to use them. Because of the fragile implementation (shelling out), we took the OpenBSD approach and just removed them. Err codemadness.org 70 i 24019 The default compilation environment now includes XOPENSOURCE=700 and EXTENSIONS. Additionally, all applications now use 64-bit file offsets, making use of LARGEFILESOURCE, LARGEFILE64SOURCE, and FILEOFFSET_BITS unnecessary. Err codemadness.org 70 i 24020 Last but not least, nightly.sh is no more. In short, to build one simply runs 'make'. (See README for detailed build instructions.)

Err codemadness.org 70 i 24021
Err codemadness.org 70 i 24022 Err codemadness.org 70 i 24023
    Err codemadness.org 70 i 24024
  • Why Unleashed
  • Err codemadness.org 70 i 24025
Err codemadness.org 70 i 24026 Err codemadness.org 70 i 24027
Err codemadness.org 70 i 24028

Why did we decide to fork illumos? After all, there are already many illumos distributions available to choose from. We felt we could do better than any of them by taking a more aggressive stance toward compatibility and reducing cruft from code and community interactions alike.

Err codemadness.org 70 i 24029
Err codemadness.org 70 i 24030 Err codemadness.org 70 i 24031


Err codemadness.org 70 i 24032 Err codemadness.org 70 i 24033

LLDB: extending CPU register inspection support

Err codemadness.org 70 i 24034 Err codemadness.org 70 i 24035
Err codemadness.org 70 i 24036

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages. Err codemadness.org 70 i 24037 In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support and updating NetBSD distribution to LLVM 8 (which is still stalled by unresolved regressions in inline assembly syntax). You can read more about that in my Mar 2019 report. Err codemadness.org 70 i 24038 In April, my main focus was on fixing and enhancing the support for reading and writing CPU registers. In this report, I'd like to shortly summarize what I have done, what I have learned in the process and what I still need to do.

Err codemadness.org 70 i 24039
Err codemadness.org 70 i 24040 Err codemadness.org 70 i 24041
    Err codemadness.org 70 i 24042
  • Future plans
  • Err codemadness.org 70 i 24043
Err codemadness.org 70 i 24044 Err codemadness.org 70 i 24045
Err codemadness.org 70 i 24046

My work continues with the two milestones from last month, plus a third that's closely related: Err codemadness.org 70 i 24047 Add support for FPU registers support for NetBSD/i386 and NetBSD/amd64. Err codemadness.org 70 i 24048 Support XSAVE, XSAVEOPT, ... registers in core(5) files on NetBSD/amd64. Err codemadness.org 70 i 24049 Add support for Debug Registers support for NetBSD/i386 and NetBSD/amd64. Err codemadness.org 70 i 24050 The most important point right now is deciding on the format for passing the remaining registers, and implementing the missing ptrace interface kernel-side. The support for core files should follow using the same format then. Err codemadness.org 70 i 24051 Userland-side, I will work on adding matching ATF tests for ptrace features and implement LLDB side of support for the new ptrace interface and core file notes. Afterwards, I will start working on improving support for the same things on 32-bit (i386) executables.

Err codemadness.org 70 i 24052
Err codemadness.org 70 i 24053 Err codemadness.org 70 i 24054


Err codemadness.org 70 i 24055 Err codemadness.org 70 i 24056

V7 Unix programs are often not written the way you would expect

Err codemadness.org 70 i 24057 Err codemadness.org 70 i 24058
Err codemadness.org 70 i 24059

Yesterday I wrote that V7 ed read its terminal input in cooked mode a line at a time, which was an efficient, low-CPU design that was important on V7's small and low-power hardware. Then in comments, frankg pointed out that I was wrong about part of that, namely about how ed read its input.

Err codemadness.org 70 i 24060
Err codemadness.org 70 i 24061 Err codemadness.org 70 i 24062
    Err codemadness.org 70 i 24063
  • Sidebar: An interesting undocumented ed feature
  • Err codemadness.org 70 i 24064
Err codemadness.org 70 i 24065 Err codemadness.org 70 i 24066
Err codemadness.org 70 i 24067

Reading this section of the source code for ed taught me that it has an interesting, undocumented, and entirely characteristic little behavior. Officially, ed commands that have you enter new text have that new text terminate by a . on a line by itself:

Err codemadness.org 70 i 24068 Err codemadness.org 70 i 24069

In other words, it turns a single line with '.' into an EOF. The consequence of this is that if you type a real EOF at the start of a line, you get the same result, thus saving you one character (you use Control-D instead of '.' plus newline). This is very V7 Unix behavior, including the lack of documentation.

Err codemadness.org 70 i 24070 Err codemadness.org 70 i 24071

This is also a natural behavior in one sense. A proper program has to react to EOF here in some way, and it might as well do so by ending the input mode. It's also natural to go on to try reading from the terminal again for subsequent commands; if this was a real and persistent EOF, for example because the pty closed, you'll just get EOF again and eventually quit. V7 ed is slightly unusual here in that it deliberately converts '.' by itself to EOF, instead of signaling this in a different way, but in a way that's also the simplest approach; if you have to have some signal for each case and you're going to treat them the same, you might as well have the same signal for both cases.

Err codemadness.org 70 i 24072 Err codemadness.org 70 i 24073

Modern versions of ed appear to faithfully reimplement this convenient behavior, although they don't appear to document it. I haven't checked OpenBSD, but both FreeBSD ed and GNU ed work like this in a quick test. I haven't checked their source code to see if they implement it the same way.

Err codemadness.org 70 i 24074 Err codemadness.org 70 i 24075
Err codemadness.org 70 i 24076
Err codemadness.org 70 i 24077 Err codemadness.org 70 i 24078

Beastie Bits

Err codemadness.org 70 i 24079 Err codemadness.org 70 i 24080 Err codemadness.org 70 i 24091 Err codemadness.org 70 i 24092


Err codemadness.org 70 i 24093 Err codemadness.org 70 i 24094

Feedback/Questions

Err codemadness.org 70 i 24095 Err codemadness.org 70 i 24096
    Err codemadness.org 70 i 24097
  • DJ - Feedback
  • Err codemadness.org 70 i 24098 Err codemadness.org 70 i 24099
  • Fabian - ZFS ARC
  • Err codemadness.org 70 i 24100 Err codemadness.org 70 i 24101
  • Caleb - Question
  • Err codemadness.org 70 i 24102 Err codemadness.org 70 i 24103
  • A small programming note: After BSDNow episode 300, the podcast will switch to audio-only, using a new higher quality recording and production system. The live stream will likely still include video.
  • Err codemadness.org 70 i 24104
Err codemadness.org 70 i 24105 Err codemadness.org 70 i 24106


Err codemadness.org 70 i 24107 Err codemadness.org 70 i 24108
    Err codemadness.org 70 i 24109
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 24110
Err codemadness.org 70 i 24111 Err codemadness.org 70 i 24112


Err codemadness.org 70 i 24113 Err codemadness.org 70 i 24114 ]]> Err codemadness.org 70 i 24118
Err codemadness.org 70 i 24119 Err codemadness.org 70 i 24120 Running AIX on QEMU on Linux on Windows, your NAS fleet with TrueCommand, Unleashed 1.3 is available, LLDB: CPU register inspection support extension, V7 Unix programs often not written as expected, and more.

Err codemadness.org 70 i 24121 Err codemadness.org 70 i 24122

Headlines

Err codemadness.org 70 i 24123 Err codemadness.org 70 i 24124

Running AiX on QEMU on Linux on Windows

Err codemadness.org 70 i 24125 Err codemadness.org 70 i 24126
Err codemadness.org 70 i 24127

YES it’s real! Err codemadness.org 70 i 24128 I’m using the Linux subsystem on Windows, as it’s easier to build this Qemu tree from source. I’m using Debian, but these steps will work on other systems that use Debian as a base. Err codemadness.org 70 i 24129 first thing first, you need to get your system with the needed pre-requisites to compile Err codemadness.org 70 i 24130 Great with those in place, now clone Artyom Tarasenko’s source repository Err codemadness.org 70 i 24131 Since the frame buffer apparently isn’t quite working just yet, I configure for something more like a text mode build. Err codemadness.org 70 i 24132 Now for me, GCC 7 didn’t build the source cleanly. I had to make a change to the file config-host.mak and remove all references to -Werror. Also I removed the sound hooks, as we won’t need them. Err codemadness.org 70 i 24133 Now you can build Qemu. Err codemadness.org 70 i 24134 Okay, all being well you now have a Qemu. Now following the steps from Artyom Tarasenko’s blog post, we can get started on the install!

Err codemadness.org 70 i 24135
Err codemadness.org 70 i 24136 Err codemadness.org 70 i 24137
    Err codemadness.org 70 i 24138
  • See article for rest of walkthrough.
  • Err codemadness.org 70 i 24139
Err codemadness.org 70 i 24140 Err codemadness.org 70 i 24141


Err codemadness.org 70 i 24142 Err codemadness.org 70 i 24143

Take Command of Your NAS Fleet with TrueCommand

Err codemadness.org 70 i 24144 Err codemadness.org 70 i 24145
Err codemadness.org 70 i 24146

Hundreds of thousands of FreeNAS and TrueNAS systems are deployed around the world, with many sites having dozens of systems. Managing multiple systems individually can be time-consuming. iXsystems has responded to the challenge by creating a “single pane of glass” application to simplify the scaling of data, drive management, and administration of iXsystems NAS platforms. We are proud to introduce TrueCommand. Err codemadness.org 70 i 24147 TrueCommand is a ZFS-aware management application that manages TrueNAS and FreeNAS systems. Err codemadness.org 70 i 24148 The public Beta of TrueCommand is available for download now. TrueCommand can be used with small iXsystems NAS fleets for free. Licenses can be purchased for large-scale deployments and enterprise support. Err codemadness.org 70 i 24149 TrueCommand expands on the ease of use and power of TrueNAS and FreeNAS systems with multi-system management and reporting.

Err codemadness.org 70 i 24150
Err codemadness.org 70 i 24151 Err codemadness.org 70 i 24152


Err codemadness.org 70 i 24153 Err codemadness.org 70 i 24154

News Roundup

Err codemadness.org 70 i 24155 Err codemadness.org 70 i 24156

Unleashed 1.3 Released

Err codemadness.org 70 i 24157 Err codemadness.org 70 i 24158
Err codemadness.org 70 i 24159

This is the fourth release of Unleashed - an operating system fork of illumos. For more information about Unleashed itself and the download links, see our website. Err codemadness.org 70 i 24160 As one might expect, this release removes a few things. Err codemadness.org 70 i 24161 The most notable being the removal of ksh93 along with all its libs. Err codemadness.org 70 i 24162 As far as libc interfaces are concerned, a number of non-standard functions were removed. In general, they have been replaced by the standards-compliant versions. (getgrentr, fgetgrentr, getgrgidr, getgrnamr, ttynamer, getloginr, shmdt, sigwait, gethostname, putmsg, putpmsg, and getaddrinfo) Err codemadness.org 70 i 24163 Additionally, wordexp and wordfree have been removed from libc. Even though they are technically required by POSIX, software doesn't seem to use them. Because of the fragile implementation (shelling out), we took the OpenBSD approach and just removed them. Err codemadness.org 70 i 24164 The default compilation environment now includes XOPENSOURCE=700 and EXTENSIONS. Additionally, all applications now use 64-bit file offsets, making use of LARGEFILESOURCE, LARGEFILE64SOURCE, and FILEOFFSET_BITS unnecessary. Err codemadness.org 70 i 24165 Last but not least, nightly.sh is no more. In short, to build one simply runs 'make'. (See README for detailed build instructions.)

Err codemadness.org 70 i 24166
Err codemadness.org 70 i 24167 Err codemadness.org 70 i 24168
    Err codemadness.org 70 i 24169
  • Why Unleashed
  • Err codemadness.org 70 i 24170
Err codemadness.org 70 i 24171 Err codemadness.org 70 i 24172
Err codemadness.org 70 i 24173

Why did we decide to fork illumos? After all, there are already many illumos distributions available to choose from. We felt we could do better than any of them by taking a more aggressive stance toward compatibility and reducing cruft from code and community interactions alike.

Err codemadness.org 70 i 24174
Err codemadness.org 70 i 24175 Err codemadness.org 70 i 24176


Err codemadness.org 70 i 24177 Err codemadness.org 70 i 24178

LLDB: extending CPU register inspection support

Err codemadness.org 70 i 24179 Err codemadness.org 70 i 24180
Err codemadness.org 70 i 24181

Upstream describes LLDB as a next generation, high-performance debugger. It is built on top of LLVM/Clang toolchain, and features great integration with it. At the moment, it primarily supports debugging C, C++ and ObjC code, and there is interest in extending it to more languages. Err codemadness.org 70 i 24182 In February, I have started working on LLDB, as contracted by the NetBSD Foundation. So far I've been working on reenabling continuous integration, squashing bugs, improving NetBSD core file support and updating NetBSD distribution to LLVM 8 (which is still stalled by unresolved regressions in inline assembly syntax). You can read more about that in my Mar 2019 report. Err codemadness.org 70 i 24183 In April, my main focus was on fixing and enhancing the support for reading and writing CPU registers. In this report, I'd like to shortly summarize what I have done, what I have learned in the process and what I still need to do.

Err codemadness.org 70 i 24184
Err codemadness.org 70 i 24185 Err codemadness.org 70 i 24186
    Err codemadness.org 70 i 24187
  • Future plans
  • Err codemadness.org 70 i 24188
Err codemadness.org 70 i 24189 Err codemadness.org 70 i 24190
Err codemadness.org 70 i 24191

My work continues with the two milestones from last month, plus a third that's closely related: Err codemadness.org 70 i 24192 Add support for FPU registers support for NetBSD/i386 and NetBSD/amd64. Err codemadness.org 70 i 24193 Support XSAVE, XSAVEOPT, ... registers in core(5) files on NetBSD/amd64. Err codemadness.org 70 i 24194 Add support for Debug Registers support for NetBSD/i386 and NetBSD/amd64. Err codemadness.org 70 i 24195 The most important point right now is deciding on the format for passing the remaining registers, and implementing the missing ptrace interface kernel-side. The support for core files should follow using the same format then. Err codemadness.org 70 i 24196 Userland-side, I will work on adding matching ATF tests for ptrace features and implement LLDB side of support for the new ptrace interface and core file notes. Afterwards, I will start working on improving support for the same things on 32-bit (i386) executables.

Err codemadness.org 70 i 24197
Err codemadness.org 70 i 24198 Err codemadness.org 70 i 24199


Err codemadness.org 70 i 24200 Err codemadness.org 70 i 24201

V7 Unix programs are often not written the way you would expect

Err codemadness.org 70 i 24202 Err codemadness.org 70 i 24203
Err codemadness.org 70 i 24204

Yesterday I wrote that V7 ed read its terminal input in cooked mode a line at a time, which was an efficient, low-CPU design that was important on V7's small and low-power hardware. Then in comments, frankg pointed out that I was wrong about part of that, namely about how ed read its input.

Err codemadness.org 70 i 24205
Err codemadness.org 70 i 24206 Err codemadness.org 70 i 24207
    Err codemadness.org 70 i 24208
  • Sidebar: An interesting undocumented ed feature
  • Err codemadness.org 70 i 24209
Err codemadness.org 70 i 24210 Err codemadness.org 70 i 24211
Err codemadness.org 70 i 24212

Reading this section of the source code for ed taught me that it has an interesting, undocumented, and entirely characteristic little behavior. Officially, ed commands that have you enter new text have that new text terminate by a . on a line by itself:

Err codemadness.org 70 i 24213 Err codemadness.org 70 i 24214

In other words, it turns a single line with '.' into an EOF. The consequence of this is that if you type a real EOF at the start of a line, you get the same result, thus saving you one character (you use Control-D instead of '.' plus newline). This is very V7 Unix behavior, including the lack of documentation.

Err codemadness.org 70 i 24215 Err codemadness.org 70 i 24216

This is also a natural behavior in one sense. A proper program has to react to EOF here in some way, and it might as well do so by ending the input mode. It's also natural to go on to try reading from the terminal again for subsequent commands; if this was a real and persistent EOF, for example because the pty closed, you'll just get EOF again and eventually quit. V7 ed is slightly unusual here in that it deliberately converts '.' by itself to EOF, instead of signaling this in a different way, but in a way that's also the simplest approach; if you have to have some signal for each case and you're going to treat them the same, you might as well have the same signal for both cases.

Err codemadness.org 70 i 24217 Err codemadness.org 70 i 24218

Modern versions of ed appear to faithfully reimplement this convenient behavior, although they don't appear to document it. I haven't checked OpenBSD, but both FreeBSD ed and GNU ed work like this in a quick test. I haven't checked their source code to see if they implement it the same way.

Err codemadness.org 70 i 24219 Err codemadness.org 70 i 24220
Err codemadness.org 70 i 24221
Err codemadness.org 70 i 24222 Err codemadness.org 70 i 24223

Beastie Bits

Err codemadness.org 70 i 24224 Err codemadness.org 70 i 24225 Err codemadness.org 70 i 24236 Err codemadness.org 70 i 24237


Err codemadness.org 70 i 24238 Err codemadness.org 70 i 24239

Feedback/Questions

Err codemadness.org 70 i 24240 Err codemadness.org 70 i 24241
    Err codemadness.org 70 i 24242
  • DJ - Feedback
  • Err codemadness.org 70 i 24243 Err codemadness.org 70 i 24244
  • Fabian - ZFS ARC
  • Err codemadness.org 70 i 24245 Err codemadness.org 70 i 24246
  • Caleb - Question
  • Err codemadness.org 70 i 24247 Err codemadness.org 70 i 24248
  • A small programming note: After BSDNow episode 300, the podcast will switch to audio-only, using a new higher quality recording and production system. The live stream will likely still include video.
  • Err codemadness.org 70 i 24249
Err codemadness.org 70 i 24250 Err codemadness.org 70 i 24251


Err codemadness.org 70 i 24252 Err codemadness.org 70 i 24253
    Err codemadness.org 70 i 24254
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 24255
Err codemadness.org 70 i 24256 Err codemadness.org 70 i 24257


Err codemadness.org 70 i 24258 Err codemadness.org 70 i 24259 ]]> Err codemadness.org 70 i 24263
Err codemadness.org 70 i 24264 https://fireside.fm/player/v2/FYhhasNR+RgAQrAoA Err codemadness.org 70 i 24265 Err codemadness.org 70 i 24266 ]]> Err codemadness.org 70 i 24267 Err codemadness.org 70 i 24268
Err codemadness.org 70 i 24269 Err codemadness.org 70 i 24270 298: BSD On The Road Err codemadness.org 70 i 24271 https://www.bsdnow.tv/298 Err codemadness.org 70 i 24272 85a43874-a080-4a57-9fb0-2a0210e9718e Err codemadness.org 70 i 24273 Wed, 15 May 2019 20:00:00 -0700 Err codemadness.org 70 i 24274 Allan Jude Err codemadness.org 70 i 24275 Err codemadness.org 70 i 24276 full Err codemadness.org 70 i 24277 Allan Jude Err codemadness.org 70 i 24278 36 year old UFS bug fixed, a BSD for the road, automatic upgrades with OpenBSD, DTrace ext2fs support in FreeBSD, Dedicated SSH tunnel user, upgrading VMM VMs to OpenBSD 6.5, and more. Err codemadness.org 70 i 24279 52:22 Err codemadness.org 70 i 24280 no Err codemadness.org 70 i 24281 Err codemadness.org 70 i 24282 36 year old UFS bug fixed, a BSD for the road, automatic upgrades with OpenBSD, DTrace ext2fs support in FreeBSD, Dedicated SSH tunnel user, upgrading VMM VMs to OpenBSD 6.5, and more. Err codemadness.org 70 i 24283 <h2 id="headlines">Headlines</h2> Err codemadness.org 70 i 24284 Err codemadness.org 70 i 24285 <h3 id="36yearoldbuginffsufsdiscoveredandpatchedhttpssvnwebfreebsdorgbaseviewrevisionrevision347066"><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=347066">36+ year old bug in FFS/UFS discovered and patched </a></h3> Err codemadness.org 70 i 24286 Err codemadness.org 70 i 24287 <blockquote> Err codemadness.org 70 i 24288 <p>This update eliminates a kernel stack disclosure bug in UFS/FFS directory entries that is caused by uninitialized directory entry padding written to the disk.</p> Err codemadness.org 70 i 24289 Err codemadness.org 70 i 24290 <ul> Err codemadness.org 70 i 24291 <li>When the directory entry is written to disk, it is written as a full 32bit entry, and the unused bytes were not initialized, so could possibly contain sensitive data from the kernel stack Err codemadness.org 70 i 24292 It can be viewed by any user with read access to that directory. Up to 3 bytes of kernel stack are disclosed per file entry, depending on the the amount of padding the kernel needs to pad out the entry to a 32 bit boundary. The offset in the kernel stack that is disclosed is a function of the filename size. Furthermore, if the user can create files in a directory, this 3 byte window can be expanded 3 bytes at a time to a 254 byte window with 75% of the data in that window exposed. The additional exposure is done by removing the entry, creating a new entry with a 4-byte longer name, extracting 3 more bytes by reading the directory, and repeating until a 252 byte name is created. Err codemadness.org 70 i 24293 This exploit works in part because the area of the kernel stack that is being disclosed is in an area that typically doesn't change that often (perhaps a few times a second on a lightly loaded system), and these file creates and unlinks themselves don't overwrite the area of kernel stack being disclosed. Err codemadness.org 70 i 24294 It appears that this bug originated with the creation of the Fast File System in 4.1b-BSD (Circa 1982, more than 36 years ago!), and is likely present in every Unix or Unix-like system that uses UFS/FFS. Amazingly, nobody noticed until now. Err codemadness.org 70 i 24295 This update also adds the -z flag to fsck_ffs to have it scrub the leaked information in the name padding of existing directories. It only needs to be run once on each UFS/FFS filesystem after a patched kernel is installed and running. Err codemadness.org 70 i 24296 Submitted by: David G. Lawrence <a href="&#109;a&#105;&#108;&#116;&#111;:&#x64;&#x67;&#64;&#100;&#103;&#x6c;&#97;&#x77;&#x72;&#101;n&#x63;&#101;&#x2e;&#x63;&#x6f;&#109;">&#x64;&#x67;&#64;&#100;&#103;&#x6c;&#97;&#x77;&#x72;&#101;n&#x63;&#101;&#x2e;&#x63;&#x6f;&#109;</a></li> Err codemadness.org 70 i 24297 Err codemadness.org 70 i 24298 <li>So a patched kernel will no longer leak this data, and running the <code>fsck_ffs -z</code> command will erase any leaked data that may exist on your system</li> Err codemadness.org 70 i 24299 Err codemadness.org 70 i 24300 <li><a href="https://marc.info/?l=openbsd-cvs&amp;m=155699268122858&amp;w=2">OpenBSD commit with additional detail on mitigations</a> Err codemadness.org 70 i 24301 The impact on OpenBSD is very limited: Err codemadness.org 70 i 24302 1 - such stack bytes can be found in raw-device reads, from group operator. If you can read the raw disks you can undertake other more powerful actions. Err codemadness.org 70 i 24303 2 - read(2) upon directory fd was disabled July 1997 because I didn't like how grep * would display garbage and mess up the tty, and applying vis(3) for just directory reads seemed silly. read(2) was changed to return 0 (EOF). Sep 2016 this was further changed to EISDIR, so you still cannot see the bad bytes. Err codemadness.org 70 i 24304 3 - In 2013 when guenther adapted the getdents(2) directory-reading system call to 64-bit ino_t, the userland data format changed to 8-byte-alignment, making it incompatible with the 4-byte-alignment UFS on-disk format. As a result of code refactoring the bad bytes were not copied to userland. Bad bytes will remain in old directories on old filesystems, but nothing makes those bytes user visible. Err codemadness.org 70 i 24305 There will be no errata or syspatch issued. I urge other systems which do expose the information to userland to issue errata quickly, since this is a 254 byte infoleak of the stack which is great for ROP-chain building to attack some other bug. Especially if the kernel has no layout/link-order randomization ...</li> Err codemadness.org 70 i 24306 </ul> Err codemadness.org 70 i 24307 Err codemadness.org 70 i 24308 <hr /> Err codemadness.org 70 i 24309 </blockquote> Err codemadness.org 70 i 24310 Err codemadness.org 70 i 24311 <h3 id="nomadbsdabsdfortheroadhttpsitsfosscomnomadbsd"><a href="https://itsfoss.com/nomadbsd/">NomadBSD, a BSD for the Road</a></h3> Err codemadness.org 70 i 24312 Err codemadness.org 70 i 24313 <blockquote> Err codemadness.org 70 i 24314 <p>As regular It’s FOSS readers should know, I like diving into the world of BSDs. Recently, I came across an interesting BSD that is designed to live on a thumb drive. Let’s take a look at NomadBSD. Err codemadness.org 70 i 24315 NomadBSD is different than most available BSDs. NomadBSD is a live system based on FreeBSD. It comes with automatic hardware detection and an initial config tool. NomadBSD is designed to “be used as a desktop system that works out of the box, but can also be used for data recovery, for educational purposes, or to test FreeBSD’s hardware compatibility.” Err codemadness.org 70 i 24316 This German BSD comes with an OpenBox-based desktop with the Plank application dock. NomadBSD makes use of the DSB project. DSB stands for “Desktop Suite (for) (Free)BSD” and consists of a collection of programs designed to create a simple and working environment without needing a ton of dependencies to use one tool. DSB is created by Marcel Kaiser one of the lead devs of NomadBSD. Err codemadness.org 70 i 24317 Just like the original BSD projects, you can contact the NomadBSD developers via a mailing list.</p> Err codemadness.org 70 i 24318 </blockquote> Err codemadness.org 70 i 24319 Err codemadness.org 70 i 24320 <ul> Err codemadness.org 70 i 24321 <li>Version 1.2 Released</li> Err codemadness.org 70 i 24322 </ul> Err codemadness.org 70 i 24323 Err codemadness.org 70 i 24324 <blockquote> Err codemadness.org 70 i 24325 <p>NomadBSD recently released version 1.2 on April 21, 2019. This means that NomadBSD is now based on FreeBSD 12.0-p3. TRIM is now enabled by default. One of the biggest changes is that the initial command-line setup was replaced with a Qt graphical interface. They also added a Qt5 tool to install NomadBSD to your hard drive. A number of fixes were included to improve graphics support. They also added support for creating 32-bit images.</p> Err codemadness.org 70 i 24326 </blockquote> Err codemadness.org 70 i 24327 Err codemadness.org 70 i 24328 <ul> Err codemadness.org 70 i 24329 <li>Thoughts on NomadBSD</li> Err codemadness.org 70 i 24330 </ul> Err codemadness.org 70 i 24331 Err codemadness.org 70 i 24332 <blockquote> Err codemadness.org 70 i 24333 <p>I first discovered NomadBSD back in January when they released 1.2-RC1. At the time, I had been unable to install Project Trident on my laptop and was very frustrated with BSDs. I downloaded NomadBSD and tried it out. I initially ran into issues reaching the desktop, but RC2 fixed that issue. However, I was unable to get on the internet, even though I had an Ethernet cable plugged in. Luckily, I found the wifi manager in the menu and was able to connect to my wifi. Err codemadness.org 70 i 24334 Overall, my experience with NomadBSD was pleasant. Once I figured out a few things, I was good to go. I hope that NomadBSD is the first of a new generation of BSDs that focus on mobility and ease of use. BSD has conquered the server world, it’s about time they figured out how to be more user-friendly.</p> Err codemadness.org 70 i 24335 Err codemadness.org 70 i 24336 <hr /> Err codemadness.org 70 i 24337 </blockquote> Err codemadness.org 70 i 24338 Err codemadness.org 70 i 24339 <h2 id="newsroundup">News Roundup</h2> Err codemadness.org 70 i 24340 Err codemadness.org 70 i 24341 <h3 id="openbsdautomatic">[OpenBSD automatic</h3> Err codemadness.org 70 i 24342 Err codemadness.org 70 i 24343 <p>upgrade](https://www.tumfatig.net/20190426/openbsd-automatic-upgrade/)</p> Err codemadness.org 70 i 24344 Err codemadness.org 70 i 24345 <blockquote> Err codemadness.org 70 i 24346 <p>OpenBSD 6.5 advertises for an installer improvement: rdsetroot(8) (a build-time tool) is now available for general use. Used in combination with autoinstall.8, it is now really easy to do automatic upgrades of your OpenBSD instances. Err codemadness.org 70 i 24347 I first manually upgraded my OpenBSD sandbox to 6.5. Once that was done, I could use the stock rdsetroot(8) tool. The plan is quite simple: write an unattended installation response file, insert it to a bsd.rd 6.5 installation image and reboot my other OpenBSD instances using that image.</p> Err codemadness.org 70 i 24348 </blockquote> Err codemadness.org 70 i 24349 Err codemadness.org 70 i 24350 <ul> Err codemadness.org 70 i 24351 <li>Extra notes</li> Err codemadness.org 70 i 24352 </ul> Err codemadness.org 70 i 24353 Err codemadness.org 70 i 24354 <blockquote> Err codemadness.org 70 i 24355 <p>There must be a way to run onetime commands (in the manner of fw_update) to automatically run sysmerge and packages upgrades. As for now, I’d rather do it manually. Err codemadness.org 70 i 24356 This worked like a charm on two Synology KVM instances using a single sd0 disk, on my Thinkpad X260 using Encrypted root with Keydisk and on a Vultr instance using Encrypted root with passphrase. And BTW, the upgrade on the X260 used the (iwn0) wireless connection. Err codemadness.org 70 i 24357 I just read that florian@ has released the sysupgrade(8) utility which should be released with OpenBSD 6.6. That will make upgrades even easier! Until then, happy upgrading.</p> Err codemadness.org 70 i 24358 </blockquote> Err codemadness.org 70 i 24359 Err codemadness.org 70 i 24360 <hr /> Err codemadness.org 70 i 24361 <h3 id="freebsddtraceext2fssupporthttpsreviewsfreebsdorgd19848"><a href="https://reviews.freebsd.org/D19848">FreeBSD Dtrace ext2fs Support</a></h3> Err codemadness.org 70 i 24362 Err codemadness.org 70 i 24363 <ul> Err codemadness.org 70 i 24364 <li><p>Which logs were replaced by dtrace-probes:</p> Err codemadness.org 70 i 24365 Err codemadness.org 70 i 24366 <ul> Err codemadness.org 70 i 24367 <li>Misc printf's under DEBUG macro in the blocks allocation path.</li> Err codemadness.org 70 i 24368 Err codemadness.org 70 i 24369 <li>Different on-disk structures validation errors, now the filesystem will silently return EIO's.</li> Err codemadness.org 70 i 24370 Err codemadness.org 70 i 24371 <li>Misc checksum errors, same as above.</li></ul></li> Err codemadness.org 70 i 24372 Err codemadness.org 70 i 24373 <li><p>The only debug macro, which was leaved is EXT2FS<em>PRINT</em>EXTENTS.</p></li> Err codemadness.org 70 i 24374 Err codemadness.org 70 i 24375 <li><p>It is impossible to replace it by dtrace-probes, because the additional logic is required to walk thru file extents.</p></li> Err codemadness.org 70 i 24376 Err codemadness.org 70 i 24377 <li><p>The user still be able to see mount errors in the dmesg in case of:</p> Err codemadness.org 70 i 24378 Err codemadness.org 70 i 24379 <p><ul> Err codemadness.org 70 i 24380 <li>Filesystem features incompatibility.</li></p> Err codemadness.org 70 i 24381 Err codemadness.org 70 i 24382 <p><li>Superblock checksum error.</li></ul> Err codemadness.org 70 i 24383 Err codemadness.org 70 i 24384 <p></p></li> Err codemadness.org 70 i 24385 </ul></p> Err codemadness.org 70 i 24386 Err codemadness.org 70 i 24387 <hr /> Err codemadness.org 70 i 24388 Err codemadness.org 70 i 24389 <h3 id="createadedicateduserforsshtunnelingonlyhttpsdataswamporgtsolene20190417sshtunnelinghtml"><a href="https://dataswamp.org/~solene/2019-04-17-ssh-tunneling.html">Create a dedicated user for ssh tunneling only</a></h3> Err codemadness.org 70 i 24390 Err codemadness.org 70 i 24391 <blockquote> Err codemadness.org 70 i 24392 <p>I use ssh tunneling A LOT, for everything. Yesterday, I removed the public access of my IMAP server, it’s now only available through ssh tunneling to access the daemon listening on localhost. I have plenty of daemons listening only on localhost that I can only reach through a ssh tunnel. If you don’t want to bother with ssh and redirect ports you need, you can also make a VPN (using ssh, openvpn, iked, tinc…) between your system and your server. I tend to avoid setting up VPN for the current use case as it requires more work and more maintenance than running ssh server and a ssh client. Err codemadness.org 70 i 24393 The last change, for my IMAP server, added an issue. I want my phone to access the IMAP server but I don’t want to connect to my main account from my phone for security reasons. So, I need a dedicated user that will only be allowed to forward ports. Err codemadness.org 70 i 24394 This is done very easily on OpenBSD. Err codemadness.org 70 i 24395 The steps are: 1. generate ssh keys for the new user 2. add an user with no password 3. allow public key for port forwarding Err codemadness.org 70 i 24396 Obviously, you must allow users (or only this one) to make port forwarding in your sshd_config.</p> Err codemadness.org 70 i 24397 Err codemadness.org 70 i 24398 <hr /> Err codemadness.org 70 i 24399 </blockquote> Err codemadness.org 70 i 24400 Err codemadness.org 70 i 24401 <h3 id="thatwaseasysomeinfoonupgradingvmmvmsto65httpsopenbsdamsterdamupgradehtml"><a href="https://openbsd.amsterdam/upgrade.html">That was easy. Some info on upgrading VMM VMs to 6.5</a></h3> Err codemadness.org 70 i 24402 Err codemadness.org 70 i 24403 <blockquote> Err codemadness.org 70 i 24404 <p>We're running dedicated vmm(4)/vmd(8) servers to host opinionated VMs. Err codemadness.org 70 i 24405 OpenBSD 6.5 is released! There are two ways you can upgrade your VM. Err codemadness.org 70 i 24406 Either do a manual upgrade or leverage autoinstall(8). You can take care of it via the console with vmctl(8).</p> Err codemadness.org 70 i 24407 </blockquote> Err codemadness.org 70 i 24408 Err codemadness.org 70 i 24409 <ul> Err codemadness.org 70 i 24410 <li>Upgrade yourself</li> Err codemadness.org 70 i 24411 </ul> Err codemadness.org 70 i 24412 Err codemadness.org 70 i 24413 <blockquote> Err codemadness.org 70 i 24414 <p>To get connected to the console you need to have access to the host your VM is running on. The same username and public SSH key, as provided for the VM, are used to create a local user on the host. Err codemadness.org 70 i 24415 When this is done you can use vmctl(8) to manage your VM. The options you have are:</p> Err codemadness.org 70 i 24416 </blockquote> Err codemadness.org 70 i 24417 Err codemadness.org 70 i 24418 <pre><code class="$ vmctl console id``` language-$ vmctl console id```">```$ vmctl start id [-c]``` Err codemadness.org 70 i 24419 </code></pre> Err codemadness.org 70 i 24420 Err codemadness.org 70 i 24421 <p>$ vmctl stop id [-fw]```</p> Err codemadness.org 70 i 24422 Err codemadness.org 70 i 24423 <pre><code class="-f Forcefully stop the VM without attempting a graceful shutdown.``` language--f Forcefully stop the VM without attempting a graceful shutdown.```">```-w Wait until the VM has been terminated.``` Err codemadness.org 70 i 24424 </code></pre> Err codemadness.org 70 i 24425 Err codemadness.org 70 i 24426 <p>-c Automatically connect to the VM console.```</p> Err codemadness.org 70 i 24427 Err codemadness.org 70 i 24428 <ul> Err codemadness.org 70 i 24429 <li>See the Article for the rest of the guide</li> Err codemadness.org 70 i 24430 </ul> Err codemadness.org 70 i 24431 Err codemadness.org 70 i 24432 <hr /> Err codemadness.org 70 i 24433 <h2 id="beastiebits">Beastie Bits</h2> Err codemadness.org 70 i 24434 Err codemadness.org 70 i 24435 <ul> Err codemadness.org 70 i 24436 <li><a href="https://inks.tedunangst.com/l/3791">powerpc64 architecture support in FreeBSD ports</a></li> Err codemadness.org 70 i 24437 Err codemadness.org 70 i 24438 <li><a href="https://twitter.com/ribalinux/status/1117856218251517956">GhostBSD 19.04 overview</a></li> Err codemadness.org 70 i 24439 Err codemadness.org 70 i 24440 <li><a href="https://twitter.com/lattera/status/1119018409575026688">HardenedBSD will have two user selectable ASLR implementations</a></li> Err codemadness.org 70 i 24441 Err codemadness.org 70 i 24442 <li><a href="https://www.youtube.com/watch?v=S_aTzXVRRlM&amp;feature=youtu.be">NYCBUG 2016 Talk Shell-Fu Uploaded</a></li> Err codemadness.org 70 i 24443 Err codemadness.org 70 i 24444 <li><a href="http://blog.zarfhome.com/2019/04/what-is-zil-anyway.html">What is ZIL anyway?</a></li> Err codemadness.org 70 i 24445 </ul> Err codemadness.org 70 i 24446 Err codemadness.org 70 i 24447 <hr /> Err codemadness.org 70 i 24448 <h2 id="feedbackquestions">Feedback/Questions</h2> Err codemadness.org 70 i 24449 Err codemadness.org 70 i 24450 <ul> Err codemadness.org 70 i 24451 <li>Quentin - <a href="http://dpaste.com/0K9PQW9#wrap">Organize an Ada/BSD interview</a></li> Err codemadness.org 70 i 24452 Err codemadness.org 70 i 24453 <li>DJ - <a href="http://dpaste.com/3KTQ45G#wrap">Update</a></li> Err codemadness.org 70 i 24454 Err codemadness.org 70 i 24455 <li>Patrick - <a href="http://dpaste.com/07V6ZJN">Bhyve frontends</a></li> Err codemadness.org 70 i 24456 Err codemadness.org 70 i 24457 <li>A small programming note: After BSDNow episode 300, the podcast will switch to audio-only, using a new higher quality recording and production system. The live stream will likely still include video.</li> Err codemadness.org 70 i 24458 </ul> Err codemadness.org 70 i 24459 Err codemadness.org 70 i 24460 <hr /> Err codemadness.org 70 i 24461 <ul> Err codemadness.org 70 i 24462 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 24463 </ul> Err codemadness.org 70 i 24464 Err codemadness.org 70 i 24465 <hr /> Err codemadness.org 70 i 24466 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 24467 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0298.mp4" type="video/mp4"> Err codemadness.org 70 i 24468 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 24469 </video> Err codemadness.org 70 i 24470 Err codemadness.org 70 i 24471 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, ssh, nomadbsd, dtrace, ext2, unleashed, vmm Err codemadness.org 70 i 24472 Err codemadness.org 70 i 24473 36 year old UFS bug fixed, a BSD for the road, automatic upgrades with OpenBSD, DTrace ext2fs support in FreeBSD, Dedicated SSH tunnel user, upgrading VMM VMs to OpenBSD 6.5, and more.

Err codemadness.org 70 i 24474 Err codemadness.org 70 i 24475

Headlines

Err codemadness.org 70 i 24476 Err codemadness.org 70 i 24477

36+ year old bug in FFS/UFS discovered and patched

Err codemadness.org 70 i 24478 Err codemadness.org 70 i 24479
Err codemadness.org 70 i 24480

This update eliminates a kernel stack disclosure bug in UFS/FFS directory entries that is caused by uninitialized directory entry padding written to the disk.

Err codemadness.org 70 i 24481 Err codemadness.org 70 i 24482
    Err codemadness.org 70 i 24483
  • When the directory entry is written to disk, it is written as a full 32bit entry, and the unused bytes were not initialized, so could possibly contain sensitive data from the kernel stack Err codemadness.org 70 i 24484 It can be viewed by any user with read access to that directory. Up to 3 bytes of kernel stack are disclosed per file entry, depending on the the amount of padding the kernel needs to pad out the entry to a 32 bit boundary. The offset in the kernel stack that is disclosed is a function of the filename size. Furthermore, if the user can create files in a directory, this 3 byte window can be expanded 3 bytes at a time to a 254 byte window with 75% of the data in that window exposed. The additional exposure is done by removing the entry, creating a new entry with a 4-byte longer name, extracting 3 more bytes by reading the directory, and repeating until a 252 byte name is created. Err codemadness.org 70 i 24485 This exploit works in part because the area of the kernel stack that is being disclosed is in an area that typically doesn't change that often (perhaps a few times a second on a lightly loaded system), and these file creates and unlinks themselves don't overwrite the area of kernel stack being disclosed. Err codemadness.org 70 i 24486 It appears that this bug originated with the creation of the Fast File System in 4.1b-BSD (Circa 1982, more than 36 years ago!), and is likely present in every Unix or Unix-like system that uses UFS/FFS. Amazingly, nobody noticed until now. Err codemadness.org 70 i 24487 This update also adds the -z flag to fsck_ffs to have it scrub the leaked information in the name padding of existing directories. It only needs to be run once on each UFS/FFS filesystem after a patched kernel is installed and running. Err codemadness.org 70 i 24488 Submitted by: David G. Lawrence dg@dglawrence.com
  • Err codemadness.org 70 i 24489 Err codemadness.org 70 i 24490
  • So a patched kernel will no longer leak this data, and running the fsck_ffs -z command will erase any leaked data that may exist on your system
  • Err codemadness.org 70 i 24491 Err codemadness.org 70 i 24492
  • OpenBSD commit with additional detail on mitigations Err codemadness.org 70 i 24493 The impact on OpenBSD is very limited: Err codemadness.org 70 i 24494 1 - such stack bytes can be found in raw-device reads, from group operator. If you can read the raw disks you can undertake other more powerful actions. Err codemadness.org 70 i 24495 2 - read(2) upon directory fd was disabled July 1997 because I didn't like how grep * would display garbage and mess up the tty, and applying vis(3) for just directory reads seemed silly. read(2) was changed to return 0 (EOF). Sep 2016 this was further changed to EISDIR, so you still cannot see the bad bytes. Err codemadness.org 70 i 24496 3 - In 2013 when guenther adapted the getdents(2) directory-reading system call to 64-bit ino_t, the userland data format changed to 8-byte-alignment, making it incompatible with the 4-byte-alignment UFS on-disk format. As a result of code refactoring the bad bytes were not copied to userland. Bad bytes will remain in old directories on old filesystems, but nothing makes those bytes user visible. Err codemadness.org 70 i 24497 There will be no errata or syspatch issued. I urge other systems which do expose the information to userland to issue errata quickly, since this is a 254 byte infoleak of the stack which is great for ROP-chain building to attack some other bug. Especially if the kernel has no layout/link-order randomization ...
  • Err codemadness.org 70 i 24498
Err codemadness.org 70 i 24499 Err codemadness.org 70 i 24500
Err codemadness.org 70 i 24501
Err codemadness.org 70 i 24502 Err codemadness.org 70 i 24503

NomadBSD, a BSD for the Road

Err codemadness.org 70 i 24504 Err codemadness.org 70 i 24505
Err codemadness.org 70 i 24506

As regular It’s FOSS readers should know, I like diving into the world of BSDs. Recently, I came across an interesting BSD that is designed to live on a thumb drive. Let’s take a look at NomadBSD. Err codemadness.org 70 i 24507 NomadBSD is different than most available BSDs. NomadBSD is a live system based on FreeBSD. It comes with automatic hardware detection and an initial config tool. NomadBSD is designed to “be used as a desktop system that works out of the box, but can also be used for data recovery, for educational purposes, or to test FreeBSD’s hardware compatibility.” Err codemadness.org 70 i 24508 This German BSD comes with an OpenBox-based desktop with the Plank application dock. NomadBSD makes use of the DSB project. DSB stands for “Desktop Suite (for) (Free)BSD” and consists of a collection of programs designed to create a simple and working environment without needing a ton of dependencies to use one tool. DSB is created by Marcel Kaiser one of the lead devs of NomadBSD. Err codemadness.org 70 i 24509 Just like the original BSD projects, you can contact the NomadBSD developers via a mailing list.

Err codemadness.org 70 i 24510
Err codemadness.org 70 i 24511 Err codemadness.org 70 i 24512
    Err codemadness.org 70 i 24513
  • Version 1.2 Released
  • Err codemadness.org 70 i 24514
Err codemadness.org 70 i 24515 Err codemadness.org 70 i 24516
Err codemadness.org 70 i 24517

NomadBSD recently released version 1.2 on April 21, 2019. This means that NomadBSD is now based on FreeBSD 12.0-p3. TRIM is now enabled by default. One of the biggest changes is that the initial command-line setup was replaced with a Qt graphical interface. They also added a Qt5 tool to install NomadBSD to your hard drive. A number of fixes were included to improve graphics support. They also added support for creating 32-bit images.

Err codemadness.org 70 i 24518
Err codemadness.org 70 i 24519 Err codemadness.org 70 i 24520
    Err codemadness.org 70 i 24521
  • Thoughts on NomadBSD
  • Err codemadness.org 70 i 24522
Err codemadness.org 70 i 24523 Err codemadness.org 70 i 24524
Err codemadness.org 70 i 24525

I first discovered NomadBSD back in January when they released 1.2-RC1. At the time, I had been unable to install Project Trident on my laptop and was very frustrated with BSDs. I downloaded NomadBSD and tried it out. I initially ran into issues reaching the desktop, but RC2 fixed that issue. However, I was unable to get on the internet, even though I had an Ethernet cable plugged in. Luckily, I found the wifi manager in the menu and was able to connect to my wifi. Err codemadness.org 70 i 24526 Overall, my experience with NomadBSD was pleasant. Once I figured out a few things, I was good to go. I hope that NomadBSD is the first of a new generation of BSDs that focus on mobility and ease of use. BSD has conquered the server world, it’s about time they figured out how to be more user-friendly.

Err codemadness.org 70 i 24527 Err codemadness.org 70 i 24528
Err codemadness.org 70 i 24529
Err codemadness.org 70 i 24530 Err codemadness.org 70 i 24531

News Roundup

Err codemadness.org 70 i 24532 Err codemadness.org 70 i 24533

[OpenBSD automatic

Err codemadness.org 70 i 24534 Err codemadness.org 70 i 24535

upgrade](https://www.tumfatig.net/20190426/openbsd-automatic-upgrade/)

Err codemadness.org 70 i 24536 Err codemadness.org 70 i 24537
Err codemadness.org 70 i 24538

OpenBSD 6.5 advertises for an installer improvement: rdsetroot(8) (a build-time tool) is now available for general use. Used in combination with autoinstall.8, it is now really easy to do automatic upgrades of your OpenBSD instances. Err codemadness.org 70 i 24539 I first manually upgraded my OpenBSD sandbox to 6.5. Once that was done, I could use the stock rdsetroot(8) tool. The plan is quite simple: write an unattended installation response file, insert it to a bsd.rd 6.5 installation image and reboot my other OpenBSD instances using that image.

Err codemadness.org 70 i 24540
Err codemadness.org 70 i 24541 Err codemadness.org 70 i 24542
    Err codemadness.org 70 i 24543
  • Extra notes
  • Err codemadness.org 70 i 24544
Err codemadness.org 70 i 24545 Err codemadness.org 70 i 24546
Err codemadness.org 70 i 24547

There must be a way to run onetime commands (in the manner of fw_update) to automatically run sysmerge and packages upgrades. As for now, I’d rather do it manually. Err codemadness.org 70 i 24548 This worked like a charm on two Synology KVM instances using a single sd0 disk, on my Thinkpad X260 using Encrypted root with Keydisk and on a Vultr instance using Encrypted root with passphrase. And BTW, the upgrade on the X260 used the (iwn0) wireless connection. Err codemadness.org 70 i 24549 I just read that florian@ has released the sysupgrade(8) utility which should be released with OpenBSD 6.6. That will make upgrades even easier! Until then, happy upgrading.

Err codemadness.org 70 i 24550
Err codemadness.org 70 i 24551 Err codemadness.org 70 i 24552


Err codemadness.org 70 i 24553 Err codemadness.org 70 i 24554

FreeBSD Dtrace ext2fs Support

Err codemadness.org 70 i 24555 Err codemadness.org 70 i 24556
    Err codemadness.org 70 i 24557
  • Which logs were replaced by dtrace-probes:

    Err codemadness.org 70 i 24558 Err codemadness.org 70 i 24559
      Err codemadness.org 70 i 24560
    • Misc printf's under DEBUG macro in the blocks allocation path.
    • Err codemadness.org 70 i 24561 Err codemadness.org 70 i 24562
    • Different on-disk structures validation errors, now the filesystem will silently return EIO's.
    • Err codemadness.org 70 i 24563 Err codemadness.org 70 i 24564
    • Misc checksum errors, same as above.
  • Err codemadness.org 70 i 24565 Err codemadness.org 70 i 24566
  • The only debug macro, which was leaved is EXT2FSPRINTEXTENTS.

  • Err codemadness.org 70 i 24567 Err codemadness.org 70 i 24568
  • It is impossible to replace it by dtrace-probes, because the additional logic is required to walk thru file extents.

  • Err codemadness.org 70 i 24569 Err codemadness.org 70 i 24570
  • The user still be able to see mount errors in the dmesg in case of:

    Err codemadness.org 70 i 24571 Err codemadness.org 70 i 24572

      Err codemadness.org 70 i 24573
    • Filesystem features incompatibility.
    • Err codemadness.org 70 i 24574 Err codemadness.org 70 i 24575

    • Superblock checksum error.
    Err codemadness.org 70 i 24576 Err codemadness.org 70 i 24577

  • Err codemadness.org 70 i 24578

Err codemadness.org 70 i 24579 Err codemadness.org 70 i 24580
Err codemadness.org 70 i 24581 Err codemadness.org 70 i 24582

Create a dedicated user for ssh tunneling only

Err codemadness.org 70 i 24583 Err codemadness.org 70 i 24584
Err codemadness.org 70 i 24585

I use ssh tunneling A LOT, for everything. Yesterday, I removed the public access of my IMAP server, it’s now only available through ssh tunneling to access the daemon listening on localhost. I have plenty of daemons listening only on localhost that I can only reach through a ssh tunnel. If you don’t want to bother with ssh and redirect ports you need, you can also make a VPN (using ssh, openvpn, iked, tinc…) between your system and your server. I tend to avoid setting up VPN for the current use case as it requires more work and more maintenance than running ssh server and a ssh client. Err codemadness.org 70 i 24586 The last change, for my IMAP server, added an issue. I want my phone to access the IMAP server but I don’t want to connect to my main account from my phone for security reasons. So, I need a dedicated user that will only be allowed to forward ports. Err codemadness.org 70 i 24587 This is done very easily on OpenBSD. Err codemadness.org 70 i 24588 The steps are: 1. generate ssh keys for the new user 2. add an user with no password 3. allow public key for port forwarding Err codemadness.org 70 i 24589 Obviously, you must allow users (or only this one) to make port forwarding in your sshd_config.

Err codemadness.org 70 i 24590 Err codemadness.org 70 i 24591
Err codemadness.org 70 i 24592
Err codemadness.org 70 i 24593 Err codemadness.org 70 i 24594

That was easy. Some info on upgrading VMM VMs to 6.5

Err codemadness.org 70 i 24595 Err codemadness.org 70 i 24596
Err codemadness.org 70 i 24597

We're running dedicated vmm(4)/vmd(8) servers to host opinionated VMs. Err codemadness.org 70 i 24598 OpenBSD 6.5 is released! There are two ways you can upgrade your VM. Err codemadness.org 70 i 24599 Either do a manual upgrade or leverage autoinstall(8). You can take care of it via the console with vmctl(8).

Err codemadness.org 70 i 24600
Err codemadness.org 70 i 24601 Err codemadness.org 70 i 24602
    Err codemadness.org 70 i 24603
  • Upgrade yourself
  • Err codemadness.org 70 i 24604
Err codemadness.org 70 i 24605 Err codemadness.org 70 i 24606
Err codemadness.org 70 i 24607

To get connected to the console you need to have access to the host your VM is running on. The same username and public SSH key, as provided for the VM, are used to create a local user on the host. Err codemadness.org 70 i 24608 When this is done you can use vmctl(8) to manage your VM. The options you have are:

Err codemadness.org 70 i 24609
Err codemadness.org 70 i 24610 Err codemadness.org 70 i 24611
```$ vmctl start id [-c]```	Err	codemadness.org	70
i 24612 
Err codemadness.org 70 i 24613 Err codemadness.org 70 i 24614

$ vmctl stop id [-fw]```

Err codemadness.org 70 i 24615 Err codemadness.org 70 i 24616
```-w Wait until the VM has been terminated.```	Err	codemadness.org	70
i 24617 
Err codemadness.org 70 i 24618 Err codemadness.org 70 i 24619

-c Automatically connect to the VM console.```

Err codemadness.org 70 i 24620 Err codemadness.org 70 i 24621
    Err codemadness.org 70 i 24622
  • See the Article for the rest of the guide
  • Err codemadness.org 70 i 24623
Err codemadness.org 70 i 24624 Err codemadness.org 70 i 24625


Err codemadness.org 70 i 24626 Err codemadness.org 70 i 24627

Beastie Bits

Err codemadness.org 70 i 24628 Err codemadness.org 70 i 24629 Err codemadness.org 70 i 24640 Err codemadness.org 70 i 24641


Err codemadness.org 70 i 24642 Err codemadness.org 70 i 24643

Feedback/Questions

Err codemadness.org 70 i 24644 Err codemadness.org 70 i 24645
    Err codemadness.org 70 i 24646
  • Quentin - Organize an Ada/BSD interview
  • Err codemadness.org 70 i 24647 Err codemadness.org 70 i 24648
  • DJ - Update
  • Err codemadness.org 70 i 24649 Err codemadness.org 70 i 24650
  • Patrick - Bhyve frontends
  • Err codemadness.org 70 i 24651 Err codemadness.org 70 i 24652
  • A small programming note: After BSDNow episode 300, the podcast will switch to audio-only, using a new higher quality recording and production system. The live stream will likely still include video.
  • Err codemadness.org 70 i 24653
Err codemadness.org 70 i 24654 Err codemadness.org 70 i 24655


Err codemadness.org 70 i 24656 Err codemadness.org 70 i 24657
    Err codemadness.org 70 i 24658
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 24659
Err codemadness.org 70 i 24660 Err codemadness.org 70 i 24661


Err codemadness.org 70 i 24662 Err codemadness.org 70 i 24663 ]]> Err codemadness.org 70 i 24667
Err codemadness.org 70 i 24668 Err codemadness.org 70 i 24669 36 year old UFS bug fixed, a BSD for the road, automatic upgrades with OpenBSD, DTrace ext2fs support in FreeBSD, Dedicated SSH tunnel user, upgrading VMM VMs to OpenBSD 6.5, and more.

Err codemadness.org 70 i 24670 Err codemadness.org 70 i 24671

Headlines

Err codemadness.org 70 i 24672 Err codemadness.org 70 i 24673

36+ year old bug in FFS/UFS discovered and patched

Err codemadness.org 70 i 24674 Err codemadness.org 70 i 24675
Err codemadness.org 70 i 24676

This update eliminates a kernel stack disclosure bug in UFS/FFS directory entries that is caused by uninitialized directory entry padding written to the disk.

Err codemadness.org 70 i 24677 Err codemadness.org 70 i 24678
    Err codemadness.org 70 i 24679
  • When the directory entry is written to disk, it is written as a full 32bit entry, and the unused bytes were not initialized, so could possibly contain sensitive data from the kernel stack Err codemadness.org 70 i 24680 It can be viewed by any user with read access to that directory. Up to 3 bytes of kernel stack are disclosed per file entry, depending on the the amount of padding the kernel needs to pad out the entry to a 32 bit boundary. The offset in the kernel stack that is disclosed is a function of the filename size. Furthermore, if the user can create files in a directory, this 3 byte window can be expanded 3 bytes at a time to a 254 byte window with 75% of the data in that window exposed. The additional exposure is done by removing the entry, creating a new entry with a 4-byte longer name, extracting 3 more bytes by reading the directory, and repeating until a 252 byte name is created. Err codemadness.org 70 i 24681 This exploit works in part because the area of the kernel stack that is being disclosed is in an area that typically doesn't change that often (perhaps a few times a second on a lightly loaded system), and these file creates and unlinks themselves don't overwrite the area of kernel stack being disclosed. Err codemadness.org 70 i 24682 It appears that this bug originated with the creation of the Fast File System in 4.1b-BSD (Circa 1982, more than 36 years ago!), and is likely present in every Unix or Unix-like system that uses UFS/FFS. Amazingly, nobody noticed until now. Err codemadness.org 70 i 24683 This update also adds the -z flag to fsck_ffs to have it scrub the leaked information in the name padding of existing directories. It only needs to be run once on each UFS/FFS filesystem after a patched kernel is installed and running. Err codemadness.org 70 i 24684 Submitted by: David G. Lawrence dg@dglawrence.com
  • Err codemadness.org 70 i 24685 Err codemadness.org 70 i 24686
  • So a patched kernel will no longer leak this data, and running the fsck_ffs -z command will erase any leaked data that may exist on your system
  • Err codemadness.org 70 i 24687 Err codemadness.org 70 i 24688
  • OpenBSD commit with additional detail on mitigations Err codemadness.org 70 i 24689 The impact on OpenBSD is very limited: Err codemadness.org 70 i 24690 1 - such stack bytes can be found in raw-device reads, from group operator. If you can read the raw disks you can undertake other more powerful actions. Err codemadness.org 70 i 24691 2 - read(2) upon directory fd was disabled July 1997 because I didn't like how grep * would display garbage and mess up the tty, and applying vis(3) for just directory reads seemed silly. read(2) was changed to return 0 (EOF). Sep 2016 this was further changed to EISDIR, so you still cannot see the bad bytes. Err codemadness.org 70 i 24692 3 - In 2013 when guenther adapted the getdents(2) directory-reading system call to 64-bit ino_t, the userland data format changed to 8-byte-alignment, making it incompatible with the 4-byte-alignment UFS on-disk format. As a result of code refactoring the bad bytes were not copied to userland. Bad bytes will remain in old directories on old filesystems, but nothing makes those bytes user visible. Err codemadness.org 70 i 24693 There will be no errata or syspatch issued. I urge other systems which do expose the information to userland to issue errata quickly, since this is a 254 byte infoleak of the stack which is great for ROP-chain building to attack some other bug. Especially if the kernel has no layout/link-order randomization ...
  • Err codemadness.org 70 i 24694
Err codemadness.org 70 i 24695 Err codemadness.org 70 i 24696
Err codemadness.org 70 i 24697
Err codemadness.org 70 i 24698 Err codemadness.org 70 i 24699

NomadBSD, a BSD for the Road

Err codemadness.org 70 i 24700 Err codemadness.org 70 i 24701
Err codemadness.org 70 i 24702

As regular It’s FOSS readers should know, I like diving into the world of BSDs. Recently, I came across an interesting BSD that is designed to live on a thumb drive. Let’s take a look at NomadBSD. Err codemadness.org 70 i 24703 NomadBSD is different than most available BSDs. NomadBSD is a live system based on FreeBSD. It comes with automatic hardware detection and an initial config tool. NomadBSD is designed to “be used as a desktop system that works out of the box, but can also be used for data recovery, for educational purposes, or to test FreeBSD’s hardware compatibility.” Err codemadness.org 70 i 24704 This German BSD comes with an OpenBox-based desktop with the Plank application dock. NomadBSD makes use of the DSB project. DSB stands for “Desktop Suite (for) (Free)BSD” and consists of a collection of programs designed to create a simple and working environment without needing a ton of dependencies to use one tool. DSB is created by Marcel Kaiser one of the lead devs of NomadBSD. Err codemadness.org 70 i 24705 Just like the original BSD projects, you can contact the NomadBSD developers via a mailing list.

Err codemadness.org 70 i 24706
Err codemadness.org 70 i 24707 Err codemadness.org 70 i 24708
    Err codemadness.org 70 i 24709
  • Version 1.2 Released
  • Err codemadness.org 70 i 24710
Err codemadness.org 70 i 24711 Err codemadness.org 70 i 24712
Err codemadness.org 70 i 24713

NomadBSD recently released version 1.2 on April 21, 2019. This means that NomadBSD is now based on FreeBSD 12.0-p3. TRIM is now enabled by default. One of the biggest changes is that the initial command-line setup was replaced with a Qt graphical interface. They also added a Qt5 tool to install NomadBSD to your hard drive. A number of fixes were included to improve graphics support. They also added support for creating 32-bit images.

Err codemadness.org 70 i 24714
Err codemadness.org 70 i 24715 Err codemadness.org 70 i 24716
    Err codemadness.org 70 i 24717
  • Thoughts on NomadBSD
  • Err codemadness.org 70 i 24718
Err codemadness.org 70 i 24719 Err codemadness.org 70 i 24720
Err codemadness.org 70 i 24721

I first discovered NomadBSD back in January when they released 1.2-RC1. At the time, I had been unable to install Project Trident on my laptop and was very frustrated with BSDs. I downloaded NomadBSD and tried it out. I initially ran into issues reaching the desktop, but RC2 fixed that issue. However, I was unable to get on the internet, even though I had an Ethernet cable plugged in. Luckily, I found the wifi manager in the menu and was able to connect to my wifi. Err codemadness.org 70 i 24722 Overall, my experience with NomadBSD was pleasant. Once I figured out a few things, I was good to go. I hope that NomadBSD is the first of a new generation of BSDs that focus on mobility and ease of use. BSD has conquered the server world, it’s about time they figured out how to be more user-friendly.

Err codemadness.org 70 i 24723 Err codemadness.org 70 i 24724
Err codemadness.org 70 i 24725
Err codemadness.org 70 i 24726 Err codemadness.org 70 i 24727

News Roundup

Err codemadness.org 70 i 24728 Err codemadness.org 70 i 24729

[OpenBSD automatic

Err codemadness.org 70 i 24730 Err codemadness.org 70 i 24731

upgrade](https://www.tumfatig.net/20190426/openbsd-automatic-upgrade/)

Err codemadness.org 70 i 24732 Err codemadness.org 70 i 24733
Err codemadness.org 70 i 24734

OpenBSD 6.5 advertises for an installer improvement: rdsetroot(8) (a build-time tool) is now available for general use. Used in combination with autoinstall.8, it is now really easy to do automatic upgrades of your OpenBSD instances. Err codemadness.org 70 i 24735 I first manually upgraded my OpenBSD sandbox to 6.5. Once that was done, I could use the stock rdsetroot(8) tool. The plan is quite simple: write an unattended installation response file, insert it to a bsd.rd 6.5 installation image and reboot my other OpenBSD instances using that image.

Err codemadness.org 70 i 24736
Err codemadness.org 70 i 24737 Err codemadness.org 70 i 24738
    Err codemadness.org 70 i 24739
  • Extra notes
  • Err codemadness.org 70 i 24740
Err codemadness.org 70 i 24741 Err codemadness.org 70 i 24742
Err codemadness.org 70 i 24743

There must be a way to run onetime commands (in the manner of fw_update) to automatically run sysmerge and packages upgrades. As for now, I’d rather do it manually. Err codemadness.org 70 i 24744 This worked like a charm on two Synology KVM instances using a single sd0 disk, on my Thinkpad X260 using Encrypted root with Keydisk and on a Vultr instance using Encrypted root with passphrase. And BTW, the upgrade on the X260 used the (iwn0) wireless connection. Err codemadness.org 70 i 24745 I just read that florian@ has released the sysupgrade(8) utility which should be released with OpenBSD 6.6. That will make upgrades even easier! Until then, happy upgrading.

Err codemadness.org 70 i 24746
Err codemadness.org 70 i 24747 Err codemadness.org 70 i 24748


Err codemadness.org 70 i 24749 Err codemadness.org 70 i 24750

FreeBSD Dtrace ext2fs Support

Err codemadness.org 70 i 24751 Err codemadness.org 70 i 24752
    Err codemadness.org 70 i 24753
  • Which logs were replaced by dtrace-probes:

    Err codemadness.org 70 i 24754 Err codemadness.org 70 i 24755
      Err codemadness.org 70 i 24756
    • Misc printf's under DEBUG macro in the blocks allocation path.
    • Err codemadness.org 70 i 24757 Err codemadness.org 70 i 24758
    • Different on-disk structures validation errors, now the filesystem will silently return EIO's.
    • Err codemadness.org 70 i 24759 Err codemadness.org 70 i 24760
    • Misc checksum errors, same as above.
  • Err codemadness.org 70 i 24761 Err codemadness.org 70 i 24762
  • The only debug macro, which was leaved is EXT2FSPRINTEXTENTS.

  • Err codemadness.org 70 i 24763 Err codemadness.org 70 i 24764
  • It is impossible to replace it by dtrace-probes, because the additional logic is required to walk thru file extents.

  • Err codemadness.org 70 i 24765 Err codemadness.org 70 i 24766
  • The user still be able to see mount errors in the dmesg in case of:

    Err codemadness.org 70 i 24767 Err codemadness.org 70 i 24768

      Err codemadness.org 70 i 24769
    • Filesystem features incompatibility.
    • Err codemadness.org 70 i 24770 Err codemadness.org 70 i 24771

    • Superblock checksum error.
    Err codemadness.org 70 i 24772 Err codemadness.org 70 i 24773

  • Err codemadness.org 70 i 24774

Err codemadness.org 70 i 24775 Err codemadness.org 70 i 24776
Err codemadness.org 70 i 24777 Err codemadness.org 70 i 24778

Create a dedicated user for ssh tunneling only

Err codemadness.org 70 i 24779 Err codemadness.org 70 i 24780
Err codemadness.org 70 i 24781

I use ssh tunneling A LOT, for everything. Yesterday, I removed the public access of my IMAP server, it’s now only available through ssh tunneling to access the daemon listening on localhost. I have plenty of daemons listening only on localhost that I can only reach through a ssh tunnel. If you don’t want to bother with ssh and redirect ports you need, you can also make a VPN (using ssh, openvpn, iked, tinc…) between your system and your server. I tend to avoid setting up VPN for the current use case as it requires more work and more maintenance than running ssh server and a ssh client. Err codemadness.org 70 i 24782 The last change, for my IMAP server, added an issue. I want my phone to access the IMAP server but I don’t want to connect to my main account from my phone for security reasons. So, I need a dedicated user that will only be allowed to forward ports. Err codemadness.org 70 i 24783 This is done very easily on OpenBSD. Err codemadness.org 70 i 24784 The steps are: 1. generate ssh keys for the new user 2. add an user with no password 3. allow public key for port forwarding Err codemadness.org 70 i 24785 Obviously, you must allow users (or only this one) to make port forwarding in your sshd_config.

Err codemadness.org 70 i 24786 Err codemadness.org 70 i 24787
Err codemadness.org 70 i 24788
Err codemadness.org 70 i 24789 Err codemadness.org 70 i 24790

That was easy. Some info on upgrading VMM VMs to 6.5

Err codemadness.org 70 i 24791 Err codemadness.org 70 i 24792
Err codemadness.org 70 i 24793

We're running dedicated vmm(4)/vmd(8) servers to host opinionated VMs. Err codemadness.org 70 i 24794 OpenBSD 6.5 is released! There are two ways you can upgrade your VM. Err codemadness.org 70 i 24795 Either do a manual upgrade or leverage autoinstall(8). You can take care of it via the console with vmctl(8).

Err codemadness.org 70 i 24796
Err codemadness.org 70 i 24797 Err codemadness.org 70 i 24798
    Err codemadness.org 70 i 24799
  • Upgrade yourself
  • Err codemadness.org 70 i 24800
Err codemadness.org 70 i 24801 Err codemadness.org 70 i 24802
Err codemadness.org 70 i 24803

To get connected to the console you need to have access to the host your VM is running on. The same username and public SSH key, as provided for the VM, are used to create a local user on the host. Err codemadness.org 70 i 24804 When this is done you can use vmctl(8) to manage your VM. The options you have are:

Err codemadness.org 70 i 24805
Err codemadness.org 70 i 24806 Err codemadness.org 70 i 24807
```$ vmctl start id [-c]```	Err	codemadness.org	70
i 24808 
Err codemadness.org 70 i 24809 Err codemadness.org 70 i 24810

$ vmctl stop id [-fw]```

Err codemadness.org 70 i 24811 Err codemadness.org 70 i 24812
```-w Wait until the VM has been terminated.```	Err	codemadness.org	70
i 24813 
Err codemadness.org 70 i 24814 Err codemadness.org 70 i 24815

-c Automatically connect to the VM console.```

Err codemadness.org 70 i 24816 Err codemadness.org 70 i 24817
    Err codemadness.org 70 i 24818
  • See the Article for the rest of the guide
  • Err codemadness.org 70 i 24819
Err codemadness.org 70 i 24820 Err codemadness.org 70 i 24821


Err codemadness.org 70 i 24822 Err codemadness.org 70 i 24823

Beastie Bits

Err codemadness.org 70 i 24824 Err codemadness.org 70 i 24825 Err codemadness.org 70 i 24836 Err codemadness.org 70 i 24837


Err codemadness.org 70 i 24838 Err codemadness.org 70 i 24839

Feedback/Questions

Err codemadness.org 70 i 24840 Err codemadness.org 70 i 24841
    Err codemadness.org 70 i 24842
  • Quentin - Organize an Ada/BSD interview
  • Err codemadness.org 70 i 24843 Err codemadness.org 70 i 24844
  • DJ - Update
  • Err codemadness.org 70 i 24845 Err codemadness.org 70 i 24846
  • Patrick - Bhyve frontends
  • Err codemadness.org 70 i 24847 Err codemadness.org 70 i 24848
  • A small programming note: After BSDNow episode 300, the podcast will switch to audio-only, using a new higher quality recording and production system. The live stream will likely still include video.
  • Err codemadness.org 70 i 24849
Err codemadness.org 70 i 24850 Err codemadness.org 70 i 24851


Err codemadness.org 70 i 24852 Err codemadness.org 70 i 24853
    Err codemadness.org 70 i 24854
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 24855
Err codemadness.org 70 i 24856 Err codemadness.org 70 i 24857


Err codemadness.org 70 i 24858 Err codemadness.org 70 i 24859 ]]> Err codemadness.org 70 i 24863
Err codemadness.org 70 i 24864 https://fireside.fm/player/v2/FYhhasNR+dSjnII5o Err codemadness.org 70 i 24865 Err codemadness.org 70 i 24866 ]]> Err codemadness.org 70 i 24867 Err codemadness.org 70 i 24868
Err codemadness.org 70 i 24869 Err codemadness.org 70 i 24870 297: Dragonfly In The Wild Err codemadness.org 70 i 24871 https://www.bsdnow.tv/297 Err codemadness.org 70 i 24872 b83c5930-57a8-4c27-855a-97b6d88f5f00 Err codemadness.org 70 i 24873 Wed, 08 May 2019 21:00:00 -0700 Err codemadness.org 70 i 24874 Allan Jude Err codemadness.org 70 i 24875 Err codemadness.org 70 i 24876 full Err codemadness.org 70 i 24877 Allan Jude Err codemadness.org 70 i 24878 FreeBSD ZFS vs. ZoL performance, Dragonfly 5.4.2 has been release, containing web services with iocell, Solaris 11.4 SRU8, Problem with SSH Agent forwarding, OpenBSD 6.4 to 6.5 upgrade guide, and more. Err codemadness.org 70 i 24879 40:16 Err codemadness.org 70 i 24880 no Err codemadness.org 70 i 24881 Err codemadness.org 70 i 24882 FreeBSD ZFS vs. ZoL performance, Dragonfly 5.4.2 has been release, containing web services with iocell, Solaris 11.4 SRU8, Problem with SSH Agent forwarding, OpenBSD 6.4 to 6.5 upgrade guide, and more. Err codemadness.org 70 i 24883 <h2 id="headlines">Headlines</h2> Err codemadness.org 70 i 24884 Err codemadness.org 70 i 24885 <h3 id="freebsdzfsvszolperformanceubuntuzfsonlinuxreferencehttpswwwphoronixcomscanphppagearticleitemfreebsdzolaprilnum1"><a href="https://www.phoronix.com/scan.php?page=article&amp;item=freebsd-zol-april&amp;num=1">FreeBSD ZFS vs. ZoL Performance, Ubuntu ZFS On Linux Reference</a></h3> Err codemadness.org 70 i 24886 Err codemadness.org 70 i 24887 <blockquote> Err codemadness.org 70 i 24888 <p>With iX Systems having released new images of FreeBSD reworked with their ZFS On Linux code that is in development to ultimately replace their existing FreeBSD ZFS support derived from the code originally found in the Illumos source tree, here are some fresh benchmarks looking at the FreeBSD 12 performance of ZFS vs. ZoL vs. UFS and compared to Ubuntu Linux on the same system with EXT4 and ZFS. Err codemadness.org 70 i 24889 Using an Intel Xeon E3-1275 v6 with ASUS P10S-M WS motherboard, 2 x 8GB DDR4-2400 ECC UDIMMs, and Samsung 970 EVO Plus 500GB NVMe solid-state drive was used for all of this round of testing. Just a single modern NVMe SSD was used for this round of ZFS testing while as the FreeBSD ZoL code matures I'll test on multiple systems using a more diverse range of storage devices. Err codemadness.org 70 i 24890 FreeBSD 12 ZoL was tested using the iX Systems image and then fresh installs done of FreeBSD 12.0-RELEASE when defaulting to the existing ZFS root file-system support and again when using the aging UFS file-system. Ubuntu 18.04.2 LTS with the Linux 4.18 kernel was used when testing its default EXT4 file-system and then again when using the Ubuntu-ZFS ZoL support. Via the Phoronix Test Suite various BSD/Linux I/O benchmarks were carried out. Err codemadness.org 70 i 24891 Overall, the FreeBSD ZFS On Linux port is looking good so far and we are looking forward to it hopefully maturing in time for FreeBSD 13.0. Nice job to iX Systems and all of those involved, especially the ZFS On Linux project. Those wanting to help in testing can try the FreeBSD ZoL spins. Stay tuned for more benchmarks and on more diverse hardware as time allows and the FreeBSD ZoL support further matures, but so far at least the performance numbers are in good shape.</p> Err codemadness.org 70 i 24892 </blockquote> Err codemadness.org 70 i 24893 Err codemadness.org 70 i 24894 <hr /> Err codemadness.org 70 i 24895 <h3 id="dragonflybsd542isouthttpswwwdragonflybsdorgrelease54"><a href="https://www.dragonflybsd.org/release54/">DragonFlyBSD 5.4.2 is out</a></h3> Err codemadness.org 70 i 24896 Err codemadness.org 70 i 24897 <p><a href="http://lists.dragonflybsd.org/pipermail/users/2019-April/358160.html">Upgrading guide</a></p> Err codemadness.org 70 i 24898 Err codemadness.org 70 i 24899 <blockquote> Err codemadness.org 70 i 24900 <p>Here's the tag commit, for what has changed from <a href="http://lists.dragonflybsd.org/pipermail/commits/2019-April/718697.html">5.4.1 to 5.4.2</a> Err codemadness.org 70 i 24901 The normal ISO and IMG files are available for download and install, plus an uncompressed ISO image for those installing remotely. I uploaded them to mirror-master.dragonflybsd.org last night so they should be at your local mirror or will be soon. This version includes Matt's fix for the HAMMER2 corruption bug he identified recently. Err codemadness.org 70 i 24902 If you have an existing 5.4 system and are running a generic kernel, the normal upgrade process will work.</p> Err codemadness.org 70 i 24903 </blockquote> Err codemadness.org 70 i 24904 Err codemadness.org 70 i 24905 <pre><code>&gt; cd /usr/src Err codemadness.org 70 i 24906 &gt; git pull Err codemadness.org 70 i 24907 &gt; make buildworld. Err codemadness.org 70 i 24908 &gt; make buildkernel. Err codemadness.org 70 i 24909 &gt; make installkernel. Err codemadness.org 70 i 24910 &gt; make installworld Err codemadness.org 70 i 24911 &gt; make upgrade Err codemadness.org 70 i 24912 </code></pre> Err codemadness.org 70 i 24913 Err codemadness.org 70 i 24914 <blockquote> Err codemadness.org 70 i 24915 <p>After your next reboot, you can optionally update your rescue system:</p> Err codemadness.org 70 i 24916 </blockquote> Err codemadness.org 70 i 24917 Err codemadness.org 70 i 24918 <pre><code>&gt; cd /usr/src Err codemadness.org 70 i 24919 &gt; make initrd Err codemadness.org 70 i 24920 </code></pre> Err codemadness.org 70 i 24921 Err codemadness.org 70 i 24922 <blockquote> Err codemadness.org 70 i 24923 <p>As always, make sure your packages are up to date:</p> Err codemadness.org 70 i 24924 </blockquote> Err codemadness.org 70 i 24925 Err codemadness.org 70 i 24926 <pre><code>&gt; pkg update Err codemadness.org 70 i 24927 &gt; pkg upgrade Err codemadness.org 70 i 24928 </code></pre> Err codemadness.org 70 i 24929 Err codemadness.org 70 i 24930 <hr /> Err codemadness.org 70 i 24931 <h2 id="newsroundup">News Roundup</h2> Err codemadness.org 70 i 24932 Err codemadness.org 70 i 24933 <h3 id="containingwebserviceswithiocellhttpsgioarcme20170305containingwebserviceswithiocell"><a href="https://gioarc.me/2017/03/05/containing-web-services-with-iocell/">Containing web services with iocell</a></h3> Err codemadness.org 70 i 24934 Err codemadness.org 70 i 24935 <blockquote> Err codemadness.org 70 i 24936 <p>I'm a huge fan of the FreeBSD jails feature. It is a great system for splitting services into logical units with all the performance of the bare metal system. In fact, this very site runs in its own jail! If this is starting to sound like LXC or Docker, it might surprise you to learn that OS-level virtualization has existed for quite some time. Kudos to the Linux folks for finally getting around to it. 😛 Err codemadness.org 70 i 24937 If you're interested in the history behind Jails, there is an excellent talk from Papers We Love on the subject: https://www.youtube.com/watch?v=hgN8pCMLI2U</p> Err codemadness.org 70 i 24938 </blockquote> Err codemadness.org 70 i 24939 Err codemadness.org 70 i 24940 <ul> Err codemadness.org 70 i 24941 <li>Getting started</li> Err codemadness.org 70 i 24942 </ul> Err codemadness.org 70 i 24943 Err codemadness.org 70 i 24944 <blockquote> Err codemadness.org 70 i 24945 <p>There are plenty of options when it comes to setting up the jail system. Ezjail and Iocage seem popular, or you could do things manually. Iocage was recently rewritten in python, but was originally a set of shell scripts. That version has since been forked under the name Iocell, and I think it's pretty neat, so this tutorial will be using Iocell.</p> Err codemadness.org 70 i 24946 </blockquote> Err codemadness.org 70 i 24947 Err codemadness.org 70 i 24948 <ul> Err codemadness.org 70 i 24949 <li>To start, you'll need the following: Err codemadness.org 70 i 24950 Err codemadness.org 70 i 24951 Err codemadness.org 70 i 24952 <ul> Err codemadness.org 70 i 24953 <li>A FreeBSD install (we'll be using 11.0)</li> Err codemadness.org 70 i 24954 Err codemadness.org 70 i 24955 <li>The iocell package (available as a package, also in the ports tree)</li> Err codemadness.org 70 i 24956 Err codemadness.org 70 i 24957 <li>A ZFS pool for hosting the jails</li></ul> Err codemadness.org 70 i 24958 </li> Err codemadness.org 70 i 24959 </ul> Err codemadness.org 70 i 24960 Err codemadness.org 70 i 24961 <blockquote> Err codemadness.org 70 i 24962 <p>Once you have installed iocell and configured your ZFS pool, you'll need to run a few commands before creating your first jail. First, tell iocell which ZFS pool to use by issuing iocell activate $POOLNAME. Iocell will create a few datasets.</p> Err codemadness.org 70 i 24963 Err codemadness.org 70 i 24964 <p>As you can imagine, your jails are contained within the /iocell/jails dataset. The /iocell/releases dataset is used for storing the next command we need to run, iocell fetch. Iocell will ask you which release you'd like to pull down. Since we're running 11.0 on the host, pick 11.0-RELEASE. Iocell will download the necessary txz files and unpack them in /iocell/releases.</p> Err codemadness.org 70 i 24965 </blockquote> Err codemadness.org 70 i 24966 Err codemadness.org 70 i 24967 <ul> Err codemadness.org 70 i 24968 <li>See Article for the rest of the walkthrough.</li> Err codemadness.org 70 i 24969 </ul> Err codemadness.org 70 i 24970 Err codemadness.org 70 i 24971 <hr /> Err codemadness.org 70 i 24972 <h3 id="oraclesolaris114sru8httpsblogsoraclecomsolarisannouncingoraclesolaris114sru8"><a href="https://blogs.oracle.com/solaris/announcing-oracle-solaris-114-sru8">Oracle Solaris 11.4 SRU8</a></h3> Err codemadness.org 70 i 24973 Err codemadness.org 70 i 24974 <blockquote> Err codemadness.org 70 i 24975 <p>Today we are releasing the SRU 8 for Oracle Solaris 11.4. It is available via 'pkg update' from the support repository or by downloading the SRU from My Oracle Support Doc ID 2433412.1.</p> Err codemadness.org 70 i 24976 Err codemadness.org 70 i 24977 <ul> Err codemadness.org 70 i 24978 <li>This SRU introduces the following enhancements: Err codemadness.org 70 i 24979 Err codemadness.org 70 i 24980 Err codemadness.org 70 i 24981 <ul> Err codemadness.org 70 i 24982 <li>Integration of 28060039 introduced an issue where any firmware update/query commands will log eereports and repeated execution of such commands led to faulty/degraded NIC. The issue has been addressed in this SRU.</li> Err codemadness.org 70 i 24983 Err codemadness.org 70 i 24984 <li>UCB (libucb, librpcsoc, libdbm, libtermcap, and libcurses) libraries have been reinstated for Oracle Solaris 11.4</li> Err codemadness.org 70 i 24985 Err codemadness.org 70 i 24986 <li>Re-introduction of the service fc-fabric.</li> Err codemadness.org 70 i 24987 Err codemadness.org 70 i 24988 <li>ibus has been updated to 1.5.19</li></ul> Err codemadness.org 70 i 24989 </li> Err codemadness.org 70 i 24990 </ul> Err codemadness.org 70 i 24991 </blockquote> Err codemadness.org 70 i 24992 Err codemadness.org 70 i 24993 <ul> Err codemadness.org 70 i 24994 <li>The following components have also been updated to address security issues: Err codemadness.org 70 i 24995 Err codemadness.org 70 i 24996 Err codemadness.org 70 i 24997 <ul> Err codemadness.org 70 i 24998 <li>NTP has been updated to 4.2.8p12</li> Err codemadness.org 70 i 24999 Err codemadness.org 70 i 25000 <li>Firefox has been updated to 60.6.0esr</li> Err codemadness.org 70 i 25001 Err codemadness.org 70 i 25002 <li>BIND has been updated to 9.11.6</li> Err codemadness.org 70 i 25003 Err codemadness.org 70 i 25004 <li>OpenSSL has been updated to 1.0.2r</li> Err codemadness.org 70 i 25005 Err codemadness.org 70 i 25006 <li>MySQL has been updated to 5.6.43 &amp; 5.7.25</li> Err codemadness.org 70 i 25007 Err codemadness.org 70 i 25008 <li>libxml2 has been updated to 2.9.9</li> Err codemadness.org 70 i 25009 Err codemadness.org 70 i 25010 <li>libxslt has been updated to 1.1.33</li> Err codemadness.org 70 i 25011 Err codemadness.org 70 i 25012 <li>Wireshark has been updated to 2.6.7</li> Err codemadness.org 70 i 25013 Err codemadness.org 70 i 25014 <li>ncurses has been updated to 6.1.0.20190105</li> Err codemadness.org 70 i 25015 Err codemadness.org 70 i 25016 <li>Apache Web Server has been updated to 2.4.38</li> Err codemadness.org 70 i 25017 Err codemadness.org 70 i 25018 <li>perl 5.22</li> Err codemadness.org 70 i 25019 Err codemadness.org 70 i 25020 <li>pkg.depot</li></ul> Err codemadness.org 70 i 25021 </li> Err codemadness.org 70 i 25022 </ul> Err codemadness.org 70 i 25023 Err codemadness.org 70 i 25024 <hr /> Err codemadness.org 70 i 25025 <h3 id="theproblemwithsshagentforwardinghttpsdefnio20190412sshforwarding"><a href="https://defn.io/2019/04/12/ssh-forwarding/">The Problem with SSH Agent Forwarding</a></h3> Err codemadness.org 70 i 25026 Err codemadness.org 70 i 25027 <blockquote> Err codemadness.org 70 i 25028 <p>After hacking the matrix.org website today, the attacker opened a series of GitHub issues mentioning the flaws he discovered. In one of those issues, he mentions that “complete compromise could have been avoided if developers were prohibited from using [SSH agent forwarding].” Err codemadness.org 70 i 25029 Here’s what man ssh_config has to say about ForwardAgent: "Agent forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the agent’s Unix-domain socket) can access the local agent through the forwarded connection. An attacker cannot obtain key material from the agent, however they can perform operations on the keys that enable them to authenticate using the identities loaded into the agent."" Err codemadness.org 70 i 25030 Simply put: if your jump box is compromised and you use SSH agent forwarding to connect to another machine through it, then you risk also compromising the target machine! Err codemadness.org 70 i 25031 Instead, you should use either ProxyCommand or ProxyJump (added in OpenSSH 7.3). That way, ssh will forward the TCP connection to the target host via the jump box and the actual connection will be made on your workstation. If someone on the jump box tries to MITM your connection, then you will be warned by ssh.</p> Err codemadness.org 70 i 25032 </blockquote> Err codemadness.org 70 i 25033 Err codemadness.org 70 i 25034 <hr /> Err codemadness.org 70 i 25035 <h3 id="openbsdupgradeguide64to65httpswwwopenbsdorgfaqupgrade65html">[<a href="https://www.openbsd.org/faq/upgrade65.html">OpenBSD Upgrade Guide: 6.4 to 6.5</a></h3> Err codemadness.org 70 i 25036 Err codemadness.org 70 i 25037 <blockquote> Err codemadness.org 70 i 25038 <p>Start by performing the pre-upgrade steps. Next, boot from the install kernel, bsd.rd: use bootable install media, or place the 6.5 version of bsd.rd in the root of your filesystem and instruct the boot loader to boot this kernel. Once this kernel is booted, choose the (U)pgrade option and follow the prompts. Apply the configuration changes and remove the old files. Finish up by upgrading the packages: pkg_add -u. Err codemadness.org 70 i 25039 Alternatively, you can use the manual upgrade process. Err codemadness.org 70 i 25040 You may wish to check the errata page or upgrade to the stable branch to get any post-release fixes.</p> Err codemadness.org 70 i 25041 </blockquote> Err codemadness.org 70 i 25042 Err codemadness.org 70 i 25043 <ul> Err codemadness.org 70 i 25044 <li>Before rebooting into the install kernel</li> Err codemadness.org 70 i 25045 Err codemadness.org 70 i 25046 <li>Configuration and syntax changes</li> Err codemadness.org 70 i 25047 Err codemadness.org 70 i 25048 <li>Files to remove</li> Err codemadness.org 70 i 25049 Err codemadness.org 70 i 25050 <li>Special packages</li> Err codemadness.org 70 i 25051 Err codemadness.org 70 i 25052 <li>Upgrade without the install kernel</li> Err codemadness.org 70 i 25053 </ul> Err codemadness.org 70 i 25054 Err codemadness.org 70 i 25055 <hr /> Err codemadness.org 70 i 25056 <h2 id="beastiebits">Beastie Bits</h2> Err codemadness.org 70 i 25057 Err codemadness.org 70 i 25058 <ul> Err codemadness.org 70 i 25059 <li><a href="https://lists.freebsd.org/pipermail/freebsd-announce/2019-April/001873.html">2019 FreeBSD Community Survey</a></li> Err codemadness.org 70 i 25060 Err codemadness.org 70 i 25061 <li><a href="https://blog.seagate.com/craftsman-ship/seagate-shows-dual-actuator-speed-gains-in-real-world-setup/">Seagate runs Mach.2 demo on FreeBSD</a></li> Err codemadness.org 70 i 25062 Err codemadness.org 70 i 25063 <li><a href="https://www.youtube.com/watch?v=2KoD-jXjHok&amp;t=7s">FreeBSD: Resizing and Growing Disks</a></li> Err codemadness.org 70 i 25064 Err codemadness.org 70 i 25065 <li><a href="https://old.reddit.com/r/freebsd/comments/bh1abv/loading_49_on_an_old_tandy_4025lx_386_16mb_1gb_hd/">Loading 4.9 on an old Tandy 4025LX - 386, 16MB, 1GB HD. Good old external SCSI CD</a></li> Err codemadness.org 70 i 25066 Err codemadness.org 70 i 25067 <li><a href="https://forums.os108.org/d/6-os108-mate-20190422-released">OS108 MATE 20190422 released</a></li> Err codemadness.org 70 i 25068 </ul> Err codemadness.org 70 i 25069 Err codemadness.org 70 i 25070 <hr /> Err codemadness.org 70 i 25071 <h2 id="feedbackquestions">Feedback/Questions</h2> Err codemadness.org 70 i 25072 Err codemadness.org 70 i 25073 <ul> Err codemadness.org 70 i 25074 <li>Casey - <a href="http://dpaste.com/39VJ7NH#wrap">Oklahoma City &amp; James</a></li> Err codemadness.org 70 i 25075 Err codemadness.org 70 i 25076 <li>Michael - <a href="http://dpaste.com/2VSKEGW#wrap">Question on SAS backplane (camcontrol?)</a></li> Err codemadness.org 70 i 25077 Err codemadness.org 70 i 25078 <li>Ales - <a href="http://dpaste.com/0AD0HBY#wrap">OpenBSD, FreeNAS, OpenZFS questions</a></li> Err codemadness.org 70 i 25079 </ul> Err codemadness.org 70 i 25080 Err codemadness.org 70 i 25081 <hr /> Err codemadness.org 70 i 25082 <ul> Err codemadness.org 70 i 25083 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 25084 </ul> Err codemadness.org 70 i 25085 Err codemadness.org 70 i 25086 <hr /> Err codemadness.org 70 i 25087 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 25088 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0297.mp4" type="video/mp4"> Err codemadness.org 70 i 25089 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 25090 </video> Err codemadness.org 70 i 25091 Err codemadness.org 70 i 25092 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, ZoL, iocell, Solaris, SSH, forwarding Err codemadness.org 70 i 25093 Err codemadness.org 70 i 25094 FreeBSD ZFS vs. ZoL performance, Dragonfly 5.4.2 has been release, containing web services with iocell, Solaris 11.4 SRU8, Problem with SSH Agent forwarding, OpenBSD 6.4 to 6.5 upgrade guide, and more.

Err codemadness.org 70 i 25095 Err codemadness.org 70 i 25096

Headlines

Err codemadness.org 70 i 25097 Err codemadness.org 70 i 25098

FreeBSD ZFS vs. ZoL Performance, Ubuntu ZFS On Linux Reference

Err codemadness.org 70 i 25099 Err codemadness.org 70 i 25100
Err codemadness.org 70 i 25101

With iX Systems having released new images of FreeBSD reworked with their ZFS On Linux code that is in development to ultimately replace their existing FreeBSD ZFS support derived from the code originally found in the Illumos source tree, here are some fresh benchmarks looking at the FreeBSD 12 performance of ZFS vs. ZoL vs. UFS and compared to Ubuntu Linux on the same system with EXT4 and ZFS. Err codemadness.org 70 i 25102 Using an Intel Xeon E3-1275 v6 with ASUS P10S-M WS motherboard, 2 x 8GB DDR4-2400 ECC UDIMMs, and Samsung 970 EVO Plus 500GB NVMe solid-state drive was used for all of this round of testing. Just a single modern NVMe SSD was used for this round of ZFS testing while as the FreeBSD ZoL code matures I'll test on multiple systems using a more diverse range of storage devices. Err codemadness.org 70 i 25103 FreeBSD 12 ZoL was tested using the iX Systems image and then fresh installs done of FreeBSD 12.0-RELEASE when defaulting to the existing ZFS root file-system support and again when using the aging UFS file-system. Ubuntu 18.04.2 LTS with the Linux 4.18 kernel was used when testing its default EXT4 file-system and then again when using the Ubuntu-ZFS ZoL support. Via the Phoronix Test Suite various BSD/Linux I/O benchmarks were carried out. Err codemadness.org 70 i 25104 Overall, the FreeBSD ZFS On Linux port is looking good so far and we are looking forward to it hopefully maturing in time for FreeBSD 13.0. Nice job to iX Systems and all of those involved, especially the ZFS On Linux project. Those wanting to help in testing can try the FreeBSD ZoL spins. Stay tuned for more benchmarks and on more diverse hardware as time allows and the FreeBSD ZoL support further matures, but so far at least the performance numbers are in good shape.

Err codemadness.org 70 i 25105
Err codemadness.org 70 i 25106 Err codemadness.org 70 i 25107


Err codemadness.org 70 i 25108 Err codemadness.org 70 i 25109

DragonFlyBSD 5.4.2 is out

Err codemadness.org 70 i 25110 Err codemadness.org 70 i 25111

Upgrading guide

Err codemadness.org 70 i 25112 Err codemadness.org 70 i 25113
Err codemadness.org 70 i 25114

Here's the tag commit, for what has changed from 5.4.1 to 5.4.2 Err codemadness.org 70 i 25115 The normal ISO and IMG files are available for download and install, plus an uncompressed ISO image for those installing remotely. I uploaded them to mirror-master.dragonflybsd.org last night so they should be at your local mirror or will be soon. This version includes Matt's fix for the HAMMER2 corruption bug he identified recently. Err codemadness.org 70 i 25116 If you have an existing 5.4 system and are running a generic kernel, the normal upgrade process will work.

Err codemadness.org 70 i 25117
Err codemadness.org 70 i 25118 Err codemadness.org 70 i 25119
> cd /usr/src	Err	codemadness.org	70
i 25120 > git pull	Err	codemadness.org	70
i 25121 > make buildworld.	Err	codemadness.org	70
i 25122 > make buildkernel.	Err	codemadness.org	70
i 25123 > make installkernel.	Err	codemadness.org	70
i 25124 > make installworld	Err	codemadness.org	70
i 25125 > make upgrade	Err	codemadness.org	70
i 25126 
Err codemadness.org 70 i 25127 Err codemadness.org 70 i 25128
Err codemadness.org 70 i 25129

After your next reboot, you can optionally update your rescue system:

Err codemadness.org 70 i 25130
Err codemadness.org 70 i 25131 Err codemadness.org 70 i 25132
> cd /usr/src	Err	codemadness.org	70
i 25133 > make initrd	Err	codemadness.org	70
i 25134 
Err codemadness.org 70 i 25135 Err codemadness.org 70 i 25136
Err codemadness.org 70 i 25137

As always, make sure your packages are up to date:

Err codemadness.org 70 i 25138
Err codemadness.org 70 i 25139 Err codemadness.org 70 i 25140
> pkg update	Err	codemadness.org	70
i 25141 > pkg upgrade	Err	codemadness.org	70
i 25142 
Err codemadness.org 70 i 25143 Err codemadness.org 70 i 25144


Err codemadness.org 70 i 25145 Err codemadness.org 70 i 25146

News Roundup

Err codemadness.org 70 i 25147 Err codemadness.org 70 i 25148

Containing web services with iocell

Err codemadness.org 70 i 25149 Err codemadness.org 70 i 25150
Err codemadness.org 70 i 25151

I'm a huge fan of the FreeBSD jails feature. It is a great system for splitting services into logical units with all the performance of the bare metal system. In fact, this very site runs in its own jail! If this is starting to sound like LXC or Docker, it might surprise you to learn that OS-level virtualization has existed for quite some time. Kudos to the Linux folks for finally getting around to it. 😛 Err codemadness.org 70 i 25152 If you're interested in the history behind Jails, there is an excellent talk from Papers We Love on the subject: https://www.youtube.com/watch?v=hgN8pCMLI2U

Err codemadness.org 70 i 25153
Err codemadness.org 70 i 25154 Err codemadness.org 70 i 25155
    Err codemadness.org 70 i 25156
  • Getting started
  • Err codemadness.org 70 i 25157
Err codemadness.org 70 i 25158 Err codemadness.org 70 i 25159
Err codemadness.org 70 i 25160

There are plenty of options when it comes to setting up the jail system. Ezjail and Iocage seem popular, or you could do things manually. Iocage was recently rewritten in python, but was originally a set of shell scripts. That version has since been forked under the name Iocell, and I think it's pretty neat, so this tutorial will be using Iocell.

Err codemadness.org 70 i 25161
Err codemadness.org 70 i 25162 Err codemadness.org 70 i 25163
    Err codemadness.org 70 i 25164
  • To start, you'll need the following: Err codemadness.org 70 i 25165 Err codemadness.org 70 i 25166 Err codemadness.org 70 i 25167
      Err codemadness.org 70 i 25168
    • A FreeBSD install (we'll be using 11.0)
    • Err codemadness.org 70 i 25169 Err codemadness.org 70 i 25170
    • The iocell package (available as a package, also in the ports tree)
    • Err codemadness.org 70 i 25171 Err codemadness.org 70 i 25172
    • A ZFS pool for hosting the jails
    Err codemadness.org 70 i 25173
  • Err codemadness.org 70 i 25174
Err codemadness.org 70 i 25175 Err codemadness.org 70 i 25176
Err codemadness.org 70 i 25177

Once you have installed iocell and configured your ZFS pool, you'll need to run a few commands before creating your first jail. First, tell iocell which ZFS pool to use by issuing iocell activate $POOLNAME. Iocell will create a few datasets.

Err codemadness.org 70 i 25178 Err codemadness.org 70 i 25179

As you can imagine, your jails are contained within the /iocell/jails dataset. The /iocell/releases dataset is used for storing the next command we need to run, iocell fetch. Iocell will ask you which release you'd like to pull down. Since we're running 11.0 on the host, pick 11.0-RELEASE. Iocell will download the necessary txz files and unpack them in /iocell/releases.

Err codemadness.org 70 i 25180
Err codemadness.org 70 i 25181 Err codemadness.org 70 i 25182
    Err codemadness.org 70 i 25183
  • See Article for the rest of the walkthrough.
  • Err codemadness.org 70 i 25184
Err codemadness.org 70 i 25185 Err codemadness.org 70 i 25186


Err codemadness.org 70 i 25187 Err codemadness.org 70 i 25188

Oracle Solaris 11.4 SRU8

Err codemadness.org 70 i 25189 Err codemadness.org 70 i 25190
Err codemadness.org 70 i 25191

Today we are releasing the SRU 8 for Oracle Solaris 11.4. It is available via 'pkg update' from the support repository or by downloading the SRU from My Oracle Support Doc ID 2433412.1.

Err codemadness.org 70 i 25192 Err codemadness.org 70 i 25193
    Err codemadness.org 70 i 25194
  • This SRU introduces the following enhancements: Err codemadness.org 70 i 25195 Err codemadness.org 70 i 25196 Err codemadness.org 70 i 25197
      Err codemadness.org 70 i 25198
    • Integration of 28060039 introduced an issue where any firmware update/query commands will log eereports and repeated execution of such commands led to faulty/degraded NIC. The issue has been addressed in this SRU.
    • Err codemadness.org 70 i 25199 Err codemadness.org 70 i 25200
    • UCB (libucb, librpcsoc, libdbm, libtermcap, and libcurses) libraries have been reinstated for Oracle Solaris 11.4
    • Err codemadness.org 70 i 25201 Err codemadness.org 70 i 25202
    • Re-introduction of the service fc-fabric.
    • Err codemadness.org 70 i 25203 Err codemadness.org 70 i 25204
    • ibus has been updated to 1.5.19
    Err codemadness.org 70 i 25205
  • Err codemadness.org 70 i 25206
Err codemadness.org 70 i 25207
Err codemadness.org 70 i 25208 Err codemadness.org 70 i 25209
    Err codemadness.org 70 i 25210
  • The following components have also been updated to address security issues: Err codemadness.org 70 i 25211 Err codemadness.org 70 i 25212 Err codemadness.org 70 i 25213
      Err codemadness.org 70 i 25214
    • NTP has been updated to 4.2.8p12
    • Err codemadness.org 70 i 25215 Err codemadness.org 70 i 25216
    • Firefox has been updated to 60.6.0esr
    • Err codemadness.org 70 i 25217 Err codemadness.org 70 i 25218
    • BIND has been updated to 9.11.6
    • Err codemadness.org 70 i 25219 Err codemadness.org 70 i 25220
    • OpenSSL has been updated to 1.0.2r
    • Err codemadness.org 70 i 25221 Err codemadness.org 70 i 25222
    • MySQL has been updated to 5.6.43 & 5.7.25
    • Err codemadness.org 70 i 25223 Err codemadness.org 70 i 25224
    • libxml2 has been updated to 2.9.9
    • Err codemadness.org 70 i 25225 Err codemadness.org 70 i 25226
    • libxslt has been updated to 1.1.33
    • Err codemadness.org 70 i 25227 Err codemadness.org 70 i 25228
    • Wireshark has been updated to 2.6.7
    • Err codemadness.org 70 i 25229 Err codemadness.org 70 i 25230
    • ncurses has been updated to 6.1.0.20190105
    • Err codemadness.org 70 i 25231 Err codemadness.org 70 i 25232
    • Apache Web Server has been updated to 2.4.38
    • Err codemadness.org 70 i 25233 Err codemadness.org 70 i 25234
    • perl 5.22
    • Err codemadness.org 70 i 25235 Err codemadness.org 70 i 25236
    • pkg.depot
    Err codemadness.org 70 i 25237
  • Err codemadness.org 70 i 25238
Err codemadness.org 70 i 25239 Err codemadness.org 70 i 25240


Err codemadness.org 70 i 25241 Err codemadness.org 70 i 25242

The Problem with SSH Agent Forwarding

Err codemadness.org 70 i 25243 Err codemadness.org 70 i 25244
Err codemadness.org 70 i 25245

After hacking the matrix.org website today, the attacker opened a series of GitHub issues mentioning the flaws he discovered. In one of those issues, he mentions that “complete compromise could have been avoided if developers were prohibited from using [SSH agent forwarding].” Err codemadness.org 70 i 25246 Here’s what man ssh_config has to say about ForwardAgent: "Agent forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the agent’s Unix-domain socket) can access the local agent through the forwarded connection. An attacker cannot obtain key material from the agent, however they can perform operations on the keys that enable them to authenticate using the identities loaded into the agent."" Err codemadness.org 70 i 25247 Simply put: if your jump box is compromised and you use SSH agent forwarding to connect to another machine through it, then you risk also compromising the target machine! Err codemadness.org 70 i 25248 Instead, you should use either ProxyCommand or ProxyJump (added in OpenSSH 7.3). That way, ssh will forward the TCP connection to the target host via the jump box and the actual connection will be made on your workstation. If someone on the jump box tries to MITM your connection, then you will be warned by ssh.

Err codemadness.org 70 i 25249
Err codemadness.org 70 i 25250 Err codemadness.org 70 i 25251


Err codemadness.org 70 i 25252 Err codemadness.org 70 i 25253

[OpenBSD Upgrade Guide: 6.4 to 6.5

Err codemadness.org 70 i 25254 Err codemadness.org 70 i 25255
Err codemadness.org 70 i 25256

Start by performing the pre-upgrade steps. Next, boot from the install kernel, bsd.rd: use bootable install media, or place the 6.5 version of bsd.rd in the root of your filesystem and instruct the boot loader to boot this kernel. Once this kernel is booted, choose the (U)pgrade option and follow the prompts. Apply the configuration changes and remove the old files. Finish up by upgrading the packages: pkg_add -u. Err codemadness.org 70 i 25257 Alternatively, you can use the manual upgrade process. Err codemadness.org 70 i 25258 You may wish to check the errata page or upgrade to the stable branch to get any post-release fixes.

Err codemadness.org 70 i 25259
Err codemadness.org 70 i 25260 Err codemadness.org 70 i 25261
    Err codemadness.org 70 i 25262
  • Before rebooting into the install kernel
  • Err codemadness.org 70 i 25263 Err codemadness.org 70 i 25264
  • Configuration and syntax changes
  • Err codemadness.org 70 i 25265 Err codemadness.org 70 i 25266
  • Files to remove
  • Err codemadness.org 70 i 25267 Err codemadness.org 70 i 25268
  • Special packages
  • Err codemadness.org 70 i 25269 Err codemadness.org 70 i 25270
  • Upgrade without the install kernel
  • Err codemadness.org 70 i 25271
Err codemadness.org 70 i 25272 Err codemadness.org 70 i 25273


Err codemadness.org 70 i 25274 Err codemadness.org 70 i 25275

Beastie Bits

Err codemadness.org 70 i 25276 Err codemadness.org 70 i 25277 Err codemadness.org 70 i 25288 Err codemadness.org 70 i 25289


Err codemadness.org 70 i 25290 Err codemadness.org 70 i 25291

Feedback/Questions

Err codemadness.org 70 i 25292 Err codemadness.org 70 i 25293 Err codemadness.org 70 i 25300 Err codemadness.org 70 i 25301


Err codemadness.org 70 i 25302 Err codemadness.org 70 i 25303
    Err codemadness.org 70 i 25304
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 25305
Err codemadness.org 70 i 25306 Err codemadness.org 70 i 25307


Err codemadness.org 70 i 25308 Err codemadness.org 70 i 25309 ]]> Err codemadness.org 70 i 25313
Err codemadness.org 70 i 25314 Err codemadness.org 70 i 25315 FreeBSD ZFS vs. ZoL performance, Dragonfly 5.4.2 has been release, containing web services with iocell, Solaris 11.4 SRU8, Problem with SSH Agent forwarding, OpenBSD 6.4 to 6.5 upgrade guide, and more.

Err codemadness.org 70 i 25316 Err codemadness.org 70 i 25317

Headlines

Err codemadness.org 70 i 25318 Err codemadness.org 70 i 25319

FreeBSD ZFS vs. ZoL Performance, Ubuntu ZFS On Linux Reference

Err codemadness.org 70 i 25320 Err codemadness.org 70 i 25321
Err codemadness.org 70 i 25322

With iX Systems having released new images of FreeBSD reworked with their ZFS On Linux code that is in development to ultimately replace their existing FreeBSD ZFS support derived from the code originally found in the Illumos source tree, here are some fresh benchmarks looking at the FreeBSD 12 performance of ZFS vs. ZoL vs. UFS and compared to Ubuntu Linux on the same system with EXT4 and ZFS. Err codemadness.org 70 i 25323 Using an Intel Xeon E3-1275 v6 with ASUS P10S-M WS motherboard, 2 x 8GB DDR4-2400 ECC UDIMMs, and Samsung 970 EVO Plus 500GB NVMe solid-state drive was used for all of this round of testing. Just a single modern NVMe SSD was used for this round of ZFS testing while as the FreeBSD ZoL code matures I'll test on multiple systems using a more diverse range of storage devices. Err codemadness.org 70 i 25324 FreeBSD 12 ZoL was tested using the iX Systems image and then fresh installs done of FreeBSD 12.0-RELEASE when defaulting to the existing ZFS root file-system support and again when using the aging UFS file-system. Ubuntu 18.04.2 LTS with the Linux 4.18 kernel was used when testing its default EXT4 file-system and then again when using the Ubuntu-ZFS ZoL support. Via the Phoronix Test Suite various BSD/Linux I/O benchmarks were carried out. Err codemadness.org 70 i 25325 Overall, the FreeBSD ZFS On Linux port is looking good so far and we are looking forward to it hopefully maturing in time for FreeBSD 13.0. Nice job to iX Systems and all of those involved, especially the ZFS On Linux project. Those wanting to help in testing can try the FreeBSD ZoL spins. Stay tuned for more benchmarks and on more diverse hardware as time allows and the FreeBSD ZoL support further matures, but so far at least the performance numbers are in good shape.

Err codemadness.org 70 i 25326
Err codemadness.org 70 i 25327 Err codemadness.org 70 i 25328


Err codemadness.org 70 i 25329 Err codemadness.org 70 i 25330

DragonFlyBSD 5.4.2 is out

Err codemadness.org 70 i 25331 Err codemadness.org 70 i 25332

Upgrading guide

Err codemadness.org 70 i 25333 Err codemadness.org 70 i 25334
Err codemadness.org 70 i 25335

Here's the tag commit, for what has changed from 5.4.1 to 5.4.2 Err codemadness.org 70 i 25336 The normal ISO and IMG files are available for download and install, plus an uncompressed ISO image for those installing remotely. I uploaded them to mirror-master.dragonflybsd.org last night so they should be at your local mirror or will be soon. This version includes Matt's fix for the HAMMER2 corruption bug he identified recently. Err codemadness.org 70 i 25337 If you have an existing 5.4 system and are running a generic kernel, the normal upgrade process will work.

Err codemadness.org 70 i 25338
Err codemadness.org 70 i 25339 Err codemadness.org 70 i 25340
> cd /usr/src	Err	codemadness.org	70
i 25341 > git pull	Err	codemadness.org	70
i 25342 > make buildworld.	Err	codemadness.org	70
i 25343 > make buildkernel.	Err	codemadness.org	70
i 25344 > make installkernel.	Err	codemadness.org	70
i 25345 > make installworld	Err	codemadness.org	70
i 25346 > make upgrade	Err	codemadness.org	70
i 25347 
Err codemadness.org 70 i 25348 Err codemadness.org 70 i 25349
Err codemadness.org 70 i 25350

After your next reboot, you can optionally update your rescue system:

Err codemadness.org 70 i 25351
Err codemadness.org 70 i 25352 Err codemadness.org 70 i 25353
> cd /usr/src	Err	codemadness.org	70
i 25354 > make initrd	Err	codemadness.org	70
i 25355 
Err codemadness.org 70 i 25356 Err codemadness.org 70 i 25357
Err codemadness.org 70 i 25358

As always, make sure your packages are up to date:

Err codemadness.org 70 i 25359
Err codemadness.org 70 i 25360 Err codemadness.org 70 i 25361
> pkg update	Err	codemadness.org	70
i 25362 > pkg upgrade	Err	codemadness.org	70
i 25363 
Err codemadness.org 70 i 25364 Err codemadness.org 70 i 25365


Err codemadness.org 70 i 25366 Err codemadness.org 70 i 25367

News Roundup

Err codemadness.org 70 i 25368 Err codemadness.org 70 i 25369

Containing web services with iocell

Err codemadness.org 70 i 25370 Err codemadness.org 70 i 25371
Err codemadness.org 70 i 25372

I'm a huge fan of the FreeBSD jails feature. It is a great system for splitting services into logical units with all the performance of the bare metal system. In fact, this very site runs in its own jail! If this is starting to sound like LXC or Docker, it might surprise you to learn that OS-level virtualization has existed for quite some time. Kudos to the Linux folks for finally getting around to it. 😛 Err codemadness.org 70 i 25373 If you're interested in the history behind Jails, there is an excellent talk from Papers We Love on the subject: https://www.youtube.com/watch?v=hgN8pCMLI2U

Err codemadness.org 70 i 25374
Err codemadness.org 70 i 25375 Err codemadness.org 70 i 25376
    Err codemadness.org 70 i 25377
  • Getting started
  • Err codemadness.org 70 i 25378
Err codemadness.org 70 i 25379 Err codemadness.org 70 i 25380
Err codemadness.org 70 i 25381

There are plenty of options when it comes to setting up the jail system. Ezjail and Iocage seem popular, or you could do things manually. Iocage was recently rewritten in python, but was originally a set of shell scripts. That version has since been forked under the name Iocell, and I think it's pretty neat, so this tutorial will be using Iocell.

Err codemadness.org 70 i 25382
Err codemadness.org 70 i 25383 Err codemadness.org 70 i 25384
    Err codemadness.org 70 i 25385
  • To start, you'll need the following: Err codemadness.org 70 i 25386 Err codemadness.org 70 i 25387 Err codemadness.org 70 i 25388
      Err codemadness.org 70 i 25389
    • A FreeBSD install (we'll be using 11.0)
    • Err codemadness.org 70 i 25390 Err codemadness.org 70 i 25391
    • The iocell package (available as a package, also in the ports tree)
    • Err codemadness.org 70 i 25392 Err codemadness.org 70 i 25393
    • A ZFS pool for hosting the jails
    Err codemadness.org 70 i 25394
  • Err codemadness.org 70 i 25395
Err codemadness.org 70 i 25396 Err codemadness.org 70 i 25397
Err codemadness.org 70 i 25398

Once you have installed iocell and configured your ZFS pool, you'll need to run a few commands before creating your first jail. First, tell iocell which ZFS pool to use by issuing iocell activate $POOLNAME. Iocell will create a few datasets.

Err codemadness.org 70 i 25399 Err codemadness.org 70 i 25400

As you can imagine, your jails are contained within the /iocell/jails dataset. The /iocell/releases dataset is used for storing the next command we need to run, iocell fetch. Iocell will ask you which release you'd like to pull down. Since we're running 11.0 on the host, pick 11.0-RELEASE. Iocell will download the necessary txz files and unpack them in /iocell/releases.

Err codemadness.org 70 i 25401
Err codemadness.org 70 i 25402 Err codemadness.org 70 i 25403
    Err codemadness.org 70 i 25404
  • See Article for the rest of the walkthrough.
  • Err codemadness.org 70 i 25405
Err codemadness.org 70 i 25406 Err codemadness.org 70 i 25407


Err codemadness.org 70 i 25408 Err codemadness.org 70 i 25409

Oracle Solaris 11.4 SRU8

Err codemadness.org 70 i 25410 Err codemadness.org 70 i 25411
Err codemadness.org 70 i 25412

Today we are releasing the SRU 8 for Oracle Solaris 11.4. It is available via 'pkg update' from the support repository or by downloading the SRU from My Oracle Support Doc ID 2433412.1.

Err codemadness.org 70 i 25413 Err codemadness.org 70 i 25414
    Err codemadness.org 70 i 25415
  • This SRU introduces the following enhancements: Err codemadness.org 70 i 25416 Err codemadness.org 70 i 25417 Err codemadness.org 70 i 25418
      Err codemadness.org 70 i 25419
    • Integration of 28060039 introduced an issue where any firmware update/query commands will log eereports and repeated execution of such commands led to faulty/degraded NIC. The issue has been addressed in this SRU.
    • Err codemadness.org 70 i 25420 Err codemadness.org 70 i 25421
    • UCB (libucb, librpcsoc, libdbm, libtermcap, and libcurses) libraries have been reinstated for Oracle Solaris 11.4
    • Err codemadness.org 70 i 25422 Err codemadness.org 70 i 25423
    • Re-introduction of the service fc-fabric.
    • Err codemadness.org 70 i 25424 Err codemadness.org 70 i 25425
    • ibus has been updated to 1.5.19
    Err codemadness.org 70 i 25426
  • Err codemadness.org 70 i 25427
Err codemadness.org 70 i 25428
Err codemadness.org 70 i 25429 Err codemadness.org 70 i 25430
    Err codemadness.org 70 i 25431
  • The following components have also been updated to address security issues: Err codemadness.org 70 i 25432 Err codemadness.org 70 i 25433 Err codemadness.org 70 i 25434
      Err codemadness.org 70 i 25435
    • NTP has been updated to 4.2.8p12
    • Err codemadness.org 70 i 25436 Err codemadness.org 70 i 25437
    • Firefox has been updated to 60.6.0esr
    • Err codemadness.org 70 i 25438 Err codemadness.org 70 i 25439
    • BIND has been updated to 9.11.6
    • Err codemadness.org 70 i 25440 Err codemadness.org 70 i 25441
    • OpenSSL has been updated to 1.0.2r
    • Err codemadness.org 70 i 25442 Err codemadness.org 70 i 25443
    • MySQL has been updated to 5.6.43 & 5.7.25
    • Err codemadness.org 70 i 25444 Err codemadness.org 70 i 25445
    • libxml2 has been updated to 2.9.9
    • Err codemadness.org 70 i 25446 Err codemadness.org 70 i 25447
    • libxslt has been updated to 1.1.33
    • Err codemadness.org 70 i 25448 Err codemadness.org 70 i 25449
    • Wireshark has been updated to 2.6.7
    • Err codemadness.org 70 i 25450 Err codemadness.org 70 i 25451
    • ncurses has been updated to 6.1.0.20190105
    • Err codemadness.org 70 i 25452 Err codemadness.org 70 i 25453
    • Apache Web Server has been updated to 2.4.38
    • Err codemadness.org 70 i 25454 Err codemadness.org 70 i 25455
    • perl 5.22
    • Err codemadness.org 70 i 25456 Err codemadness.org 70 i 25457
    • pkg.depot
    Err codemadness.org 70 i 25458
  • Err codemadness.org 70 i 25459
Err codemadness.org 70 i 25460 Err codemadness.org 70 i 25461


Err codemadness.org 70 i 25462 Err codemadness.org 70 i 25463

The Problem with SSH Agent Forwarding

Err codemadness.org 70 i 25464 Err codemadness.org 70 i 25465
Err codemadness.org 70 i 25466

After hacking the matrix.org website today, the attacker opened a series of GitHub issues mentioning the flaws he discovered. In one of those issues, he mentions that “complete compromise could have been avoided if developers were prohibited from using [SSH agent forwarding].” Err codemadness.org 70 i 25467 Here’s what man ssh_config has to say about ForwardAgent: "Agent forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the agent’s Unix-domain socket) can access the local agent through the forwarded connection. An attacker cannot obtain key material from the agent, however they can perform operations on the keys that enable them to authenticate using the identities loaded into the agent."" Err codemadness.org 70 i 25468 Simply put: if your jump box is compromised and you use SSH agent forwarding to connect to another machine through it, then you risk also compromising the target machine! Err codemadness.org 70 i 25469 Instead, you should use either ProxyCommand or ProxyJump (added in OpenSSH 7.3). That way, ssh will forward the TCP connection to the target host via the jump box and the actual connection will be made on your workstation. If someone on the jump box tries to MITM your connection, then you will be warned by ssh.

Err codemadness.org 70 i 25470
Err codemadness.org 70 i 25471 Err codemadness.org 70 i 25472


Err codemadness.org 70 i 25473 Err codemadness.org 70 i 25474

[OpenBSD Upgrade Guide: 6.4 to 6.5

Err codemadness.org 70 i 25475 Err codemadness.org 70 i 25476
Err codemadness.org 70 i 25477

Start by performing the pre-upgrade steps. Next, boot from the install kernel, bsd.rd: use bootable install media, or place the 6.5 version of bsd.rd in the root of your filesystem and instruct the boot loader to boot this kernel. Once this kernel is booted, choose the (U)pgrade option and follow the prompts. Apply the configuration changes and remove the old files. Finish up by upgrading the packages: pkg_add -u. Err codemadness.org 70 i 25478 Alternatively, you can use the manual upgrade process. Err codemadness.org 70 i 25479 You may wish to check the errata page or upgrade to the stable branch to get any post-release fixes.

Err codemadness.org 70 i 25480
Err codemadness.org 70 i 25481 Err codemadness.org 70 i 25482
    Err codemadness.org 70 i 25483
  • Before rebooting into the install kernel
  • Err codemadness.org 70 i 25484 Err codemadness.org 70 i 25485
  • Configuration and syntax changes
  • Err codemadness.org 70 i 25486 Err codemadness.org 70 i 25487
  • Files to remove
  • Err codemadness.org 70 i 25488 Err codemadness.org 70 i 25489
  • Special packages
  • Err codemadness.org 70 i 25490 Err codemadness.org 70 i 25491
  • Upgrade without the install kernel
  • Err codemadness.org 70 i 25492
Err codemadness.org 70 i 25493 Err codemadness.org 70 i 25494


Err codemadness.org 70 i 25495 Err codemadness.org 70 i 25496

Beastie Bits

Err codemadness.org 70 i 25497 Err codemadness.org 70 i 25498 Err codemadness.org 70 i 25509 Err codemadness.org 70 i 25510


Err codemadness.org 70 i 25511 Err codemadness.org 70 i 25512

Feedback/Questions

Err codemadness.org 70 i 25513 Err codemadness.org 70 i 25514 Err codemadness.org 70 i 25521 Err codemadness.org 70 i 25522


Err codemadness.org 70 i 25523 Err codemadness.org 70 i 25524
    Err codemadness.org 70 i 25525
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 25526
Err codemadness.org 70 i 25527 Err codemadness.org 70 i 25528


Err codemadness.org 70 i 25529 Err codemadness.org 70 i 25530 ]]> Err codemadness.org 70 i 25534
Err codemadness.org 70 i 25535 https://fireside.fm/player/v2/FYhhasNR+KHsEGk1H Err codemadness.org 70 i 25536 Err codemadness.org 70 i 25537 ]]> Err codemadness.org 70 i 25538 Err codemadness.org 70 i 25539
Err codemadness.org 70 i 25540 Err codemadness.org 70 i 25541 296: It’s Alive: OpenBSD 6.5 Err codemadness.org 70 i 25542 https://www.bsdnow.tv/296 Err codemadness.org 70 i 25543 81313d3c-40f8-49f3-bc58-f34f5dfcf51d Err codemadness.org 70 i 25544 Fri, 03 May 2019 10:00:00 -0700 Err codemadness.org 70 i 25545 Allan Jude Err codemadness.org 70 i 25546 Err codemadness.org 70 i 25547 full Err codemadness.org 70 i 25548 Allan Jude Err codemadness.org 70 i 25549 OpenBSD 6.5 has been released, mount ZFS datasets anywhere, help test upcoming NetBSD 9 branch, LibreSSL 2.9.1 is available, Bail Bond Denied Edition of FreeBSD Mastery: Jails, and one reason ed(1) was a good editor back in the days in this week’s episode. Err codemadness.org 70 i 25550 1:01:35 Err codemadness.org 70 i 25551 no Err codemadness.org 70 i 25552 Err codemadness.org 70 i 25553 OpenBSD 6.5 has been released, mount ZFS datasets anywhere, help test upcoming NetBSD 9 branch, LibreSSL 2.9.1 is available, Bail Bond Denied Edition of FreeBSD Mastery: Jails, and one reason ed(1) was a good editor back in the days in this week’s episode. Err codemadness.org 70 i 25554 <h2 id="headlines">Headlines</h2> Err codemadness.org 70 i 25555 Err codemadness.org 70 i 25556 <h3 id="openbsd65releasedhttpswwwopenbsdorg65html"><a href="https://www.openbsd.org/65.html">OpenBSD 6.5 Released</a></h3> Err codemadness.org 70 i 25557 Err codemadness.org 70 i 25558 <ul> Err codemadness.org 70 i 25559 <li><a href="https://www.openbsd.org/plus65.html">Changelog</a></li> Err codemadness.org 70 i 25560 Err codemadness.org 70 i 25561 <li><a href="https://www.openbsd.org/ftp.html">Mirrors</a></li> Err codemadness.org 70 i 25562 Err codemadness.org 70 i 25563 <li>6.5 Includes Err codemadness.org 70 i 25564 Err codemadness.org 70 i 25565 Err codemadness.org 70 i 25566 <ul> Err codemadness.org 70 i 25567 <li>OpenSMTPD 6.5.0</li> Err codemadness.org 70 i 25568 Err codemadness.org 70 i 25569 <li>LibreSSL 2.9.1</li> Err codemadness.org 70 i 25570 Err codemadness.org 70 i 25571 <li>OpenSSH 8.0</li> Err codemadness.org 70 i 25572 Err codemadness.org 70 i 25573 <li>Mandoc 1.14.5</li> Err codemadness.org 70 i 25574 Err codemadness.org 70 i 25575 <li>Xenocara</li> Err codemadness.org 70 i 25576 Err codemadness.org 70 i 25577 <li>LLVM/Clang 7.0.1 (+ patches)</li> Err codemadness.org 70 i 25578 Err codemadness.org 70 i 25579 <li>GCC 4.2.1 (+ patches) and 3.3.6 (+ patches)</li></ul> Err codemadness.org 70 i 25580 </li> Err codemadness.org 70 i 25581 Err codemadness.org 70 i 25582 <li>Many pre-built packages for each architecture: Err codemadness.org 70 i 25583 Err codemadness.org 70 i 25584 Err codemadness.org 70 i 25585 <ul> Err codemadness.org 70 i 25586 <li>aarch64: 9654</li> Err codemadness.org 70 i 25587 Err codemadness.org 70 i 25588 <li>amd64: 10602</li> Err codemadness.org 70 i 25589 Err codemadness.org 70 i 25590 <li>i386: 10535</li></ul> Err codemadness.org 70 i 25591 </li> Err codemadness.org 70 i 25592 </ul> Err codemadness.org 70 i 25593 Err codemadness.org 70 i 25594 <hr /> Err codemadness.org 70 i 25595 <h3 id="mountyourzfsdatasetsanywhereyouwanthttpsdanlangilleorg20190422mountyourzfsdatasetsanywhereyouwant"><a href="https://dan.langille.org/2019/04/22/mount-your-zfs-datasets-anywhere-you-want/">Mount your ZFS datasets anywhere you want</a></h3> Err codemadness.org 70 i 25596 Err codemadness.org 70 i 25597 <blockquote> Err codemadness.org 70 i 25598 <p>ZFS is very flexible about mountpoints, and there are many features available to provide great flexibility. Err codemadness.org 70 i 25599 When you create zpool main<em>tank, the default mountpoint is /main</em>tank. Err codemadness.org 70 i 25600 You might be happy with that, but you don’t have to be content. You can do magical things.</p> Err codemadness.org 70 i 25601 </blockquote> Err codemadness.org 70 i 25602 Err codemadness.org 70 i 25603 <ul> Err codemadness.org 70 i 25604 <li>Some highlights are: Err codemadness.org 70 i 25605 Err codemadness.org 70 i 25606 Err codemadness.org 70 i 25607 <ul> Err codemadness.org 70 i 25608 <li>mount point can be inherited</li> Err codemadness.org 70 i 25609 Err codemadness.org 70 i 25610 <li>not all filesystems in a zpool need to be mounted</li> Err codemadness.org 70 i 25611 Err codemadness.org 70 i 25612 <li>each filesystem (directory) can have different ZFS characteristics</li> Err codemadness.org 70 i 25613 Err codemadness.org 70 i 25614 <li>In my case, let’s look at this new zpool I created earlier today and I will show you some very simple alternatives. This zpool use NVMe devices which should be faster than SSDs especially when used with multiple concurrent writes. This is my plan: run all the Bacula regression tests concurrently.</li></ul> Err codemadness.org 70 i 25615 </li> Err codemadness.org 70 i 25616 </ul> Err codemadness.org 70 i 25617 Err codemadness.org 70 i 25618 <hr /> Err codemadness.org 70 i 25619 <h2 id="newsroundup">News Roundup</h2> Err codemadness.org 70 i 25620 Err codemadness.org 70 i 25621 <h3 id="branchfornetbsd9upcomingpleasehelpandtestcurrenthttpsmailindexnetbsdorgcurrentusers20190424msg035645html"><a href="https://mail-index.netbsd.org/current-users/2019/04/24/msg035645.html">Branch for netbsd 9 upcoming, please help and test -current</a></h3> Err codemadness.org 70 i 25622 Err codemadness.org 70 i 25623 <blockquote> Err codemadness.org 70 i 25624 <p>Folks, Err codemadness.org 70 i 25625 once again we are quite late for branching the next NetBSD release (NetBSD 9). Err codemadness.org 70 i 25626 Initially planned to happen early in February 2019, we are now approaching May and it is unlikely that the branch will happen before that. Err codemadness.org 70 i 25627 On the positive side, lots of good things landed in -current in between, like new Mesa, new jemalloc, lots of ZFS improvements - and some of those would be hard to pull up to the branch later. Err codemadness.org 70 i 25628 On the bad side we saw lots of churn in -current recently, and there is quite some fallout where we not even have a good overview right now. And this is where you can help:</p> Err codemadness.org 70 i 25629 Err codemadness.org 70 i 25630 <ul> Err codemadness.org 70 i 25631 <li>please test -current, on all the various machines you have</li> Err codemadness.org 70 i 25632 Err codemadness.org 70 i 25633 <li>especially interesting would be test results from uncommon architectures Err codemadness.org 70 i 25634 or strange combinations (like the sparc userland on sparc64 kernel issue Err codemadness.org 70 i 25635 I ran in yesterday) Err codemadness.org 70 i 25636 Please test, report success, and file PRs for failures! Err codemadness.org 70 i 25637 We will likely announce the real branch date on quite short notice, the likely next candidates would be mid may or end of may. Err codemadness.org 70 i 25638 We may need to do extra steps after the branch (like switch some architectures back to old jemalloc on the branch). However, the less difference between -current and the branch, the easier will the release cycle go. Err codemadness.org 70 i 25639 Our goal is to have an unprecedented short release cycle this time. But.. Err codemadness.org 70 i 25640 we always say that upfront.</li> Err codemadness.org 70 i 25641 </ul> Err codemadness.org 70 i 25642 Err codemadness.org 70 i 25643 <hr /> Err codemadness.org 70 i 25644 </blockquote> Err codemadness.org 70 i 25645 Err codemadness.org 70 i 25646 <h3 id="libressl291releasedhttpsmarcinfolopenbsdannouncem155590112606279w2"><a href="https://marc.info/?l=openbsd-announce&amp;m=155590112606279&amp;w=2">LibreSSL 2.9.1 Released</a></h3> Err codemadness.org 70 i 25647 Err codemadness.org 70 i 25648 <blockquote> Err codemadness.org 70 i 25649 <p>We have released LibreSSL 2.9.1, which will be arriving in the LibreSSL Err codemadness.org 70 i 25650 directory of your local OpenBSD mirror soon. This is the first stable release Err codemadness.org 70 i 25651 from the 2.9 series, which is also included with OpenBSD 6.5</p> Err codemadness.org 70 i 25652 Err codemadness.org 70 i 25653 <p>It includes the following changes and improvements from LibreSSL 2.8.x:</p> Err codemadness.org 70 i 25654 </blockquote> Err codemadness.org 70 i 25655 Err codemadness.org 70 i 25656 <ul> Err codemadness.org 70 i 25657 <li><p>API and Documentation Enhancements</p> Err codemadness.org 70 i 25658 Err codemadness.org 70 i 25659 <ul> Err codemadness.org 70 i 25660 <li>CRYPTO_LOCK is now automatically initialized, with the legacy Err codemadness.org 70 i 25661 callbacks stubbed for compatibility.</li> Err codemadness.org 70 i 25662 Err codemadness.org 70 i 25663 <li>Added the SM3 hash function from the Chinese standard GB/T 32905-2016.</li> Err codemadness.org 70 i 25664 Err codemadness.org 70 i 25665 <li>Added the SM4 block cipher from the Chinese standard GB/T 32907-2016.</li> Err codemadness.org 70 i 25666 Err codemadness.org 70 i 25667 <li>Added more OPENSSL<em>NO</em>* macros for compatibility with OpenSSL.</li> Err codemadness.org 70 i 25668 Err codemadness.org 70 i 25669 <li>Partial port of the OpenSSL EC<em>KEY</em>METHOD API for use by OpenSSH.</li> Err codemadness.org 70 i 25670 Err codemadness.org 70 i 25671 <li>Implemented further missing OpenSSL 1.1 API.</li> Err codemadness.org 70 i 25672 Err codemadness.org 70 i 25673 <li>Added support for XChaCha20 and XChaCha20-Poly1305.</li> Err codemadness.org 70 i 25674 Err codemadness.org 70 i 25675 <li>Added support for AES key wrap constructions via the EVP interface.</li></ul></li> Err codemadness.org 70 i 25676 Err codemadness.org 70 i 25677 <li><p>Compatibility Changes</p> Err codemadness.org 70 i 25678 Err codemadness.org 70 i 25679 <ul> Err codemadness.org 70 i 25680 <li>Added pbkdf2 key derivation support to openssl(1) enc.</li> Err codemadness.org 70 i 25681 Err codemadness.org 70 i 25682 <li>Changed the default digest type of openssl(1) enc to sha256.</li> Err codemadness.org 70 i 25683 Err codemadness.org 70 i 25684 <li>Changed the default digest type of openssl(1) dgst to sha256.</li> Err codemadness.org 70 i 25685 Err codemadness.org 70 i 25686 <li>Changed the default digest type of openssl(1) x509 -fingerprint to sha256.</li> Err codemadness.org 70 i 25687 Err codemadness.org 70 i 25688 <li>Changed the default digest type of openssl(1) crl -fingerprint to sha256.</li></ul></li> Err codemadness.org 70 i 25689 Err codemadness.org 70 i 25690 <li><p>Testing and Proactive Security</p> Err codemadness.org 70 i 25691 Err codemadness.org 70 i 25692 <ul> Err codemadness.org 70 i 25693 <li>Added extensive interoperability tests between LibreSSL and OpenSSL Err codemadness.org 70 i 25694 1.0 and 1.1.</li> Err codemadness.org 70 i 25695 Err codemadness.org 70 i 25696 <li>Added additional Wycheproof tests and related bug fixes.</li></ul></li> Err codemadness.org 70 i 25697 Err codemadness.org 70 i 25698 <li><p>Internal Improvements</p> Err codemadness.org 70 i 25699 Err codemadness.org 70 i 25700 <ul> Err codemadness.org 70 i 25701 <li>Simplified sigalgs option processing and handshake signing Err codemadness.org 70 i 25702 algorithm selection.</li> Err codemadness.org 70 i 25703 Err codemadness.org 70 i 25704 <li>Added the ability to use the RSA PSS algorithm for handshake signatures.</li> Err codemadness.org 70 i 25705 Err codemadness.org 70 i 25706 <li>Added bn<em>rand</em>interval() and use it in code needing ranges of Err codemadness.org 70 i 25707 random bn values.</li> Err codemadness.org 70 i 25708 Err codemadness.org 70 i 25709 <li>Added functionality to derive early, handshake, and application Err codemadness.org 70 i 25710 secrets as per RFC8446.</li> Err codemadness.org 70 i 25711 Err codemadness.org 70 i 25712 <li>Added handshake state machine from RFC8446.</li> Err codemadness.org 70 i 25713 Err codemadness.org 70 i 25714 <li>Removed some ASN.1 related code from libcrypto that had not been Err codemadness.org 70 i 25715 used since around 2000.</li> Err codemadness.org 70 i 25716 Err codemadness.org 70 i 25717 <li>Unexported internal symbols and internalized more record layer structs.</li> Err codemadness.org 70 i 25718 Err codemadness.org 70 i 25719 <li>Removed SHA224 based handshake signatures from consideration for Err codemadness.org 70 i 25720 use in a TLS 1.2 handshake.</li></ul></li> Err codemadness.org 70 i 25721 Err codemadness.org 70 i 25722 <li><p>Portable Improvements</p> Err codemadness.org 70 i 25723 Err codemadness.org 70 i 25724 <ul> Err codemadness.org 70 i 25725 <li>Added support for assembly optimizations on 32-bit ARM ELF targets.</li> Err codemadness.org 70 i 25726 Err codemadness.org 70 i 25727 <li>Added support for assembly optimizations on Mingw-w64 targets.</li> Err codemadness.org 70 i 25728 Err codemadness.org 70 i 25729 <li>Improved Android compatibility</li></ul></li> Err codemadness.org 70 i 25730 Err codemadness.org 70 i 25731 <li><p>Bug Fixes</p> Err codemadness.org 70 i 25732 Err codemadness.org 70 i 25733 <p><ul> Err codemadness.org 70 i 25734 <li>Improved protection against timing side channels in ECDSA signature Err codemadness.org 70 i 25735 generation.</li></p> Err codemadness.org 70 i 25736 Err codemadness.org 70 i 25737 <p><li>Coordinate blinding was added to some elliptic curves. This is the Err codemadness.org 70 i 25738 last bit of the work by Brumley et al. to protect against the Portsmash Err codemadness.org 70 i 25739 vulnerability.</li></p> Err codemadness.org 70 i 25740 Err codemadness.org 70 i 25741 <p><li>Ensure transcript handshake is always freed with TLS 1.2.</li></ul> Err codemadness.org 70 i 25742 Err codemadness.org 70 i 25743 <p></p></li> Err codemadness.org 70 i 25744 </ul></p> Err codemadness.org 70 i 25745 Err codemadness.org 70 i 25746 <blockquote> Err codemadness.org 70 i 25747 <p>The LibreSSL project continues improvement of the codebase to reflect modern, Err codemadness.org 70 i 25748 safe programming practices. We welcome feedback and improvements from the Err codemadness.org 70 i 25749 broader community. Thanks to all of the contributors who helped make this Err codemadness.org 70 i 25750 release possible.</p> Err codemadness.org 70 i 25751 Err codemadness.org 70 i 25752 <hr /> Err codemadness.org 70 i 25753 </blockquote> Err codemadness.org 70 i 25754 Err codemadness.org 70 i 25755 <h3 id="freebsdmasteryjailsbailbonddeniededitionhttpsmwlioarchives4227"><a href="https://mwl.io/archives/4227">FreeBSD Mastery: Jails – Bail Bond Denied Edition</a></h3> Err codemadness.org 70 i 25756 Err codemadness.org 70 i 25757 <blockquote> Err codemadness.org 70 i 25758 <p>I had a brilliant, hideous idea: to produce a charity edition of FreeBSD Mastery: Jails featuring the cover art I would use if I was imprisoned and did not have access to a real cover artist. (Never mind that I wouldn’t be permitted to release books while in jail: we creative sorts scoff at mere legal and cultural details.) Err codemadness.org 70 i 25759 I originally wanted to produce my own take on the book’s cover art. My first attempt failed spectacularly. Err codemadness.org 70 i 25760 I downgraded my expectations and tried again. And again. And again. Err codemadness.org 70 i 25761 I’m pleased to reveal the final cover for FreeBSD Mastery: Jails–Bail Bond Edition! Err codemadness.org 70 i 25762 This cover represents the very pinnacle of my artistic talents, and is the result of literally hours of effort. Err codemadness.org 70 i 25763 But, as this book is available only to the winner of charity fund-raisers, purchase of this tome represents moral supremacy. I recommend flaunting it to your family, coworkers, and all those of lesser character. Err codemadness.org 70 i 25764 Get your copy by winning the BSDCan 2019 charity auction… or any other other auction-type event I deem worthwhile. Err codemadness.org 70 i 25765 As far as my moral fiber goes: I have learned that art is hard, and that artists are not paid enough. Err codemadness.org 70 i 25766 And if I am ever imprisoned, I do hope that you’ll contribute to my bail fund. Otherwise, you’ll get more covers like this one.</p> Err codemadness.org 70 i 25767 </blockquote> Err codemadness.org 70 i 25768 Err codemadness.org 70 i 25769 <hr /> Err codemadness.org 70 i 25770 Err codemadness.org 70 i 25771 <h3 id="onereasoned1wasagoodeditorbackinthedaysofv7unixhttpsutccutorontocatcksspaceblogunixeddesignedforcookedinput"><a href="https://utcc.utoronto.ca/~cks/space/blog/unix/EdDesignedForCookedInput">One reason ed(1) was a good editor back in the days of V7 Unix</a></h3> Err codemadness.org 70 i 25772 Err codemadness.org 70 i 25773 <blockquote> Err codemadness.org 70 i 25774 <p>It is common to describe ed(1) as being line oriented, as opposed to screen oriented editors like vi. This is completely accurate but it is perhaps not a complete enough description for today, because ed is line oriented in a way that is now uncommon. After all, you could say that your shell is line oriented too, and very few people use shells that work and feel the same way ed does. Err codemadness.org 70 i 25775 The surface difference between most people's shells and ed is that most people's shells have some version of cursor based interactive editing. The deeper difference is that this requires the shell to run in character by character TTY input mode, also called raw mode. By contrast, ed runs in what Unix usually calls cooked mode, where it reads whole lines from the kernel and the kernel handles things like backspace. All of ed's commands are designed so that they work in this line focused way (including being terminated by the end of the line), and as a whole ed's interface makes this whole line input approach natural. In fact I think ed makes it so natural that it's hard to think of things as being any other way. Ed was designed for line at a time input, not just to not be screen oriented. Err codemadness.org 70 i 25776 This input mode difference is not very important today, but in the days of V7 and serial terminals it made a real difference. In cooked mode, V7 ran very little code when you entered each character; almost everything was deferred until it could be processed in bulk by the kernel, and then handed to ed all in a single line which ed could also process all at once. A version of ed that tried to work in raw mode would have been much more resource intensive, even if it still operated on single lines at a time.</p> Err codemadness.org 70 i 25777 </blockquote> Err codemadness.org 70 i 25778 Err codemadness.org 70 i 25779 <hr /> Err codemadness.org 70 i 25780 Err codemadness.org 70 i 25781 <h2 id="beastiebits">Beastie Bits</h2> Err codemadness.org 70 i 25782 Err codemadness.org 70 i 25783 <ul> Err codemadness.org 70 i 25784 <li><a href="https://lists.freebsd.org/pipermail/freebsd-fs/2019-April/027603.html">CFT for FreeBSD ZoL</a></li> Err codemadness.org 70 i 25785 Err codemadness.org 70 i 25786 <li><a href="https://github.com/wilyarti/simple-dns-adblock">Simple DNS Adblock</a></li> Err codemadness.org 70 i 25787 Err codemadness.org 70 i 25788 <li><a href="https://twitter.com/unix_byte/status/1119904828182781958">AT&amp;T Unix PC in 1985</a></li> Err codemadness.org 70 i 25789 Err codemadness.org 70 i 25790 <li><a href="https://marc.info/?l=openbsd-cvs&amp;m=155523690813457&amp;w=2">OpenBSD-current drm at 4.19, includes new support for Intel GPUs like Coffee Lake</a></li> Err codemadness.org 70 i 25791 Err codemadness.org 70 i 25792 <li><a href="https://twitter.com/cfenollosa/status/1122069042083323904">"What are the differences between Linux and OpenBSD?" - Twitter thread</a></li> Err codemadness.org 70 i 25793 Err codemadness.org 70 i 25794 <li><a href="http://mail-index.netbsd.org/pkgsrc-users/2019/04/10/msg028308.html">Announcing the pkgsrc-2019Q1 release (2019-04-10)</a></li> Err codemadness.org 70 i 25795 </ul> Err codemadness.org 70 i 25796 Err codemadness.org 70 i 25797 <hr /> Err codemadness.org 70 i 25798 <h2 id="feedbackquestions">Feedback/Questions</h2> Err codemadness.org 70 i 25799 Err codemadness.org 70 i 25800 <ul> Err codemadness.org 70 i 25801 <li>Brad - <a href="http://dpaste.com/0K2QFTM#wrap">iocage</a></li> Err codemadness.org 70 i 25802 Err codemadness.org 70 i 25803 <li>Frank - <a href="http://dpaste.com/3110R96#wrap">Video from Level1Tech and a question</a></li> Err codemadness.org 70 i 25804 Err codemadness.org 70 i 25805 <li>Niall - <a href="http://dpaste.com/0A32XDK#wrap">Revision Control</a></li> Err codemadness.org 70 i 25806 </ul> Err codemadness.org 70 i 25807 Err codemadness.org 70 i 25808 <hr /> Err codemadness.org 70 i 25809 <ul> Err codemadness.org 70 i 25810 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 25811 </ul> Err codemadness.org 70 i 25812 Err codemadness.org 70 i 25813 <hr /> Err codemadness.org 70 i 25814 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 25815 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0296.mp4" type="video/mp4"> Err codemadness.org 70 i 25816 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 25817 </video> Err codemadness.org 70 i 25818 Err codemadness.org 70 i 25819 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, zfs, libressl, ed, michael lucas, dns, pkgsrc Err codemadness.org 70 i 25820 Err codemadness.org 70 i 25821 OpenBSD 6.5 has been released, mount ZFS datasets anywhere, help test upcoming NetBSD 9 branch, LibreSSL 2.9.1 is available, Bail Bond Denied Edition of FreeBSD Mastery: Jails, and one reason ed(1) was a good editor back in the days in this week’s episode.

Err codemadness.org 70 i 25822 Err codemadness.org 70 i 25823

Headlines

Err codemadness.org 70 i 25824 Err codemadness.org 70 i 25825

OpenBSD 6.5 Released

Err codemadness.org 70 i 25826 Err codemadness.org 70 i 25827
    Err codemadness.org 70 i 25828
  • Changelog
  • Err codemadness.org 70 i 25829 Err codemadness.org 70 i 25830
  • Mirrors
  • Err codemadness.org 70 i 25831 Err codemadness.org 70 i 25832
  • 6.5 Includes Err codemadness.org 70 i 25833 Err codemadness.org 70 i 25834 Err codemadness.org 70 i 25835
      Err codemadness.org 70 i 25836
    • OpenSMTPD 6.5.0
    • Err codemadness.org 70 i 25837 Err codemadness.org 70 i 25838
    • LibreSSL 2.9.1
    • Err codemadness.org 70 i 25839 Err codemadness.org 70 i 25840
    • OpenSSH 8.0
    • Err codemadness.org 70 i 25841 Err codemadness.org 70 i 25842
    • Mandoc 1.14.5
    • Err codemadness.org 70 i 25843 Err codemadness.org 70 i 25844
    • Xenocara
    • Err codemadness.org 70 i 25845 Err codemadness.org 70 i 25846
    • LLVM/Clang 7.0.1 (+ patches)
    • Err codemadness.org 70 i 25847 Err codemadness.org 70 i 25848
    • GCC 4.2.1 (+ patches) and 3.3.6 (+ patches)
    Err codemadness.org 70 i 25849
  • Err codemadness.org 70 i 25850 Err codemadness.org 70 i 25851
  • Many pre-built packages for each architecture: Err codemadness.org 70 i 25852 Err codemadness.org 70 i 25853 Err codemadness.org 70 i 25854
      Err codemadness.org 70 i 25855
    • aarch64: 9654
    • Err codemadness.org 70 i 25856 Err codemadness.org 70 i 25857
    • amd64: 10602
    • Err codemadness.org 70 i 25858 Err codemadness.org 70 i 25859
    • i386: 10535
    Err codemadness.org 70 i 25860
  • Err codemadness.org 70 i 25861
Err codemadness.org 70 i 25862 Err codemadness.org 70 i 25863


Err codemadness.org 70 i 25864 Err codemadness.org 70 i 25865

Mount your ZFS datasets anywhere you want

Err codemadness.org 70 i 25866 Err codemadness.org 70 i 25867
Err codemadness.org 70 i 25868

ZFS is very flexible about mountpoints, and there are many features available to provide great flexibility. Err codemadness.org 70 i 25869 When you create zpool maintank, the default mountpoint is /maintank. Err codemadness.org 70 i 25870 You might be happy with that, but you don’t have to be content. You can do magical things.

Err codemadness.org 70 i 25871
Err codemadness.org 70 i 25872 Err codemadness.org 70 i 25873
    Err codemadness.org 70 i 25874
  • Some highlights are: Err codemadness.org 70 i 25875 Err codemadness.org 70 i 25876 Err codemadness.org 70 i 25877
      Err codemadness.org 70 i 25878
    • mount point can be inherited
    • Err codemadness.org 70 i 25879 Err codemadness.org 70 i 25880
    • not all filesystems in a zpool need to be mounted
    • Err codemadness.org 70 i 25881 Err codemadness.org 70 i 25882
    • each filesystem (directory) can have different ZFS characteristics
    • Err codemadness.org 70 i 25883 Err codemadness.org 70 i 25884
    • In my case, let’s look at this new zpool I created earlier today and I will show you some very simple alternatives. This zpool use NVMe devices which should be faster than SSDs especially when used with multiple concurrent writes. This is my plan: run all the Bacula regression tests concurrently.
    Err codemadness.org 70 i 25885
  • Err codemadness.org 70 i 25886
Err codemadness.org 70 i 25887 Err codemadness.org 70 i 25888


Err codemadness.org 70 i 25889 Err codemadness.org 70 i 25890

News Roundup

Err codemadness.org 70 i 25891 Err codemadness.org 70 i 25892

Branch for netbsd 9 upcoming, please help and test -current

Err codemadness.org 70 i 25893 Err codemadness.org 70 i 25894
Err codemadness.org 70 i 25895

Folks, Err codemadness.org 70 i 25896 once again we are quite late for branching the next NetBSD release (NetBSD 9). Err codemadness.org 70 i 25897 Initially planned to happen early in February 2019, we are now approaching May and it is unlikely that the branch will happen before that. Err codemadness.org 70 i 25898 On the positive side, lots of good things landed in -current in between, like new Mesa, new jemalloc, lots of ZFS improvements - and some of those would be hard to pull up to the branch later. Err codemadness.org 70 i 25899 On the bad side we saw lots of churn in -current recently, and there is quite some fallout where we not even have a good overview right now. And this is where you can help:

Err codemadness.org 70 i 25900 Err codemadness.org 70 i 25901
    Err codemadness.org 70 i 25902
  • please test -current, on all the various machines you have
  • Err codemadness.org 70 i 25903 Err codemadness.org 70 i 25904
  • especially interesting would be test results from uncommon architectures Err codemadness.org 70 i 25905 or strange combinations (like the sparc userland on sparc64 kernel issue Err codemadness.org 70 i 25906 I ran in yesterday) Err codemadness.org 70 i 25907 Please test, report success, and file PRs for failures! Err codemadness.org 70 i 25908 We will likely announce the real branch date on quite short notice, the likely next candidates would be mid may or end of may. Err codemadness.org 70 i 25909 We may need to do extra steps after the branch (like switch some architectures back to old jemalloc on the branch). However, the less difference between -current and the branch, the easier will the release cycle go. Err codemadness.org 70 i 25910 Our goal is to have an unprecedented short release cycle this time. But.. Err codemadness.org 70 i 25911 we always say that upfront.
  • Err codemadness.org 70 i 25912
Err codemadness.org 70 i 25913 Err codemadness.org 70 i 25914
Err codemadness.org 70 i 25915
Err codemadness.org 70 i 25916 Err codemadness.org 70 i 25917

LibreSSL 2.9.1 Released

Err codemadness.org 70 i 25918 Err codemadness.org 70 i 25919
Err codemadness.org 70 i 25920

We have released LibreSSL 2.9.1, which will be arriving in the LibreSSL Err codemadness.org 70 i 25921 directory of your local OpenBSD mirror soon. This is the first stable release Err codemadness.org 70 i 25922 from the 2.9 series, which is also included with OpenBSD 6.5

Err codemadness.org 70 i 25923 Err codemadness.org 70 i 25924

It includes the following changes and improvements from LibreSSL 2.8.x:

Err codemadness.org 70 i 25925
Err codemadness.org 70 i 25926 Err codemadness.org 70 i 25927
    Err codemadness.org 70 i 25928
  • API and Documentation Enhancements

    Err codemadness.org 70 i 25929 Err codemadness.org 70 i 25930
      Err codemadness.org 70 i 25931
    • CRYPTO_LOCK is now automatically initialized, with the legacy Err codemadness.org 70 i 25932 callbacks stubbed for compatibility.
    • Err codemadness.org 70 i 25933 Err codemadness.org 70 i 25934
    • Added the SM3 hash function from the Chinese standard GB/T 32905-2016.
    • Err codemadness.org 70 i 25935 Err codemadness.org 70 i 25936
    • Added the SM4 block cipher from the Chinese standard GB/T 32907-2016.
    • Err codemadness.org 70 i 25937 Err codemadness.org 70 i 25938
    • Added more OPENSSLNO* macros for compatibility with OpenSSL.
    • Err codemadness.org 70 i 25939 Err codemadness.org 70 i 25940
    • Partial port of the OpenSSL ECKEYMETHOD API for use by OpenSSH.
    • Err codemadness.org 70 i 25941 Err codemadness.org 70 i 25942
    • Implemented further missing OpenSSL 1.1 API.
    • Err codemadness.org 70 i 25943 Err codemadness.org 70 i 25944
    • Added support for XChaCha20 and XChaCha20-Poly1305.
    • Err codemadness.org 70 i 25945 Err codemadness.org 70 i 25946
    • Added support for AES key wrap constructions via the EVP interface.
  • Err codemadness.org 70 i 25947 Err codemadness.org 70 i 25948
  • Compatibility Changes

    Err codemadness.org 70 i 25949 Err codemadness.org 70 i 25950
      Err codemadness.org 70 i 25951
    • Added pbkdf2 key derivation support to openssl(1) enc.
    • Err codemadness.org 70 i 25952 Err codemadness.org 70 i 25953
    • Changed the default digest type of openssl(1) enc to sha256.
    • Err codemadness.org 70 i 25954 Err codemadness.org 70 i 25955
    • Changed the default digest type of openssl(1) dgst to sha256.
    • Err codemadness.org 70 i 25956 Err codemadness.org 70 i 25957
    • Changed the default digest type of openssl(1) x509 -fingerprint to sha256.
    • Err codemadness.org 70 i 25958 Err codemadness.org 70 i 25959
    • Changed the default digest type of openssl(1) crl -fingerprint to sha256.
  • Err codemadness.org 70 i 25960 Err codemadness.org 70 i 25961
  • Testing and Proactive Security

    Err codemadness.org 70 i 25962 Err codemadness.org 70 i 25963
      Err codemadness.org 70 i 25964
    • Added extensive interoperability tests between LibreSSL and OpenSSL Err codemadness.org 70 i 25965 1.0 and 1.1.
    • Err codemadness.org 70 i 25966 Err codemadness.org 70 i 25967
    • Added additional Wycheproof tests and related bug fixes.
  • Err codemadness.org 70 i 25968 Err codemadness.org 70 i 25969
  • Internal Improvements

    Err codemadness.org 70 i 25970 Err codemadness.org 70 i 25971
      Err codemadness.org 70 i 25972
    • Simplified sigalgs option processing and handshake signing Err codemadness.org 70 i 25973 algorithm selection.
    • Err codemadness.org 70 i 25974 Err codemadness.org 70 i 25975
    • Added the ability to use the RSA PSS algorithm for handshake signatures.
    • Err codemadness.org 70 i 25976 Err codemadness.org 70 i 25977
    • Added bnrandinterval() and use it in code needing ranges of Err codemadness.org 70 i 25978 random bn values.
    • Err codemadness.org 70 i 25979 Err codemadness.org 70 i 25980
    • Added functionality to derive early, handshake, and application Err codemadness.org 70 i 25981 secrets as per RFC8446.
    • Err codemadness.org 70 i 25982 Err codemadness.org 70 i 25983
    • Added handshake state machine from RFC8446.
    • Err codemadness.org 70 i 25984 Err codemadness.org 70 i 25985
    • Removed some ASN.1 related code from libcrypto that had not been Err codemadness.org 70 i 25986 used since around 2000.
    • Err codemadness.org 70 i 25987 Err codemadness.org 70 i 25988
    • Unexported internal symbols and internalized more record layer structs.
    • Err codemadness.org 70 i 25989 Err codemadness.org 70 i 25990
    • Removed SHA224 based handshake signatures from consideration for Err codemadness.org 70 i 25991 use in a TLS 1.2 handshake.
  • Err codemadness.org 70 i 25992 Err codemadness.org 70 i 25993
  • Portable Improvements

    Err codemadness.org 70 i 25994 Err codemadness.org 70 i 25995
      Err codemadness.org 70 i 25996
    • Added support for assembly optimizations on 32-bit ARM ELF targets.
    • Err codemadness.org 70 i 25997 Err codemadness.org 70 i 25998
    • Added support for assembly optimizations on Mingw-w64 targets.
    • Err codemadness.org 70 i 25999 Err codemadness.org 70 i 26000
    • Improved Android compatibility
  • Err codemadness.org 70 i 26001 Err codemadness.org 70 i 26002
  • Bug Fixes

    Err codemadness.org 70 i 26003 Err codemadness.org 70 i 26004

      Err codemadness.org 70 i 26005
    • Improved protection against timing side channels in ECDSA signature Err codemadness.org 70 i 26006 generation.
    • Err codemadness.org 70 i 26007 Err codemadness.org 70 i 26008

    • Coordinate blinding was added to some elliptic curves. This is the Err codemadness.org 70 i 26009 last bit of the work by Brumley et al. to protect against the Portsmash Err codemadness.org 70 i 26010 vulnerability.
    • Err codemadness.org 70 i 26011 Err codemadness.org 70 i 26012

    • Ensure transcript handshake is always freed with TLS 1.2.
    Err codemadness.org 70 i 26013 Err codemadness.org 70 i 26014

  • Err codemadness.org 70 i 26015

Err codemadness.org 70 i 26016 Err codemadness.org 70 i 26017
Err codemadness.org 70 i 26018

The LibreSSL project continues improvement of the codebase to reflect modern, Err codemadness.org 70 i 26019 safe programming practices. We welcome feedback and improvements from the Err codemadness.org 70 i 26020 broader community. Thanks to all of the contributors who helped make this Err codemadness.org 70 i 26021 release possible.

Err codemadness.org 70 i 26022 Err codemadness.org 70 i 26023
Err codemadness.org 70 i 26024
Err codemadness.org 70 i 26025 Err codemadness.org 70 i 26026

FreeBSD Mastery: Jails – Bail Bond Denied Edition

Err codemadness.org 70 i 26027 Err codemadness.org 70 i 26028
Err codemadness.org 70 i 26029

I had a brilliant, hideous idea: to produce a charity edition of FreeBSD Mastery: Jails featuring the cover art I would use if I was imprisoned and did not have access to a real cover artist. (Never mind that I wouldn’t be permitted to release books while in jail: we creative sorts scoff at mere legal and cultural details.) Err codemadness.org 70 i 26030 I originally wanted to produce my own take on the book’s cover art. My first attempt failed spectacularly. Err codemadness.org 70 i 26031 I downgraded my expectations and tried again. And again. And again. Err codemadness.org 70 i 26032 I’m pleased to reveal the final cover for FreeBSD Mastery: Jails–Bail Bond Edition! Err codemadness.org 70 i 26033 This cover represents the very pinnacle of my artistic talents, and is the result of literally hours of effort. Err codemadness.org 70 i 26034 But, as this book is available only to the winner of charity fund-raisers, purchase of this tome represents moral supremacy. I recommend flaunting it to your family, coworkers, and all those of lesser character. Err codemadness.org 70 i 26035 Get your copy by winning the BSDCan 2019 charity auction… or any other other auction-type event I deem worthwhile. Err codemadness.org 70 i 26036 As far as my moral fiber goes: I have learned that art is hard, and that artists are not paid enough. Err codemadness.org 70 i 26037 And if I am ever imprisoned, I do hope that you’ll contribute to my bail fund. Otherwise, you’ll get more covers like this one.

Err codemadness.org 70 i 26038
Err codemadness.org 70 i 26039 Err codemadness.org 70 i 26040
Err codemadness.org 70 i 26041 Err codemadness.org 70 i 26042

One reason ed(1) was a good editor back in the days of V7 Unix

Err codemadness.org 70 i 26043 Err codemadness.org 70 i 26044
Err codemadness.org 70 i 26045

It is common to describe ed(1) as being line oriented, as opposed to screen oriented editors like vi. This is completely accurate but it is perhaps not a complete enough description for today, because ed is line oriented in a way that is now uncommon. After all, you could say that your shell is line oriented too, and very few people use shells that work and feel the same way ed does. Err codemadness.org 70 i 26046 The surface difference between most people's shells and ed is that most people's shells have some version of cursor based interactive editing. The deeper difference is that this requires the shell to run in character by character TTY input mode, also called raw mode. By contrast, ed runs in what Unix usually calls cooked mode, where it reads whole lines from the kernel and the kernel handles things like backspace. All of ed's commands are designed so that they work in this line focused way (including being terminated by the end of the line), and as a whole ed's interface makes this whole line input approach natural. In fact I think ed makes it so natural that it's hard to think of things as being any other way. Ed was designed for line at a time input, not just to not be screen oriented. Err codemadness.org 70 i 26047 This input mode difference is not very important today, but in the days of V7 and serial terminals it made a real difference. In cooked mode, V7 ran very little code when you entered each character; almost everything was deferred until it could be processed in bulk by the kernel, and then handed to ed all in a single line which ed could also process all at once. A version of ed that tried to work in raw mode would have been much more resource intensive, even if it still operated on single lines at a time.

Err codemadness.org 70 i 26048
Err codemadness.org 70 i 26049 Err codemadness.org 70 i 26050
Err codemadness.org 70 i 26051 Err codemadness.org 70 i 26052

Beastie Bits

Err codemadness.org 70 i 26053 Err codemadness.org 70 i 26054 Err codemadness.org 70 i 26067 Err codemadness.org 70 i 26068


Err codemadness.org 70 i 26069 Err codemadness.org 70 i 26070

Feedback/Questions

Err codemadness.org 70 i 26071 Err codemadness.org 70 i 26072 Err codemadness.org 70 i 26079 Err codemadness.org 70 i 26080


Err codemadness.org 70 i 26081 Err codemadness.org 70 i 26082
    Err codemadness.org 70 i 26083
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 26084
Err codemadness.org 70 i 26085 Err codemadness.org 70 i 26086


Err codemadness.org 70 i 26087 Err codemadness.org 70 i 26088 ]]> Err codemadness.org 70 i 26092
Err codemadness.org 70 i 26093 Err codemadness.org 70 i 26094 OpenBSD 6.5 has been released, mount ZFS datasets anywhere, help test upcoming NetBSD 9 branch, LibreSSL 2.9.1 is available, Bail Bond Denied Edition of FreeBSD Mastery: Jails, and one reason ed(1) was a good editor back in the days in this week’s episode.

Err codemadness.org 70 i 26095 Err codemadness.org 70 i 26096

Headlines

Err codemadness.org 70 i 26097 Err codemadness.org 70 i 26098

OpenBSD 6.5 Released

Err codemadness.org 70 i 26099 Err codemadness.org 70 i 26100
    Err codemadness.org 70 i 26101
  • Changelog
  • Err codemadness.org 70 i 26102 Err codemadness.org 70 i 26103
  • Mirrors
  • Err codemadness.org 70 i 26104 Err codemadness.org 70 i 26105
  • 6.5 Includes Err codemadness.org 70 i 26106 Err codemadness.org 70 i 26107 Err codemadness.org 70 i 26108
      Err codemadness.org 70 i 26109
    • OpenSMTPD 6.5.0
    • Err codemadness.org 70 i 26110 Err codemadness.org 70 i 26111
    • LibreSSL 2.9.1
    • Err codemadness.org 70 i 26112 Err codemadness.org 70 i 26113
    • OpenSSH 8.0
    • Err codemadness.org 70 i 26114 Err codemadness.org 70 i 26115
    • Mandoc 1.14.5
    • Err codemadness.org 70 i 26116 Err codemadness.org 70 i 26117
    • Xenocara
    • Err codemadness.org 70 i 26118 Err codemadness.org 70 i 26119
    • LLVM/Clang 7.0.1 (+ patches)
    • Err codemadness.org 70 i 26120 Err codemadness.org 70 i 26121
    • GCC 4.2.1 (+ patches) and 3.3.6 (+ patches)
    Err codemadness.org 70 i 26122
  • Err codemadness.org 70 i 26123 Err codemadness.org 70 i 26124
  • Many pre-built packages for each architecture: Err codemadness.org 70 i 26125 Err codemadness.org 70 i 26126 Err codemadness.org 70 i 26127
      Err codemadness.org 70 i 26128
    • aarch64: 9654
    • Err codemadness.org 70 i 26129 Err codemadness.org 70 i 26130
    • amd64: 10602
    • Err codemadness.org 70 i 26131 Err codemadness.org 70 i 26132
    • i386: 10535
    Err codemadness.org 70 i 26133
  • Err codemadness.org 70 i 26134
Err codemadness.org 70 i 26135 Err codemadness.org 70 i 26136


Err codemadness.org 70 i 26137 Err codemadness.org 70 i 26138

Mount your ZFS datasets anywhere you want

Err codemadness.org 70 i 26139 Err codemadness.org 70 i 26140
Err codemadness.org 70 i 26141

ZFS is very flexible about mountpoints, and there are many features available to provide great flexibility. Err codemadness.org 70 i 26142 When you create zpool maintank, the default mountpoint is /maintank. Err codemadness.org 70 i 26143 You might be happy with that, but you don’t have to be content. You can do magical things.

Err codemadness.org 70 i 26144
Err codemadness.org 70 i 26145 Err codemadness.org 70 i 26146
    Err codemadness.org 70 i 26147
  • Some highlights are: Err codemadness.org 70 i 26148 Err codemadness.org 70 i 26149 Err codemadness.org 70 i 26150
      Err codemadness.org 70 i 26151
    • mount point can be inherited
    • Err codemadness.org 70 i 26152 Err codemadness.org 70 i 26153
    • not all filesystems in a zpool need to be mounted
    • Err codemadness.org 70 i 26154 Err codemadness.org 70 i 26155
    • each filesystem (directory) can have different ZFS characteristics
    • Err codemadness.org 70 i 26156 Err codemadness.org 70 i 26157
    • In my case, let’s look at this new zpool I created earlier today and I will show you some very simple alternatives. This zpool use NVMe devices which should be faster than SSDs especially when used with multiple concurrent writes. This is my plan: run all the Bacula regression tests concurrently.
    Err codemadness.org 70 i 26158
  • Err codemadness.org 70 i 26159
Err codemadness.org 70 i 26160 Err codemadness.org 70 i 26161


Err codemadness.org 70 i 26162 Err codemadness.org 70 i 26163

News Roundup

Err codemadness.org 70 i 26164 Err codemadness.org 70 i 26165

Branch for netbsd 9 upcoming, please help and test -current

Err codemadness.org 70 i 26166 Err codemadness.org 70 i 26167
Err codemadness.org 70 i 26168

Folks, Err codemadness.org 70 i 26169 once again we are quite late for branching the next NetBSD release (NetBSD 9). Err codemadness.org 70 i 26170 Initially planned to happen early in February 2019, we are now approaching May and it is unlikely that the branch will happen before that. Err codemadness.org 70 i 26171 On the positive side, lots of good things landed in -current in between, like new Mesa, new jemalloc, lots of ZFS improvements - and some of those would be hard to pull up to the branch later. Err codemadness.org 70 i 26172 On the bad side we saw lots of churn in -current recently, and there is quite some fallout where we not even have a good overview right now. And this is where you can help:

Err codemadness.org 70 i 26173 Err codemadness.org 70 i 26174
    Err codemadness.org 70 i 26175
  • please test -current, on all the various machines you have
  • Err codemadness.org 70 i 26176 Err codemadness.org 70 i 26177
  • especially interesting would be test results from uncommon architectures Err codemadness.org 70 i 26178 or strange combinations (like the sparc userland on sparc64 kernel issue Err codemadness.org 70 i 26179 I ran in yesterday) Err codemadness.org 70 i 26180 Please test, report success, and file PRs for failures! Err codemadness.org 70 i 26181 We will likely announce the real branch date on quite short notice, the likely next candidates would be mid may or end of may. Err codemadness.org 70 i 26182 We may need to do extra steps after the branch (like switch some architectures back to old jemalloc on the branch). However, the less difference between -current and the branch, the easier will the release cycle go. Err codemadness.org 70 i 26183 Our goal is to have an unprecedented short release cycle this time. But.. Err codemadness.org 70 i 26184 we always say that upfront.
  • Err codemadness.org 70 i 26185
Err codemadness.org 70 i 26186 Err codemadness.org 70 i 26187
Err codemadness.org 70 i 26188
Err codemadness.org 70 i 26189 Err codemadness.org 70 i 26190

LibreSSL 2.9.1 Released

Err codemadness.org 70 i 26191 Err codemadness.org 70 i 26192
Err codemadness.org 70 i 26193

We have released LibreSSL 2.9.1, which will be arriving in the LibreSSL Err codemadness.org 70 i 26194 directory of your local OpenBSD mirror soon. This is the first stable release Err codemadness.org 70 i 26195 from the 2.9 series, which is also included with OpenBSD 6.5

Err codemadness.org 70 i 26196 Err codemadness.org 70 i 26197

It includes the following changes and improvements from LibreSSL 2.8.x:

Err codemadness.org 70 i 26198
Err codemadness.org 70 i 26199 Err codemadness.org 70 i 26200
    Err codemadness.org 70 i 26201
  • API and Documentation Enhancements

    Err codemadness.org 70 i 26202 Err codemadness.org 70 i 26203
      Err codemadness.org 70 i 26204
    • CRYPTO_LOCK is now automatically initialized, with the legacy Err codemadness.org 70 i 26205 callbacks stubbed for compatibility.
    • Err codemadness.org 70 i 26206 Err codemadness.org 70 i 26207
    • Added the SM3 hash function from the Chinese standard GB/T 32905-2016.
    • Err codemadness.org 70 i 26208 Err codemadness.org 70 i 26209
    • Added the SM4 block cipher from the Chinese standard GB/T 32907-2016.
    • Err codemadness.org 70 i 26210 Err codemadness.org 70 i 26211
    • Added more OPENSSLNO* macros for compatibility with OpenSSL.
    • Err codemadness.org 70 i 26212 Err codemadness.org 70 i 26213
    • Partial port of the OpenSSL ECKEYMETHOD API for use by OpenSSH.
    • Err codemadness.org 70 i 26214 Err codemadness.org 70 i 26215
    • Implemented further missing OpenSSL 1.1 API.
    • Err codemadness.org 70 i 26216 Err codemadness.org 70 i 26217
    • Added support for XChaCha20 and XChaCha20-Poly1305.
    • Err codemadness.org 70 i 26218 Err codemadness.org 70 i 26219
    • Added support for AES key wrap constructions via the EVP interface.
  • Err codemadness.org 70 i 26220 Err codemadness.org 70 i 26221
  • Compatibility Changes

    Err codemadness.org 70 i 26222 Err codemadness.org 70 i 26223
      Err codemadness.org 70 i 26224
    • Added pbkdf2 key derivation support to openssl(1) enc.
    • Err codemadness.org 70 i 26225 Err codemadness.org 70 i 26226
    • Changed the default digest type of openssl(1) enc to sha256.
    • Err codemadness.org 70 i 26227 Err codemadness.org 70 i 26228
    • Changed the default digest type of openssl(1) dgst to sha256.
    • Err codemadness.org 70 i 26229 Err codemadness.org 70 i 26230
    • Changed the default digest type of openssl(1) x509 -fingerprint to sha256.
    • Err codemadness.org 70 i 26231 Err codemadness.org 70 i 26232
    • Changed the default digest type of openssl(1) crl -fingerprint to sha256.
  • Err codemadness.org 70 i 26233 Err codemadness.org 70 i 26234
  • Testing and Proactive Security

    Err codemadness.org 70 i 26235 Err codemadness.org 70 i 26236
      Err codemadness.org 70 i 26237
    • Added extensive interoperability tests between LibreSSL and OpenSSL Err codemadness.org 70 i 26238 1.0 and 1.1.
    • Err codemadness.org 70 i 26239 Err codemadness.org 70 i 26240
    • Added additional Wycheproof tests and related bug fixes.
  • Err codemadness.org 70 i 26241 Err codemadness.org 70 i 26242
  • Internal Improvements

    Err codemadness.org 70 i 26243 Err codemadness.org 70 i 26244
      Err codemadness.org 70 i 26245
    • Simplified sigalgs option processing and handshake signing Err codemadness.org 70 i 26246 algorithm selection.
    • Err codemadness.org 70 i 26247 Err codemadness.org 70 i 26248
    • Added the ability to use the RSA PSS algorithm for handshake signatures.
    • Err codemadness.org 70 i 26249 Err codemadness.org 70 i 26250
    • Added bnrandinterval() and use it in code needing ranges of Err codemadness.org 70 i 26251 random bn values.
    • Err codemadness.org 70 i 26252 Err codemadness.org 70 i 26253
    • Added functionality to derive early, handshake, and application Err codemadness.org 70 i 26254 secrets as per RFC8446.
    • Err codemadness.org 70 i 26255 Err codemadness.org 70 i 26256
    • Added handshake state machine from RFC8446.
    • Err codemadness.org 70 i 26257 Err codemadness.org 70 i 26258
    • Removed some ASN.1 related code from libcrypto that had not been Err codemadness.org 70 i 26259 used since around 2000.
    • Err codemadness.org 70 i 26260 Err codemadness.org 70 i 26261
    • Unexported internal symbols and internalized more record layer structs.
    • Err codemadness.org 70 i 26262 Err codemadness.org 70 i 26263
    • Removed SHA224 based handshake signatures from consideration for Err codemadness.org 70 i 26264 use in a TLS 1.2 handshake.
  • Err codemadness.org 70 i 26265 Err codemadness.org 70 i 26266
  • Portable Improvements

    Err codemadness.org 70 i 26267 Err codemadness.org 70 i 26268
      Err codemadness.org 70 i 26269
    • Added support for assembly optimizations on 32-bit ARM ELF targets.
    • Err codemadness.org 70 i 26270 Err codemadness.org 70 i 26271
    • Added support for assembly optimizations on Mingw-w64 targets.
    • Err codemadness.org 70 i 26272 Err codemadness.org 70 i 26273
    • Improved Android compatibility
  • Err codemadness.org 70 i 26274 Err codemadness.org 70 i 26275
  • Bug Fixes

    Err codemadness.org 70 i 26276 Err codemadness.org 70 i 26277

      Err codemadness.org 70 i 26278
    • Improved protection against timing side channels in ECDSA signature Err codemadness.org 70 i 26279 generation.
    • Err codemadness.org 70 i 26280 Err codemadness.org 70 i 26281

    • Coordinate blinding was added to some elliptic curves. This is the Err codemadness.org 70 i 26282 last bit of the work by Brumley et al. to protect against the Portsmash Err codemadness.org 70 i 26283 vulnerability.
    • Err codemadness.org 70 i 26284 Err codemadness.org 70 i 26285

    • Ensure transcript handshake is always freed with TLS 1.2.
    Err codemadness.org 70 i 26286 Err codemadness.org 70 i 26287

  • Err codemadness.org 70 i 26288

Err codemadness.org 70 i 26289 Err codemadness.org 70 i 26290
Err codemadness.org 70 i 26291

The LibreSSL project continues improvement of the codebase to reflect modern, Err codemadness.org 70 i 26292 safe programming practices. We welcome feedback and improvements from the Err codemadness.org 70 i 26293 broader community. Thanks to all of the contributors who helped make this Err codemadness.org 70 i 26294 release possible.

Err codemadness.org 70 i 26295 Err codemadness.org 70 i 26296
Err codemadness.org 70 i 26297
Err codemadness.org 70 i 26298 Err codemadness.org 70 i 26299

FreeBSD Mastery: Jails – Bail Bond Denied Edition

Err codemadness.org 70 i 26300 Err codemadness.org 70 i 26301
Err codemadness.org 70 i 26302

I had a brilliant, hideous idea: to produce a charity edition of FreeBSD Mastery: Jails featuring the cover art I would use if I was imprisoned and did not have access to a real cover artist. (Never mind that I wouldn’t be permitted to release books while in jail: we creative sorts scoff at mere legal and cultural details.) Err codemadness.org 70 i 26303 I originally wanted to produce my own take on the book’s cover art. My first attempt failed spectacularly. Err codemadness.org 70 i 26304 I downgraded my expectations and tried again. And again. And again. Err codemadness.org 70 i 26305 I’m pleased to reveal the final cover for FreeBSD Mastery: Jails–Bail Bond Edition! Err codemadness.org 70 i 26306 This cover represents the very pinnacle of my artistic talents, and is the result of literally hours of effort. Err codemadness.org 70 i 26307 But, as this book is available only to the winner of charity fund-raisers, purchase of this tome represents moral supremacy. I recommend flaunting it to your family, coworkers, and all those of lesser character. Err codemadness.org 70 i 26308 Get your copy by winning the BSDCan 2019 charity auction… or any other other auction-type event I deem worthwhile. Err codemadness.org 70 i 26309 As far as my moral fiber goes: I have learned that art is hard, and that artists are not paid enough. Err codemadness.org 70 i 26310 And if I am ever imprisoned, I do hope that you’ll contribute to my bail fund. Otherwise, you’ll get more covers like this one.

Err codemadness.org 70 i 26311
Err codemadness.org 70 i 26312 Err codemadness.org 70 i 26313
Err codemadness.org 70 i 26314 Err codemadness.org 70 i 26315

One reason ed(1) was a good editor back in the days of V7 Unix

Err codemadness.org 70 i 26316 Err codemadness.org 70 i 26317
Err codemadness.org 70 i 26318

It is common to describe ed(1) as being line oriented, as opposed to screen oriented editors like vi. This is completely accurate but it is perhaps not a complete enough description for today, because ed is line oriented in a way that is now uncommon. After all, you could say that your shell is line oriented too, and very few people use shells that work and feel the same way ed does. Err codemadness.org 70 i 26319 The surface difference between most people's shells and ed is that most people's shells have some version of cursor based interactive editing. The deeper difference is that this requires the shell to run in character by character TTY input mode, also called raw mode. By contrast, ed runs in what Unix usually calls cooked mode, where it reads whole lines from the kernel and the kernel handles things like backspace. All of ed's commands are designed so that they work in this line focused way (including being terminated by the end of the line), and as a whole ed's interface makes this whole line input approach natural. In fact I think ed makes it so natural that it's hard to think of things as being any other way. Ed was designed for line at a time input, not just to not be screen oriented. Err codemadness.org 70 i 26320 This input mode difference is not very important today, but in the days of V7 and serial terminals it made a real difference. In cooked mode, V7 ran very little code when you entered each character; almost everything was deferred until it could be processed in bulk by the kernel, and then handed to ed all in a single line which ed could also process all at once. A version of ed that tried to work in raw mode would have been much more resource intensive, even if it still operated on single lines at a time.

Err codemadness.org 70 i 26321
Err codemadness.org 70 i 26322 Err codemadness.org 70 i 26323
Err codemadness.org 70 i 26324 Err codemadness.org 70 i 26325

Beastie Bits

Err codemadness.org 70 i 26326 Err codemadness.org 70 i 26327 Err codemadness.org 70 i 26340 Err codemadness.org 70 i 26341


Err codemadness.org 70 i 26342 Err codemadness.org 70 i 26343

Feedback/Questions

Err codemadness.org 70 i 26344 Err codemadness.org 70 i 26345 Err codemadness.org 70 i 26352 Err codemadness.org 70 i 26353


Err codemadness.org 70 i 26354 Err codemadness.org 70 i 26355
    Err codemadness.org 70 i 26356
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 26357
Err codemadness.org 70 i 26358 Err codemadness.org 70 i 26359


Err codemadness.org 70 i 26360 Err codemadness.org 70 i 26361 ]]> Err codemadness.org 70 i 26365
Err codemadness.org 70 i 26366 https://fireside.fm/player/v2/FYhhasNR+xeDHWshf Err codemadness.org 70 i 26367 Err codemadness.org 70 i 26368 ]]> Err codemadness.org 70 i 26369 Err codemadness.org 70 i 26370
Err codemadness.org 70 i 26371 Err codemadness.org 70 i 26372 295: Fun with funlinkat() Err codemadness.org 70 i 26373 https://www.bsdnow.tv/295 Err codemadness.org 70 i 26374 f856e52d-1f51-46e1-9dd9-658045523279 Err codemadness.org 70 i 26375 Thu, 25 Apr 2019 13:00:00 -0700 Err codemadness.org 70 i 26376 Allan Jude Err codemadness.org 70 i 26377 Err codemadness.org 70 i 26378 full Err codemadness.org 70 i 26379 Allan Jude Err codemadness.org 70 i 26380 Introducing funlinkat(), an OpenBSD Router with AT&T U-Verse, using NetBSD on a raspberry pi, ZFS encryption is still under development, Rump kernel servers and clients tutorial, Snort on OpenBSD 6.4, and more. Err codemadness.org 70 i 26381 1:01:02 Err codemadness.org 70 i 26382 no Err codemadness.org 70 i 26383 Err codemadness.org 70 i 26384 Introducing funlinkat(), an OpenBSD Router with AT&T U-Verse, using NetBSD on a raspberry pi, ZFS encryption is still under development, Rump kernel servers and clients tutorial, Snort on OpenBSD 6.4, and more. Err codemadness.org 70 i 26385 <h2 id="headlines">Headlines</h2> Err codemadness.org 70 i 26386 Err codemadness.org 70 i 26387 <h3 id="introducingfunlinkathttpsoshogbovexilliumorgblog63"><a href="https://oshogbo.vexillium.org/blog/63/">Introducing funlinkat</a></h3> Err codemadness.org 70 i 26388 Err codemadness.org 70 i 26389 <ul> Err codemadness.org 70 i 26390 <li>It turns out, every file you have ever deleted on a unix machine was probably susceptible to a race condition</li> Err codemadness.org 70 i 26391 </ul> Err codemadness.org 70 i 26392 Err codemadness.org 70 i 26393 <blockquote> Err codemadness.org 70 i 26394 <p>One of the first syscalls which was created in Unix-like systems is unlink. In FreeBSD this syscall is number 10 (source) and in Linux, the number is dependent on the architecture but for most of them is also the tenth syscall (source). This indicated that this is one of the primary syscalls. The unlink syscall is very simple and we provide one single path to the file that we want to remove. Err codemadness.org 70 i 26395 The “removing file” process itself is very interesting so let’s spend a moment to understand the it. First, by removing the file we are removing a link from the directory to it. In Unix-like systems we can have many links to a single file (hard links). When we remove all links to the file, the file system will mark the blocks used by the file as free (a different file system will behave differently but let’s not jump into a second digression). This is why the process is called unlinking and not “removing file”. While we unlink the file two or three things will happen:</p> Err codemadness.org 70 i 26396 Err codemadness.org 70 i 26397 <ul> Err codemadness.org 70 i 26398 <li>We will remove an entry in the directory with the filename.</li> Err codemadness.org 70 i 26399 Err codemadness.org 70 i 26400 <li>We will decrease a file reference count (in inode).</li> Err codemadness.org 70 i 26401 Err codemadness.org 70 i 26402 <li>If links go to zero - the file will be removed from the disk (again this doesn't mean that the blocks from the disk will be filled with zeros, though this may happen depending on the file system and configuration. However, in most cases this means that the file system will mark those blocks to as free and use them to write new data later Err codemadness.org 70 i 26403 This mostly means that “removing file” from a directory is an operation on the directory and not on the file (inode) itself. Err codemadness.org 70 i 26404 Another interesting subject is what happens if our system will perform only first or second step from the list. This depends on the file system and this is also something we will leave for another time. Err codemadness.org 70 i 26405 The problem with the unlink and even unlinkat function is that we don’t have any guarantee of which file we really are unlinking. Err codemadness.org 70 i 26406 Err codemadness.org 70 i 26407 Err codemadness.org 70 i 26408 <ul> Err codemadness.org 70 i 26409 <li>When you delete a file using its name, you have no guarantee that someone has not already deleted the file, or renamed it, and created a new file with the name you are about to delete. Err codemadness.org 70 i 26410 We have some stats about the file that we want to unlink. We performed some tests. In the same time another process removed our file and recreated it. When we finally try to remove our file it is no longer the same file. It’s a classic race condition.</li> Err codemadness.org 70 i 26411 Err codemadness.org 70 i 26412 <li>Many programs will perform checks before trying to remove a file, to make sure it is the correct file, that you have the correct permissions etc. However this exposes the ‘Time-of-Check / Time-of-Use’ class of bugs. I check if the file I am about to remove is the one I created yesterday, it is, so I call unlink() on it. However, between when I checked the date on the file, and when I call unlink, I, some program I am running, might have updated the file. Or a malicious user might have put some other file at that name, so I would be the one who deleted it. Err codemadness.org 70 i 26413 In Unix-like operating systems we can get a handle for our file called file - a descriptor. File descriptors guarantee us that all the operations that we will be performing on it are done on the same file (inode). Even if someone was to unlink a number of directories entries, the operating system will not free the structures behind the file descriptor, and we can detect the file that was removed by someone and recreated (or just unlinked). So, for example, we have an alternative functions fstat which allows us to get file status of the given descriptor Err codemadness.org 70 i 26414 We already know that the file may have many links on the disk which point to the single inode. What happens when we open the file? Simplifying: kernel creates a memory representation of the inode (the inode itself is stored on the disk) called vnode. This single representation is used by all processes to refer the inode to the disk. If in a process we open the same file (inode) using different names (for example through hard links) all those files will be linked to the single vnode. That means that the pathname is not stored in the kernel. Err codemadness.org 70 i 26415 This is basically the reason why we don’t have a funlink function so that instead of the path we are providing just the file descriptor to the file. If we performed the fdunlink syscall, the kernel wouldn’t know which directory entry you would like to remove. Another problem is more architectural: as we discussed earlier unlinking is really an operation on the directory not on the file (inode) itself, so using funlink(fd) may create some confusion because we are not removing the inode corresponding to the file descriptor, we are performing action on the directory which points to the file. Err codemadness.org 70 i 26416 After some discussion we decided that the only sensible option for FreeBSD would be to create a funlinkat() function. This syscall would only performs additional sanitary checks if we are removing a directory entry which corresponds to the inode stored which refers to the file descriptor. Err codemadness.org 70 i 26417 int funlinkat(int dfd, const char *path, int fd, int flags); Err codemadness.org 70 i 26418 The API above will check if the path opened relative to the dfd points to the same vnode. Thanks to that we removed a race condition because all those sanitary checks are performed in the kernel mode while the file system is locked and there is no possibility to change it. Err codemadness.org 70 i 26419 The fd parameter may be set to the FD_NONE value which will mean that the sanitary check should not be performed and funlinkat will behave just like unlinkat. Err codemadness.org 70 i 26420 As you can notice I often refer to the unlink syscall but at the end the APIs looks like unlinkat syscall. It is true that the unlink syscall is very old and kind of deprecated. That said I referred to unlink because it’s just simpler. These days unlink simply uses the same code as unlinkat.</li></ul> Err codemadness.org 70 i 26421 </li> Err codemadness.org 70 i 26422 </ul> Err codemadness.org 70 i 26423 Err codemadness.org 70 i 26424 <hr /> Err codemadness.org 70 i 26425 </blockquote> Err codemadness.org 70 i 26426 Err codemadness.org 70 i 26427 <h3 id="usinganopenbsdrouterwithattuversehttpsjcsorg20190321uverse"><a href="https://jcs.org/2019/03/21/uverse">Using an OpenBSD Router with AT&amp;T U-Verse</a></h3> Err codemadness.org 70 i 26428 Err codemadness.org 70 i 26429 <blockquote> Err codemadness.org 70 i 26430 <p>I upgraded to AT&amp;T's U-verse Gigabit internet service in 2017 and it came with an Arris BGW-210 as the WiFi AP and router. The BGW-210 is not a terrible device, but I already had my own Airport Extreme APs wired throughout my house and an OpenBSD router configured with various things, so I had no use for this device. It's also a potentially-insecure device that I can't upgrade or fully disable remote control over. Err codemadness.org 70 i 26431 Fully removing the BGW-210 is not possible as we'll see later, but it is possible to remove it from the routing path. This is how I did it with OpenBSD.</p> Err codemadness.org 70 i 26432 Err codemadness.org 70 i 26433 <hr /> Err codemadness.org 70 i 26434 </blockquote> Err codemadness.org 70 i 26435 Err codemadness.org 70 i 26436 <h2 id="newsroundup">News Roundup</h2> Err codemadness.org 70 i 26437 Err codemadness.org 70 i 26438 <h3 id="howtousenetbsdonaraspberrypihttpsopensourcecomarticle193netbsdraspberrypi"><a href="https://opensource.com/article/19/3/netbsd-raspberry-pi">How to use NetBSD on a Raspberry Pi</a></h3> Err codemadness.org 70 i 26439 Err codemadness.org 70 i 26440 <blockquote> Err codemadness.org 70 i 26441 <p>Do you have an old Raspberry Pi lying around gathering dust, maybe after a recent Pi upgrade? Are you curious about BSD Unix? If you answered "yes" to both of these questions, you'll be pleased to know that the first is the solution to the second, because you can run NetBSD, as far back as the very first release, on a Raspberry Pi. Err codemadness.org 70 i 26442 BSD is the Berkley Software Distribution of Unix. In fact, it's the only open source Unix with direct lineage back to the original source code written by Dennis Ritchie and Ken Thompson at Bell Labs. Other modern versions are either proprietary (such as AIX and Solaris) or clever re-implementations (such as Minix and GNU/Linux). If you're used to Linux, you'll feel mostly right at home with BSD, but there are plenty of new commands and conventions to discover. If you're still relatively new to open source, trying BSD is a good way to experience a traditional Unix. Err codemadness.org 70 i 26443 Admittedly, NetBSD isn't an operating system that's perfectly suited for the Pi. It's a minimal install compared to many Linux distributions designed specifically for the Pi, and not all components of recent Pi models are functional under NetBSD yet. However, it's arguably an ideal OS for the older Pi models, since it's lightweight and lovingly maintained. And if nothing else, it's a lot of fun for any die-hard Unix geek to experience another side of the POSIX world.</p> Err codemadness.org 70 i 26444 Err codemadness.org 70 i 26445 <hr /> Err codemadness.org 70 i 26446 </blockquote> Err codemadness.org 70 i 26447 Err codemadness.org 70 i 26448 <h3 id="zfsencryptionisstillunderdevelopmentasofmarch2019httpsutccutorontocatcksspacebloglinuxzfsencryptionnotready"><a href="https://utcc.utoronto.ca/~cks/space/blog/linux/ZFSEncryptionNotReady">ZFS Encryption is still under development (as of March 2019)</a></h3> Err codemadness.org 70 i 26449 Err codemadness.org 70 i 26450 <blockquote> Err codemadness.org 70 i 26451 <p>One of the big upcoming features that a bunch of people are looking forward to in ZFS is natively encrypted filesystems. This is already in the main development tree of ZFS On Linux, will likely propagate to FreeBSD (since FreeBSD ZFS will be based on ZoL), and will make it to Illumos if the Illumos people want to pull it in. People are looking forward to native encryption so much, in fact, that some of them have started using it in ZFS On Linux already, using either the development tip or one of the 0.8.0 release candidate pre-releases (ZoL is up to 0.8.0-rc3 as of now). People either doing this or planning to do this show up on the ZoL mailing list every so often.</p> Err codemadness.org 70 i 26452 Err codemadness.org 70 i 26453 <ul> Err codemadness.org 70 i 26454 <li><a href="https://lists.freebsd.org/pipermail/freebsd-stable/2019-April/090915.html">CFT for FreeBSD + ZoL</a></li> Err codemadness.org 70 i 26455 </ul> Err codemadness.org 70 i 26456 Err codemadness.org 70 i 26457 <hr /> Err codemadness.org 70 i 26458 </blockquote> Err codemadness.org 70 i 26459 Err codemadness.org 70 i 26460 <h3 id="tutorialonrumpkernelserversandclientshttpswwwnetbsdorgdocsrumpsptuthtml"><a href="https://www.netbsd.org/docs/rump/sptut.html">Tutorial On Rump Kernel Servers and Clients</a></h3> Err codemadness.org 70 i 26461 Err codemadness.org 70 i 26462 <blockquote> Err codemadness.org 70 i 26463 <p>The rump anykernel architecture allows to run highly componentized kernel code configurations in userspace processes. Coupled with the rump sysproxy facility it is possible to run loosely distributed client-server "mini-operating systems". Since there is minimum configuration and the bootstrap time is measured in milliseconds, these environments are very cheap to set up, use, and tear down on-demand. Err codemadness.org 70 i 26464 This document acts as a tutorial on how to configure and use unmodified NetBSD kernel drivers as userspace services with utilities available from the NetBSD base system. As part of this, it presents various use cases. One uses the kernel cryptographic disk driver (cgd) to encrypt a partition. Another one demonstrates how to operate an FFS server for editing the contents of a file system even though your user account does not have privileges to use the host's mount() system call. Additionally, using a userspace TCP/IP server with an unmodified web browser is detailed.</p> Err codemadness.org 70 i 26465 Err codemadness.org 70 i 26466 <hr /> Err codemadness.org 70 i 26467 </blockquote> Err codemadness.org 70 i 26468 Err codemadness.org 70 i 26469 <h3 id="installingsnortonopenbsd64httpsfunctionallyparanoidcom20190318installingsnortonopenbsd64"><a href="https://functionallyparanoid.com/2019/03/18/installing-snort-on-openbsd-6-4/">Installing Snort on OpenBSD 6.4</a></h3> Err codemadness.org 70 i 26470 Err codemadness.org 70 i 26471 <blockquote> Err codemadness.org 70 i 26472 <p>As you may recall from previous posts, I am running an OpenBSD server on an APU2 air-cooled 3 Intel NIC box as my router/firewall for my secure home network. Given that all of my Internet traffic flows through this box, I thought it would be a cool idea to run an Intrusion Detection System (IDS) on it. Snort is the big hog of the open source world so I took a peek in the packages directory on one of the mirrors and lo and behold we have the latest &amp; greatest version of Snort available! Thanks devs!!! Err codemadness.org 70 i 26473 I did some quick Googling and didn’t find much “modern” howto help out there so, after some trial and error, I have it up and running. I thought I’d give back in a small way and share a quickie howto for other Googlers out there who are looking for guidance. Here’s hoping that my title is good enough “SEO” to get you here! </p> Err codemadness.org 70 i 26474 Err codemadness.org 70 i 26475 <hr /> Err codemadness.org 70 i 26476 </blockquote> Err codemadness.org 70 i 26477 Err codemadness.org 70 i 26478 <h2 id="beastiebits">Beastie Bits</h2> Err codemadness.org 70 i 26479 Err codemadness.org 70 i 26480 <ul> Err codemadness.org 70 i 26481 <li><a href="https://os108.org/">os108</a></li> Err codemadness.org 70 i 26482 Err codemadness.org 70 i 26483 <li><a href="https://www.youtube.com/watch?v=tc4ROCJYbm0&amp;feature=youtu.be">AT&amp;T Archives: The UNIX Operating System</a></li> Err codemadness.org 70 i 26484 Err codemadness.org 70 i 26485 <li><a href="https://marc.info/?l=openbsd-tech&amp;m=155407864604288&amp;w=2">httpd(8): Adapt to industry wide current best security practices</a></li> Err codemadness.org 70 i 26486 Err codemadness.org 70 i 26487 <li><a href="https://codesmithdev.com/quotes-from-a-book-that-bashes-unix/">Quotes From A Book That Bashes Unix</a></li> Err codemadness.org 70 i 26488 Err codemadness.org 70 i 26489 <li><a href="https://github.com/ligurio/openbsd-tests/wiki">OpenBSD QA wiki</a></li> Err codemadness.org 70 i 26490 </ul> Err codemadness.org 70 i 26491 Err codemadness.org 70 i 26492 <hr /> Err codemadness.org 70 i 26493 <h2 id="feedbackquestions">Feedback/Questions</h2> Err codemadness.org 70 i 26494 Err codemadness.org 70 i 26495 <ul> Err codemadness.org 70 i 26496 <li>Malcolm - <a href="http://dpaste.com/1AFFTNJ">Laptop Experience : Dell XPS 13</a></li> Err codemadness.org 70 i 26497 Err codemadness.org 70 i 26498 <li>DJ - <a href="http://dpaste.com/0V74SZC#wrap">Feedback</a></li> Err codemadness.org 70 i 26499 Err codemadness.org 70 i 26500 <li>Alex - <a href="http://dpaste.com/1WVV1W7">GhostBSD and Wifi : FIXED</a></li> Err codemadness.org 70 i 26501 </ul> Err codemadness.org 70 i 26502 Err codemadness.org 70 i 26503 <hr /> Err codemadness.org 70 i 26504 <ul> Err codemadness.org 70 i 26505 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 26506 </ul> Err codemadness.org 70 i 26507 Err codemadness.org 70 i 26508 <hr /> Err codemadness.org 70 i 26509 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 26510 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0295.mp4" type="video/mp4"> Err codemadness.org 70 i 26511 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 26512 </video> Err codemadness.org 70 i 26513 Err codemadness.org 70 i 26514 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 26515 Err codemadness.org 70 i 26516 Introducing funlinkat(), an OpenBSD Router with AT&T U-Verse, using NetBSD on a raspberry pi, ZFS encryption is still under development, Rump kernel servers and clients tutorial, Snort on OpenBSD 6.4, and more.

Err codemadness.org 70 i 26517 Err codemadness.org 70 i 26518

Headlines

Err codemadness.org 70 i 26519 Err codemadness.org 70 i 26520

Introducing funlinkat

Err codemadness.org 70 i 26521 Err codemadness.org 70 i 26522
    Err codemadness.org 70 i 26523
  • It turns out, every file you have ever deleted on a unix machine was probably susceptible to a race condition
  • Err codemadness.org 70 i 26524
Err codemadness.org 70 i 26525 Err codemadness.org 70 i 26526
Err codemadness.org 70 i 26527

One of the first syscalls which was created in Unix-like systems is unlink. In FreeBSD this syscall is number 10 (source) and in Linux, the number is dependent on the architecture but for most of them is also the tenth syscall (source). This indicated that this is one of the primary syscalls. The unlink syscall is very simple and we provide one single path to the file that we want to remove. Err codemadness.org 70 i 26528 The “removing file” process itself is very interesting so let’s spend a moment to understand the it. First, by removing the file we are removing a link from the directory to it. In Unix-like systems we can have many links to a single file (hard links). When we remove all links to the file, the file system will mark the blocks used by the file as free (a different file system will behave differently but let’s not jump into a second digression). This is why the process is called unlinking and not “removing file”. While we unlink the file two or three things will happen:

Err codemadness.org 70 i 26529 Err codemadness.org 70 i 26530
    Err codemadness.org 70 i 26531
  • We will remove an entry in the directory with the filename.
  • Err codemadness.org 70 i 26532 Err codemadness.org 70 i 26533
  • We will decrease a file reference count (in inode).
  • Err codemadness.org 70 i 26534 Err codemadness.org 70 i 26535
  • If links go to zero - the file will be removed from the disk (again this doesn't mean that the blocks from the disk will be filled with zeros, though this may happen depending on the file system and configuration. However, in most cases this means that the file system will mark those blocks to as free and use them to write new data later Err codemadness.org 70 i 26536 This mostly means that “removing file” from a directory is an operation on the directory and not on the file (inode) itself. Err codemadness.org 70 i 26537 Another interesting subject is what happens if our system will perform only first or second step from the list. This depends on the file system and this is also something we will leave for another time. Err codemadness.org 70 i 26538 The problem with the unlink and even unlinkat function is that we don’t have any guarantee of which file we really are unlinking. Err codemadness.org 70 i 26539 Err codemadness.org 70 i 26540 Err codemadness.org 70 i 26541
      Err codemadness.org 70 i 26542
    • When you delete a file using its name, you have no guarantee that someone has not already deleted the file, or renamed it, and created a new file with the name you are about to delete. Err codemadness.org 70 i 26543 We have some stats about the file that we want to unlink. We performed some tests. In the same time another process removed our file and recreated it. When we finally try to remove our file it is no longer the same file. It’s a classic race condition.
    • Err codemadness.org 70 i 26544 Err codemadness.org 70 i 26545
    • Many programs will perform checks before trying to remove a file, to make sure it is the correct file, that you have the correct permissions etc. However this exposes the ‘Time-of-Check / Time-of-Use’ class of bugs. I check if the file I am about to remove is the one I created yesterday, it is, so I call unlink() on it. However, between when I checked the date on the file, and when I call unlink, I, some program I am running, might have updated the file. Or a malicious user might have put some other file at that name, so I would be the one who deleted it. Err codemadness.org 70 i 26546 In Unix-like operating systems we can get a handle for our file called file - a descriptor. File descriptors guarantee us that all the operations that we will be performing on it are done on the same file (inode). Even if someone was to unlink a number of directories entries, the operating system will not free the structures behind the file descriptor, and we can detect the file that was removed by someone and recreated (or just unlinked). So, for example, we have an alternative functions fstat which allows us to get file status of the given descriptor Err codemadness.org 70 i 26547 We already know that the file may have many links on the disk which point to the single inode. What happens when we open the file? Simplifying: kernel creates a memory representation of the inode (the inode itself is stored on the disk) called vnode. This single representation is used by all processes to refer the inode to the disk. If in a process we open the same file (inode) using different names (for example through hard links) all those files will be linked to the single vnode. That means that the pathname is not stored in the kernel. Err codemadness.org 70 i 26548 This is basically the reason why we don’t have a funlink function so that instead of the path we are providing just the file descriptor to the file. If we performed the fdunlink syscall, the kernel wouldn’t know which directory entry you would like to remove. Another problem is more architectural: as we discussed earlier unlinking is really an operation on the directory not on the file (inode) itself, so using funlink(fd) may create some confusion because we are not removing the inode corresponding to the file descriptor, we are performing action on the directory which points to the file. Err codemadness.org 70 i 26549 After some discussion we decided that the only sensible option for FreeBSD would be to create a funlinkat() function. This syscall would only performs additional sanitary checks if we are removing a directory entry which corresponds to the inode stored which refers to the file descriptor. Err codemadness.org 70 i 26550 int funlinkat(int dfd, const char *path, int fd, int flags); Err codemadness.org 70 i 26551 The API above will check if the path opened relative to the dfd points to the same vnode. Thanks to that we removed a race condition because all those sanitary checks are performed in the kernel mode while the file system is locked and there is no possibility to change it. Err codemadness.org 70 i 26552 The fd parameter may be set to the FD_NONE value which will mean that the sanitary check should not be performed and funlinkat will behave just like unlinkat. Err codemadness.org 70 i 26553 As you can notice I often refer to the unlink syscall but at the end the APIs looks like unlinkat syscall. It is true that the unlink syscall is very old and kind of deprecated. That said I referred to unlink because it’s just simpler. These days unlink simply uses the same code as unlinkat.
    Err codemadness.org 70 i 26554
  • Err codemadness.org 70 i 26555
Err codemadness.org 70 i 26556 Err codemadness.org 70 i 26557
Err codemadness.org 70 i 26558
Err codemadness.org 70 i 26559 Err codemadness.org 70 i 26560

Using an OpenBSD Router with AT&T U-Verse

Err codemadness.org 70 i 26561 Err codemadness.org 70 i 26562
Err codemadness.org 70 i 26563

I upgraded to AT&T's U-verse Gigabit internet service in 2017 and it came with an Arris BGW-210 as the WiFi AP and router. The BGW-210 is not a terrible device, but I already had my own Airport Extreme APs wired throughout my house and an OpenBSD router configured with various things, so I had no use for this device. It's also a potentially-insecure device that I can't upgrade or fully disable remote control over. Err codemadness.org 70 i 26564 Fully removing the BGW-210 is not possible as we'll see later, but it is possible to remove it from the routing path. This is how I did it with OpenBSD.

Err codemadness.org 70 i 26565 Err codemadness.org 70 i 26566
Err codemadness.org 70 i 26567
Err codemadness.org 70 i 26568 Err codemadness.org 70 i 26569

News Roundup

Err codemadness.org 70 i 26570 Err codemadness.org 70 i 26571

How to use NetBSD on a Raspberry Pi

Err codemadness.org 70 i 26572 Err codemadness.org 70 i 26573
Err codemadness.org 70 i 26574

Do you have an old Raspberry Pi lying around gathering dust, maybe after a recent Pi upgrade? Are you curious about BSD Unix? If you answered "yes" to both of these questions, you'll be pleased to know that the first is the solution to the second, because you can run NetBSD, as far back as the very first release, on a Raspberry Pi. Err codemadness.org 70 i 26575 BSD is the Berkley Software Distribution of Unix. In fact, it's the only open source Unix with direct lineage back to the original source code written by Dennis Ritchie and Ken Thompson at Bell Labs. Other modern versions are either proprietary (such as AIX and Solaris) or clever re-implementations (such as Minix and GNU/Linux). If you're used to Linux, you'll feel mostly right at home with BSD, but there are plenty of new commands and conventions to discover. If you're still relatively new to open source, trying BSD is a good way to experience a traditional Unix. Err codemadness.org 70 i 26576 Admittedly, NetBSD isn't an operating system that's perfectly suited for the Pi. It's a minimal install compared to many Linux distributions designed specifically for the Pi, and not all components of recent Pi models are functional under NetBSD yet. However, it's arguably an ideal OS for the older Pi models, since it's lightweight and lovingly maintained. And if nothing else, it's a lot of fun for any die-hard Unix geek to experience another side of the POSIX world.

Err codemadness.org 70 i 26577 Err codemadness.org 70 i 26578
Err codemadness.org 70 i 26579
Err codemadness.org 70 i 26580 Err codemadness.org 70 i 26581

ZFS Encryption is still under development (as of March 2019)

Err codemadness.org 70 i 26582 Err codemadness.org 70 i 26583
Err codemadness.org 70 i 26584

One of the big upcoming features that a bunch of people are looking forward to in ZFS is natively encrypted filesystems. This is already in the main development tree of ZFS On Linux, will likely propagate to FreeBSD (since FreeBSD ZFS will be based on ZoL), and will make it to Illumos if the Illumos people want to pull it in. People are looking forward to native encryption so much, in fact, that some of them have started using it in ZFS On Linux already, using either the development tip or one of the 0.8.0 release candidate pre-releases (ZoL is up to 0.8.0-rc3 as of now). People either doing this or planning to do this show up on the ZoL mailing list every so often.

Err codemadness.org 70 i 26585 Err codemadness.org 70 i 26586 Err codemadness.org 70 i 26589 Err codemadness.org 70 i 26590
Err codemadness.org 70 i 26591
Err codemadness.org 70 i 26592 Err codemadness.org 70 i 26593

Tutorial On Rump Kernel Servers and Clients

Err codemadness.org 70 i 26594 Err codemadness.org 70 i 26595
Err codemadness.org 70 i 26596

The rump anykernel architecture allows to run highly componentized kernel code configurations in userspace processes. Coupled with the rump sysproxy facility it is possible to run loosely distributed client-server "mini-operating systems". Since there is minimum configuration and the bootstrap time is measured in milliseconds, these environments are very cheap to set up, use, and tear down on-demand. Err codemadness.org 70 i 26597 This document acts as a tutorial on how to configure and use unmodified NetBSD kernel drivers as userspace services with utilities available from the NetBSD base system. As part of this, it presents various use cases. One uses the kernel cryptographic disk driver (cgd) to encrypt a partition. Another one demonstrates how to operate an FFS server for editing the contents of a file system even though your user account does not have privileges to use the host's mount() system call. Additionally, using a userspace TCP/IP server with an unmodified web browser is detailed.

Err codemadness.org 70 i 26598 Err codemadness.org 70 i 26599
Err codemadness.org 70 i 26600
Err codemadness.org 70 i 26601 Err codemadness.org 70 i 26602

Installing Snort on OpenBSD 6.4

Err codemadness.org 70 i 26603 Err codemadness.org 70 i 26604
Err codemadness.org 70 i 26605

As you may recall from previous posts, I am running an OpenBSD server on an APU2 air-cooled 3 Intel NIC box as my router/firewall for my secure home network. Given that all of my Internet traffic flows through this box, I thought it would be a cool idea to run an Intrusion Detection System (IDS) on it. Snort is the big hog of the open source world so I took a peek in the packages directory on one of the mirrors and lo and behold we have the latest & greatest version of Snort available! Thanks devs!!! Err codemadness.org 70 i 26606 I did some quick Googling and didn’t find much “modern” howto help out there so, after some trial and error, I have it up and running. I thought I’d give back in a small way and share a quickie howto for other Googlers out there who are looking for guidance. Here’s hoping that my title is good enough “SEO” to get you here!

Err codemadness.org 70 i 26607 Err codemadness.org 70 i 26608
Err codemadness.org 70 i 26609
Err codemadness.org 70 i 26610 Err codemadness.org 70 i 26611

Beastie Bits

Err codemadness.org 70 i 26612 Err codemadness.org 70 i 26613 Err codemadness.org 70 i 26624 Err codemadness.org 70 i 26625


Err codemadness.org 70 i 26626 Err codemadness.org 70 i 26627

Feedback/Questions

Err codemadness.org 70 i 26628 Err codemadness.org 70 i 26629 Err codemadness.org 70 i 26636 Err codemadness.org 70 i 26637


Err codemadness.org 70 i 26638 Err codemadness.org 70 i 26639
    Err codemadness.org 70 i 26640
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 26641
Err codemadness.org 70 i 26642 Err codemadness.org 70 i 26643


Err codemadness.org 70 i 26644 Err codemadness.org 70 i 26645 ]]> Err codemadness.org 70 i 26649
Err codemadness.org 70 i 26650 Err codemadness.org 70 i 26651 Introducing funlinkat(), an OpenBSD Router with AT&T U-Verse, using NetBSD on a raspberry pi, ZFS encryption is still under development, Rump kernel servers and clients tutorial, Snort on OpenBSD 6.4, and more.

Err codemadness.org 70 i 26652 Err codemadness.org 70 i 26653

Headlines

Err codemadness.org 70 i 26654 Err codemadness.org 70 i 26655

Introducing funlinkat

Err codemadness.org 70 i 26656 Err codemadness.org 70 i 26657
    Err codemadness.org 70 i 26658
  • It turns out, every file you have ever deleted on a unix machine was probably susceptible to a race condition
  • Err codemadness.org 70 i 26659
Err codemadness.org 70 i 26660 Err codemadness.org 70 i 26661
Err codemadness.org 70 i 26662

One of the first syscalls which was created in Unix-like systems is unlink. In FreeBSD this syscall is number 10 (source) and in Linux, the number is dependent on the architecture but for most of them is also the tenth syscall (source). This indicated that this is one of the primary syscalls. The unlink syscall is very simple and we provide one single path to the file that we want to remove. Err codemadness.org 70 i 26663 The “removing file” process itself is very interesting so let’s spend a moment to understand the it. First, by removing the file we are removing a link from the directory to it. In Unix-like systems we can have many links to a single file (hard links). When we remove all links to the file, the file system will mark the blocks used by the file as free (a different file system will behave differently but let’s not jump into a second digression). This is why the process is called unlinking and not “removing file”. While we unlink the file two or three things will happen:

Err codemadness.org 70 i 26664 Err codemadness.org 70 i 26665
    Err codemadness.org 70 i 26666
  • We will remove an entry in the directory with the filename.
  • Err codemadness.org 70 i 26667 Err codemadness.org 70 i 26668
  • We will decrease a file reference count (in inode).
  • Err codemadness.org 70 i 26669 Err codemadness.org 70 i 26670
  • If links go to zero - the file will be removed from the disk (again this doesn't mean that the blocks from the disk will be filled with zeros, though this may happen depending on the file system and configuration. However, in most cases this means that the file system will mark those blocks to as free and use them to write new data later Err codemadness.org 70 i 26671 This mostly means that “removing file” from a directory is an operation on the directory and not on the file (inode) itself. Err codemadness.org 70 i 26672 Another interesting subject is what happens if our system will perform only first or second step from the list. This depends on the file system and this is also something we will leave for another time. Err codemadness.org 70 i 26673 The problem with the unlink and even unlinkat function is that we don’t have any guarantee of which file we really are unlinking. Err codemadness.org 70 i 26674 Err codemadness.org 70 i 26675 Err codemadness.org 70 i 26676
      Err codemadness.org 70 i 26677
    • When you delete a file using its name, you have no guarantee that someone has not already deleted the file, or renamed it, and created a new file with the name you are about to delete. Err codemadness.org 70 i 26678 We have some stats about the file that we want to unlink. We performed some tests. In the same time another process removed our file and recreated it. When we finally try to remove our file it is no longer the same file. It’s a classic race condition.
    • Err codemadness.org 70 i 26679 Err codemadness.org 70 i 26680
    • Many programs will perform checks before trying to remove a file, to make sure it is the correct file, that you have the correct permissions etc. However this exposes the ‘Time-of-Check / Time-of-Use’ class of bugs. I check if the file I am about to remove is the one I created yesterday, it is, so I call unlink() on it. However, between when I checked the date on the file, and when I call unlink, I, some program I am running, might have updated the file. Or a malicious user might have put some other file at that name, so I would be the one who deleted it. Err codemadness.org 70 i 26681 In Unix-like operating systems we can get a handle for our file called file - a descriptor. File descriptors guarantee us that all the operations that we will be performing on it are done on the same file (inode). Even if someone was to unlink a number of directories entries, the operating system will not free the structures behind the file descriptor, and we can detect the file that was removed by someone and recreated (or just unlinked). So, for example, we have an alternative functions fstat which allows us to get file status of the given descriptor Err codemadness.org 70 i 26682 We already know that the file may have many links on the disk which point to the single inode. What happens when we open the file? Simplifying: kernel creates a memory representation of the inode (the inode itself is stored on the disk) called vnode. This single representation is used by all processes to refer the inode to the disk. If in a process we open the same file (inode) using different names (for example through hard links) all those files will be linked to the single vnode. That means that the pathname is not stored in the kernel. Err codemadness.org 70 i 26683 This is basically the reason why we don’t have a funlink function so that instead of the path we are providing just the file descriptor to the file. If we performed the fdunlink syscall, the kernel wouldn’t know which directory entry you would like to remove. Another problem is more architectural: as we discussed earlier unlinking is really an operation on the directory not on the file (inode) itself, so using funlink(fd) may create some confusion because we are not removing the inode corresponding to the file descriptor, we are performing action on the directory which points to the file. Err codemadness.org 70 i 26684 After some discussion we decided that the only sensible option for FreeBSD would be to create a funlinkat() function. This syscall would only performs additional sanitary checks if we are removing a directory entry which corresponds to the inode stored which refers to the file descriptor. Err codemadness.org 70 i 26685 int funlinkat(int dfd, const char *path, int fd, int flags); Err codemadness.org 70 i 26686 The API above will check if the path opened relative to the dfd points to the same vnode. Thanks to that we removed a race condition because all those sanitary checks are performed in the kernel mode while the file system is locked and there is no possibility to change it. Err codemadness.org 70 i 26687 The fd parameter may be set to the FD_NONE value which will mean that the sanitary check should not be performed and funlinkat will behave just like unlinkat. Err codemadness.org 70 i 26688 As you can notice I often refer to the unlink syscall but at the end the APIs looks like unlinkat syscall. It is true that the unlink syscall is very old and kind of deprecated. That said I referred to unlink because it’s just simpler. These days unlink simply uses the same code as unlinkat.
    Err codemadness.org 70 i 26689
  • Err codemadness.org 70 i 26690
Err codemadness.org 70 i 26691 Err codemadness.org 70 i 26692
Err codemadness.org 70 i 26693
Err codemadness.org 70 i 26694 Err codemadness.org 70 i 26695

Using an OpenBSD Router with AT&T U-Verse

Err codemadness.org 70 i 26696 Err codemadness.org 70 i 26697
Err codemadness.org 70 i 26698

I upgraded to AT&T's U-verse Gigabit internet service in 2017 and it came with an Arris BGW-210 as the WiFi AP and router. The BGW-210 is not a terrible device, but I already had my own Airport Extreme APs wired throughout my house and an OpenBSD router configured with various things, so I had no use for this device. It's also a potentially-insecure device that I can't upgrade or fully disable remote control over. Err codemadness.org 70 i 26699 Fully removing the BGW-210 is not possible as we'll see later, but it is possible to remove it from the routing path. This is how I did it with OpenBSD.

Err codemadness.org 70 i 26700 Err codemadness.org 70 i 26701
Err codemadness.org 70 i 26702
Err codemadness.org 70 i 26703 Err codemadness.org 70 i 26704

News Roundup

Err codemadness.org 70 i 26705 Err codemadness.org 70 i 26706

How to use NetBSD on a Raspberry Pi

Err codemadness.org 70 i 26707 Err codemadness.org 70 i 26708
Err codemadness.org 70 i 26709

Do you have an old Raspberry Pi lying around gathering dust, maybe after a recent Pi upgrade? Are you curious about BSD Unix? If you answered "yes" to both of these questions, you'll be pleased to know that the first is the solution to the second, because you can run NetBSD, as far back as the very first release, on a Raspberry Pi. Err codemadness.org 70 i 26710 BSD is the Berkley Software Distribution of Unix. In fact, it's the only open source Unix with direct lineage back to the original source code written by Dennis Ritchie and Ken Thompson at Bell Labs. Other modern versions are either proprietary (such as AIX and Solaris) or clever re-implementations (such as Minix and GNU/Linux). If you're used to Linux, you'll feel mostly right at home with BSD, but there are plenty of new commands and conventions to discover. If you're still relatively new to open source, trying BSD is a good way to experience a traditional Unix. Err codemadness.org 70 i 26711 Admittedly, NetBSD isn't an operating system that's perfectly suited for the Pi. It's a minimal install compared to many Linux distributions designed specifically for the Pi, and not all components of recent Pi models are functional under NetBSD yet. However, it's arguably an ideal OS for the older Pi models, since it's lightweight and lovingly maintained. And if nothing else, it's a lot of fun for any die-hard Unix geek to experience another side of the POSIX world.

Err codemadness.org 70 i 26712 Err codemadness.org 70 i 26713
Err codemadness.org 70 i 26714
Err codemadness.org 70 i 26715 Err codemadness.org 70 i 26716

ZFS Encryption is still under development (as of March 2019)

Err codemadness.org 70 i 26717 Err codemadness.org 70 i 26718
Err codemadness.org 70 i 26719

One of the big upcoming features that a bunch of people are looking forward to in ZFS is natively encrypted filesystems. This is already in the main development tree of ZFS On Linux, will likely propagate to FreeBSD (since FreeBSD ZFS will be based on ZoL), and will make it to Illumos if the Illumos people want to pull it in. People are looking forward to native encryption so much, in fact, that some of them have started using it in ZFS On Linux already, using either the development tip or one of the 0.8.0 release candidate pre-releases (ZoL is up to 0.8.0-rc3 as of now). People either doing this or planning to do this show up on the ZoL mailing list every so often.

Err codemadness.org 70 i 26720 Err codemadness.org 70 i 26721 Err codemadness.org 70 i 26724 Err codemadness.org 70 i 26725
Err codemadness.org 70 i 26726
Err codemadness.org 70 i 26727 Err codemadness.org 70 i 26728

Tutorial On Rump Kernel Servers and Clients

Err codemadness.org 70 i 26729 Err codemadness.org 70 i 26730
Err codemadness.org 70 i 26731

The rump anykernel architecture allows to run highly componentized kernel code configurations in userspace processes. Coupled with the rump sysproxy facility it is possible to run loosely distributed client-server "mini-operating systems". Since there is minimum configuration and the bootstrap time is measured in milliseconds, these environments are very cheap to set up, use, and tear down on-demand. Err codemadness.org 70 i 26732 This document acts as a tutorial on how to configure and use unmodified NetBSD kernel drivers as userspace services with utilities available from the NetBSD base system. As part of this, it presents various use cases. One uses the kernel cryptographic disk driver (cgd) to encrypt a partition. Another one demonstrates how to operate an FFS server for editing the contents of a file system even though your user account does not have privileges to use the host's mount() system call. Additionally, using a userspace TCP/IP server with an unmodified web browser is detailed.

Err codemadness.org 70 i 26733 Err codemadness.org 70 i 26734
Err codemadness.org 70 i 26735
Err codemadness.org 70 i 26736 Err codemadness.org 70 i 26737

Installing Snort on OpenBSD 6.4

Err codemadness.org 70 i 26738 Err codemadness.org 70 i 26739
Err codemadness.org 70 i 26740

As you may recall from previous posts, I am running an OpenBSD server on an APU2 air-cooled 3 Intel NIC box as my router/firewall for my secure home network. Given that all of my Internet traffic flows through this box, I thought it would be a cool idea to run an Intrusion Detection System (IDS) on it. Snort is the big hog of the open source world so I took a peek in the packages directory on one of the mirrors and lo and behold we have the latest & greatest version of Snort available! Thanks devs!!! Err codemadness.org 70 i 26741 I did some quick Googling and didn’t find much “modern” howto help out there so, after some trial and error, I have it up and running. I thought I’d give back in a small way and share a quickie howto for other Googlers out there who are looking for guidance. Here’s hoping that my title is good enough “SEO” to get you here!

Err codemadness.org 70 i 26742 Err codemadness.org 70 i 26743
Err codemadness.org 70 i 26744
Err codemadness.org 70 i 26745 Err codemadness.org 70 i 26746

Beastie Bits

Err codemadness.org 70 i 26747 Err codemadness.org 70 i 26748 Err codemadness.org 70 i 26759 Err codemadness.org 70 i 26760


Err codemadness.org 70 i 26761 Err codemadness.org 70 i 26762

Feedback/Questions

Err codemadness.org 70 i 26763 Err codemadness.org 70 i 26764 Err codemadness.org 70 i 26771 Err codemadness.org 70 i 26772


Err codemadness.org 70 i 26773 Err codemadness.org 70 i 26774
    Err codemadness.org 70 i 26775
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 26776
Err codemadness.org 70 i 26777 Err codemadness.org 70 i 26778


Err codemadness.org 70 i 26779 Err codemadness.org 70 i 26780 ]]> Err codemadness.org 70 i 26784
Err codemadness.org 70 i 26785 https://fireside.fm/player/v2/FYhhasNR+3DPGd62S Err codemadness.org 70 i 26786 Err codemadness.org 70 i 26787 ]]> Err codemadness.org 70 i 26788 Err codemadness.org 70 i 26789
Err codemadness.org 70 i 26790 Err codemadness.org 70 i 26791 294: The SSH Tarpit Err codemadness.org 70 i 26792 https://www.bsdnow.tv/294 Err codemadness.org 70 i 26793 b1d75436-414e-48d2-bc93-a09aae8e7d82 Err codemadness.org 70 i 26794 Thu, 18 Apr 2019 09:00:00 -0700 Err codemadness.org 70 i 26795 Allan Jude Err codemadness.org 70 i 26796 Err codemadness.org 70 i 26797 full Err codemadness.org 70 i 26798 Allan Jude Err codemadness.org 70 i 26799 A PI-powered Plan 9 cluster, an SSH tarpit, rdist for when Ansible is too much, falling in love with OpenBSD again, how I created my first FreeBSD port, the Tilde Institute of OpenBSD education and more. Err codemadness.org 70 i 26800 57:03 Err codemadness.org 70 i 26801 no Err codemadness.org 70 i 26802 Err codemadness.org 70 i 26803 A PI-powered Plan 9 cluster, an SSH tarpit, rdist for when Ansible is too much, falling in love with OpenBSD again, how I created my first FreeBSD port, the Tilde Institute of OpenBSD education and more. Err codemadness.org 70 i 26804 <h2 id="headlines">Headlines</h2> Err codemadness.org 70 i 26805 Err codemadness.org 70 i 26806 <h3 id="apipoweredplan9clusterhttpswwwrsonlinecomdesignsparkapipoweredplan9cluster"><a href="https://www.rs-online.com/designspark/a-pi-powered-plan-9-cluster">A Pi-Powered Plan 9 Cluster</a></h3> Err codemadness.org 70 i 26807 Err codemadness.org 70 i 26808 <blockquote> Err codemadness.org 70 i 26809 <p>Plan 9 from Bell Labs comes from the same stable as the UNIX operating system, which of course Linux was designed after, and Apple’s OS X runs on top of a certified UNIX operating system. Just like UNIX, Plan 9 was developed as a research O/S — a vehicle for trying out new concepts — with it building on key UNIX principles and taking the idea of devices are just files even further. Err codemadness.org 70 i 26810 In this post, we take a quick look at the Plan 9 O/S and some of the notable features, before moving on to the construction of a self-contained 4-node Raspberry Pi cluster that will provide a compact platform for experimentation.</p> Err codemadness.org 70 i 26811 Err codemadness.org 70 i 26812 <hr /> Err codemadness.org 70 i 26813 </blockquote> Err codemadness.org 70 i 26814 Err codemadness.org 70 i 26815 <h3 id="endlesshansshtarpithttpsnullprogramcomblog20190322"><a href="https://nullprogram.com/blog/2019/03/22/">Endlessh: an SSH Tarpit</a></h3> Err codemadness.org 70 i 26816 Err codemadness.org 70 i 26817 <blockquote> Err codemadness.org 70 i 26818 <p>I’m a big fan of tarpits: a network service that intentionally inserts delays in its protocol, slowing down clients by forcing them to wait. This arrests the speed at which a bad actor can attack or probe the host system, and it ties up some of the attacker’s resources that might otherwise be spent attacking another host. When done well, a tarpit imposes more cost on the attacker than the defender. Err codemadness.org 70 i 26819 The Internet is a very hostile place, and anyone who’s ever stood up an Internet-facing IPv4 host has witnessed the immediate and continuous attacks against their server. I’ve maintained such a server for nearly six years now, and more than 99% of my incoming traffic has ill intent. One part of my defenses has been tarpits in various forms.</p> Err codemadness.org 70 i 26820 Err codemadness.org 70 i 26821 <hr /> Err codemadness.org 70 i 26822 </blockquote> Err codemadness.org 70 i 26823 Err codemadness.org 70 i 26824 <h2 id="newsroundup">News Roundup</h2> Err codemadness.org 70 i 26825 Err codemadness.org 70 i 26826 <h3 id="rdist1whenansibleistoomuchhttpschargenoneobsdamsrdist1whenansibleistoomuch"><a href="https://chargen.one/obsdams/rdist-1-when-ansible-is-too-much">rdist(1) – when Ansible is too much</a></h3> Err codemadness.org 70 i 26827 Err codemadness.org 70 i 26828 <blockquote> Err codemadness.org 70 i 26829 <p>The post written about rdist(1) on johan.huldtgren.com sparked Err codemadness.org 70 i 26830 us to write one as well. It's a great, underappreciated, tool. And we wanted to show how we wrapped doas(1) around it. Err codemadness.org 70 i 26831 There are two services in our infrastructure for which we were looking to keep the configuration in sync and to reload the process when the configuration had indeed changed. There is a pair of nsd(8)/unbound(8) hosts and a pair of hosts running relayd(8)/httpd(8) with carp(4) between them. Err codemadness.org 70 i 26832 We didn't have a requirement to go full configuration management with tools like Ansible or Salt Stack. And there wasn't any interest in building additional logic on top of rsync or repositories. > Enter rdist(1), rdist is a program to maintain identical copies of files over multiple hosts. It preserves the owner, group, mode, and mtime of files if possible and can update programs that are executing.</p> Err codemadness.org 70 i 26833 Err codemadness.org 70 i 26834 <hr /> Err codemadness.org 70 i 26835 </blockquote> Err codemadness.org 70 i 26836 Err codemadness.org 70 i 26837 <h3 id="fallinginlovewithopenbsdagainhttpsfunctionallyparanoidcom20190313wellitsbeenawhilefallinginlovewithopenbsdagain"><a href="https://functionallyparanoid.com/2019/03/13/well-its-been-a-while-falling-in-love-with-openbsd-again/">Falling in love with OpenBSD again</a></h3> Err codemadness.org 70 i 26838 Err codemadness.org 70 i 26839 <blockquote> Err codemadness.org 70 i 26840 <p>I was checking the other day and was appalled at how long it has been since I posted here. I had been working a job during 2018 that had me traveling 3,600 miles by air every week so that is at least a viable excuse. Err codemadness.org 70 i 26841 So what is my latest project? I wanted to get something better than the clunky old T500 “freedom laptop” that I could use as my daily driver. Some background here. My first paid gig as a programmer was on SunOS 4 (predecessor to Solaris) and Ultrix (on a DEC MicroVAX). I went from there to a Commodore Amiga (preemptive multitasking in 1985!). I went from there to OS/2 (I know, patron saint of lost causes) and then finally decided to “sell out” and move to Windows as the path of least resistance in the mid 90’s. Err codemadness.org 70 i 26842 My wife bought me an iPod literally just as they started working with computers other than Macs and I watched with fascination as Apple made the big gamble and moved away from PowerPC chips to Intel. That was the beginning of the Apple Fan Boi years for me. My gateway drug was a G4 MacMini and I managed somehow to get in on the pre-production, developer build of an Intel-based Mac. I was quite happy on the platform until about three years ago.</p> Err codemadness.org 70 i 26843 Err codemadness.org 70 i 26844 <hr /> Err codemadness.org 70 i 26845 </blockquote> Err codemadness.org 70 i 26846 Err codemadness.org 70 i 26847 <h3 id="howicreatedmyfirstfreebsdporthttpsaikchardevbloghowicreatedmyfirstfreebsdporthtml"><a href="https://aikchar.dev/blog/how-i-created-my-first-freebsd-port.html">How I Created My First FreeBSD Port</a></h3> Err codemadness.org 70 i 26848 Err codemadness.org 70 i 26849 <blockquote> Err codemadness.org 70 i 26850 <p>I created my first FreeBSD port recently. I found that FreeBSD didn't have a port for GoCD, which is a continuous integration and continuous deployment (CI/CD) system. This was a great opportunity to learn how to build a FreeBSD port while also contributing back to the community</p> Err codemadness.org 70 i 26851 Err codemadness.org 70 i 26852 <hr /> Err codemadness.org 70 i 26853 </blockquote> Err codemadness.org 70 i 26854 Err codemadness.org 70 i 26855 <h3 id="thetildeinstituteofopenbsdeducationhttpstildeinstitute"><a href="https://tilde.institute/">The Tilde Institute of OpenBSD Education</a></h3> Err codemadness.org 70 i 26856 Err codemadness.org 70 i 26857 <blockquote> Err codemadness.org 70 i 26858 <p>Welcome to tilde.institute! This is an OpenBSD machine whose purpose is to provide a space in the tildeverse for experimentation with and education of the OpenBSD operating system. A variety of editors, shells, and compilers are installed to allow for development in a native OpenBSD environment. OpenBSD's httpd(8) is configured with slowcgi(8) as the fastcgi provider and sqlite3 available. This allows users to experiment with web development using compiled CGI in C, aka the BCHS Stack. In addition to php7.0 and mysql (mariadb) by request, this provides an environment where the development of complex web apps is possible.</p> Err codemadness.org 70 i 26859 Err codemadness.org 70 i 26860 <hr /> Err codemadness.org 70 i 26861 </blockquote> Err codemadness.org 70 i 26862 Err codemadness.org 70 i 26863 <h2 id="beastiebits">Beastie Bits</h2> Err codemadness.org 70 i 26864 Err codemadness.org 70 i 26865 <ul> Err codemadness.org 70 i 26866 <li><a href="https://www.solobsd.org/index.php/2019/03/26/solobsd-19-03-stable/">SoloBSD 19.03-STABLE</a></li> Err codemadness.org 70 i 26867 Err codemadness.org 70 i 26868 <li><a href="https://docs.google.com/presentation/d/1BbveYtY9IhuPCOLsEafwXMefkiY3REJBYl-opMAKQC0/edit#slide=id.p">WireGuard for NetBSD</a></li> Err codemadness.org 70 i 26869 Err codemadness.org 70 i 26870 <li>[NetBSD - Removing PF](https://mail-index.netbsd.org/tech-kern/2019/03/29/msg024883.html Err codemadness.org 70 i 26871 )</li> Err codemadness.org 70 i 26872 Err codemadness.org 70 i 26873 <li><a href="https://devblogs.microsoft.com/oldnewthing/20190325-00/?p=102359">What does the N in nmake stand for?</a></li> Err codemadness.org 70 i 26874 Err codemadness.org 70 i 26875 <li><a href="https://kottke.org/19/03/a-map-of-the-internet-from-may-1973">A Map of the Internet from May 1973</a></li> Err codemadness.org 70 i 26876 Err codemadness.org 70 i 26877 <li><a href="https://hackaday.io/project/164343-nsa-b-gone">NSA-B-Gone : A sketchy hardware security device for your x220</a></li> Err codemadness.org 70 i 26878 </ul> Err codemadness.org 70 i 26879 Err codemadness.org 70 i 26880 <hr /> Err codemadness.org 70 i 26881 <h2 id="feedbackquestions">Feedback/Questions</h2> Err codemadness.org 70 i 26882 Err codemadness.org 70 i 26883 <ul> Err codemadness.org 70 i 26884 <li>Jake - <a href="http://dpaste.com/1Y22ZJM">A single jail as a VPN client</a></li> Err codemadness.org 70 i 26885 Err codemadness.org 70 i 26886 <li>Matt - <a href="http://dpaste.com/2FAFC3A#wrap">Surprising BSD Features</a></li> Err codemadness.org 70 i 26887 Err codemadness.org 70 i 26888 <li>cia - <a href="http://dpaste.com/2T4J7G3">Routing and ZFS</a></li> Err codemadness.org 70 i 26889 </ul> Err codemadness.org 70 i 26890 Err codemadness.org 70 i 26891 <hr /> Err codemadness.org 70 i 26892 <ul> Err codemadness.org 70 i 26893 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 26894 </ul> Err codemadness.org 70 i 26895 Err codemadness.org 70 i 26896 <hr /> Err codemadness.org 70 i 26897 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 26898 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0294.mp4" type="video/mp4"> Err codemadness.org 70 i 26899 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 26900 </video> Err codemadness.org 70 i 26901 Err codemadness.org 70 i 26902 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, plan9, ssh, ansible, rdist, wireguard, solobsd, nmake Err codemadness.org 70 i 26903 Err codemadness.org 70 i 26904 A PI-powered Plan 9 cluster, an SSH tarpit, rdist for when Ansible is too much, falling in love with OpenBSD again, how I created my first FreeBSD port, the Tilde Institute of OpenBSD education and more.

Err codemadness.org 70 i 26905 Err codemadness.org 70 i 26906

Headlines

Err codemadness.org 70 i 26907 Err codemadness.org 70 i 26908

A Pi-Powered Plan 9 Cluster

Err codemadness.org 70 i 26909 Err codemadness.org 70 i 26910
Err codemadness.org 70 i 26911

Plan 9 from Bell Labs comes from the same stable as the UNIX operating system, which of course Linux was designed after, and Apple’s OS X runs on top of a certified UNIX operating system. Just like UNIX, Plan 9 was developed as a research O/S — a vehicle for trying out new concepts — with it building on key UNIX principles and taking the idea of devices are just files even further. Err codemadness.org 70 i 26912 In this post, we take a quick look at the Plan 9 O/S and some of the notable features, before moving on to the construction of a self-contained 4-node Raspberry Pi cluster that will provide a compact platform for experimentation.

Err codemadness.org 70 i 26913 Err codemadness.org 70 i 26914
Err codemadness.org 70 i 26915
Err codemadness.org 70 i 26916 Err codemadness.org 70 i 26917

Endlessh: an SSH Tarpit

Err codemadness.org 70 i 26918 Err codemadness.org 70 i 26919
Err codemadness.org 70 i 26920

I’m a big fan of tarpits: a network service that intentionally inserts delays in its protocol, slowing down clients by forcing them to wait. This arrests the speed at which a bad actor can attack or probe the host system, and it ties up some of the attacker’s resources that might otherwise be spent attacking another host. When done well, a tarpit imposes more cost on the attacker than the defender. Err codemadness.org 70 i 26921 The Internet is a very hostile place, and anyone who’s ever stood up an Internet-facing IPv4 host has witnessed the immediate and continuous attacks against their server. I’ve maintained such a server for nearly six years now, and more than 99% of my incoming traffic has ill intent. One part of my defenses has been tarpits in various forms.

Err codemadness.org 70 i 26922 Err codemadness.org 70 i 26923
Err codemadness.org 70 i 26924
Err codemadness.org 70 i 26925 Err codemadness.org 70 i 26926

News Roundup

Err codemadness.org 70 i 26927 Err codemadness.org 70 i 26928

rdist(1) – when Ansible is too much

Err codemadness.org 70 i 26929 Err codemadness.org 70 i 26930
Err codemadness.org 70 i 26931

The post written about rdist(1) on johan.huldtgren.com sparked Err codemadness.org 70 i 26932 us to write one as well. It's a great, underappreciated, tool. And we wanted to show how we wrapped doas(1) around it. Err codemadness.org 70 i 26933 There are two services in our infrastructure for which we were looking to keep the configuration in sync and to reload the process when the configuration had indeed changed. There is a pair of nsd(8)/unbound(8) hosts and a pair of hosts running relayd(8)/httpd(8) with carp(4) between them. Err codemadness.org 70 i 26934 We didn't have a requirement to go full configuration management with tools like Ansible or Salt Stack. And there wasn't any interest in building additional logic on top of rsync or repositories. > Enter rdist(1), rdist is a program to maintain identical copies of files over multiple hosts. It preserves the owner, group, mode, and mtime of files if possible and can update programs that are executing.

Err codemadness.org 70 i 26935 Err codemadness.org 70 i 26936
Err codemadness.org 70 i 26937
Err codemadness.org 70 i 26938 Err codemadness.org 70 i 26939

Falling in love with OpenBSD again

Err codemadness.org 70 i 26940 Err codemadness.org 70 i 26941
Err codemadness.org 70 i 26942

I was checking the other day and was appalled at how long it has been since I posted here. I had been working a job during 2018 that had me traveling 3,600 miles by air every week so that is at least a viable excuse. Err codemadness.org 70 i 26943 So what is my latest project? I wanted to get something better than the clunky old T500 “freedom laptop” that I could use as my daily driver. Some background here. My first paid gig as a programmer was on SunOS 4 (predecessor to Solaris) and Ultrix (on a DEC MicroVAX). I went from there to a Commodore Amiga (preemptive multitasking in 1985!). I went from there to OS/2 (I know, patron saint of lost causes) and then finally decided to “sell out” and move to Windows as the path of least resistance in the mid 90’s. Err codemadness.org 70 i 26944 My wife bought me an iPod literally just as they started working with computers other than Macs and I watched with fascination as Apple made the big gamble and moved away from PowerPC chips to Intel. That was the beginning of the Apple Fan Boi years for me. My gateway drug was a G4 MacMini and I managed somehow to get in on the pre-production, developer build of an Intel-based Mac. I was quite happy on the platform until about three years ago.

Err codemadness.org 70 i 26945 Err codemadness.org 70 i 26946
Err codemadness.org 70 i 26947
Err codemadness.org 70 i 26948 Err codemadness.org 70 i 26949

How I Created My First FreeBSD Port

Err codemadness.org 70 i 26950 Err codemadness.org 70 i 26951
Err codemadness.org 70 i 26952

I created my first FreeBSD port recently. I found that FreeBSD didn't have a port for GoCD, which is a continuous integration and continuous deployment (CI/CD) system. This was a great opportunity to learn how to build a FreeBSD port while also contributing back to the community

Err codemadness.org 70 i 26953 Err codemadness.org 70 i 26954
Err codemadness.org 70 i 26955
Err codemadness.org 70 i 26956 Err codemadness.org 70 i 26957

The Tilde Institute of OpenBSD Education

Err codemadness.org 70 i 26958 Err codemadness.org 70 i 26959
Err codemadness.org 70 i 26960

Welcome to tilde.institute! This is an OpenBSD machine whose purpose is to provide a space in the tildeverse for experimentation with and education of the OpenBSD operating system. A variety of editors, shells, and compilers are installed to allow for development in a native OpenBSD environment. OpenBSD's httpd(8) is configured with slowcgi(8) as the fastcgi provider and sqlite3 available. This allows users to experiment with web development using compiled CGI in C, aka the BCHS Stack. In addition to php7.0 and mysql (mariadb) by request, this provides an environment where the development of complex web apps is possible.

Err codemadness.org 70 i 26961 Err codemadness.org 70 i 26962
Err codemadness.org 70 i 26963
Err codemadness.org 70 i 26964 Err codemadness.org 70 i 26965

Beastie Bits

Err codemadness.org 70 i 26966 Err codemadness.org 70 i 26967 Err codemadness.org 70 i 26981 Err codemadness.org 70 i 26982


Err codemadness.org 70 i 26983 Err codemadness.org 70 i 26984

Feedback/Questions

Err codemadness.org 70 i 26985 Err codemadness.org 70 i 26986 Err codemadness.org 70 i 26993 Err codemadness.org 70 i 26994


Err codemadness.org 70 i 26995 Err codemadness.org 70 i 26996
    Err codemadness.org 70 i 26997
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 26998
Err codemadness.org 70 i 26999 Err codemadness.org 70 i 27000


Err codemadness.org 70 i 27001 Err codemadness.org 70 i 27002 ]]> Err codemadness.org 70 i 27006
Err codemadness.org 70 i 27007 Err codemadness.org 70 i 27008 A PI-powered Plan 9 cluster, an SSH tarpit, rdist for when Ansible is too much, falling in love with OpenBSD again, how I created my first FreeBSD port, the Tilde Institute of OpenBSD education and more.

Err codemadness.org 70 i 27009 Err codemadness.org 70 i 27010

Headlines

Err codemadness.org 70 i 27011 Err codemadness.org 70 i 27012

A Pi-Powered Plan 9 Cluster

Err codemadness.org 70 i 27013 Err codemadness.org 70 i 27014
Err codemadness.org 70 i 27015

Plan 9 from Bell Labs comes from the same stable as the UNIX operating system, which of course Linux was designed after, and Apple’s OS X runs on top of a certified UNIX operating system. Just like UNIX, Plan 9 was developed as a research O/S — a vehicle for trying out new concepts — with it building on key UNIX principles and taking the idea of devices are just files even further. Err codemadness.org 70 i 27016 In this post, we take a quick look at the Plan 9 O/S and some of the notable features, before moving on to the construction of a self-contained 4-node Raspberry Pi cluster that will provide a compact platform for experimentation.

Err codemadness.org 70 i 27017 Err codemadness.org 70 i 27018
Err codemadness.org 70 i 27019
Err codemadness.org 70 i 27020 Err codemadness.org 70 i 27021

Endlessh: an SSH Tarpit

Err codemadness.org 70 i 27022 Err codemadness.org 70 i 27023
Err codemadness.org 70 i 27024

I’m a big fan of tarpits: a network service that intentionally inserts delays in its protocol, slowing down clients by forcing them to wait. This arrests the speed at which a bad actor can attack or probe the host system, and it ties up some of the attacker’s resources that might otherwise be spent attacking another host. When done well, a tarpit imposes more cost on the attacker than the defender. Err codemadness.org 70 i 27025 The Internet is a very hostile place, and anyone who’s ever stood up an Internet-facing IPv4 host has witnessed the immediate and continuous attacks against their server. I’ve maintained such a server for nearly six years now, and more than 99% of my incoming traffic has ill intent. One part of my defenses has been tarpits in various forms.

Err codemadness.org 70 i 27026 Err codemadness.org 70 i 27027
Err codemadness.org 70 i 27028
Err codemadness.org 70 i 27029 Err codemadness.org 70 i 27030

News Roundup

Err codemadness.org 70 i 27031 Err codemadness.org 70 i 27032

rdist(1) – when Ansible is too much

Err codemadness.org 70 i 27033 Err codemadness.org 70 i 27034
Err codemadness.org 70 i 27035

The post written about rdist(1) on johan.huldtgren.com sparked Err codemadness.org 70 i 27036 us to write one as well. It's a great, underappreciated, tool. And we wanted to show how we wrapped doas(1) around it. Err codemadness.org 70 i 27037 There are two services in our infrastructure for which we were looking to keep the configuration in sync and to reload the process when the configuration had indeed changed. There is a pair of nsd(8)/unbound(8) hosts and a pair of hosts running relayd(8)/httpd(8) with carp(4) between them. Err codemadness.org 70 i 27038 We didn't have a requirement to go full configuration management with tools like Ansible or Salt Stack. And there wasn't any interest in building additional logic on top of rsync or repositories. > Enter rdist(1), rdist is a program to maintain identical copies of files over multiple hosts. It preserves the owner, group, mode, and mtime of files if possible and can update programs that are executing.

Err codemadness.org 70 i 27039 Err codemadness.org 70 i 27040
Err codemadness.org 70 i 27041
Err codemadness.org 70 i 27042 Err codemadness.org 70 i 27043

Falling in love with OpenBSD again

Err codemadness.org 70 i 27044 Err codemadness.org 70 i 27045
Err codemadness.org 70 i 27046

I was checking the other day and was appalled at how long it has been since I posted here. I had been working a job during 2018 that had me traveling 3,600 miles by air every week so that is at least a viable excuse. Err codemadness.org 70 i 27047 So what is my latest project? I wanted to get something better than the clunky old T500 “freedom laptop” that I could use as my daily driver. Some background here. My first paid gig as a programmer was on SunOS 4 (predecessor to Solaris) and Ultrix (on a DEC MicroVAX). I went from there to a Commodore Amiga (preemptive multitasking in 1985!). I went from there to OS/2 (I know, patron saint of lost causes) and then finally decided to “sell out” and move to Windows as the path of least resistance in the mid 90’s. Err codemadness.org 70 i 27048 My wife bought me an iPod literally just as they started working with computers other than Macs and I watched with fascination as Apple made the big gamble and moved away from PowerPC chips to Intel. That was the beginning of the Apple Fan Boi years for me. My gateway drug was a G4 MacMini and I managed somehow to get in on the pre-production, developer build of an Intel-based Mac. I was quite happy on the platform until about three years ago.

Err codemadness.org 70 i 27049 Err codemadness.org 70 i 27050
Err codemadness.org 70 i 27051
Err codemadness.org 70 i 27052 Err codemadness.org 70 i 27053

How I Created My First FreeBSD Port

Err codemadness.org 70 i 27054 Err codemadness.org 70 i 27055
Err codemadness.org 70 i 27056

I created my first FreeBSD port recently. I found that FreeBSD didn't have a port for GoCD, which is a continuous integration and continuous deployment (CI/CD) system. This was a great opportunity to learn how to build a FreeBSD port while also contributing back to the community

Err codemadness.org 70 i 27057 Err codemadness.org 70 i 27058
Err codemadness.org 70 i 27059
Err codemadness.org 70 i 27060 Err codemadness.org 70 i 27061

The Tilde Institute of OpenBSD Education

Err codemadness.org 70 i 27062 Err codemadness.org 70 i 27063
Err codemadness.org 70 i 27064

Welcome to tilde.institute! This is an OpenBSD machine whose purpose is to provide a space in the tildeverse for experimentation with and education of the OpenBSD operating system. A variety of editors, shells, and compilers are installed to allow for development in a native OpenBSD environment. OpenBSD's httpd(8) is configured with slowcgi(8) as the fastcgi provider and sqlite3 available. This allows users to experiment with web development using compiled CGI in C, aka the BCHS Stack. In addition to php7.0 and mysql (mariadb) by request, this provides an environment where the development of complex web apps is possible.

Err codemadness.org 70 i 27065 Err codemadness.org 70 i 27066
Err codemadness.org 70 i 27067
Err codemadness.org 70 i 27068 Err codemadness.org 70 i 27069

Beastie Bits

Err codemadness.org 70 i 27070 Err codemadness.org 70 i 27071 Err codemadness.org 70 i 27085 Err codemadness.org 70 i 27086


Err codemadness.org 70 i 27087 Err codemadness.org 70 i 27088

Feedback/Questions

Err codemadness.org 70 i 27089 Err codemadness.org 70 i 27090 Err codemadness.org 70 i 27097 Err codemadness.org 70 i 27098


Err codemadness.org 70 i 27099 Err codemadness.org 70 i 27100
    Err codemadness.org 70 i 27101
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 27102
Err codemadness.org 70 i 27103 Err codemadness.org 70 i 27104


Err codemadness.org 70 i 27105 Err codemadness.org 70 i 27106 ]]> Err codemadness.org 70 i 27110
Err codemadness.org 70 i 27111 https://fireside.fm/player/v2/FYhhasNR+eh64HOUD Err codemadness.org 70 i 27112 Err codemadness.org 70 i 27113 ]]> Err codemadness.org 70 i 27114 Err codemadness.org 70 i 27115
Err codemadness.org 70 i 27116 Err codemadness.org 70 i 27117 293: Booking Jails Err codemadness.org 70 i 27118 https://www.bsdnow.tv/293 Err codemadness.org 70 i 27119 ca87df46-31a6-4c71-883e-e34d10e4fd2d Err codemadness.org 70 i 27120 Thu, 11 Apr 2019 09:00:00 -0700 Err codemadness.org 70 i 27121 Allan Jude Err codemadness.org 70 i 27122 Err codemadness.org 70 i 27123 full Err codemadness.org 70 i 27124 Allan Jude Err codemadness.org 70 i 27125 This week we have a special episode with a Michael W. Lucas interview about his latest jail book that’s been released. We’re talking all things jails, writing, book sponsoring, the upcoming BSDCan 2019 conference, and more. Err codemadness.org 70 i 27126 1:16:41 Err codemadness.org 70 i 27127 no Err codemadness.org 70 i 27128 Err codemadness.org 70 i 27129 This week we have a special episode with a Michael W. Lucas interview about his latest jail book that’s been released. We’re talking all things jails, writing, book sponsoring, the upcoming BSDCan 2019 conference, and more. Err codemadness.org 70 i 27130 <p>###Interview - Michael W. Lucas - <a href="mailto:mwl@mwl.io">mwl@mwl.io</a> / <a href="https://twitter.com/mwlauthor">@mwlauthor</a><br> Err codemadness.org 70 i 27131 FreeBSD Mastery: Jails</p> Err codemadness.org 70 i 27132 <ul> Err codemadness.org 70 i 27133 <li>BR: Welcome back to the show and congratulations on your latest book. How many books did you have to write before you could start on FreeBSD Mastery: Jails?</li> Err codemadness.org 70 i 27134 <li>AJ: How much research did you have to do about jails?</li> Err codemadness.org 70 i 27135 <li>BR: The book talks about something called ‘incomplete’ jails. What do you mean by that?</li> Err codemadness.org 70 i 27136 <li>AJ: There are a lot of jail management frameworks out there. Why did you chose to write about iocage in the book?</li> Err codemadness.org 70 i 27137 <li>BR: How many jails do you run yourself?</li> Err codemadness.org 70 i 27138 <li>AJ: Can you tell us a bit about how you handle book sponsorship these days?</li> Err codemadness.org 70 i 27139 <li>BR: What other books (fiction and non-fiction) are you currently working on?</li> Err codemadness.org 70 i 27140 <li>AJ: Which talks are you looking forward to attend at the upcoming BSDCan conference?</li> Err codemadness.org 70 i 27141 <li>BR: How is the BSD user group going?</li> Err codemadness.org 70 i 27142 <li>AJ: Anything else you’d like to mention before we release you from our interview jail cell?</li> Err codemadness.org 70 i 27143 </ul> Err codemadness.org 70 i 27144 <hr> Err codemadness.org 70 i 27145 <ul> Err codemadness.org 70 i 27146 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 27147 </ul> Err codemadness.org 70 i 27148 <hr> Err codemadness.org 70 i 27149 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 27150 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0293.mp4" type="video/mp4"> Err codemadness.org 70 i 27151 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 27152 </video> Err codemadness.org 70 i 27153 Err codemadness.org 70 i 27154 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, jails, iocage, ezjail, books, sudo, bsdcan, gelato, writing, sponsoring, user group Err codemadness.org 70 i 27155 Err codemadness.org 70 i 27156 This week we have a special episode with a Michael W. Lucas interview about his latest jail book that’s been released. We’re talking all things jails, writing, book sponsoring, the upcoming BSDCan 2019 conference, and more.

Err codemadness.org 70 i 27157 Err codemadness.org 70 i 27158

###Interview - Michael W. Lucas - mwl@mwl.io / @mwlauthor
Err codemadness.org 70 i 27159 FreeBSD Mastery: Jails

Err codemadness.org 70 i 27160 Err codemadness.org 70 i 27161
    Err codemadness.org 70 i 27162
  • BR: Welcome back to the show and congratulations on your latest book. How many books did you have to write before you could start on FreeBSD Mastery: Jails?
  • Err codemadness.org 70 i 27163
  • AJ: How much research did you have to do about jails?
  • Err codemadness.org 70 i 27164
  • BR: The book talks about something called ‘incomplete’ jails. What do you mean by that?
  • Err codemadness.org 70 i 27165
  • AJ: There are a lot of jail management frameworks out there. Why did you chose to write about iocage in the book?
  • Err codemadness.org 70 i 27166
  • BR: How many jails do you run yourself?
  • Err codemadness.org 70 i 27167
  • AJ: Can you tell us a bit about how you handle book sponsorship these days?
  • Err codemadness.org 70 i 27168
  • BR: What other books (fiction and non-fiction) are you currently working on?
  • Err codemadness.org 70 i 27169
  • AJ: Which talks are you looking forward to attend at the upcoming BSDCan conference?
  • Err codemadness.org 70 i 27170
  • BR: How is the BSD user group going?
  • Err codemadness.org 70 i 27171
  • AJ: Anything else you’d like to mention before we release you from our interview jail cell?
  • Err codemadness.org 70 i 27172
Err codemadness.org 70 i 27173 Err codemadness.org 70 i 27174


Err codemadness.org 70 i 27175 Err codemadness.org 70 i 27176
    Err codemadness.org 70 i 27177
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 27178
Err codemadness.org 70 i 27179 Err codemadness.org 70 i 27180


Err codemadness.org 70 i 27181 Err codemadness.org 70 i 27182 ]]> Err codemadness.org 70 i 27186
Err codemadness.org 70 i 27187 Err codemadness.org 70 i 27188 This week we have a special episode with a Michael W. Lucas interview about his latest jail book that’s been released. We’re talking all things jails, writing, book sponsoring, the upcoming BSDCan 2019 conference, and more.

Err codemadness.org 70 i 27189 Err codemadness.org 70 i 27190

###Interview - Michael W. Lucas - mwl@mwl.io / @mwlauthor
Err codemadness.org 70 i 27191 FreeBSD Mastery: Jails

Err codemadness.org 70 i 27192 Err codemadness.org 70 i 27193
    Err codemadness.org 70 i 27194
  • BR: Welcome back to the show and congratulations on your latest book. How many books did you have to write before you could start on FreeBSD Mastery: Jails?
  • Err codemadness.org 70 i 27195
  • AJ: How much research did you have to do about jails?
  • Err codemadness.org 70 i 27196
  • BR: The book talks about something called ‘incomplete’ jails. What do you mean by that?
  • Err codemadness.org 70 i 27197
  • AJ: There are a lot of jail management frameworks out there. Why did you chose to write about iocage in the book?
  • Err codemadness.org 70 i 27198
  • BR: How many jails do you run yourself?
  • Err codemadness.org 70 i 27199
  • AJ: Can you tell us a bit about how you handle book sponsorship these days?
  • Err codemadness.org 70 i 27200
  • BR: What other books (fiction and non-fiction) are you currently working on?
  • Err codemadness.org 70 i 27201
  • AJ: Which talks are you looking forward to attend at the upcoming BSDCan conference?
  • Err codemadness.org 70 i 27202
  • BR: How is the BSD user group going?
  • Err codemadness.org 70 i 27203
  • AJ: Anything else you’d like to mention before we release you from our interview jail cell?
  • Err codemadness.org 70 i 27204
Err codemadness.org 70 i 27205 Err codemadness.org 70 i 27206


Err codemadness.org 70 i 27207 Err codemadness.org 70 i 27208
    Err codemadness.org 70 i 27209
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 27210
Err codemadness.org 70 i 27211 Err codemadness.org 70 i 27212


Err codemadness.org 70 i 27213 Err codemadness.org 70 i 27214 ]]> Err codemadness.org 70 i 27218
Err codemadness.org 70 i 27219 https://fireside.fm/player/v2/FYhhasNR+JQWf22RV Err codemadness.org 70 i 27220 Err codemadness.org 70 i 27221 ]]> Err codemadness.org 70 i 27222 Err codemadness.org 70 i 27223
Err codemadness.org 70 i 27224 Err codemadness.org 70 i 27225 292: AsiaBSDcon 2019 Recap Err codemadness.org 70 i 27226 https://www.bsdnow.tv/292 Err codemadness.org 70 i 27227 6f743ea3-0e96-445c-a46e-944f1a62450b Err codemadness.org 70 i 27228 Thu, 04 Apr 2019 08:00:00 -0700 Err codemadness.org 70 i 27229 Allan Jude Err codemadness.org 70 i 27230 Err codemadness.org 70 i 27231 full Err codemadness.org 70 i 27232 Allan Jude Err codemadness.org 70 i 27233 FreeBSD Q4 2018 status report, the GhostBSD alternative, the coolest 90s laptop, OpenSSH 8.0 with quantum computing resistant keys exchange, project trident: 18.12-U8 is here, and more. Err codemadness.org 70 i 27234 1:30:25 Err codemadness.org 70 i 27235 no Err codemadness.org 70 i 27236 Err codemadness.org 70 i 27237 FreeBSD Q4 2018 status report, the GhostBSD alternative, the coolest 90s laptop, OpenSSH 8.0 with quantum computing resistant keys exchange, project trident: 18.12-U8 is here, and more. Err codemadness.org 70 i 27238 <p>##Headlines<br> Err codemadness.org 70 i 27239 ###<a href="https://2019.asiabsdcon.org">AsiaBSDcon 2019 recap</a></p> Err codemadness.org 70 i 27240 <ul> Err codemadness.org 70 i 27241 <li>Both Allan and I attended AsiaBSDcon 2019 in Tokyo in mid march. After a couple of days of Tokyo sightseeing and tasting the local food, the conference started with tutorials.</li> Err codemadness.org 70 i 27242 <li>Benedict gave his tutorial about “BSD-based Systems Monitoring with Icinga2 and OpenSSH”, while Allan ran the FreeBSD developer summit.</li> Err codemadness.org 70 i 27243 <li>On the next day, Benedict attended the tutorial “writing (network) tests for FreeBSD” held by Kristof Provost. I learned a lot about Kyua, where tests live and how they are executed. I took some notes, which will likely become an article or chapter in the developers handbook about writing tests.</li> Err codemadness.org 70 i 27244 <li>On the third day, Hiroki Sato officially opened the paper session and then people went into individual talks.</li> Err codemadness.org 70 i 27245 <li>Benedict attended Err codemadness.org 70 i 27246 <blockquote> Err codemadness.org 70 i 27247 <p>Adventure in DRMland - Or how to write a FreeBSD ARM64 DRM driver by Emmanuel<br> Err codemadness.org 70 i 27248 Vadot</p> Err codemadness.org 70 i 27249 </blockquote> Err codemadness.org 70 i 27250 </li> Err codemadness.org 70 i 27251 </ul> Err codemadness.org 70 i 27252 <blockquote> Err codemadness.org 70 i 27253 <p>powerpc64 architecture support in FreeBSD ports by Piotr Kubaj<br> Err codemadness.org 70 i 27254 Managing System Images with ZFS by Allan Jude<br> Err codemadness.org 70 i 27255 FreeBSD - Improving block I/O compatibility in bhyve by Sergiu Weisz<br> Err codemadness.org 70 i 27256 <a href="https://www.youtube.com/watch?v=7kShjboN6ek">Security Fantasies and Realities for the BSDs by George V.<br> Err codemadness.org 70 i 27257 Neville-Neil</a><br> Err codemadness.org 70 i 27258 ZRouter: Remote update of firmware by Hiroki Mori<br> Err codemadness.org 70 i 27259 Improving security of the FreeBSD boot process by Marcin Wojtas</p> Err codemadness.org 70 i 27260 </blockquote> Err codemadness.org 70 i 27261 <ul> Err codemadness.org 70 i 27262 <li>Allan attended Err codemadness.org 70 i 27263 <blockquote> Err codemadness.org 70 i 27264 <p>Adventures in DRMland by Emmanuel Vadot<br> Err codemadness.org 70 i 27265 Intel HAXM by Kamil Rytarowski<br> Err codemadness.org 70 i 27266 BSD Solutions in Australian NGOs<br> Err codemadness.org 70 i 27267 Container Migration on FreeBSD by Yuhei Takagawa<br> Err codemadness.org 70 i 27268 Security Fantasies and Realities for the BSDs by George Neville-Neil</p> Err codemadness.org 70 i 27269 </blockquote> Err codemadness.org 70 i 27270 </li> Err codemadness.org 70 i 27271 </ul> Err codemadness.org 70 i 27272 <blockquote> Err codemadness.org 70 i 27273 <p>ZRouter: Remote update of firmware by Hiroki Mori<br> Err codemadness.org 70 i 27274 Improving security of the FreeBSD boot process by Marcin Wojtas</p> Err codemadness.org 70 i 27275 </blockquote> Err codemadness.org 70 i 27276 <ul> Err codemadness.org 70 i 27277 <li>When not in talks, time was spent in the hallway track and conversations would often continue over dinner.</li> Err codemadness.org 70 i 27278 <li>Stay tuned for announcements about where AsiaBSDcon 2020 will be, as the Tokyo Olympics will likely force some changes for next year. Overall, it was nice to see people at the conference again, listen to talks, and enjoy the hospitality of Japan.</li> Err codemadness.org 70 i 27279 </ul> Err codemadness.org 70 i 27280 <p>###<a href="https://lists.freebsd.org/pipermail/freebsd-announce/2019-March/001871.html">FreeBSD Quarterly Status Report - Fourth Quarter 2018</a></p> Err codemadness.org 70 i 27281 <blockquote> Err codemadness.org 70 i 27282 <p>Since we are still on this island among many in this vast ocean of the Internet, we write this message in a bottle to inform you of the work we have finished and what lies ahead of us. These deeds that we have wrought with our minds and hands, they are for all to partake of - in the hopes that anyone of their free will, will join us in making improvements. In todays message the following by no means complete or ordered set of improvements and additions will be covered:<br> Err codemadness.org 70 i 27283 i386 PAE Pagetables for up to 24GB memory support, Continuous Integration efforts, driver updates to ENA and graphics, ARM enhancements such as RochChip, Marvell 8K, and Broadcom support as well as more DTS files, more Capsicum possibilities, as well as pfsync improvements, and many more things that you can read about for yourselves.<br> Err codemadness.org 70 i 27284 Additionally, we bring news from some islands further down stream, namely the nosh project, HardenedBSD, ClonOS, and the Polish BSD User-Group.<br> Err codemadness.org 70 i 27285 We would, selfishly, encourage those of you who give us the good word to please send in your submissions sooner than just before the deadline, and also encourage anyone willing to share the good word to please read the section on which submissions we’re also interested in having.</p> Err codemadness.org 70 i 27286 </blockquote> Err codemadness.org 70 i 27287 <hr> Err codemadness.org 70 i 27288 <p>###<a href="https://www.linuxinsider.com/story/GhostBSD-A-Solid-Linux-Like-Open-Source-Alternative-85859.html">GhostBSD: A Solid Linux-Like Open Source Alternative</a></p> Err codemadness.org 70 i 27289 <blockquote> Err codemadness.org 70 i 27290 <p>The subject of this week’s Linux Picks and Pans is a representative of a less well-known computing platform that coexists with Linux as an open source operating system. If you thought that the Linux kernel was the only open source engine for a free OS, think again. BSD (Berkeley Software Distribution) shares many of the same features that make Linux OSes viable alternatives to proprietary computing platforms.<br> Err codemadness.org 70 i 27291 GhostBSD is a user-friendly Linux-like desktop operating system based on TrueOS. TrueOS is, in turn, based on FreeBSD’s development branch. TrueOS’ goal is to combine the stability and security of FreeBSD with a preinstalled GNOME, MATE, Xfce, LXDE or Openbox graphical user interface.<br> Err codemadness.org 70 i 27292 I stumbled on TrueOS while checking out new desktop environments and features in recent new releases of a few obscure Linux distros. Along the way, I discovered that today’s BSD computing family is not the closed source Unix platform the “BSD” name might suggest.<br> Err codemadness.org 70 i 27293 In last week’s Redcore Linux review, I mentioned that the Lumina desktop environment was under development for an upcoming Redcore Linux release. Lumina is being developed primarily for BSD OSes. That led me to circle back to a review I wrote two years ago on Lumina being developed for Linux.<br> Err codemadness.org 70 i 27294 GhostBSD is a pleasant discovery. It has nothing to do with being spooky, either. That goes for both the distro and the open source computing family it exposes.<br> Err codemadness.org 70 i 27295 Keep reading to find out what piqued my excitement about Linux-like GhostBSD.</p> Err codemadness.org 70 i 27296 </blockquote> Err codemadness.org 70 i 27297 <hr> Err codemadness.org 70 i 27298 <p>##News Roundup<br> Err codemadness.org 70 i 27299 <a href="http://triosdevelopers.com/jason.eckert/blog/Entries/2019/3/14_SPARCbook_3000ST_-_The_coolest_90s_laptop.html">SPARCbook 3000ST - The coolest 90s laptop</a></p> Err codemadness.org 70 i 27300 <blockquote> Err codemadness.org 70 i 27301 <p>A few weeks back I managed to pick up an incredibly rare laptop in immaculate condition for $50 on Kijiji: a Tadpole Technologies SPARCbook 3000ST from 1997 (it also came with two other working Pentium laptops from the 1990s).<br> Err codemadness.org 70 i 27302 Sun computers were an expensive desire for many computer geeks in the 1990s, and running UNIX on a SPARC-based laptop was, well, just as cool as it gets. SPARC was an open hardware platform that anyone could make, and Tadpole licensed the Solaris UNIX operating system from Sun for their SPARCbooks. Tadpole essentially made high-end UNIX/VAX workstations on costly, unusual platforms (PowerPC, DEC Alpha, SPARC) but only their SPARCbooks were popular in the high-end UNIX market of the 1990s.</p> Err codemadness.org 70 i 27303 </blockquote> Err codemadness.org 70 i 27304 <hr> Err codemadness.org 70 i 27305 <p>###<a href="https://codesmithdev.com/openssh-8-0-releasing-with-quantum-computing-resistant-keys/">OpenSSH 8.0 Releasing With Quantum Computing Resistant Keys</a></p> Err codemadness.org 70 i 27306 <blockquote> Err codemadness.org 70 i 27307 <p>OpenSSH 7.9 came out with a host of bug fixes last year with few new features, as is to be expected in minor releases. However, recently, Damien Miller has announced that OpenSSH 8.0 is nearly ready to be released. Currently, it’s undergoing testing to ensure compatibility across supported systems.</p> Err codemadness.org 70 i 27308 </blockquote> Err codemadness.org 70 i 27309 <ul> Err codemadness.org 70 i 27310 <li><a href="https://twitter.com/damienmiller/status/1111416334737244160">https://twitter.com/damienmiller/status/1111416334737244160</a></li> Err codemadness.org 70 i 27311 </ul> Err codemadness.org 70 i 27312 <blockquote> Err codemadness.org 70 i 27313 <p>Better Security<br> Err codemadness.org 70 i 27314 Copying filenames with scp will be more secure in OpenSSH 8.0 due to the fact that copying filenames from a remote to local directory will prompt scp to check if the files sent from the server match your request. Otherwise, an attack server would theoretically be able to intercept the request by serving malicious files in place of the ones originally requested. Knowing this, you’re probably better off never using scp anyway. OpenSSH advises against it:<br> Err codemadness.org 70 i 27315 “The scp protocol is outdated, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead.”</p> Err codemadness.org 70 i 27316 </blockquote> Err codemadness.org 70 i 27317 <ul> Err codemadness.org 70 i 27318 <li>Interesting new features</li> Err codemadness.org 70 i 27319 </ul> Err codemadness.org 70 i 27320 <blockquote> Err codemadness.org 70 i 27321 <p>ssh(1): When prompting whether to record a new host key, accept the key fingerprint as a synonym for “yes”. This allows the user to paste a fingerprint obtained out of band at the prompt and have the client do the comparison for you.</p> Err codemadness.org 70 i 27322 </blockquote> Err codemadness.org 70 i 27323 <hr> Err codemadness.org 70 i 27324 <p>###<a href="https://project-trident.org/post/2019-03-29_18.12-u8_available/">Project Trident : 18.12-U8 Available</a></p> Err codemadness.org 70 i 27325 <blockquote> Err codemadness.org 70 i 27326 <p>Thank you all for your patience! Project Trident has finally finished some significant infrastructure updates over the last 2 weeks, and we are pleased to announce that package update 8 for 18.12-RELEASE is now available.<br> Err codemadness.org 70 i 27327 To switch to the new update, you will need to open the “Configuration” tab in the update manager and switch to the new “Trident-release” package repository. You can also perform this transition via the command line by running: sudo sysup --change-train Trident-release</p> Err codemadness.org 70 i 27328 </blockquote> Err codemadness.org 70 i 27329 <hr> Err codemadness.org 70 i 27330 <p>##Beastie Bits</p> Err codemadness.org 70 i 27331 <ul> Err codemadness.org 70 i 27332 <li><a href="https://sourceforge.net/projects/bsdrp/files/BSD_Router_Project/1.92/">BSD Router Project - Release 1.92</a></li> Err codemadness.org 70 i 27333 <li><a href="https://registration.eurobsdcon.org/conferences/2019/program/proposals/new">EuroBSDcon - New Proposals</a></li> Err codemadness.org 70 i 27334 <li><a href="https://www.reddit.com/r/unix/comments/b1wyde/funny_unix_shirt_ren%C3%A9_magritte_art_parody/">Funny UNIX shirt (René Magritte art parody)</a></li> Err codemadness.org 70 i 27335 <li><a href="https://geoff.greer.fm/2019/03/04/thinkpad-x210/">51NB’s Thinkpad X210</a></li> Err codemadness.org 70 i 27336 <li><a href="https://www.dragonflydigest.com/2019/03/26/22703.html">DragonFly: No more gcc50</a></li> Err codemadness.org 70 i 27337 <li><a href="https://mwl.io/archives/4139">“FreeBSD Mastery: Jails” ebook escaping!</a></li> Err codemadness.org 70 i 27338 <li><a href="https://frab.luga.de/en/LIT2019/public/events/68">FreeBSD talk at the Augsburger Linux Info Days (german)</a></li> Err codemadness.org 70 i 27339 </ul> Err codemadness.org 70 i 27340 <hr> Err codemadness.org 70 i 27341 <p>##Feedback/Questions</p> Err codemadness.org 70 i 27342 <ul> Err codemadness.org 70 i 27343 <li>DJ - <a href="http://dpaste.com/3ZRJ5DA#wrap">FuguIta Feedback</a></li> Err codemadness.org 70 i 27344 <li>Mike - <a href="http://dpaste.com/32TSCH4#wrap">Another Good Show</a></li> Err codemadness.org 70 i 27345 <li>Alex - <a href="http://dpaste.com/34ND6BC#wrap">GhostBSD and wifi</a></li> Err codemadness.org 70 i 27346 </ul> Err codemadness.org 70 i 27347 <hr> Err codemadness.org 70 i 27348 <ul> Err codemadness.org 70 i 27349 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 27350 </ul> Err codemadness.org 70 i 27351 <hr> Err codemadness.org 70 i 27352 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 27353 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0292.mp4" type="video/mp4"> Err codemadness.org 70 i 27354 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 27355 </video> Err codemadness.org 70 i 27356 Err codemadness.org 70 i 27357 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 27358 Err codemadness.org 70 i 27359 FreeBSD Q4 2018 status report, the GhostBSD alternative, the coolest 90s laptop, OpenSSH 8.0 with quantum computing resistant keys exchange, project trident: 18.12-U8 is here, and more.

Err codemadness.org 70 i 27360 Err codemadness.org 70 i 27361

##Headlines
Err codemadness.org 70 i 27362 ###AsiaBSDcon 2019 recap

Err codemadness.org 70 i 27363 Err codemadness.org 70 i 27364
    Err codemadness.org 70 i 27365
  • Both Allan and I attended AsiaBSDcon 2019 in Tokyo in mid march. After a couple of days of Tokyo sightseeing and tasting the local food, the conference started with tutorials.
  • Err codemadness.org 70 i 27366
  • Benedict gave his tutorial about “BSD-based Systems Monitoring with Icinga2 and OpenSSH”, while Allan ran the FreeBSD developer summit.
  • Err codemadness.org 70 i 27367
  • On the next day, Benedict attended the tutorial “writing (network) tests for FreeBSD” held by Kristof Provost. I learned a lot about Kyua, where tests live and how they are executed. I took some notes, which will likely become an article or chapter in the developers handbook about writing tests.
  • Err codemadness.org 70 i 27368
  • On the third day, Hiroki Sato officially opened the paper session and then people went into individual talks.
  • Err codemadness.org 70 i 27369
  • Benedict attended Err codemadness.org 70 i 27370
    Err codemadness.org 70 i 27371

    Adventure in DRMland - Or how to write a FreeBSD ARM64 DRM driver by Emmanuel
    Err codemadness.org 70 i 27372 Vadot

    Err codemadness.org 70 i 27373
    Err codemadness.org 70 i 27374
  • Err codemadness.org 70 i 27375
Err codemadness.org 70 i 27376 Err codemadness.org 70 i 27377
Err codemadness.org 70 i 27378

powerpc64 architecture support in FreeBSD ports by Piotr Kubaj
Err codemadness.org 70 i 27379 Managing System Images with ZFS by Allan Jude
Err codemadness.org 70 i 27380 FreeBSD - Improving block I/O compatibility in bhyve by Sergiu Weisz
Err codemadness.org 70 i 27381 Security Fantasies and Realities for the BSDs by George V.
Err codemadness.org 70 i 27382 Neville-Neil

Err codemadness.org 70 i 27383 ZRouter: Remote update of firmware by Hiroki Mori
Err codemadness.org 70 i 27384 Improving security of the FreeBSD boot process by Marcin Wojtas

Err codemadness.org 70 i 27385
Err codemadness.org 70 i 27386 Err codemadness.org 70 i 27387
    Err codemadness.org 70 i 27388
  • Allan attended Err codemadness.org 70 i 27389
    Err codemadness.org 70 i 27390

    Adventures in DRMland by Emmanuel Vadot
    Err codemadness.org 70 i 27391 Intel HAXM by Kamil Rytarowski
    Err codemadness.org 70 i 27392 BSD Solutions in Australian NGOs
    Err codemadness.org 70 i 27393 Container Migration on FreeBSD by Yuhei Takagawa
    Err codemadness.org 70 i 27394 Security Fantasies and Realities for the BSDs by George Neville-Neil

    Err codemadness.org 70 i 27395
    Err codemadness.org 70 i 27396
  • Err codemadness.org 70 i 27397
Err codemadness.org 70 i 27398 Err codemadness.org 70 i 27399
Err codemadness.org 70 i 27400

ZRouter: Remote update of firmware by Hiroki Mori
Err codemadness.org 70 i 27401 Improving security of the FreeBSD boot process by Marcin Wojtas

Err codemadness.org 70 i 27402
Err codemadness.org 70 i 27403 Err codemadness.org 70 i 27404
    Err codemadness.org 70 i 27405
  • When not in talks, time was spent in the hallway track and conversations would often continue over dinner.
  • Err codemadness.org 70 i 27406
  • Stay tuned for announcements about where AsiaBSDcon 2020 will be, as the Tokyo Olympics will likely force some changes for next year. Overall, it was nice to see people at the conference again, listen to talks, and enjoy the hospitality of Japan.
  • Err codemadness.org 70 i 27407
Err codemadness.org 70 i 27408 Err codemadness.org 70 i 27409

###FreeBSD Quarterly Status Report - Fourth Quarter 2018

Err codemadness.org 70 i 27410 Err codemadness.org 70 i 27411
Err codemadness.org 70 i 27412

Since we are still on this island among many in this vast ocean of the Internet, we write this message in a bottle to inform you of the work we have finished and what lies ahead of us. These deeds that we have wrought with our minds and hands, they are for all to partake of - in the hopes that anyone of their free will, will join us in making improvements. In todays message the following by no means complete or ordered set of improvements and additions will be covered:
Err codemadness.org 70 i 27413 i386 PAE Pagetables for up to 24GB memory support, Continuous Integration efforts, driver updates to ENA and graphics, ARM enhancements such as RochChip, Marvell 8K, and Broadcom support as well as more DTS files, more Capsicum possibilities, as well as pfsync improvements, and many more things that you can read about for yourselves.
Err codemadness.org 70 i 27414 Additionally, we bring news from some islands further down stream, namely the nosh project, HardenedBSD, ClonOS, and the Polish BSD User-Group.
Err codemadness.org 70 i 27415 We would, selfishly, encourage those of you who give us the good word to please send in your submissions sooner than just before the deadline, and also encourage anyone willing to share the good word to please read the section on which submissions we’re also interested in having.

Err codemadness.org 70 i 27416
Err codemadness.org 70 i 27417 Err codemadness.org 70 i 27418


Err codemadness.org 70 i 27419 Err codemadness.org 70 i 27420

###GhostBSD: A Solid Linux-Like Open Source Alternative

Err codemadness.org 70 i 27421 Err codemadness.org 70 i 27422
Err codemadness.org 70 i 27423

The subject of this week’s Linux Picks and Pans is a representative of a less well-known computing platform that coexists with Linux as an open source operating system. If you thought that the Linux kernel was the only open source engine for a free OS, think again. BSD (Berkeley Software Distribution) shares many of the same features that make Linux OSes viable alternatives to proprietary computing platforms.
Err codemadness.org 70 i 27424 GhostBSD is a user-friendly Linux-like desktop operating system based on TrueOS. TrueOS is, in turn, based on FreeBSD’s development branch. TrueOS’ goal is to combine the stability and security of FreeBSD with a preinstalled GNOME, MATE, Xfce, LXDE or Openbox graphical user interface.
Err codemadness.org 70 i 27425 I stumbled on TrueOS while checking out new desktop environments and features in recent new releases of a few obscure Linux distros. Along the way, I discovered that today’s BSD computing family is not the closed source Unix platform the “BSD” name might suggest.
Err codemadness.org 70 i 27426 In last week’s Redcore Linux review, I mentioned that the Lumina desktop environment was under development for an upcoming Redcore Linux release. Lumina is being developed primarily for BSD OSes. That led me to circle back to a review I wrote two years ago on Lumina being developed for Linux.
Err codemadness.org 70 i 27427 GhostBSD is a pleasant discovery. It has nothing to do with being spooky, either. That goes for both the distro and the open source computing family it exposes.
Err codemadness.org 70 i 27428 Keep reading to find out what piqued my excitement about Linux-like GhostBSD.

Err codemadness.org 70 i 27429
Err codemadness.org 70 i 27430 Err codemadness.org 70 i 27431


Err codemadness.org 70 i 27432 Err codemadness.org 70 i 27433

##News Roundup
Err codemadness.org 70 i 27434 ###SPARCbook 3000ST - The coolest 90s laptop

Err codemadness.org 70 i 27435 Err codemadness.org 70 i 27436
Err codemadness.org 70 i 27437

A few weeks back I managed to pick up an incredibly rare laptop in immaculate condition for $50 on Kijiji: a Tadpole Technologies SPARCbook 3000ST from 1997 (it also came with two other working Pentium laptops from the 1990s).
Err codemadness.org 70 i 27438 Sun computers were an expensive desire for many computer geeks in the 1990s, and running UNIX on a SPARC-based laptop was, well, just as cool as it gets. SPARC was an open hardware platform that anyone could make, and Tadpole licensed the Solaris UNIX operating system from Sun for their SPARCbooks. Tadpole essentially made high-end UNIX/VAX workstations on costly, unusual platforms (PowerPC, DEC Alpha, SPARC) but only their SPARCbooks were popular in the high-end UNIX market of the 1990s.

Err codemadness.org 70 i 27439
Err codemadness.org 70 i 27440 Err codemadness.org 70 i 27441


Err codemadness.org 70 i 27442 Err codemadness.org 70 i 27443

###OpenSSH 8.0 Releasing With Quantum Computing Resistant Keys

Err codemadness.org 70 i 27444 Err codemadness.org 70 i 27445
Err codemadness.org 70 i 27446

OpenSSH 7.9 came out with a host of bug fixes last year with few new features, as is to be expected in minor releases. However, recently, Damien Miller has announced that OpenSSH 8.0 is nearly ready to be released. Currently, it’s undergoing testing to ensure compatibility across supported systems.

Err codemadness.org 70 i 27447
Err codemadness.org 70 i 27448 Err codemadness.org 70 i 27449 Err codemadness.org 70 i 27452 Err codemadness.org 70 i 27453
Err codemadness.org 70 i 27454

Better Security
Err codemadness.org 70 i 27455 Copying filenames with scp will be more secure in OpenSSH 8.0 due to the fact that copying filenames from a remote to local directory will prompt scp to check if the files sent from the server match your request. Otherwise, an attack server would theoretically be able to intercept the request by serving malicious files in place of the ones originally requested. Knowing this, you’re probably better off never using scp anyway. OpenSSH advises against it:
Err codemadness.org 70 i 27456 “The scp protocol is outdated, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead.”

Err codemadness.org 70 i 27457
Err codemadness.org 70 i 27458 Err codemadness.org 70 i 27459
    Err codemadness.org 70 i 27460
  • Interesting new features
  • Err codemadness.org 70 i 27461
Err codemadness.org 70 i 27462 Err codemadness.org 70 i 27463
Err codemadness.org 70 i 27464

ssh(1): When prompting whether to record a new host key, accept the key fingerprint as a synonym for “yes”. This allows the user to paste a fingerprint obtained out of band at the prompt and have the client do the comparison for you.

Err codemadness.org 70 i 27465
Err codemadness.org 70 i 27466 Err codemadness.org 70 i 27467


Err codemadness.org 70 i 27468 Err codemadness.org 70 i 27469

###Project Trident : 18.12-U8 Available

Err codemadness.org 70 i 27470 Err codemadness.org 70 i 27471
Err codemadness.org 70 i 27472

Thank you all for your patience! Project Trident has finally finished some significant infrastructure updates over the last 2 weeks, and we are pleased to announce that package update 8 for 18.12-RELEASE is now available.
Err codemadness.org 70 i 27473 To switch to the new update, you will need to open the “Configuration” tab in the update manager and switch to the new “Trident-release” package repository. You can also perform this transition via the command line by running: sudo sysup --change-train Trident-release

Err codemadness.org 70 i 27474
Err codemadness.org 70 i 27475 Err codemadness.org 70 i 27476


Err codemadness.org 70 i 27477 Err codemadness.org 70 i 27478

##Beastie Bits

Err codemadness.org 70 i 27479 Err codemadness.org 70 i 27480 Err codemadness.org 70 i 27489 Err codemadness.org 70 i 27490


Err codemadness.org 70 i 27491 Err codemadness.org 70 i 27492

##Feedback/Questions

Err codemadness.org 70 i 27493 Err codemadness.org 70 i 27494 Err codemadness.org 70 i 27499 Err codemadness.org 70 i 27500


Err codemadness.org 70 i 27501 Err codemadness.org 70 i 27502
    Err codemadness.org 70 i 27503
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 27504
Err codemadness.org 70 i 27505 Err codemadness.org 70 i 27506


Err codemadness.org 70 i 27507 Err codemadness.org 70 i 27508 ]]> Err codemadness.org 70 i 27512
Err codemadness.org 70 i 27513 Err codemadness.org 70 i 27514 FreeBSD Q4 2018 status report, the GhostBSD alternative, the coolest 90s laptop, OpenSSH 8.0 with quantum computing resistant keys exchange, project trident: 18.12-U8 is here, and more.

Err codemadness.org 70 i 27515 Err codemadness.org 70 i 27516

##Headlines
Err codemadness.org 70 i 27517 ###AsiaBSDcon 2019 recap

Err codemadness.org 70 i 27518 Err codemadness.org 70 i 27519
    Err codemadness.org 70 i 27520
  • Both Allan and I attended AsiaBSDcon 2019 in Tokyo in mid march. After a couple of days of Tokyo sightseeing and tasting the local food, the conference started with tutorials.
  • Err codemadness.org 70 i 27521
  • Benedict gave his tutorial about “BSD-based Systems Monitoring with Icinga2 and OpenSSH”, while Allan ran the FreeBSD developer summit.
  • Err codemadness.org 70 i 27522
  • On the next day, Benedict attended the tutorial “writing (network) tests for FreeBSD” held by Kristof Provost. I learned a lot about Kyua, where tests live and how they are executed. I took some notes, which will likely become an article or chapter in the developers handbook about writing tests.
  • Err codemadness.org 70 i 27523
  • On the third day, Hiroki Sato officially opened the paper session and then people went into individual talks.
  • Err codemadness.org 70 i 27524
  • Benedict attended Err codemadness.org 70 i 27525
    Err codemadness.org 70 i 27526

    Adventure in DRMland - Or how to write a FreeBSD ARM64 DRM driver by Emmanuel
    Err codemadness.org 70 i 27527 Vadot

    Err codemadness.org 70 i 27528
    Err codemadness.org 70 i 27529
  • Err codemadness.org 70 i 27530
Err codemadness.org 70 i 27531 Err codemadness.org 70 i 27532
Err codemadness.org 70 i 27533

powerpc64 architecture support in FreeBSD ports by Piotr Kubaj
Err codemadness.org 70 i 27534 Managing System Images with ZFS by Allan Jude
Err codemadness.org 70 i 27535 FreeBSD - Improving block I/O compatibility in bhyve by Sergiu Weisz
Err codemadness.org 70 i 27536 Security Fantasies and Realities for the BSDs by George V.
Err codemadness.org 70 i 27537 Neville-Neil

Err codemadness.org 70 i 27538 ZRouter: Remote update of firmware by Hiroki Mori
Err codemadness.org 70 i 27539 Improving security of the FreeBSD boot process by Marcin Wojtas

Err codemadness.org 70 i 27540
Err codemadness.org 70 i 27541 Err codemadness.org 70 i 27542
    Err codemadness.org 70 i 27543
  • Allan attended Err codemadness.org 70 i 27544
    Err codemadness.org 70 i 27545

    Adventures in DRMland by Emmanuel Vadot
    Err codemadness.org 70 i 27546 Intel HAXM by Kamil Rytarowski
    Err codemadness.org 70 i 27547 BSD Solutions in Australian NGOs
    Err codemadness.org 70 i 27548 Container Migration on FreeBSD by Yuhei Takagawa
    Err codemadness.org 70 i 27549 Security Fantasies and Realities for the BSDs by George Neville-Neil

    Err codemadness.org 70 i 27550
    Err codemadness.org 70 i 27551
  • Err codemadness.org 70 i 27552
Err codemadness.org 70 i 27553 Err codemadness.org 70 i 27554
Err codemadness.org 70 i 27555

ZRouter: Remote update of firmware by Hiroki Mori
Err codemadness.org 70 i 27556 Improving security of the FreeBSD boot process by Marcin Wojtas

Err codemadness.org 70 i 27557
Err codemadness.org 70 i 27558 Err codemadness.org 70 i 27559
    Err codemadness.org 70 i 27560
  • When not in talks, time was spent in the hallway track and conversations would often continue over dinner.
  • Err codemadness.org 70 i 27561
  • Stay tuned for announcements about where AsiaBSDcon 2020 will be, as the Tokyo Olympics will likely force some changes for next year. Overall, it was nice to see people at the conference again, listen to talks, and enjoy the hospitality of Japan.
  • Err codemadness.org 70 i 27562
Err codemadness.org 70 i 27563 Err codemadness.org 70 i 27564

###FreeBSD Quarterly Status Report - Fourth Quarter 2018

Err codemadness.org 70 i 27565 Err codemadness.org 70 i 27566
Err codemadness.org 70 i 27567

Since we are still on this island among many in this vast ocean of the Internet, we write this message in a bottle to inform you of the work we have finished and what lies ahead of us. These deeds that we have wrought with our minds and hands, they are for all to partake of - in the hopes that anyone of their free will, will join us in making improvements. In todays message the following by no means complete or ordered set of improvements and additions will be covered:
Err codemadness.org 70 i 27568 i386 PAE Pagetables for up to 24GB memory support, Continuous Integration efforts, driver updates to ENA and graphics, ARM enhancements such as RochChip, Marvell 8K, and Broadcom support as well as more DTS files, more Capsicum possibilities, as well as pfsync improvements, and many more things that you can read about for yourselves.
Err codemadness.org 70 i 27569 Additionally, we bring news from some islands further down stream, namely the nosh project, HardenedBSD, ClonOS, and the Polish BSD User-Group.
Err codemadness.org 70 i 27570 We would, selfishly, encourage those of you who give us the good word to please send in your submissions sooner than just before the deadline, and also encourage anyone willing to share the good word to please read the section on which submissions we’re also interested in having.

Err codemadness.org 70 i 27571
Err codemadness.org 70 i 27572 Err codemadness.org 70 i 27573


Err codemadness.org 70 i 27574 Err codemadness.org 70 i 27575

###GhostBSD: A Solid Linux-Like Open Source Alternative

Err codemadness.org 70 i 27576 Err codemadness.org 70 i 27577
Err codemadness.org 70 i 27578

The subject of this week’s Linux Picks and Pans is a representative of a less well-known computing platform that coexists with Linux as an open source operating system. If you thought that the Linux kernel was the only open source engine for a free OS, think again. BSD (Berkeley Software Distribution) shares many of the same features that make Linux OSes viable alternatives to proprietary computing platforms.
Err codemadness.org 70 i 27579 GhostBSD is a user-friendly Linux-like desktop operating system based on TrueOS. TrueOS is, in turn, based on FreeBSD’s development branch. TrueOS’ goal is to combine the stability and security of FreeBSD with a preinstalled GNOME, MATE, Xfce, LXDE or Openbox graphical user interface.
Err codemadness.org 70 i 27580 I stumbled on TrueOS while checking out new desktop environments and features in recent new releases of a few obscure Linux distros. Along the way, I discovered that today’s BSD computing family is not the closed source Unix platform the “BSD” name might suggest.
Err codemadness.org 70 i 27581 In last week’s Redcore Linux review, I mentioned that the Lumina desktop environment was under development for an upcoming Redcore Linux release. Lumina is being developed primarily for BSD OSes. That led me to circle back to a review I wrote two years ago on Lumina being developed for Linux.
Err codemadness.org 70 i 27582 GhostBSD is a pleasant discovery. It has nothing to do with being spooky, either. That goes for both the distro and the open source computing family it exposes.
Err codemadness.org 70 i 27583 Keep reading to find out what piqued my excitement about Linux-like GhostBSD.

Err codemadness.org 70 i 27584
Err codemadness.org 70 i 27585 Err codemadness.org 70 i 27586


Err codemadness.org 70 i 27587 Err codemadness.org 70 i 27588

##News Roundup
Err codemadness.org 70 i 27589 ###SPARCbook 3000ST - The coolest 90s laptop

Err codemadness.org 70 i 27590 Err codemadness.org 70 i 27591
Err codemadness.org 70 i 27592

A few weeks back I managed to pick up an incredibly rare laptop in immaculate condition for $50 on Kijiji: a Tadpole Technologies SPARCbook 3000ST from 1997 (it also came with two other working Pentium laptops from the 1990s).
Err codemadness.org 70 i 27593 Sun computers were an expensive desire for many computer geeks in the 1990s, and running UNIX on a SPARC-based laptop was, well, just as cool as it gets. SPARC was an open hardware platform that anyone could make, and Tadpole licensed the Solaris UNIX operating system from Sun for their SPARCbooks. Tadpole essentially made high-end UNIX/VAX workstations on costly, unusual platforms (PowerPC, DEC Alpha, SPARC) but only their SPARCbooks were popular in the high-end UNIX market of the 1990s.

Err codemadness.org 70 i 27594
Err codemadness.org 70 i 27595 Err codemadness.org 70 i 27596


Err codemadness.org 70 i 27597 Err codemadness.org 70 i 27598

###OpenSSH 8.0 Releasing With Quantum Computing Resistant Keys

Err codemadness.org 70 i 27599 Err codemadness.org 70 i 27600
Err codemadness.org 70 i 27601

OpenSSH 7.9 came out with a host of bug fixes last year with few new features, as is to be expected in minor releases. However, recently, Damien Miller has announced that OpenSSH 8.0 is nearly ready to be released. Currently, it’s undergoing testing to ensure compatibility across supported systems.

Err codemadness.org 70 i 27602
Err codemadness.org 70 i 27603 Err codemadness.org 70 i 27604 Err codemadness.org 70 i 27607 Err codemadness.org 70 i 27608
Err codemadness.org 70 i 27609

Better Security
Err codemadness.org 70 i 27610 Copying filenames with scp will be more secure in OpenSSH 8.0 due to the fact that copying filenames from a remote to local directory will prompt scp to check if the files sent from the server match your request. Otherwise, an attack server would theoretically be able to intercept the request by serving malicious files in place of the ones originally requested. Knowing this, you’re probably better off never using scp anyway. OpenSSH advises against it:
Err codemadness.org 70 i 27611 “The scp protocol is outdated, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead.”

Err codemadness.org 70 i 27612
Err codemadness.org 70 i 27613 Err codemadness.org 70 i 27614
    Err codemadness.org 70 i 27615
  • Interesting new features
  • Err codemadness.org 70 i 27616
Err codemadness.org 70 i 27617 Err codemadness.org 70 i 27618
Err codemadness.org 70 i 27619

ssh(1): When prompting whether to record a new host key, accept the key fingerprint as a synonym for “yes”. This allows the user to paste a fingerprint obtained out of band at the prompt and have the client do the comparison for you.

Err codemadness.org 70 i 27620
Err codemadness.org 70 i 27621 Err codemadness.org 70 i 27622


Err codemadness.org 70 i 27623 Err codemadness.org 70 i 27624

###Project Trident : 18.12-U8 Available

Err codemadness.org 70 i 27625 Err codemadness.org 70 i 27626
Err codemadness.org 70 i 27627

Thank you all for your patience! Project Trident has finally finished some significant infrastructure updates over the last 2 weeks, and we are pleased to announce that package update 8 for 18.12-RELEASE is now available.
Err codemadness.org 70 i 27628 To switch to the new update, you will need to open the “Configuration” tab in the update manager and switch to the new “Trident-release” package repository. You can also perform this transition via the command line by running: sudo sysup --change-train Trident-release

Err codemadness.org 70 i 27629
Err codemadness.org 70 i 27630 Err codemadness.org 70 i 27631


Err codemadness.org 70 i 27632 Err codemadness.org 70 i 27633

##Beastie Bits

Err codemadness.org 70 i 27634 Err codemadness.org 70 i 27635 Err codemadness.org 70 i 27644 Err codemadness.org 70 i 27645


Err codemadness.org 70 i 27646 Err codemadness.org 70 i 27647

##Feedback/Questions

Err codemadness.org 70 i 27648 Err codemadness.org 70 i 27649 Err codemadness.org 70 i 27654 Err codemadness.org 70 i 27655


Err codemadness.org 70 i 27656 Err codemadness.org 70 i 27657
    Err codemadness.org 70 i 27658
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 27659
Err codemadness.org 70 i 27660 Err codemadness.org 70 i 27661


Err codemadness.org 70 i 27662 Err codemadness.org 70 i 27663 ]]> Err codemadness.org 70 i 27667
Err codemadness.org 70 i 27668 https://fireside.fm/player/v2/FYhhasNR+JI4U-36G Err codemadness.org 70 i 27669 Err codemadness.org 70 i 27670 ]]> Err codemadness.org 70 i 27671 Err codemadness.org 70 i 27672
Err codemadness.org 70 i 27673 Err codemadness.org 70 i 27674 291: Storage Changes Software Err codemadness.org 70 i 27675 https://www.bsdnow.tv/291 Err codemadness.org 70 i 27676 54559ca9-f84f-4e9e-8323-3a5a0919937f Err codemadness.org 70 i 27677 Thu, 28 Mar 2019 07:00:00 -0700 Err codemadness.org 70 i 27678 Allan Jude Err codemadness.org 70 i 27679 Err codemadness.org 70 i 27680 full Err codemadness.org 70 i 27681 Allan Jude Err codemadness.org 70 i 27682 Storage changing software, what makes Unix special, what you need may be “pipeline +Unix commands”, running a bakery on Emacs and PostgreSQL, the ultimate guide to memorable tech talks, light-weight contexts, and more. Err codemadness.org 70 i 27683 1:12:44 Err codemadness.org 70 i 27684 no Err codemadness.org 70 i 27685 Err codemadness.org 70 i 27686 Storage changing software, what makes Unix special, what you need may be “pipeline +Unix commands”, running a bakery on Emacs and PostgreSQL, the ultimate guide to memorable tech talks, light-weight contexts, and more. Err codemadness.org 70 i 27687 <p>##Headlines</p> Err codemadness.org 70 i 27688 <p>###<a href="https://news.gandi.net/en/2019/03/tracking-a-storage-issue-led-to-software-change/">Tracking a storage issue led to software change</a></p> Err codemadness.org 70 i 27689 <blockquote> Err codemadness.org 70 i 27690 <p>Early last year we completed a massive migration that moved our customers’ hosting data off of a legacy datacenter (that we called FR-SD2) onto several new datacenters (that we call FR-SD3, FR-SD5, and FR-SD6) with much more modern, up-to-date infrastructure.<br> Err codemadness.org 70 i 27691 This migration required several changes in both the software and hardware we use, including switching the operating system on our storage units to FreeBSD.<br> Err codemadness.org 70 i 27692 Currently, we use the NFS protocol to provide storage and export the filesystems on Simple Hosting, our web hosting service, and the FreeBSD kernel includes an NFS server for just this purpose.</p> Err codemadness.org 70 i 27693 </blockquote> Err codemadness.org 70 i 27694 <ul> Err codemadness.org 70 i 27695 <li>Problem</li> Err codemadness.org 70 i 27696 </ul> Err codemadness.org 70 i 27697 <blockquote> Err codemadness.org 70 i 27698 <p>While migrating virtual disks of Simple Hosting instances from FR-SD2, we noticed high CPU load spikes on the new storage units.</p> Err codemadness.org 70 i 27699 </blockquote> Err codemadness.org 70 i 27700 <hr> Err codemadness.org 70 i 27701 <p>###<a href="https://www.softwaredevelopment.site/2019/02/what-makes-unix-special.html">What Makes Unix Special</a></p> Err codemadness.org 70 i 27702 <blockquote> Err codemadness.org 70 i 27703 <p>Ever since Unix burst onto the scene within the early '70s, observers within the pc world have been fast to put in writing it off as a unusual working system designed by and for knowledgeable programmers. Regardless of their proclamations, Unix refuses to die. Means again in 1985, Stewart Cheifet puzzled if Unix would turn out to be the usual working system of the longer term on the PBS present “The Laptop Chronicles,” though MS-DOS was effectively in its heyday. In 2018, it is clear that Unix actually is the usual working system, not on desktop PCs, however on smartphones and tablets.</p> Err codemadness.org 70 i 27704 </blockquote> Err codemadness.org 70 i 27705 <ul> Err codemadness.org 70 i 27706 <li>What Makes Unix Special?</li> Err codemadness.org 70 i 27707 </ul> Err codemadness.org 70 i 27708 <blockquote> Err codemadness.org 70 i 27709 <p>It is also the usual system for net servers. The actual fact is, hundreds of thousands of individuals all over the world have interacted with Linux and Unix programs daily, most of whom have by no means written a line of code of their lives.<br> Err codemadness.org 70 i 27710 So what makes Unix so beloved by programmers and different techie sorts? Let’s check out a few of issues this working system has going for it. (For some background on Unix, try The Historical past of Unix: From Bell Labs to the iPhone.)</p> Err codemadness.org 70 i 27711 </blockquote> Err codemadness.org 70 i 27712 <hr> Err codemadness.org 70 i 27713 <p>##News Roundup<br> Err codemadness.org 70 i 27714 <a href="https://nanxiao.me/en/what-you-need-may-be-pipeline-unix-commands-only/">What you need may be “pipeline +Unix commands” only</a></p> Err codemadness.org 70 i 27715 <blockquote> Err codemadness.org 70 i 27716 <p>I came across Taco Bell Programming recently, and think this article is worthy to read for every software engineer. The post mentions a scenario which you may consider to use Hadoop to solve but actually xargs may be a simpler and better choice. This reminds me a similar experience: last year a client wanted me to process a data file which has 5 million records. After some investigations, no novel technologies, a concise awk script (less than 10 lines) worked like a charm! What surprised me more is that awk is just a single-thread program, no nifty concurrency involved.<br> Err codemadness.org 70 i 27717 The IT field never lacks “new” technologies: cloud computing, big data, high concurrency, etc. However, the thinkings behind these “fancy” words may date back to the era when Unix arose. Unix command line tools are invaluable treasure. In many cases, picking the right components and using pipeline to glue them can satisfy your requirement perfectly. So spending some time in reviewing Unixcommand line manual instead of chasing state-of-the-art techniques exhaustedly, you may gain more.<br> Err codemadness.org 70 i 27718 BTW, if your data set can be disposed by an awk script, it should not be called “big data”.</p> Err codemadness.org 70 i 27719 </blockquote> Err codemadness.org 70 i 27720 <ul> Err codemadness.org 70 i 27721 <li><a href="http://widgetsandshit.com/teddziuba/2010/10/taco-bell-programming.html">Taco Bell Programming</a></li> Err codemadness.org 70 i 27722 </ul> Err codemadness.org 70 i 27723 <hr> Err codemadness.org 70 i 27724 <p>###<a href="https://bofh.org.uk/2019/02/25/baking-with-emacs/">Running a bakery on Emacs and PostgreSQL</a></p> Err codemadness.org 70 i 27725 <blockquote> Err codemadness.org 70 i 27726 <p>Just over a year ago now, I finally opened the bakery I’d been dreaming of for years. It’s been a big change in my life, from spending all my time sat in front of a computer, to spending most of it making actual stuff. And stuff that makes people happy, at that. It’s been a huge change, but I can’t think of a single job change that’s ever made me as happy as this one.<br> Err codemadness.org 70 i 27727 One of the big changes that came with going pro was that suddenly I was having to work out how much stuff I needed to mix to fill the orders I needed. On the face of it, this is really simple, just work out how much dough you need, then work out what quantities to mix to make that much dough. Easy. You can do it with a pencil and paper. Or, in traditional bakers’ fashion, by scrawling with your finger on a floured work bench.<br> Err codemadness.org 70 i 27728 And that’s how I coped for a few weeks early on. But I kept making mistakes, which makes for an inconsistent product (bread is very forgiving, you have to work quite hard to make something that isn’t bread, but consistency matters). I needed to automate.</p> Err codemadness.org 70 i 27729 </blockquote> Err codemadness.org 70 i 27730 <hr> Err codemadness.org 70 i 27731 <p>###<a href="https://medium.com/@nnja/the-ultimate-guide-to-memorable-tech-talks-e7c350778d4b">The Ultimate Guide To Memorable Tech Talks</a></p> Err codemadness.org 70 i 27732 <blockquote> Err codemadness.org 70 i 27733 <p>Imagine this. You’re a woman in a male-dominated field. English is not your first language. Even though you’re confident in your engineering work, the thought of public speaking and being recorded for the world to see absolutely terrifies you.<br> Err codemadness.org 70 i 27734 That was me, five years ago. Since then, I’ve moved into a successful career in Developer Advocacy and spoken at dozens of technical events in the U.S. and worldwide.<br> Err codemadness.org 70 i 27735 I think everyone has the ability to deliver stellar conference talks, which is why I took the time to write this post.</p> Err codemadness.org 70 i 27736 </blockquote> Err codemadness.org 70 i 27737 <ul> Err codemadness.org 70 i 27738 <li>The Ultimate Guide</li> Err codemadness.org 70 i 27739 <li>1: Introduction</li> Err codemadness.org 70 i 27740 <li>2: Choosing a Topic</li> Err codemadness.org 70 i 27741 <li>3: Writing a Conference Proposal (or CFP)</li> Err codemadness.org 70 i 27742 <li>4: Tools of the Trade</li> Err codemadness.org 70 i 27743 <li>5: Planning and Time Estimation</li> Err codemadness.org 70 i 27744 <li>6: Writing a Talk</li> Err codemadness.org 70 i 27745 <li>7: Practice and Delivery</li> Err codemadness.org 70 i 27746 </ul> Err codemadness.org 70 i 27747 <hr> Err codemadness.org 70 i 27748 <p>###<a href="https://people.mpi-sws.org/~druschel/publications/osdi16.pdf">Light-weight Contexts: An OS Abstraction for Safety and Performance (2016)</a></p> Err codemadness.org 70 i 27749 <blockquote> Err codemadness.org 70 i 27750 <p>Abstract: “We introduce a new OS abstraction—light-weight con-texts (lwCs)—that provides independent units of protection, privilege, and execution state within a process. A process may include several lwCs, each with possibly different views of memory, file descriptors, and access capabilities. lwCs can be used to efficiently implement roll-back (process can return to a prior recorded state),isolated address spaces (lwCs within the process may have different views of memory, e.g., isolating sensitive data from network-facing components or isolating different user sessions), and privilege separation (in-process reference monitors can arbitrate and control access).<br> Err codemadness.org 70 i 27751 lwCs can be implemented efficiently: the overhead of a lwC is proportional to the amount of memory exclusive to the lwC; switching lwCs is quicker than switching kernel threads within the same process. We describe the lwC abstraction and API, and an implementation of lwCs within the FreeBSD 11.0 kernel. Finally, we present an evaluation of common usage patterns, including fast roll-back, session isolation, sensitive data isolation, and in-process reference monitoring, using Apache, nginx, PHP,and OpenSSL.”</p> Err codemadness.org 70 i 27752 </blockquote> Err codemadness.org 70 i 27753 <hr> Err codemadness.org 70 i 27754 <p>##Beastie Bits</p> Err codemadness.org 70 i 27755 <ul> Err codemadness.org 70 i 27756 <li><a href="https://www.meetup.com/BSD-Users-Stockholm/events/259528492/">May 7th - BSD Users Stockholm Meetup #6 </a></li> Err codemadness.org 70 i 27757 <li><a href="https://lists.freebsd.org/pipermail/freebsd-virtualization/2019-February/007218.html">sysutils/docker-freebsd: Searching for people to help</a></li> Err codemadness.org 70 i 27758 <li><a href="https://twitter.com/midnightbsd/status/1104018684748677122">Cat Tax - Ever wonder what Midnight the cat was like?</a></li> Err codemadness.org 70 i 27759 <li><a href="https://dwheeler.com/essays/fixing-unix-linux-filenames.html">Fixing Unix/Linux/POSIX Filenames</a></li> Err codemadness.org 70 i 27760 <li><a href="https://chargen.one/h3artbl33d/metasploit-on-openbsd">Metasploit on OpenBSD</a></li> Err codemadness.org 70 i 27761 <li><a href="https://schmonz.com/2019/01/25/devopsdays-nyc-run-your-own-email-server/slides/#1">Run Your @wn Email Server! with NetBSD</a></li> Err codemadness.org 70 i 27762 <li><a href="http://johan.huldtgren.com/posts/2019/rdist">rdist(1)</a></li> Err codemadness.org 70 i 27763 <li><a href="https://joecmarshall.com/posts/book-writing-environment/">Writing a Book with Unix</a></li> Err codemadness.org 70 i 27764 <li><a href="https://neowaylabs.github.io/programming/unix-shell-for-data-scientists/">7 Unix Commands Every Data Scientist Should Know</a></li> Err codemadness.org 70 i 27765 <li><a href="https://blog.regehr.org/archives/1653">Explaining Code using ASCII Art</a></li> Err codemadness.org 70 i 27766 <li><a href="https://wiki.freebsd.org/Hackathon/201904">FreeBSD Aberdeen Hackathon</a></li> Err codemadness.org 70 i 27767 <li><a href="https://wiki.freebsd.org/Hackathon/201906">FreeBSD Vienna Hackathon</a></li> Err codemadness.org 70 i 27768 </ul> Err codemadness.org 70 i 27769 <hr> Err codemadness.org 70 i 27770 <p>##Feedback/Questions</p> Err codemadness.org 70 i 27771 <ul> Err codemadness.org 70 i 27772 <li> Err codemadness.org 70 i 27773 <p>Mike - <a href="http://dpaste.com/2405MF1#wrap">FreeBSD Update and Erased EFI files</a></p> Err codemadness.org 70 i 27774 </li> Err codemadness.org 70 i 27775 <li> Err codemadness.org 70 i 27776 <p>Charles - <a href="http://dpaste.com/2WFTXR2#wrap">Volunteer work</a></p> Err codemadness.org 70 i 27777 </li> Err codemadness.org 70 i 27778 <li> Err codemadness.org 70 i 27779 <p>Jake - <a href="http://dpaste.com/1AA6C55">Bhyve Front Ends</a></p> Err codemadness.org 70 i 27780 </li> Err codemadness.org 70 i 27781 <li> Err codemadness.org 70 i 27782 <p>We’ve hit that point where we are running low on your questions, so if you have any questions rolling around in your head that you’ve not thought of to ask yet… send them in!</p> Err codemadness.org 70 i 27783 </li> Err codemadness.org 70 i 27784 </ul> Err codemadness.org 70 i 27785 <hr> Err codemadness.org 70 i 27786 <ul> Err codemadness.org 70 i 27787 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 27788 </ul> Err codemadness.org 70 i 27789 <hr> Err codemadness.org 70 i 27790 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 27791 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0291.mp4" type="video/mp4"> Err codemadness.org 70 i 27792 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 27793 </video> Err codemadness.org 70 i 27794 Err codemadness.org 70 i 27795 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 27796 Err codemadness.org 70 i 27797 Storage changing software, what makes Unix special, what you need may be “pipeline +Unix commands”, running a bakery on Emacs and PostgreSQL, the ultimate guide to memorable tech talks, light-weight contexts, and more.

Err codemadness.org 70 i 27798 Err codemadness.org 70 i 27799

##Headlines

Err codemadness.org 70 i 27800 Err codemadness.org 70 i 27801

###Tracking a storage issue led to software change

Err codemadness.org 70 i 27802 Err codemadness.org 70 i 27803
Err codemadness.org 70 i 27804

Early last year we completed a massive migration that moved our customers’ hosting data off of a legacy datacenter (that we called FR-SD2) onto several new datacenters (that we call FR-SD3, FR-SD5, and FR-SD6) with much more modern, up-to-date infrastructure.
Err codemadness.org 70 i 27805 This migration required several changes in both the software and hardware we use, including switching the operating system on our storage units to FreeBSD.
Err codemadness.org 70 i 27806 Currently, we use the NFS protocol to provide storage and export the filesystems on Simple Hosting, our web hosting service, and the FreeBSD kernel includes an NFS server for just this purpose.

Err codemadness.org 70 i 27807
Err codemadness.org 70 i 27808 Err codemadness.org 70 i 27809
    Err codemadness.org 70 i 27810
  • Problem
  • Err codemadness.org 70 i 27811
Err codemadness.org 70 i 27812 Err codemadness.org 70 i 27813
Err codemadness.org 70 i 27814

While migrating virtual disks of Simple Hosting instances from FR-SD2, we noticed high CPU load spikes on the new storage units.

Err codemadness.org 70 i 27815
Err codemadness.org 70 i 27816 Err codemadness.org 70 i 27817


Err codemadness.org 70 i 27818 Err codemadness.org 70 i 27819

###What Makes Unix Special

Err codemadness.org 70 i 27820 Err codemadness.org 70 i 27821
Err codemadness.org 70 i 27822

Ever since Unix burst onto the scene within the early '70s, observers within the pc world have been fast to put in writing it off as a unusual working system designed by and for knowledgeable programmers. Regardless of their proclamations, Unix refuses to die. Means again in 1985, Stewart Cheifet puzzled if Unix would turn out to be the usual working system of the longer term on the PBS present “The Laptop Chronicles,” though MS-DOS was effectively in its heyday. In 2018, it is clear that Unix actually is the usual working system, not on desktop PCs, however on smartphones and tablets.

Err codemadness.org 70 i 27823
Err codemadness.org 70 i 27824 Err codemadness.org 70 i 27825
    Err codemadness.org 70 i 27826
  • What Makes Unix Special?
  • Err codemadness.org 70 i 27827
Err codemadness.org 70 i 27828 Err codemadness.org 70 i 27829
Err codemadness.org 70 i 27830

It is also the usual system for net servers. The actual fact is, hundreds of thousands of individuals all over the world have interacted with Linux and Unix programs daily, most of whom have by no means written a line of code of their lives.
Err codemadness.org 70 i 27831 So what makes Unix so beloved by programmers and different techie sorts? Let’s check out a few of issues this working system has going for it. (For some background on Unix, try The Historical past of Unix: From Bell Labs to the iPhone.)

Err codemadness.org 70 i 27832
Err codemadness.org 70 i 27833 Err codemadness.org 70 i 27834


Err codemadness.org 70 i 27835 Err codemadness.org 70 i 27836

##News Roundup
Err codemadness.org 70 i 27837 ###What you need may be “pipeline +Unix commands” only

Err codemadness.org 70 i 27838 Err codemadness.org 70 i 27839
Err codemadness.org 70 i 27840

I came across Taco Bell Programming recently, and think this article is worthy to read for every software engineer. The post mentions a scenario which you may consider to use Hadoop to solve but actually xargs may be a simpler and better choice. This reminds me a similar experience: last year a client wanted me to process a data file which has 5 million records. After some investigations, no novel technologies, a concise awk script (less than 10 lines) worked like a charm! What surprised me more is that awk is just a single-thread program, no nifty concurrency involved.
Err codemadness.org 70 i 27841 The IT field never lacks “new” technologies: cloud computing, big data, high concurrency, etc. However, the thinkings behind these “fancy” words may date back to the era when Unix arose. Unix command line tools are invaluable treasure. In many cases, picking the right components and using pipeline to glue them can satisfy your requirement perfectly. So spending some time in reviewing Unixcommand line manual instead of chasing state-of-the-art techniques exhaustedly, you may gain more.
Err codemadness.org 70 i 27842 BTW, if your data set can be disposed by an awk script, it should not be called “big data”.

Err codemadness.org 70 i 27843
Err codemadness.org 70 i 27844 Err codemadness.org 70 i 27845 Err codemadness.org 70 i 27848 Err codemadness.org 70 i 27849


Err codemadness.org 70 i 27850 Err codemadness.org 70 i 27851

###Running a bakery on Emacs and PostgreSQL

Err codemadness.org 70 i 27852 Err codemadness.org 70 i 27853
Err codemadness.org 70 i 27854

Just over a year ago now, I finally opened the bakery I’d been dreaming of for years. It’s been a big change in my life, from spending all my time sat in front of a computer, to spending most of it making actual stuff. And stuff that makes people happy, at that. It’s been a huge change, but I can’t think of a single job change that’s ever made me as happy as this one.
Err codemadness.org 70 i 27855 One of the big changes that came with going pro was that suddenly I was having to work out how much stuff I needed to mix to fill the orders I needed. On the face of it, this is really simple, just work out how much dough you need, then work out what quantities to mix to make that much dough. Easy. You can do it with a pencil and paper. Or, in traditional bakers’ fashion, by scrawling with your finger on a floured work bench.
Err codemadness.org 70 i 27856 And that’s how I coped for a few weeks early on. But I kept making mistakes, which makes for an inconsistent product (bread is very forgiving, you have to work quite hard to make something that isn’t bread, but consistency matters). I needed to automate.

Err codemadness.org 70 i 27857
Err codemadness.org 70 i 27858 Err codemadness.org 70 i 27859


Err codemadness.org 70 i 27860 Err codemadness.org 70 i 27861

###The Ultimate Guide To Memorable Tech Talks

Err codemadness.org 70 i 27862 Err codemadness.org 70 i 27863
Err codemadness.org 70 i 27864

Imagine this. You’re a woman in a male-dominated field. English is not your first language. Even though you’re confident in your engineering work, the thought of public speaking and being recorded for the world to see absolutely terrifies you.
Err codemadness.org 70 i 27865 That was me, five years ago. Since then, I’ve moved into a successful career in Developer Advocacy and spoken at dozens of technical events in the U.S. and worldwide.
Err codemadness.org 70 i 27866 I think everyone has the ability to deliver stellar conference talks, which is why I took the time to write this post.

Err codemadness.org 70 i 27867
Err codemadness.org 70 i 27868 Err codemadness.org 70 i 27869
    Err codemadness.org 70 i 27870
  • The Ultimate Guide
  • Err codemadness.org 70 i 27871
  • 1: Introduction
  • Err codemadness.org 70 i 27872
  • 2: Choosing a Topic
  • Err codemadness.org 70 i 27873
  • 3: Writing a Conference Proposal (or CFP)
  • Err codemadness.org 70 i 27874
  • 4: Tools of the Trade
  • Err codemadness.org 70 i 27875
  • 5: Planning and Time Estimation
  • Err codemadness.org 70 i 27876
  • 6: Writing a Talk
  • Err codemadness.org 70 i 27877
  • 7: Practice and Delivery
  • Err codemadness.org 70 i 27878
Err codemadness.org 70 i 27879 Err codemadness.org 70 i 27880


Err codemadness.org 70 i 27881 Err codemadness.org 70 i 27882

###Light-weight Contexts: An OS Abstraction for Safety and Performance (2016)

Err codemadness.org 70 i 27883 Err codemadness.org 70 i 27884
Err codemadness.org 70 i 27885

Abstract: “We introduce a new OS abstraction—light-weight con-texts (lwCs)—that provides independent units of protection, privilege, and execution state within a process. A process may include several lwCs, each with possibly different views of memory, file descriptors, and access capabilities. lwCs can be used to efficiently implement roll-back (process can return to a prior recorded state),isolated address spaces (lwCs within the process may have different views of memory, e.g., isolating sensitive data from network-facing components or isolating different user sessions), and privilege separation (in-process reference monitors can arbitrate and control access).
Err codemadness.org 70 i 27886 lwCs can be implemented efficiently: the overhead of a lwC is proportional to the amount of memory exclusive to the lwC; switching lwCs is quicker than switching kernel threads within the same process. We describe the lwC abstraction and API, and an implementation of lwCs within the FreeBSD 11.0 kernel. Finally, we present an evaluation of common usage patterns, including fast roll-back, session isolation, sensitive data isolation, and in-process reference monitoring, using Apache, nginx, PHP,and OpenSSL.”

Err codemadness.org 70 i 27887
Err codemadness.org 70 i 27888 Err codemadness.org 70 i 27889


Err codemadness.org 70 i 27890 Err codemadness.org 70 i 27891

##Beastie Bits

Err codemadness.org 70 i 27892 Err codemadness.org 70 i 27893 Err codemadness.org 70 i 27907 Err codemadness.org 70 i 27908


Err codemadness.org 70 i 27909 Err codemadness.org 70 i 27910

##Feedback/Questions

Err codemadness.org 70 i 27911 Err codemadness.org 70 i 27912
    Err codemadness.org 70 i 27913
  • Err codemadness.org 70 i 27914

    Mike - FreeBSD Update and Erased EFI files

    Err codemadness.org 70 i 27915
  • Err codemadness.org 70 i 27916
  • Err codemadness.org 70 i 27917

    Charles - Volunteer work

    Err codemadness.org 70 i 27918
  • Err codemadness.org 70 i 27919
  • Err codemadness.org 70 i 27920

    Jake - Bhyve Front Ends

    Err codemadness.org 70 i 27921
  • Err codemadness.org 70 i 27922
  • Err codemadness.org 70 i 27923

    We’ve hit that point where we are running low on your questions, so if you have any questions rolling around in your head that you’ve not thought of to ask yet… send them in!

    Err codemadness.org 70 i 27924
  • Err codemadness.org 70 i 27925
Err codemadness.org 70 i 27926 Err codemadness.org 70 i 27927


Err codemadness.org 70 i 27928 Err codemadness.org 70 i 27929
    Err codemadness.org 70 i 27930
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 27931
Err codemadness.org 70 i 27932 Err codemadness.org 70 i 27933


Err codemadness.org 70 i 27934 Err codemadness.org 70 i 27935 ]]> Err codemadness.org 70 i 27939
Err codemadness.org 70 i 27940 Err codemadness.org 70 i 27941 Storage changing software, what makes Unix special, what you need may be “pipeline +Unix commands”, running a bakery on Emacs and PostgreSQL, the ultimate guide to memorable tech talks, light-weight contexts, and more.

Err codemadness.org 70 i 27942 Err codemadness.org 70 i 27943

##Headlines

Err codemadness.org 70 i 27944 Err codemadness.org 70 i 27945

###Tracking a storage issue led to software change

Err codemadness.org 70 i 27946 Err codemadness.org 70 i 27947
Err codemadness.org 70 i 27948

Early last year we completed a massive migration that moved our customers’ hosting data off of a legacy datacenter (that we called FR-SD2) onto several new datacenters (that we call FR-SD3, FR-SD5, and FR-SD6) with much more modern, up-to-date infrastructure.
Err codemadness.org 70 i 27949 This migration required several changes in both the software and hardware we use, including switching the operating system on our storage units to FreeBSD.
Err codemadness.org 70 i 27950 Currently, we use the NFS protocol to provide storage and export the filesystems on Simple Hosting, our web hosting service, and the FreeBSD kernel includes an NFS server for just this purpose.

Err codemadness.org 70 i 27951
Err codemadness.org 70 i 27952 Err codemadness.org 70 i 27953
    Err codemadness.org 70 i 27954
  • Problem
  • Err codemadness.org 70 i 27955
Err codemadness.org 70 i 27956 Err codemadness.org 70 i 27957
Err codemadness.org 70 i 27958

While migrating virtual disks of Simple Hosting instances from FR-SD2, we noticed high CPU load spikes on the new storage units.

Err codemadness.org 70 i 27959
Err codemadness.org 70 i 27960 Err codemadness.org 70 i 27961


Err codemadness.org 70 i 27962 Err codemadness.org 70 i 27963

###What Makes Unix Special

Err codemadness.org 70 i 27964 Err codemadness.org 70 i 27965
Err codemadness.org 70 i 27966

Ever since Unix burst onto the scene within the early '70s, observers within the pc world have been fast to put in writing it off as a unusual working system designed by and for knowledgeable programmers. Regardless of their proclamations, Unix refuses to die. Means again in 1985, Stewart Cheifet puzzled if Unix would turn out to be the usual working system of the longer term on the PBS present “The Laptop Chronicles,” though MS-DOS was effectively in its heyday. In 2018, it is clear that Unix actually is the usual working system, not on desktop PCs, however on smartphones and tablets.

Err codemadness.org 70 i 27967
Err codemadness.org 70 i 27968 Err codemadness.org 70 i 27969
    Err codemadness.org 70 i 27970
  • What Makes Unix Special?
  • Err codemadness.org 70 i 27971
Err codemadness.org 70 i 27972 Err codemadness.org 70 i 27973
Err codemadness.org 70 i 27974

It is also the usual system for net servers. The actual fact is, hundreds of thousands of individuals all over the world have interacted with Linux and Unix programs daily, most of whom have by no means written a line of code of their lives.
Err codemadness.org 70 i 27975 So what makes Unix so beloved by programmers and different techie sorts? Let’s check out a few of issues this working system has going for it. (For some background on Unix, try The Historical past of Unix: From Bell Labs to the iPhone.)

Err codemadness.org 70 i 27976
Err codemadness.org 70 i 27977 Err codemadness.org 70 i 27978


Err codemadness.org 70 i 27979 Err codemadness.org 70 i 27980

##News Roundup
Err codemadness.org 70 i 27981 ###What you need may be “pipeline +Unix commands” only

Err codemadness.org 70 i 27982 Err codemadness.org 70 i 27983
Err codemadness.org 70 i 27984

I came across Taco Bell Programming recently, and think this article is worthy to read for every software engineer. The post mentions a scenario which you may consider to use Hadoop to solve but actually xargs may be a simpler and better choice. This reminds me a similar experience: last year a client wanted me to process a data file which has 5 million records. After some investigations, no novel technologies, a concise awk script (less than 10 lines) worked like a charm! What surprised me more is that awk is just a single-thread program, no nifty concurrency involved.
Err codemadness.org 70 i 27985 The IT field never lacks “new” technologies: cloud computing, big data, high concurrency, etc. However, the thinkings behind these “fancy” words may date back to the era when Unix arose. Unix command line tools are invaluable treasure. In many cases, picking the right components and using pipeline to glue them can satisfy your requirement perfectly. So spending some time in reviewing Unixcommand line manual instead of chasing state-of-the-art techniques exhaustedly, you may gain more.
Err codemadness.org 70 i 27986 BTW, if your data set can be disposed by an awk script, it should not be called “big data”.

Err codemadness.org 70 i 27987
Err codemadness.org 70 i 27988 Err codemadness.org 70 i 27989 Err codemadness.org 70 i 27992 Err codemadness.org 70 i 27993


Err codemadness.org 70 i 27994 Err codemadness.org 70 i 27995

###Running a bakery on Emacs and PostgreSQL

Err codemadness.org 70 i 27996 Err codemadness.org 70 i 27997
Err codemadness.org 70 i 27998

Just over a year ago now, I finally opened the bakery I’d been dreaming of for years. It’s been a big change in my life, from spending all my time sat in front of a computer, to spending most of it making actual stuff. And stuff that makes people happy, at that. It’s been a huge change, but I can’t think of a single job change that’s ever made me as happy as this one.
Err codemadness.org 70 i 27999 One of the big changes that came with going pro was that suddenly I was having to work out how much stuff I needed to mix to fill the orders I needed. On the face of it, this is really simple, just work out how much dough you need, then work out what quantities to mix to make that much dough. Easy. You can do it with a pencil and paper. Or, in traditional bakers’ fashion, by scrawling with your finger on a floured work bench.
Err codemadness.org 70 i 28000 And that’s how I coped for a few weeks early on. But I kept making mistakes, which makes for an inconsistent product (bread is very forgiving, you have to work quite hard to make something that isn’t bread, but consistency matters). I needed to automate.

Err codemadness.org 70 i 28001
Err codemadness.org 70 i 28002 Err codemadness.org 70 i 28003


Err codemadness.org 70 i 28004 Err codemadness.org 70 i 28005

###The Ultimate Guide To Memorable Tech Talks

Err codemadness.org 70 i 28006 Err codemadness.org 70 i 28007
Err codemadness.org 70 i 28008

Imagine this. You’re a woman in a male-dominated field. English is not your first language. Even though you’re confident in your engineering work, the thought of public speaking and being recorded for the world to see absolutely terrifies you.
Err codemadness.org 70 i 28009 That was me, five years ago. Since then, I’ve moved into a successful career in Developer Advocacy and spoken at dozens of technical events in the U.S. and worldwide.
Err codemadness.org 70 i 28010 I think everyone has the ability to deliver stellar conference talks, which is why I took the time to write this post.

Err codemadness.org 70 i 28011
Err codemadness.org 70 i 28012 Err codemadness.org 70 i 28013
    Err codemadness.org 70 i 28014
  • The Ultimate Guide
  • Err codemadness.org 70 i 28015
  • 1: Introduction
  • Err codemadness.org 70 i 28016
  • 2: Choosing a Topic
  • Err codemadness.org 70 i 28017
  • 3: Writing a Conference Proposal (or CFP)
  • Err codemadness.org 70 i 28018
  • 4: Tools of the Trade
  • Err codemadness.org 70 i 28019
  • 5: Planning and Time Estimation
  • Err codemadness.org 70 i 28020
  • 6: Writing a Talk
  • Err codemadness.org 70 i 28021
  • 7: Practice and Delivery
  • Err codemadness.org 70 i 28022
Err codemadness.org 70 i 28023 Err codemadness.org 70 i 28024


Err codemadness.org 70 i 28025 Err codemadness.org 70 i 28026

###Light-weight Contexts: An OS Abstraction for Safety and Performance (2016)

Err codemadness.org 70 i 28027 Err codemadness.org 70 i 28028
Err codemadness.org 70 i 28029

Abstract: “We introduce a new OS abstraction—light-weight con-texts (lwCs)—that provides independent units of protection, privilege, and execution state within a process. A process may include several lwCs, each with possibly different views of memory, file descriptors, and access capabilities. lwCs can be used to efficiently implement roll-back (process can return to a prior recorded state),isolated address spaces (lwCs within the process may have different views of memory, e.g., isolating sensitive data from network-facing components or isolating different user sessions), and privilege separation (in-process reference monitors can arbitrate and control access).
Err codemadness.org 70 i 28030 lwCs can be implemented efficiently: the overhead of a lwC is proportional to the amount of memory exclusive to the lwC; switching lwCs is quicker than switching kernel threads within the same process. We describe the lwC abstraction and API, and an implementation of lwCs within the FreeBSD 11.0 kernel. Finally, we present an evaluation of common usage patterns, including fast roll-back, session isolation, sensitive data isolation, and in-process reference monitoring, using Apache, nginx, PHP,and OpenSSL.”

Err codemadness.org 70 i 28031
Err codemadness.org 70 i 28032 Err codemadness.org 70 i 28033


Err codemadness.org 70 i 28034 Err codemadness.org 70 i 28035

##Beastie Bits

Err codemadness.org 70 i 28036 Err codemadness.org 70 i 28037 Err codemadness.org 70 i 28051 Err codemadness.org 70 i 28052


Err codemadness.org 70 i 28053 Err codemadness.org 70 i 28054

##Feedback/Questions

Err codemadness.org 70 i 28055 Err codemadness.org 70 i 28056
    Err codemadness.org 70 i 28057
  • Err codemadness.org 70 i 28058

    Mike - FreeBSD Update and Erased EFI files

    Err codemadness.org 70 i 28059
  • Err codemadness.org 70 i 28060
  • Err codemadness.org 70 i 28061

    Charles - Volunteer work

    Err codemadness.org 70 i 28062
  • Err codemadness.org 70 i 28063
  • Err codemadness.org 70 i 28064

    Jake - Bhyve Front Ends

    Err codemadness.org 70 i 28065
  • Err codemadness.org 70 i 28066
  • Err codemadness.org 70 i 28067

    We’ve hit that point where we are running low on your questions, so if you have any questions rolling around in your head that you’ve not thought of to ask yet… send them in!

    Err codemadness.org 70 i 28068
  • Err codemadness.org 70 i 28069
Err codemadness.org 70 i 28070 Err codemadness.org 70 i 28071


Err codemadness.org 70 i 28072 Err codemadness.org 70 i 28073
    Err codemadness.org 70 i 28074
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 28075
Err codemadness.org 70 i 28076 Err codemadness.org 70 i 28077


Err codemadness.org 70 i 28078 Err codemadness.org 70 i 28079 ]]> Err codemadness.org 70 i 28083
Err codemadness.org 70 i 28084 https://fireside.fm/player/v2/FYhhasNR+2Jmcr5Mf Err codemadness.org 70 i 28085 Err codemadness.org 70 i 28086 ]]> Err codemadness.org 70 i 28087 Err codemadness.org 70 i 28088
Err codemadness.org 70 i 28089 Err codemadness.org 70 i 28090 290: Timestamped Notes Err codemadness.org 70 i 28091 https://www.bsdnow.tv/290 Err codemadness.org 70 i 28092 75bc6dda-ec5d-45fe-adf3-2afde9a7f099 Err codemadness.org 70 i 28093 Thu, 21 Mar 2019 07:00:00 -0700 Err codemadness.org 70 i 28094 Allan Jude Err codemadness.org 70 i 28095 Err codemadness.org 70 i 28096 full Err codemadness.org 70 i 28097 Allan Jude Err codemadness.org 70 i 28098 FreeBSD on Cavium ThunderX, looking at NetBSD as an OpenBSD user, taking time-stamped notes in vim, OpenBSD 6.5 has been tagged, FreeBSD and NetBSD in GSoC 2019, SecBSD: an UNIX-like OS for Hackers, and more. Err codemadness.org 70 i 28099 50:01 Err codemadness.org 70 i 28100 no Err codemadness.org 70 i 28101 Err codemadness.org 70 i 28102 FreeBSD on Cavium ThunderX, looking at NetBSD as an OpenBSD user, taking time-stamped notes in vim, OpenBSD 6.5 has been tagged, FreeBSD and NetBSD in GSoC 2019, SecBSD: an UNIX-like OS for Hackers, and more. Err codemadness.org 70 i 28103 <p>##Headlines<br> Err codemadness.org 70 i 28104 ###<a href="https://eerielinux.wordpress.com/2019/02/25/armd-and-dangerous-freebsd-on-cavium-thunderx-aarch64/">ARM’d and dangerous: FreeBSD on Cavium ThunderX (aarch64)</a></p> Err codemadness.org 70 i 28105 <blockquote> Err codemadness.org 70 i 28106 <p>While I don’t remember for how many years I’ve had an interest in CPU architectures that could be an alternative to AMD64, I know pretty well when I started proposing to test 64-bit ARM at work. It was shortly after the disaster named Spectre / Meltdown that I first dug out server-class ARM hardware and asked whether we should get one such server and run some tests with it.<br> Err codemadness.org 70 i 28107 While the answer wasn’t a clear “no” it also wasn’t exactly “yes”. I tried again a few times over the course of 2018 and each time I presented some more points why I thought it might be a good thing to test this. But still I wasn’t able to get a positive answer. Finally in January 2019 year I got a definitive answer – and it was “yes, go ahead”! The fact that Amazon had just presented their Graviton ARM Processor may have helped the decision.</p> Err codemadness.org 70 i 28108 </blockquote> Err codemadness.org 70 i 28109 <hr> Err codemadness.org 70 i 28110 <p>###<a href="https://www.tumfatig.net/20190301/looking-at-netbsd-from-an-openbsd-user-perspective/">Looking at NetBSD from an OpenBSD user perspective</a></p> Err codemadness.org 70 i 28111 <blockquote> Err codemadness.org 70 i 28112 <p>I use to use NetBSD quite a lot. From 2.0 to 6.99. But for some reasons, I stopped using it about 2012, in favor of OpenBSD. Reading on the new 8 release, I wanted to see if all the things I didn’t like on NetBSD were gone. Here is a personal Pros / Cons list. No Troll, hopefully. Just trying to be objective.</p> Err codemadness.org 70 i 28113 </blockquote> Err codemadness.org 70 i 28114 <ul> Err codemadness.org 70 i 28115 <li>What I liked (pros)</li> Err codemadness.org 70 i 28116 <li>Things I didn’t like (cons)</li> Err codemadness.org 70 i 28117 <li>Conclusion</li> Err codemadness.org 70 i 28118 </ul> Err codemadness.org 70 i 28119 <blockquote> Err codemadness.org 70 i 28120 <p>So that was it. I didn’t spend more than 30 minutes of it. But I didn’t want to spend more time on it. I did stop using NetBSD because of the need to compile each and every packages ; it was in the early days of pkgin. I also didn’t like the way system maintenance was to be done. OpenBSD’s 6-months release seemed far more easy to manage. I still think NetBSD is a great OS. But I believe you have to spent more time on it than you would have to do with OpenBSD.<br> Err codemadness.org 70 i 28121 That said, I’ll keep using my Puffy OS.</p> Err codemadness.org 70 i 28122 </blockquote> Err codemadness.org 70 i 28123 <hr> Err codemadness.org 70 i 28124 <p>##News Roundup<br> Err codemadness.org 70 i 28125 <a href="https://www.codesections.com/blog/vim-timestamped/">Using Vim to take time-stamped notes</a></p> Err codemadness.org 70 i 28126 <blockquote> Err codemadness.org 70 i 28127 <p>I frequently find myself needing to take time-stamped notes. Specifically, I’ll be in a call, meeting, or interview and need to take notes that show how long it’s been since the meeting started.<br> Err codemadness.org 70 i 28128 My first thought was that there’s be a plugin to add time stamps, but a quick search didn’t turn anything up. However, I little digging did turn up the fact that vim has the built-in ability to tell time.<br> Err codemadness.org 70 i 28129 This means that writing a bit of vimscript to insert a time stamp is pretty easy. After a bit of fiddling, I came up with something that serves my needs, and I decided it might be useful enough to others to be worth sharing.</p> Err codemadness.org 70 i 28130 </blockquote> Err codemadness.org 70 i 28131 <ul> Err codemadness.org 70 i 28132 <li><a href="https://github.com/bsdjhb/meetings">John Baldwin’s notes on bhyve meetings</a></li> Err codemadness.org 70 i 28133 </ul> Err codemadness.org 70 i 28134 <hr> Err codemadness.org 70 i 28135 <p>###<a href="https://www.undeadly.org/cgi?action=article;sid=20190228062751">OpenBSD 6.5-beta has been tagged</a></p> Err codemadness.org 70 i 28136 <blockquote> Err codemadness.org 70 i 28137 <p>It’s that time of year again; Theo (deraadt@) has just tagged 6.5-beta. A good reminder for us all run an extra test install and see if your favorite port still works as you expect.</p> Err codemadness.org 70 i 28138 </blockquote> Err codemadness.org 70 i 28139 <p><code>CVSROOT: /cvs</code><br> Err codemadness.org 70 i 28140 <code>Module name: src</code><br> Err codemadness.org 70 i 28141 <code>Changes by: deraadt@cvs.openbsd.org 2019/02/26 15:24:41</code><br> Err codemadness.org 70 i 28142 <code></code><br> Err codemadness.org 70 i 28143 <code>Modified files:</code><br> Err codemadness.org 70 i 28144 <code>etc/root : root.mail</code><br> Err codemadness.org 70 i 28145 <code>share/mk : sys.mk</code><br> Err codemadness.org 70 i 28146 <code>sys/conf : newvers.sh</code><br> Err codemadness.org 70 i 28147 <code>sys/sys : ktrace.h param.h</code><br> Err codemadness.org 70 i 28148 <code>usr.bin/signify: signify.1</code><br> Err codemadness.org 70 i 28149 <code>sys/arch/macppc/stand/tbxidata: bsd.tbxi</code><br> Err codemadness.org 70 i 28150 <code></code><br> Err codemadness.org 70 i 28151 <code>Log message:</code><br> Err codemadness.org 70 i 28152 <code>crank to 6.5-beta</code><br> Err codemadness.org 70 i 28153 <code></code></p> Err codemadness.org 70 i 28154 <hr> Err codemadness.org 70 i 28155 <p>###<a href="https://blog.netbsd.org/tnf/entry/the_netbsd_foundation_participating_in">The NetBSD Foundation participating in Google Summer of Code 2019</a></p> Err codemadness.org 70 i 28156 <blockquote> Err codemadness.org 70 i 28157 <p>For the 4th year in a row and for the 13th time The NetBSD Foundation will participate in Google Summer of Code 2019!<br> Err codemadness.org 70 i 28158 If you are a student and would like to learn more about Google Summer of Code please go to the Google Summer of Code homepage.<br> Err codemadness.org 70 i 28159 You can find a list of projects in Google Summer of Code project proposals in the wiki.<br> Err codemadness.org 70 i 28160 Do not hesitate to get in touch with us via #netbsd-code IRC channel on Freenode and via NetBSD mailing lists!</p> Err codemadness.org 70 i 28161 </blockquote> Err codemadness.org 70 i 28162 <hr> Err codemadness.org 70 i 28163 <p>###<a href="https://discoverbsd.com/p/d83c2c66dc">SecBSD: an UNIX-like OS for Hackers</a></p> Err codemadness.org 70 i 28164 <blockquote> Err codemadness.org 70 i 28165 <p>SecBSD is an UNIX-like operating system focused on computer security based on OpenBSD. Designed for security testing, hacking and vulnerability assessment, it uses full disk encryption and ProtonVPN + OpenVPN by default.<br> Err codemadness.org 70 i 28166 A security BSD enviroment for security researchers, penetration testers, bug hunters and cybersecurity experts. Developed by Dark Intelligence Team for private use and will be public release coming soon.</p> Err codemadness.org 70 i 28167 </blockquote> Err codemadness.org 70 i 28168 <hr> Err codemadness.org 70 i 28169 <p>##Beastie Bits</p> Err codemadness.org 70 i 28170 <ul> Err codemadness.org 70 i 28171 <li><a href="https://why-openbsd.rocks/fact/">Why OpenBSD Rocks</a></li> Err codemadness.org 70 i 28172 <li><a href="http://www.etalabs.net/sh_tricks.html">Rich’s sh (POSIX shell) tricks</a></li> Err codemadness.org 70 i 28173 <li><a href="https://opensource.com/article/19/2/drinking-coffee-awk">Drinking coffee with AWK</a></li> Err codemadness.org 70 i 28174 <li><a href="https://github.com/AMEE/8XX-rfc">Civilisational HTTP Error Codes</a></li> Err codemadness.org 70 i 28175 <li><a href="https://www.midnightbsd.org/news/">MidnightBSD Roadmap</a></li> Err codemadness.org 70 i 28176 <li><a href="https://gist.github.com/murachue/531ed3ca201ab4155d22442272d92ed2#file-201902140007-txt">NetBSD on Nintendo64</a></li> Err codemadness.org 70 i 28177 <li><a href="https://nullprogram.com/blog/2018/09/20/">From Vimperator to Tridactyl</a></li> Err codemadness.org 70 i 28178 </ul> Err codemadness.org 70 i 28179 <hr> Err codemadness.org 70 i 28180 <p>##Feedback/Questions</p> Err codemadness.org 70 i 28181 <ul> Err codemadness.org 70 i 28182 <li>Russell - <a href="http://dpaste.com/3QRYM70#wrap">BSD Now Question :: ZFS &amp; FreeNAS</a></li> Err codemadness.org 70 i 28183 <li>Alan - <a href="http://dpaste.com/1KQZPN6">Tutorial, install ARM *BSD with no other BSD box pls</a></li> Err codemadness.org 70 i 28184 <li>Johnny - <a href="http://dpaste.com/2ZKRC2A">New section to add to the show</a></li> Err codemadness.org 70 i 28185 </ul> Err codemadness.org 70 i 28186 <hr> Err codemadness.org 70 i 28187 <ul> Err codemadness.org 70 i 28188 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 28189 </ul> Err codemadness.org 70 i 28190 <hr> Err codemadness.org 70 i 28191 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 28192 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0290.mp4" type="video/mp4"> Err codemadness.org 70 i 28193 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 28194 </video> Err codemadness.org 70 i 28195 Err codemadness.org 70 i 28196 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 28197 Err codemadness.org 70 i 28198 FreeBSD on Cavium ThunderX, looking at NetBSD as an OpenBSD user, taking time-stamped notes in vim, OpenBSD 6.5 has been tagged, FreeBSD and NetBSD in GSoC 2019, SecBSD: an UNIX-like OS for Hackers, and more.

Err codemadness.org 70 i 28199 Err codemadness.org 70 i 28200

##Headlines
Err codemadness.org 70 i 28201 ###ARM’d and dangerous: FreeBSD on Cavium ThunderX (aarch64)

Err codemadness.org 70 i 28202 Err codemadness.org 70 i 28203
Err codemadness.org 70 i 28204

While I don’t remember for how many years I’ve had an interest in CPU architectures that could be an alternative to AMD64, I know pretty well when I started proposing to test 64-bit ARM at work. It was shortly after the disaster named Spectre / Meltdown that I first dug out server-class ARM hardware and asked whether we should get one such server and run some tests with it.
Err codemadness.org 70 i 28205 While the answer wasn’t a clear “no” it also wasn’t exactly “yes”. I tried again a few times over the course of 2018 and each time I presented some more points why I thought it might be a good thing to test this. But still I wasn’t able to get a positive answer. Finally in January 2019 year I got a definitive answer – and it was “yes, go ahead”! The fact that Amazon had just presented their Graviton ARM Processor may have helped the decision.

Err codemadness.org 70 i 28206
Err codemadness.org 70 i 28207 Err codemadness.org 70 i 28208


Err codemadness.org 70 i 28209 Err codemadness.org 70 i 28210

###Looking at NetBSD from an OpenBSD user perspective

Err codemadness.org 70 i 28211 Err codemadness.org 70 i 28212
Err codemadness.org 70 i 28213

I use to use NetBSD quite a lot. From 2.0 to 6.99. But for some reasons, I stopped using it about 2012, in favor of OpenBSD. Reading on the new 8 release, I wanted to see if all the things I didn’t like on NetBSD were gone. Here is a personal Pros / Cons list. No Troll, hopefully. Just trying to be objective.

Err codemadness.org 70 i 28214
Err codemadness.org 70 i 28215 Err codemadness.org 70 i 28216
    Err codemadness.org 70 i 28217
  • What I liked (pros)
  • Err codemadness.org 70 i 28218
  • Things I didn’t like (cons)
  • Err codemadness.org 70 i 28219
  • Conclusion
  • Err codemadness.org 70 i 28220
Err codemadness.org 70 i 28221 Err codemadness.org 70 i 28222
Err codemadness.org 70 i 28223

So that was it. I didn’t spend more than 30 minutes of it. But I didn’t want to spend more time on it. I did stop using NetBSD because of the need to compile each and every packages ; it was in the early days of pkgin. I also didn’t like the way system maintenance was to be done. OpenBSD’s 6-months release seemed far more easy to manage. I still think NetBSD is a great OS. But I believe you have to spent more time on it than you would have to do with OpenBSD.
Err codemadness.org 70 i 28224 That said, I’ll keep using my Puffy OS.

Err codemadness.org 70 i 28225
Err codemadness.org 70 i 28226 Err codemadness.org 70 i 28227


Err codemadness.org 70 i 28228 Err codemadness.org 70 i 28229

##News Roundup
Err codemadness.org 70 i 28230 ###Using Vim to take time-stamped notes

Err codemadness.org 70 i 28231 Err codemadness.org 70 i 28232
Err codemadness.org 70 i 28233

I frequently find myself needing to take time-stamped notes. Specifically, I’ll be in a call, meeting, or interview and need to take notes that show how long it’s been since the meeting started.
Err codemadness.org 70 i 28234 My first thought was that there’s be a plugin to add time stamps, but a quick search didn’t turn anything up. However, I little digging did turn up the fact that vim has the built-in ability to tell time.
Err codemadness.org 70 i 28235 This means that writing a bit of vimscript to insert a time stamp is pretty easy. After a bit of fiddling, I came up with something that serves my needs, and I decided it might be useful enough to others to be worth sharing.

Err codemadness.org 70 i 28236
Err codemadness.org 70 i 28237 Err codemadness.org 70 i 28238 Err codemadness.org 70 i 28241 Err codemadness.org 70 i 28242


Err codemadness.org 70 i 28243 Err codemadness.org 70 i 28244

###OpenBSD 6.5-beta has been tagged

Err codemadness.org 70 i 28245 Err codemadness.org 70 i 28246
Err codemadness.org 70 i 28247

It’s that time of year again; Theo (deraadt@) has just tagged 6.5-beta. A good reminder for us all run an extra test install and see if your favorite port still works as you expect.

Err codemadness.org 70 i 28248
Err codemadness.org 70 i 28249 Err codemadness.org 70 i 28250

CVSROOT: /cvs
Err codemadness.org 70 i 28251 Module name: src
Err codemadness.org 70 i 28252 Changes by: deraadt@cvs.openbsd.org 2019/02/26 15:24:41
Err codemadness.org 70 i 28253
Err codemadness.org 70 i 28254 Modified files:
Err codemadness.org 70 i 28255 etc/root : root.mail
Err codemadness.org 70 i 28256 share/mk : sys.mk
Err codemadness.org 70 i 28257 sys/conf : newvers.sh
Err codemadness.org 70 i 28258 sys/sys : ktrace.h param.h
Err codemadness.org 70 i 28259 usr.bin/signify: signify.1
Err codemadness.org 70 i 28260 sys/arch/macppc/stand/tbxidata: bsd.tbxi
Err codemadness.org 70 i 28261
Err codemadness.org 70 i 28262 Log message:
Err codemadness.org 70 i 28263 crank to 6.5-beta
Err codemadness.org 70 i 28264

Err codemadness.org 70 i 28265 Err codemadness.org 70 i 28266


Err codemadness.org 70 i 28267 Err codemadness.org 70 i 28268

###The NetBSD Foundation participating in Google Summer of Code 2019

Err codemadness.org 70 i 28269 Err codemadness.org 70 i 28270
Err codemadness.org 70 i 28271

For the 4th year in a row and for the 13th time The NetBSD Foundation will participate in Google Summer of Code 2019!
Err codemadness.org 70 i 28272 If you are a student and would like to learn more about Google Summer of Code please go to the Google Summer of Code homepage.
Err codemadness.org 70 i 28273 You can find a list of projects in Google Summer of Code project proposals in the wiki.
Err codemadness.org 70 i 28274 Do not hesitate to get in touch with us via #netbsd-code IRC channel on Freenode and via NetBSD mailing lists!

Err codemadness.org 70 i 28275
Err codemadness.org 70 i 28276 Err codemadness.org 70 i 28277


Err codemadness.org 70 i 28278 Err codemadness.org 70 i 28279

###SecBSD: an UNIX-like OS for Hackers

Err codemadness.org 70 i 28280 Err codemadness.org 70 i 28281
Err codemadness.org 70 i 28282

SecBSD is an UNIX-like operating system focused on computer security based on OpenBSD. Designed for security testing, hacking and vulnerability assessment, it uses full disk encryption and ProtonVPN + OpenVPN by default.
Err codemadness.org 70 i 28283 A security BSD enviroment for security researchers, penetration testers, bug hunters and cybersecurity experts. Developed by Dark Intelligence Team for private use and will be public release coming soon.

Err codemadness.org 70 i 28284
Err codemadness.org 70 i 28285 Err codemadness.org 70 i 28286


Err codemadness.org 70 i 28287 Err codemadness.org 70 i 28288

##Beastie Bits

Err codemadness.org 70 i 28289 Err codemadness.org 70 i 28290 Err codemadness.org 70 i 28299 Err codemadness.org 70 i 28300


Err codemadness.org 70 i 28301 Err codemadness.org 70 i 28302

##Feedback/Questions

Err codemadness.org 70 i 28303 Err codemadness.org 70 i 28304 Err codemadness.org 70 i 28309 Err codemadness.org 70 i 28310


Err codemadness.org 70 i 28311 Err codemadness.org 70 i 28312
    Err codemadness.org 70 i 28313
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 28314
Err codemadness.org 70 i 28315 Err codemadness.org 70 i 28316


Err codemadness.org 70 i 28317 Err codemadness.org 70 i 28318 ]]> Err codemadness.org 70 i 28322
Err codemadness.org 70 i 28323 Err codemadness.org 70 i 28324 FreeBSD on Cavium ThunderX, looking at NetBSD as an OpenBSD user, taking time-stamped notes in vim, OpenBSD 6.5 has been tagged, FreeBSD and NetBSD in GSoC 2019, SecBSD: an UNIX-like OS for Hackers, and more.

Err codemadness.org 70 i 28325 Err codemadness.org 70 i 28326

##Headlines
Err codemadness.org 70 i 28327 ###ARM’d and dangerous: FreeBSD on Cavium ThunderX (aarch64)

Err codemadness.org 70 i 28328 Err codemadness.org 70 i 28329
Err codemadness.org 70 i 28330

While I don’t remember for how many years I’ve had an interest in CPU architectures that could be an alternative to AMD64, I know pretty well when I started proposing to test 64-bit ARM at work. It was shortly after the disaster named Spectre / Meltdown that I first dug out server-class ARM hardware and asked whether we should get one such server and run some tests with it.
Err codemadness.org 70 i 28331 While the answer wasn’t a clear “no” it also wasn’t exactly “yes”. I tried again a few times over the course of 2018 and each time I presented some more points why I thought it might be a good thing to test this. But still I wasn’t able to get a positive answer. Finally in January 2019 year I got a definitive answer – and it was “yes, go ahead”! The fact that Amazon had just presented their Graviton ARM Processor may have helped the decision.

Err codemadness.org 70 i 28332
Err codemadness.org 70 i 28333 Err codemadness.org 70 i 28334


Err codemadness.org 70 i 28335 Err codemadness.org 70 i 28336

###Looking at NetBSD from an OpenBSD user perspective

Err codemadness.org 70 i 28337 Err codemadness.org 70 i 28338
Err codemadness.org 70 i 28339

I use to use NetBSD quite a lot. From 2.0 to 6.99. But for some reasons, I stopped using it about 2012, in favor of OpenBSD. Reading on the new 8 release, I wanted to see if all the things I didn’t like on NetBSD were gone. Here is a personal Pros / Cons list. No Troll, hopefully. Just trying to be objective.

Err codemadness.org 70 i 28340
Err codemadness.org 70 i 28341 Err codemadness.org 70 i 28342
    Err codemadness.org 70 i 28343
  • What I liked (pros)
  • Err codemadness.org 70 i 28344
  • Things I didn’t like (cons)
  • Err codemadness.org 70 i 28345
  • Conclusion
  • Err codemadness.org 70 i 28346
Err codemadness.org 70 i 28347 Err codemadness.org 70 i 28348
Err codemadness.org 70 i 28349

So that was it. I didn’t spend more than 30 minutes of it. But I didn’t want to spend more time on it. I did stop using NetBSD because of the need to compile each and every packages ; it was in the early days of pkgin. I also didn’t like the way system maintenance was to be done. OpenBSD’s 6-months release seemed far more easy to manage. I still think NetBSD is a great OS. But I believe you have to spent more time on it than you would have to do with OpenBSD.
Err codemadness.org 70 i 28350 That said, I’ll keep using my Puffy OS.

Err codemadness.org 70 i 28351
Err codemadness.org 70 i 28352 Err codemadness.org 70 i 28353


Err codemadness.org 70 i 28354 Err codemadness.org 70 i 28355

##News Roundup
Err codemadness.org 70 i 28356 ###Using Vim to take time-stamped notes

Err codemadness.org 70 i 28357 Err codemadness.org 70 i 28358
Err codemadness.org 70 i 28359

I frequently find myself needing to take time-stamped notes. Specifically, I’ll be in a call, meeting, or interview and need to take notes that show how long it’s been since the meeting started.
Err codemadness.org 70 i 28360 My first thought was that there’s be a plugin to add time stamps, but a quick search didn’t turn anything up. However, I little digging did turn up the fact that vim has the built-in ability to tell time.
Err codemadness.org 70 i 28361 This means that writing a bit of vimscript to insert a time stamp is pretty easy. After a bit of fiddling, I came up with something that serves my needs, and I decided it might be useful enough to others to be worth sharing.

Err codemadness.org 70 i 28362
Err codemadness.org 70 i 28363 Err codemadness.org 70 i 28364 Err codemadness.org 70 i 28367 Err codemadness.org 70 i 28368


Err codemadness.org 70 i 28369 Err codemadness.org 70 i 28370

###OpenBSD 6.5-beta has been tagged

Err codemadness.org 70 i 28371 Err codemadness.org 70 i 28372
Err codemadness.org 70 i 28373

It’s that time of year again; Theo (deraadt@) has just tagged 6.5-beta. A good reminder for us all run an extra test install and see if your favorite port still works as you expect.

Err codemadness.org 70 i 28374
Err codemadness.org 70 i 28375 Err codemadness.org 70 i 28376

CVSROOT: /cvs
Err codemadness.org 70 i 28377 Module name: src
Err codemadness.org 70 i 28378 Changes by: deraadt@cvs.openbsd.org 2019/02/26 15:24:41
Err codemadness.org 70 i 28379
Err codemadness.org 70 i 28380 Modified files:
Err codemadness.org 70 i 28381 etc/root : root.mail
Err codemadness.org 70 i 28382 share/mk : sys.mk
Err codemadness.org 70 i 28383 sys/conf : newvers.sh
Err codemadness.org 70 i 28384 sys/sys : ktrace.h param.h
Err codemadness.org 70 i 28385 usr.bin/signify: signify.1
Err codemadness.org 70 i 28386 sys/arch/macppc/stand/tbxidata: bsd.tbxi
Err codemadness.org 70 i 28387
Err codemadness.org 70 i 28388 Log message:
Err codemadness.org 70 i 28389 crank to 6.5-beta
Err codemadness.org 70 i 28390

Err codemadness.org 70 i 28391 Err codemadness.org 70 i 28392


Err codemadness.org 70 i 28393 Err codemadness.org 70 i 28394

###The NetBSD Foundation participating in Google Summer of Code 2019

Err codemadness.org 70 i 28395 Err codemadness.org 70 i 28396
Err codemadness.org 70 i 28397

For the 4th year in a row and for the 13th time The NetBSD Foundation will participate in Google Summer of Code 2019!
Err codemadness.org 70 i 28398 If you are a student and would like to learn more about Google Summer of Code please go to the Google Summer of Code homepage.
Err codemadness.org 70 i 28399 You can find a list of projects in Google Summer of Code project proposals in the wiki.
Err codemadness.org 70 i 28400 Do not hesitate to get in touch with us via #netbsd-code IRC channel on Freenode and via NetBSD mailing lists!

Err codemadness.org 70 i 28401
Err codemadness.org 70 i 28402 Err codemadness.org 70 i 28403


Err codemadness.org 70 i 28404 Err codemadness.org 70 i 28405

###SecBSD: an UNIX-like OS for Hackers

Err codemadness.org 70 i 28406 Err codemadness.org 70 i 28407
Err codemadness.org 70 i 28408

SecBSD is an UNIX-like operating system focused on computer security based on OpenBSD. Designed for security testing, hacking and vulnerability assessment, it uses full disk encryption and ProtonVPN + OpenVPN by default.
Err codemadness.org 70 i 28409 A security BSD enviroment for security researchers, penetration testers, bug hunters and cybersecurity experts. Developed by Dark Intelligence Team for private use and will be public release coming soon.

Err codemadness.org 70 i 28410
Err codemadness.org 70 i 28411 Err codemadness.org 70 i 28412


Err codemadness.org 70 i 28413 Err codemadness.org 70 i 28414

##Beastie Bits

Err codemadness.org 70 i 28415 Err codemadness.org 70 i 28416 Err codemadness.org 70 i 28425 Err codemadness.org 70 i 28426


Err codemadness.org 70 i 28427 Err codemadness.org 70 i 28428

##Feedback/Questions

Err codemadness.org 70 i 28429 Err codemadness.org 70 i 28430 Err codemadness.org 70 i 28435 Err codemadness.org 70 i 28436


Err codemadness.org 70 i 28437 Err codemadness.org 70 i 28438
    Err codemadness.org 70 i 28439
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 28440
Err codemadness.org 70 i 28441 Err codemadness.org 70 i 28442


Err codemadness.org 70 i 28443 Err codemadness.org 70 i 28444 ]]> Err codemadness.org 70 i 28448
Err codemadness.org 70 i 28449 https://fireside.fm/player/v2/FYhhasNR+niMeApJM Err codemadness.org 70 i 28450 Err codemadness.org 70 i 28451 ]]> Err codemadness.org 70 i 28452 Err codemadness.org 70 i 28453
Err codemadness.org 70 i 28454 Err codemadness.org 70 i 28455 289: Microkernel Failure Err codemadness.org 70 i 28456 https://www.bsdnow.tv/289 Err codemadness.org 70 i 28457 eb6d59df-4b39-453b-93ca-18a6934e4e16 Err codemadness.org 70 i 28458 Thu, 14 Mar 2019 16:00:00 -0700 Err codemadness.org 70 i 28459 Allan Jude Err codemadness.org 70 i 28460 Err codemadness.org 70 i 28461 full Err codemadness.org 70 i 28462 Allan Jude Err codemadness.org 70 i 28463 A kernel of failure, IPv6 fragmentation vulnerability in OpenBSD’s pf, a guide to the terminal, using a Yubikey for SSH public key authentication, FreeBSD desktop series, and more. Err codemadness.org 70 i 28464 1:01:03 Err codemadness.org 70 i 28465 no Err codemadness.org 70 i 28466 Err codemadness.org 70 i 28467 A kernel of failure, IPv6 fragmentation vulnerability in OpenBSD’s pf, a guide to the terminal, using a Yubikey for SSH public key authentication, FreeBSD desktop series, and more. Err codemadness.org 70 i 28468 <p>##Headlines</p> Err codemadness.org 70 i 28469 <p>###<a href="https://tedium.co/2019/02/28/ibm-workplace-os-taligent-history/">A Kernel Of Failure -<br> Err codemadness.org 70 i 28470 How IBM bet big on the microkernel being the next big thing in operating systems back in the ’90s—and spent billions with little to show for it.</a></p> Err codemadness.org 70 i 28471 <blockquote> Err codemadness.org 70 i 28472 <p>Today in Tedium: In the early 1990s, we had no idea where the computer industry was going, what the next generation would look like, or even what the driving factor would be. All the developers back then knew is that the operating systems available in server rooms or on desktop computers simply weren’t good enough, and that the next generation needed to be better—a lot better. This was easier said than done, but this problem for some reason seemed to rack the brains of one company more than any other: IBM. Throughout the decade, the company was associated with more overwrought thinking about operating systems than any other, with little to show for it in the end. The problem? It might have gotten caught up in kernel madness. Today’s Tedium explains IBM’s odd operating system fixation, and the belly flops it created.</p> Err codemadness.org 70 i 28473 </blockquote> Err codemadness.org 70 i 28474 <hr> Err codemadness.org 70 i 28475 <p>###<a href="https://www.synacktiv.com/ressources/Synacktiv_OpenBSD_PacketFilter_CVE-2019-5597_ipv6_frag.pdf">CVE-2019-5597IPv6 fragmentation vulnerability in OpenBSD Packet Filter</a></p> Err codemadness.org 70 i 28476 <blockquote> Err codemadness.org 70 i 28477 <p>Packet Filter is OpenBSD’s service for filtering network traffic and performing Network Address Translation. Packet Filter is also capable of normalizing and conditioning TCP/IP traffic, as well as providing bandwidth control and packet prioritization.<br> Err codemadness.org 70 i 28478 Packet Filter has been a part of the GENERIC kernel since OpenBSD 5.0.Because other BSD variants import part of OpenBSD code, Packet Filter is also shipped with at least the following distributions that are affected in a lesser extent: FreeBSD, pfSense, OPNSense, Solaris.</p> Err codemadness.org 70 i 28479 </blockquote> Err codemadness.org 70 i 28480 <blockquote> Err codemadness.org 70 i 28481 <p>Note that other distributions may also contain Packet Filter but due to the imported version they might not be vulnerable. This advisory covers the latest OpenBSD’s Packet Filter. For specific details about other distributions, please refer to the advisory of the affected product.</p> Err codemadness.org 70 i 28482 </blockquote> Err codemadness.org 70 i 28483 <ul> Err codemadness.org 70 i 28484 <li>Kristof Provost, who maintains the port of pf in FreeBSD added a <a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=344793">test for the vulnerability in FreeBSD head</a>.</li> Err codemadness.org 70 i 28485 </ul> Err codemadness.org 70 i 28486 <hr> Err codemadness.org 70 i 28487 <p>##News Roundup<br> Err codemadness.org 70 i 28488 <a href="https://www.lucasfcosta.com/2019/02/10/terminal-guide-2019.html">How I’m still not using GUIs in 2019: A guide to the terminal</a></p> Err codemadness.org 70 i 28489 <blockquote> Err codemadness.org 70 i 28490 <p>TL;DR: Here are my dotfiles. Use them and have fun.</p> Err codemadness.org 70 i 28491 </blockquote> Err codemadness.org 70 i 28492 <blockquote> Err codemadness.org 70 i 28493 <p>GUIs are bloatware. I’ve said it before. However, rather than just complaining about IDEs I’d like to provide an understandable guide to a much better alternative: the terminal.<br> Err codemadness.org 70 i 28494 IDE stands for Integrated Development Environment. This might be an accurate term, but when it comes to a real integrated development environment, the terminal is a lot better.<br> Err codemadness.org 70 i 28495 In this post, I’ll walk you through everything you need to start making your terminal a complete development environment: how to edit text efficiently, configure its appearance, run and combine a myriad of programs, and dynamically create, resize and close tabs and windows.</p> Err codemadness.org 70 i 28496 </blockquote> Err codemadness.org 70 i 28497 <ul> Err codemadness.org 70 i 28498 <li>Don’t forget rule number one.</li> Err codemadness.org 70 i 28499 </ul> Err codemadness.org 70 i 28500 <blockquote> Err codemadness.org 70 i 28501 <p>Whenever in doubt, read the manual.</p> Err codemadness.org 70 i 28502 </blockquote> Err codemadness.org 70 i 28503 <hr> Err codemadness.org 70 i 28504 <p>###<a href="https://undeadly.org/cgi?action=article;sid=20190302235509">Using a Yubikey as smartcard for SSH public key authentication</a></p> Err codemadness.org 70 i 28505 <blockquote> Err codemadness.org 70 i 28506 <p>SSH is an awesome tool. Logging into other machines securely is so pervasive to us sysadmins nowadays that few of us think about what’s going on underneath. Even more so once you start using the more advanced features such as the ssh-agent, agent-forwarding and ProxyJump. When doing so, care must be taken in order to not compromise one’s logins or ssh keys.<br> Err codemadness.org 70 i 28507 You might have heard of Yubikeys.<br> Err codemadness.org 70 i 28508 These are USB authentication devices that support several different modes: they can be used for OTP (One Time Password) authentication, they can store OpenPGP keys, be a 2-factor authentication token and they can act as a SmartCard.<br> Err codemadness.org 70 i 28509 In OpenBSD, you can use them for Login (with loginyubikey(8)) with OTP since 2012, and there are many descriptions available(1) how to set this up.</p> Err codemadness.org 70 i 28510 </blockquote> Err codemadness.org 70 i 28511 <hr> Err codemadness.org 70 i 28512 <p>###The 18 Part FreeBSD Desktop Series by Vermaden</p> Err codemadness.org 70 i 28513 <ul> Err codemadness.org 70 i 28514 <li><a href="https://vermaden.wordpress.com/2018/03/29/freebsd-desktop-part-1-simplified-boot/">FreeBSD Desktop – Part 1 – Simplified Boot</a></li> Err codemadness.org 70 i 28515 <li><a href="https://vermaden.wordpress.com/2018/04/11/freebsd-desktop-part-2-install/">FreeBSD Desktop – Part 2 – Install (FreeBSD 11)</a></li> Err codemadness.org 70 i 28516 <li><a href="https://vermaden.wordpress.com/2018/11/20/freebsd-desktop-part-2-1-install-freebsd-12/">FreeBSD Desktop – Part 2.1 – Install FreeBSD 12</a></li> Err codemadness.org 70 i 28517 <li><a href="https://vermaden.wordpress.com/2018/05/22/freebsd-desktop-part-3-x11-window-system/">FreeBSD Desktop – Part 3 – X11 Window System</a></li> Err codemadness.org 70 i 28518 <li><a href="https://vermaden.wordpress.com/2018/06/15/freebsd-desktop-part-4-key-components-window-manager/">FreeBSD Desktop – Part 4 – Key Components – Window Manager</a></li> Err codemadness.org 70 i 28519 <li><a href="https://vermaden.wordpress.com/2018/06/16/freebsd-desktop-part-5-key-components-status-bar/">FreeBSD Desktop – Part 5 – Key Components – Status Bar</a></li> Err codemadness.org 70 i 28520 <li><a href="https://vermaden.wordpress.com/2018/06/21/freebsd-desktop-part-6-key-components-task-bar/">FreeBSD Desktop – Part 6 – Key Components – Task Bar</a></li> Err codemadness.org 70 i 28521 <li><a href="https://vermaden.wordpress.com/2018/06/21/freebsd-desktop-part-7-key-components-wallpaper-handling/">FreeBSD Desktop – Part 7 – Key Components – Wallpaper Handling</a></li> Err codemadness.org 70 i 28522 <li><a href="https://vermaden.wordpress.com/2018/06/21/freebsd-desktop-part-8-key-components-application-launcher/">FreeBSD Desktop – Part 8 – Key Components – Application Launcher</a></li> Err codemadness.org 70 i 28523 <li><a href="https://vermaden.wordpress.com/2018/06/22/freebsd-desktop-part-9-key-components-keyboard-mouse-shortcuts/">FreeBSD Desktop – Part 9 – Key Components – Keyboard/Mouse Shortcuts</a></li> Err codemadness.org 70 i 28524 <li><a href="https://vermaden.wordpress.com/2018/06/23/freebsd-desktop-part-10-key-components-locking-solution/">FreeBSD Desktop – Part 10 – Key Components – Locking Solution</a></li> Err codemadness.org 70 i 28525 <li><a href="https://vermaden.wordpress.com/2018/06/28/freebsd-desktop-part-11-key-components-blue-light-spectrum-suppress/">FreeBSD Desktop – Part 11 – Key Components – Blue Light Spectrum Suppress</a></li> Err codemadness.org 70 i 28526 <li><a href="https://vermaden.wordpress.com/2018/07/01/freebsd-desktop-part-12-configuration-openbox/">FreeBSD Desktop – Part 12 – Configuration – Openbox</a></li> Err codemadness.org 70 i 28527 <li><a href="https://vermaden.wordpress.com/2018/07/05/freebsd-desktop-part-13-configuration-dzen2/">FreeBSD Desktop – Part 13 – Configuration – Dzen2</a></li> Err codemadness.org 70 i 28528 <li><a href="https://vermaden.wordpress.com/2018/07/11/freebsd-desktop-part-14-configuration-tint2/">FreeBSD Desktop – Part 14 – Configuration – Tint2</a></li> Err codemadness.org 70 i 28529 <li><a href="https://vermaden.wordpress.com/2018/08/18/freebsd-desktop-part-15-configuration-fonts-frameworks/">FreeBSD Desktop – Part 15 – Configuration – Fonts &amp; Frameworks</a></li> Err codemadness.org 70 i 28530 <li><a href="https://vermaden.wordpress.com/2018/09/19/freebsd-desktop-part-16-configuration-pause-any-application/">FreeBSD Desktop – Part 16 – Configuration – Pause Any Application</a></li> Err codemadness.org 70 i 28531 <li><a href="https://vermaden.wordpress.com/2018/10/11/freebsd-desktop-part-17-automount-removable-media/">FreeBSD Desktop – Part 17 – Automount Removable Media</a></li> Err codemadness.org 70 i 28532 </ul> Err codemadness.org 70 i 28533 <hr> Err codemadness.org 70 i 28534 <p>##Beastie Bits</p> Err codemadness.org 70 i 28535 <ul> Err codemadness.org 70 i 28536 <li><a href="https://dataswamp.org/~solene/2019-02-18-drist-1.04.html">Drist with persistent SSH</a></li> Err codemadness.org 70 i 28537 <li><a href="https://meetings.aaas.org/arpanet-livestream/">ARPANET: Celebrating 50 Years Since “LO”</a></li> Err codemadness.org 70 i 28538 <li><a href="http://nuclear.mutantstargoat.com/sw/termtris/">Termtris - a tetris game for ANSI/VT220 terminals</a></li> Err codemadness.org 70 i 28539 <li><a href="https://github.com/billziss-gh/pmci">Poor Man’s CI - Hosted CI for BSD with shell scripting and duct tape</a></li> Err codemadness.org 70 i 28540 <li><a href="http://yeokhengmeng.com/2018/07/why-i-use-the-ibm-model-m-keyboard-that-is-older-than-me/">Why I use the IBM Model M keyboard that is older than me?</a></li> Err codemadness.org 70 i 28541 <li><a href="https://www.openbsd.org/papers/florianslaacd_bsdcan2018.pdf">A privilege separated and sandboxed IPv6 Stateless Address AutoConfiguration Daemon</a></li> Err codemadness.org 70 i 28542 <li><a href="https://niftylettuce.com/posts/google-free-android-setup/#google-free-android-setup">Google-free Android Setup</a></li> Err codemadness.org 70 i 28543 <li><a href="https://www.meetup.com/BSD-Users-Stockholm/events/259528492/">BSD Users Stockholm Meetup #6</a></li> Err codemadness.org 70 i 28544 </ul> Err codemadness.org 70 i 28545 <hr> Err codemadness.org 70 i 28546 <p>##Feedback/Questions</p> Err codemadness.org 70 i 28547 <ul> Err codemadness.org 70 i 28548 <li>Sijmen - <a href="http://dpaste.com/1K3ZXB2#wrap">Hi, and a Sunday afternoon toy project</a></li> Err codemadness.org 70 i 28549 <li>Clint - <a href="http://dpaste.com/24QF6J1">Tuning ZFS for NVME</a></li> Err codemadness.org 70 i 28550 <li>James - <a href="http://dpaste.com/04SDXH9">Show question</a></li> Err codemadness.org 70 i 28551 </ul> Err codemadness.org 70 i 28552 <hr> Err codemadness.org 70 i 28553 <ul> Err codemadness.org 70 i 28554 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 28555 </ul> Err codemadness.org 70 i 28556 <hr> Err codemadness.org 70 i 28557 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 28558 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0289.mp4" type="video/mp4"> Err codemadness.org 70 i 28559 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 28560 </video> Err codemadness.org 70 i 28561 Err codemadness.org 70 i 28562 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 28563 Err codemadness.org 70 i 28564 A kernel of failure, IPv6 fragmentation vulnerability in OpenBSD’s pf, a guide to the terminal, using a Yubikey for SSH public key authentication, FreeBSD desktop series, and more.

Err codemadness.org 70 i 28565 Err codemadness.org 70 i 28566

##Headlines

Err codemadness.org 70 i 28567 Err codemadness.org 70 i 28568

###A Kernel Of Failure -
Err codemadness.org 70 i 28569 How IBM bet big on the microkernel being the next big thing in operating systems back in the ’90s—and spent billions with little to show for it.

Err codemadness.org 70 i 28570 Err codemadness.org 70 i 28571
Err codemadness.org 70 i 28572

Today in Tedium: In the early 1990s, we had no idea where the computer industry was going, what the next generation would look like, or even what the driving factor would be. All the developers back then knew is that the operating systems available in server rooms or on desktop computers simply weren’t good enough, and that the next generation needed to be better—a lot better. This was easier said than done, but this problem for some reason seemed to rack the brains of one company more than any other: IBM. Throughout the decade, the company was associated with more overwrought thinking about operating systems than any other, with little to show for it in the end. The problem? It might have gotten caught up in kernel madness. Today’s Tedium explains IBM’s odd operating system fixation, and the belly flops it created.

Err codemadness.org 70 i 28573
Err codemadness.org 70 i 28574 Err codemadness.org 70 i 28575


Err codemadness.org 70 i 28576 Err codemadness.org 70 i 28577

###CVE-2019-5597IPv6 fragmentation vulnerability in OpenBSD Packet Filter

Err codemadness.org 70 i 28578 Err codemadness.org 70 i 28579
Err codemadness.org 70 i 28580

Packet Filter is OpenBSD’s service for filtering network traffic and performing Network Address Translation. Packet Filter is also capable of normalizing and conditioning TCP/IP traffic, as well as providing bandwidth control and packet prioritization.
Err codemadness.org 70 i 28581 Packet Filter has been a part of the GENERIC kernel since OpenBSD 5.0.Because other BSD variants import part of OpenBSD code, Packet Filter is also shipped with at least the following distributions that are affected in a lesser extent: FreeBSD, pfSense, OPNSense, Solaris.

Err codemadness.org 70 i 28582
Err codemadness.org 70 i 28583 Err codemadness.org 70 i 28584
Err codemadness.org 70 i 28585

Note that other distributions may also contain Packet Filter but due to the imported version they might not be vulnerable. This advisory covers the latest OpenBSD’s Packet Filter. For specific details about other distributions, please refer to the advisory of the affected product.

Err codemadness.org 70 i 28586
Err codemadness.org 70 i 28587 Err codemadness.org 70 i 28588 Err codemadness.org 70 i 28591 Err codemadness.org 70 i 28592


Err codemadness.org 70 i 28593 Err codemadness.org 70 i 28594

##News Roundup
Err codemadness.org 70 i 28595 ###How I’m still not using GUIs in 2019: A guide to the terminal

Err codemadness.org 70 i 28596 Err codemadness.org 70 i 28597
Err codemadness.org 70 i 28598

TL;DR: Here are my dotfiles. Use them and have fun.

Err codemadness.org 70 i 28599
Err codemadness.org 70 i 28600 Err codemadness.org 70 i 28601
Err codemadness.org 70 i 28602

GUIs are bloatware. I’ve said it before. However, rather than just complaining about IDEs I’d like to provide an understandable guide to a much better alternative: the terminal.
Err codemadness.org 70 i 28603 IDE stands for Integrated Development Environment. This might be an accurate term, but when it comes to a real integrated development environment, the terminal is a lot better.
Err codemadness.org 70 i 28604 In this post, I’ll walk you through everything you need to start making your terminal a complete development environment: how to edit text efficiently, configure its appearance, run and combine a myriad of programs, and dynamically create, resize and close tabs and windows.

Err codemadness.org 70 i 28605
Err codemadness.org 70 i 28606 Err codemadness.org 70 i 28607
    Err codemadness.org 70 i 28608
  • Don’t forget rule number one.
  • Err codemadness.org 70 i 28609
Err codemadness.org 70 i 28610 Err codemadness.org 70 i 28611
Err codemadness.org 70 i 28612

Whenever in doubt, read the manual.

Err codemadness.org 70 i 28613
Err codemadness.org 70 i 28614 Err codemadness.org 70 i 28615


Err codemadness.org 70 i 28616 Err codemadness.org 70 i 28617

###Using a Yubikey as smartcard for SSH public key authentication

Err codemadness.org 70 i 28618 Err codemadness.org 70 i 28619
Err codemadness.org 70 i 28620

SSH is an awesome tool. Logging into other machines securely is so pervasive to us sysadmins nowadays that few of us think about what’s going on underneath. Even more so once you start using the more advanced features such as the ssh-agent, agent-forwarding and ProxyJump. When doing so, care must be taken in order to not compromise one’s logins or ssh keys.
Err codemadness.org 70 i 28621 You might have heard of Yubikeys.
Err codemadness.org 70 i 28622 These are USB authentication devices that support several different modes: they can be used for OTP (One Time Password) authentication, they can store OpenPGP keys, be a 2-factor authentication token and they can act as a SmartCard.
Err codemadness.org 70 i 28623 In OpenBSD, you can use them for Login (with login_yubikey(8)) with OTP since 2012, and there are many descriptions available(1) how to set this up.

Err codemadness.org 70 i 28624
Err codemadness.org 70 i 28625 Err codemadness.org 70 i 28626


Err codemadness.org 70 i 28627 Err codemadness.org 70 i 28628

###The 18 Part FreeBSD Desktop Series by Vermaden

Err codemadness.org 70 i 28629 Err codemadness.org 70 i 28630 Err codemadness.org 70 i 28650 Err codemadness.org 70 i 28651


Err codemadness.org 70 i 28652 Err codemadness.org 70 i 28653

##Beastie Bits

Err codemadness.org 70 i 28654 Err codemadness.org 70 i 28655 Err codemadness.org 70 i 28665 Err codemadness.org 70 i 28666


Err codemadness.org 70 i 28667 Err codemadness.org 70 i 28668

##Feedback/Questions

Err codemadness.org 70 i 28669 Err codemadness.org 70 i 28670 Err codemadness.org 70 i 28675 Err codemadness.org 70 i 28676


Err codemadness.org 70 i 28677 Err codemadness.org 70 i 28678
    Err codemadness.org 70 i 28679
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 28680
Err codemadness.org 70 i 28681 Err codemadness.org 70 i 28682


Err codemadness.org 70 i 28683 Err codemadness.org 70 i 28684 ]]> Err codemadness.org 70 i 28688
Err codemadness.org 70 i 28689 Err codemadness.org 70 i 28690 A kernel of failure, IPv6 fragmentation vulnerability in OpenBSD’s pf, a guide to the terminal, using a Yubikey for SSH public key authentication, FreeBSD desktop series, and more.

Err codemadness.org 70 i 28691 Err codemadness.org 70 i 28692

##Headlines

Err codemadness.org 70 i 28693 Err codemadness.org 70 i 28694

###A Kernel Of Failure -
Err codemadness.org 70 i 28695 How IBM bet big on the microkernel being the next big thing in operating systems back in the ’90s—and spent billions with little to show for it.

Err codemadness.org 70 i 28696 Err codemadness.org 70 i 28697
Err codemadness.org 70 i 28698

Today in Tedium: In the early 1990s, we had no idea where the computer industry was going, what the next generation would look like, or even what the driving factor would be. All the developers back then knew is that the operating systems available in server rooms or on desktop computers simply weren’t good enough, and that the next generation needed to be better—a lot better. This was easier said than done, but this problem for some reason seemed to rack the brains of one company more than any other: IBM. Throughout the decade, the company was associated with more overwrought thinking about operating systems than any other, with little to show for it in the end. The problem? It might have gotten caught up in kernel madness. Today’s Tedium explains IBM’s odd operating system fixation, and the belly flops it created.

Err codemadness.org 70 i 28699
Err codemadness.org 70 i 28700 Err codemadness.org 70 i 28701


Err codemadness.org 70 i 28702 Err codemadness.org 70 i 28703

###CVE-2019-5597IPv6 fragmentation vulnerability in OpenBSD Packet Filter

Err codemadness.org 70 i 28704 Err codemadness.org 70 i 28705
Err codemadness.org 70 i 28706

Packet Filter is OpenBSD’s service for filtering network traffic and performing Network Address Translation. Packet Filter is also capable of normalizing and conditioning TCP/IP traffic, as well as providing bandwidth control and packet prioritization.
Err codemadness.org 70 i 28707 Packet Filter has been a part of the GENERIC kernel since OpenBSD 5.0.Because other BSD variants import part of OpenBSD code, Packet Filter is also shipped with at least the following distributions that are affected in a lesser extent: FreeBSD, pfSense, OPNSense, Solaris.

Err codemadness.org 70 i 28708
Err codemadness.org 70 i 28709 Err codemadness.org 70 i 28710
Err codemadness.org 70 i 28711

Note that other distributions may also contain Packet Filter but due to the imported version they might not be vulnerable. This advisory covers the latest OpenBSD’s Packet Filter. For specific details about other distributions, please refer to the advisory of the affected product.

Err codemadness.org 70 i 28712
Err codemadness.org 70 i 28713 Err codemadness.org 70 i 28714 Err codemadness.org 70 i 28717 Err codemadness.org 70 i 28718


Err codemadness.org 70 i 28719 Err codemadness.org 70 i 28720

##News Roundup
Err codemadness.org 70 i 28721 ###How I’m still not using GUIs in 2019: A guide to the terminal

Err codemadness.org 70 i 28722 Err codemadness.org 70 i 28723
Err codemadness.org 70 i 28724

TL;DR: Here are my dotfiles. Use them and have fun.

Err codemadness.org 70 i 28725
Err codemadness.org 70 i 28726 Err codemadness.org 70 i 28727
Err codemadness.org 70 i 28728

GUIs are bloatware. I’ve said it before. However, rather than just complaining about IDEs I’d like to provide an understandable guide to a much better alternative: the terminal.
Err codemadness.org 70 i 28729 IDE stands for Integrated Development Environment. This might be an accurate term, but when it comes to a real integrated development environment, the terminal is a lot better.
Err codemadness.org 70 i 28730 In this post, I’ll walk you through everything you need to start making your terminal a complete development environment: how to edit text efficiently, configure its appearance, run and combine a myriad of programs, and dynamically create, resize and close tabs and windows.

Err codemadness.org 70 i 28731
Err codemadness.org 70 i 28732 Err codemadness.org 70 i 28733
    Err codemadness.org 70 i 28734
  • Don’t forget rule number one.
  • Err codemadness.org 70 i 28735
Err codemadness.org 70 i 28736 Err codemadness.org 70 i 28737
Err codemadness.org 70 i 28738

Whenever in doubt, read the manual.

Err codemadness.org 70 i 28739
Err codemadness.org 70 i 28740 Err codemadness.org 70 i 28741


Err codemadness.org 70 i 28742 Err codemadness.org 70 i 28743

###Using a Yubikey as smartcard for SSH public key authentication

Err codemadness.org 70 i 28744 Err codemadness.org 70 i 28745
Err codemadness.org 70 i 28746

SSH is an awesome tool. Logging into other machines securely is so pervasive to us sysadmins nowadays that few of us think about what’s going on underneath. Even more so once you start using the more advanced features such as the ssh-agent, agent-forwarding and ProxyJump. When doing so, care must be taken in order to not compromise one’s logins or ssh keys.
Err codemadness.org 70 i 28747 You might have heard of Yubikeys.
Err codemadness.org 70 i 28748 These are USB authentication devices that support several different modes: they can be used for OTP (One Time Password) authentication, they can store OpenPGP keys, be a 2-factor authentication token and they can act as a SmartCard.
Err codemadness.org 70 i 28749 In OpenBSD, you can use them for Login (with login_yubikey(8)) with OTP since 2012, and there are many descriptions available(1) how to set this up.

Err codemadness.org 70 i 28750
Err codemadness.org 70 i 28751 Err codemadness.org 70 i 28752


Err codemadness.org 70 i 28753 Err codemadness.org 70 i 28754

###The 18 Part FreeBSD Desktop Series by Vermaden

Err codemadness.org 70 i 28755 Err codemadness.org 70 i 28756 Err codemadness.org 70 i 28776 Err codemadness.org 70 i 28777


Err codemadness.org 70 i 28778 Err codemadness.org 70 i 28779

##Beastie Bits

Err codemadness.org 70 i 28780 Err codemadness.org 70 i 28781 Err codemadness.org 70 i 28791 Err codemadness.org 70 i 28792


Err codemadness.org 70 i 28793 Err codemadness.org 70 i 28794

##Feedback/Questions

Err codemadness.org 70 i 28795 Err codemadness.org 70 i 28796 Err codemadness.org 70 i 28801 Err codemadness.org 70 i 28802


Err codemadness.org 70 i 28803 Err codemadness.org 70 i 28804
    Err codemadness.org 70 i 28805
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 28806
Err codemadness.org 70 i 28807 Err codemadness.org 70 i 28808


Err codemadness.org 70 i 28809 Err codemadness.org 70 i 28810 ]]> Err codemadness.org 70 i 28814
Err codemadness.org 70 i 28815 https://fireside.fm/player/v2/FYhhasNR+v-nmfAOp Err codemadness.org 70 i 28816 Err codemadness.org 70 i 28817 ]]> Err codemadness.org 70 i 28818 Err codemadness.org 70 i 28819
Err codemadness.org 70 i 28820 Err codemadness.org 70 i 28821 288: Turing Complete Sed Err codemadness.org 70 i 28822 https://www.bsdnow.tv/288 Err codemadness.org 70 i 28823 be2ff33e-e797-4fb6-9448-c715d7068e66 Err codemadness.org 70 i 28824 Thu, 07 Mar 2019 07:00:00 -0800 Err codemadness.org 70 i 28825 Allan Jude Err codemadness.org 70 i 28826 Err codemadness.org 70 i 28827 full Err codemadness.org 70 i 28828 Allan Jude Err codemadness.org 70 i 28829 Software will never fix Spectre-type bugs, a proof that sed is Turing complete, managed jails using Bastille, new version of netdata, using grep with /dev/null, using GMail with mutt, and more. Err codemadness.org 70 i 28830 59:10 Err codemadness.org 70 i 28831 no Err codemadness.org 70 i 28832 Err codemadness.org 70 i 28833 Software will never fix Spectre-type bugs, a proof that sed is Turing complete, managed jails using Bastille, new version of netdata, using grep with /dev/null, using GMail with mutt, and more. Err codemadness.org 70 i 28834 <p>##Headlines<br> Err codemadness.org 70 i 28835 ###<a href="https://arstechnica.com/gadgets/2019/02/google-software-is-never-going-to-be-able-to-fix-spectre-type-bugs/">Google: Software is never going to be able to fix Spectre-type bugs</a></p> Err codemadness.org 70 i 28836 <ul> Err codemadness.org 70 i 28837 <li><a href="https://arxiv.org/pdf/1902.05178.pdf">Spectre is here to stay: An analysis of side-channels and speculative execution</a></li> Err codemadness.org 70 i 28838 </ul> Err codemadness.org 70 i 28839 <blockquote> Err codemadness.org 70 i 28840 <p>Researchers from Google investigating the scope and impact of the Spectre attack have published a paper asserting that Spectre-like vulnerabilities are likely to be a continued feature of processors and, further, that software-based techniques for protecting against them will impose a high performance cost. And whatever the cost, the researchers continue, the software will be inadequate—some Spectre flaws don’t appear to have any effective software-based defense. As such, Spectre is going to be a continued feature of the computing landscape, with no straightforward resolution.<br> Err codemadness.org 70 i 28841 The discovery and development of the Meltdown and Spectre attacks was undoubtedly the big security story of 2018. First revealed last January, new variants and related discoveries were made throughout the rest of the year. Both attacks rely on discrepancies between the theoretical architectural behavior of a processor—the documented behavior that programmers depend on and write their programs against—and the real behavior of implementations.<br> Err codemadness.org 70 i 28842 Specifically, modern processors all perform speculative execution; they make assumptions about, for example, a value being read from memory or whether an if condition is true or false, and they allow their execution to run ahead based on these assumptions. If the assumptions are correct, the speculated results are kept; if it isn’t, the speculated results are discarded and the processor redoes the calculation. Speculative execution is not an architectural feature of the processor; it’s a feature of implementations, and so it’s supposed to be entirely invisible to running programs. When the processor discards the bad speculation, it should be as if the speculation never even happened.</p> Err codemadness.org 70 i 28843 </blockquote> Err codemadness.org 70 i 28844 <hr> Err codemadness.org 70 i 28845 <p>###<a href="https://catonmat.net/proof-that-sed-is-turing-complete">A proof that Unix utility sed is Turing complete</a></p> Err codemadness.org 70 i 28846 <blockquote> Err codemadness.org 70 i 28847 <p>Many people are surprised when they hear that sed is Turing complete. How come a text filtering program is Turing complete, they wonder. Turns out sed is a tiny assembly language that has a comparison operation, a branching operation and a temporary buffer. These operations make sed Turing complete.<br> Err codemadness.org 70 i 28848 I first learned about this from Christophe Blaess. His proof is by construction – he wrote a Turing machine in sed (download turing.sed). As any programming language that can implement a Turing machine is Turing complete we must conclude that sed is also Turing complete.<br> Err codemadness.org 70 i 28849 Christophe offers his own introduction to Turing machines and a description of how his sed implementation works in his article Implementation of a Turing Machine as a sed Script.</p> Err codemadness.org 70 i 28850 </blockquote> Err codemadness.org 70 i 28851 <blockquote> Err codemadness.org 70 i 28852 <p>Christophe isn’t the first person to realize that sed is almost a general purpose programming language. People have written tetris, sokoban and many other programs in sed. Take a look at these:</p> Err codemadness.org 70 i 28853 </blockquote> Err codemadness.org 70 i 28854 <ul> Err codemadness.org 70 i 28855 <li><a href="https://catonmat.net/ftp/sed/sedtris.sed">Tetris</a></li> Err codemadness.org 70 i 28856 <li><a href="https://catonmat.net/ftp/sed/sokoban.sed">Sokoban (game)</a></li> Err codemadness.org 70 i 28857 <li><a href="https://catonmat.net/ftp/sed/dc.sed">Calculator</a></li> Err codemadness.org 70 i 28858 </ul> Err codemadness.org 70 i 28859 <hr> Err codemadness.org 70 i 28860 <p>##News Roundup<br> Err codemadness.org 70 i 28861 <a href="https://bastillebsd.org/">Bastille helps you quickly create and manage FreeBSD Jails.</a></p> Err codemadness.org 70 i 28862 <blockquote> Err codemadness.org 70 i 28863 <p>Bastille helps you quickly create and manage FreeBSD Jails.<br> Err codemadness.org 70 i 28864 Jails are extremely lightweight containers that provide a full-featured UNIX-like operating system inside. These containers can be used for software development, rapid testing, and secure production Internet services.<br> Err codemadness.org 70 i 28865 Bastille provides an interface to create, manage and destroy these secure virtualized environments.</p> Err codemadness.org 70 i 28866 </blockquote> Err codemadness.org 70 i 28867 <ul> Err codemadness.org 70 i 28868 <li>Current version: 0.3.20190204-beta.</li> Err codemadness.org 70 i 28869 <li>Shell Script Source here: <a href="https://github.com/BastilleBSD/bastille/blob/master/usr/local/bin/bastille">https://github.com/BastilleBSD/bastille/blob/master/usr/local/bin/bastille</a></li> Err codemadness.org 70 i 28870 </ul> Err codemadness.org 70 i 28871 <hr> Err codemadness.org 70 i 28872 <p>###<a href="https://github.com/netdata/netdata/releases">netdata v1.12 released</a></p> Err codemadness.org 70 i 28873 <blockquote> Err codemadness.org 70 i 28874 <p>Netdata is distributed, real-time, performance and health monitoring for systems and applications. It is a highly optimized monitoring agent you install on all your systems and containers.<br> Err codemadness.org 70 i 28875 Netdata provides unparalleled insights, in real-time, of everything happening on the systems it runs (including web servers, databases, applications), using highly interactive web dashboards. It can run autonomously, without any third party components, or it can be integrated to existing monitoring tool chains (Prometheus, Graphite, OpenTSDB, Kafka, Grafana, etc).<br> Err codemadness.org 70 i 28876 Netdata is fast and efficient, designed to permanently run on all systems (physical &amp; virtual servers, containers, IoT devices), without disrupting their core function.</p> Err codemadness.org 70 i 28877 </blockquote> Err codemadness.org 70 i 28878 <ul> Err codemadness.org 70 i 28879 <li>Patch release 1.12.1 contains 22 bug fixes and 8 improvements.</li> Err codemadness.org 70 i 28880 </ul> Err codemadness.org 70 i 28881 <hr> Err codemadness.org 70 i 28882 <p>###<a href="https://utcc.utoronto.ca/~cks/space/blog/unix/GrepDevNull">Using grep with /dev/null, an old Unix trick</a></p> Err codemadness.org 70 i 28883 <blockquote> Err codemadness.org 70 i 28884 <p>Every so often I will find myself writing a grep invocation like this:</p> Err codemadness.org 70 i 28885 </blockquote> Err codemadness.org 70 i 28886 <p><code>find .... -exec grep &lt;something&gt; /dev/null '{}' '+'</code></p> Err codemadness.org 70 i 28887 <blockquote> Err codemadness.org 70 i 28888 <p>The peculiar presence of /dev/null here is an old Unix trick that is designed to force grep to always print out file names, even if your find only matches one file, by always insuring that grep has at least two files as arguments. You can wind up wanting to do the same thing with a direct use of grep if you’re not certain how many files your wildcard may match.</p> Err codemadness.org 70 i 28889 </blockquote> Err codemadness.org 70 i 28890 <hr> Err codemadness.org 70 i 28891 <p>###<a href="https://smalldata.tech/blog/2016/09/10/gmail-with-mutt">USING GMAIL WITH MUTT</a></p> Err codemadness.org 70 i 28892 <blockquote> Err codemadness.org 70 i 28893 <p>I recently switched to using mutt for email and while setting up mutt to use imap is pretty straightforward, this tutorial will also document some advanced concepts such as encrypting your account password and sending emails from a different From address.<br> Err codemadness.org 70 i 28894 This tutorial assumes that you have some familiarity with using mutt and have installed it with sidebar support (sudo apt-get install mutt-patched for the ubuntu folks) and are comfortable with editing your muttrc.<br> Err codemadness.org 70 i 28895 If you would just like to skip to the end, my mutt configuration file can be found <a href="https://github.com/wheresvic/vic-config/blob/master/mutt/muttrc">here</a>.</p> Err codemadness.org 70 i 28896 </blockquote> Err codemadness.org 70 i 28897 <hr> Err codemadness.org 70 i 28898 <p>##Beastie Bits</p> Err codemadness.org 70 i 28899 <ul> Err codemadness.org 70 i 28900 <li><a href="https://www.levenez.com/unix/">An Extensive UNIX Timeline</a></li> Err codemadness.org 70 i 28901 <li><a href="https://garbage.fm/episodes/47">Garbage.fm - OEF</a></li> Err codemadness.org 70 i 28902 <li><a href="https://www.dragonflydigest.com/2019/02/22/22586.html">brk() to sbrk()</a></li> Err codemadness.org 70 i 28903 <li><a href="https://www.dragonflydigest.com/2019/02/20/22566.html">Fred models, found again</a></li> Err codemadness.org 70 i 28904 <li><a href="https://ieeexplore.ieee.org/document/8541105">Kafe: Can OS Kernels Forward Packets Fast Enough for Software Routers?</a></li> Err codemadness.org 70 i 28905 <li><a href="https://meetings.aaas.org/arpanet-livestream/">ARPANET: Celebrating 50 Years Since “LO”</a></li> Err codemadness.org 70 i 28906 </ul> Err codemadness.org 70 i 28907 <hr> Err codemadness.org 70 i 28908 <p>##Feedback/Questions</p> Err codemadness.org 70 i 28909 <ul> Err codemadness.org 70 i 28910 <li>Pablo - <a href="http://dpaste.com/2BXMP7M">Topic suggestion: FreeBSD on a Laptop as daily driver</a></li> Err codemadness.org 70 i 28911 <li>Ron - <a href="http://dpaste.com/16Y2HSR#wrap">ZFS on the fly compression and seek</a></li> Err codemadness.org 70 i 28912 <li>Dave - <a href="http://dpaste.com/123AANV#wrap">two zpool, or not two zpool, that is the question</a></li> Err codemadness.org 70 i 28913 </ul> Err codemadness.org 70 i 28914 <hr> Err codemadness.org 70 i 28915 <ul> Err codemadness.org 70 i 28916 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 28917 </ul> Err codemadness.org 70 i 28918 <hr> Err codemadness.org 70 i 28919 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 28920 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0288.mp4" type="video/mp4"> Err codemadness.org 70 i 28921 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 28922 </video> Err codemadness.org 70 i 28923 Err codemadness.org 70 i 28924 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 28925 Err codemadness.org 70 i 28926 Software will never fix Spectre-type bugs, a proof that sed is Turing complete, managed jails using Bastille, new version of netdata, using grep with /dev/null, using GMail with mutt, and more.

Err codemadness.org 70 i 28927 Err codemadness.org 70 i 28928

##Headlines
Err codemadness.org 70 i 28929 ###Google: Software is never going to be able to fix Spectre-type bugs

Err codemadness.org 70 i 28930 Err codemadness.org 70 i 28931 Err codemadness.org 70 i 28934 Err codemadness.org 70 i 28935
Err codemadness.org 70 i 28936

Researchers from Google investigating the scope and impact of the Spectre attack have published a paper asserting that Spectre-like vulnerabilities are likely to be a continued feature of processors and, further, that software-based techniques for protecting against them will impose a high performance cost. And whatever the cost, the researchers continue, the software will be inadequate—some Spectre flaws don’t appear to have any effective software-based defense. As such, Spectre is going to be a continued feature of the computing landscape, with no straightforward resolution.
Err codemadness.org 70 i 28937 The discovery and development of the Meltdown and Spectre attacks was undoubtedly the big security story of 2018. First revealed last January, new variants and related discoveries were made throughout the rest of the year. Both attacks rely on discrepancies between the theoretical architectural behavior of a processor—the documented behavior that programmers depend on and write their programs against—and the real behavior of implementations.
Err codemadness.org 70 i 28938 Specifically, modern processors all perform speculative execution; they make assumptions about, for example, a value being read from memory or whether an if condition is true or false, and they allow their execution to run ahead based on these assumptions. If the assumptions are correct, the speculated results are kept; if it isn’t, the speculated results are discarded and the processor redoes the calculation. Speculative execution is not an architectural feature of the processor; it’s a feature of implementations, and so it’s supposed to be entirely invisible to running programs. When the processor discards the bad speculation, it should be as if the speculation never even happened.

Err codemadness.org 70 i 28939
Err codemadness.org 70 i 28940 Err codemadness.org 70 i 28941


Err codemadness.org 70 i 28942 Err codemadness.org 70 i 28943

###A proof that Unix utility sed is Turing complete

Err codemadness.org 70 i 28944 Err codemadness.org 70 i 28945
Err codemadness.org 70 i 28946

Many people are surprised when they hear that sed is Turing complete. How come a text filtering program is Turing complete, they wonder. Turns out sed is a tiny assembly language that has a comparison operation, a branching operation and a temporary buffer. These operations make sed Turing complete.
Err codemadness.org 70 i 28947 I first learned about this from Christophe Blaess. His proof is by construction – he wrote a Turing machine in sed (download turing.sed). As any programming language that can implement a Turing machine is Turing complete we must conclude that sed is also Turing complete.
Err codemadness.org 70 i 28948 Christophe offers his own introduction to Turing machines and a description of how his sed implementation works in his article Implementation of a Turing Machine as a sed Script.

Err codemadness.org 70 i 28949
Err codemadness.org 70 i 28950 Err codemadness.org 70 i 28951
Err codemadness.org 70 i 28952

Christophe isn’t the first person to realize that sed is almost a general purpose programming language. People have written tetris, sokoban and many other programs in sed. Take a look at these:

Err codemadness.org 70 i 28953
Err codemadness.org 70 i 28954 Err codemadness.org 70 i 28955
    Err codemadness.org 70 i 28956
  • Tetris
  • Err codemadness.org 70 i 28957
  • Sokoban (game)
  • Err codemadness.org 70 i 28958
  • Calculator
  • Err codemadness.org 70 i 28959
Err codemadness.org 70 i 28960 Err codemadness.org 70 i 28961


Err codemadness.org 70 i 28962 Err codemadness.org 70 i 28963

##News Roundup
Err codemadness.org 70 i 28964 ###Bastille helps you quickly create and manage FreeBSD Jails.

Err codemadness.org 70 i 28965 Err codemadness.org 70 i 28966
Err codemadness.org 70 i 28967

Bastille helps you quickly create and manage FreeBSD Jails.
Err codemadness.org 70 i 28968 Jails are extremely lightweight containers that provide a full-featured UNIX-like operating system inside. These containers can be used for software development, rapid testing, and secure production Internet services.
Err codemadness.org 70 i 28969 Bastille provides an interface to create, manage and destroy these secure virtualized environments.

Err codemadness.org 70 i 28970
Err codemadness.org 70 i 28971 Err codemadness.org 70 i 28972 Err codemadness.org 70 i 28976 Err codemadness.org 70 i 28977


Err codemadness.org 70 i 28978 Err codemadness.org 70 i 28979

###netdata v1.12 released

Err codemadness.org 70 i 28980 Err codemadness.org 70 i 28981
Err codemadness.org 70 i 28982

Netdata is distributed, real-time, performance and health monitoring for systems and applications. It is a highly optimized monitoring agent you install on all your systems and containers.
Err codemadness.org 70 i 28983 Netdata provides unparalleled insights, in real-time, of everything happening on the systems it runs (including web servers, databases, applications), using highly interactive web dashboards. It can run autonomously, without any third party components, or it can be integrated to existing monitoring tool chains (Prometheus, Graphite, OpenTSDB, Kafka, Grafana, etc).
Err codemadness.org 70 i 28984 Netdata is fast and efficient, designed to permanently run on all systems (physical & virtual servers, containers, IoT devices), without disrupting their core function.

Err codemadness.org 70 i 28985
Err codemadness.org 70 i 28986 Err codemadness.org 70 i 28987
    Err codemadness.org 70 i 28988
  • Patch release 1.12.1 contains 22 bug fixes and 8 improvements.
  • Err codemadness.org 70 i 28989
Err codemadness.org 70 i 28990 Err codemadness.org 70 i 28991


Err codemadness.org 70 i 28992 Err codemadness.org 70 i 28993

###Using grep with /dev/null, an old Unix trick

Err codemadness.org 70 i 28994 Err codemadness.org 70 i 28995
Err codemadness.org 70 i 28996

Every so often I will find myself writing a grep invocation like this:

Err codemadness.org 70 i 28997
Err codemadness.org 70 i 28998 Err codemadness.org 70 i 28999

find .... -exec grep <something> /dev/null '{}' '+'

Err codemadness.org 70 i 29000 Err codemadness.org 70 i 29001
Err codemadness.org 70 i 29002

The peculiar presence of /dev/null here is an old Unix trick that is designed to force grep to always print out file names, even if your find only matches one file, by always insuring that grep has at least two files as arguments. You can wind up wanting to do the same thing with a direct use of grep if you’re not certain how many files your wildcard may match.

Err codemadness.org 70 i 29003
Err codemadness.org 70 i 29004 Err codemadness.org 70 i 29005


Err codemadness.org 70 i 29006 Err codemadness.org 70 i 29007

###USING GMAIL WITH MUTT

Err codemadness.org 70 i 29008 Err codemadness.org 70 i 29009
Err codemadness.org 70 i 29010

I recently switched to using mutt for email and while setting up mutt to use imap is pretty straightforward, this tutorial will also document some advanced concepts such as encrypting your account password and sending emails from a different From address.
Err codemadness.org 70 i 29011 This tutorial assumes that you have some familiarity with using mutt and have installed it with sidebar support (sudo apt-get install mutt-patched for the ubuntu folks) and are comfortable with editing your muttrc.
Err codemadness.org 70 i 29012 If you would just like to skip to the end, my mutt configuration file can be found here.

Err codemadness.org 70 i 29013
Err codemadness.org 70 i 29014 Err codemadness.org 70 i 29015


Err codemadness.org 70 i 29016 Err codemadness.org 70 i 29017

##Beastie Bits

Err codemadness.org 70 i 29018 Err codemadness.org 70 i 29019 Err codemadness.org 70 i 29027 Err codemadness.org 70 i 29028


Err codemadness.org 70 i 29029 Err codemadness.org 70 i 29030

##Feedback/Questions

Err codemadness.org 70 i 29031 Err codemadness.org 70 i 29032 Err codemadness.org 70 i 29037 Err codemadness.org 70 i 29038


Err codemadness.org 70 i 29039 Err codemadness.org 70 i 29040
    Err codemadness.org 70 i 29041
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 29042
Err codemadness.org 70 i 29043 Err codemadness.org 70 i 29044


Err codemadness.org 70 i 29045 Err codemadness.org 70 i 29046 ]]> Err codemadness.org 70 i 29050
Err codemadness.org 70 i 29051 Err codemadness.org 70 i 29052 Software will never fix Spectre-type bugs, a proof that sed is Turing complete, managed jails using Bastille, new version of netdata, using grep with /dev/null, using GMail with mutt, and more.

Err codemadness.org 70 i 29053 Err codemadness.org 70 i 29054

##Headlines
Err codemadness.org 70 i 29055 ###Google: Software is never going to be able to fix Spectre-type bugs

Err codemadness.org 70 i 29056 Err codemadness.org 70 i 29057 Err codemadness.org 70 i 29060 Err codemadness.org 70 i 29061
Err codemadness.org 70 i 29062

Researchers from Google investigating the scope and impact of the Spectre attack have published a paper asserting that Spectre-like vulnerabilities are likely to be a continued feature of processors and, further, that software-based techniques for protecting against them will impose a high performance cost. And whatever the cost, the researchers continue, the software will be inadequate—some Spectre flaws don’t appear to have any effective software-based defense. As such, Spectre is going to be a continued feature of the computing landscape, with no straightforward resolution.
Err codemadness.org 70 i 29063 The discovery and development of the Meltdown and Spectre attacks was undoubtedly the big security story of 2018. First revealed last January, new variants and related discoveries were made throughout the rest of the year. Both attacks rely on discrepancies between the theoretical architectural behavior of a processor—the documented behavior that programmers depend on and write their programs against—and the real behavior of implementations.
Err codemadness.org 70 i 29064 Specifically, modern processors all perform speculative execution; they make assumptions about, for example, a value being read from memory or whether an if condition is true or false, and they allow their execution to run ahead based on these assumptions. If the assumptions are correct, the speculated results are kept; if it isn’t, the speculated results are discarded and the processor redoes the calculation. Speculative execution is not an architectural feature of the processor; it’s a feature of implementations, and so it’s supposed to be entirely invisible to running programs. When the processor discards the bad speculation, it should be as if the speculation never even happened.

Err codemadness.org 70 i 29065
Err codemadness.org 70 i 29066 Err codemadness.org 70 i 29067


Err codemadness.org 70 i 29068 Err codemadness.org 70 i 29069

###A proof that Unix utility sed is Turing complete

Err codemadness.org 70 i 29070 Err codemadness.org 70 i 29071
Err codemadness.org 70 i 29072

Many people are surprised when they hear that sed is Turing complete. How come a text filtering program is Turing complete, they wonder. Turns out sed is a tiny assembly language that has a comparison operation, a branching operation and a temporary buffer. These operations make sed Turing complete.
Err codemadness.org 70 i 29073 I first learned about this from Christophe Blaess. His proof is by construction – he wrote a Turing machine in sed (download turing.sed). As any programming language that can implement a Turing machine is Turing complete we must conclude that sed is also Turing complete.
Err codemadness.org 70 i 29074 Christophe offers his own introduction to Turing machines and a description of how his sed implementation works in his article Implementation of a Turing Machine as a sed Script.

Err codemadness.org 70 i 29075
Err codemadness.org 70 i 29076 Err codemadness.org 70 i 29077
Err codemadness.org 70 i 29078

Christophe isn’t the first person to realize that sed is almost a general purpose programming language. People have written tetris, sokoban and many other programs in sed. Take a look at these:

Err codemadness.org 70 i 29079
Err codemadness.org 70 i 29080 Err codemadness.org 70 i 29081
    Err codemadness.org 70 i 29082
  • Tetris
  • Err codemadness.org 70 i 29083
  • Sokoban (game)
  • Err codemadness.org 70 i 29084
  • Calculator
  • Err codemadness.org 70 i 29085
Err codemadness.org 70 i 29086 Err codemadness.org 70 i 29087


Err codemadness.org 70 i 29088 Err codemadness.org 70 i 29089

##News Roundup
Err codemadness.org 70 i 29090 ###Bastille helps you quickly create and manage FreeBSD Jails.

Err codemadness.org 70 i 29091 Err codemadness.org 70 i 29092
Err codemadness.org 70 i 29093

Bastille helps you quickly create and manage FreeBSD Jails.
Err codemadness.org 70 i 29094 Jails are extremely lightweight containers that provide a full-featured UNIX-like operating system inside. These containers can be used for software development, rapid testing, and secure production Internet services.
Err codemadness.org 70 i 29095 Bastille provides an interface to create, manage and destroy these secure virtualized environments.

Err codemadness.org 70 i 29096
Err codemadness.org 70 i 29097 Err codemadness.org 70 i 29098 Err codemadness.org 70 i 29102 Err codemadness.org 70 i 29103


Err codemadness.org 70 i 29104 Err codemadness.org 70 i 29105

###netdata v1.12 released

Err codemadness.org 70 i 29106 Err codemadness.org 70 i 29107
Err codemadness.org 70 i 29108

Netdata is distributed, real-time, performance and health monitoring for systems and applications. It is a highly optimized monitoring agent you install on all your systems and containers.
Err codemadness.org 70 i 29109 Netdata provides unparalleled insights, in real-time, of everything happening on the systems it runs (including web servers, databases, applications), using highly interactive web dashboards. It can run autonomously, without any third party components, or it can be integrated to existing monitoring tool chains (Prometheus, Graphite, OpenTSDB, Kafka, Grafana, etc).
Err codemadness.org 70 i 29110 Netdata is fast and efficient, designed to permanently run on all systems (physical & virtual servers, containers, IoT devices), without disrupting their core function.

Err codemadness.org 70 i 29111
Err codemadness.org 70 i 29112 Err codemadness.org 70 i 29113
    Err codemadness.org 70 i 29114
  • Patch release 1.12.1 contains 22 bug fixes and 8 improvements.
  • Err codemadness.org 70 i 29115
Err codemadness.org 70 i 29116 Err codemadness.org 70 i 29117


Err codemadness.org 70 i 29118 Err codemadness.org 70 i 29119

###Using grep with /dev/null, an old Unix trick

Err codemadness.org 70 i 29120 Err codemadness.org 70 i 29121
Err codemadness.org 70 i 29122

Every so often I will find myself writing a grep invocation like this:

Err codemadness.org 70 i 29123
Err codemadness.org 70 i 29124 Err codemadness.org 70 i 29125

find .... -exec grep <something> /dev/null '{}' '+'

Err codemadness.org 70 i 29126 Err codemadness.org 70 i 29127
Err codemadness.org 70 i 29128

The peculiar presence of /dev/null here is an old Unix trick that is designed to force grep to always print out file names, even if your find only matches one file, by always insuring that grep has at least two files as arguments. You can wind up wanting to do the same thing with a direct use of grep if you’re not certain how many files your wildcard may match.

Err codemadness.org 70 i 29129
Err codemadness.org 70 i 29130 Err codemadness.org 70 i 29131


Err codemadness.org 70 i 29132 Err codemadness.org 70 i 29133

###USING GMAIL WITH MUTT

Err codemadness.org 70 i 29134 Err codemadness.org 70 i 29135
Err codemadness.org 70 i 29136

I recently switched to using mutt for email and while setting up mutt to use imap is pretty straightforward, this tutorial will also document some advanced concepts such as encrypting your account password and sending emails from a different From address.
Err codemadness.org 70 i 29137 This tutorial assumes that you have some familiarity with using mutt and have installed it with sidebar support (sudo apt-get install mutt-patched for the ubuntu folks) and are comfortable with editing your muttrc.
Err codemadness.org 70 i 29138 If you would just like to skip to the end, my mutt configuration file can be found here.

Err codemadness.org 70 i 29139
Err codemadness.org 70 i 29140 Err codemadness.org 70 i 29141


Err codemadness.org 70 i 29142 Err codemadness.org 70 i 29143

##Beastie Bits

Err codemadness.org 70 i 29144 Err codemadness.org 70 i 29145 Err codemadness.org 70 i 29153 Err codemadness.org 70 i 29154


Err codemadness.org 70 i 29155 Err codemadness.org 70 i 29156

##Feedback/Questions

Err codemadness.org 70 i 29157 Err codemadness.org 70 i 29158 Err codemadness.org 70 i 29163 Err codemadness.org 70 i 29164


Err codemadness.org 70 i 29165 Err codemadness.org 70 i 29166
    Err codemadness.org 70 i 29167
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 29168
Err codemadness.org 70 i 29169 Err codemadness.org 70 i 29170


Err codemadness.org 70 i 29171 Err codemadness.org 70 i 29172 ]]> Err codemadness.org 70 i 29176
Err codemadness.org 70 i 29177 https://fireside.fm/player/v2/FYhhasNR+ytWlgh4Z Err codemadness.org 70 i 29178 Err codemadness.org 70 i 29179 ]]> Err codemadness.org 70 i 29180 Err codemadness.org 70 i 29181
Err codemadness.org 70 i 29182 Err codemadness.org 70 i 29183 287: rc.d in NetBSD Err codemadness.org 70 i 29184 https://www.bsdnow.tv/287 Err codemadness.org 70 i 29185 e66ab35a-1745-4485-a2c3-142c6c471df0 Err codemadness.org 70 i 29186 Thu, 28 Feb 2019 09:00:00 -0800 Err codemadness.org 70 i 29187 Allan Jude Err codemadness.org 70 i 29188 Err codemadness.org 70 i 29189 full Err codemadness.org 70 i 29190 Allan Jude Err codemadness.org 70 i 29191 Design and Implementation of NetBSD’s rc.d system, first impressions of Project Trident 18.12, PXE booting a FreeBSD disk image, middle mouse button pasting, NetBSD gains hardware accelerated virtualization, and more. Err codemadness.org 70 i 29192 1:00:20 Err codemadness.org 70 i 29193 no Err codemadness.org 70 i 29194 Err codemadness.org 70 i 29195 Design and Implementation of NetBSD’s rc.d system, first impressions of Project Trident 18.12, PXE booting a FreeBSD disk image, middle mouse button pasting, NetBSD gains hardware accelerated virtualization, and more. Err codemadness.org 70 i 29196 <p>##Headlines<br> Err codemadness.org 70 i 29197 ###<a href="https://www.usenix.org/legacy/events/usenix01/freenix01/full_papers/mewburn/mewburn_html/index.html">The Design and Implementation of the NetBSD rc.d system</a></p> Err codemadness.org 70 i 29198 <ul> Err codemadness.org 70 i 29199 <li>Abstract</li> Err codemadness.org 70 i 29200 </ul> Err codemadness.org 70 i 29201 <blockquote> Err codemadness.org 70 i 29202 <p>In this paper I cover the design and implementation of the rc.d system start-up mechanism in NetBSD 1.5, which replaced the monolithic /etc/rc start-up file inherited from 4.4BSD. Topics covered include a history of various UNIX start-up mechanisms (including NetBSD prior to 1.5), design considerations that evolved over six years of discussions, implementation details, an examination of the human issues that occurred during the design and implementation, as well as future directions for the system.</p> Err codemadness.org 70 i 29203 </blockquote> Err codemadness.org 70 i 29204 <ul> Err codemadness.org 70 i 29205 <li>Introduction</li> Err codemadness.org 70 i 29206 </ul> Err codemadness.org 70 i 29207 <blockquote> Err codemadness.org 70 i 29208 <p>NetBSD recently converted from the traditional 4.4BSD monolithic /etc/rc start-up script to an /etc/rc.d mechanism, where there is a separate script to manage each service or daemon, and these scripts are executed in a specific order at system boot.<br> Err codemadness.org 70 i 29209 This paper covers the motivation, design and implementation of the rc.d system; from the history of what NetBSD had before to the system that NetBSD 1.5 shipped with in December 2000, as well as future directions.<br> Err codemadness.org 70 i 29210 The changes were contentious and generated some of the liveliest discussions about any feature change ever made in NetBSD. Parts of those discussions will be covered to provide insight into some of the design and implementation decisions.</p> Err codemadness.org 70 i 29211 </blockquote> Err codemadness.org 70 i 29212 <ul> Err codemadness.org 70 i 29213 <li>History</li> Err codemadness.org 70 i 29214 </ul> Err codemadness.org 70 i 29215 <blockquote> Err codemadness.org 70 i 29216 <p>There is great diversity in the system start-up mechanisms used by various UNIX variants. A few of the more pertinent schemes are detailed below. As NetBSD is derived from 4.4BSD, it follows that a description of the latter’s method is relevant. Solaris’ start-up method is also detailed, as it is the most common System V UNIX variant.</p> Err codemadness.org 70 i 29217 </blockquote> Err codemadness.org 70 i 29218 <hr> Err codemadness.org 70 i 29219 <p>###<a href="https://distrowatch.com/weekly.php?issue=20190211#trident">First impressions of Project Trident 18.12</a></p> Err codemadness.org 70 i 29220 <blockquote> Err codemadness.org 70 i 29221 <p>Project Trident (hereafter referred to as Trident) is a desktop operating system based on TrueOS. Trident takes the rolling base platform of TrueOS, which is in turn based on FreeBSD’s development branch, and combines it with the Lumina desktop environment.</p> Err codemadness.org 70 i 29222 </blockquote> Err codemadness.org 70 i 29223 <p>+Installing</p> Err codemadness.org 70 i 29224 <blockquote> Err codemadness.org 70 i 29225 <p>The debut release of Trident is available as a 4.1GB download that can be burned to a disc or transferred to a USB thumb drive. Booting from the Trident media brings up a graphical interface and automatically launches the project’s system installer. Down the left side of the display there are buttons we can click to show hardware information and configuration options. These buttons let us know if our wireless card and video card are compatible with Trident and give us a chance to change our preferred language and keyboard layout. At the bottom of the screen we find buttons that will open a terminal or shutdown the computer.</p> Err codemadness.org 70 i 29226 </blockquote> Err codemadness.org 70 i 29227 <ul> Err codemadness.org 70 i 29228 <li>Early impressions</li> Err codemadness.org 70 i 29229 </ul> Err codemadness.org 70 i 29230 <blockquote> Err codemadness.org 70 i 29231 <p>Trident boots to a graphical login screen where we can sign into the Lumina desktop or a minimal Fluxbox session. Lumina, by default, uses Fluxbox as its window manager. The Lumina desktop places its panel along the bottom of the screen and an application menu sits in the bottom-left corner. On the desktop we find icons for opening the software manager, launching the Falkon web browser, running the VLC media player, opening the Control Panel and adjusting the Lumina theme.<br> Err codemadness.org 70 i 29232 The application menu has an unusual and compact layout. The menu shows just a search box and buttons for browsing applications, opening a file manager, accessing desktop settings and signing out. To see what applications are available we can click the Browse Applications entry, which opens a window in the menu where we can scroll through installed programs. This is a bit awkward since the display window is small and only shows a few items at a time.<br> Err codemadness.org 70 i 29233 Early on I found it is possible to swap out the default “Start menu” with an alternative “Application menu” through the Panels configuration tool. This alternative menu offers a classic tree-style application menu. I found the latter menu easier to navigate as it expands to show all the applications in a selected category.</p> Err codemadness.org 70 i 29234 </blockquote> Err codemadness.org 70 i 29235 <ul> Err codemadness.org 70 i 29236 <li>Conclusions</li> Err codemadness.org 70 i 29237 </ul> Err codemadness.org 70 i 29238 <blockquote> Err codemadness.org 70 i 29239 <p>I have a lot of mixed feelings and impressions when it comes to Trident. On the one hand, the operating system has some great technology under the hook. It has cutting edge packages from the FreeBSD ecosystem, we have easy access to ZFS, boot environments, and lots of open source packages. Hardware support, at least on my physical workstation, was solid and the Lumina desktop is flexible.</p> Err codemadness.org 70 i 29240 </blockquote> Err codemadness.org 70 i 29241 <hr> Err codemadness.org 70 i 29242 <p>##News Roundup<br> Err codemadness.org 70 i 29243 <a href="https://blog.cochard.me/2019/02/pxe-booting-of-freebsd-disk-image.html">PXE booting of a FreeBSD disk image</a></p> Err codemadness.org 70 i 29244 <blockquote> Err codemadness.org 70 i 29245 <p>I had to set up a regression and network performance lab. This lab will be managed by a Jenkins, but the first step is to understand how to boot a FreeBSD disk by PXE. This article explains a simple way of doing it.<br> Err codemadness.org 70 i 29246 For information, all these steps were done using 2 PC Engines APU2 (upgraded with latest BIOS for iPXE support), so it’s a headless (serial port only, this can be IPMI SoL with different hardware) .</p> Err codemadness.org 70 i 29247 </blockquote> Err codemadness.org 70 i 29248 <ul> Err codemadness.org 70 i 29249 <li>THE BIG PICTURE</li> Err codemadness.org 70 i 29250 </ul> Err codemadness.org 70 i 29251 <blockquote> Err codemadness.org 70 i 29252 <p>Before explaining all steps and command line, here is the <a href="https://1.bp.blogspot.com/-SCUJAjowhYw/XG-b-qWGuXI/AAAAAAAAmXw/SVXHDC9hsMwZNB2P5glsZx0iFoCE9SAXQCLcBGAs/s1600/PXE%2Band%2BFreeBSD%2Bmfs%2Bimage.png">full big picture</a> of the final process.</p> Err codemadness.org 70 i 29253 </blockquote> Err codemadness.org 70 i 29254 <hr> Err codemadness.org 70 i 29255 <p>###<a href="https://utcc.utoronto.ca/~cks/space/blog/unix/MouseMovementAndPaste">Why I like middle mouse button paste in xterm so much</a></p> Err codemadness.org 70 i 29256 <blockquote> Err codemadness.org 70 i 29257 <p>In my entry about how touchpads are not mice, I mused that one of the things I should do on my laptop was insure that I had a keyboard binding for paste, since middle mouse button is one of the harder multi-finger gestures to land on a touchpad. Kurt Mosiejczuk recently left a comment there where they said:<br> Err codemadness.org 70 i 29258 Shift-Insert is a keyboard equivalent for paste that is in default xterm (at least OpenBSD xterm, and putty on Windows too). I use that most of the time now as it seems less… trigger-happy than right click paste.<br> Err codemadness.org 70 i 29259 This sparked some thoughts, because I can’t imagine giving up middle mouse paste if I have a real choice. I had earlier seen shift-insert mentioned in other commentary on my entry and so have tried a bit to use it on my laptop, and it hasn’t really felt great even there; on my desktops, it’s even less appealing (I tried shift-insert out there to confirm that it did work in my set of wacky X resources).<br> Err codemadness.org 70 i 29260 In thinking about why this is, I came to the obvious realization about why all of this is so. I like middle mouse button paste in normal usage because it’s so convenient, because almost all of the time my hand is already on the mouse. And the reason my hand is already on the mouse is because I’ve just used the mouse to shift focus to the window I want to paste into. Even on my laptop, my right hand is usually away from the keyboard as I move the mouse pointer on the touchpad, making shift-Insert at least somewhat awkward.</p> Err codemadness.org 70 i 29261 </blockquote> Err codemadness.org 70 i 29262 <hr> Err codemadness.org 70 i 29263 <p>###<a href="http://m00nbsd.net/4e0798b7f2620c965d0dd9d6a7a2f296.html">NetBSD Gains Hardware Accelerated Virtualization</a></p> Err codemadness.org 70 i 29264 <ul> Err codemadness.org 70 i 29265 <li>NetBSD Virtual Machine Monitor</li> Err codemadness.org 70 i 29266 </ul> Err codemadness.org 70 i 29267 <blockquote> Err codemadness.org 70 i 29268 <p>NVMM provides hardware-accelerated virtualization support for NetBSD. It is made of an ~MI frontend, to which MD backends can be plugged. A virtualization API is shipped via libnvmm, that allows to easily create and manage virtual machines via NVMM. Two additional components are shipped as demonstrators, toyvirt and smallkern: the former is a toy virtualizer, that executes in a VM the 64bit ELF binary given as argument, the latter is an example of such binary.</p> Err codemadness.org 70 i 29269 </blockquote> Err codemadness.org 70 i 29270 <hr> Err codemadness.org 70 i 29271 <p>##Beastie Bits</p> Err codemadness.org 70 i 29272 <ul> Err codemadness.org 70 i 29273 <li><a href="https://www.solobsd.org/index.php/2019/02/11/solobsd-19-02-stable/">SoloBSD 19.02-STABLE</a></li> Err codemadness.org 70 i 29274 <li><a href="https://project-trident.org/post/2019-02-20_18.12-u5_available/">Project Trident 18.12-U5 available</a></li> Err codemadness.org 70 i 29275 <li><a href="https://mwl.io/archives/4076">“Sudo Mastery, Second Edition” and Cover Art</a></li> Err codemadness.org 70 i 29276 <li><a href="https://blog.netbsd.org/tnf/entry/mksanitizer_bug_detector_software_integration">MKSANITIZER - bug detector software integration with the NetBSD userland</a></li> Err codemadness.org 70 i 29277 <li><a href="https://old.reddit.com/r/unix/comments/aplxjf/darn_kids_nowadays_back_in_my_day_we_drew_rude/">Darn kids nowadays… back in my day we drew rude symbols like normal people.</a> {{top two comments}}</li> Err codemadness.org 70 i 29278 <li><a href="https://www.shellcheck.net/">ShellCheck<br> Err codemadness.org 70 i 29279 finds bugs in your shell scripts.</a></li> Err codemadness.org 70 i 29280 <li><a href="https://www.youtube.com/watch?v=JuHpABL46a8">Old School Sean - A history of UNIX</a></li> Err codemadness.org 70 i 29281 </ul> Err codemadness.org 70 i 29282 <hr> Err codemadness.org 70 i 29283 <p>##Feedback/Questions</p> Err codemadness.org 70 i 29284 <ul> Err codemadness.org 70 i 29285 <li>Ales - <a href="http://dpaste.com/3T8VTDJ">OpenBSD, FreeNAS, OpenZFS questions</a></li> Err codemadness.org 70 i 29286 <li>Malcolm - <a href="http://dpaste.com/2X63H8Q">Thoughts on Pgsql + ZFS thread?</a></li> Err codemadness.org 70 i 29287 <li>Brad - <a href="http://dpaste.com/02DCADV#wrap">Boot Environments in FreeBSD</a></li> Err codemadness.org 70 i 29288 </ul> Err codemadness.org 70 i 29289 <hr> Err codemadness.org 70 i 29290 <ul> Err codemadness.org 70 i 29291 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 29292 </ul> Err codemadness.org 70 i 29293 <hr> Err codemadness.org 70 i 29294 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 29295 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0287.mp4" type="video/mp4"> Err codemadness.org 70 i 29296 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 29297 </video> Err codemadness.org 70 i 29298 Err codemadness.org 70 i 29299 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 29300 Err codemadness.org 70 i 29301 Design and Implementation of NetBSD’s rc.d system, first impressions of Project Trident 18.12, PXE booting a FreeBSD disk image, middle mouse button pasting, NetBSD gains hardware accelerated virtualization, and more.

Err codemadness.org 70 i 29302 Err codemadness.org 70 i 29303

##Headlines
Err codemadness.org 70 i 29304 ###The Design and Implementation of the NetBSD rc.d system

Err codemadness.org 70 i 29305 Err codemadness.org 70 i 29306
    Err codemadness.org 70 i 29307
  • Abstract
  • Err codemadness.org 70 i 29308
Err codemadness.org 70 i 29309 Err codemadness.org 70 i 29310
Err codemadness.org 70 i 29311

In this paper I cover the design and implementation of the rc.d system start-up mechanism in NetBSD 1.5, which replaced the monolithic /etc/rc start-up file inherited from 4.4BSD. Topics covered include a history of various UNIX start-up mechanisms (including NetBSD prior to 1.5), design considerations that evolved over six years of discussions, implementation details, an examination of the human issues that occurred during the design and implementation, as well as future directions for the system.

Err codemadness.org 70 i 29312
Err codemadness.org 70 i 29313 Err codemadness.org 70 i 29314
    Err codemadness.org 70 i 29315
  • Introduction
  • Err codemadness.org 70 i 29316
Err codemadness.org 70 i 29317 Err codemadness.org 70 i 29318
Err codemadness.org 70 i 29319

NetBSD recently converted from the traditional 4.4BSD monolithic /etc/rc start-up script to an /etc/rc.d mechanism, where there is a separate script to manage each service or daemon, and these scripts are executed in a specific order at system boot.
Err codemadness.org 70 i 29320 This paper covers the motivation, design and implementation of the rc.d system; from the history of what NetBSD had before to the system that NetBSD 1.5 shipped with in December 2000, as well as future directions.
Err codemadness.org 70 i 29321 The changes were contentious and generated some of the liveliest discussions about any feature change ever made in NetBSD. Parts of those discussions will be covered to provide insight into some of the design and implementation decisions.

Err codemadness.org 70 i 29322
Err codemadness.org 70 i 29323 Err codemadness.org 70 i 29324
    Err codemadness.org 70 i 29325
  • History
  • Err codemadness.org 70 i 29326
Err codemadness.org 70 i 29327 Err codemadness.org 70 i 29328
Err codemadness.org 70 i 29329

There is great diversity in the system start-up mechanisms used by various UNIX variants. A few of the more pertinent schemes are detailed below. As NetBSD is derived from 4.4BSD, it follows that a description of the latter’s method is relevant. Solaris’ start-up method is also detailed, as it is the most common System V UNIX variant.

Err codemadness.org 70 i 29330
Err codemadness.org 70 i 29331 Err codemadness.org 70 i 29332


Err codemadness.org 70 i 29333 Err codemadness.org 70 i 29334

###First impressions of Project Trident 18.12

Err codemadness.org 70 i 29335 Err codemadness.org 70 i 29336
Err codemadness.org 70 i 29337

Project Trident (hereafter referred to as Trident) is a desktop operating system based on TrueOS. Trident takes the rolling base platform of TrueOS, which is in turn based on FreeBSD’s development branch, and combines it with the Lumina desktop environment.

Err codemadness.org 70 i 29338
Err codemadness.org 70 i 29339 Err codemadness.org 70 i 29340

+Installing

Err codemadness.org 70 i 29341 Err codemadness.org 70 i 29342
Err codemadness.org 70 i 29343

The debut release of Trident is available as a 4.1GB download that can be burned to a disc or transferred to a USB thumb drive. Booting from the Trident media brings up a graphical interface and automatically launches the project’s system installer. Down the left side of the display there are buttons we can click to show hardware information and configuration options. These buttons let us know if our wireless card and video card are compatible with Trident and give us a chance to change our preferred language and keyboard layout. At the bottom of the screen we find buttons that will open a terminal or shutdown the computer.

Err codemadness.org 70 i 29344
Err codemadness.org 70 i 29345 Err codemadness.org 70 i 29346
    Err codemadness.org 70 i 29347
  • Early impressions
  • Err codemadness.org 70 i 29348
Err codemadness.org 70 i 29349 Err codemadness.org 70 i 29350
Err codemadness.org 70 i 29351

Trident boots to a graphical login screen where we can sign into the Lumina desktop or a minimal Fluxbox session. Lumina, by default, uses Fluxbox as its window manager. The Lumina desktop places its panel along the bottom of the screen and an application menu sits in the bottom-left corner. On the desktop we find icons for opening the software manager, launching the Falkon web browser, running the VLC media player, opening the Control Panel and adjusting the Lumina theme.
Err codemadness.org 70 i 29352 The application menu has an unusual and compact layout. The menu shows just a search box and buttons for browsing applications, opening a file manager, accessing desktop settings and signing out. To see what applications are available we can click the Browse Applications entry, which opens a window in the menu where we can scroll through installed programs. This is a bit awkward since the display window is small and only shows a few items at a time.
Err codemadness.org 70 i 29353 Early on I found it is possible to swap out the default “Start menu” with an alternative “Application menu” through the Panels configuration tool. This alternative menu offers a classic tree-style application menu. I found the latter menu easier to navigate as it expands to show all the applications in a selected category.

Err codemadness.org 70 i 29354
Err codemadness.org 70 i 29355 Err codemadness.org 70 i 29356
    Err codemadness.org 70 i 29357
  • Conclusions
  • Err codemadness.org 70 i 29358
Err codemadness.org 70 i 29359 Err codemadness.org 70 i 29360
Err codemadness.org 70 i 29361

I have a lot of mixed feelings and impressions when it comes to Trident. On the one hand, the operating system has some great technology under the hook. It has cutting edge packages from the FreeBSD ecosystem, we have easy access to ZFS, boot environments, and lots of open source packages. Hardware support, at least on my physical workstation, was solid and the Lumina desktop is flexible.

Err codemadness.org 70 i 29362
Err codemadness.org 70 i 29363 Err codemadness.org 70 i 29364


Err codemadness.org 70 i 29365 Err codemadness.org 70 i 29366

##News Roundup
Err codemadness.org 70 i 29367 ###PXE booting of a FreeBSD disk image

Err codemadness.org 70 i 29368 Err codemadness.org 70 i 29369
Err codemadness.org 70 i 29370

I had to set up a regression and network performance lab. This lab will be managed by a Jenkins, but the first step is to understand how to boot a FreeBSD disk by PXE. This article explains a simple way of doing it.
Err codemadness.org 70 i 29371 For information, all these steps were done using 2 PC Engines APU2 (upgraded with latest BIOS for iPXE support), so it’s a headless (serial port only, this can be IPMI SoL with different hardware) .

Err codemadness.org 70 i 29372
Err codemadness.org 70 i 29373 Err codemadness.org 70 i 29374
    Err codemadness.org 70 i 29375
  • THE BIG PICTURE
  • Err codemadness.org 70 i 29376
Err codemadness.org 70 i 29377 Err codemadness.org 70 i 29378
Err codemadness.org 70 i 29379

Before explaining all steps and command line, here is the full big picture of the final process.

Err codemadness.org 70 i 29380
Err codemadness.org 70 i 29381 Err codemadness.org 70 i 29382


Err codemadness.org 70 i 29383 Err codemadness.org 70 i 29384

###Why I like middle mouse button paste in xterm so much

Err codemadness.org 70 i 29385 Err codemadness.org 70 i 29386
Err codemadness.org 70 i 29387

In my entry about how touchpads are not mice, I mused that one of the things I should do on my laptop was insure that I had a keyboard binding for paste, since middle mouse button is one of the harder multi-finger gestures to land on a touchpad. Kurt Mosiejczuk recently left a comment there where they said:
Err codemadness.org 70 i 29388 Shift-Insert is a keyboard equivalent for paste that is in default xterm (at least OpenBSD xterm, and putty on Windows too). I use that most of the time now as it seems less… trigger-happy than right click paste.
Err codemadness.org 70 i 29389 This sparked some thoughts, because I can’t imagine giving up middle mouse paste if I have a real choice. I had earlier seen shift-insert mentioned in other commentary on my entry and so have tried a bit to use it on my laptop, and it hasn’t really felt great even there; on my desktops, it’s even less appealing (I tried shift-insert out there to confirm that it did work in my set of wacky X resources).
Err codemadness.org 70 i 29390 In thinking about why this is, I came to the obvious realization about why all of this is so. I like middle mouse button paste in normal usage because it’s so convenient, because almost all of the time my hand is already on the mouse. And the reason my hand is already on the mouse is because I’ve just used the mouse to shift focus to the window I want to paste into. Even on my laptop, my right hand is usually away from the keyboard as I move the mouse pointer on the touchpad, making shift-Insert at least somewhat awkward.

Err codemadness.org 70 i 29391
Err codemadness.org 70 i 29392 Err codemadness.org 70 i 29393


Err codemadness.org 70 i 29394 Err codemadness.org 70 i 29395

###NetBSD Gains Hardware Accelerated Virtualization

Err codemadness.org 70 i 29396 Err codemadness.org 70 i 29397
    Err codemadness.org 70 i 29398
  • NetBSD Virtual Machine Monitor
  • Err codemadness.org 70 i 29399
Err codemadness.org 70 i 29400 Err codemadness.org 70 i 29401
Err codemadness.org 70 i 29402

NVMM provides hardware-accelerated virtualization support for NetBSD. It is made of an ~MI frontend, to which MD backends can be plugged. A virtualization API is shipped via libnvmm, that allows to easily create and manage virtual machines via NVMM. Two additional components are shipped as demonstrators, toyvirt and smallkern: the former is a toy virtualizer, that executes in a VM the 64bit ELF binary given as argument, the latter is an example of such binary.

Err codemadness.org 70 i 29403
Err codemadness.org 70 i 29404 Err codemadness.org 70 i 29405


Err codemadness.org 70 i 29406 Err codemadness.org 70 i 29407

##Beastie Bits

Err codemadness.org 70 i 29408 Err codemadness.org 70 i 29409 Err codemadness.org 70 i 29419 Err codemadness.org 70 i 29420


Err codemadness.org 70 i 29421 Err codemadness.org 70 i 29422

##Feedback/Questions

Err codemadness.org 70 i 29423 Err codemadness.org 70 i 29424 Err codemadness.org 70 i 29429 Err codemadness.org 70 i 29430


Err codemadness.org 70 i 29431 Err codemadness.org 70 i 29432
    Err codemadness.org 70 i 29433
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 29434
Err codemadness.org 70 i 29435 Err codemadness.org 70 i 29436


Err codemadness.org 70 i 29437 Err codemadness.org 70 i 29438 ]]> Err codemadness.org 70 i 29442
Err codemadness.org 70 i 29443 Err codemadness.org 70 i 29444 Design and Implementation of NetBSD’s rc.d system, first impressions of Project Trident 18.12, PXE booting a FreeBSD disk image, middle mouse button pasting, NetBSD gains hardware accelerated virtualization, and more.

Err codemadness.org 70 i 29445 Err codemadness.org 70 i 29446

##Headlines
Err codemadness.org 70 i 29447 ###The Design and Implementation of the NetBSD rc.d system

Err codemadness.org 70 i 29448 Err codemadness.org 70 i 29449
    Err codemadness.org 70 i 29450
  • Abstract
  • Err codemadness.org 70 i 29451
Err codemadness.org 70 i 29452 Err codemadness.org 70 i 29453
Err codemadness.org 70 i 29454

In this paper I cover the design and implementation of the rc.d system start-up mechanism in NetBSD 1.5, which replaced the monolithic /etc/rc start-up file inherited from 4.4BSD. Topics covered include a history of various UNIX start-up mechanisms (including NetBSD prior to 1.5), design considerations that evolved over six years of discussions, implementation details, an examination of the human issues that occurred during the design and implementation, as well as future directions for the system.

Err codemadness.org 70 i 29455
Err codemadness.org 70 i 29456 Err codemadness.org 70 i 29457
    Err codemadness.org 70 i 29458
  • Introduction
  • Err codemadness.org 70 i 29459
Err codemadness.org 70 i 29460 Err codemadness.org 70 i 29461
Err codemadness.org 70 i 29462

NetBSD recently converted from the traditional 4.4BSD monolithic /etc/rc start-up script to an /etc/rc.d mechanism, where there is a separate script to manage each service or daemon, and these scripts are executed in a specific order at system boot.
Err codemadness.org 70 i 29463 This paper covers the motivation, design and implementation of the rc.d system; from the history of what NetBSD had before to the system that NetBSD 1.5 shipped with in December 2000, as well as future directions.
Err codemadness.org 70 i 29464 The changes were contentious and generated some of the liveliest discussions about any feature change ever made in NetBSD. Parts of those discussions will be covered to provide insight into some of the design and implementation decisions.

Err codemadness.org 70 i 29465
Err codemadness.org 70 i 29466 Err codemadness.org 70 i 29467
    Err codemadness.org 70 i 29468
  • History
  • Err codemadness.org 70 i 29469
Err codemadness.org 70 i 29470 Err codemadness.org 70 i 29471
Err codemadness.org 70 i 29472

There is great diversity in the system start-up mechanisms used by various UNIX variants. A few of the more pertinent schemes are detailed below. As NetBSD is derived from 4.4BSD, it follows that a description of the latter’s method is relevant. Solaris’ start-up method is also detailed, as it is the most common System V UNIX variant.

Err codemadness.org 70 i 29473
Err codemadness.org 70 i 29474 Err codemadness.org 70 i 29475


Err codemadness.org 70 i 29476 Err codemadness.org 70 i 29477

###First impressions of Project Trident 18.12

Err codemadness.org 70 i 29478 Err codemadness.org 70 i 29479
Err codemadness.org 70 i 29480

Project Trident (hereafter referred to as Trident) is a desktop operating system based on TrueOS. Trident takes the rolling base platform of TrueOS, which is in turn based on FreeBSD’s development branch, and combines it with the Lumina desktop environment.

Err codemadness.org 70 i 29481
Err codemadness.org 70 i 29482 Err codemadness.org 70 i 29483

+Installing

Err codemadness.org 70 i 29484 Err codemadness.org 70 i 29485
Err codemadness.org 70 i 29486

The debut release of Trident is available as a 4.1GB download that can be burned to a disc or transferred to a USB thumb drive. Booting from the Trident media brings up a graphical interface and automatically launches the project’s system installer. Down the left side of the display there are buttons we can click to show hardware information and configuration options. These buttons let us know if our wireless card and video card are compatible with Trident and give us a chance to change our preferred language and keyboard layout. At the bottom of the screen we find buttons that will open a terminal or shutdown the computer.

Err codemadness.org 70 i 29487
Err codemadness.org 70 i 29488 Err codemadness.org 70 i 29489
    Err codemadness.org 70 i 29490
  • Early impressions
  • Err codemadness.org 70 i 29491
Err codemadness.org 70 i 29492 Err codemadness.org 70 i 29493
Err codemadness.org 70 i 29494

Trident boots to a graphical login screen where we can sign into the Lumina desktop or a minimal Fluxbox session. Lumina, by default, uses Fluxbox as its window manager. The Lumina desktop places its panel along the bottom of the screen and an application menu sits in the bottom-left corner. On the desktop we find icons for opening the software manager, launching the Falkon web browser, running the VLC media player, opening the Control Panel and adjusting the Lumina theme.
Err codemadness.org 70 i 29495 The application menu has an unusual and compact layout. The menu shows just a search box and buttons for browsing applications, opening a file manager, accessing desktop settings and signing out. To see what applications are available we can click the Browse Applications entry, which opens a window in the menu where we can scroll through installed programs. This is a bit awkward since the display window is small and only shows a few items at a time.
Err codemadness.org 70 i 29496 Early on I found it is possible to swap out the default “Start menu” with an alternative “Application menu” through the Panels configuration tool. This alternative menu offers a classic tree-style application menu. I found the latter menu easier to navigate as it expands to show all the applications in a selected category.

Err codemadness.org 70 i 29497
Err codemadness.org 70 i 29498 Err codemadness.org 70 i 29499
    Err codemadness.org 70 i 29500
  • Conclusions
  • Err codemadness.org 70 i 29501
Err codemadness.org 70 i 29502 Err codemadness.org 70 i 29503
Err codemadness.org 70 i 29504

I have a lot of mixed feelings and impressions when it comes to Trident. On the one hand, the operating system has some great technology under the hook. It has cutting edge packages from the FreeBSD ecosystem, we have easy access to ZFS, boot environments, and lots of open source packages. Hardware support, at least on my physical workstation, was solid and the Lumina desktop is flexible.

Err codemadness.org 70 i 29505
Err codemadness.org 70 i 29506 Err codemadness.org 70 i 29507


Err codemadness.org 70 i 29508 Err codemadness.org 70 i 29509

##News Roundup
Err codemadness.org 70 i 29510 ###PXE booting of a FreeBSD disk image

Err codemadness.org 70 i 29511 Err codemadness.org 70 i 29512
Err codemadness.org 70 i 29513

I had to set up a regression and network performance lab. This lab will be managed by a Jenkins, but the first step is to understand how to boot a FreeBSD disk by PXE. This article explains a simple way of doing it.
Err codemadness.org 70 i 29514 For information, all these steps were done using 2 PC Engines APU2 (upgraded with latest BIOS for iPXE support), so it’s a headless (serial port only, this can be IPMI SoL with different hardware) .

Err codemadness.org 70 i 29515
Err codemadness.org 70 i 29516 Err codemadness.org 70 i 29517
    Err codemadness.org 70 i 29518
  • THE BIG PICTURE
  • Err codemadness.org 70 i 29519
Err codemadness.org 70 i 29520 Err codemadness.org 70 i 29521
Err codemadness.org 70 i 29522

Before explaining all steps and command line, here is the full big picture of the final process.

Err codemadness.org 70 i 29523
Err codemadness.org 70 i 29524 Err codemadness.org 70 i 29525


Err codemadness.org 70 i 29526 Err codemadness.org 70 i 29527

###Why I like middle mouse button paste in xterm so much

Err codemadness.org 70 i 29528 Err codemadness.org 70 i 29529
Err codemadness.org 70 i 29530

In my entry about how touchpads are not mice, I mused that one of the things I should do on my laptop was insure that I had a keyboard binding for paste, since middle mouse button is one of the harder multi-finger gestures to land on a touchpad. Kurt Mosiejczuk recently left a comment there where they said:
Err codemadness.org 70 i 29531 Shift-Insert is a keyboard equivalent for paste that is in default xterm (at least OpenBSD xterm, and putty on Windows too). I use that most of the time now as it seems less… trigger-happy than right click paste.
Err codemadness.org 70 i 29532 This sparked some thoughts, because I can’t imagine giving up middle mouse paste if I have a real choice. I had earlier seen shift-insert mentioned in other commentary on my entry and so have tried a bit to use it on my laptop, and it hasn’t really felt great even there; on my desktops, it’s even less appealing (I tried shift-insert out there to confirm that it did work in my set of wacky X resources).
Err codemadness.org 70 i 29533 In thinking about why this is, I came to the obvious realization about why all of this is so. I like middle mouse button paste in normal usage because it’s so convenient, because almost all of the time my hand is already on the mouse. And the reason my hand is already on the mouse is because I’ve just used the mouse to shift focus to the window I want to paste into. Even on my laptop, my right hand is usually away from the keyboard as I move the mouse pointer on the touchpad, making shift-Insert at least somewhat awkward.

Err codemadness.org 70 i 29534
Err codemadness.org 70 i 29535 Err codemadness.org 70 i 29536


Err codemadness.org 70 i 29537 Err codemadness.org 70 i 29538

###NetBSD Gains Hardware Accelerated Virtualization

Err codemadness.org 70 i 29539 Err codemadness.org 70 i 29540
    Err codemadness.org 70 i 29541
  • NetBSD Virtual Machine Monitor
  • Err codemadness.org 70 i 29542
Err codemadness.org 70 i 29543 Err codemadness.org 70 i 29544
Err codemadness.org 70 i 29545

NVMM provides hardware-accelerated virtualization support for NetBSD. It is made of an ~MI frontend, to which MD backends can be plugged. A virtualization API is shipped via libnvmm, that allows to easily create and manage virtual machines via NVMM. Two additional components are shipped as demonstrators, toyvirt and smallkern: the former is a toy virtualizer, that executes in a VM the 64bit ELF binary given as argument, the latter is an example of such binary.

Err codemadness.org 70 i 29546
Err codemadness.org 70 i 29547 Err codemadness.org 70 i 29548


Err codemadness.org 70 i 29549 Err codemadness.org 70 i 29550

##Beastie Bits

Err codemadness.org 70 i 29551 Err codemadness.org 70 i 29552 Err codemadness.org 70 i 29562 Err codemadness.org 70 i 29563


Err codemadness.org 70 i 29564 Err codemadness.org 70 i 29565

##Feedback/Questions

Err codemadness.org 70 i 29566 Err codemadness.org 70 i 29567 Err codemadness.org 70 i 29572 Err codemadness.org 70 i 29573


Err codemadness.org 70 i 29574 Err codemadness.org 70 i 29575
    Err codemadness.org 70 i 29576
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 29577
Err codemadness.org 70 i 29578 Err codemadness.org 70 i 29579


Err codemadness.org 70 i 29580 Err codemadness.org 70 i 29581 ]]> Err codemadness.org 70 i 29585
Err codemadness.org 70 i 29586 https://fireside.fm/player/v2/FYhhasNR+ru4x83lT Err codemadness.org 70 i 29587 Err codemadness.org 70 i 29588 ]]> Err codemadness.org 70 i 29589 Err codemadness.org 70 i 29590
Err codemadness.org 70 i 29591 Err codemadness.org 70 i 29592 286: Old Machine Revival Err codemadness.org 70 i 29593 https://www.bsdnow.tv/286 Err codemadness.org 70 i 29594 d6eb1003-7d6d-447e-bd77-68ae1e60c19d Err codemadness.org 70 i 29595 Thu, 21 Feb 2019 13:00:00 -0800 Err codemadness.org 70 i 29596 Allan Jude Err codemadness.org 70 i 29597 Err codemadness.org 70 i 29598 full Err codemadness.org 70 i 29599 Allan Jude Err codemadness.org 70 i 29600 Adding glue to a desktop environment, flashing the BIOS on a PC Engine, revive a Cisco IDS into a capable OpenBSD computer, An OpenBSD WindowMaker desktop, RealTime data compression, the love for pipes, and more. Err codemadness.org 70 i 29601 1:18:56 Err codemadness.org 70 i 29602 no Err codemadness.org 70 i 29603 Err codemadness.org 70 i 29604 Adding glue to a desktop environment, flashing the BIOS on a PC Engine, revive a Cisco IDS into a capable OpenBSD computer, An OpenBSD WindowMaker desktop, RealTime data compression, the love for pipes, and more. Err codemadness.org 70 i 29605 <p>##Headlines<br> Err codemadness.org 70 i 29606 ###<a href="https://venam.nixers.net/blog/unix/2019/01/07/win-automation.html">Adding Glue To a Desktop Environment</a></p> Err codemadness.org 70 i 29607 <blockquote> Err codemadness.org 70 i 29608 <p>In this article we will put some light on a lot of tools used in the world of Unix desktop environment customization, particularly regarding wmctrl, wmutils, xev, xtruss, xwininfo, xprop, xdotools, xdo, sxhkd, xbindkeys, speckeysd, xchainkeys, alttab, triggerhappy, gTile, gidmgr, keynav, and more. If those don’t make sense then this article will help. Let’s hope this can open your mind to new possibilities.<br> Err codemadness.org 70 i 29609 With that in mind we can wonder if what’s actually needed from a window manager, presentation and operation, can be split up and complemented with other tools. We can also start thinking laterally, the communication and interaction between the different components of the environment. We have the freedom to do so because the X protocol is transparent and components usually implement many standards for interfacing between windows. It’s like gluing parts together to create a desktop environment.</p> Err codemadness.org 70 i 29610 </blockquote> Err codemadness.org 70 i 29611 <ul> Err codemadness.org 70 i 29612 <li>The tools we’ll talk about fall into one of those categories:</li> Err codemadness.org 70 i 29613 <li>Debugging</li> Err codemadness.org 70 i 29614 <li>Window manipulation</li> Err codemadness.org 70 i 29615 <li>Simulation of interaction</li> Err codemadness.org 70 i 29616 <li>Extended manipulation</li> Err codemadness.org 70 i 29617 <li>Hotkey daemon</li> Err codemadness.org 70 i 29618 <li>Layout manager</li> Err codemadness.org 70 i 29619 </ul> Err codemadness.org 70 i 29620 <hr> Err codemadness.org 70 i 29621 <p>###<a href="https://github.com/lattera/articles/blob/master/hardware/apu/2019-02-05_flashing_bios/article.md">Flashing the BIOS on the PC Engines APU4c4</a></p> Err codemadness.org 70 i 29622 <blockquote> Err codemadness.org 70 i 29623 <p>I absolutely love the PC Engines APU devices. I use them for testing HardenedBSD experimental features in more constrained 64-bit environments and firewalls. Their USB and mSATA ports have a few quirks, and I bumped up against a major quirk that required flashing a different BIOS as a workaround. This article details the hacky way in which I went about doing that.<br> Err codemadness.org 70 i 29624 What prompted this article is that something in either the CAM or GEOM layer in FreeBSD 11.2 caused the mSATA to hang, preventing file writes. OPNsense 18.7 uses FreeBSD 11.1 whereas the recently-released OPNsense 19.1 uses HardenedBSD 11.2 (based on FreeBSD 11.2). I reached out to PC Engines directly, and they let me know that the issue is a known BIOS issue. Flashing the “legacy” BIOS series would provide me with a working system.<br> Err codemadness.org 70 i 29625 It also just so happens that a new “legacy” BIOS version was just released which turns on ECC mode for the RAM. So, I get a working OPNsense install AND ECC RAM! I’ll have one bird for dinner, the other for dessert.<br> Err codemadness.org 70 i 29626 Though I’m using an APU4, these instructions should work for the other APU devices. The BIOS ROM download URLs should be changed to reflect the device you’re targeting along with the BIOS version you wish to deploy.<br> Err codemadness.org 70 i 29627 SPECIAL NOTE: There be dragons! I’m primarily writing this article to document the procedure for my own purposes. My memory tends to be pretty faulty these days. So, if something goes wrong, please do not hold me responsible. You’re the one at the keyboard. ;)<br> Err codemadness.org 70 i 29628 VERY SPECIAL NOTE: We’ll use the mSATA drive for swap space, just in case. Should the swap space be used, it will destroy whatever is on the disk.</p> Err codemadness.org 70 i 29629 </blockquote> Err codemadness.org 70 i 29630 <hr> Err codemadness.org 70 i 29631 <p>##News Roundup<br> Err codemadness.org 70 i 29632 <a href="https://komlositech.wordpress.com/2018/12/30/revive-a-cisco-ids-into-a-capable-openbsd-firewall/">Revive a Cisco IDS into a capable OpenBSD computer!</a></p> Err codemadness.org 70 i 29633 <blockquote> Err codemadness.org 70 i 29634 <p>Even though Cisco equipment is very capable, it tends to become End-of-Life before you can say “planned obsolescence”. Websites become bigger, bandwidths increase, and as a side effect of those “improvements”, routers, firewalls, and in this case, intrusion prevention systems get old quicker and quicker.<br> Err codemadness.org 70 i 29635 Apparently, this was also the case for the Cisco IDS-4215 Intrusion Detection Sensor that I was given a few months ago.<br> Err codemadness.org 70 i 29636 I’m not too proud to admit that at first, I didn’t care about the machine itself, but rather about the add-on PCI network card with 4 Fast Ethernet interfaces. The sensor has obviously seen better days, as it had a broken front panel and needed some cleaning, but upon a closer inspection under the hood (which is held closed by the 4 screws on top), this IDS consists of an embedded Celeron PC with two onboard Ethernet cards, a 2.5″ IDE hard disk, a CF card, and 2 PCI expansion slots (more on them later). Oh, and don’t forget the nasty server-grade fan, which pushed very little air for the noise it was making.</p> Err codemadness.org 70 i 29637 </blockquote> Err codemadness.org 70 i 29638 <hr> Err codemadness.org 70 i 29639 <p>###<a href="https://www.tumfatig.net/20190215/an-openbsd-desktop-using-windowmaker/?utm_source=discoverbsd">An OpenBSD desktop using WindowMaker</a></p> Err codemadness.org 70 i 29640 <blockquote> Err codemadness.org 70 i 29641 <p>Since I started using N?X, I’ve regularly used WindowMaker. I’ve always liked the look and feel, the dock system and the dockapps. It may look a bit oldish nowadays. And that’s enough to try to change this. So here it is, a 2019 flavored WindowMaker Desktop, running on OpenBSD 6.4/amd64.<br> Err codemadness.org 70 i 29642 This configuration uses the Nord color-scheme, the Adapta-Nokto-Eta GTK theme and the Moblin Unofficial Icons icon set. I did remove applications icons. I just don’t need them on the bottom of the screen as I heavily use “F11” to pop-up the windows list. To be able to do that and keep the dockapps, I tweaked my ~/GNUstep/Defaults/WMWindowAttributes and created a ~/GNUstep/Library/WindowMaker/Themes/Nord.themed/style.<br> Err codemadness.org 70 i 29643 And here it is, the NeXT OpenBSD Desktop!</p> Err codemadness.org 70 i 29644 </blockquote> Err codemadness.org 70 i 29645 <hr> Err codemadness.org 70 i 29646 <p>###<a href="https://fastcompression.blogspot.com/2019/01/opaque-types-and-static-allocation.html">RealTime Data Compression</a></p> Err codemadness.org 70 i 29647 <blockquote> Err codemadness.org 70 i 29648 <p>In a previous episode, we’ve seen that it is possible to create opaque types. However, creation and destruction of such type must be delegated to some dedicated functions, which themselves rely on dynamic allocation mechanisms.<br> Err codemadness.org 70 i 29649 Sometimes, it can be convenient to bypass the heap, and all its malloc() / free() shenanigans. Pushing a structure onto the stack, or within thread-local storage, are natural capabilities offered by a normal struct. It can be desirable at times.<br> Err codemadness.org 70 i 29650 The previously described opaque type is so secret that it has no size, hence is not suitable for such scenario.<br> Err codemadness.org 70 i 29651 Fortunately, static opaque types are possible.<br> Err codemadness.org 70 i 29652 The main idea is to create a “shell type”, with a known size and an alignment, able to host the target (private) structure.<br> Err codemadness.org 70 i 29653 For safer maintenance, the shell type and the target structure must be kept in sync, by using typically a static assert. It will ensure that the shell type is always large enough to host the target structure. This check is important to automatically detect future evolution of the target structure.</p> Err codemadness.org 70 i 29654 </blockquote> Err codemadness.org 70 i 29655 <hr> Err codemadness.org 70 i 29656 <p>###<a href="https://blog.jessfraz.com/post/for-the-love-of-pipes/">For the Love of Pipes</a></p> Err codemadness.org 70 i 29657 <blockquote> Err codemadness.org 70 i 29658 <p>My top used shell command is |. This is called a pipe.<br> Err codemadness.org 70 i 29659 In brief, the | allows for the output of one program (on the left) to become the input of another program (on the right). It is a way of connecting two commands together.<br> Err codemadness.org 70 i 29660 According to <a href="http://doc.cat-v.org/unix/pipes/">doc.cat-v.org/unix/pipes/</a>, the origin of pipes came long before Unix. Pipes can be traced back to this note from Doug McIlroy in 1964</p> Err codemadness.org 70 i 29661 </blockquote> Err codemadness.org 70 i 29662 <hr> Err codemadness.org 70 i 29663 <p>##Beastie Bits</p> Err codemadness.org 70 i 29664 <ul> Err codemadness.org 70 i 29665 <li><a href="https://scontent-iad3-1.xx.fbcdn.net/v/t1.0-9/52532824_10216880223150142_5567720793346932736_n.jpg?_nc_cat=100&amp;_nc_ht=scontent-iad3-1.xx&amp;oh=f4de0999bd268725b39969435c1e2d82&amp;oe=5D23255E">Installation Notes for NetBSD/i386 0.9</a></li> Err codemadness.org 70 i 29666 <li><a href="http://coypu.sdf.org/porting-zig.html">Porting Zig to NetBSD - a fun, speedy port</a></li> Err codemadness.org 70 i 29667 <li><a href="https://github.com/jarun/nnn/blob/master/README.md">NNN - Tiny, lightning fast, feature-packed file manager Release v2.3</a></li> Err codemadness.org 70 i 29668 <li><a href="https://github.com/aioobe/eta">eta - A tool for monitoring progress and ETA of an arbitrary process<br> Err codemadness.org 70 i 29669 </a></li> Err codemadness.org 70 i 29670 <li><a href="https://www.youtube.com/watch?v=OxB70pg5Tsg&amp;feature=share">A FreeBSD User Tries Out…NetBSD 8.0</a></li> Err codemadness.org 70 i 29671 <li><a href="http://www.grenadille.net/post/2019/02/18/Faster-vlan%284%29-forwarding">Faster vlan(4) forwarding?</a></li> Err codemadness.org 70 i 29672 <li><a href="http://fuguita.org/">FuguIta - OpenBSD 6.4 Live System</a></li> Err codemadness.org 70 i 29673 <li><a href="https://chargen.one/steve/adding-name-based-hosting-to-nginx-on-openbsd-with-acme-client">Adding Name-based hosting To Nginx on OpenBSD with Acme-Client</a></li> Err codemadness.org 70 i 29674 <li><a href="http://polprog.net/blog/netbsd-hax/">HOWTO set up QEMU with HAXM acceleration on NetBSD</a></li> Err codemadness.org 70 i 29675 <li><a href="https://mail-index.netbsd.org/current-users/2019/02/07/msg035054.html">README: gcc 7 switch coming to a port near you!</a></li> Err codemadness.org 70 i 29676 </ul> Err codemadness.org 70 i 29677 <hr> Err codemadness.org 70 i 29678 <p>##BUG Calendar</p> Err codemadness.org 70 i 29679 <ul> Err codemadness.org 70 i 29680 <li>ChiBUG, Chicago, USA: <a href="https://chibug.org/">Tuesday, February 26th 18:00 at the Oak Park Library</a></li> Err codemadness.org 70 i 29681 <li>CharmBUG, Baltimore, USA: <a href="https://www.meetup.com/CharmBUG/">Wednesday, February 27, 2019<br> Err codemadness.org 70 i 29682 19:30 at Columbia Ale House</a></li> Err codemadness.org 70 i 29683 <li>NYCBUG, New York, USA: <a href="https://www.nycbug.org/index">Wednesday, March 6, 2019 18:45 at Suspenders</a></li> Err codemadness.org 70 i 29684 <li>KnoxBUG, Knoxville, USA: <a href="http://knoxbug.org">Monday, February 25, 2019 - 18:00 at iX Systems offices </a></li> Err codemadness.org 70 i 29685 <li>BSDPL, Warsaw, Poland: <a href="https://bsd-pl.org/en">February 28, 2019 18:15 - 21:00 at Wheel Systems Office</a></li> Err codemadness.org 70 i 29686 </ul> Err codemadness.org 70 i 29687 <hr> Err codemadness.org 70 i 29688 <p>##Feedback/Questions</p> Err codemadness.org 70 i 29689 <ul> Err codemadness.org 70 i 29690 <li>Sam - <a href="http://dpaste.com/2NP4VGE#wrap">Customizing OpenBSD ports source code</a></li> Err codemadness.org 70 i 29691 <li>Frank - <a href="http://dpaste.com/1EHYHQ1#wrap">Rivalry Linux &amp; BSD</a></li> Err codemadness.org 70 i 29692 <li>Zach - <a href="http://dpaste.com/13GGAED">mysql/mariadb tuning</a></li> Err codemadness.org 70 i 29693 </ul> Err codemadness.org 70 i 29694 <hr> Err codemadness.org 70 i 29695 <ul> Err codemadness.org 70 i 29696 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 29697 </ul> Err codemadness.org 70 i 29698 <hr> Err codemadness.org 70 i 29699 <video controls preload="metadata" style=" width:426px; height:240px;"> Err codemadness.org 70 i 29700 <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0286.mp4" type="video/mp4"> Err codemadness.org 70 i 29701 Your browser does not support the HTML5 video tag. Err codemadness.org 70 i 29702 </video> Err codemadness.org 70 i 29703 Err codemadness.org 70 i 29704 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 29705 Err codemadness.org 70 i 29706 Adding glue to a desktop environment, flashing the BIOS on a PC Engine, revive a Cisco IDS into a capable OpenBSD computer, An OpenBSD WindowMaker desktop, RealTime data compression, the love for pipes, and more.

Err codemadness.org 70 i 29707 Err codemadness.org 70 i 29708

##Headlines
Err codemadness.org 70 i 29709 ###Adding Glue To a Desktop Environment

Err codemadness.org 70 i 29710 Err codemadness.org 70 i 29711
Err codemadness.org 70 i 29712

In this article we will put some light on a lot of tools used in the world of Unix desktop environment customization, particularly regarding wmctrl, wmutils, xev, xtruss, xwininfo, xprop, xdotools, xdo, sxhkd, xbindkeys, speckeysd, xchainkeys, alttab, triggerhappy, gTile, gidmgr, keynav, and more. If those don’t make sense then this article will help. Let’s hope this can open your mind to new possibilities.
Err codemadness.org 70 i 29713 With that in mind we can wonder if what’s actually needed from a window manager, presentation and operation, can be split up and complemented with other tools. We can also start thinking laterally, the communication and interaction between the different components of the environment. We have the freedom to do so because the X protocol is transparent and components usually implement many standards for interfacing between windows. It’s like gluing parts together to create a desktop environment.

Err codemadness.org 70 i 29714
Err codemadness.org 70 i 29715 Err codemadness.org 70 i 29716
    Err codemadness.org 70 i 29717
  • The tools we’ll talk about fall into one of those categories:
  • Err codemadness.org 70 i 29718
  • Debugging
  • Err codemadness.org 70 i 29719
  • Window manipulation
  • Err codemadness.org 70 i 29720
  • Simulation of interaction
  • Err codemadness.org 70 i 29721
  • Extended manipulation
  • Err codemadness.org 70 i 29722
  • Hotkey daemon
  • Err codemadness.org 70 i 29723
  • Layout manager
  • Err codemadness.org 70 i 29724
Err codemadness.org 70 i 29725 Err codemadness.org 70 i 29726


Err codemadness.org 70 i 29727 Err codemadness.org 70 i 29728

###Flashing the BIOS on the PC Engines APU4c4

Err codemadness.org 70 i 29729 Err codemadness.org 70 i 29730
Err codemadness.org 70 i 29731

I absolutely love the PC Engines APU devices. I use them for testing HardenedBSD experimental features in more constrained 64-bit environments and firewalls. Their USB and mSATA ports have a few quirks, and I bumped up against a major quirk that required flashing a different BIOS as a workaround. This article details the hacky way in which I went about doing that.
Err codemadness.org 70 i 29732 What prompted this article is that something in either the CAM or GEOM layer in FreeBSD 11.2 caused the mSATA to hang, preventing file writes. OPNsense 18.7 uses FreeBSD 11.1 whereas the recently-released OPNsense 19.1 uses HardenedBSD 11.2 (based on FreeBSD 11.2). I reached out to PC Engines directly, and they let me know that the issue is a known BIOS issue. Flashing the “legacy” BIOS series would provide me with a working system.
Err codemadness.org 70 i 29733 It also just so happens that a new “legacy” BIOS version was just released which turns on ECC mode for the RAM. So, I get a working OPNsense install AND ECC RAM! I’ll have one bird for dinner, the other for dessert.
Err codemadness.org 70 i 29734 Though I’m using an APU4, these instructions should work for the other APU devices. The BIOS ROM download URLs should be changed to reflect the device you’re targeting along with the BIOS version you wish to deploy.
Err codemadness.org 70 i 29735 SPECIAL NOTE: There be dragons! I’m primarily writing this article to document the procedure for my own purposes. My memory tends to be pretty faulty these days. So, if something goes wrong, please do not hold me responsible. You’re the one at the keyboard. ;)
Err codemadness.org 70 i 29736 VERY SPECIAL NOTE: We’ll use the mSATA drive for swap space, just in case. Should the swap space be used, it will destroy whatever is on the disk.

Err codemadness.org 70 i 29737
Err codemadness.org 70 i 29738 Err codemadness.org 70 i 29739


Err codemadness.org 70 i 29740 Err codemadness.org 70 i 29741

##News Roundup
Err codemadness.org 70 i 29742 ###Revive a Cisco IDS into a capable OpenBSD computer!

Err codemadness.org 70 i 29743 Err codemadness.org 70 i 29744
Err codemadness.org 70 i 29745

Even though Cisco equipment is very capable, it tends to become End-of-Life before you can say “planned obsolescence”. Websites become bigger, bandwidths increase, and as a side effect of those “improvements”, routers, firewalls, and in this case, intrusion prevention systems get old quicker and quicker.
Err codemadness.org 70 i 29746 Apparently, this was also the case for the Cisco IDS-4215 Intrusion Detection Sensor that I was given a few months ago.
Err codemadness.org 70 i 29747 I’m not too proud to admit that at first, I didn’t care about the machine itself, but rather about the add-on PCI network card with 4 Fast Ethernet interfaces. The sensor has obviously seen better days, as it had a broken front panel and needed some cleaning, but upon a closer inspection under the hood (which is held closed by the 4 screws on top), this IDS consists of an embedded Celeron PC with two onboard Ethernet cards, a 2.5″ IDE hard disk, a CF card, and 2 PCI expansion slots (more on them later). Oh, and don’t forget the nasty server-grade fan, which pushed very little air for the noise it was making.

Err codemadness.org 70 i 29748
Err codemadness.org 70 i 29749 Err codemadness.org 70 i 29750


Err codemadness.org 70 i 29751 Err codemadness.org 70 i 29752

###An OpenBSD desktop using WindowMaker

Err codemadness.org 70 i 29753 Err codemadness.org 70 i 29754
Err codemadness.org 70 i 29755

Since I started using *N?X, I’ve regularly used WindowMaker. I’ve always liked the look and feel, the dock system and the dockapps. It may look a bit oldish nowadays. And that’s enough to try to change this. So here it is, a 2019 flavored WindowMaker Desktop, running on OpenBSD 6.4/amd64.
Err codemadness.org 70 i 29756 This configuration uses the Nord color-scheme, the Adapta-Nokto-Eta GTK theme and the Moblin Unofficial Icons icon set. I did remove applications icons. I just don’t need them on the bottom of the screen as I heavily use “F11” to pop-up the windows list. To be able to do that and keep the dockapps, I tweaked my ~/GNUstep/Defaults/WMWindowAttributes and created a ~/GNUstep/Library/WindowMaker/Themes/Nord.themed/style.
Err codemadness.org 70 i 29757 And here it is, the NeXT OpenBSD Desktop!

Err codemadness.org 70 i 29758
Err codemadness.org 70 i 29759 Err codemadness.org 70 i 29760


Err codemadness.org 70 i 29761 Err codemadness.org 70 i 29762

###RealTime Data Compression

Err codemadness.org 70 i 29763 Err codemadness.org 70 i 29764
Err codemadness.org 70 i 29765

In a previous episode, we’ve seen that it is possible to create opaque types. However, creation and destruction of such type must be delegated to some dedicated functions, which themselves rely on dynamic allocation mechanisms.
Err codemadness.org 70 i 29766 Sometimes, it can be convenient to bypass the heap, and all its malloc() / free() shenanigans. Pushing a structure onto the stack, or within thread-local storage, are natural capabilities offered by a normal struct. It can be desirable at times.
Err codemadness.org 70 i 29767 The previously described opaque type is so secret that it has no size, hence is not suitable for such scenario.
Err codemadness.org 70 i 29768 Fortunately, static opaque types are possible.
Err codemadness.org 70 i 29769 The main idea is to create a “shell type”, with a known size and an alignment, able to host the target (private) structure.
Err codemadness.org 70 i 29770 For safer maintenance, the shell type and the target structure must be kept in sync, by using typically a static assert. It will ensure that the shell type is always large enough to host the target structure. This check is important to automatically detect future evolution of the target structure.

Err codemadness.org 70 i 29771
Err codemadness.org 70 i 29772 Err codemadness.org 70 i 29773


Err codemadness.org 70 i 29774 Err codemadness.org 70 i 29775

###For the Love of Pipes

Err codemadness.org 70 i 29776 Err codemadness.org 70 i 29777
Err codemadness.org 70 i 29778

My top used shell command is |. This is called a pipe.
Err codemadness.org 70 i 29779 In brief, the | allows for the output of one program (on the left) to become the input of another program (on the right). It is a way of connecting two commands together.
Err codemadness.org 70 i 29780 According to doc.cat-v.org/unix/pipes/, the origin of pipes came long before Unix. Pipes can be traced back to this note from Doug McIlroy in 1964

Err codemadness.org 70 i 29781
Err codemadness.org 70 i 29782 Err codemadness.org 70 i 29783


Err codemadness.org 70 i 29784 Err codemadness.org 70 i 29785

##Beastie Bits

Err codemadness.org 70 i 29786 Err codemadness.org 70 i 29787 Err codemadness.org 70 i 29800 Err codemadness.org 70 i 29801


Err codemadness.org 70 i 29802 Err codemadness.org 70 i 29803

##BUG Calendar

Err codemadness.org 70 i 29804 Err codemadness.org 70 i 29805 Err codemadness.org 70 i 29813 Err codemadness.org 70 i 29814


Err codemadness.org 70 i 29815 Err codemadness.org 70 i 29816

##Feedback/Questions

Err codemadness.org 70 i 29817 Err codemadness.org 70 i 29818 Err codemadness.org 70 i 29823 Err codemadness.org 70 i 29824


Err codemadness.org 70 i 29825 Err codemadness.org 70 i 29826
    Err codemadness.org 70 i 29827
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 29828
Err codemadness.org 70 i 29829 Err codemadness.org 70 i 29830


Err codemadness.org 70 i 29831 Err codemadness.org 70 i 29832 ]]> Err codemadness.org 70 i 29836
Err codemadness.org 70 i 29837 Err codemadness.org 70 i 29838 Adding glue to a desktop environment, flashing the BIOS on a PC Engine, revive a Cisco IDS into a capable OpenBSD computer, An OpenBSD WindowMaker desktop, RealTime data compression, the love for pipes, and more.

Err codemadness.org 70 i 29839 Err codemadness.org 70 i 29840

##Headlines
Err codemadness.org 70 i 29841 ###Adding Glue To a Desktop Environment

Err codemadness.org 70 i 29842 Err codemadness.org 70 i 29843
Err codemadness.org 70 i 29844

In this article we will put some light on a lot of tools used in the world of Unix desktop environment customization, particularly regarding wmctrl, wmutils, xev, xtruss, xwininfo, xprop, xdotools, xdo, sxhkd, xbindkeys, speckeysd, xchainkeys, alttab, triggerhappy, gTile, gidmgr, keynav, and more. If those don’t make sense then this article will help. Let’s hope this can open your mind to new possibilities.
Err codemadness.org 70 i 29845 With that in mind we can wonder if what’s actually needed from a window manager, presentation and operation, can be split up and complemented with other tools. We can also start thinking laterally, the communication and interaction between the different components of the environment. We have the freedom to do so because the X protocol is transparent and components usually implement many standards for interfacing between windows. It’s like gluing parts together to create a desktop environment.

Err codemadness.org 70 i 29846
Err codemadness.org 70 i 29847 Err codemadness.org 70 i 29848
    Err codemadness.org 70 i 29849
  • The tools we’ll talk about fall into one of those categories:
  • Err codemadness.org 70 i 29850
  • Debugging
  • Err codemadness.org 70 i 29851
  • Window manipulation
  • Err codemadness.org 70 i 29852
  • Simulation of interaction
  • Err codemadness.org 70 i 29853
  • Extended manipulation
  • Err codemadness.org 70 i 29854
  • Hotkey daemon
  • Err codemadness.org 70 i 29855
  • Layout manager
  • Err codemadness.org 70 i 29856
Err codemadness.org 70 i 29857 Err codemadness.org 70 i 29858


Err codemadness.org 70 i 29859 Err codemadness.org 70 i 29860

###Flashing the BIOS on the PC Engines APU4c4

Err codemadness.org 70 i 29861 Err codemadness.org 70 i 29862
Err codemadness.org 70 i 29863

I absolutely love the PC Engines APU devices. I use them for testing HardenedBSD experimental features in more constrained 64-bit environments and firewalls. Their USB and mSATA ports have a few quirks, and I bumped up against a major quirk that required flashing a different BIOS as a workaround. This article details the hacky way in which I went about doing that.
Err codemadness.org 70 i 29864 What prompted this article is that something in either the CAM or GEOM layer in FreeBSD 11.2 caused the mSATA to hang, preventing file writes. OPNsense 18.7 uses FreeBSD 11.1 whereas the recently-released OPNsense 19.1 uses HardenedBSD 11.2 (based on FreeBSD 11.2). I reached out to PC Engines directly, and they let me know that the issue is a known BIOS issue. Flashing the “legacy” BIOS series would provide me with a working system.
Err codemadness.org 70 i 29865 It also just so happens that a new “legacy” BIOS version was just released which turns on ECC mode for the RAM. So, I get a working OPNsense install AND ECC RAM! I’ll have one bird for dinner, the other for dessert.
Err codemadness.org 70 i 29866 Though I’m using an APU4, these instructions should work for the other APU devices. The BIOS ROM download URLs should be changed to reflect the device you’re targeting along with the BIOS version you wish to deploy.
Err codemadness.org 70 i 29867 SPECIAL NOTE: There be dragons! I’m primarily writing this article to document the procedure for my own purposes. My memory tends to be pretty faulty these days. So, if something goes wrong, please do not hold me responsible. You’re the one at the keyboard. ;)
Err codemadness.org 70 i 29868 VERY SPECIAL NOTE: We’ll use the mSATA drive for swap space, just in case. Should the swap space be used, it will destroy whatever is on the disk.

Err codemadness.org 70 i 29869
Err codemadness.org 70 i 29870 Err codemadness.org 70 i 29871


Err codemadness.org 70 i 29872 Err codemadness.org 70 i 29873

##News Roundup
Err codemadness.org 70 i 29874 ###Revive a Cisco IDS into a capable OpenBSD computer!

Err codemadness.org 70 i 29875 Err codemadness.org 70 i 29876
Err codemadness.org 70 i 29877

Even though Cisco equipment is very capable, it tends to become End-of-Life before you can say “planned obsolescence”. Websites become bigger, bandwidths increase, and as a side effect of those “improvements”, routers, firewalls, and in this case, intrusion prevention systems get old quicker and quicker.
Err codemadness.org 70 i 29878 Apparently, this was also the case for the Cisco IDS-4215 Intrusion Detection Sensor that I was given a few months ago.
Err codemadness.org 70 i 29879 I’m not too proud to admit that at first, I didn’t care about the machine itself, but rather about the add-on PCI network card with 4 Fast Ethernet interfaces. The sensor has obviously seen better days, as it had a broken front panel and needed some cleaning, but upon a closer inspection under the hood (which is held closed by the 4 screws on top), this IDS consists of an embedded Celeron PC with two onboard Ethernet cards, a 2.5″ IDE hard disk, a CF card, and 2 PCI expansion slots (more on them later). Oh, and don’t forget the nasty server-grade fan, which pushed very little air for the noise it was making.

Err codemadness.org 70 i 29880
Err codemadness.org 70 i 29881 Err codemadness.org 70 i 29882


Err codemadness.org 70 i 29883 Err codemadness.org 70 i 29884

###An OpenBSD desktop using WindowMaker

Err codemadness.org 70 i 29885 Err codemadness.org 70 i 29886
Err codemadness.org 70 i 29887

Since I started using *N?X, I’ve regularly used WindowMaker. I’ve always liked the look and feel, the dock system and the dockapps. It may look a bit oldish nowadays. And that’s enough to try to change this. So here it is, a 2019 flavored WindowMaker Desktop, running on OpenBSD 6.4/amd64.
Err codemadness.org 70 i 29888 This configuration uses the Nord color-scheme, the Adapta-Nokto-Eta GTK theme and the Moblin Unofficial Icons icon set. I did remove applications icons. I just don’t need them on the bottom of the screen as I heavily use “F11” to pop-up the windows list. To be able to do that and keep the dockapps, I tweaked my ~/GNUstep/Defaults/WMWindowAttributes and created a ~/GNUstep/Library/WindowMaker/Themes/Nord.themed/style.
Err codemadness.org 70 i 29889 And here it is, the NeXT OpenBSD Desktop!

Err codemadness.org 70 i 29890
Err codemadness.org 70 i 29891 Err codemadness.org 70 i 29892


Err codemadness.org 70 i 29893 Err codemadness.org 70 i 29894

###RealTime Data Compression

Err codemadness.org 70 i 29895 Err codemadness.org 70 i 29896
Err codemadness.org 70 i 29897

In a previous episode, we’ve seen that it is possible to create opaque types. However, creation and destruction of such type must be delegated to some dedicated functions, which themselves rely on dynamic allocation mechanisms.
Err codemadness.org 70 i 29898 Sometimes, it can be convenient to bypass the heap, and all its malloc() / free() shenanigans. Pushing a structure onto the stack, or within thread-local storage, are natural capabilities offered by a normal struct. It can be desirable at times.
Err codemadness.org 70 i 29899 The previously described opaque type is so secret that it has no size, hence is not suitable for such scenario.
Err codemadness.org 70 i 29900 Fortunately, static opaque types are possible.
Err codemadness.org 70 i 29901 The main idea is to create a “shell type”, with a known size and an alignment, able to host the target (private) structure.
Err codemadness.org 70 i 29902 For safer maintenance, the shell type and the target structure must be kept in sync, by using typically a static assert. It will ensure that the shell type is always large enough to host the target structure. This check is important to automatically detect future evolution of the target structure.

Err codemadness.org 70 i 29903
Err codemadness.org 70 i 29904 Err codemadness.org 70 i 29905


Err codemadness.org 70 i 29906 Err codemadness.org 70 i 29907

###For the Love of Pipes

Err codemadness.org 70 i 29908 Err codemadness.org 70 i 29909
Err codemadness.org 70 i 29910

My top used shell command is |. This is called a pipe.
Err codemadness.org 70 i 29911 In brief, the | allows for the output of one program (on the left) to become the input of another program (on the right). It is a way of connecting two commands together.
Err codemadness.org 70 i 29912 According to doc.cat-v.org/unix/pipes/, the origin of pipes came long before Unix. Pipes can be traced back to this note from Doug McIlroy in 1964

Err codemadness.org 70 i 29913
Err codemadness.org 70 i 29914 Err codemadness.org 70 i 29915


Err codemadness.org 70 i 29916 Err codemadness.org 70 i 29917

##Beastie Bits

Err codemadness.org 70 i 29918 Err codemadness.org 70 i 29919 Err codemadness.org 70 i 29932 Err codemadness.org 70 i 29933


Err codemadness.org 70 i 29934 Err codemadness.org 70 i 29935

##BUG Calendar

Err codemadness.org 70 i 29936 Err codemadness.org 70 i 29937 Err codemadness.org 70 i 29945 Err codemadness.org 70 i 29946


Err codemadness.org 70 i 29947 Err codemadness.org 70 i 29948

##Feedback/Questions

Err codemadness.org 70 i 29949 Err codemadness.org 70 i 29950 Err codemadness.org 70 i 29955 Err codemadness.org 70 i 29956


Err codemadness.org 70 i 29957 Err codemadness.org 70 i 29958
    Err codemadness.org 70 i 29959
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 29960
Err codemadness.org 70 i 29961 Err codemadness.org 70 i 29962


Err codemadness.org 70 i 29963 Err codemadness.org 70 i 29964 ]]> Err codemadness.org 70 i 29968
Err codemadness.org 70 i 29969 https://fireside.fm/player/v2/FYhhasNR+hzVm3TDA Err codemadness.org 70 i 29970 Err codemadness.org 70 i 29971 ]]> Err codemadness.org 70 i 29972 Err codemadness.org 70 i 29973
Err codemadness.org 70 i 29974 Err codemadness.org 70 i 29975 285: BSD Strategy Err codemadness.org 70 i 29976 https://www.bsdnow.tv/285 Err codemadness.org 70 i 29977 b54701c7-6556-42b3-804d-79a1bf9c6bbe Err codemadness.org 70 i 29978 Thu, 14 Feb 2019 07:00:00 -0800 Err codemadness.org 70 i 29979 Allan Jude Err codemadness.org 70 i 29980 Err codemadness.org 70 i 29981 full Err codemadness.org 70 i 29982 Allan Jude Err codemadness.org 70 i 29983 Strategic thinking to keep FreeBSD relevant, reflecting on the soul of a new machine, 10GbE Benchmarks On Nine Linux Distros and FreeBSD, NetBSD integrating LLVM sanitizers in base, FreeNAS 11.2 distrowatch review, and more. Err codemadness.org 70 i 29984 1:09:32 Err codemadness.org 70 i 29985 no Err codemadness.org 70 i 29986 Err codemadness.org 70 i 29987 Strategic thinking to keep FreeBSD relevant, reflecting on the soul of a new machine, 10GbE Benchmarks On Nine Linux Distros and FreeBSD, NetBSD integrating LLVM sanitizers in base, FreeNAS 11.2 distrowatch review, and more. Err codemadness.org 70 i 29988 <p>##Headlines<br> Err codemadness.org 70 i 29989 ###<a href="http://www.leidinger.net/blog/2019/01/27/strategic-thinking-or-what-i-think-what-we-need-to-do-to-keep-freebsd-relevant/">Strategic thinking, or what I think what we need to do to keep FreeBSD relevant</a></p> Err codemadness.org 70 i 29990 <blockquote> Err codemadness.org 70 i 29991 <p>Since I participate in the FreeBSD project there are from time to time some voices which say FreeBSD is dead, Linux is the way to go. Most of the time those voices are trolls, or people which do not really know what FreeBSD has to offer. Sometimes those voices wear blinders, they only see their own little world (were Linux just works fine) and do not see the big picture (like e.g. competition stimulates business, …) or even dare to look what FreeBSD has to offer.<br> Err codemadness.org 70 i 29992 Sometimes those voices raise a valid concern, and it is up to the FreeBSD project to filter out what would be beneficial. Recently there were some mails on the FreeBSD lists in the sense of “What about going into direction X?”. Some people just had the opinion that we should stay where we are. In my opinion this is similarly bad to blindly saying FreeBSD is dead and following the masses. It would mean stagnation. We should not hold people back in exploring new / different directions. Someone wants to write a kernel module in (a subset of) C++ or in Rust… well, go ahead, give it a try, we can put it into the Ports Collection and let people get experience with it.<br> Err codemadness.org 70 i 29993 This discussion on the mailinglists also triggered some kind of “where do we see us in the next years” / strategic thinking reflection. What I present here, is my very own opinion about things we in the FreeBSD project should look at, to stay relevant in the long term. To be able to put that into scope, I need to clarify what “relevant” means in this case.<br> Err codemadness.org 70 i 29994 FreeBSD is currently used by companies like Netflix, NetApp, Cisco, Juniper, and many others as a base for products or services. It is also used by end‐users as a work‐horse (e.g. mailservers, webservers, …). Staying relevant means in this context, to provide something which the user base is interested in to use and which makes it more easy / fast for the user base to deliver whatever they want or need to deliver than with another kind of system. And this in terms of time to market of a solution (time to deliver a service like a web‐/mail‐/whatever‐server or product), and in terms of performance (which not only means speed, but also security and reliability and …) of the solution.<br> Err codemadness.org 70 i 29995 I have categorized the list of items I think are important into (new) code/features, docs, polishing and project infrastructure. Links in the following usually point to documentation/HOWTOs/experiences for/with FreeBSD, and not to the canonical entry points of the projects or technologies. In a few cases the links point to an explanation in the wikipedia or to the website of the topic in question.</p> Err codemadness.org 70 i 29996 </blockquote> Err codemadness.org 70 i 29997 <hr> Err codemadness.org 70 i 29998 <p>###<a href="http://dtrace.org/blogs/bmc/2019/02/10/reflecting-on-the-soul-of-a-new-machine/">Reflecting on The Soul of a New Machine</a></p> Err codemadness.org 70 i 29999 <blockquote> Err codemadness.org 70 i 30000 <p>Long ago as an undergraduate, I found myself back home on a break from school, bored and with eyes wandering idly across a family bookshelf. At school, I had started to find a calling in computing systems, and now in the den, an old book suddenly caught my eye: Tracy Kidder’s The Soul of a New Machine. Taking it off the shelf, the book grabbed me from its first descriptions of Tom West, captivating me with the epic tale of the development of the Eagle at Data General. I — like so many before and after me — found the book to be life changing: by telling the stories of the people behind the machine, the book showed the creative passion among engineers that might otherwise appear anodyne, inspiring me to chart a course that might one day allow me to make a similar mark.<br> Err codemadness.org 70 i 30001 Since reading it over two decades ago, I have recommended The Soul of a Machine at essentially every opportunity, believing that it is a part of computing’s literary foundation — that it should be considered our Odyssey. Recently, I suggested it as beach reading to Jess Frazelle, and apparently with perfect timing: when I saw the book at the top of her vacation pile, I knew a fuse had been lit. I was delighted (though not at all surprised) to see Jess livetweet her admiration of the book, starting with the compelling prose, the lucid technical explanations and the visceral anecdotes — but then moving on to the deeper technical inspiration she found in the book. And as she reached the book’s crescendo, Jess felt its full power, causing her to reflect on the nature of engineering motivation.<br> Err codemadness.org 70 i 30002 Excited to see the effect of the book on Jess, I experienced a kind of reflected recommendation: I was inspired to (re-)read my own recommendation! Shortly after I started reading, I began to realize that (contrary to what I had been telling myself over the years!) I had not re-read the book in full since that first reading so many years ago. Rather, over the years I had merely revisited those sections that I remembered fondly. On the one hand, these sections are singular: the saga of engineers debugging a nasty I-cache data corruption issue; the young engineer who implements the simulator in an impossibly short amount of time because no one wanted to tell him that he was being impossibly ambitious; the engineer who, frustrated with a nanosecond-scale timing problem in the ALU that he designed, moved to a commune in Vermont, claiming a desire to deal with “no unit of time shorter than a season”. But by limiting myself to these passages, I was succumbing to the selection bias of my much younger self; re-reading the book now from start to finish has given new parts depth and meaning. Aspects that were more abstract to me as an undergraduate — from the organizational rivalries and absurdities of the industry to the complexities of West’s character and the tribulations of the team down the stretch — are now deeply evocative of concrete episodes of my own career.</p> Err codemadness.org 70 i 30003 </blockquote> Err codemadness.org 70 i 30004 <ul> Err codemadness.org 70 i 30005 <li>See Article for rest…</li> Err codemadness.org 70 i 30006 </ul> Err codemadness.org 70 i 30007 <hr> Err codemadness.org 70 i 30008 <p>##News Roundup</p> Err codemadness.org 70 i 30009 <p>###<a href="https://www.phoronix.com/scan.php?page=article&amp;item=10gbe-linux-freebsd12&amp;num=1">Out-Of-The-Box 10GbE Network Benchmarks On Nine Linux Distributions Plus FreeBSD 12</a></p> Err codemadness.org 70 i 30010 <blockquote> Err codemadness.org 70 i 30011 <p>Last week I started running some fresh 10GbE Linux networking performance benchmarks across a few different Linux distributions. That testing has now been extended to cover nine Linux distributions plus FreeBSD 12.0 to compare the out-of-the-box networking performance.<br> Err codemadness.org 70 i 30012 Tested this round alongside FreeBSD 12.0 was Antergos 19.1, CentOS 7, Clear Linux, Debian 9.6, Fedora Server 29, openSUSE Leap 15.0, openSUSE Tumbleweed, Ubuntu 18.04.1 LTS, and Ubuntu 18.10.<br> Err codemadness.org 70 i 30013 All of the tests were done with a Tyan S7106 1U server featuring two Intel Xeon Gold 6138 CPUs, 96GB of DDR4 system memory, and Samsung 970 EVO SSD. For the 10GbE connectivity on this server was an add-in HP NC523SFP PCIe adapter providing two 10Gb SPF+ ports using a QLogic 8214 controller.<br> Err codemadness.org 70 i 30014 Originally the plan as well was to include Windows Server 2016/2019. Unfortunately the QLogic driver download site was malfunctioning since Cavium’s acquisition of the company and the other Windows Server 2016 driver options not panning out and there not being a Windows Server 2019 option. So sadly that Windows testing was thwarted so I since started testing over with a Mellanox Connectx-2 10GbE NIC, which is well supported on Windows Server and so that testing is ongoing for the next article of Windows vs. Linux 10 Gigabit network performance plus some “tuned” Linux networking results too.</p> Err codemadness.org 70 i 30015 </blockquote> Err codemadness.org 70 i 30016 <hr> Err codemadness.org 70 i 30017 <p>###<a href="https://blog.netbsd.org/tnf/entry/integration_of_the_llvm_sanitziers">Integration of the LLVM sanitizers with the NetBSD base system</a></p> Err codemadness.org 70 i 30018 <blockquote> Err codemadness.org 70 i 30019 <p>Over the past month I’ve merged the LLVM compiler-rt sanitizers (LLVM svn r350590) with the base system. I’ve also managed to get a functional set of Makefile rules to build all of them, namely:<br> Err codemadness.org 70 i 30020 ASan, UBSan, TSan, MSan, libFuzzer, SafeStack, XRay.<br> Err codemadness.org 70 i 30021 In all supported variations and modes that are supported by the original LLVM compiler-rt package.</p> Err codemadness.org 70 i 30022 </blockquote> Err codemadness.org 70 i 30023 <hr> Err codemadness.org 70 i 30024 <p>###<a href="https://distrowatch.com/weekly.php?issue=20190204#freenas">Distrowatch FreeNAS 11.2 review</a></p> Err codemadness.org 70 i 30025 <blockquote> Err codemadness.org 70 i 30026 <p>The project’s latest release is FreeNAS 11.2 and, at first, I nearly overlooked the new version because it appeared to be a minor point release. However, a lot of work went into the new version and 11.2 offers a lot of changes when compared next to 11.1, “including a major revamp of the web interface, support for self-encrypting drives, and new, backwards-compatible REST and WebSocket APIs. This update also introduces iocage for improved plugins and jails management and simplified plugin development.”</p> Err codemadness.org 70 i 30027 </blockquote> Err codemadness.org 70 i 30028 <hr> Err codemadness.org 70 i 30029 <p>##Beastie Bits</p> Err codemadness.org 70 i 30030 <ul> Err codemadness.org 70 i 30031 <li><a href="https://gist.github.com/zeising/5d2402d92b4cf421c7402d663b2d9e41">Instructions for installing rEFInd to dual boot a computer with FreeBSD and windows (and possibly other OSes as well).</a></li> Err codemadness.org 70 i 30032 <li><a href="https://www.unitedbsd.com/d/12-netbsd-desktop-pt-6-vi1-editor-tmux-and-unicode-term">NetBSD desktop pt.6: “vi(1) editor, tmux and unicode $TERM”</a></li> Err codemadness.org 70 i 30033 <li><a href="https://www.geekrant.org/2005/04/01/unix-flowers/">Unix flowers</a></li> Err codemadness.org 70 i 30034 <li><a href="https://oshogbo.vexillium.org/blog/62/">FreeBSD upgrade procedure using GPT</a></li> Err codemadness.org 70 i 30035 <li><a href="https://chargen.one/steve/backups-on-chargen-one">Pull-based Backups using OpenBSD base*</a></li> Err codemadness.org 70 i 30036 <li><a href="https://github.com/ozaki-r/netbsd-src/tree/wireguard">Developing WireGuard for NetBSD</a></li> Err codemadness.org 70 i 30037 <li><a href="https://zfs.datto.com/">OpenZFS User Conference, April 18-19, Norwalk CT</a></li> Err codemadness.org 70 i 30038 <li><a href="http://knoxbug.org/2019-02-25">KnoxBug Feb 25th</a></li> Err codemadness.org 70 i 30039 </ul> Err codemadness.org 70 i 30040 <hr> Err codemadness.org 70 i 30041 <p>##Feedback/Questions</p> Err codemadness.org 70 i 30042 <ul> Err codemadness.org 70 i 30043 <li>Jake - <a href="http://dpaste.com/3X7KVVX#wrap">C Programming</a></li> Err codemadness.org 70 i 30044 <li>Farhan - <a href="http://dpaste.com/067WW0P">Explanation of rtadvd</a></li> Err codemadness.org 70 i 30045 <li>Nelson - <a href="http://dpaste.com/2BYGFSV">Bug Bounties on Open-Source Software</a></li> Err codemadness.org 70 i 30046 </ul> Err codemadness.org 70 i 30047 <hr> Err codemadness.org 70 i 30048 <ul> Err codemadness.org 70 i 30049 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 30050 </ul> Err codemadness.org 70 i 30051 <hr> Err codemadness.org 70 i 30052 Err codemadness.org 70 i 30053 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 30054 Err codemadness.org 70 i 30055 Strategic thinking to keep FreeBSD relevant, reflecting on the soul of a new machine, 10GbE Benchmarks On Nine Linux Distros and FreeBSD, NetBSD integrating LLVM sanitizers in base, FreeNAS 11.2 distrowatch review, and more.

Err codemadness.org 70 i 30056 Err codemadness.org 70 i 30057

##Headlines
Err codemadness.org 70 i 30058 ###Strategic thinking, or what I think what we need to do to keep FreeBSD relevant

Err codemadness.org 70 i 30059 Err codemadness.org 70 i 30060
Err codemadness.org 70 i 30061

Since I participate in the FreeBSD project there are from time to time some voices which say FreeBSD is dead, Linux is the way to go. Most of the time those voices are trolls, or people which do not really know what FreeBSD has to offer. Sometimes those voices wear blinders, they only see their own little world (were Linux just works fine) and do not see the big picture (like e.g. competition stimulates business, …) or even dare to look what FreeBSD has to offer.
Err codemadness.org 70 i 30062 Sometimes those voices raise a valid concern, and it is up to the FreeBSD project to filter out what would be beneficial. Recently there were some mails on the FreeBSD lists in the sense of “What about going into direction X?”. Some people just had the opinion that we should stay where we are. In my opinion this is similarly bad to blindly saying FreeBSD is dead and following the masses. It would mean stagnation. We should not hold people back in exploring new / different directions. Someone wants to write a kernel module in (a subset of) C++ or in Rust… well, go ahead, give it a try, we can put it into the Ports Collection and let people get experience with it.
Err codemadness.org 70 i 30063 This discussion on the mailinglists also triggered some kind of “where do we see us in the next years” / strategic thinking reflection. What I present here, is my very own opinion about things we in the FreeBSD project should look at, to stay relevant in the long term. To be able to put that into scope, I need to clarify what “relevant” means in this case.
Err codemadness.org 70 i 30064 FreeBSD is currently used by companies like Netflix, NetApp, Cisco, Juniper, and many others as a base for products or services. It is also used by end‐users as a work‐horse (e.g. mailservers, webservers, …). Staying relevant means in this context, to provide something which the user base is interested in to use and which makes it more easy / fast for the user base to deliver whatever they want or need to deliver than with another kind of system. And this in terms of time to market of a solution (time to deliver a service like a web‐/mail‐/whatever‐server or product), and in terms of performance (which not only means speed, but also security and reliability and …) of the solution.
Err codemadness.org 70 i 30065 I have categorized the list of items I think are important into (new) code/features, docs, polishing and project infrastructure. Links in the following usually point to documentation/HOWTOs/experiences for/with FreeBSD, and not to the canonical entry points of the projects or technologies. In a few cases the links point to an explanation in the wikipedia or to the website of the topic in question.

Err codemadness.org 70 i 30066
Err codemadness.org 70 i 30067 Err codemadness.org 70 i 30068


Err codemadness.org 70 i 30069 Err codemadness.org 70 i 30070

###Reflecting on The Soul of a New Machine

Err codemadness.org 70 i 30071 Err codemadness.org 70 i 30072
Err codemadness.org 70 i 30073

Long ago as an undergraduate, I found myself back home on a break from school, bored and with eyes wandering idly across a family bookshelf. At school, I had started to find a calling in computing systems, and now in the den, an old book suddenly caught my eye: Tracy Kidder’s The Soul of a New Machine. Taking it off the shelf, the book grabbed me from its first descriptions of Tom West, captivating me with the epic tale of the development of the Eagle at Data General. I — like so many before and after me — found the book to be life changing: by telling the stories of the people behind the machine, the book showed the creative passion among engineers that might otherwise appear anodyne, inspiring me to chart a course that might one day allow me to make a similar mark.
Err codemadness.org 70 i 30074 Since reading it over two decades ago, I have recommended The Soul of a Machine at essentially every opportunity, believing that it is a part of computing’s literary foundation — that it should be considered our Odyssey. Recently, I suggested it as beach reading to Jess Frazelle, and apparently with perfect timing: when I saw the book at the top of her vacation pile, I knew a fuse had been lit. I was delighted (though not at all surprised) to see Jess livetweet her admiration of the book, starting with the compelling prose, the lucid technical explanations and the visceral anecdotes — but then moving on to the deeper technical inspiration she found in the book. And as she reached the book’s crescendo, Jess felt its full power, causing her to reflect on the nature of engineering motivation.
Err codemadness.org 70 i 30075 Excited to see the effect of the book on Jess, I experienced a kind of reflected recommendation: I was inspired to (re-)read my own recommendation! Shortly after I started reading, I began to realize that (contrary to what I had been telling myself over the years!) I had not re-read the book in full since that first reading so many years ago. Rather, over the years I had merely revisited those sections that I remembered fondly. On the one hand, these sections are singular: the saga of engineers debugging a nasty I-cache data corruption issue; the young engineer who implements the simulator in an impossibly short amount of time because no one wanted to tell him that he was being impossibly ambitious; the engineer who, frustrated with a nanosecond-scale timing problem in the ALU that he designed, moved to a commune in Vermont, claiming a desire to deal with “no unit of time shorter than a season”. But by limiting myself to these passages, I was succumbing to the selection bias of my much younger self; re-reading the book now from start to finish has given new parts depth and meaning. Aspects that were more abstract to me as an undergraduate — from the organizational rivalries and absurdities of the industry to the complexities of West’s character and the tribulations of the team down the stretch — are now deeply evocative of concrete episodes of my own career.

Err codemadness.org 70 i 30076
Err codemadness.org 70 i 30077 Err codemadness.org 70 i 30078
    Err codemadness.org 70 i 30079
  • See Article for rest…
  • Err codemadness.org 70 i 30080
Err codemadness.org 70 i 30081 Err codemadness.org 70 i 30082


Err codemadness.org 70 i 30083 Err codemadness.org 70 i 30084

##News Roundup

Err codemadness.org 70 i 30085 Err codemadness.org 70 i 30086

###Out-Of-The-Box 10GbE Network Benchmarks On Nine Linux Distributions Plus FreeBSD 12

Err codemadness.org 70 i 30087 Err codemadness.org 70 i 30088
Err codemadness.org 70 i 30089

Last week I started running some fresh 10GbE Linux networking performance benchmarks across a few different Linux distributions. That testing has now been extended to cover nine Linux distributions plus FreeBSD 12.0 to compare the out-of-the-box networking performance.
Err codemadness.org 70 i 30090 Tested this round alongside FreeBSD 12.0 was Antergos 19.1, CentOS 7, Clear Linux, Debian 9.6, Fedora Server 29, openSUSE Leap 15.0, openSUSE Tumbleweed, Ubuntu 18.04.1 LTS, and Ubuntu 18.10.
Err codemadness.org 70 i 30091 All of the tests were done with a Tyan S7106 1U server featuring two Intel Xeon Gold 6138 CPUs, 96GB of DDR4 system memory, and Samsung 970 EVO SSD. For the 10GbE connectivity on this server was an add-in HP NC523SFP PCIe adapter providing two 10Gb SPF+ ports using a QLogic 8214 controller.
Err codemadness.org 70 i 30092 Originally the plan as well was to include Windows Server 2016/2019. Unfortunately the QLogic driver download site was malfunctioning since Cavium’s acquisition of the company and the other Windows Server 2016 driver options not panning out and there not being a Windows Server 2019 option. So sadly that Windows testing was thwarted so I since started testing over with a Mellanox Connectx-2 10GbE NIC, which is well supported on Windows Server and so that testing is ongoing for the next article of Windows vs. Linux 10 Gigabit network performance plus some “tuned” Linux networking results too.

Err codemadness.org 70 i 30093
Err codemadness.org 70 i 30094 Err codemadness.org 70 i 30095


Err codemadness.org 70 i 30096 Err codemadness.org 70 i 30097

###Integration of the LLVM sanitizers with the NetBSD base system

Err codemadness.org 70 i 30098 Err codemadness.org 70 i 30099
Err codemadness.org 70 i 30100

Over the past month I’ve merged the LLVM compiler-rt sanitizers (LLVM svn r350590) with the base system. I’ve also managed to get a functional set of Makefile rules to build all of them, namely:
Err codemadness.org 70 i 30101 ASan, UBSan, TSan, MSan, libFuzzer, SafeStack, XRay.
Err codemadness.org 70 i 30102 In all supported variations and modes that are supported by the original LLVM compiler-rt package.

Err codemadness.org 70 i 30103
Err codemadness.org 70 i 30104 Err codemadness.org 70 i 30105


Err codemadness.org 70 i 30106 Err codemadness.org 70 i 30107

###Distrowatch FreeNAS 11.2 review

Err codemadness.org 70 i 30108 Err codemadness.org 70 i 30109
Err codemadness.org 70 i 30110

The project’s latest release is FreeNAS 11.2 and, at first, I nearly overlooked the new version because it appeared to be a minor point release. However, a lot of work went into the new version and 11.2 offers a lot of changes when compared next to 11.1, “including a major revamp of the web interface, support for self-encrypting drives, and new, backwards-compatible REST and WebSocket APIs. This update also introduces iocage for improved plugins and jails management and simplified plugin development.”

Err codemadness.org 70 i 30111
Err codemadness.org 70 i 30112 Err codemadness.org 70 i 30113


Err codemadness.org 70 i 30114 Err codemadness.org 70 i 30115

##Beastie Bits

Err codemadness.org 70 i 30116 Err codemadness.org 70 i 30117 Err codemadness.org 70 i 30127 Err codemadness.org 70 i 30128


Err codemadness.org 70 i 30129 Err codemadness.org 70 i 30130

##Feedback/Questions

Err codemadness.org 70 i 30131 Err codemadness.org 70 i 30132 Err codemadness.org 70 i 30137 Err codemadness.org 70 i 30138


Err codemadness.org 70 i 30139 Err codemadness.org 70 i 30140
    Err codemadness.org 70 i 30141
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 30142
Err codemadness.org 70 i 30143 Err codemadness.org 70 i 30144


]]> Err codemadness.org 70 i 30145
Err codemadness.org 70 i 30146 Err codemadness.org 70 i 30147 Strategic thinking to keep FreeBSD relevant, reflecting on the soul of a new machine, 10GbE Benchmarks On Nine Linux Distros and FreeBSD, NetBSD integrating LLVM sanitizers in base, FreeNAS 11.2 distrowatch review, and more.

Err codemadness.org 70 i 30148 Err codemadness.org 70 i 30149

##Headlines
Err codemadness.org 70 i 30150 ###Strategic thinking, or what I think what we need to do to keep FreeBSD relevant

Err codemadness.org 70 i 30151 Err codemadness.org 70 i 30152
Err codemadness.org 70 i 30153

Since I participate in the FreeBSD project there are from time to time some voices which say FreeBSD is dead, Linux is the way to go. Most of the time those voices are trolls, or people which do not really know what FreeBSD has to offer. Sometimes those voices wear blinders, they only see their own little world (were Linux just works fine) and do not see the big picture (like e.g. competition stimulates business, …) or even dare to look what FreeBSD has to offer.
Err codemadness.org 70 i 30154 Sometimes those voices raise a valid concern, and it is up to the FreeBSD project to filter out what would be beneficial. Recently there were some mails on the FreeBSD lists in the sense of “What about going into direction X?”. Some people just had the opinion that we should stay where we are. In my opinion this is similarly bad to blindly saying FreeBSD is dead and following the masses. It would mean stagnation. We should not hold people back in exploring new / different directions. Someone wants to write a kernel module in (a subset of) C++ or in Rust… well, go ahead, give it a try, we can put it into the Ports Collection and let people get experience with it.
Err codemadness.org 70 i 30155 This discussion on the mailinglists also triggered some kind of “where do we see us in the next years” / strategic thinking reflection. What I present here, is my very own opinion about things we in the FreeBSD project should look at, to stay relevant in the long term. To be able to put that into scope, I need to clarify what “relevant” means in this case.
Err codemadness.org 70 i 30156 FreeBSD is currently used by companies like Netflix, NetApp, Cisco, Juniper, and many others as a base for products or services. It is also used by end‐users as a work‐horse (e.g. mailservers, webservers, …). Staying relevant means in this context, to provide something which the user base is interested in to use and which makes it more easy / fast for the user base to deliver whatever they want or need to deliver than with another kind of system. And this in terms of time to market of a solution (time to deliver a service like a web‐/mail‐/whatever‐server or product), and in terms of performance (which not only means speed, but also security and reliability and …) of the solution.
Err codemadness.org 70 i 30157 I have categorized the list of items I think are important into (new) code/features, docs, polishing and project infrastructure. Links in the following usually point to documentation/HOWTOs/experiences for/with FreeBSD, and not to the canonical entry points of the projects or technologies. In a few cases the links point to an explanation in the wikipedia or to the website of the topic in question.

Err codemadness.org 70 i 30158
Err codemadness.org 70 i 30159 Err codemadness.org 70 i 30160


Err codemadness.org 70 i 30161 Err codemadness.org 70 i 30162

###Reflecting on The Soul of a New Machine

Err codemadness.org 70 i 30163 Err codemadness.org 70 i 30164
Err codemadness.org 70 i 30165

Long ago as an undergraduate, I found myself back home on a break from school, bored and with eyes wandering idly across a family bookshelf. At school, I had started to find a calling in computing systems, and now in the den, an old book suddenly caught my eye: Tracy Kidder’s The Soul of a New Machine. Taking it off the shelf, the book grabbed me from its first descriptions of Tom West, captivating me with the epic tale of the development of the Eagle at Data General. I — like so many before and after me — found the book to be life changing: by telling the stories of the people behind the machine, the book showed the creative passion among engineers that might otherwise appear anodyne, inspiring me to chart a course that might one day allow me to make a similar mark.
Err codemadness.org 70 i 30166 Since reading it over two decades ago, I have recommended The Soul of a Machine at essentially every opportunity, believing that it is a part of computing’s literary foundation — that it should be considered our Odyssey. Recently, I suggested it as beach reading to Jess Frazelle, and apparently with perfect timing: when I saw the book at the top of her vacation pile, I knew a fuse had been lit. I was delighted (though not at all surprised) to see Jess livetweet her admiration of the book, starting with the compelling prose, the lucid technical explanations and the visceral anecdotes — but then moving on to the deeper technical inspiration she found in the book. And as she reached the book’s crescendo, Jess felt its full power, causing her to reflect on the nature of engineering motivation.
Err codemadness.org 70 i 30167 Excited to see the effect of the book on Jess, I experienced a kind of reflected recommendation: I was inspired to (re-)read my own recommendation! Shortly after I started reading, I began to realize that (contrary to what I had been telling myself over the years!) I had not re-read the book in full since that first reading so many years ago. Rather, over the years I had merely revisited those sections that I remembered fondly. On the one hand, these sections are singular: the saga of engineers debugging a nasty I-cache data corruption issue; the young engineer who implements the simulator in an impossibly short amount of time because no one wanted to tell him that he was being impossibly ambitious; the engineer who, frustrated with a nanosecond-scale timing problem in the ALU that he designed, moved to a commune in Vermont, claiming a desire to deal with “no unit of time shorter than a season”. But by limiting myself to these passages, I was succumbing to the selection bias of my much younger self; re-reading the book now from start to finish has given new parts depth and meaning. Aspects that were more abstract to me as an undergraduate — from the organizational rivalries and absurdities of the industry to the complexities of West’s character and the tribulations of the team down the stretch — are now deeply evocative of concrete episodes of my own career.

Err codemadness.org 70 i 30168
Err codemadness.org 70 i 30169 Err codemadness.org 70 i 30170
    Err codemadness.org 70 i 30171
  • See Article for rest…
  • Err codemadness.org 70 i 30172
Err codemadness.org 70 i 30173 Err codemadness.org 70 i 30174


Err codemadness.org 70 i 30175 Err codemadness.org 70 i 30176

##News Roundup

Err codemadness.org 70 i 30177 Err codemadness.org 70 i 30178

###Out-Of-The-Box 10GbE Network Benchmarks On Nine Linux Distributions Plus FreeBSD 12

Err codemadness.org 70 i 30179 Err codemadness.org 70 i 30180
Err codemadness.org 70 i 30181

Last week I started running some fresh 10GbE Linux networking performance benchmarks across a few different Linux distributions. That testing has now been extended to cover nine Linux distributions plus FreeBSD 12.0 to compare the out-of-the-box networking performance.
Err codemadness.org 70 i 30182 Tested this round alongside FreeBSD 12.0 was Antergos 19.1, CentOS 7, Clear Linux, Debian 9.6, Fedora Server 29, openSUSE Leap 15.0, openSUSE Tumbleweed, Ubuntu 18.04.1 LTS, and Ubuntu 18.10.
Err codemadness.org 70 i 30183 All of the tests were done with a Tyan S7106 1U server featuring two Intel Xeon Gold 6138 CPUs, 96GB of DDR4 system memory, and Samsung 970 EVO SSD. For the 10GbE connectivity on this server was an add-in HP NC523SFP PCIe adapter providing two 10Gb SPF+ ports using a QLogic 8214 controller.
Err codemadness.org 70 i 30184 Originally the plan as well was to include Windows Server 2016/2019. Unfortunately the QLogic driver download site was malfunctioning since Cavium’s acquisition of the company and the other Windows Server 2016 driver options not panning out and there not being a Windows Server 2019 option. So sadly that Windows testing was thwarted so I since started testing over with a Mellanox Connectx-2 10GbE NIC, which is well supported on Windows Server and so that testing is ongoing for the next article of Windows vs. Linux 10 Gigabit network performance plus some “tuned” Linux networking results too.

Err codemadness.org 70 i 30185
Err codemadness.org 70 i 30186 Err codemadness.org 70 i 30187


Err codemadness.org 70 i 30188 Err codemadness.org 70 i 30189

###Integration of the LLVM sanitizers with the NetBSD base system

Err codemadness.org 70 i 30190 Err codemadness.org 70 i 30191
Err codemadness.org 70 i 30192

Over the past month I’ve merged the LLVM compiler-rt sanitizers (LLVM svn r350590) with the base system. I’ve also managed to get a functional set of Makefile rules to build all of them, namely:
Err codemadness.org 70 i 30193 ASan, UBSan, TSan, MSan, libFuzzer, SafeStack, XRay.
Err codemadness.org 70 i 30194 In all supported variations and modes that are supported by the original LLVM compiler-rt package.

Err codemadness.org 70 i 30195
Err codemadness.org 70 i 30196 Err codemadness.org 70 i 30197


Err codemadness.org 70 i 30198 Err codemadness.org 70 i 30199

###Distrowatch FreeNAS 11.2 review

Err codemadness.org 70 i 30200 Err codemadness.org 70 i 30201
Err codemadness.org 70 i 30202

The project’s latest release is FreeNAS 11.2 and, at first, I nearly overlooked the new version because it appeared to be a minor point release. However, a lot of work went into the new version and 11.2 offers a lot of changes when compared next to 11.1, “including a major revamp of the web interface, support for self-encrypting drives, and new, backwards-compatible REST and WebSocket APIs. This update also introduces iocage for improved plugins and jails management and simplified plugin development.”

Err codemadness.org 70 i 30203
Err codemadness.org 70 i 30204 Err codemadness.org 70 i 30205


Err codemadness.org 70 i 30206 Err codemadness.org 70 i 30207

##Beastie Bits

Err codemadness.org 70 i 30208 Err codemadness.org 70 i 30209 Err codemadness.org 70 i 30219 Err codemadness.org 70 i 30220


Err codemadness.org 70 i 30221 Err codemadness.org 70 i 30222

##Feedback/Questions

Err codemadness.org 70 i 30223 Err codemadness.org 70 i 30224 Err codemadness.org 70 i 30229 Err codemadness.org 70 i 30230


Err codemadness.org 70 i 30231 Err codemadness.org 70 i 30232
    Err codemadness.org 70 i 30233
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 30234
Err codemadness.org 70 i 30235 Err codemadness.org 70 i 30236


]]> Err codemadness.org 70 i 30237
Err codemadness.org 70 i 30238 https://fireside.fm/player/v2/FYhhasNR+0i5VL086 Err codemadness.org 70 i 30239 Err codemadness.org 70 i 30240 ]]> Err codemadness.org 70 i 30241 Err codemadness.org 70 i 30242
Err codemadness.org 70 i 30243 Err codemadness.org 70 i 30244 284: FOSDEM 2019 Err codemadness.org 70 i 30245 https://www.bsdnow.tv/284 Err codemadness.org 70 i 30246 9e51096d-3e53-490c-8603-827a76d73758 Err codemadness.org 70 i 30247 Thu, 07 Feb 2019 08:00:00 -0800 Err codemadness.org 70 i 30248 Allan Jude Err codemadness.org 70 i 30249 Err codemadness.org 70 i 30250 full Err codemadness.org 70 i 30251 Allan Jude Err codemadness.org 70 i 30252 We recap FOSDEM 2019, FreeBSD Foundation January update, OPNsense 19.1 released, the hardware-assisted virtualization challenge, ZFS and GPL terror, ClonOS 19.01-RELEASE, and more. Err codemadness.org 70 i 30253 59:26 Err codemadness.org 70 i 30254 no Err codemadness.org 70 i 30255 Err codemadness.org 70 i 30256 We recap FOSDEM 2019, FreeBSD Foundation January update, OPNsense 19.1 released, the hardware-assisted virtualization challenge, ZFS and GPL terror, ClonOS 19.01-RELEASE, and more. Err codemadness.org 70 i 30257 <h1>Headlines</h1> Err codemadness.org 70 i 30258 <h3><a href="https://fosdem.org/2019/schedule/">FOSDEM 2019 Recap</a></h3> Err codemadness.org 70 i 30259 <ul> Err codemadness.org 70 i 30260 <li>Allan and I were at FOSDEM 2019 in Brussels, Belgium over the weekend.</li> Err codemadness.org 70 i 30261 <li>On the Friday before, we held a FreeBSD Devsummit in a hotel conference room, with 25 people attending. We talked about various topics of interest to the project. You can find the <a href="https://wiki.freebsd.org/Devsummit/201902">notes on the wiki page</a>.</li> Err codemadness.org 70 i 30262 <li>Saturday was the first day of FOSDEM. The FreeBSD Project had a table next to the Illumos Project again. A lot of people visited our table, asked questions, or just said “Hi, I watch <a href="http://BSDNow.tv">BSDNow.tv</a> every week”. We handed out a lot of stickers, pens, swag, and flyers. There was also a full day <a href="https://twitter.com/fosdembsd">BSD devroom</a>, with a <a href="https://fosdem.org/2019/schedule/track/bsd/">variety of talks</a> that were well attended.</li> Err codemadness.org 70 i 30263 <li>In the main conference track, Allan held a <a href="https://fosdem.org/2019/schedule/event/zfs_caching/">talk explaining how the ZFS ARC works</a>. A lot of people attended the talk and had more questions afterwards. Another well attended talk was by Jonathan Looney about <a href="https://fosdem.org/2019/schedule/event/netflix_freebsd/">Netflix and FreeBSD</a>.</li> Err codemadness.org 70 i 30264 <li>Sunday was another day in the same format, but no bsd devroom. A lot of people visited our table, developers and users alike. A lot of meeting and greeting went on.</li> Err codemadness.org 70 i 30265 <li>Overall, FOSDEM was a great success with FreeBSD showing a lot of presence. Thanks to all the people who attended and talked to us. Special thanks to the people who helped out at the FreeBSD table and Rodrigo Osorio for running the BSD devroom again.</li> Err codemadness.org 70 i 30266 </ul> Err codemadness.org 70 i 30267 <h3><a href="https://www.freebsdfoundation.org/news-and-events/newsletter/freebsd-foundation-update-january-2019/">FreeBSD Foundation Update, January 2019</a></h3> Err codemadness.org 70 i 30268 <blockquote> Err codemadness.org 70 i 30269 <p>Dear FreeBSD Community Member,<br> Err codemadness.org 70 i 30270 Happy New Year! It’s always exciting starting the new year with ambitious plans to support FreeBSD in new and existing areas. We achieved our fundraising goal for 2018, so we plan on funding a lot of work this year! Though it’s the new year, this newsletter highlights some of the work we accomplished in December. We also put together a list of technologies and features we are considering supporting, and are looking for feedback on what users want to help inform our 2019 development plans. Our advocacy and education efforts are in full swing as we prepare for upcoming conferences including FOSDEM, SANOG33, and SCaLE.<br> Err codemadness.org 70 i 30271 Finally, we created a year-end video to talk about the work we did in 2018. That in itself was an endeavor, so please take a few minutes to watch it! We’re working on improving the methods we use to inform the community on the work we are doing to support the Project, and are always open to feedback. Now, sit back, grab a refreshing beverage, and enjoy our newsletter!<br> Err codemadness.org 70 i 30272 Happy reading!!<br> Err codemadness.org 70 i 30273 Deb</p> Err codemadness.org 70 i 30274 </blockquote> Err codemadness.org 70 i 30275 <hr> Err codemadness.org 70 i 30276 <h3><a href="https://forum.opnsense.org/index.php?topic=11398.0">OPNsense 19.1 released</a></h3> Err codemadness.org 70 i 30277 <blockquote> Err codemadness.org 70 i 30278 <p>For more than four years now, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, HardenedBSD security, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.<br> Err codemadness.org 70 i 30279 The 19.1 release, nicknamed “Inspiring Iguana”, consists of a total of 620 individual changes since 18.7 came out 6 months ago, spread out over 12 intermediate releases including the recent release candidates. That is the average of 2 stable releases per month, security updates and important bug fixes included! If we had to pick a few highlights it would be: The firewall alias API is finally in place. The migration to HardenedBSD 11.2 has been completed. 2FA now works with a remote LDAP / local TOTP combination. And the OpenVPN client export was rewritten for full API support as well.</p> Err codemadness.org 70 i 30280 </blockquote> Err codemadness.org 70 i 30281 <ul> Err codemadness.org 70 i 30282 <li> Err codemadness.org 70 i 30283 <p>These are the most prominent changes since version 18.7:</p> Err codemadness.org 70 i 30284 </li> Err codemadness.org 70 i 30285 <li> Err codemadness.org 70 i 30286 <p>fully functional firewall alias API</p> Err codemadness.org 70 i 30287 </li> Err codemadness.org 70 i 30288 <li> Err codemadness.org 70 i 30289 <p>PIE firewall shaper support</p> Err codemadness.org 70 i 30290 </li> Err codemadness.org 70 i 30291 <li> Err codemadness.org 70 i 30292 <p>firewall NAT rule logging support</p> Err codemadness.org 70 i 30293 </li> Err codemadness.org 70 i 30294 <li> Err codemadness.org 70 i 30295 <p>2FA via LDAP-TOTP combination</p> Err codemadness.org 70 i 30296 </li> Err codemadness.org 70 i 30297 <li> Err codemadness.org 70 i 30298 <p>WPAD / PAC and parent proxy support in the web proxy</p> Err codemadness.org 70 i 30299 </li> Err codemadness.org 70 i 30300 <li> Err codemadness.org 70 i 30301 <p>P12 certificate export with custom passwords</p> Err codemadness.org 70 i 30302 </li> Err codemadness.org 70 i 30303 <li> Err codemadness.org 70 i 30304 <p>Dpinger is now the default gateway monitor</p> Err codemadness.org 70 i 30305 </li> Err codemadness.org 70 i 30306 <li> Err codemadness.org 70 i 30307 <p>ET Pro Telemetry edition plugin[2]</p> Err codemadness.org 70 i 30308 </li> Err codemadness.org 70 i 30309 <li> Err codemadness.org 70 i 30310 <p>extended IPv6 DUID support</p> Err codemadness.org 70 i 30311 </li> Err codemadness.org 70 i 30312 <li> Err codemadness.org 70 i 30313 <p>Dnsmasq DNSSEC support</p> Err codemadness.org 70 i 30314 </li> Err codemadness.org 70 i 30315 <li> Err codemadness.org 70 i 30316 <p>OpenVPN client export API</p> Err codemadness.org 70 i 30317 </li> Err codemadness.org 70 i 30318 <li> Err codemadness.org 70 i 30319 <p>Realtek NIC driver version 1.95</p> Err codemadness.org 70 i 30320 </li> Err codemadness.org 70 i 30321 <li> Err codemadness.org 70 i 30322 <p>HardenedBSD 11.2, LibreSSL 2.7</p> Err codemadness.org 70 i 30323 </li> Err codemadness.org 70 i 30324 <li> Err codemadness.org 70 i 30325 <p>Unbound 1.8, Suricata 4.1</p> Err codemadness.org 70 i 30326 </li> Err codemadness.org 70 i 30327 <li> Err codemadness.org 70 i 30328 <p>Phalcon 3.4, Perl 5.28</p> Err codemadness.org 70 i 30329 </li> Err codemadness.org 70 i 30330 <li> Err codemadness.org 70 i 30331 <p>firmware health check extended to cover all OS files, HTTPS mirror default</p> Err codemadness.org 70 i 30332 </li> Err codemadness.org 70 i 30333 <li> Err codemadness.org 70 i 30334 <p>updates are browser cache-safe regarding CSS and JavaScript assets</p> Err codemadness.org 70 i 30335 </li> Err codemadness.org 70 i 30336 <li> Err codemadness.org 70 i 30337 <p>collapsible side bar menu in the default theme</p> Err codemadness.org 70 i 30338 </li> Err codemadness.org 70 i 30339 <li> Err codemadness.org 70 i 30340 <p>language updates for Chinese, Czech, French, German, Japanese, Portuguese and Russian</p> Err codemadness.org 70 i 30341 </li> Err codemadness.org 70 i 30342 <li> Err codemadness.org 70 i 30343 <p>API backup export, Bind, Hardware widget, Nginx, Ntopng, VnStat and Dnscrypt-proxy plugins</p> Err codemadness.org 70 i 30344 </li> Err codemadness.org 70 i 30345 <li> Err codemadness.org 70 i 30346 <p>Here are the full changes against version 19.1-RC2:</p> Err codemadness.org 70 i 30347 </li> Err codemadness.org 70 i 30348 <li> Err codemadness.org 70 i 30349 <p>ipsec: add firewall interface as soon as phase 1 is enabled</p> Err codemadness.org 70 i 30350 </li> Err codemadness.org 70 i 30351 <li> Err codemadness.org 70 i 30352 <p>ipsec: phase 1 selection GUI JavaScript compatibility fix</p> Err codemadness.org 70 i 30353 </li> Err codemadness.org 70 i 30354 <li> Err codemadness.org 70 i 30355 <p>monit: widget improvements and bug fix (contributed by Frank Brendel)</p> Err codemadness.org 70 i 30356 </li> Err codemadness.org 70 i 30357 <li> Err codemadness.org 70 i 30358 <p>ui: fix regression in single host or network subnet select in static pages</p> Err codemadness.org 70 i 30359 </li> Err codemadness.org 70 i 30360 <li> Err codemadness.org 70 i 30361 <p>plugins: os-frr 1.7 updates OSFP outbound rules (contributed by Fabian Franz)</p> Err codemadness.org 70 i 30362 </li> Err codemadness.org 70 i 30363 <li> Err codemadness.org 70 i 30364 <p>plugins: os-telegraf 1.7.4 fixes packet filter input</p> Err codemadness.org 70 i 30365 </li> Err codemadness.org 70 i 30366 <li> Err codemadness.org 70 i 30367 <p>plugins: os-theme-rebellion 1.8.2 adds image colour invert</p> Err codemadness.org 70 i 30368 </li> Err codemadness.org 70 i 30369 <li> Err codemadness.org 70 i 30370 <p>plugins: os-vnstat 1.1[3]</p> Err codemadness.org 70 i 30371 </li> Err codemadness.org 70 i 30372 <li> Err codemadness.org 70 i 30373 <p>plugins: os-zabbix-agent now uses Zabbix version 4.0</p> Err codemadness.org 70 i 30374 </li> Err codemadness.org 70 i 30375 <li> Err codemadness.org 70 i 30376 <p>src: revert mmccalculateclock() as HS200/HS400 support breaks legacy support</p> Err codemadness.org 70 i 30377 </li> Err codemadness.org 70 i 30378 <li> Err codemadness.org 70 i 30379 <p>src: update sqlite3-3.20.0 to sqlite3-3.26.0[4]</p> Err codemadness.org 70 i 30380 </li> Err codemadness.org 70 i 30381 <li> Err codemadness.org 70 i 30382 <p>src: import tzdata 2018h, 2018i[5]</p> Err codemadness.org 70 i 30383 </li> Err codemadness.org 70 i 30384 <li> Err codemadness.org 70 i 30385 <p>src: avoid unsynchronized updates to knstatus[6]</p> Err codemadness.org 70 i 30386 </li> Err codemadness.org 70 i 30387 <li> Err codemadness.org 70 i 30388 <p>ports: carootnss 3.42</p> Err codemadness.org 70 i 30389 </li> Err codemadness.org 70 i 30390 <li> Err codemadness.org 70 i 30391 <p>ports: dhcp6c 20190128 prevent rawops double-free (contributed by Team Rebellion)</p> Err codemadness.org 70 i 30392 </li> Err codemadness.org 70 i 30393 <li> Err codemadness.org 70 i 30394 <p>ports: sudo patch to fix listpw=never[7]</p> Err codemadness.org 70 i 30395 </li> Err codemadness.org 70 i 30396 </ul> Err codemadness.org 70 i 30397 <hr> Err codemadness.org 70 i 30398 <h2>News Roundup</h2> Err codemadness.org 70 i 30399 <h3><a href="https://blog.netbsd.org/tnf/entry/thehardwareassistedvirtualizationchallenge">The hardware-assisted virtualization challenge</a></h3> Err codemadness.org 70 i 30400 <blockquote> Err codemadness.org 70 i 30401 <p>Over two years ago, I made a pledge to use NetBSD as my sole OS and only operating system, and to resist booting into any other OS until I had implemented hardware-accelerated virtualization in the NetBSD kernel (the equivalent of Linux’ KVM, or Hyper-V).<br> Err codemadness.org 70 i 30402 Today, I am here to report: Mission Accomplished!<br> Err codemadness.org 70 i 30403 It’s been a long road, but we now have hardware-accelerated virtualization in the kernel! And while I had only initially planned to get Oracle VirtualBox working, I have with the help of the Intel HAXM engine (the same backend used for virtualization in Android Studio) and a qemu frontend, successfully managed to boot a range of mainstream operating systems.</p> Err codemadness.org 70 i 30404 </blockquote> Err codemadness.org 70 i 30405 <hr> Err codemadness.org 70 i 30406 <h3><a href="https://eerielinux.wordpress.com/2019/01/28/zfs-and-gpl-terror-how-much-freedom-is-there-in-linux/">ZFS and GPL terror: How much freedom is there in Linux?</a></h3> Err codemadness.org 70 i 30407 <ul> Err codemadness.org 70 i 30408 <li>ZFS – the undesirable guest</li> Err codemadness.org 70 i 30409 </ul> Err codemadness.org 70 i 30410 <blockquote> Err codemadness.org 70 i 30411 <p>ZFS is todays most advanced filesystem. It originated on the Solaris operating system and thanks to Sun’s decision to open it up, we have it available on quite a number of Unix-like operating systems. That’s just great! Great for everyone.<br> Err codemadness.org 70 i 30412 For everyone? Nope. There are people out there who don’t like ZFS. Which is totally fine, they don’t need to use it after all. But worse: There are people who actively hate ZFS and think that others should not use it. Ok, it’s nothing new that some random guys on the net are acting like assholes, trying to tell you what you must not do, right? Whoever has been online for more than a couple of days probably already got used to it. Unfortunately its still worse: One such spoilsport is Greg Kroah-Hartman, Linux guru and informal second-in-command after Linus Torvalds.<br> Err codemadness.org 70 i 30413 There have been some attempts to defend the stance of this kernel developer. One was to point at the fact that the “ZFS on Linux” (ZoL) port uses two kernel functions, _kernelfpubegin() and _kernelfpuend(), which have been deprecated for a very long time and that it makes sense to finally get rid of them since nothing in-kernel uses it anymore. Nobody is going to argue against that. The problem becomes clear by looking at the bigger picture, though:<br> Err codemadness.org 70 i 30414 The need for functions doing just what the old ones did has of course not vanished. The functions have been replaced with other ones. And those ones are deliberately made GPL-only. Yes, that’s right: There’s no technical reason whatsoever! It’s purely ideology – and it’s a terrible one.</p> Err codemadness.org 70 i 30415 </blockquote> Err codemadness.org 70 i 30416 <hr> Err codemadness.org 70 i 30417 <h3><a href="https://clonos.tekroutine.com/">ClonOS 19.01-RELEASE</a></h3> Err codemadness.org 70 i 30418 <blockquote> Err codemadness.org 70 i 30419 <p>ClonOS is a turnkey Open Source platform based on FreeBSD and the CBSD framework. ClonOS offers a complete web UI for easily controlling, deploying and managing FreeBSD jails containers and Bhyve/Xen hyperviser virtual environments.<br> Err codemadness.org 70 i 30420 ClonOS is currently the only platform available which allow both Xen and Bhyve hypervisor to coexist on the same host. Being a FreeBSD base platform, ClonOS ability to create and manage jails allows you to run FreeBSD applications without losing performance.</p> Err codemadness.org 70 i 30421 </blockquote> Err codemadness.org 70 i 30422 <ul> Err codemadness.org 70 i 30423 <li> Err codemadness.org 70 i 30424 <p>Features:</p> Err codemadness.org 70 i 30425 </li> Err codemadness.org 70 i 30426 <li> Err codemadness.org 70 i 30427 <p>easy management via web UI interface</p> Err codemadness.org 70 i 30428 </li> Err codemadness.org 70 i 30429 <li> Err codemadness.org 70 i 30430 <p>live Bhyve migration [coming soon, roadmap]</p> Err codemadness.org 70 i 30431 </li> Err codemadness.org 70 i 30432 <li> Err codemadness.org 70 i 30433 <p>Bhyve management (create, delete VM)</p> Err codemadness.org 70 i 30434 </li> Err codemadness.org 70 i 30435 <li> Err codemadness.org 70 i 30436 <p>Xen management (create, delete VM) [coming soon, roadmap]</p> Err codemadness.org 70 i 30437 </li> Err codemadness.org 70 i 30438 <li> Err codemadness.org 70 i 30439 <p>connection to the “physical” guest console via VNC from the browser or directly</p> Err codemadness.org 70 i 30440 </li> Err codemadness.org 70 i 30441 <li> Err codemadness.org 70 i 30442 <p>Real time system monitoring</p> Err codemadness.org 70 i 30443 </li> Err codemadness.org 70 i 30444 <li> Err codemadness.org 70 i 30445 <p>access to load statistics through SQLite3 and beanstalkd</p> Err codemadness.org 70 i 30446 </li> Err codemadness.org 70 i 30447 <li> Err codemadness.org 70 i 30448 <p>support for ZFS features (cloning, snapshots)</p> Err codemadness.org 70 i 30449 </li> Err codemadness.org 70 i 30450 <li> Err codemadness.org 70 i 30451 <p>import/export of virtual environments</p> Err codemadness.org 70 i 30452 </li> Err codemadness.org 70 i 30453 <li> Err codemadness.org 70 i 30454 <p>public repository with virtual machine templates</p> Err codemadness.org 70 i 30455 </li> Err codemadness.org 70 i 30456 <li> Err codemadness.org 70 i 30457 <p>puppet-based helpers for configuring popular services</p> Err codemadness.org 70 i 30458 </li> Err codemadness.org 70 i 30459 <li> Err codemadness.org 70 i 30460 <p>ClonOS is a free open-source FreeBSD-based platform for virtual environments creation and management. In the core:</p> Err codemadness.org 70 i 30461 </li> Err codemadness.org 70 i 30462 <li> Err codemadness.org 70 i 30463 <p>FreeBSD OS as hoster platform</p> Err codemadness.org 70 i 30464 </li> Err codemadness.org 70 i 30465 <li> Err codemadness.org 70 i 30466 <p>bhyve(8) as hypervisor engine</p> Err codemadness.org 70 i 30467 </li> Err codemadness.org 70 i 30468 <li> Err codemadness.org 70 i 30469 <p>Xen as hypervisor engine</p> Err codemadness.org 70 i 30470 </li> Err codemadness.org 70 i 30471 <li> Err codemadness.org 70 i 30472 <p>vale(4) as Virtual Ethernet Switch</p> Err codemadness.org 70 i 30473 </li> Err codemadness.org 70 i 30474 <li> Err codemadness.org 70 i 30475 <p>jail(8) as container engine</p> Err codemadness.org 70 i 30476 </li> Err codemadness.org 70 i 30477 <li> Err codemadness.org 70 i 30478 <p>CBSD Project as management tools</p> Err codemadness.org 70 i 30479 </li> Err codemadness.org 70 i 30480 <li> Err codemadness.org 70 i 30481 <p>Puppet as configuration management</p> Err codemadness.org 70 i 30482 </li> Err codemadness.org 70 i 30483 </ul> Err codemadness.org 70 i 30484 <hr> Err codemadness.org 70 i 30485 <h2>Beastie Bits</h2> Err codemadness.org 70 i 30486 <ul> Err codemadness.org 70 i 30487 <li><a href="https://www.undeadly.org/cgi?action=article;sid=20190128061321">Florian Obser on unwind(8)</a></li> Err codemadness.org 70 i 30488 <li><a href="https://www.reddit.com/r/commandline/comments/amq947/alowtechsmsgatewayforfunandnoprofit/">A low tech SMS gateway for fun and no profit</a></li> Err codemadness.org 70 i 30489 <li><a href="https://fosdem.org/2019/schedule/event/netflix_freebsd/attachments/slides/3103/export/events/attachments/netflix_freebsd/slides/3103/FOSDEM_2019_Netflix_and_FreeBSD.pdf">Netflix and FreeBSD : Using Open Source to Deliver Streaming Video</a></li> Err codemadness.org 70 i 30490 <li><a href="https://github.com/lonkamikaze/powerdxx/releases/tag/0.4.0">powerd++ 0.4.0 release</a></li> Err codemadness.org 70 i 30491 <li><a href="https://www.infoq.com/presentations/os-rust">Is it time to rewrite the operating system in Rust?</a></li> Err codemadness.org 70 i 30492 <li><a href="https://svnweb.freebsd.org/changeset/base/343673">Small change, big effect</a></li> Err codemadness.org 70 i 30493 <li><a href="https://www.meetup.com/BSD-Users-Stockholm/events/257281738/">Swedish BSD Meetup, Feb 19, 2019</a></li> Err codemadness.org 70 i 30494 <li><a href="https://www.meetup.com/en-US/Polish-BSD-User-Group/events/zkhlnqyzdbsb/">Polish BSD User Group Meetup, Feb 21, 2019</a></li> Err codemadness.org 70 i 30495 </ul> Err codemadness.org 70 i 30496 <hr> Err codemadness.org 70 i 30497 <h2>Feedback/Questions</h2> Err codemadness.org 70 i 30498 <ul> Err codemadness.org 70 i 30499 <li>Casey - <a href="http://dpaste.com/2MA7HRV#wrap">Cool new Digital Ocean Feature</a></li> Err codemadness.org 70 i 30500 <li>Morgan - <a href="http://dpaste.com/1QDAMYJ#wrap">Jail w/differnet version of FreeBSD</a></li> Err codemadness.org 70 i 30501 <li>Brad - <a href="http://dpaste.com/2XG5KXN#wrap">FreeBSD Installer</a></li> Err codemadness.org 70 i 30502 </ul> Err codemadness.org 70 i 30503 <hr> Err codemadness.org 70 i 30504 <ul> Err codemadness.org 70 i 30505 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 30506 </ul> Err codemadness.org 70 i 30507 <hr> Err codemadness.org 70 i 30508 Err codemadness.org 70 i 30509 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 30510 Err codemadness.org 70 i 30511 We recap FOSDEM 2019, FreeBSD Foundation January update, OPNsense 19.1 released, the hardware-assisted virtualization challenge, ZFS and GPL terror, ClonOS 19.01-RELEASE, and more.

Err codemadness.org 70 i 30512 Err codemadness.org 70 i 30513

Headlines

Err codemadness.org 70 i 30514 Err codemadness.org 70 i 30515

FOSDEM 2019 Recap

Err codemadness.org 70 i 30516 Err codemadness.org 70 i 30517
    Err codemadness.org 70 i 30518
  • Allan and I were at FOSDEM 2019 in Brussels, Belgium over the weekend.
  • Err codemadness.org 70 i 30519
  • On the Friday before, we held a FreeBSD Devsummit in a hotel conference room, with 25 people attending. We talked about various topics of interest to the project. You can find the notes on the wiki page.
  • Err codemadness.org 70 i 30520
  • Saturday was the first day of FOSDEM. The FreeBSD Project had a table next to the Illumos Project again. A lot of people visited our table, asked questions, or just said “Hi, I watch BSDNow.tv every week”. We handed out a lot of stickers, pens, swag, and flyers. There was also a full day BSD devroom, with a variety of talks that were well attended.
  • Err codemadness.org 70 i 30521
  • In the main conference track, Allan held a talk explaining how the ZFS ARC works. A lot of people attended the talk and had more questions afterwards. Another well attended talk was by Jonathan Looney about Netflix and FreeBSD.
  • Err codemadness.org 70 i 30522
  • Sunday was another day in the same format, but no bsd devroom. A lot of people visited our table, developers and users alike. A lot of meeting and greeting went on.
  • Err codemadness.org 70 i 30523
  • Overall, FOSDEM was a great success with FreeBSD showing a lot of presence. Thanks to all the people who attended and talked to us. Special thanks to the people who helped out at the FreeBSD table and Rodrigo Osorio for running the BSD devroom again.
  • Err codemadness.org 70 i 30524
Err codemadness.org 70 i 30525 Err codemadness.org 70 i 30526

FreeBSD Foundation Update, January 2019

Err codemadness.org 70 i 30527 Err codemadness.org 70 i 30528
Err codemadness.org 70 i 30529

Dear FreeBSD Community Member,
Err codemadness.org 70 i 30530 Happy New Year! It’s always exciting starting the new year with ambitious plans to support FreeBSD in new and existing areas. We achieved our fundraising goal for 2018, so we plan on funding a lot of work this year! Though it’s the new year, this newsletter highlights some of the work we accomplished in December. We also put together a list of technologies and features we are considering supporting, and are looking for feedback on what users want to help inform our 2019 development plans. Our advocacy and education efforts are in full swing as we prepare for upcoming conferences including FOSDEM, SANOG33, and SCaLE.
Err codemadness.org 70 i 30531 Finally, we created a year-end video to talk about the work we did in 2018. That in itself was an endeavor, so please take a few minutes to watch it! We’re working on improving the methods we use to inform the community on the work we are doing to support the Project, and are always open to feedback. Now, sit back, grab a refreshing beverage, and enjoy our newsletter!
Err codemadness.org 70 i 30532 Happy reading!!
Err codemadness.org 70 i 30533 Deb

Err codemadness.org 70 i 30534
Err codemadness.org 70 i 30535 Err codemadness.org 70 i 30536


Err codemadness.org 70 i 30537 Err codemadness.org 70 i 30538

OPNsense 19.1 released

Err codemadness.org 70 i 30539 Err codemadness.org 70 i 30540
Err codemadness.org 70 i 30541

For more than four years now, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, HardenedBSD security, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.
Err codemadness.org 70 i 30542 The 19.1 release, nicknamed “Inspiring Iguana”, consists of a total of 620 individual changes since 18.7 came out 6 months ago, spread out over 12 intermediate releases including the recent release candidates. That is the average of 2 stable releases per month, security updates and important bug fixes included! If we had to pick a few highlights it would be: The firewall alias API is finally in place. The migration to HardenedBSD 11.2 has been completed. 2FA now works with a remote LDAP / local TOTP combination. And the OpenVPN client export was rewritten for full API support as well.

Err codemadness.org 70 i 30543
Err codemadness.org 70 i 30544 Err codemadness.org 70 i 30545
    Err codemadness.org 70 i 30546
  • Err codemadness.org 70 i 30547

    These are the most prominent changes since version 18.7:

    Err codemadness.org 70 i 30548
  • Err codemadness.org 70 i 30549
  • Err codemadness.org 70 i 30550

    fully functional firewall alias API

    Err codemadness.org 70 i 30551
  • Err codemadness.org 70 i 30552
  • Err codemadness.org 70 i 30553

    PIE firewall shaper support

    Err codemadness.org 70 i 30554
  • Err codemadness.org 70 i 30555
  • Err codemadness.org 70 i 30556

    firewall NAT rule logging support

    Err codemadness.org 70 i 30557
  • Err codemadness.org 70 i 30558
  • Err codemadness.org 70 i 30559

    2FA via LDAP-TOTP combination

    Err codemadness.org 70 i 30560
  • Err codemadness.org 70 i 30561
  • Err codemadness.org 70 i 30562

    WPAD / PAC and parent proxy support in the web proxy

    Err codemadness.org 70 i 30563
  • Err codemadness.org 70 i 30564
  • Err codemadness.org 70 i 30565

    P12 certificate export with custom passwords

    Err codemadness.org 70 i 30566
  • Err codemadness.org 70 i 30567
  • Err codemadness.org 70 i 30568

    Dpinger is now the default gateway monitor

    Err codemadness.org 70 i 30569
  • Err codemadness.org 70 i 30570
  • Err codemadness.org 70 i 30571

    ET Pro Telemetry edition plugin[2]

    Err codemadness.org 70 i 30572
  • Err codemadness.org 70 i 30573
  • Err codemadness.org 70 i 30574

    extended IPv6 DUID support

    Err codemadness.org 70 i 30575
  • Err codemadness.org 70 i 30576
  • Err codemadness.org 70 i 30577

    Dnsmasq DNSSEC support

    Err codemadness.org 70 i 30578
  • Err codemadness.org 70 i 30579
  • Err codemadness.org 70 i 30580

    OpenVPN client export API

    Err codemadness.org 70 i 30581
  • Err codemadness.org 70 i 30582
  • Err codemadness.org 70 i 30583

    Realtek NIC driver version 1.95

    Err codemadness.org 70 i 30584
  • Err codemadness.org 70 i 30585
  • Err codemadness.org 70 i 30586

    HardenedBSD 11.2, LibreSSL 2.7

    Err codemadness.org 70 i 30587
  • Err codemadness.org 70 i 30588
  • Err codemadness.org 70 i 30589

    Unbound 1.8, Suricata 4.1

    Err codemadness.org 70 i 30590
  • Err codemadness.org 70 i 30591
  • Err codemadness.org 70 i 30592

    Phalcon 3.4, Perl 5.28

    Err codemadness.org 70 i 30593
  • Err codemadness.org 70 i 30594
  • Err codemadness.org 70 i 30595

    firmware health check extended to cover all OS files, HTTPS mirror default

    Err codemadness.org 70 i 30596
  • Err codemadness.org 70 i 30597
  • Err codemadness.org 70 i 30598

    updates are browser cache-safe regarding CSS and JavaScript assets

    Err codemadness.org 70 i 30599
  • Err codemadness.org 70 i 30600
  • Err codemadness.org 70 i 30601

    collapsible side bar menu in the default theme

    Err codemadness.org 70 i 30602
  • Err codemadness.org 70 i 30603
  • Err codemadness.org 70 i 30604

    language updates for Chinese, Czech, French, German, Japanese, Portuguese and Russian

    Err codemadness.org 70 i 30605
  • Err codemadness.org 70 i 30606
  • Err codemadness.org 70 i 30607

    API backup export, Bind, Hardware widget, Nginx, Ntopng, VnStat and Dnscrypt-proxy plugins

    Err codemadness.org 70 i 30608
  • Err codemadness.org 70 i 30609
  • Err codemadness.org 70 i 30610

    Here are the full changes against version 19.1-RC2:

    Err codemadness.org 70 i 30611
  • Err codemadness.org 70 i 30612
  • Err codemadness.org 70 i 30613

    ipsec: add firewall interface as soon as phase 1 is enabled

    Err codemadness.org 70 i 30614
  • Err codemadness.org 70 i 30615
  • Err codemadness.org 70 i 30616

    ipsec: phase 1 selection GUI JavaScript compatibility fix

    Err codemadness.org 70 i 30617
  • Err codemadness.org 70 i 30618
  • Err codemadness.org 70 i 30619

    monit: widget improvements and bug fix (contributed by Frank Brendel)

    Err codemadness.org 70 i 30620
  • Err codemadness.org 70 i 30621
  • Err codemadness.org 70 i 30622

    ui: fix regression in single host or network subnet select in static pages

    Err codemadness.org 70 i 30623
  • Err codemadness.org 70 i 30624
  • Err codemadness.org 70 i 30625

    plugins: os-frr 1.7 updates OSFP outbound rules (contributed by Fabian Franz)

    Err codemadness.org 70 i 30626
  • Err codemadness.org 70 i 30627
  • Err codemadness.org 70 i 30628

    plugins: os-telegraf 1.7.4 fixes packet filter input

    Err codemadness.org 70 i 30629
  • Err codemadness.org 70 i 30630
  • Err codemadness.org 70 i 30631

    plugins: os-theme-rebellion 1.8.2 adds image colour invert

    Err codemadness.org 70 i 30632
  • Err codemadness.org 70 i 30633
  • Err codemadness.org 70 i 30634

    plugins: os-vnstat 1.1[3]

    Err codemadness.org 70 i 30635
  • Err codemadness.org 70 i 30636
  • Err codemadness.org 70 i 30637

    plugins: os-zabbix-agent now uses Zabbix version 4.0

    Err codemadness.org 70 i 30638
  • Err codemadness.org 70 i 30639
  • Err codemadness.org 70 i 30640

    src: revert mmc_calculate_clock() as HS200/HS400 support breaks legacy support

    Err codemadness.org 70 i 30641
  • Err codemadness.org 70 i 30642
  • Err codemadness.org 70 i 30643

    src: update sqlite3-3.20.0 to sqlite3-3.26.0[4]

    Err codemadness.org 70 i 30644
  • Err codemadness.org 70 i 30645
  • Err codemadness.org 70 i 30646

    src: import tzdata 2018h, 2018i[5]

    Err codemadness.org 70 i 30647
  • Err codemadness.org 70 i 30648
  • Err codemadness.org 70 i 30649

    src: avoid unsynchronized updates to kn_status[6]

    Err codemadness.org 70 i 30650
  • Err codemadness.org 70 i 30651
  • Err codemadness.org 70 i 30652

    ports: ca_root_nss 3.42

    Err codemadness.org 70 i 30653
  • Err codemadness.org 70 i 30654
  • Err codemadness.org 70 i 30655

    ports: dhcp6c 20190128 prevent rawops double-free (contributed by Team Rebellion)

    Err codemadness.org 70 i 30656
  • Err codemadness.org 70 i 30657
  • Err codemadness.org 70 i 30658

    ports: sudo patch to fix listpw=never[7]

    Err codemadness.org 70 i 30659
  • Err codemadness.org 70 i 30660
Err codemadness.org 70 i 30661 Err codemadness.org 70 i 30662


Err codemadness.org 70 i 30663 Err codemadness.org 70 i 30664

News Roundup

Err codemadness.org 70 i 30665 Err codemadness.org 70 i 30666

The hardware-assisted virtualization challenge

Err codemadness.org 70 i 30667 Err codemadness.org 70 i 30668
Err codemadness.org 70 i 30669

Over two years ago, I made a pledge to use NetBSD as my sole OS and only operating system, and to resist booting into any other OS until I had implemented hardware-accelerated virtualization in the NetBSD kernel (the equivalent of Linux’ KVM, or Hyper-V).
Err codemadness.org 70 i 30670 Today, I am here to report: Mission Accomplished!
Err codemadness.org 70 i 30671 It’s been a long road, but we now have hardware-accelerated virtualization in the kernel! And while I had only initially planned to get Oracle VirtualBox working, I have with the help of the Intel HAXM engine (the same backend used for virtualization in Android Studio) and a qemu frontend, successfully managed to boot a range of mainstream operating systems.

Err codemadness.org 70 i 30672
Err codemadness.org 70 i 30673 Err codemadness.org 70 i 30674


Err codemadness.org 70 i 30675 Err codemadness.org 70 i 30676

ZFS and GPL terror: How much freedom is there in Linux?

Err codemadness.org 70 i 30677 Err codemadness.org 70 i 30678
    Err codemadness.org 70 i 30679
  • ZFS – the undesirable guest
  • Err codemadness.org 70 i 30680
Err codemadness.org 70 i 30681 Err codemadness.org 70 i 30682
Err codemadness.org 70 i 30683

ZFS is todays most advanced filesystem. It originated on the Solaris operating system and thanks to Sun’s decision to open it up, we have it available on quite a number of Unix-like operating systems. That’s just great! Great for everyone.
Err codemadness.org 70 i 30684 For everyone? Nope. There are people out there who don’t like ZFS. Which is totally fine, they don’t need to use it after all. But worse: There are people who actively hate ZFS and think that others should not use it. Ok, it’s nothing new that some random guys on the net are acting like assholes, trying to tell you what you must not do, right? Whoever has been online for more than a couple of days probably already got used to it. Unfortunately its still worse: One such spoilsport is Greg Kroah-Hartman, Linux guru and informal second-in-command after Linus Torvalds.
Err codemadness.org 70 i 30685 There have been some attempts to defend the stance of this kernel developer. One was to point at the fact that the “ZFS on Linux” (ZoL) port uses two kernel functions, __kernel_fpu_begin() and __kernel_fpu_end(), which have been deprecated for a very long time and that it makes sense to finally get rid of them since nothing in-kernel uses it anymore. Nobody is going to argue against that. The problem becomes clear by looking at the bigger picture, though:
Err codemadness.org 70 i 30686 The need for functions doing just what the old ones did has of course not vanished. The functions have been replaced with other ones. And those ones are deliberately made GPL-only. Yes, that’s right: There’s no technical reason whatsoever! It’s purely ideology – and it’s a terrible one.

Err codemadness.org 70 i 30687
Err codemadness.org 70 i 30688 Err codemadness.org 70 i 30689


Err codemadness.org 70 i 30690 Err codemadness.org 70 i 30691

ClonOS 19.01-RELEASE

Err codemadness.org 70 i 30692 Err codemadness.org 70 i 30693
Err codemadness.org 70 i 30694

ClonOS is a turnkey Open Source platform based on FreeBSD and the CBSD framework. ClonOS offers a complete web UI for easily controlling, deploying and managing FreeBSD jails containers and Bhyve/Xen hyperviser virtual environments.
Err codemadness.org 70 i 30695 ClonOS is currently the only platform available which allow both Xen and Bhyve hypervisor to coexist on the same host. Being a FreeBSD base platform, ClonOS ability to create and manage jails allows you to run FreeBSD applications without losing performance.

Err codemadness.org 70 i 30696
Err codemadness.org 70 i 30697 Err codemadness.org 70 i 30698
    Err codemadness.org 70 i 30699
  • Err codemadness.org 70 i 30700

    Features:

    Err codemadness.org 70 i 30701
  • Err codemadness.org 70 i 30702
  • Err codemadness.org 70 i 30703

    easy management via web UI interface

    Err codemadness.org 70 i 30704
  • Err codemadness.org 70 i 30705
  • Err codemadness.org 70 i 30706

    live Bhyve migration [coming soon, roadmap]

    Err codemadness.org 70 i 30707
  • Err codemadness.org 70 i 30708
  • Err codemadness.org 70 i 30709

    Bhyve management (create, delete VM)

    Err codemadness.org 70 i 30710
  • Err codemadness.org 70 i 30711
  • Err codemadness.org 70 i 30712

    Xen management (create, delete VM) [coming soon, roadmap]

    Err codemadness.org 70 i 30713
  • Err codemadness.org 70 i 30714
  • Err codemadness.org 70 i 30715

    connection to the “physical” guest console via VNC from the browser or directly

    Err codemadness.org 70 i 30716
  • Err codemadness.org 70 i 30717
  • Err codemadness.org 70 i 30718

    Real time system monitoring

    Err codemadness.org 70 i 30719
  • Err codemadness.org 70 i 30720
  • Err codemadness.org 70 i 30721

    access to load statistics through SQLite3 and beanstalkd

    Err codemadness.org 70 i 30722
  • Err codemadness.org 70 i 30723
  • Err codemadness.org 70 i 30724

    support for ZFS features (cloning, snapshots)

    Err codemadness.org 70 i 30725
  • Err codemadness.org 70 i 30726
  • Err codemadness.org 70 i 30727

    import/export of virtual environments

    Err codemadness.org 70 i 30728
  • Err codemadness.org 70 i 30729
  • Err codemadness.org 70 i 30730

    public repository with virtual machine templates

    Err codemadness.org 70 i 30731
  • Err codemadness.org 70 i 30732
  • Err codemadness.org 70 i 30733

    puppet-based helpers for configuring popular services

    Err codemadness.org 70 i 30734
  • Err codemadness.org 70 i 30735
  • Err codemadness.org 70 i 30736

    ClonOS is a free open-source FreeBSD-based platform for virtual environments creation and management. In the core:

    Err codemadness.org 70 i 30737
  • Err codemadness.org 70 i 30738
  • Err codemadness.org 70 i 30739

    FreeBSD OS as hoster platform

    Err codemadness.org 70 i 30740
  • Err codemadness.org 70 i 30741
  • Err codemadness.org 70 i 30742

    bhyve(8) as hypervisor engine

    Err codemadness.org 70 i 30743
  • Err codemadness.org 70 i 30744
  • Err codemadness.org 70 i 30745

    Xen as hypervisor engine

    Err codemadness.org 70 i 30746
  • Err codemadness.org 70 i 30747
  • Err codemadness.org 70 i 30748

    vale(4) as Virtual Ethernet Switch

    Err codemadness.org 70 i 30749
  • Err codemadness.org 70 i 30750
  • Err codemadness.org 70 i 30751

    jail(8) as container engine

    Err codemadness.org 70 i 30752
  • Err codemadness.org 70 i 30753
  • Err codemadness.org 70 i 30754

    CBSD Project as management tools

    Err codemadness.org 70 i 30755
  • Err codemadness.org 70 i 30756
  • Err codemadness.org 70 i 30757

    Puppet as configuration management

    Err codemadness.org 70 i 30758
  • Err codemadness.org 70 i 30759
Err codemadness.org 70 i 30760 Err codemadness.org 70 i 30761


Err codemadness.org 70 i 30762 Err codemadness.org 70 i 30763

Beastie Bits

Err codemadness.org 70 i 30764 Err codemadness.org 70 i 30765 Err codemadness.org 70 i 30775 Err codemadness.org 70 i 30776


Err codemadness.org 70 i 30777 Err codemadness.org 70 i 30778

Feedback/Questions

Err codemadness.org 70 i 30779 Err codemadness.org 70 i 30780 Err codemadness.org 70 i 30785 Err codemadness.org 70 i 30786


Err codemadness.org 70 i 30787 Err codemadness.org 70 i 30788
    Err codemadness.org 70 i 30789
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 30790
Err codemadness.org 70 i 30791 Err codemadness.org 70 i 30792


]]> Err codemadness.org 70 i 30793
Err codemadness.org 70 i 30794 Err codemadness.org 70 i 30795 We recap FOSDEM 2019, FreeBSD Foundation January update, OPNsense 19.1 released, the hardware-assisted virtualization challenge, ZFS and GPL terror, ClonOS 19.01-RELEASE, and more.

Err codemadness.org 70 i 30796 Err codemadness.org 70 i 30797

Headlines

Err codemadness.org 70 i 30798 Err codemadness.org 70 i 30799

FOSDEM 2019 Recap

Err codemadness.org 70 i 30800 Err codemadness.org 70 i 30801
    Err codemadness.org 70 i 30802
  • Allan and I were at FOSDEM 2019 in Brussels, Belgium over the weekend.
  • Err codemadness.org 70 i 30803
  • On the Friday before, we held a FreeBSD Devsummit in a hotel conference room, with 25 people attending. We talked about various topics of interest to the project. You can find the notes on the wiki page.
  • Err codemadness.org 70 i 30804
  • Saturday was the first day of FOSDEM. The FreeBSD Project had a table next to the Illumos Project again. A lot of people visited our table, asked questions, or just said “Hi, I watch BSDNow.tv every week”. We handed out a lot of stickers, pens, swag, and flyers. There was also a full day BSD devroom, with a variety of talks that were well attended.
  • Err codemadness.org 70 i 30805
  • In the main conference track, Allan held a talk explaining how the ZFS ARC works. A lot of people attended the talk and had more questions afterwards. Another well attended talk was by Jonathan Looney about Netflix and FreeBSD.
  • Err codemadness.org 70 i 30806
  • Sunday was another day in the same format, but no bsd devroom. A lot of people visited our table, developers and users alike. A lot of meeting and greeting went on.
  • Err codemadness.org 70 i 30807
  • Overall, FOSDEM was a great success with FreeBSD showing a lot of presence. Thanks to all the people who attended and talked to us. Special thanks to the people who helped out at the FreeBSD table and Rodrigo Osorio for running the BSD devroom again.
  • Err codemadness.org 70 i 30808
Err codemadness.org 70 i 30809 Err codemadness.org 70 i 30810

FreeBSD Foundation Update, January 2019

Err codemadness.org 70 i 30811 Err codemadness.org 70 i 30812
Err codemadness.org 70 i 30813

Dear FreeBSD Community Member,
Err codemadness.org 70 i 30814 Happy New Year! It’s always exciting starting the new year with ambitious plans to support FreeBSD in new and existing areas. We achieved our fundraising goal for 2018, so we plan on funding a lot of work this year! Though it’s the new year, this newsletter highlights some of the work we accomplished in December. We also put together a list of technologies and features we are considering supporting, and are looking for feedback on what users want to help inform our 2019 development plans. Our advocacy and education efforts are in full swing as we prepare for upcoming conferences including FOSDEM, SANOG33, and SCaLE.
Err codemadness.org 70 i 30815 Finally, we created a year-end video to talk about the work we did in 2018. That in itself was an endeavor, so please take a few minutes to watch it! We’re working on improving the methods we use to inform the community on the work we are doing to support the Project, and are always open to feedback. Now, sit back, grab a refreshing beverage, and enjoy our newsletter!
Err codemadness.org 70 i 30816 Happy reading!!
Err codemadness.org 70 i 30817 Deb

Err codemadness.org 70 i 30818
Err codemadness.org 70 i 30819 Err codemadness.org 70 i 30820


Err codemadness.org 70 i 30821 Err codemadness.org 70 i 30822

OPNsense 19.1 released

Err codemadness.org 70 i 30823 Err codemadness.org 70 i 30824
Err codemadness.org 70 i 30825

For more than four years now, OPNsense is driving innovation through modularising and hardening the open source firewall, with simple and reliable firmware upgrades, multi-language support, HardenedBSD security, fast adoption of upstream software updates as well as clear and stable 2-Clause BSD licensing.
Err codemadness.org 70 i 30826 The 19.1 release, nicknamed “Inspiring Iguana”, consists of a total of 620 individual changes since 18.7 came out 6 months ago, spread out over 12 intermediate releases including the recent release candidates. That is the average of 2 stable releases per month, security updates and important bug fixes included! If we had to pick a few highlights it would be: The firewall alias API is finally in place. The migration to HardenedBSD 11.2 has been completed. 2FA now works with a remote LDAP / local TOTP combination. And the OpenVPN client export was rewritten for full API support as well.

Err codemadness.org 70 i 30827
Err codemadness.org 70 i 30828 Err codemadness.org 70 i 30829
    Err codemadness.org 70 i 30830
  • Err codemadness.org 70 i 30831

    These are the most prominent changes since version 18.7:

    Err codemadness.org 70 i 30832
  • Err codemadness.org 70 i 30833
  • Err codemadness.org 70 i 30834

    fully functional firewall alias API

    Err codemadness.org 70 i 30835
  • Err codemadness.org 70 i 30836
  • Err codemadness.org 70 i 30837

    PIE firewall shaper support

    Err codemadness.org 70 i 30838
  • Err codemadness.org 70 i 30839
  • Err codemadness.org 70 i 30840

    firewall NAT rule logging support

    Err codemadness.org 70 i 30841
  • Err codemadness.org 70 i 30842
  • Err codemadness.org 70 i 30843

    2FA via LDAP-TOTP combination

    Err codemadness.org 70 i 30844
  • Err codemadness.org 70 i 30845
  • Err codemadness.org 70 i 30846

    WPAD / PAC and parent proxy support in the web proxy

    Err codemadness.org 70 i 30847
  • Err codemadness.org 70 i 30848
  • Err codemadness.org 70 i 30849

    P12 certificate export with custom passwords

    Err codemadness.org 70 i 30850
  • Err codemadness.org 70 i 30851
  • Err codemadness.org 70 i 30852

    Dpinger is now the default gateway monitor

    Err codemadness.org 70 i 30853
  • Err codemadness.org 70 i 30854
  • Err codemadness.org 70 i 30855

    ET Pro Telemetry edition plugin[2]

    Err codemadness.org 70 i 30856
  • Err codemadness.org 70 i 30857
  • Err codemadness.org 70 i 30858

    extended IPv6 DUID support

    Err codemadness.org 70 i 30859
  • Err codemadness.org 70 i 30860
  • Err codemadness.org 70 i 30861

    Dnsmasq DNSSEC support

    Err codemadness.org 70 i 30862
  • Err codemadness.org 70 i 30863
  • Err codemadness.org 70 i 30864

    OpenVPN client export API

    Err codemadness.org 70 i 30865
  • Err codemadness.org 70 i 30866
  • Err codemadness.org 70 i 30867

    Realtek NIC driver version 1.95

    Err codemadness.org 70 i 30868
  • Err codemadness.org 70 i 30869
  • Err codemadness.org 70 i 30870

    HardenedBSD 11.2, LibreSSL 2.7

    Err codemadness.org 70 i 30871
  • Err codemadness.org 70 i 30872
  • Err codemadness.org 70 i 30873

    Unbound 1.8, Suricata 4.1

    Err codemadness.org 70 i 30874
  • Err codemadness.org 70 i 30875
  • Err codemadness.org 70 i 30876

    Phalcon 3.4, Perl 5.28

    Err codemadness.org 70 i 30877
  • Err codemadness.org 70 i 30878
  • Err codemadness.org 70 i 30879

    firmware health check extended to cover all OS files, HTTPS mirror default

    Err codemadness.org 70 i 30880
  • Err codemadness.org 70 i 30881
  • Err codemadness.org 70 i 30882

    updates are browser cache-safe regarding CSS and JavaScript assets

    Err codemadness.org 70 i 30883
  • Err codemadness.org 70 i 30884
  • Err codemadness.org 70 i 30885

    collapsible side bar menu in the default theme

    Err codemadness.org 70 i 30886
  • Err codemadness.org 70 i 30887
  • Err codemadness.org 70 i 30888

    language updates for Chinese, Czech, French, German, Japanese, Portuguese and Russian

    Err codemadness.org 70 i 30889
  • Err codemadness.org 70 i 30890
  • Err codemadness.org 70 i 30891

    API backup export, Bind, Hardware widget, Nginx, Ntopng, VnStat and Dnscrypt-proxy plugins

    Err codemadness.org 70 i 30892
  • Err codemadness.org 70 i 30893
  • Err codemadness.org 70 i 30894

    Here are the full changes against version 19.1-RC2:

    Err codemadness.org 70 i 30895
  • Err codemadness.org 70 i 30896
  • Err codemadness.org 70 i 30897

    ipsec: add firewall interface as soon as phase 1 is enabled

    Err codemadness.org 70 i 30898
  • Err codemadness.org 70 i 30899
  • Err codemadness.org 70 i 30900

    ipsec: phase 1 selection GUI JavaScript compatibility fix

    Err codemadness.org 70 i 30901
  • Err codemadness.org 70 i 30902
  • Err codemadness.org 70 i 30903

    monit: widget improvements and bug fix (contributed by Frank Brendel)

    Err codemadness.org 70 i 30904
  • Err codemadness.org 70 i 30905
  • Err codemadness.org 70 i 30906

    ui: fix regression in single host or network subnet select in static pages

    Err codemadness.org 70 i 30907
  • Err codemadness.org 70 i 30908
  • Err codemadness.org 70 i 30909

    plugins: os-frr 1.7 updates OSFP outbound rules (contributed by Fabian Franz)

    Err codemadness.org 70 i 30910
  • Err codemadness.org 70 i 30911
  • Err codemadness.org 70 i 30912

    plugins: os-telegraf 1.7.4 fixes packet filter input

    Err codemadness.org 70 i 30913
  • Err codemadness.org 70 i 30914
  • Err codemadness.org 70 i 30915

    plugins: os-theme-rebellion 1.8.2 adds image colour invert

    Err codemadness.org 70 i 30916
  • Err codemadness.org 70 i 30917
  • Err codemadness.org 70 i 30918

    plugins: os-vnstat 1.1[3]

    Err codemadness.org 70 i 30919
  • Err codemadness.org 70 i 30920
  • Err codemadness.org 70 i 30921

    plugins: os-zabbix-agent now uses Zabbix version 4.0

    Err codemadness.org 70 i 30922
  • Err codemadness.org 70 i 30923
  • Err codemadness.org 70 i 30924

    src: revert mmc_calculate_clock() as HS200/HS400 support breaks legacy support

    Err codemadness.org 70 i 30925
  • Err codemadness.org 70 i 30926
  • Err codemadness.org 70 i 30927

    src: update sqlite3-3.20.0 to sqlite3-3.26.0[4]

    Err codemadness.org 70 i 30928
  • Err codemadness.org 70 i 30929
  • Err codemadness.org 70 i 30930

    src: import tzdata 2018h, 2018i[5]

    Err codemadness.org 70 i 30931
  • Err codemadness.org 70 i 30932
  • Err codemadness.org 70 i 30933

    src: avoid unsynchronized updates to kn_status[6]

    Err codemadness.org 70 i 30934
  • Err codemadness.org 70 i 30935
  • Err codemadness.org 70 i 30936

    ports: ca_root_nss 3.42

    Err codemadness.org 70 i 30937
  • Err codemadness.org 70 i 30938
  • Err codemadness.org 70 i 30939

    ports: dhcp6c 20190128 prevent rawops double-free (contributed by Team Rebellion)

    Err codemadness.org 70 i 30940
  • Err codemadness.org 70 i 30941
  • Err codemadness.org 70 i 30942

    ports: sudo patch to fix listpw=never[7]

    Err codemadness.org 70 i 30943
  • Err codemadness.org 70 i 30944
Err codemadness.org 70 i 30945 Err codemadness.org 70 i 30946


Err codemadness.org 70 i 30947 Err codemadness.org 70 i 30948

News Roundup

Err codemadness.org 70 i 30949 Err codemadness.org 70 i 30950

The hardware-assisted virtualization challenge

Err codemadness.org 70 i 30951 Err codemadness.org 70 i 30952
Err codemadness.org 70 i 30953

Over two years ago, I made a pledge to use NetBSD as my sole OS and only operating system, and to resist booting into any other OS until I had implemented hardware-accelerated virtualization in the NetBSD kernel (the equivalent of Linux’ KVM, or Hyper-V).
Err codemadness.org 70 i 30954 Today, I am here to report: Mission Accomplished!
Err codemadness.org 70 i 30955 It’s been a long road, but we now have hardware-accelerated virtualization in the kernel! And while I had only initially planned to get Oracle VirtualBox working, I have with the help of the Intel HAXM engine (the same backend used for virtualization in Android Studio) and a qemu frontend, successfully managed to boot a range of mainstream operating systems.

Err codemadness.org 70 i 30956
Err codemadness.org 70 i 30957 Err codemadness.org 70 i 30958


Err codemadness.org 70 i 30959 Err codemadness.org 70 i 30960

ZFS and GPL terror: How much freedom is there in Linux?

Err codemadness.org 70 i 30961 Err codemadness.org 70 i 30962
    Err codemadness.org 70 i 30963
  • ZFS – the undesirable guest
  • Err codemadness.org 70 i 30964
Err codemadness.org 70 i 30965 Err codemadness.org 70 i 30966
Err codemadness.org 70 i 30967

ZFS is todays most advanced filesystem. It originated on the Solaris operating system and thanks to Sun’s decision to open it up, we have it available on quite a number of Unix-like operating systems. That’s just great! Great for everyone.
Err codemadness.org 70 i 30968 For everyone? Nope. There are people out there who don’t like ZFS. Which is totally fine, they don’t need to use it after all. But worse: There are people who actively hate ZFS and think that others should not use it. Ok, it’s nothing new that some random guys on the net are acting like assholes, trying to tell you what you must not do, right? Whoever has been online for more than a couple of days probably already got used to it. Unfortunately its still worse: One such spoilsport is Greg Kroah-Hartman, Linux guru and informal second-in-command after Linus Torvalds.
Err codemadness.org 70 i 30969 There have been some attempts to defend the stance of this kernel developer. One was to point at the fact that the “ZFS on Linux” (ZoL) port uses two kernel functions, __kernel_fpu_begin() and __kernel_fpu_end(), which have been deprecated for a very long time and that it makes sense to finally get rid of them since nothing in-kernel uses it anymore. Nobody is going to argue against that. The problem becomes clear by looking at the bigger picture, though:
Err codemadness.org 70 i 30970 The need for functions doing just what the old ones did has of course not vanished. The functions have been replaced with other ones. And those ones are deliberately made GPL-only. Yes, that’s right: There’s no technical reason whatsoever! It’s purely ideology – and it’s a terrible one.

Err codemadness.org 70 i 30971
Err codemadness.org 70 i 30972 Err codemadness.org 70 i 30973


Err codemadness.org 70 i 30974 Err codemadness.org 70 i 30975

ClonOS 19.01-RELEASE

Err codemadness.org 70 i 30976 Err codemadness.org 70 i 30977
Err codemadness.org 70 i 30978

ClonOS is a turnkey Open Source platform based on FreeBSD and the CBSD framework. ClonOS offers a complete web UI for easily controlling, deploying and managing FreeBSD jails containers and Bhyve/Xen hyperviser virtual environments.
Err codemadness.org 70 i 30979 ClonOS is currently the only platform available which allow both Xen and Bhyve hypervisor to coexist on the same host. Being a FreeBSD base platform, ClonOS ability to create and manage jails allows you to run FreeBSD applications without losing performance.

Err codemadness.org 70 i 30980
Err codemadness.org 70 i 30981 Err codemadness.org 70 i 30982
    Err codemadness.org 70 i 30983
  • Err codemadness.org 70 i 30984

    Features:

    Err codemadness.org 70 i 30985
  • Err codemadness.org 70 i 30986
  • Err codemadness.org 70 i 30987

    easy management via web UI interface

    Err codemadness.org 70 i 30988
  • Err codemadness.org 70 i 30989
  • Err codemadness.org 70 i 30990

    live Bhyve migration [coming soon, roadmap]

    Err codemadness.org 70 i 30991
  • Err codemadness.org 70 i 30992
  • Err codemadness.org 70 i 30993

    Bhyve management (create, delete VM)

    Err codemadness.org 70 i 30994
  • Err codemadness.org 70 i 30995
  • Err codemadness.org 70 i 30996

    Xen management (create, delete VM) [coming soon, roadmap]

    Err codemadness.org 70 i 30997
  • Err codemadness.org 70 i 30998
  • Err codemadness.org 70 i 30999

    connection to the “physical” guest console via VNC from the browser or directly

    Err codemadness.org 70 i 31000
  • Err codemadness.org 70 i 31001
  • Err codemadness.org 70 i 31002

    Real time system monitoring

    Err codemadness.org 70 i 31003
  • Err codemadness.org 70 i 31004
  • Err codemadness.org 70 i 31005

    access to load statistics through SQLite3 and beanstalkd

    Err codemadness.org 70 i 31006
  • Err codemadness.org 70 i 31007
  • Err codemadness.org 70 i 31008

    support for ZFS features (cloning, snapshots)

    Err codemadness.org 70 i 31009
  • Err codemadness.org 70 i 31010
  • Err codemadness.org 70 i 31011

    import/export of virtual environments

    Err codemadness.org 70 i 31012
  • Err codemadness.org 70 i 31013
  • Err codemadness.org 70 i 31014

    public repository with virtual machine templates

    Err codemadness.org 70 i 31015
  • Err codemadness.org 70 i 31016
  • Err codemadness.org 70 i 31017

    puppet-based helpers for configuring popular services

    Err codemadness.org 70 i 31018
  • Err codemadness.org 70 i 31019
  • Err codemadness.org 70 i 31020

    ClonOS is a free open-source FreeBSD-based platform for virtual environments creation and management. In the core:

    Err codemadness.org 70 i 31021
  • Err codemadness.org 70 i 31022
  • Err codemadness.org 70 i 31023

    FreeBSD OS as hoster platform

    Err codemadness.org 70 i 31024
  • Err codemadness.org 70 i 31025
  • Err codemadness.org 70 i 31026

    bhyve(8) as hypervisor engine

    Err codemadness.org 70 i 31027
  • Err codemadness.org 70 i 31028
  • Err codemadness.org 70 i 31029

    Xen as hypervisor engine

    Err codemadness.org 70 i 31030
  • Err codemadness.org 70 i 31031
  • Err codemadness.org 70 i 31032

    vale(4) as Virtual Ethernet Switch

    Err codemadness.org 70 i 31033
  • Err codemadness.org 70 i 31034
  • Err codemadness.org 70 i 31035

    jail(8) as container engine

    Err codemadness.org 70 i 31036
  • Err codemadness.org 70 i 31037
  • Err codemadness.org 70 i 31038

    CBSD Project as management tools

    Err codemadness.org 70 i 31039
  • Err codemadness.org 70 i 31040
  • Err codemadness.org 70 i 31041

    Puppet as configuration management

    Err codemadness.org 70 i 31042
  • Err codemadness.org 70 i 31043
Err codemadness.org 70 i 31044 Err codemadness.org 70 i 31045


Err codemadness.org 70 i 31046 Err codemadness.org 70 i 31047

Beastie Bits

Err codemadness.org 70 i 31048 Err codemadness.org 70 i 31049 Err codemadness.org 70 i 31059 Err codemadness.org 70 i 31060


Err codemadness.org 70 i 31061 Err codemadness.org 70 i 31062

Feedback/Questions

Err codemadness.org 70 i 31063 Err codemadness.org 70 i 31064 Err codemadness.org 70 i 31069 Err codemadness.org 70 i 31070


Err codemadness.org 70 i 31071 Err codemadness.org 70 i 31072
    Err codemadness.org 70 i 31073
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 31074
Err codemadness.org 70 i 31075 Err codemadness.org 70 i 31076


]]> Err codemadness.org 70 i 31077
Err codemadness.org 70 i 31078 https://fireside.fm/player/v2/FYhhasNR+YZcPrD44 Err codemadness.org 70 i 31079 Err codemadness.org 70 i 31080 ]]> Err codemadness.org 70 i 31081 Err codemadness.org 70 i 31082
Err codemadness.org 70 i 31083 Err codemadness.org 70 i 31084 283: Graphical Interface-View Err codemadness.org 70 i 31085 https://www.bsdnow.tv/283 Err codemadness.org 70 i 31086 e11d6e25-000c-4424-b4fa-cda93c336f73 Err codemadness.org 70 i 31087 Thu, 31 Jan 2019 08:00:00 -0800 Err codemadness.org 70 i 31088 Allan Jude Err codemadness.org 70 i 31089 Err codemadness.org 70 i 31090 full Err codemadness.org 70 i 31091 Allan Jude Err codemadness.org 70 i 31092 We’re at FOSDEM 2019 this week having fun. We’d never leave you in a lurch, so we have recorded an interview with Niclas Zeising of the FreeBSD graphics team for you. Enjoy. Err codemadness.org 70 i 31093 46:44 Err codemadness.org 70 i 31094 no Err codemadness.org 70 i 31095 Err codemadness.org 70 i 31096 We’re at FOSDEM 2019 this week having fun. We’d never leave you in a lurch, so we have recorded an interview with Niclas Zeising of the FreeBSD graphics team for you. Enjoy. Err codemadness.org 70 i 31097 <p>##Interview - Niclas Zeising - <a href="mailto:zeising@FreeBSD.org">zeising@FreeBSD.org</a> / <a href="https://twitter.com/niclaszeising">@niclaszeising</a><br> Err codemadness.org 70 i 31098 Interview topic: FreeBSD Graphics Stack</p> Err codemadness.org 70 i 31099 <ul> Err codemadness.org 70 i 31100 <li>BR: Welcome Niclas. Since this is your first time on BSDNow, can you tell us a bit about yourself and how you started with Unix/BSD?</li> Err codemadness.org 70 i 31101 <li>AJ: What made you start working in the FreeBSD graphics stack?</li> Err codemadness.org 70 i 31102 <li>BR: What is the current status with the FreeBSD graphics stack?</li> Err codemadness.org 70 i 31103 <li>AJ: What challenges do you face in the FreeBSD graphics stack?</li> Err codemadness.org 70 i 31104 <li>BR: How many people are working in the graphics team and what kind of help do you need there?</li> Err codemadness.org 70 i 31105 <li>AJ: You’re also involved in FreeBSD ports and held a poudriere tutorial at last years EuroBSDcon. What kind of feedback did you get and will you give that tutorial again?</li> Err codemadness.org 70 i 31106 <li>BR: You’ve been organizing the Stockholm BSD user group meeting. Can you tell us a bit about that, what’s involved, how is it structured?</li> Err codemadness.org 70 i 31107 <li>AJ: What conferences do you go to where people could talk to you?</li> Err codemadness.org 70 i 31108 <li>BR: Is there anything else you’d like to mention before we let you go?</li> Err codemadness.org 70 i 31109 </ul> Err codemadness.org 70 i 31110 <hr> Err codemadness.org 70 i 31111 <p>##Feedback/Questions</p> Err codemadness.org 70 i 31112 <ul> Err codemadness.org 70 i 31113 <li>Casey - <a href="http://dpaste.com/33XCN5X#wrap">TrueOS</a></li> Err codemadness.org 70 i 31114 <li>Troels - <a href="http://dpaste.com/31M2SN6">zfs send vs zfs send -R</a></li> Err codemadness.org 70 i 31115 <li>matclarke - <a href="http://dpaste.com/16WDCW0">Orphaned packages</a></li> Err codemadness.org 70 i 31116 </ul> Err codemadness.org 70 i 31117 <hr> Err codemadness.org 70 i 31118 <ul> Err codemadness.org 70 i 31119 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 31120 </ul> Err codemadness.org 70 i 31121 <hr> Err codemadness.org 70 i 31122 Err codemadness.org 70 i 31123 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 31124 Err codemadness.org 70 i 31125 We’re at FOSDEM 2019 this week having fun. We’d never leave you in a lurch, so we have recorded an interview with Niclas Zeising of the FreeBSD graphics team for you. Enjoy.

Err codemadness.org 70 i 31126 Err codemadness.org 70 i 31127

##Interview - Niclas Zeising - zeising@FreeBSD.org / @niclaszeising
Err codemadness.org 70 i 31128 Interview topic: FreeBSD Graphics Stack

Err codemadness.org 70 i 31129 Err codemadness.org 70 i 31130
    Err codemadness.org 70 i 31131
  • BR: Welcome Niclas. Since this is your first time on BSDNow, can you tell us a bit about yourself and how you started with Unix/BSD?
  • Err codemadness.org 70 i 31132
  • AJ: What made you start working in the FreeBSD graphics stack?
  • Err codemadness.org 70 i 31133
  • BR: What is the current status with the FreeBSD graphics stack?
  • Err codemadness.org 70 i 31134
  • AJ: What challenges do you face in the FreeBSD graphics stack?
  • Err codemadness.org 70 i 31135
  • BR: How many people are working in the graphics team and what kind of help do you need there?
  • Err codemadness.org 70 i 31136
  • AJ: You’re also involved in FreeBSD ports and held a poudriere tutorial at last years EuroBSDcon. What kind of feedback did you get and will you give that tutorial again?
  • Err codemadness.org 70 i 31137
  • BR: You’ve been organizing the Stockholm BSD user group meeting. Can you tell us a bit about that, what’s involved, how is it structured?
  • Err codemadness.org 70 i 31138
  • AJ: What conferences do you go to where people could talk to you?
  • Err codemadness.org 70 i 31139
  • BR: Is there anything else you’d like to mention before we let you go?
  • Err codemadness.org 70 i 31140
Err codemadness.org 70 i 31141 Err codemadness.org 70 i 31142


Err codemadness.org 70 i 31143 Err codemadness.org 70 i 31144

##Feedback/Questions

Err codemadness.org 70 i 31145 Err codemadness.org 70 i 31146 Err codemadness.org 70 i 31151 Err codemadness.org 70 i 31152


Err codemadness.org 70 i 31153 Err codemadness.org 70 i 31154
    Err codemadness.org 70 i 31155
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 31156
Err codemadness.org 70 i 31157 Err codemadness.org 70 i 31158


]]> Err codemadness.org 70 i 31159
Err codemadness.org 70 i 31160 Err codemadness.org 70 i 31161 We’re at FOSDEM 2019 this week having fun. We’d never leave you in a lurch, so we have recorded an interview with Niclas Zeising of the FreeBSD graphics team for you. Enjoy.

Err codemadness.org 70 i 31162 Err codemadness.org 70 i 31163

##Interview - Niclas Zeising - zeising@FreeBSD.org / @niclaszeising
Err codemadness.org 70 i 31164 Interview topic: FreeBSD Graphics Stack

Err codemadness.org 70 i 31165 Err codemadness.org 70 i 31166
    Err codemadness.org 70 i 31167
  • BR: Welcome Niclas. Since this is your first time on BSDNow, can you tell us a bit about yourself and how you started with Unix/BSD?
  • Err codemadness.org 70 i 31168
  • AJ: What made you start working in the FreeBSD graphics stack?
  • Err codemadness.org 70 i 31169
  • BR: What is the current status with the FreeBSD graphics stack?
  • Err codemadness.org 70 i 31170
  • AJ: What challenges do you face in the FreeBSD graphics stack?
  • Err codemadness.org 70 i 31171
  • BR: How many people are working in the graphics team and what kind of help do you need there?
  • Err codemadness.org 70 i 31172
  • AJ: You’re also involved in FreeBSD ports and held a poudriere tutorial at last years EuroBSDcon. What kind of feedback did you get and will you give that tutorial again?
  • Err codemadness.org 70 i 31173
  • BR: You’ve been organizing the Stockholm BSD user group meeting. Can you tell us a bit about that, what’s involved, how is it structured?
  • Err codemadness.org 70 i 31174
  • AJ: What conferences do you go to where people could talk to you?
  • Err codemadness.org 70 i 31175
  • BR: Is there anything else you’d like to mention before we let you go?
  • Err codemadness.org 70 i 31176
Err codemadness.org 70 i 31177 Err codemadness.org 70 i 31178


Err codemadness.org 70 i 31179 Err codemadness.org 70 i 31180

##Feedback/Questions

Err codemadness.org 70 i 31181 Err codemadness.org 70 i 31182 Err codemadness.org 70 i 31187 Err codemadness.org 70 i 31188


Err codemadness.org 70 i 31189 Err codemadness.org 70 i 31190
    Err codemadness.org 70 i 31191
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 31192
Err codemadness.org 70 i 31193 Err codemadness.org 70 i 31194


]]> Err codemadness.org 70 i 31195
Err codemadness.org 70 i 31196 https://fireside.fm/player/v2/FYhhasNR+E3ab2i-f Err codemadness.org 70 i 31197 Err codemadness.org 70 i 31198 ]]> Err codemadness.org 70 i 31199 Err codemadness.org 70 i 31200
Err codemadness.org 70 i 31201 Err codemadness.org 70 i 31202 282: Open the Rsync Err codemadness.org 70 i 31203 https://www.bsdnow.tv/282 Err codemadness.org 70 i 31204 081a14d7-ba00-43d2-9be7-ea1a189ed2e2 Err codemadness.org 70 i 31205 Thu, 24 Jan 2019 08:00:00 -0800 Err codemadness.org 70 i 31206 Allan Jude Err codemadness.org 70 i 31207 Err codemadness.org 70 i 31208 full Err codemadness.org 70 i 31209 Allan Jude Err codemadness.org 70 i 31210 Project Trident 18.12 released, Spotifyd on NetBSD, OPNsense 18.7.10 is available, Ultra EPYC AMD Powered Sun Ultra 24 Workstation, OpenRsync, LLD porting to NetBSD, and more. Err codemadness.org 70 i 31211 1:01:20 Err codemadness.org 70 i 31212 no Err codemadness.org 70 i 31213 Err codemadness.org 70 i 31214 Project Trident 18.12 released, Spotifyd on NetBSD, OPNsense 18.7.10 is available, Ultra EPYC AMD Powered Sun Ultra 24 Workstation, OpenRsync, LLD porting to NetBSD, and more. Err codemadness.org 70 i 31215 <p>##Headlines</p> Err codemadness.org 70 i 31216 <p>###<a href="https://2019.asiabsdcon.org/cfp.html.en">AsiaBSDCon 2019 Call for Papers</a></p> Err codemadness.org 70 i 31217 <ul> Err codemadness.org 70 i 31218 <li>You have until Jan 30th to submit</li> Err codemadness.org 70 i 31219 <li>Full paper requirement is relaxed a bit this year (this year ONLY!) due to the short submission window. You don’t need all 10-12 pages, but it is still preferred.</li> Err codemadness.org 70 i 31220 <li>Send a message to <a href="mailto:secretary@asiabsdcon.org">secretary@asiabsdcon.org</a> with your proposal. Could be either for a talk or a tutorial.</li> Err codemadness.org 70 i 31221 <li>Two days of tutorials/devsummit and two days of conference during Sakura season in Tokyo, Japan</li> Err codemadness.org 70 i 31222 <li>The conference is also looking for sponsors</li> Err codemadness.org 70 i 31223 <li>If accepted, flight and hotel is paid for by the conference</li> Err codemadness.org 70 i 31224 </ul> Err codemadness.org 70 i 31225 <hr> Err codemadness.org 70 i 31226 <p>###<a href="http://project-trident.org/post/2019-01-15_18.12-release_available/">Project Trident 18.12 Released</a></p> Err codemadness.org 70 i 31227 <ul> Err codemadness.org 70 i 31228 <li><a href="https://twitter.com/tridentproject">Twitter account if you want to keep up on project news</a></li> Err codemadness.org 70 i 31229 <li><a href="https://twitter.com/TridentProject/status/1086010032662237185">Screenshots</a></li> Err codemadness.org 70 i 31230 <li><a href="https://t.me/ProjectTrident">Project Trident Community Telegram Channel</a></li> Err codemadness.org 70 i 31231 <li><a href="https://distrowatch.com/?newsid=10442">DistroWatch Page</a></li> Err codemadness.org 70 i 31232 <li><a href="https://linuxactionnews.com/89?t=395">LinuxActionNews Review</a></li> Err codemadness.org 70 i 31233 <li><a href="https://www.youtube.com/watch?v=QjiR1KiacrQ">RoboNuggie’s in depth review</a></li> Err codemadness.org 70 i 31234 </ul> Err codemadness.org 70 i 31235 <hr> Err codemadness.org 70 i 31236 <p>###<a href="https://atomicules.co.uk/2019/01/17/Building-Spotifyd-on-NetBSD.html">Building Spotifyd on NetBSD</a></p> Err codemadness.org 70 i 31237 <blockquote> Err codemadness.org 70 i 31238 <p>These are the steps I went through to build and run Spotifyd (this commit at the time of writing) on NetBSD AMD64. It’s a Spotify Connect client so it means I still need to control Spotify from another device (typically my phone), but the audio is played through my desktop… which is where my speakers and headphones are plugged in - it means I don’t have to unplug stuff and re-plug into my phone, work laptop, etc. This is 100% a “good enough for now solution” for me; I have had a quick play with the Go based microcontroller from spotcontrol and that allows a completely NetBSD only experience (although it is just an example application so doesn’t provide many features - great as a basis to build on though).</p> Err codemadness.org 70 i 31239 </blockquote> Err codemadness.org 70 i 31240 <hr> Err codemadness.org 70 i 31241 <p>##News Roundup</p> Err codemadness.org 70 i 31242 <p>###<a href="https://opnsense.org/opnsense-18-7-10-released/">OPNsense 18.7.10 released</a></p> Err codemadness.org 70 i 31243 <blockquote> Err codemadness.org 70 i 31244 <p>2019 means 19.1 is almost here. In the meantime accept this small<br> Err codemadness.org 70 i 31245 incremental update with goodies such as Suricata 4.1, custom passwords<br> Err codemadness.org 70 i 31246 for P12 certificate export as well as fresh fixes in the FreeBSD base.<br> Err codemadness.org 70 i 31247 A lot of cleanups went into this update to make sure there will be a<br> Err codemadness.org 70 i 31248 smooth transition to 19.1-RC for you early birds. We expect RC1 in 1-2<br> Err codemadness.org 70 i 31249 weeks and the final 19.1 on January 29.</p> Err codemadness.org 70 i 31250 </blockquote> Err codemadness.org 70 i 31251 <hr> Err codemadness.org 70 i 31252 <p>###<a href="https://www.servethehome.com/introducing-the-ultra-epyc-amd-powered-sun-ultra-24-workstation/">Introducing the Ultra EPYC AMD Powered Sun Ultra 24 Workstation</a></p> Err codemadness.org 70 i 31253 <blockquote> Err codemadness.org 70 i 31254 <p>A few weeks ago, I got an itch to build a workstation with AMD EPYC. There are a few constraints. First, I needed a higher-clock part. Second, I knew the whole build would be focused more on being an ultra high-end workstation rather than simply utilizing gaming components. With that, I decided it was time to hit on a bit of nostalgia for our readers. Mainly, I wanted to do an homage to Sun Microsystems. Sun made the server gear that the industry ran on for years, and as a fun fact, if you go behind the 1 Hacker Way sign at Facebook’s campus, they left the Sun Microsystems logo. Seeing that made me wonder if we could do an ultimate AMD EPYC build in a Sun Microsystems workstation.</p> Err codemadness.org 70 i 31255 </blockquote> Err codemadness.org 70 i 31256 <hr> Err codemadness.org 70 i 31257 <p>###<a href="https://github.com/kristapsdz/openrsync">OpenRsync</a></p> Err codemadness.org 70 i 31258 <blockquote> Err codemadness.org 70 i 31259 <p>This is a clean-room implementation of rsync with a BSD (ISC) license. It is designed to be compatible with a modern rsync (3.1.3 is used for testing). It currently compiles and runs only on OpenBSD.<br> Err codemadness.org 70 i 31260 This project is still very new and very fast-moving.<br> Err codemadness.org 70 i 31261 It’s not ready for wide-spread testing. Or even narrow-spread beyond getting all of the bits to work. It’s not ready for strong attention. Or really any attention but by careful programming.<br> Err codemadness.org 70 i 31262 Many have asked about portability. We’re just not there yet, folks. But don’t worry, the system is easily portable. The hard part for porters is matching OpenBSD’s pledge and unveil.</p> Err codemadness.org 70 i 31263 </blockquote> Err codemadness.org 70 i 31264 <hr> Err codemadness.org 70 i 31265 <p>###<a href="https://blog.netbsd.org/tnf/entry/the_first_report_on_lld">The first report on LLD porting</a></p> Err codemadness.org 70 i 31266 <blockquote> Err codemadness.org 70 i 31267 <p>LLD is the link editor (linker) component of Clang toolchain. Its main advantage over GNU ld is much lower memory footprint, and linking speed. It is of specific interest to me since currently 8 GiB of memory are insufficient to link LLVM statically (which is the upstream default).<br> Err codemadness.org 70 i 31268 The first goal of LLD porting is to ensure that LLD can produce working NetBSD executables, and be used to build LLVM itself. Then, it is desirable to look into trying to build additional NetBSD components, and eventually into replacing /usr/bin/ld entirely with lld.<br> Err codemadness.org 70 i 31269 In this report, I would like to shortly summarize the issues I have found so far trying to use LLD on NetBSD.</p> Err codemadness.org 70 i 31270 </blockquote> Err codemadness.org 70 i 31271 <hr> Err codemadness.org 70 i 31272 <p>###<a href="https://euroquis.nl/bobulate/?p=2044">Ring in the new</a></p> Err codemadness.org 70 i 31273 <blockquote> Err codemadness.org 70 i 31274 <p>It’s the second week of 2019 already, which means I’m curious what Nate is going to do with his series This week in usability … reset the numbering from week 1? That series is a great read, to keep up with all the little things that change in KDE source each week — aside from the release notes.<br> Err codemadness.org 70 i 31275 For the big ticket items of KDE on FreeBSD, you should read this blog instead.</p> Err codemadness.org 70 i 31276 </blockquote> Err codemadness.org 70 i 31277 <ul> Err codemadness.org 70 i 31278 <li>In ports this week (mostly KDE, some unrelated):</li> Err codemadness.org 70 i 31279 <li>KDE Plasma has been updated to the latest release, 5.14.5.</li> Err codemadness.org 70 i 31280 <li>KDE Applications 18.12.1 were released today, so we’re right on top of them.</li> Err codemadness.org 70 i 31281 <li>Marble was fixed for FreeBSD-running-on-Power9.</li> Err codemadness.org 70 i 31282 <li>Musescore caught up on 18 months of releases.</li> Err codemadness.org 70 i 31283 <li>Phonon updated to 4.10.1, along with its backends.</li> Err codemadness.org 70 i 31284 <li>And in development, Qt WebEngine 5.12 has been prepared in the incongruously-named plasma-5.13 branch in Area51; that does contain all the latest bits described above, as well.</li> Err codemadness.org 70 i 31285 </ul> Err codemadness.org 70 i 31286 <hr> Err codemadness.org 70 i 31287 <p>##Beastie Bits</p> Err codemadness.org 70 i 31288 <ul> Err codemadness.org 70 i 31289 <li><a href="http://nomadbsd.org/index.html">NomadBSD 1.2-RC1 Released</a></li> Err codemadness.org 70 i 31290 <li><a href="https://twitter.com/q5sys/status/1086443533681209350">ZFS - The First Enterprise Blockchain</a></li> Err codemadness.org 70 i 31291 <li><a href="https://www.dragonflybsd.org/docs/user/Powersave/?updated">Powersaving with DragonFly laptop</a></li> Err codemadness.org 70 i 31292 <li><a href="https://tests.reproducible-builds.org/netbsd/netbsd.html">NetBSD reaches 100% reproducable builds</a></li> Err codemadness.org 70 i 31293 <li><a href="https://old.reddit.com/r/freebsd/comments/ahs53y/bhyve_web_interface/">Potential Bhyve Web Interface?</a></li> Err codemadness.org 70 i 31294 <li><a href="https://www.reddit.com/r/openbsd_gaming/comments/adi9sm/libgdx_proof_of_concept_on_openbsd_slay_the_spire/">LibGDX proof of concept on OpenBSD</a> - <a href="https://youtu.be/F1loBeHKJt4">Video</a></li> Err codemadness.org 70 i 31295 <li><a href="https://www.pgcli.com/launching-litecli.html">LiteCLI is a user-friendly CommandLine client for SQLite database</a></li> Err codemadness.org 70 i 31296 <li><a href="https://www.youtube.com/playlist?list=PL94E35692EB9D36F3">In honor of Donald Knuth’s 81 birthday Stanford uploaded 111 lectures on Youtube</a></li> Err codemadness.org 70 i 31297 <li><a href="http://dpaste.com/3Q4F6C2">Portland BSD Pizza Night - 2018-01-31 19:00 - Sweet Heart Pizza</a></li> Err codemadness.org 70 i 31298 <li><a href="https://www.meetup.com/BSD-Users-Stockholm/events/257281738/">Stockholm BSD February meetup</a></li> Err codemadness.org 70 i 31299 <li><a href="https://bsd-pl.org/en">Polish BSD User Group: Jan 25 18:15 - 21:00</a></li> Err codemadness.org 70 i 31300 <li><a href="https://2019.asiabsdcon.org/cfp.html.en">AsiaBSDcon 2019 CfP</a></li> Err codemadness.org 70 i 31301 </ul> Err codemadness.org 70 i 31302 <hr> Err codemadness.org 70 i 31303 <p>##Feedback/Questions</p> Err codemadness.org 70 i 31304 <ul> Err codemadness.org 70 i 31305 <li>Greg - <a href="http://dpaste.com/3A6T4HN">VLANs and jails</a></li> Err codemadness.org 70 i 31306 <li>Tara - <a href="http://dpaste.com/1X1E3XS#wrap">ZFS on removable disks</a></li> Err codemadness.org 70 i 31307 <li>Casey - <a href="http://dpaste.com/08HZ6FP#wrap">Interview with Kirk McKusick</a></li> Err codemadness.org 70 i 31308 </ul> Err codemadness.org 70 i 31309 <hr> Err codemadness.org 70 i 31310 <ul> Err codemadness.org 70 i 31311 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 31312 </ul> Err codemadness.org 70 i 31313 <hr> Err codemadness.org 70 i 31314 Err codemadness.org 70 i 31315 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, spotifyd, opnsense, kde, openrsync Err codemadness.org 70 i 31316 Err codemadness.org 70 i 31317 Project Trident 18.12 released, Spotifyd on NetBSD, OPNsense 18.7.10 is available, Ultra EPYC AMD Powered Sun Ultra 24 Workstation, OpenRsync, LLD porting to NetBSD, and more.

Err codemadness.org 70 i 31318 Err codemadness.org 70 i 31319

##Headlines

Err codemadness.org 70 i 31320 Err codemadness.org 70 i 31321

###AsiaBSDCon 2019 Call for Papers

Err codemadness.org 70 i 31322 Err codemadness.org 70 i 31323
    Err codemadness.org 70 i 31324
  • You have until Jan 30th to submit
  • Err codemadness.org 70 i 31325
  • Full paper requirement is relaxed a bit this year (this year ONLY!) due to the short submission window. You don’t need all 10-12 pages, but it is still preferred.
  • Err codemadness.org 70 i 31326
  • Send a message to secretary@asiabsdcon.org with your proposal. Could be either for a talk or a tutorial.
  • Err codemadness.org 70 i 31327
  • Two days of tutorials/devsummit and two days of conference during Sakura season in Tokyo, Japan
  • Err codemadness.org 70 i 31328
  • The conference is also looking for sponsors
  • Err codemadness.org 70 i 31329
  • If accepted, flight and hotel is paid for by the conference
  • Err codemadness.org 70 i 31330
Err codemadness.org 70 i 31331 Err codemadness.org 70 i 31332


Err codemadness.org 70 i 31333 Err codemadness.org 70 i 31334

###Project Trident 18.12 Released

Err codemadness.org 70 i 31335 Err codemadness.org 70 i 31336 Err codemadness.org 70 i 31344 Err codemadness.org 70 i 31345


Err codemadness.org 70 i 31346 Err codemadness.org 70 i 31347

###Building Spotifyd on NetBSD

Err codemadness.org 70 i 31348 Err codemadness.org 70 i 31349
Err codemadness.org 70 i 31350

These are the steps I went through to build and run Spotifyd (this commit at the time of writing) on NetBSD AMD64. It’s a Spotify Connect client so it means I still need to control Spotify from another device (typically my phone), but the audio is played through my desktop… which is where my speakers and headphones are plugged in - it means I don’t have to unplug stuff and re-plug into my phone, work laptop, etc. This is 100% a “good enough for now solution” for me; I have had a quick play with the Go based microcontroller from spotcontrol and that allows a completely NetBSD only experience (although it is just an example application so doesn’t provide many features - great as a basis to build on though).

Err codemadness.org 70 i 31351
Err codemadness.org 70 i 31352 Err codemadness.org 70 i 31353


Err codemadness.org 70 i 31354 Err codemadness.org 70 i 31355

##News Roundup

Err codemadness.org 70 i 31356 Err codemadness.org 70 i 31357

###OPNsense 18.7.10 released

Err codemadness.org 70 i 31358 Err codemadness.org 70 i 31359
Err codemadness.org 70 i 31360

2019 means 19.1 is almost here. In the meantime accept this small
Err codemadness.org 70 i 31361 incremental update with goodies such as Suricata 4.1, custom passwords
Err codemadness.org 70 i 31362 for P12 certificate export as well as fresh fixes in the FreeBSD base.
Err codemadness.org 70 i 31363 A lot of cleanups went into this update to make sure there will be a
Err codemadness.org 70 i 31364 smooth transition to 19.1-RC for you early birds. We expect RC1 in 1-2
Err codemadness.org 70 i 31365 weeks and the final 19.1 on January 29.

Err codemadness.org 70 i 31366
Err codemadness.org 70 i 31367 Err codemadness.org 70 i 31368


Err codemadness.org 70 i 31369 Err codemadness.org 70 i 31370

###Introducing the Ultra EPYC AMD Powered Sun Ultra 24 Workstation

Err codemadness.org 70 i 31371 Err codemadness.org 70 i 31372
Err codemadness.org 70 i 31373

A few weeks ago, I got an itch to build a workstation with AMD EPYC. There are a few constraints. First, I needed a higher-clock part. Second, I knew the whole build would be focused more on being an ultra high-end workstation rather than simply utilizing gaming components. With that, I decided it was time to hit on a bit of nostalgia for our readers. Mainly, I wanted to do an homage to Sun Microsystems. Sun made the server gear that the industry ran on for years, and as a fun fact, if you go behind the 1 Hacker Way sign at Facebook’s campus, they left the Sun Microsystems logo. Seeing that made me wonder if we could do an ultimate AMD EPYC build in a Sun Microsystems workstation.

Err codemadness.org 70 i 31374
Err codemadness.org 70 i 31375 Err codemadness.org 70 i 31376


Err codemadness.org 70 i 31377 Err codemadness.org 70 i 31378

###OpenRsync

Err codemadness.org 70 i 31379 Err codemadness.org 70 i 31380
Err codemadness.org 70 i 31381

This is a clean-room implementation of rsync with a BSD (ISC) license. It is designed to be compatible with a modern rsync (3.1.3 is used for testing). It currently compiles and runs only on OpenBSD.
Err codemadness.org 70 i 31382 This project is still very new and very fast-moving.
Err codemadness.org 70 i 31383 It’s not ready for wide-spread testing. Or even narrow-spread beyond getting all of the bits to work. It’s not ready for strong attention. Or really any attention but by careful programming.
Err codemadness.org 70 i 31384 Many have asked about portability. We’re just not there yet, folks. But don’t worry, the system is easily portable. The hard part for porters is matching OpenBSD’s pledge and unveil.

Err codemadness.org 70 i 31385
Err codemadness.org 70 i 31386 Err codemadness.org 70 i 31387


Err codemadness.org 70 i 31388 Err codemadness.org 70 i 31389

###The first report on LLD porting

Err codemadness.org 70 i 31390 Err codemadness.org 70 i 31391
Err codemadness.org 70 i 31392

LLD is the link editor (linker) component of Clang toolchain. Its main advantage over GNU ld is much lower memory footprint, and linking speed. It is of specific interest to me since currently 8 GiB of memory are insufficient to link LLVM statically (which is the upstream default).
Err codemadness.org 70 i 31393 The first goal of LLD porting is to ensure that LLD can produce working NetBSD executables, and be used to build LLVM itself. Then, it is desirable to look into trying to build additional NetBSD components, and eventually into replacing /usr/bin/ld entirely with lld.
Err codemadness.org 70 i 31394 In this report, I would like to shortly summarize the issues I have found so far trying to use LLD on NetBSD.

Err codemadness.org 70 i 31395
Err codemadness.org 70 i 31396 Err codemadness.org 70 i 31397


Err codemadness.org 70 i 31398 Err codemadness.org 70 i 31399

###Ring in the new

Err codemadness.org 70 i 31400 Err codemadness.org 70 i 31401
Err codemadness.org 70 i 31402

It’s the second week of 2019 already, which means I’m curious what Nate is going to do with his series This week in usability … reset the numbering from week 1? That series is a great read, to keep up with all the little things that change in KDE source each week — aside from the release notes.
Err codemadness.org 70 i 31403 For the big ticket items of KDE on FreeBSD, you should read this blog instead.

Err codemadness.org 70 i 31404
Err codemadness.org 70 i 31405 Err codemadness.org 70 i 31406
    Err codemadness.org 70 i 31407
  • In ports this week (mostly KDE, some unrelated):
  • Err codemadness.org 70 i 31408
  • KDE Plasma has been updated to the latest release, 5.14.5.
  • Err codemadness.org 70 i 31409
  • KDE Applications 18.12.1 were released today, so we’re right on top of them.
  • Err codemadness.org 70 i 31410
  • Marble was fixed for FreeBSD-running-on-Power9.
  • Err codemadness.org 70 i 31411
  • Musescore caught up on 18 months of releases.
  • Err codemadness.org 70 i 31412
  • Phonon updated to 4.10.1, along with its backends.
  • Err codemadness.org 70 i 31413
  • And in development, Qt WebEngine 5.12 has been prepared in the incongruously-named plasma-5.13 branch in Area51; that does contain all the latest bits described above, as well.
  • Err codemadness.org 70 i 31414
Err codemadness.org 70 i 31415 Err codemadness.org 70 i 31416


Err codemadness.org 70 i 31417 Err codemadness.org 70 i 31418

##Beastie Bits

Err codemadness.org 70 i 31419 Err codemadness.org 70 i 31420 Err codemadness.org 70 i 31434 Err codemadness.org 70 i 31435


Err codemadness.org 70 i 31436 Err codemadness.org 70 i 31437

##Feedback/Questions

Err codemadness.org 70 i 31438 Err codemadness.org 70 i 31439 Err codemadness.org 70 i 31444 Err codemadness.org 70 i 31445


Err codemadness.org 70 i 31446 Err codemadness.org 70 i 31447
    Err codemadness.org 70 i 31448
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 31449
Err codemadness.org 70 i 31450 Err codemadness.org 70 i 31451


]]> Err codemadness.org 70 i 31452
Err codemadness.org 70 i 31453 Err codemadness.org 70 i 31454 Project Trident 18.12 released, Spotifyd on NetBSD, OPNsense 18.7.10 is available, Ultra EPYC AMD Powered Sun Ultra 24 Workstation, OpenRsync, LLD porting to NetBSD, and more.

Err codemadness.org 70 i 31455 Err codemadness.org 70 i 31456

##Headlines

Err codemadness.org 70 i 31457 Err codemadness.org 70 i 31458

###AsiaBSDCon 2019 Call for Papers

Err codemadness.org 70 i 31459 Err codemadness.org 70 i 31460
    Err codemadness.org 70 i 31461
  • You have until Jan 30th to submit
  • Err codemadness.org 70 i 31462
  • Full paper requirement is relaxed a bit this year (this year ONLY!) due to the short submission window. You don’t need all 10-12 pages, but it is still preferred.
  • Err codemadness.org 70 i 31463
  • Send a message to secretary@asiabsdcon.org with your proposal. Could be either for a talk or a tutorial.
  • Err codemadness.org 70 i 31464
  • Two days of tutorials/devsummit and two days of conference during Sakura season in Tokyo, Japan
  • Err codemadness.org 70 i 31465
  • The conference is also looking for sponsors
  • Err codemadness.org 70 i 31466
  • If accepted, flight and hotel is paid for by the conference
  • Err codemadness.org 70 i 31467
Err codemadness.org 70 i 31468 Err codemadness.org 70 i 31469


Err codemadness.org 70 i 31470 Err codemadness.org 70 i 31471

###Project Trident 18.12 Released

Err codemadness.org 70 i 31472 Err codemadness.org 70 i 31473 Err codemadness.org 70 i 31481 Err codemadness.org 70 i 31482


Err codemadness.org 70 i 31483 Err codemadness.org 70 i 31484

###Building Spotifyd on NetBSD

Err codemadness.org 70 i 31485 Err codemadness.org 70 i 31486
Err codemadness.org 70 i 31487

These are the steps I went through to build and run Spotifyd (this commit at the time of writing) on NetBSD AMD64. It’s a Spotify Connect client so it means I still need to control Spotify from another device (typically my phone), but the audio is played through my desktop… which is where my speakers and headphones are plugged in - it means I don’t have to unplug stuff and re-plug into my phone, work laptop, etc. This is 100% a “good enough for now solution” for me; I have had a quick play with the Go based microcontroller from spotcontrol and that allows a completely NetBSD only experience (although it is just an example application so doesn’t provide many features - great as a basis to build on though).

Err codemadness.org 70 i 31488
Err codemadness.org 70 i 31489 Err codemadness.org 70 i 31490


Err codemadness.org 70 i 31491 Err codemadness.org 70 i 31492

##News Roundup

Err codemadness.org 70 i 31493 Err codemadness.org 70 i 31494

###OPNsense 18.7.10 released

Err codemadness.org 70 i 31495 Err codemadness.org 70 i 31496
Err codemadness.org 70 i 31497

2019 means 19.1 is almost here. In the meantime accept this small
Err codemadness.org 70 i 31498 incremental update with goodies such as Suricata 4.1, custom passwords
Err codemadness.org 70 i 31499 for P12 certificate export as well as fresh fixes in the FreeBSD base.
Err codemadness.org 70 i 31500 A lot of cleanups went into this update to make sure there will be a
Err codemadness.org 70 i 31501 smooth transition to 19.1-RC for you early birds. We expect RC1 in 1-2
Err codemadness.org 70 i 31502 weeks and the final 19.1 on January 29.

Err codemadness.org 70 i 31503
Err codemadness.org 70 i 31504 Err codemadness.org 70 i 31505


Err codemadness.org 70 i 31506 Err codemadness.org 70 i 31507

###Introducing the Ultra EPYC AMD Powered Sun Ultra 24 Workstation

Err codemadness.org 70 i 31508 Err codemadness.org 70 i 31509
Err codemadness.org 70 i 31510

A few weeks ago, I got an itch to build a workstation with AMD EPYC. There are a few constraints. First, I needed a higher-clock part. Second, I knew the whole build would be focused more on being an ultra high-end workstation rather than simply utilizing gaming components. With that, I decided it was time to hit on a bit of nostalgia for our readers. Mainly, I wanted to do an homage to Sun Microsystems. Sun made the server gear that the industry ran on for years, and as a fun fact, if you go behind the 1 Hacker Way sign at Facebook’s campus, they left the Sun Microsystems logo. Seeing that made me wonder if we could do an ultimate AMD EPYC build in a Sun Microsystems workstation.

Err codemadness.org 70 i 31511
Err codemadness.org 70 i 31512 Err codemadness.org 70 i 31513


Err codemadness.org 70 i 31514 Err codemadness.org 70 i 31515

###OpenRsync

Err codemadness.org 70 i 31516 Err codemadness.org 70 i 31517
Err codemadness.org 70 i 31518

This is a clean-room implementation of rsync with a BSD (ISC) license. It is designed to be compatible with a modern rsync (3.1.3 is used for testing). It currently compiles and runs only on OpenBSD.
Err codemadness.org 70 i 31519 This project is still very new and very fast-moving.
Err codemadness.org 70 i 31520 It’s not ready for wide-spread testing. Or even narrow-spread beyond getting all of the bits to work. It’s not ready for strong attention. Or really any attention but by careful programming.
Err codemadness.org 70 i 31521 Many have asked about portability. We’re just not there yet, folks. But don’t worry, the system is easily portable. The hard part for porters is matching OpenBSD’s pledge and unveil.

Err codemadness.org 70 i 31522
Err codemadness.org 70 i 31523 Err codemadness.org 70 i 31524


Err codemadness.org 70 i 31525 Err codemadness.org 70 i 31526

###The first report on LLD porting

Err codemadness.org 70 i 31527 Err codemadness.org 70 i 31528
Err codemadness.org 70 i 31529

LLD is the link editor (linker) component of Clang toolchain. Its main advantage over GNU ld is much lower memory footprint, and linking speed. It is of specific interest to me since currently 8 GiB of memory are insufficient to link LLVM statically (which is the upstream default).
Err codemadness.org 70 i 31530 The first goal of LLD porting is to ensure that LLD can produce working NetBSD executables, and be used to build LLVM itself. Then, it is desirable to look into trying to build additional NetBSD components, and eventually into replacing /usr/bin/ld entirely with lld.
Err codemadness.org 70 i 31531 In this report, I would like to shortly summarize the issues I have found so far trying to use LLD on NetBSD.

Err codemadness.org 70 i 31532
Err codemadness.org 70 i 31533 Err codemadness.org 70 i 31534


Err codemadness.org 70 i 31535 Err codemadness.org 70 i 31536

###Ring in the new

Err codemadness.org 70 i 31537 Err codemadness.org 70 i 31538
Err codemadness.org 70 i 31539

It’s the second week of 2019 already, which means I’m curious what Nate is going to do with his series This week in usability … reset the numbering from week 1? That series is a great read, to keep up with all the little things that change in KDE source each week — aside from the release notes.
Err codemadness.org 70 i 31540 For the big ticket items of KDE on FreeBSD, you should read this blog instead.

Err codemadness.org 70 i 31541
Err codemadness.org 70 i 31542 Err codemadness.org 70 i 31543
    Err codemadness.org 70 i 31544
  • In ports this week (mostly KDE, some unrelated):
  • Err codemadness.org 70 i 31545
  • KDE Plasma has been updated to the latest release, 5.14.5.
  • Err codemadness.org 70 i 31546
  • KDE Applications 18.12.1 were released today, so we’re right on top of them.
  • Err codemadness.org 70 i 31547
  • Marble was fixed for FreeBSD-running-on-Power9.
  • Err codemadness.org 70 i 31548
  • Musescore caught up on 18 months of releases.
  • Err codemadness.org 70 i 31549
  • Phonon updated to 4.10.1, along with its backends.
  • Err codemadness.org 70 i 31550
  • And in development, Qt WebEngine 5.12 has been prepared in the incongruously-named plasma-5.13 branch in Area51; that does contain all the latest bits described above, as well.
  • Err codemadness.org 70 i 31551
Err codemadness.org 70 i 31552 Err codemadness.org 70 i 31553


Err codemadness.org 70 i 31554 Err codemadness.org 70 i 31555

##Beastie Bits

Err codemadness.org 70 i 31556 Err codemadness.org 70 i 31557 Err codemadness.org 70 i 31571 Err codemadness.org 70 i 31572


Err codemadness.org 70 i 31573 Err codemadness.org 70 i 31574

##Feedback/Questions

Err codemadness.org 70 i 31575 Err codemadness.org 70 i 31576 Err codemadness.org 70 i 31581 Err codemadness.org 70 i 31582


Err codemadness.org 70 i 31583 Err codemadness.org 70 i 31584
    Err codemadness.org 70 i 31585
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 31586
Err codemadness.org 70 i 31587 Err codemadness.org 70 i 31588


]]> Err codemadness.org 70 i 31589
Err codemadness.org 70 i 31590 https://fireside.fm/player/v2/FYhhasNR+Q3FMYQ6c Err codemadness.org 70 i 31591 Err codemadness.org 70 i 31592 ]]> Err codemadness.org 70 i 31593 Err codemadness.org 70 i 31594
Err codemadness.org 70 i 31595 Err codemadness.org 70 i 31596 281: EPYC Server Battle Err codemadness.org 70 i 31597 https://www.bsdnow.tv/281 Err codemadness.org 70 i 31598 62f301ee-57b8-4f10-8736-3660f78074a8 Err codemadness.org 70 i 31599 Thu, 17 Jan 2019 07:00:00 -0800 Err codemadness.org 70 i 31600 Allan Jude Err codemadness.org 70 i 31601 Err codemadness.org 70 i 31602 full Err codemadness.org 70 i 31603 Allan Jude Err codemadness.org 70 i 31604 SCP client vulnerabilities, BSDs vs Linux benchmarks on a Tyan EPYC Server, fame for the Unix inventors, Die IPv4, GhostBSD 18.12 released, Unix in pictures, and more. Err codemadness.org 70 i 31605 1:23:52 Err codemadness.org 70 i 31606 no Err codemadness.org 70 i 31607 Err codemadness.org 70 i 31608 SCP client vulnerabilities, BSDs vs Linux benchmarks on a Tyan EPYC Server, fame for the Unix inventors, Die IPv4, GhostBSD 18.12 released, Unix in pictures, and more. Err codemadness.org 70 i 31609 <p>##Headlines<br> Err codemadness.org 70 i 31610 ###<a href="https://sintonen.fi/advisories/scp-client-multiple-vulnerabilities.txt">scp client multiple vulnerabilities</a></p> Err codemadness.org 70 i 31611 <ul> Err codemadness.org 70 i 31612 <li>Overview</li> Err codemadness.org 70 i 31613 <li>SCP clients from multiple vendors are susceptible to a malicious scp server performing<br> Err codemadness.org 70 i 31614 unauthorized changes to target directory and/or client output manipulation.</li> Err codemadness.org 70 i 31615 <li>Description</li> Err codemadness.org 70 i 31616 <li>Many scp clients fail to verify if the objects returned by the scp server match those<br> Err codemadness.org 70 i 31617 it asked for. This issue dates back to 1983 and rcp, on which scp is based. A separate<br> Err codemadness.org 70 i 31618 flaw in the client allows the target directory attributes to be changed arbitrarily.<br> Err codemadness.org 70 i 31619 Finally, two vulnerabilities in clients may allow server to spoof the client output.</li> Err codemadness.org 70 i 31620 <li>Impact</li> Err codemadness.org 70 i 31621 <li>Malicious scp server can write arbitrary files to scp target directory, change the<br> Err codemadness.org 70 i 31622 target directory permissions and to spoof the client output.</li> Err codemadness.org 70 i 31623 <li>Details</li> Err codemadness.org 70 i 31624 </ul> Err codemadness.org 70 i 31625 <blockquote> Err codemadness.org 70 i 31626 <p>The discovered vulnerabilities, described in more detail below, enables the attack<br> Err codemadness.org 70 i 31627 described here in brief.</p> Err codemadness.org 70 i 31628 </blockquote> Err codemadness.org 70 i 31629 <ul> Err codemadness.org 70 i 31630 <li> Err codemadness.org 70 i 31631 <ol> Err codemadness.org 70 i 31632 <li>The attacker controlled server or Man-in-the-Middle(*) attack drops .bash_aliases file to victim’s home directory when the victim performs scp operation from the server. The transfer of extra files is hidden by sending ANSI control sequences via stderr. For example:</li> Err codemadness.org 70 i 31633 </ol> Err codemadness.org 70 i 31634 </li> Err codemadness.org 70 i 31635 </ul> Err codemadness.org 70 i 31636 <p><code>user@local:~$ scp user@remote:readme.txt .</code><br> Err codemadness.org 70 i 31637 <code>readme.txt 100% 494 1.6KB/s 00:00</code><br> Err codemadness.org 70 i 31638 <code>user@local:~$</code></p> Err codemadness.org 70 i 31639 <ul> Err codemadness.org 70 i 31640 <li> Err codemadness.org 70 i 31641 <ol start="2"> Err codemadness.org 70 i 31642 <li>Once the victim launches a new shell, the malicious commands in .bash_aliases get executed.</li> Err codemadness.org 70 i 31643 </ol> Err codemadness.org 70 i 31644 </li> Err codemadness.org 70 i 31645 <li>*) Man-in-the-Middle attack does require the victim to accept the wrong host fingerprint.</li> Err codemadness.org 70 i 31646 </ul> Err codemadness.org 70 i 31647 <hr> Err codemadness.org 70 i 31648 <p>###<a href="https://www.phoronix.com/scan.php?page=article&amp;item=dfly-freebsd-tyanamd&amp;num=1">FreeBSD 12.0 vs. DragonFlyBSD 5.4 vs. TrueOS 18.12 vs. Linux On A Tyan EPYC Server</a></p> Err codemadness.org 70 i 31649 <blockquote> Err codemadness.org 70 i 31650 <p>Last month when running FreeBSD 12.0 benchmarks on a 2P EPYC server I wasn’t able to run any side-by-side benchmarks with the new DragonFlyBSD 5.4 as this BSD was crashing during the boot process on that board. But fortunately on another AMD EPYC server available, the EPYC 1P TYAN Transport SX TN70A-B8026, DragonFlyBSD 5.4.1 runs fine. So for this first round of BSD benchmarking in 2019 are tests of FreeBSD 11.2, FreeBSD 12.0, DragonFlyBSD 5.4.1, the new TrueOS 18.12, and a few Linux distributions (CentOS 7, Ubuntu 18.04.1 LTS, and Clear Linux) on this EPYC 7601 server in a variety of workloads.</p> Err codemadness.org 70 i 31651 </blockquote> Err codemadness.org 70 i 31652 <blockquote> Err codemadness.org 70 i 31653 <p>DragonFlyBSD 5.4.1 ran fine on this Tyan server and could boot fine unlike the issue encountered on the Dell PowerEdge R7425 for this particular BSD. But on the Tyan server, DragonFlyBSD 5.2.2 wouldn’t boot so only this latest DragonFlyBSD release series was used as part of the comparison.</p> Err codemadness.org 70 i 31654 </blockquote> Err codemadness.org 70 i 31655 <ul> Err codemadness.org 70 i 31656 <li> Err codemadness.org 70 i 31657 <p>A summary of the operating systems tested for this EPYC 7601 OS benchmark comparison included:</p> Err codemadness.org 70 i 31658 </li> Err codemadness.org 70 i 31659 <li> Err codemadness.org 70 i 31660 <p>DragonFlyBSD 5.4.1 - The latest release of Matthew Dillon’s operating system while using the HAMMER2 file-system and GCC 8.1 compiler that is now the default system compiler for this BSD.</p> Err codemadness.org 70 i 31661 </li> Err codemadness.org 70 i 31662 <li> Err codemadness.org 70 i 31663 <p>FreeBSD 11.2 - The previous stable release of FreeBSD. Installed with a ZFS file-system.</p> Err codemadness.org 70 i 31664 </li> Err codemadness.org 70 i 31665 <li> Err codemadness.org 70 i 31666 <p>FreeBSD 12.0 - The latest stable release of FreeBSD and installed with its ZFS option.</p> Err codemadness.org 70 i 31667 </li> Err codemadness.org 70 i 31668 <li> Err codemadness.org 70 i 31669 <p>TrueOS 18.12 - The latest release of the iX systems’ FreeBSD derivative. TrueOS 18.12 is based on FreeBSD 13.0-CURRENT and uses ZFS by default and was using the Clang 7.0.1 compiler compared to Clang 6.0.1 on FreeBSD 12.0.</p> Err codemadness.org 70 i 31670 </li> Err codemadness.org 70 i 31671 <li> Err codemadness.org 70 i 31672 <p>CentOS Linux 7 - The latest EL7 operating system performance.</p> Err codemadness.org 70 i 31673 </li> Err codemadness.org 70 i 31674 <li> Err codemadness.org 70 i 31675 <p>Ubuntu 18.04.1 LTS - The latest Ubuntu Long Term Support release.</p> Err codemadness.org 70 i 31676 </li> Err codemadness.org 70 i 31677 <li> Err codemadness.org 70 i 31678 <p>Clear Linux 27120 - The latest rolling release as of testing out of Intel’s Open-Source Technology Center. Clear Linux often reflects as close to the gold standard for performance as possible with its insanely tuned software stack for offering optimal performance on x86_64 performance for generally showing best what the hardware is capable of.</p> Err codemadness.org 70 i 31679 </li> Err codemadness.org 70 i 31680 </ul> Err codemadness.org 70 i 31681 <blockquote> Err codemadness.org 70 i 31682 <p>Throughout all of this testing, the Tyan 2U server was kept to its same configuration of an AMD EPYC 7601 (32 cores / 64 threads) at stock speeds, 8 x 16GB DDR4-2666 ECC memory, and 280GB Intel Optane 900p SSD benchmarks.</p> Err codemadness.org 70 i 31683 </blockquote> Err codemadness.org 70 i 31684 <hr> Err codemadness.org 70 i 31685 <p>##News Roundup<br> Err codemadness.org 70 i 31686 <a href="https://www.engadget.com/2019/01/08/national-inventors-hall-of-fame-class-of-2019/">National Inventors Hall of Fame honors creators of Unix</a></p> Err codemadness.org 70 i 31687 <blockquote> Err codemadness.org 70 i 31688 <p>Dennis Ritchie (Posthumous) and Ken Thompson: UNIX Operating System<br> Err codemadness.org 70 i 31689 Thompson and Ritchie’s creation of the UNIX operating system and the C programming language were pivotal developments in the progress of computer science. Today, 50 years after its beginnings, UNIX and UNIX-like systems continue to run machinery from supercomputers to smartphones. The UNIX operating system remains the basis of much of the world’s computing infrastructure, and C language – written to simplify the development of UNIX – is one of the most widely used languages today.</p> Err codemadness.org 70 i 31690 </blockquote> Err codemadness.org 70 i 31691 <hr> Err codemadness.org 70 i 31692 <p>###<a href="https://ungleich.ch/en-us/cms/blog/2019/01/09/die-ipv4-die/">Die IPV4, Die</a></p> Err codemadness.org 70 i 31693 <blockquote> Err codemadness.org 70 i 31694 <p>Imagine, it is 2019. Easy, ha? Imagine, it is 2019 and you want to turn off IPv4. Like, off off. Really off. Not disabling IPv6, but disabling IPv4.</p> Err codemadness.org 70 i 31695 </blockquote> Err codemadness.org 70 i 31696 <ul> Err codemadness.org 70 i 31697 <li>Two steps back</li> Err codemadness.org 70 i 31698 </ul> Err codemadness.org 70 i 31699 <blockquote> Err codemadness.org 70 i 31700 <p>You might be coming here wondering, why would anybody want to do what we are asking to be done. Well, it is dead simple: We are running data centers (like Data Center Light) with a lot of IPv6 only equipment. There simply is no need for IPv4. So why would we want to have it enabled?<br> Err codemadness.org 70 i 31701 Also, here at ungleich, we defined 2019 as the year to move away from IPv4.</p> Err codemadness.org 70 i 31702 </blockquote> Err codemadness.org 70 i 31703 <ul> Err codemadness.org 70 i 31704 <li>The challenge</li> Err codemadness.org 70 i 31705 </ul> Err codemadness.org 70 i 31706 <blockquote> Err codemadness.org 70 i 31707 <p>Do you like puzzles? Competitions? Challenges? Hacking? Well. If ANY of this is of your interest, here is a real challenge for you:<br> Err codemadness.org 70 i 31708 We offer a 100 CHF (roughly 100 USD) for anyone who can give us a detailed description of how to turn IPv4 completely off in an operating system and allowing it to communicate with IPv6 only. This should obviously include a tiny proof that your operating system is really unable to use IPv4 at all. Just flushing IPv4 addresses and keeping the IPv4 stack loaded, does not count.</p> Err codemadness.org 70 i 31709 </blockquote> Err codemadness.org 70 i 31710 <hr> Err codemadness.org 70 i 31711 <p>###<a href="http://www.ghostbsd.org/18.12_release_announcement">GhostBSD 18.12 released</a></p> Err codemadness.org 70 i 31712 <blockquote> Err codemadness.org 70 i 31713 <p>GhostBSD 18.12 is an updated iso of GhostBSD 18.10 with some little changes to the live DVD/USB and with updated packages.</p> Err codemadness.org 70 i 31714 </blockquote> Err codemadness.org 70 i 31715 <ul> Err codemadness.org 70 i 31716 <li>What has changed since 18.10</li> Err codemadness.org 70 i 31717 <li>removed default call of kernel modules for AMD and Intel</li> Err codemadness.org 70 i 31718 <li>replaced octopkg by software-station</li> Err codemadness.org 70 i 31719 <li>added back gop hacks to the live system</li> Err codemadness.org 70 i 31720 <li>added ghostbsd-drivers and ghostbsd-utils</li> Err codemadness.org 70 i 31721 <li>we updated the packages to the latest build</li> Err codemadness.org 70 i 31722 </ul> Err codemadness.org 70 i 31723 <hr> Err codemadness.org 70 i 31724 <p>###<a href="https://threader.app/thread/1083054050315243521">And Now for a laugh : #unixinpictures</a></p> Err codemadness.org 70 i 31725 <hr> Err codemadness.org 70 i 31726 <p>##Beastie Bits</p> Err codemadness.org 70 i 31727 <ul> Err codemadness.org 70 i 31728 <li><a href="https://www.jwz.org/blog/2019/01/we-are-now-closer-to-the-y2038-bug-than-the-y2k-bug/">We are now closer to the Y2038 bug than the Y2K bug</a></li> Err codemadness.org 70 i 31729 <li><a href="https://old.reddit.com/r/openbsd/comments/ae6b77/openbsd_enterprise_use/">OpenBSD Enterprise use</a></li> Err codemadness.org 70 i 31730 <li><a href="https://old.reddit.com/r/unix/comments/af0kij/note_the_whole_book_series_in_the_background/">AT&amp;T Unix Books</a></li> Err codemadness.org 70 i 31731 <li><a href="https://oshogbo.vexillium.org/blog/54/">Process title and missing memory space</a></li> Err codemadness.org 70 i 31732 <li><a href="http://www.os2museum.com/wp/the-history-of-a-security-hole/">The History of a Security Hole</a></li> Err codemadness.org 70 i 31733 <li><a href="https://www.geoghegan.ca/unbound-adblock.html">unbound-adblock: The ultimate network adblocker!</a></li> Err codemadness.org 70 i 31734 <li><a href="https://github.com/wheelsystems/nvlist">FreeBSD’s name/value pairs library</a></li> Err codemadness.org 70 i 31735 <li><a href="https://utcc.utoronto.ca/~cks/space/blog/unix/PidRollover">Pid Rollover</a></li> Err codemadness.org 70 i 31736 <li><a href="https://www.cambus.net/booting-openbsd-kernels-in-efi-mode-with-qemu/">Booting OpenBSD kernels in EFI mode with QEMU</a></li> Err codemadness.org 70 i 31737 <li><a href="https://marc.info/?l=openbsd-cvs&amp;m=154715734504845&amp;w=2">OpenBSD CVS commit: Make mincore lie</a></li> Err codemadness.org 70 i 31738 <li><a href="http://www.bsdcan.org/2019/papers.php">BSDCan 2019 CfP ending January 19 - Submit!</a></li> Err codemadness.org 70 i 31739 <li><a href="https://www.eventbrite.com/e/zfs-user-conference-2019-tickets-54530403906">OpenZFS User Conference - April 18-19</a></li> Err codemadness.org 70 i 31740 <li><a href="https://www.freebsdfoundation.org/journal/">FreeBSD Journal is a free publication now</a></li> Err codemadness.org 70 i 31741 </ul> Err codemadness.org 70 i 31742 <hr> Err codemadness.org 70 i 31743 <p>##Feedback/Questions</p> Err codemadness.org 70 i 31744 <ul> Err codemadness.org 70 i 31745 <li>Chris - <a href="http://dpaste.com/101P5HA">Boot environments and SSDs</a></li> Err codemadness.org 70 i 31746 <li>Jonathan - <a href="http://dpaste.com/0YTPYV4">Bytes issued during a zpool scrub</a></li> Err codemadness.org 70 i 31747 <li>Bostjan - <a href="http://dpaste.com/0Q97J7H#wrap">ZFS Record Size and my mistakes</a></li> Err codemadness.org 70 i 31748 </ul> Err codemadness.org 70 i 31749 <hr> Err codemadness.org 70 i 31750 <ul> Err codemadness.org 70 i 31751 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 31752 </ul> Err codemadness.org 70 i 31753 <hr> Err codemadness.org 70 i 31754 Err codemadness.org 70 i 31755 Err codemadness.org 70 i 31756 SCP client vulnerabilities, BSDs vs Linux benchmarks on a Tyan EPYC Server, fame for the Unix inventors, Die IPv4, GhostBSD 18.12 released, Unix in pictures, and more.

Err codemadness.org 70 i 31757 Err codemadness.org 70 i 31758

##Headlines
Err codemadness.org 70 i 31759 ###scp client multiple vulnerabilities

Err codemadness.org 70 i 31760 Err codemadness.org 70 i 31761
    Err codemadness.org 70 i 31762
  • Overview
  • Err codemadness.org 70 i 31763
  • SCP clients from multiple vendors are susceptible to a malicious scp server performing
    Err codemadness.org 70 i 31764 unauthorized changes to target directory and/or client output manipulation.
  • Err codemadness.org 70 i 31765
  • Description
  • Err codemadness.org 70 i 31766
  • Many scp clients fail to verify if the objects returned by the scp server match those
    Err codemadness.org 70 i 31767 it asked for. This issue dates back to 1983 and rcp, on which scp is based. A separate
    Err codemadness.org 70 i 31768 flaw in the client allows the target directory attributes to be changed arbitrarily.
    Err codemadness.org 70 i 31769 Finally, two vulnerabilities in clients may allow server to spoof the client output.
  • Err codemadness.org 70 i 31770
  • Impact
  • Err codemadness.org 70 i 31771
  • Malicious scp server can write arbitrary files to scp target directory, change the
    Err codemadness.org 70 i 31772 target directory permissions and to spoof the client output.
  • Err codemadness.org 70 i 31773
  • Details
  • Err codemadness.org 70 i 31774
Err codemadness.org 70 i 31775 Err codemadness.org 70 i 31776
Err codemadness.org 70 i 31777

The discovered vulnerabilities, described in more detail below, enables the attack
Err codemadness.org 70 i 31778 described here in brief.

Err codemadness.org 70 i 31779
Err codemadness.org 70 i 31780 Err codemadness.org 70 i 31781
    Err codemadness.org 70 i 31782
  • Err codemadness.org 70 i 31783
      Err codemadness.org 70 i 31784
    1. The attacker controlled server or Man-in-the-Middle(*) attack drops .bash_aliases file to victim’s home directory when the victim performs scp operation from the server. The transfer of extra files is hidden by sending ANSI control sequences via stderr. For example:
    2. Err codemadness.org 70 i 31785
    Err codemadness.org 70 i 31786
  • Err codemadness.org 70 i 31787
Err codemadness.org 70 i 31788 Err codemadness.org 70 i 31789

user@local:~$ scp user@remote:readme.txt .
Err codemadness.org 70 i 31790 readme.txt 100% 494 1.6KB/s 00:00
Err codemadness.org 70 i 31791 user@local:~$

Err codemadness.org 70 i 31792 Err codemadness.org 70 i 31793
    Err codemadness.org 70 i 31794
  • Err codemadness.org 70 i 31795
      Err codemadness.org 70 i 31796
    1. Once the victim launches a new shell, the malicious commands in .bash_aliases get executed.
    2. Err codemadness.org 70 i 31797
    Err codemadness.org 70 i 31798
  • Err codemadness.org 70 i 31799
  • *) Man-in-the-Middle attack does require the victim to accept the wrong host fingerprint.
  • Err codemadness.org 70 i 31800
Err codemadness.org 70 i 31801 Err codemadness.org 70 i 31802


Err codemadness.org 70 i 31803 Err codemadness.org 70 i 31804

###FreeBSD 12.0 vs. DragonFlyBSD 5.4 vs. TrueOS 18.12 vs. Linux On A Tyan EPYC Server

Err codemadness.org 70 i 31805 Err codemadness.org 70 i 31806
Err codemadness.org 70 i 31807

Last month when running FreeBSD 12.0 benchmarks on a 2P EPYC server I wasn’t able to run any side-by-side benchmarks with the new DragonFlyBSD 5.4 as this BSD was crashing during the boot process on that board. But fortunately on another AMD EPYC server available, the EPYC 1P TYAN Transport SX TN70A-B8026, DragonFlyBSD 5.4.1 runs fine. So for this first round of BSD benchmarking in 2019 are tests of FreeBSD 11.2, FreeBSD 12.0, DragonFlyBSD 5.4.1, the new TrueOS 18.12, and a few Linux distributions (CentOS 7, Ubuntu 18.04.1 LTS, and Clear Linux) on this EPYC 7601 server in a variety of workloads.

Err codemadness.org 70 i 31808
Err codemadness.org 70 i 31809 Err codemadness.org 70 i 31810
Err codemadness.org 70 i 31811

DragonFlyBSD 5.4.1 ran fine on this Tyan server and could boot fine unlike the issue encountered on the Dell PowerEdge R7425 for this particular BSD. But on the Tyan server, DragonFlyBSD 5.2.2 wouldn’t boot so only this latest DragonFlyBSD release series was used as part of the comparison.

Err codemadness.org 70 i 31812
Err codemadness.org 70 i 31813 Err codemadness.org 70 i 31814
    Err codemadness.org 70 i 31815
  • Err codemadness.org 70 i 31816

    A summary of the operating systems tested for this EPYC 7601 OS benchmark comparison included:

    Err codemadness.org 70 i 31817
  • Err codemadness.org 70 i 31818
  • Err codemadness.org 70 i 31819

    DragonFlyBSD 5.4.1 - The latest release of Matthew Dillon’s operating system while using the HAMMER2 file-system and GCC 8.1 compiler that is now the default system compiler for this BSD.

    Err codemadness.org 70 i 31820
  • Err codemadness.org 70 i 31821
  • Err codemadness.org 70 i 31822

    FreeBSD 11.2 - The previous stable release of FreeBSD. Installed with a ZFS file-system.

    Err codemadness.org 70 i 31823
  • Err codemadness.org 70 i 31824
  • Err codemadness.org 70 i 31825

    FreeBSD 12.0 - The latest stable release of FreeBSD and installed with its ZFS option.

    Err codemadness.org 70 i 31826
  • Err codemadness.org 70 i 31827
  • Err codemadness.org 70 i 31828

    TrueOS 18.12 - The latest release of the iX systems’ FreeBSD derivative. TrueOS 18.12 is based on FreeBSD 13.0-CURRENT and uses ZFS by default and was using the Clang 7.0.1 compiler compared to Clang 6.0.1 on FreeBSD 12.0.

    Err codemadness.org 70 i 31829
  • Err codemadness.org 70 i 31830
  • Err codemadness.org 70 i 31831

    CentOS Linux 7 - The latest EL7 operating system performance.

    Err codemadness.org 70 i 31832
  • Err codemadness.org 70 i 31833
  • Err codemadness.org 70 i 31834

    Ubuntu 18.04.1 LTS - The latest Ubuntu Long Term Support release.

    Err codemadness.org 70 i 31835
  • Err codemadness.org 70 i 31836
  • Err codemadness.org 70 i 31837

    Clear Linux 27120 - The latest rolling release as of testing out of Intel’s Open-Source Technology Center. Clear Linux often reflects as close to the gold standard for performance as possible with its insanely tuned software stack for offering optimal performance on x86_64 performance for generally showing best what the hardware is capable of.

    Err codemadness.org 70 i 31838
  • Err codemadness.org 70 i 31839
Err codemadness.org 70 i 31840 Err codemadness.org 70 i 31841
Err codemadness.org 70 i 31842

Throughout all of this testing, the Tyan 2U server was kept to its same configuration of an AMD EPYC 7601 (32 cores / 64 threads) at stock speeds, 8 x 16GB DDR4-2666 ECC memory, and 280GB Intel Optane 900p SSD benchmarks.

Err codemadness.org 70 i 31843
Err codemadness.org 70 i 31844 Err codemadness.org 70 i 31845


Err codemadness.org 70 i 31846 Err codemadness.org 70 i 31847

##News Roundup
Err codemadness.org 70 i 31848 ###National Inventors Hall of Fame honors creators of Unix

Err codemadness.org 70 i 31849 Err codemadness.org 70 i 31850
Err codemadness.org 70 i 31851

Dennis Ritchie (Posthumous) and Ken Thompson: UNIX Operating System
Err codemadness.org 70 i 31852 Thompson and Ritchie’s creation of the UNIX operating system and the C programming language were pivotal developments in the progress of computer science. Today, 50 years after its beginnings, UNIX and UNIX-like systems continue to run machinery from supercomputers to smartphones. The UNIX operating system remains the basis of much of the world’s computing infrastructure, and C language – written to simplify the development of UNIX – is one of the most widely used languages today.

Err codemadness.org 70 i 31853
Err codemadness.org 70 i 31854 Err codemadness.org 70 i 31855


Err codemadness.org 70 i 31856 Err codemadness.org 70 i 31857

###Die IPV4, Die

Err codemadness.org 70 i 31858 Err codemadness.org 70 i 31859
Err codemadness.org 70 i 31860

Imagine, it is 2019. Easy, ha? Imagine, it is 2019 and you want to turn off IPv4. Like, off off. Really off. Not disabling IPv6, but disabling IPv4.

Err codemadness.org 70 i 31861
Err codemadness.org 70 i 31862 Err codemadness.org 70 i 31863
    Err codemadness.org 70 i 31864
  • Two steps back
  • Err codemadness.org 70 i 31865
Err codemadness.org 70 i 31866 Err codemadness.org 70 i 31867
Err codemadness.org 70 i 31868

You might be coming here wondering, why would anybody want to do what we are asking to be done. Well, it is dead simple: We are running data centers (like Data Center Light) with a lot of IPv6 only equipment. There simply is no need for IPv4. So why would we want to have it enabled?
Err codemadness.org 70 i 31869 Also, here at ungleich, we defined 2019 as the year to move away from IPv4.

Err codemadness.org 70 i 31870
Err codemadness.org 70 i 31871 Err codemadness.org 70 i 31872
    Err codemadness.org 70 i 31873
  • The challenge
  • Err codemadness.org 70 i 31874
Err codemadness.org 70 i 31875 Err codemadness.org 70 i 31876
Err codemadness.org 70 i 31877

Do you like puzzles? Competitions? Challenges? Hacking? Well. If ANY of this is of your interest, here is a real challenge for you:
Err codemadness.org 70 i 31878 We offer a 100 CHF (roughly 100 USD) for anyone who can give us a detailed description of how to turn IPv4 completely off in an operating system and allowing it to communicate with IPv6 only. This should obviously include a tiny proof that your operating system is really unable to use IPv4 at all. Just flushing IPv4 addresses and keeping the IPv4 stack loaded, does not count.

Err codemadness.org 70 i 31879
Err codemadness.org 70 i 31880 Err codemadness.org 70 i 31881


Err codemadness.org 70 i 31882 Err codemadness.org 70 i 31883

###GhostBSD 18.12 released

Err codemadness.org 70 i 31884 Err codemadness.org 70 i 31885
Err codemadness.org 70 i 31886

GhostBSD 18.12 is an updated iso of GhostBSD 18.10 with some little changes to the live DVD/USB and with updated packages.

Err codemadness.org 70 i 31887
Err codemadness.org 70 i 31888 Err codemadness.org 70 i 31889
    Err codemadness.org 70 i 31890
  • What has changed since 18.10
  • Err codemadness.org 70 i 31891
  • removed default call of kernel modules for AMD and Intel
  • Err codemadness.org 70 i 31892
  • replaced octopkg by software-station
  • Err codemadness.org 70 i 31893
  • added back gop hacks to the live system
  • Err codemadness.org 70 i 31894
  • added ghostbsd-drivers and ghostbsd-utils
  • Err codemadness.org 70 i 31895
  • we updated the packages to the latest build
  • Err codemadness.org 70 i 31896
Err codemadness.org 70 i 31897 Err codemadness.org 70 i 31898


Err codemadness.org 70 i 31899 Err codemadness.org 70 i 31900

###And Now for a laugh : #unixinpictures

Err codemadness.org 70 i 31901 Err codemadness.org 70 i 31902


Err codemadness.org 70 i 31903 Err codemadness.org 70 i 31904

##Beastie Bits

Err codemadness.org 70 i 31905 Err codemadness.org 70 i 31906 Err codemadness.org 70 i 31921 Err codemadness.org 70 i 31922


Err codemadness.org 70 i 31923 Err codemadness.org 70 i 31924

##Feedback/Questions

Err codemadness.org 70 i 31925 Err codemadness.org 70 i 31926 Err codemadness.org 70 i 31931 Err codemadness.org 70 i 31932


Err codemadness.org 70 i 31933 Err codemadness.org 70 i 31934
    Err codemadness.org 70 i 31935
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 31936
Err codemadness.org 70 i 31937 Err codemadness.org 70 i 31938


]]> Err codemadness.org 70 i 31939
Err codemadness.org 70 i 31940 Err codemadness.org 70 i 31941 SCP client vulnerabilities, BSDs vs Linux benchmarks on a Tyan EPYC Server, fame for the Unix inventors, Die IPv4, GhostBSD 18.12 released, Unix in pictures, and more.

Err codemadness.org 70 i 31942 Err codemadness.org 70 i 31943

##Headlines
Err codemadness.org 70 i 31944 ###scp client multiple vulnerabilities

Err codemadness.org 70 i 31945 Err codemadness.org 70 i 31946
    Err codemadness.org 70 i 31947
  • Overview
  • Err codemadness.org 70 i 31948
  • SCP clients from multiple vendors are susceptible to a malicious scp server performing
    Err codemadness.org 70 i 31949 unauthorized changes to target directory and/or client output manipulation.
  • Err codemadness.org 70 i 31950
  • Description
  • Err codemadness.org 70 i 31951
  • Many scp clients fail to verify if the objects returned by the scp server match those
    Err codemadness.org 70 i 31952 it asked for. This issue dates back to 1983 and rcp, on which scp is based. A separate
    Err codemadness.org 70 i 31953 flaw in the client allows the target directory attributes to be changed arbitrarily.
    Err codemadness.org 70 i 31954 Finally, two vulnerabilities in clients may allow server to spoof the client output.
  • Err codemadness.org 70 i 31955
  • Impact
  • Err codemadness.org 70 i 31956
  • Malicious scp server can write arbitrary files to scp target directory, change the
    Err codemadness.org 70 i 31957 target directory permissions and to spoof the client output.
  • Err codemadness.org 70 i 31958
  • Details
  • Err codemadness.org 70 i 31959
Err codemadness.org 70 i 31960 Err codemadness.org 70 i 31961
Err codemadness.org 70 i 31962

The discovered vulnerabilities, described in more detail below, enables the attack
Err codemadness.org 70 i 31963 described here in brief.

Err codemadness.org 70 i 31964
Err codemadness.org 70 i 31965 Err codemadness.org 70 i 31966
    Err codemadness.org 70 i 31967
  • Err codemadness.org 70 i 31968
      Err codemadness.org 70 i 31969
    1. The attacker controlled server or Man-in-the-Middle(*) attack drops .bash_aliases file to victim’s home directory when the victim performs scp operation from the server. The transfer of extra files is hidden by sending ANSI control sequences via stderr. For example:
    2. Err codemadness.org 70 i 31970
    Err codemadness.org 70 i 31971
  • Err codemadness.org 70 i 31972
Err codemadness.org 70 i 31973 Err codemadness.org 70 i 31974

user@local:~$ scp user@remote:readme.txt .
Err codemadness.org 70 i 31975 readme.txt 100% 494 1.6KB/s 00:00
Err codemadness.org 70 i 31976 user@local:~$

Err codemadness.org 70 i 31977 Err codemadness.org 70 i 31978
    Err codemadness.org 70 i 31979
  • Err codemadness.org 70 i 31980
      Err codemadness.org 70 i 31981
    1. Once the victim launches a new shell, the malicious commands in .bash_aliases get executed.
    2. Err codemadness.org 70 i 31982
    Err codemadness.org 70 i 31983
  • Err codemadness.org 70 i 31984
  • *) Man-in-the-Middle attack does require the victim to accept the wrong host fingerprint.
  • Err codemadness.org 70 i 31985
Err codemadness.org 70 i 31986 Err codemadness.org 70 i 31987


Err codemadness.org 70 i 31988 Err codemadness.org 70 i 31989

###FreeBSD 12.0 vs. DragonFlyBSD 5.4 vs. TrueOS 18.12 vs. Linux On A Tyan EPYC Server

Err codemadness.org 70 i 31990 Err codemadness.org 70 i 31991
Err codemadness.org 70 i 31992

Last month when running FreeBSD 12.0 benchmarks on a 2P EPYC server I wasn’t able to run any side-by-side benchmarks with the new DragonFlyBSD 5.4 as this BSD was crashing during the boot process on that board. But fortunately on another AMD EPYC server available, the EPYC 1P TYAN Transport SX TN70A-B8026, DragonFlyBSD 5.4.1 runs fine. So for this first round of BSD benchmarking in 2019 are tests of FreeBSD 11.2, FreeBSD 12.0, DragonFlyBSD 5.4.1, the new TrueOS 18.12, and a few Linux distributions (CentOS 7, Ubuntu 18.04.1 LTS, and Clear Linux) on this EPYC 7601 server in a variety of workloads.

Err codemadness.org 70 i 31993
Err codemadness.org 70 i 31994 Err codemadness.org 70 i 31995
Err codemadness.org 70 i 31996

DragonFlyBSD 5.4.1 ran fine on this Tyan server and could boot fine unlike the issue encountered on the Dell PowerEdge R7425 for this particular BSD. But on the Tyan server, DragonFlyBSD 5.2.2 wouldn’t boot so only this latest DragonFlyBSD release series was used as part of the comparison.

Err codemadness.org 70 i 31997
Err codemadness.org 70 i 31998 Err codemadness.org 70 i 31999
    Err codemadness.org 70 i 32000
  • Err codemadness.org 70 i 32001

    A summary of the operating systems tested for this EPYC 7601 OS benchmark comparison included:

    Err codemadness.org 70 i 32002
  • Err codemadness.org 70 i 32003
  • Err codemadness.org 70 i 32004

    DragonFlyBSD 5.4.1 - The latest release of Matthew Dillon’s operating system while using the HAMMER2 file-system and GCC 8.1 compiler that is now the default system compiler for this BSD.

    Err codemadness.org 70 i 32005
  • Err codemadness.org 70 i 32006
  • Err codemadness.org 70 i 32007

    FreeBSD 11.2 - The previous stable release of FreeBSD. Installed with a ZFS file-system.

    Err codemadness.org 70 i 32008
  • Err codemadness.org 70 i 32009
  • Err codemadness.org 70 i 32010

    FreeBSD 12.0 - The latest stable release of FreeBSD and installed with its ZFS option.

    Err codemadness.org 70 i 32011
  • Err codemadness.org 70 i 32012
  • Err codemadness.org 70 i 32013

    TrueOS 18.12 - The latest release of the iX systems’ FreeBSD derivative. TrueOS 18.12 is based on FreeBSD 13.0-CURRENT and uses ZFS by default and was using the Clang 7.0.1 compiler compared to Clang 6.0.1 on FreeBSD 12.0.

    Err codemadness.org 70 i 32014
  • Err codemadness.org 70 i 32015
  • Err codemadness.org 70 i 32016

    CentOS Linux 7 - The latest EL7 operating system performance.

    Err codemadness.org 70 i 32017
  • Err codemadness.org 70 i 32018
  • Err codemadness.org 70 i 32019

    Ubuntu 18.04.1 LTS - The latest Ubuntu Long Term Support release.

    Err codemadness.org 70 i 32020
  • Err codemadness.org 70 i 32021
  • Err codemadness.org 70 i 32022

    Clear Linux 27120 - The latest rolling release as of testing out of Intel’s Open-Source Technology Center. Clear Linux often reflects as close to the gold standard for performance as possible with its insanely tuned software stack for offering optimal performance on x86_64 performance for generally showing best what the hardware is capable of.

    Err codemadness.org 70 i 32023
  • Err codemadness.org 70 i 32024
Err codemadness.org 70 i 32025 Err codemadness.org 70 i 32026
Err codemadness.org 70 i 32027

Throughout all of this testing, the Tyan 2U server was kept to its same configuration of an AMD EPYC 7601 (32 cores / 64 threads) at stock speeds, 8 x 16GB DDR4-2666 ECC memory, and 280GB Intel Optane 900p SSD benchmarks.

Err codemadness.org 70 i 32028
Err codemadness.org 70 i 32029 Err codemadness.org 70 i 32030


Err codemadness.org 70 i 32031 Err codemadness.org 70 i 32032

##News Roundup
Err codemadness.org 70 i 32033 ###National Inventors Hall of Fame honors creators of Unix

Err codemadness.org 70 i 32034 Err codemadness.org 70 i 32035
Err codemadness.org 70 i 32036

Dennis Ritchie (Posthumous) and Ken Thompson: UNIX Operating System
Err codemadness.org 70 i 32037 Thompson and Ritchie’s creation of the UNIX operating system and the C programming language were pivotal developments in the progress of computer science. Today, 50 years after its beginnings, UNIX and UNIX-like systems continue to run machinery from supercomputers to smartphones. The UNIX operating system remains the basis of much of the world’s computing infrastructure, and C language – written to simplify the development of UNIX – is one of the most widely used languages today.

Err codemadness.org 70 i 32038
Err codemadness.org 70 i 32039 Err codemadness.org 70 i 32040


Err codemadness.org 70 i 32041 Err codemadness.org 70 i 32042

###Die IPV4, Die

Err codemadness.org 70 i 32043 Err codemadness.org 70 i 32044
Err codemadness.org 70 i 32045

Imagine, it is 2019. Easy, ha? Imagine, it is 2019 and you want to turn off IPv4. Like, off off. Really off. Not disabling IPv6, but disabling IPv4.

Err codemadness.org 70 i 32046
Err codemadness.org 70 i 32047 Err codemadness.org 70 i 32048
    Err codemadness.org 70 i 32049
  • Two steps back
  • Err codemadness.org 70 i 32050
Err codemadness.org 70 i 32051 Err codemadness.org 70 i 32052
Err codemadness.org 70 i 32053

You might be coming here wondering, why would anybody want to do what we are asking to be done. Well, it is dead simple: We are running data centers (like Data Center Light) with a lot of IPv6 only equipment. There simply is no need for IPv4. So why would we want to have it enabled?
Err codemadness.org 70 i 32054 Also, here at ungleich, we defined 2019 as the year to move away from IPv4.

Err codemadness.org 70 i 32055
Err codemadness.org 70 i 32056 Err codemadness.org 70 i 32057
    Err codemadness.org 70 i 32058
  • The challenge
  • Err codemadness.org 70 i 32059
Err codemadness.org 70 i 32060 Err codemadness.org 70 i 32061
Err codemadness.org 70 i 32062

Do you like puzzles? Competitions? Challenges? Hacking? Well. If ANY of this is of your interest, here is a real challenge for you:
Err codemadness.org 70 i 32063 We offer a 100 CHF (roughly 100 USD) for anyone who can give us a detailed description of how to turn IPv4 completely off in an operating system and allowing it to communicate with IPv6 only. This should obviously include a tiny proof that your operating system is really unable to use IPv4 at all. Just flushing IPv4 addresses and keeping the IPv4 stack loaded, does not count.

Err codemadness.org 70 i 32064
Err codemadness.org 70 i 32065 Err codemadness.org 70 i 32066


Err codemadness.org 70 i 32067 Err codemadness.org 70 i 32068

###GhostBSD 18.12 released

Err codemadness.org 70 i 32069 Err codemadness.org 70 i 32070
Err codemadness.org 70 i 32071

GhostBSD 18.12 is an updated iso of GhostBSD 18.10 with some little changes to the live DVD/USB and with updated packages.

Err codemadness.org 70 i 32072
Err codemadness.org 70 i 32073 Err codemadness.org 70 i 32074
    Err codemadness.org 70 i 32075
  • What has changed since 18.10
  • Err codemadness.org 70 i 32076
  • removed default call of kernel modules for AMD and Intel
  • Err codemadness.org 70 i 32077
  • replaced octopkg by software-station
  • Err codemadness.org 70 i 32078
  • added back gop hacks to the live system
  • Err codemadness.org 70 i 32079
  • added ghostbsd-drivers and ghostbsd-utils
  • Err codemadness.org 70 i 32080
  • we updated the packages to the latest build
  • Err codemadness.org 70 i 32081
Err codemadness.org 70 i 32082 Err codemadness.org 70 i 32083


Err codemadness.org 70 i 32084 Err codemadness.org 70 i 32085

###And Now for a laugh : #unixinpictures

Err codemadness.org 70 i 32086 Err codemadness.org 70 i 32087


Err codemadness.org 70 i 32088 Err codemadness.org 70 i 32089

##Beastie Bits

Err codemadness.org 70 i 32090 Err codemadness.org 70 i 32091 Err codemadness.org 70 i 32106 Err codemadness.org 70 i 32107


Err codemadness.org 70 i 32108 Err codemadness.org 70 i 32109

##Feedback/Questions

Err codemadness.org 70 i 32110 Err codemadness.org 70 i 32111 Err codemadness.org 70 i 32116 Err codemadness.org 70 i 32117


Err codemadness.org 70 i 32118 Err codemadness.org 70 i 32119
    Err codemadness.org 70 i 32120
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 32121
Err codemadness.org 70 i 32122 Err codemadness.org 70 i 32123


]]> Err codemadness.org 70 i 32124
Err codemadness.org 70 i 32125 https://fireside.fm/player/v2/FYhhasNR+r3TeMuvM Err codemadness.org 70 i 32126 Err codemadness.org 70 i 32127 ]]> Err codemadness.org 70 i 32128 Err codemadness.org 70 i 32129
Err codemadness.org 70 i 32130 Err codemadness.org 70 i 32131 Episode 280: FOSS Clothing | BSD Now 280 Err codemadness.org 70 i 32132 https://www.bsdnow.tv/280 Err codemadness.org 70 i 32133 http://feed.jupiter.zone/bsdnow#entry-3132 Err codemadness.org 70 i 32134 Thu, 10 Jan 2019 00:00:00 -0800 Err codemadness.org 70 i 32135 Allan Jude Err codemadness.org 70 i 32136 Err codemadness.org 70 i 32137 full Err codemadness.org 70 i 32138 Allan Jude Err codemadness.org 70 i 32139 A EULA in FOSS clothing, NetBSD with more LLVM support, Thoughts on FreeBSD 12.0, FreeBSD Performance against Windows and Linux on Xeon, Microsoft shipping NetBSD, and more. Err codemadness.org 70 i 32140 52:23 Err codemadness.org 70 i 32141 no Err codemadness.org 70 i 32142 Err codemadness.org 70 i 32143 A EULA in FOSS clothing, NetBSD with more LLVM support, Thoughts on FreeBSD 12.0, FreeBSD Performance against Windows and Linux on Xeon, Microsoft shipping NetBSD, and more. Err codemadness.org 70 i 32144 Headlines Err codemadness.org 70 i 32145 <a href="http://dtrace.org/blogs/bmc/2018/12/16/a-eula-in-foss-clothing/">A EULA in FOSS clothing?</a> Err codemadness.org 70 i 32146 <blockquote>There was a tremendous amount of reaction to and discussion about <a href="http://dtrace.org/blogs/bmc/2018/12/14/open-source-confronts-its-midlife-crisis/">my blog entry on the midlife crisis in open source</a>. As part of this discussion on HN, Jay Kreps of Confluent took the time to write a <a href="https://news.ycombinator.com/item?id=18687498#18689179">detailed response</a> — which he shortly thereafter elevated into a <a href="https://medium.com/@jaykreps/a-quick-comment-on-bryan-cantrills-blog-on-licensing-8dccee41d9e6">blog entry</a>.</blockquote> Err codemadness.org 70 i 32147 <blockquote>Let me be clear that I hold Jay in high regard, as both a software engineer and an entrepreneur — and I appreciate the time he took to write a thoughtful response. That said, there are aspects of his response that I found troubling enough to closely re-read the Confluent Community License — and that in turn has led me to a deeply disturbing realization about what is potentially going on here.</blockquote> Err codemadness.org 70 i 32148 <blockquote>To GitHub: Assuming that this is in fact a EULA, I think it is perilous to allow EULAs to sit in public repositories. It’s one thing to have one click through to accept a license (though again, that itself is dubious), but to say that a git clone is an implicit acceptance of a contract that happens to be sitting somewhere in the repository beggars belief. With efforts like <a href="http://choosealicense.com">choosealicense.com</a>, GitHub has been a model in guiding projects with respect to licensing; it would be helpful for GitHub’s counsel to weigh in on their view of this new strain of source-available proprietary software and the degree to which it comes into conflict with GitHub’s own terms of service.</blockquote> Err codemadness.org 70 i 32149 <blockquote>To foundations concerned with software liberties, including the Apache Foundation, the Linux Foundation, the Free Software Foundation, the Electronic Frontier Foundation, the Open Source Initiative, and the Software Freedom Conservancy: the open source community needs your legal review on this! I don’t think I’m being too alarmist when I say that this is potentially a dangerous new precedent being set; it would be very helpful to have your lawyers offer their perspectives on this, even if they disagree with one another. We seem to be in some terrible new era of frankenlicenses, where the worst of proprietary licenses are bolted on to the goodwill created by open source licenses; we need your legal voices before these creatures destroy the village!</blockquote> Err codemadness.org 70 i 32150 Err codemadness.org 70 i 32151 <hr /> Err codemadness.org 70 i 32152 NetBSD and LLVM Err codemadness.org 70 i 32153 <a href="https://blog.netbsd.org/tnf/entry/netbsd_entering_2019_with_more">NetBSD entering 2019 with more complete LLVM support</a> Err codemadness.org 70 i 32154 <blockquote>I’m recently helping the NetBSD developers to improve the support for this operating system in various LLVM components. As you can read in my previous report, I’ve been focusing on fixing build and test failures for the purpose of improving the buildbot coverage. Err codemadness.org 70 i 32155 Previously, I’ve resolved test failures in LLVM, Clang, LLD, libunwind, openmp and partially libc++. During the remainder of the month, I’ve been working on the remaining libc++ test failures, improving the NetBSD clang driver and helping Kamil Rytarowski with compiler-rt.</blockquote> Err codemadness.org 70 i 32156 <a href="https://blog.netbsd.org/tnf/entry/the_process_of_upstreaming_support">The process of upstreaming support to LLVM sanitizers has been finalized</a> Err codemadness.org 70 i 32157 <blockquote>I’ve finished the process of upstreaming patches to LLVM sanitizers (almost 2000LOC of local code) and submitted to upstream new improvements for the NetBSD support. Today out of the box (in unpatched version) we have support for a variety of compiler-rt LLVM features: ASan (finds unauthorized memory access), UBSan (finds unspecified code semantics), TSan (finds threading bugs), MSan (finds uninitialized memory use), SafeStack (double stack hardening), Profile (code coverage), XRay (dynamic code tracing); while other ones such as Scudo (hardened allocator) or DFSan (generic data flow sanitizer) are not far away from completeness. Err codemadness.org 70 i 32158 The NetBSD support is no longer visibly lacking behind Linux in sanitizers, although there are still failing tests on NetBSD that are not observed on Linux. On the other hand there are features working on NetBSD that are not functional on Linux, like sanitizing programs during early initialization process of OS (this is caused by /proc dependency on Linux that is mounted by startup programs, while NetBSD relies on sysctl(3) interfaces that is always available).</blockquote> Err codemadness.org 70 i 32159 <hr /> Err codemadness.org 70 i 32160 News Roundup Err codemadness.org 70 i 32161 <a href="https://distrowatch.com/weekly.php?issue=20190107#freebsd">Thoughts on FreeBSD 12.0</a> Err codemadness.org 70 i 32162 <blockquote>Playing with FreeBSD with past week I don’t feel as though there were any big surprises or changes in this release compared to FreeBSD 11. In typical FreeBSD fashion, progress tends to be evolutionary rather than revolutionary, and this release feels like a polished and improved incremental step forward. I like that the installer handles both UFS and ZFS guided partitioning now and in a friendly manner. In the past I had trouble getting FreeBSD’s boot menu to work with boot environments, but that has been fixed for this release. Err codemadness.org 70 i 32163 I like the security options in the installer too. These are not new, but I think worth mentioning. FreeBSD, unlike most Linux distributions, offers several low-level security options (like hiding other users’ processes and randomizing PIDs) and I like having these presented at install time. It’s harder for people to attack what they cannot see, or predict, and FreeBSD optionally makes these little adjustment for us. Err codemadness.org 70 i 32164 Something which stands out about FreeBSD, compared to most Linux distributions I run, is that FreeBSD rarely holds the user’s hand, but also rarely surprises the user. This means there is more reading to do up front and new users may struggle to get used to editing configuration files in a text editor. But FreeBSD rarely does anything unless told to do it. Updates rarely change the system’s behaviour, working technology rarely gets swapped out for something new, the system and its applications never crashed during my trial. Everything was rock solid. The operating system may seem like a minimal, blank slate to new users, but it’s wonderfully dependable and predictable in my experience. Err codemadness.org 70 i 32165 I probably wouldn’t recommend FreeBSD for desktop use. It’s close relative, GhostBSD, ships with a friendly desktop and does special work to make end user applications run smoothly. But for people who want to run servers, possible for years without change or issues, FreeBSD is a great option. It’s also an attractive choice, in my opinion, for people who like to build their system from the ground up, like you would with Debian’s server install or Arch Linux. Apart from the base tools and documentation, there is nothing on a FreeBSD system apart from what we put on it.</blockquote> Err codemadness.org 70 i 32166 Err codemadness.org 70 i 32167 <hr /> Err codemadness.org 70 i 32168 <a href="https://www.phoronix.com/scan.php?page=article&amp;item=freebsd-12-windows&amp;num=1">FreeBSD 12.0 Performance Against Windows &amp; Linux On An Intel Xeon Server</a> Err codemadness.org 70 i 32169 <blockquote>Last week I posted benchmarks of Windows Server 2019 against various Linux distributions using a Tyan dual socket Intel Xeon server. In this article are some complementary results when adding in the performance of FreeBSD 11.2 against the new FreeBSD 12.0 stable release for this leading BSD operating system. As some fun benchmarks to end out 2018, here are the results of FreeBSD 11.2/12.0 (including an additional run when using GCC rather than Clang) up against Windows Server and several enterprise-ready Linux distributions. Err codemadness.org 70 i 32170 While FreeBSD 12.0 had picked up just one win of the Windows/Linux comparisons run, the FreeBSD performance is moving in the right direction. FreeBSD 12.0 was certainly faster than FreeBSD 11.2 on this dual Intel Xeon Scalable server based on a Tyan 1U platform. Meanwhile, to no surprise given the data last week, Clear Linux was by far the fastest out-of-the-box operating system tested. Err codemadness.org 70 i 32171 I did run some extra benchmarks on FreeBSD 11.2/12.0 with this hardware: in total I ran 120 benchmarks for these BSD tests. Of the 120 tests, there were just 15 cases where FreeBSD 11.2 was faster than 12.0. Seeing FreeBSD 12.0 faster than 11.2 nearly 90% of the time is an accomplishment and usually with other operating systems we see more of a mixed bag on new releases with not such solidly better performance. It was also great seeing the competitive performance out of FreeBSD when using the Clang compiler for the source-based tests compared to the GCC8 performance. Additional data available via this <a href="http://OpenBenchmarking.org">OpenBenchmarking.org</a> result file.</blockquote> Err codemadness.org 70 i 32172 Err codemadness.org 70 i 32173 <hr /> Err codemadness.org 70 i 32174 <a href="http://fogey.com/contemplating/?p=1023">How NetBSD came to be shipped by Microsoft</a> Err codemadness.org 70 i 32175 <a href="https://webcache.googleusercontent.com/search?q=cache:5XwAm5tvJ4AJ:fogey.com/contemplating/%3Fp%3D1023+&amp;cd=1&amp;hl=en&amp;ct=clnk&amp;gl=us">Google cache in case the site is down</a> Err codemadness.org 70 i 32176 <blockquote>In 2000, Joe Britt, Matt Hershenson and Andy Rubin formed Danger Incorporated. Danger developed the world’s first recognizable smartphone, the Danger HipTop. T-Mobile sold the first HipTop under the brand name Sidekick in October of 2002. Err codemadness.org 70 i 32177 Danger had a well developed kernel that had been designed and built in house. The kernel came to be viewed as not a core intellectual property and Danger started a search for a replacement. For business reasons, mostly to do with legal concerns over the Gnu Public License, Danger rejected Linux and began to consider BSD Unix as a replacement for the kernel. Err codemadness.org 70 i 32178 In 2006 I was hired by Mike Chen, the manager of the kernel development group to investigate the feasibility of replacing the Danger kernel with a BSD kernel, to select the version of BSD to use, to develop a prototype and to develop the plan for adapting BSD to Danger’s requirements. Err codemadness.org 70 i 32179 NetBSD was easily the best choice among the BSD variations at the time because it had well developed cross development tools. It was easy to use a NetBSD desktop running an Intel release to cross compile a NetBSD kernel and runtime for a device running an ARM processor. (Those interested in mailing list archaeology might be amused to investigate NetBSD technical mailing list for mail from picovex, particularly from Bucky Katz at picovex.) Err codemadness.org 70 i 32180 We began product development on the specific prototype of the phone that would become the Sidekick LX2009 in 2007 and contracts for the phone were written with T-Mobile. We were about half way through the two year development cycle when Microsoft purchased Danger in 2008. Err codemadness.org 70 i 32181 Microsoft would have preferred to ship the Sidekick running Windows/CE rather than NetBSD, but a schedule analysis performed by me, and another by an independent outside contractor, indicated that doing so would result in unacceptable delay.</blockquote> Err codemadness.org 70 i 32182 <hr /> Err codemadness.org 70 i 32183 Beastie Bits Err codemadness.org 70 i 32184 <ul> Err codemadness.org 70 i 32185 <li><a href="http://lists.31bits.net/archives/devel/2018-December/000033.html">Unleashed 1.2 Released</a></li> Err codemadness.org 70 i 32186 <li><a href="https://media.ccc.de/v/35c3-9647-taming_the_chaos_can_we_build_systems_that_actually_work">35th CCC - Taming the Chaos: Can we build systems that actually work? </a></li> Err codemadness.org 70 i 32187 <li><a href="https://rachelbythebay.com/w/2018/12/30/v6/">Potholes to avoid when migrating to IPv6</a></li> Err codemadness.org 70 i 32188 <li><a href="https://www.jwz.org/blog/2018/12/xscreensaver-5-41/">XScreenSaver 5.42</a></li> Err codemadness.org 70 i 32189 <li><a href="https://hackertarget.com/ssh-examples-tunnels/">SSH Examples and Tunnels</a></li> Err codemadness.org 70 i 32190 <li><a href="https://old.reddit.com/r/freebsd/comments/abevqa/mbuf9_request_for_comment/">Help request - mbuf(9) - request for comment</a></li> Err codemadness.org 70 i 32191 <li><a href="https://www.zdnet.com/article/nsa-to-release-a-free-reverse-engineering-tool/">NSA to release free Reverse Engineering Tool</a></li> Err codemadness.org 70 i 32192 <li><a href="https://blog.grem.de/sysadmin/FreeBSD-On-rpi3-With-crochet-2018-10-27-18-00.html">Running FreeBSD on a Raspberry Pi3 using a custom image created with crochet and poudriere</a></li> Err codemadness.org 70 i 32193 </ul> Err codemadness.org 70 i 32194 Err codemadness.org 70 i 32195 <hr /> Err codemadness.org 70 i 32196 Feedback/Questions Err codemadness.org 70 i 32197 <ul> Err codemadness.org 70 i 32198 <li>Dries - <a href="http://dpaste.com/2DCEJD6#wrap">Lets talk a bit about VIMAGE jails</a></li> Err codemadness.org 70 i 32199 <li>ohb - <a href="http://dpaste.com/1EGDSKQ#wrap">Question About ZFS Root Dataset</a></li> Err codemadness.org 70 i 32200 <li>Micah - <a href="http://dpaste.com/3TK2JWF#wrap">Active-Active NAS Sync recommendations</a></li> Err codemadness.org 70 i 32201 </ul> Err codemadness.org 70 i 32202 Err codemadness.org 70 i 32203 <hr /> Err codemadness.org 70 i 32204 <ul> Err codemadness.org 70 i 32205 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 32206 </ul> Err codemadness.org 70 i 32207 Err codemadness.org 70 i 32208 <hr /> Err codemadness.org 70 i 32209 Err codemadness.org 70 i 32210 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, EULA, github, llvm, microsoft, sidekick, danger, CCC, xscreensaver, ssh, nsa Err codemadness.org 70 i 32211 Err codemadness.org 70 i 32212 A EULA in FOSS clothing, NetBSD with more LLVM support, Thoughts on FreeBSD 12.0, FreeBSD Performance against Windows and Linux on Xeon, Microsoft shipping NetBSD, and more.

Err codemadness.org 70 i 32213 Err codemadness.org 70 i 32214

Headlines

Err codemadness.org 70 i 32215 Err codemadness.org 70 i 32216

A EULA in FOSS clothing?

Err codemadness.org 70 i 32217 Err codemadness.org 70 i 32218
There was a tremendous amount of reaction to and discussion about my blog entry on the midlife crisis in open source. As part of this discussion on HN, Jay Kreps of Confluent took the time to write a detailed response — which he shortly thereafter elevated into a blog entry.
Err codemadness.org 70 i 32219 Err codemadness.org 70 i 32220
Let me be clear that I hold Jay in high regard, as both a software engineer and an entrepreneur — and I appreciate the time he took to write a thoughtful response. That said, there are aspects of his response that I found troubling enough to closely re-read the Confluent Community License — and that in turn has led me to a deeply disturbing realization about what is potentially going on here.
Err codemadness.org 70 i 32221 Err codemadness.org 70 i 32222
To GitHub: Assuming that this is in fact a EULA, I think it is perilous to allow EULAs to sit in public repositories. It’s one thing to have one click through to accept a license (though again, that itself is dubious), but to say that a git clone is an implicit acceptance of a contract that happens to be sitting somewhere in the repository beggars belief. With efforts like choosealicense.com, GitHub has been a model in guiding projects with respect to licensing; it would be helpful for GitHub’s counsel to weigh in on their view of this new strain of source-available proprietary software and the degree to which it comes into conflict with GitHub’s own terms of service.
Err codemadness.org 70 i 32223 Err codemadness.org 70 i 32224
To foundations concerned with software liberties, including the Apache Foundation, the Linux Foundation, the Free Software Foundation, the Electronic Frontier Foundation, the Open Source Initiative, and the Software Freedom Conservancy: the open source community needs your legal review on this! I don’t think I’m being too alarmist when I say that this is potentially a dangerous new precedent being set; it would be very helpful to have your lawyers offer their perspectives on this, even if they disagree with one another. We seem to be in some terrible new era of frankenlicenses, where the worst of proprietary licenses are bolted on to the goodwill created by open source licenses; we need your legal voices before these creatures destroy the village!
Err codemadness.org 70 i 32225 Err codemadness.org 70 i 32226


Err codemadness.org 70 i 32227 Err codemadness.org 70 i 32228

NetBSD and LLVM

Err codemadness.org 70 i 32229 Err codemadness.org 70 i 32230

NetBSD entering 2019 with more complete LLVM support

Err codemadness.org 70 i 32231 Err codemadness.org 70 i 32232
I’m recently helping the NetBSD developers to improve the support for this operating system in various LLVM components. As you can read in my previous report, I’ve been focusing on fixing build and test failures for the purpose of improving the buildbot coverage. Err codemadness.org 70 i 32233 Previously, I’ve resolved test failures in LLVM, Clang, LLD, libunwind, openmp and partially libc++. During the remainder of the month, I’ve been working on the remaining libc++ test failures, improving the NetBSD clang driver and helping Kamil Rytarowski with compiler-rt.
Err codemadness.org 70 i 32234 Err codemadness.org 70 i 32235

The process of upstreaming support to LLVM sanitizers has been finalized

Err codemadness.org 70 i 32236 Err codemadness.org 70 i 32237
I’ve finished the process of upstreaming patches to LLVM sanitizers (almost 2000LOC of local code) and submitted to upstream new improvements for the NetBSD support. Today out of the box (in unpatched version) we have support for a variety of compiler-rt LLVM features: ASan (finds unauthorized memory access), UBSan (finds unspecified code semantics), TSan (finds threading bugs), MSan (finds uninitialized memory use), SafeStack (double stack hardening), Profile (code coverage), XRay (dynamic code tracing); while other ones such as Scudo (hardened allocator) or DFSan (generic data flow sanitizer) are not far away from completeness. Err codemadness.org 70 i 32238 The NetBSD support is no longer visibly lacking behind Linux in sanitizers, although there are still failing tests on NetBSD that are not observed on Linux. On the other hand there are features working on NetBSD that are not functional on Linux, like sanitizing programs during early initialization process of OS (this is caused by /proc dependency on Linux that is mounted by startup programs, while NetBSD relies on sysctl(3) interfaces that is always available).
Err codemadness.org 70 i 32239 Err codemadness.org 70 i 32240


Err codemadness.org 70 i 32241 Err codemadness.org 70 i 32242

News Roundup

Err codemadness.org 70 i 32243 Err codemadness.org 70 i 32244

Thoughts on FreeBSD 12.0

Err codemadness.org 70 i 32245 Err codemadness.org 70 i 32246
Playing with FreeBSD with past week I don’t feel as though there were any big surprises or changes in this release compared to FreeBSD 11. In typical FreeBSD fashion, progress tends to be evolutionary rather than revolutionary, and this release feels like a polished and improved incremental step forward. I like that the installer handles both UFS and ZFS guided partitioning now and in a friendly manner. In the past I had trouble getting FreeBSD’s boot menu to work with boot environments, but that has been fixed for this release. Err codemadness.org 70 i 32247 I like the security options in the installer too. These are not new, but I think worth mentioning. FreeBSD, unlike most Linux distributions, offers several low-level security options (like hiding other users’ processes and randomizing PIDs) and I like having these presented at install time. It’s harder for people to attack what they cannot see, or predict, and FreeBSD optionally makes these little adjustment for us. Err codemadness.org 70 i 32248 Something which stands out about FreeBSD, compared to most Linux distributions I run, is that FreeBSD rarely holds the user’s hand, but also rarely surprises the user. This means there is more reading to do up front and new users may struggle to get used to editing configuration files in a text editor. But FreeBSD rarely does anything unless told to do it. Updates rarely change the system’s behaviour, working technology rarely gets swapped out for something new, the system and its applications never crashed during my trial. Everything was rock solid. The operating system may seem like a minimal, blank slate to new users, but it’s wonderfully dependable and predictable in my experience. Err codemadness.org 70 i 32249 I probably wouldn’t recommend FreeBSD for desktop use. It’s close relative, GhostBSD, ships with a friendly desktop and does special work to make end user applications run smoothly. But for people who want to run servers, possible for years without change or issues, FreeBSD is a great option. It’s also an attractive choice, in my opinion, for people who like to build their system from the ground up, like you would with Debian’s server install or Arch Linux. Apart from the base tools and documentation, there is nothing on a FreeBSD system apart from what we put on it.
Err codemadness.org 70 i 32250 Err codemadness.org 70 i 32251


Err codemadness.org 70 i 32252 Err codemadness.org 70 i 32253

FreeBSD 12.0 Performance Against Windows & Linux On An Intel Xeon Server

Err codemadness.org 70 i 32254 Err codemadness.org 70 i 32255
Last week I posted benchmarks of Windows Server 2019 against various Linux distributions using a Tyan dual socket Intel Xeon server. In this article are some complementary results when adding in the performance of FreeBSD 11.2 against the new FreeBSD 12.0 stable release for this leading BSD operating system. As some fun benchmarks to end out 2018, here are the results of FreeBSD 11.2/12.0 (including an additional run when using GCC rather than Clang) up against Windows Server and several enterprise-ready Linux distributions. Err codemadness.org 70 i 32256 While FreeBSD 12.0 had picked up just one win of the Windows/Linux comparisons run, the FreeBSD performance is moving in the right direction. FreeBSD 12.0 was certainly faster than FreeBSD 11.2 on this dual Intel Xeon Scalable server based on a Tyan 1U platform. Meanwhile, to no surprise given the data last week, Clear Linux was by far the fastest out-of-the-box operating system tested. Err codemadness.org 70 i 32257 I did run some extra benchmarks on FreeBSD 11.2/12.0 with this hardware: in total I ran 120 benchmarks for these BSD tests. Of the 120 tests, there were just 15 cases where FreeBSD 11.2 was faster than 12.0. Seeing FreeBSD 12.0 faster than 11.2 nearly 90% of the time is an accomplishment and usually with other operating systems we see more of a mixed bag on new releases with not such solidly better performance. It was also great seeing the competitive performance out of FreeBSD when using the Clang compiler for the source-based tests compared to the GCC8 performance. Additional data available via this OpenBenchmarking.org result file.
Err codemadness.org 70 i 32258 Err codemadness.org 70 i 32259


Err codemadness.org 70 i 32260 Err codemadness.org 70 i 32261

How NetBSD came to be shipped by Microsoft

Err codemadness.org 70 i 32262 Err codemadness.org 70 i 32263

Google cache in case the site is down

Err codemadness.org 70 i 32264 Err codemadness.org 70 i 32265
In 2000, Joe Britt, Matt Hershenson and Andy Rubin formed Danger Incorporated. Danger developed the world’s first recognizable smartphone, the Danger HipTop. T-Mobile sold the first HipTop under the brand name Sidekick in October of 2002. Err codemadness.org 70 i 32266 Danger had a well developed kernel that had been designed and built in house. The kernel came to be viewed as not a core intellectual property and Danger started a search for a replacement. For business reasons, mostly to do with legal concerns over the Gnu Public License, Danger rejected Linux and began to consider BSD Unix as a replacement for the kernel. Err codemadness.org 70 i 32267 In 2006 I was hired by Mike Chen, the manager of the kernel development group to investigate the feasibility of replacing the Danger kernel with a BSD kernel, to select the version of BSD to use, to develop a prototype and to develop the plan for adapting BSD to Danger’s requirements. Err codemadness.org 70 i 32268 NetBSD was easily the best choice among the BSD variations at the time because it had well developed cross development tools. It was easy to use a NetBSD desktop running an Intel release to cross compile a NetBSD kernel and runtime for a device running an ARM processor. (Those interested in mailing list archaeology might be amused to investigate NetBSD technical mailing list for mail from picovex, particularly from Bucky Katz at picovex.) Err codemadness.org 70 i 32269 We began product development on the specific prototype of the phone that would become the Sidekick LX2009 in 2007 and contracts for the phone were written with T-Mobile. We were about half way through the two year development cycle when Microsoft purchased Danger in 2008. Err codemadness.org 70 i 32270 Microsoft would have preferred to ship the Sidekick running Windows/CE rather than NetBSD, but a schedule analysis performed by me, and another by an independent outside contractor, indicated that doing so would result in unacceptable delay.
Err codemadness.org 70 i 32271 Err codemadness.org 70 i 32272


Err codemadness.org 70 i 32273 Err codemadness.org 70 i 32274

Beastie Bits

Err codemadness.org 70 i 32275 Err codemadness.org 70 i 32276 Err codemadness.org 70 i 32286 Err codemadness.org 70 i 32287


Err codemadness.org 70 i 32288 Err codemadness.org 70 i 32289

Feedback/Questions

Err codemadness.org 70 i 32290 Err codemadness.org 70 i 32291 Err codemadness.org 70 i 32296 Err codemadness.org 70 i 32297


Err codemadness.org 70 i 32298 Err codemadness.org 70 i 32299
    Err codemadness.org 70 i 32300
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 32301
Err codemadness.org 70 i 32302 Err codemadness.org 70 i 32303


]]> Err codemadness.org 70 i 32304
Err codemadness.org 70 i 32305 Err codemadness.org 70 i 32306 A EULA in FOSS clothing, NetBSD with more LLVM support, Thoughts on FreeBSD 12.0, FreeBSD Performance against Windows and Linux on Xeon, Microsoft shipping NetBSD, and more.

Err codemadness.org 70 i 32307 Err codemadness.org 70 i 32308

Headlines

Err codemadness.org 70 i 32309 Err codemadness.org 70 i 32310

A EULA in FOSS clothing?

Err codemadness.org 70 i 32311 Err codemadness.org 70 i 32312
There was a tremendous amount of reaction to and discussion about my blog entry on the midlife crisis in open source. As part of this discussion on HN, Jay Kreps of Confluent took the time to write a detailed response — which he shortly thereafter elevated into a blog entry.
Err codemadness.org 70 i 32313 Err codemadness.org 70 i 32314
Let me be clear that I hold Jay in high regard, as both a software engineer and an entrepreneur — and I appreciate the time he took to write a thoughtful response. That said, there are aspects of his response that I found troubling enough to closely re-read the Confluent Community License — and that in turn has led me to a deeply disturbing realization about what is potentially going on here.
Err codemadness.org 70 i 32315 Err codemadness.org 70 i 32316
To GitHub: Assuming that this is in fact a EULA, I think it is perilous to allow EULAs to sit in public repositories. It’s one thing to have one click through to accept a license (though again, that itself is dubious), but to say that a git clone is an implicit acceptance of a contract that happens to be sitting somewhere in the repository beggars belief. With efforts like choosealicense.com, GitHub has been a model in guiding projects with respect to licensing; it would be helpful for GitHub’s counsel to weigh in on their view of this new strain of source-available proprietary software and the degree to which it comes into conflict with GitHub’s own terms of service.
Err codemadness.org 70 i 32317 Err codemadness.org 70 i 32318
To foundations concerned with software liberties, including the Apache Foundation, the Linux Foundation, the Free Software Foundation, the Electronic Frontier Foundation, the Open Source Initiative, and the Software Freedom Conservancy: the open source community needs your legal review on this! I don’t think I’m being too alarmist when I say that this is potentially a dangerous new precedent being set; it would be very helpful to have your lawyers offer their perspectives on this, even if they disagree with one another. We seem to be in some terrible new era of frankenlicenses, where the worst of proprietary licenses are bolted on to the goodwill created by open source licenses; we need your legal voices before these creatures destroy the village!
Err codemadness.org 70 i 32319 Err codemadness.org 70 i 32320


Err codemadness.org 70 i 32321 Err codemadness.org 70 i 32322

NetBSD and LLVM

Err codemadness.org 70 i 32323 Err codemadness.org 70 i 32324

NetBSD entering 2019 with more complete LLVM support

Err codemadness.org 70 i 32325 Err codemadness.org 70 i 32326
I’m recently helping the NetBSD developers to improve the support for this operating system in various LLVM components. As you can read in my previous report, I’ve been focusing on fixing build and test failures for the purpose of improving the buildbot coverage. Err codemadness.org 70 i 32327 Previously, I’ve resolved test failures in LLVM, Clang, LLD, libunwind, openmp and partially libc++. During the remainder of the month, I’ve been working on the remaining libc++ test failures, improving the NetBSD clang driver and helping Kamil Rytarowski with compiler-rt.
Err codemadness.org 70 i 32328 Err codemadness.org 70 i 32329

The process of upstreaming support to LLVM sanitizers has been finalized

Err codemadness.org 70 i 32330 Err codemadness.org 70 i 32331
I’ve finished the process of upstreaming patches to LLVM sanitizers (almost 2000LOC of local code) and submitted to upstream new improvements for the NetBSD support. Today out of the box (in unpatched version) we have support for a variety of compiler-rt LLVM features: ASan (finds unauthorized memory access), UBSan (finds unspecified code semantics), TSan (finds threading bugs), MSan (finds uninitialized memory use), SafeStack (double stack hardening), Profile (code coverage), XRay (dynamic code tracing); while other ones such as Scudo (hardened allocator) or DFSan (generic data flow sanitizer) are not far away from completeness. Err codemadness.org 70 i 32332 The NetBSD support is no longer visibly lacking behind Linux in sanitizers, although there are still failing tests on NetBSD that are not observed on Linux. On the other hand there are features working on NetBSD that are not functional on Linux, like sanitizing programs during early initialization process of OS (this is caused by /proc dependency on Linux that is mounted by startup programs, while NetBSD relies on sysctl(3) interfaces that is always available).
Err codemadness.org 70 i 32333 Err codemadness.org 70 i 32334


Err codemadness.org 70 i 32335 Err codemadness.org 70 i 32336

News Roundup

Err codemadness.org 70 i 32337 Err codemadness.org 70 i 32338

Thoughts on FreeBSD 12.0

Err codemadness.org 70 i 32339 Err codemadness.org 70 i 32340
Playing with FreeBSD with past week I don’t feel as though there were any big surprises or changes in this release compared to FreeBSD 11. In typical FreeBSD fashion, progress tends to be evolutionary rather than revolutionary, and this release feels like a polished and improved incremental step forward. I like that the installer handles both UFS and ZFS guided partitioning now and in a friendly manner. In the past I had trouble getting FreeBSD’s boot menu to work with boot environments, but that has been fixed for this release. Err codemadness.org 70 i 32341 I like the security options in the installer too. These are not new, but I think worth mentioning. FreeBSD, unlike most Linux distributions, offers several low-level security options (like hiding other users’ processes and randomizing PIDs) and I like having these presented at install time. It’s harder for people to attack what they cannot see, or predict, and FreeBSD optionally makes these little adjustment for us. Err codemadness.org 70 i 32342 Something which stands out about FreeBSD, compared to most Linux distributions I run, is that FreeBSD rarely holds the user’s hand, but also rarely surprises the user. This means there is more reading to do up front and new users may struggle to get used to editing configuration files in a text editor. But FreeBSD rarely does anything unless told to do it. Updates rarely change the system’s behaviour, working technology rarely gets swapped out for something new, the system and its applications never crashed during my trial. Everything was rock solid. The operating system may seem like a minimal, blank slate to new users, but it’s wonderfully dependable and predictable in my experience. Err codemadness.org 70 i 32343 I probably wouldn’t recommend FreeBSD for desktop use. It’s close relative, GhostBSD, ships with a friendly desktop and does special work to make end user applications run smoothly. But for people who want to run servers, possible for years without change or issues, FreeBSD is a great option. It’s also an attractive choice, in my opinion, for people who like to build their system from the ground up, like you would with Debian’s server install or Arch Linux. Apart from the base tools and documentation, there is nothing on a FreeBSD system apart from what we put on it.
Err codemadness.org 70 i 32344 Err codemadness.org 70 i 32345


Err codemadness.org 70 i 32346 Err codemadness.org 70 i 32347

FreeBSD 12.0 Performance Against Windows & Linux On An Intel Xeon Server

Err codemadness.org 70 i 32348 Err codemadness.org 70 i 32349
Last week I posted benchmarks of Windows Server 2019 against various Linux distributions using a Tyan dual socket Intel Xeon server. In this article are some complementary results when adding in the performance of FreeBSD 11.2 against the new FreeBSD 12.0 stable release for this leading BSD operating system. As some fun benchmarks to end out 2018, here are the results of FreeBSD 11.2/12.0 (including an additional run when using GCC rather than Clang) up against Windows Server and several enterprise-ready Linux distributions. Err codemadness.org 70 i 32350 While FreeBSD 12.0 had picked up just one win of the Windows/Linux comparisons run, the FreeBSD performance is moving in the right direction. FreeBSD 12.0 was certainly faster than FreeBSD 11.2 on this dual Intel Xeon Scalable server based on a Tyan 1U platform. Meanwhile, to no surprise given the data last week, Clear Linux was by far the fastest out-of-the-box operating system tested. Err codemadness.org 70 i 32351 I did run some extra benchmarks on FreeBSD 11.2/12.0 with this hardware: in total I ran 120 benchmarks for these BSD tests. Of the 120 tests, there were just 15 cases where FreeBSD 11.2 was faster than 12.0. Seeing FreeBSD 12.0 faster than 11.2 nearly 90% of the time is an accomplishment and usually with other operating systems we see more of a mixed bag on new releases with not such solidly better performance. It was also great seeing the competitive performance out of FreeBSD when using the Clang compiler for the source-based tests compared to the GCC8 performance. Additional data available via this OpenBenchmarking.org result file.
Err codemadness.org 70 i 32352 Err codemadness.org 70 i 32353


Err codemadness.org 70 i 32354 Err codemadness.org 70 i 32355

How NetBSD came to be shipped by Microsoft

Err codemadness.org 70 i 32356 Err codemadness.org 70 i 32357

Google cache in case the site is down

Err codemadness.org 70 i 32358 Err codemadness.org 70 i 32359
In 2000, Joe Britt, Matt Hershenson and Andy Rubin formed Danger Incorporated. Danger developed the world’s first recognizable smartphone, the Danger HipTop. T-Mobile sold the first HipTop under the brand name Sidekick in October of 2002. Err codemadness.org 70 i 32360 Danger had a well developed kernel that had been designed and built in house. The kernel came to be viewed as not a core intellectual property and Danger started a search for a replacement. For business reasons, mostly to do with legal concerns over the Gnu Public License, Danger rejected Linux and began to consider BSD Unix as a replacement for the kernel. Err codemadness.org 70 i 32361 In 2006 I was hired by Mike Chen, the manager of the kernel development group to investigate the feasibility of replacing the Danger kernel with a BSD kernel, to select the version of BSD to use, to develop a prototype and to develop the plan for adapting BSD to Danger’s requirements. Err codemadness.org 70 i 32362 NetBSD was easily the best choice among the BSD variations at the time because it had well developed cross development tools. It was easy to use a NetBSD desktop running an Intel release to cross compile a NetBSD kernel and runtime for a device running an ARM processor. (Those interested in mailing list archaeology might be amused to investigate NetBSD technical mailing list for mail from picovex, particularly from Bucky Katz at picovex.) Err codemadness.org 70 i 32363 We began product development on the specific prototype of the phone that would become the Sidekick LX2009 in 2007 and contracts for the phone were written with T-Mobile. We were about half way through the two year development cycle when Microsoft purchased Danger in 2008. Err codemadness.org 70 i 32364 Microsoft would have preferred to ship the Sidekick running Windows/CE rather than NetBSD, but a schedule analysis performed by me, and another by an independent outside contractor, indicated that doing so would result in unacceptable delay.
Err codemadness.org 70 i 32365 Err codemadness.org 70 i 32366


Err codemadness.org 70 i 32367 Err codemadness.org 70 i 32368

Beastie Bits

Err codemadness.org 70 i 32369 Err codemadness.org 70 i 32370 Err codemadness.org 70 i 32380 Err codemadness.org 70 i 32381


Err codemadness.org 70 i 32382 Err codemadness.org 70 i 32383

Feedback/Questions

Err codemadness.org 70 i 32384 Err codemadness.org 70 i 32385 Err codemadness.org 70 i 32390 Err codemadness.org 70 i 32391


Err codemadness.org 70 i 32392 Err codemadness.org 70 i 32393
    Err codemadness.org 70 i 32394
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 32395
Err codemadness.org 70 i 32396 Err codemadness.org 70 i 32397


]]> Err codemadness.org 70 i 32398
Err codemadness.org 70 i 32399 https://fireside.fm/player/v2/FYhhasNR+rQbew48J Err codemadness.org 70 i 32400 Err codemadness.org 70 i 32401 ]]> Err codemadness.org 70 i 32402 Err codemadness.org 70 i 32403
Err codemadness.org 70 i 32404 Err codemadness.org 70 i 32405 Episode 279: Future of ZFS | BSD Now 279 Err codemadness.org 70 i 32406 https://www.bsdnow.tv/279 Err codemadness.org 70 i 32407 http://feed.jupiter.zone/bsdnow#entry-3093 Err codemadness.org 70 i 32408 Thu, 03 Jan 2019 08:00:00 -0800 Err codemadness.org 70 i 32409 Allan Jude Err codemadness.org 70 i 32410 Err codemadness.org 70 i 32411 full Err codemadness.org 70 i 32412 Allan Jude Err codemadness.org 70 i 32413 <span style="font-weight: 400;">The future of ZFS in FreeBSD, we pick highlights from the FreeBSD quarterly status report, flying with the raven, modern KDE on FreeBSD, many ways to launch FreeBSD in EC2, GOG installers on NetBSD, and more.</span> Err codemadness.org 70 i 32414 1:33:21 Err codemadness.org 70 i 32415 no Err codemadness.org 70 i 32416 Err codemadness.org 70 i 32417 <span style="font-weight: 400;">The future of ZFS in FreeBSD, we pick highlights from the FreeBSD quarterly status report, flying with the raven, modern KDE on FreeBSD, many ways to launch FreeBSD in EC2, GOG installers on NetBSD, and more.</span> Err codemadness.org 70 i 32418 Headlines Err codemadness.org 70 i 32419 <a href="https://lists.freebsd.org/pipermail/freebsd-current/2018-December/072422.html">The future of ZFS in FreeBSD</a> Err codemadness.org 70 i 32420 <blockquote>The sources for FreeBSD’s ZFS support are currently taken directly from Illumos with local ifdefs to support the peculiarities of FreeBSD where the Solaris Portability Layer (SPL) shims fall short. FreeBSD has regularly pulled changes from Illumos and tried to push back any bug fixes and new features done in the context of FreeBSD. In the past few years the vast majority of new development in ZFS has taken place in DelphixOS and zfsonlinux (ZoL). Earlier this year Delphix announced that they will be moving to ZoL: <a href="https://www.delphix.com/blog/kickoff-future-eko-2018">https://www.delphix.com/blog/kickoff-future-eko-2018</a> This shift means that there will be little to no net new development of Illumos. While working through the git history of ZoL I have also discovered that many races and locking bugs have been fixed in ZoL and never made it back to Illumos and thus FreeBSD. This state of affairs has led to a general agreement among the stakeholders that I have spoken to that it makes sense to rebase FreeBSD’s ZFS on ZoL. Brian Behlendorf has graciously encouraged me to add FreeBSD support directly to ZoL <a href="https://github.com/zfsonfreebsd/ZoF">https://github.com/zfsonfreebsd/ZoF</a> so that we might all have a single shared code base. Err codemadness.org 70 i 32421 A port for ZoF can be found at <a href="https://github.com/miwi-fbsd/zof-port">https://github.com/miwi-fbsd/zof-port</a> Before it can be committed some additional functionality needs to be added to the FreeBSD opencrypto framework. These can be found at <a href="https://reviews.freebsd.org/D18520">https://reviews.freebsd.org/D18520</a> Err codemadness.org 70 i 32422 This port will provide FreeBSD users with multi modifier protection, project quotas, encrypted datasets, allocation classes, vectorized raidz, vectorized checksums, and various command line improvements.</blockquote> Err codemadness.org 70 i 32423 Err codemadness.org 70 i 32424 <hr /> Err codemadness.org 70 i 32425 <a href="https://www.freebsd.org/news/status/report-2018-01-2018-09.html">FreeBSD Quarterly Status Update</a> Err codemadness.org 70 i 32426 <blockquote>With FreeBSD having gone all the way to 12, it is perhaps useful to take a look back at all the things that have been accomplished, in terms of many visible changes, as well as all the things that happen behind the scenes to ensure that FreeBSD continues to offer an alternative in both design, implementation, and execution. Err codemadness.org 70 i 32427 The things you can look forward to reading about are too numerous to summarize, but cover just about everything from finalizing releases, administrative work, optimizations and depessimizations, features added and fixed, and many areas of improvement that might just surprise you a little. Err codemadness.org 70 i 32428 Please have a cup of coffee, tea, hot cocoa, or other beverage of choice, and enjoy this culmulative set of reports covering everything that’s been done since October, 2017. Err codemadness.org 70 i 32429 —Daniel Ebdrup</blockquote> Err codemadness.org 70 i 32430 Err codemadness.org 70 i 32431 <hr /> Err codemadness.org 70 i 32432 News Roundup Err codemadness.org 70 i 32433 <a href="https://eerielinux.wordpress.com/2018/11/30/one-year-of-flying-with-the-raven-ready-for-the-desktop/">One year of flying with the Raven: Ready for the Desktop?</a> Err codemadness.org 70 i 32434 <blockquote>It has been a little over one year now that I’m with the Ravenports project. Time to reflect my involvement, my expectations and hopes.</blockquote> Err codemadness.org 70 i 32435 <ul> Err codemadness.org 70 i 32436 <li>Ravenports</li> Err codemadness.org 70 i 32437 </ul> Err codemadness.org 70 i 32438 <blockquote>Ravenports is a universal packaging framework for *nix operating systems. For the user it provides easy access to binary packages of common software for multiple platforms. It has been the long-lasting champion on Repology’s top 10 repositories regarding package freshness (rarely dropping below 96 percent while all other projects keep below 90!).</blockquote> Err codemadness.org 70 i 32439 <blockquote>For the porter it offers a well-designed and elegant means of writing cross-platform buildsheets that allow building the same version of the software with (completely or mostly) the same compile-time configuration on different operating systems or distributions.</blockquote> Err codemadness.org 70 i 32440 <blockquote>And for the developer it means a real-world project that’s written in modern Ada (ravenadm) and C (pkg) – as well as some Perl for support scripts and make. Things feel very optimized and fast. Not being a programmer though, I cannot really say anything about the actual code and thus leave it to the interested reader’s judgement.</blockquote> Err codemadness.org 70 i 32441 Err codemadness.org 70 i 32442 <hr /> Err codemadness.org 70 i 32443 <a href="https://euroquis.nl/bobulate/?p=2040">Modern KDE on FreeBSD</a> Err codemadness.org 70 i 32444 <blockquote>New stuff in the official FreeBSD repositories! The X11 team has landed a newer version of libinput, opening up the way for KDE Plasma 5.14 in ports. That’s a pretty big update and it may frighten people with a new wallpaper. Err codemadness.org 70 i 32445 What this means is that the graphical stack is once again on-par with what Plasma upstream expects, and we can get back to chasing releases as soon as they happen, rather than gnashing our teeth at missing dependencies. The KDE-FreeBSD CI servers are in the process of being upgraded to 12-STABLE, and we’re integrating with the new experimental CI systems as well. This means we are chasing sensibly-modern systems (13-CURRENT is out of scope).</blockquote> Err codemadness.org 70 i 32446 Err codemadness.org 70 i 32447 <hr /> Err codemadness.org 70 i 32448 <a href="http://www.daemonology.net/blog/2018-12-26-the-many-ways-to-launch-FreeBSD-in-EC2.html">The many ways to launch FreeBSD in EC2</a> Err codemadness.org 70 i 32449 <blockquote>Talking to FreeBSD users recently, I became aware that while I’ve created a lot of tools, I haven’t done a very good job of explaining how, and more importantly when to use them. So for all of the EC2-curious FreeBSD users out there: Here are the many ways to launch and configure FreeBSD in EC2 — ranging from the simplest to the most complicated (but most powerful):</blockquote> Err codemadness.org 70 i 32450 <ul> Err codemadness.org 70 i 32451 <li>Launch FreeBSD and SSH in</li> Err codemadness.org 70 i 32452 <li>Launch FreeBSD and provide user-data</li> Err codemadness.org 70 i 32453 <li>Use the AMI Builder to create a customized FreeBSD AMI</li> Err codemadness.org 70 i 32454 <li>Build a FreeBSD AMI from a modified FreeBSD source tree</li> Err codemadness.org 70 i 32455 <li>Build your own disk image</li> Err codemadness.org 70 i 32456 </ul> Err codemadness.org 70 i 32457 <blockquote>I hope I’ve provided tools which help you to run FreeBSD in EC2, no matter how common or unusual your needs are. If you find my work useful, please consider supporting my work in this area; while this is both something I enjoy working on and something which is useful for my day job (Tarsnap, my online backup service), having support would make it easier for me to prioritize FreeBSD/EC2 issues over other projects.</blockquote> Err codemadness.org 70 i 32458 Err codemadness.org 70 i 32459 <hr /> Err codemadness.org 70 i 32460 <a href="https://dressupgeekout.blogspot.com/2018/12/using-gogcom-installers-for-linux-on.html">Using the GOG.com installers for Linux, on NetBSD</a> Err codemadness.org 70 i 32461 <blockquote><a href="http://GOG.com">GOG.com</a> prefers that you use their GOG Galaxy desktop app to download, install and manage all of your GOG games. But customers always have the option to install the game on their own terms, with a platform-specific installer. Err codemadness.org 70 i 32462 GOG offers these installers for Mac, Windows and/or Linux, depending on which platforms the game is available for.</blockquote> Err codemadness.org 70 i 32463 <ul> Err codemadness.org 70 i 32464 <li>The installers truly are platform-specific:</li> Err codemadness.org 70 i 32465 <li>macOS games are distributed in a standard .pkg</li> Err codemadness.org 70 i 32466 <li>Windows games are distributed in a setup wizard .exe</li> Err codemadness.org 70 i 32467 <li>Linux games are distributed in a goofy shell archive</li> Err codemadness.org 70 i 32468 </ul> Err codemadness.org 70 i 32469 <blockquote>Of course, none of those are NetBSD. So, if I wanted to even attempt to play a game distributed by <a href="http://GOG.com">GOG.com</a> on NetBSD, which one should I pick? The obvious choice is the Linux installer, since Linux is the most similar to NetBSD, right? Au contraire! In practice, I found that it is easier to download the Windows installer.</blockquote> Err codemadness.org 70 i 32470 <blockquote>Here’s what I mean. For example, I ported the open source version of Aquaria to pkgsrc, but that package is only the game’s engine, not the multimedia data. The multimedia data is still copyrighted. Therefore, you need to get it from somewhere else. GOG is usually a good choice, because they distribute their games without DRM. And as mentioned earlier, picking the Linux installer seemed like a natural choice.</blockquote> Err codemadness.org 70 i 32471 <blockquote>Now, actually PLAYING the games on NetBSD is a separate matter entirely. The game I’ve got here, though, my current obsession Pyre, is built with MonoGame and therefore could theoretically work on NetBSD, too, with the help of a library called FNA and a script for OpenBSD called fnaify. I do hope to create a pkgsrc package for FNA and port the fnaify script to NetBSD at some point.</blockquote> Err codemadness.org 70 i 32472 Err codemadness.org 70 i 32473 <hr /> Err codemadness.org 70 i 32474 Beastie Bits Err codemadness.org 70 i 32475 <ul> Err codemadness.org 70 i 32476 <li><a href="https://corecursive.com/024-software-as-a-reflection-of-values-with-bryan-cantrill/">Software as a Reflection of Values With Bryan Cantrill</a></li> Err codemadness.org 70 i 32477 <li><a href="http://dtrace.org/blogs/bmc/2018/02/03/talks/">Collection of bmc talks, updated 2018</a></li> Err codemadness.org 70 i 32478 <li><a href="https://marc.info/?l=openbsd-bugs&amp;m=154529364730319&amp;w=2">wump: incorrect wumpus movement probability</a></li> Err codemadness.org 70 i 32479 <li><a href="https://venshare.com/debugging-rust-with-vscode-on-freebsd/">Debugging Rust with VSCode on FreeBSD</a></li> Err codemadness.org 70 i 32480 <li><a href="https://vermaden.wordpress.com/2018/12/27/smb-cifs-on-freebsd/">SMB/CIFS on FreeBSD</a></li> Err codemadness.org 70 i 32481 <li><a href="https://old.reddit.com/r/freebsd/comments/aaihdk/bsd_tattoo/">BSD Tattoo</a></li> Err codemadness.org 70 i 32482 <li><a href="https://mail-index.netbsd.org/pkgsrc-users/2018/12/30/msg027871.html">pkgsrc-2018Q4 branch announcement</a></li> Err codemadness.org 70 i 32483 <li><a href="https://https.www.google.com.tedunangst.com/flak/post/toying-with-wireguard-on-openbsd">toying with wireguard on openbsd</a></li> Err codemadness.org 70 i 32484 <li><a href="https://marc.info/?l=openbsd-tech&amp;m=154627230907954&amp;w=2">new USB audio class v2.0 driver</a></li> Err codemadness.org 70 i 32485 <li><a href="https://www.youtube.com/watch?v=ZvSSHtRv5Mg">Todd Mortimer Removing ROP Gadgets from OpenBSD EuroBSDCon 2018</a></li> Err codemadness.org 70 i 32486 <li><a href="https://www.openbsd.org/65.html">OpenBSD 6.5 release page is online</a></li> Err codemadness.org 70 i 32487 <li><a href="https://twitter.com/jschauma/status/1071069217968013313?s=03">shell access to historical Unix versions in your browser</a></li> Err codemadness.org 70 i 32488 </ul> Err codemadness.org 70 i 32489 Err codemadness.org 70 i 32490 <hr /> Err codemadness.org 70 i 32491 Feedback/Questions Err codemadness.org 70 i 32492 <ul> Err codemadness.org 70 i 32493 <li>Brad - <a href="http://dpaste.com/2CVAF1E#wrap">ZFS Features and Upgrades</a></li> Err codemadness.org 70 i 32494 <li>Andre - <a href="http://dpaste.com/1XXFPHN#wrap">Splitting ZFS array</a></li> Err codemadness.org 70 i 32495 <li>Michael - <a href="http://dpaste.com/2S8GFD0#wrap">Priority/nice value for Jails?</a></li> Err codemadness.org 70 i 32496 </ul> Err codemadness.org 70 i 32497 Err codemadness.org 70 i 32498 <hr /> Err codemadness.org 70 i 32499 <ul> Err codemadness.org 70 i 32500 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 32501 </ul> Err codemadness.org 70 i 32502 Err codemadness.org 70 i 32503 <hr /> Err codemadness.org 70 i 32504 Err codemadness.org 70 i 32505 Bryan Cantrill,BSD,DragonflyBSD,EC2,freebsd,GOG,guide,hardenedbsd,howto,Interview,kde,NetBSD,OpenBSD,raven,ravenports,ROP Gadgets,Trident,trueos,tutorial Err codemadness.org 70 i 32506 Err codemadness.org 70 i 32507 The future of ZFS in FreeBSD, we pick highlights from the FreeBSD quarterly status report, flying with the raven, modern KDE on FreeBSD, many ways to launch FreeBSD in EC2, GOG installers on NetBSD, and more.

Err codemadness.org 70 i 32508 Err codemadness.org 70 i 32509

Headlines

Err codemadness.org 70 i 32510 Err codemadness.org 70 i 32511

The future of ZFS in FreeBSD

Err codemadness.org 70 i 32512 Err codemadness.org 70 i 32513
The sources for FreeBSD’s ZFS support are currently taken directly from Illumos with local ifdefs to support the peculiarities of FreeBSD where the Solaris Portability Layer (SPL) shims fall short. FreeBSD has regularly pulled changes from Illumos and tried to push back any bug fixes and new features done in the context of FreeBSD. In the past few years the vast majority of new development in ZFS has taken place in DelphixOS and zfsonlinux (ZoL). Earlier this year Delphix announced that they will be moving to ZoL: https://www.delphix.com/blog/kickoff-future-eko-2018 This shift means that there will be little to no net new development of Illumos. While working through the git history of ZoL I have also discovered that many races and locking bugs have been fixed in ZoL and never made it back to Illumos and thus FreeBSD. This state of affairs has led to a general agreement among the stakeholders that I have spoken to that it makes sense to rebase FreeBSD’s ZFS on ZoL. Brian Behlendorf has graciously encouraged me to add FreeBSD support directly to ZoL https://github.com/zfsonfreebsd/ZoF so that we might all have a single shared code base. Err codemadness.org 70 i 32514 A port for ZoF can be found at https://github.com/miwi-fbsd/zof-port Before it can be committed some additional functionality needs to be added to the FreeBSD opencrypto framework. These can be found at https://reviews.freebsd.org/D18520 Err codemadness.org 70 i 32515 This port will provide FreeBSD users with multi modifier protection, project quotas, encrypted datasets, allocation classes, vectorized raidz, vectorized checksums, and various command line improvements.
Err codemadness.org 70 i 32516 Err codemadness.org 70 i 32517


Err codemadness.org 70 i 32518 Err codemadness.org 70 i 32519

FreeBSD Quarterly Status Update

Err codemadness.org 70 i 32520 Err codemadness.org 70 i 32521
With FreeBSD having gone all the way to 12, it is perhaps useful to take a look back at all the things that have been accomplished, in terms of many visible changes, as well as all the things that happen behind the scenes to ensure that FreeBSD continues to offer an alternative in both design, implementation, and execution. Err codemadness.org 70 i 32522 The things you can look forward to reading about are too numerous to summarize, but cover just about everything from finalizing releases, administrative work, optimizations and depessimizations, features added and fixed, and many areas of improvement that might just surprise you a little. Err codemadness.org 70 i 32523 Please have a cup of coffee, tea, hot cocoa, or other beverage of choice, and enjoy this culmulative set of reports covering everything that’s been done since October, 2017. Err codemadness.org 70 i 32524 —Daniel Ebdrup
Err codemadness.org 70 i 32525 Err codemadness.org 70 i 32526


Err codemadness.org 70 i 32527 Err codemadness.org 70 i 32528

News Roundup

Err codemadness.org 70 i 32529 Err codemadness.org 70 i 32530

One year of flying with the Raven: Ready for the Desktop?

Err codemadness.org 70 i 32531 Err codemadness.org 70 i 32532
It has been a little over one year now that I’m with the Ravenports project. Time to reflect my involvement, my expectations and hopes.
Err codemadness.org 70 i 32533 Err codemadness.org 70 i 32534
    Err codemadness.org 70 i 32535
  • Ravenports
  • Err codemadness.org 70 i 32536
Err codemadness.org 70 i 32537 Err codemadness.org 70 i 32538
Ravenports is a universal packaging framework for *nix operating systems. For the user it provides easy access to binary packages of common software for multiple platforms. It has been the long-lasting champion on Repology’s top 10 repositories regarding package freshness (rarely dropping below 96 percent while all other projects keep below 90!).
Err codemadness.org 70 i 32539 Err codemadness.org 70 i 32540
For the porter it offers a well-designed and elegant means of writing cross-platform buildsheets that allow building the same version of the software with (completely or mostly) the same compile-time configuration on different operating systems or distributions.
Err codemadness.org 70 i 32541 Err codemadness.org 70 i 32542
And for the developer it means a real-world project that’s written in modern Ada (ravenadm) and C (pkg) – as well as some Perl for support scripts and make. Things feel very optimized and fast. Not being a programmer though, I cannot really say anything about the actual code and thus leave it to the interested reader’s judgement.
Err codemadness.org 70 i 32543 Err codemadness.org 70 i 32544


Err codemadness.org 70 i 32545 Err codemadness.org 70 i 32546

Modern KDE on FreeBSD

Err codemadness.org 70 i 32547 Err codemadness.org 70 i 32548
New stuff in the official FreeBSD repositories! The X11 team has landed a newer version of libinput, opening up the way for KDE Plasma 5.14 in ports. That’s a pretty big update and it may frighten people with a new wallpaper. Err codemadness.org 70 i 32549 What this means is that the graphical stack is once again on-par with what Plasma upstream expects, and we can get back to chasing releases as soon as they happen, rather than gnashing our teeth at missing dependencies. The KDE-FreeBSD CI servers are in the process of being upgraded to 12-STABLE, and we’re integrating with the new experimental CI systems as well. This means we are chasing sensibly-modern systems (13-CURRENT is out of scope).
Err codemadness.org 70 i 32550 Err codemadness.org 70 i 32551


Err codemadness.org 70 i 32552 Err codemadness.org 70 i 32553

The many ways to launch FreeBSD in EC2

Err codemadness.org 70 i 32554 Err codemadness.org 70 i 32555
Talking to FreeBSD users recently, I became aware that while I’ve created a lot of tools, I haven’t done a very good job of explaining how, and more importantly when to use them. So for all of the EC2-curious FreeBSD users out there: Here are the many ways to launch and configure FreeBSD in EC2 — ranging from the simplest to the most complicated (but most powerful):
Err codemadness.org 70 i 32556 Err codemadness.org 70 i 32557
    Err codemadness.org 70 i 32558
  • Launch FreeBSD and SSH in
  • Err codemadness.org 70 i 32559
  • Launch FreeBSD and provide user-data
  • Err codemadness.org 70 i 32560
  • Use the AMI Builder to create a customized FreeBSD AMI
  • Err codemadness.org 70 i 32561
  • Build a FreeBSD AMI from a modified FreeBSD source tree
  • Err codemadness.org 70 i 32562
  • Build your own disk image
  • Err codemadness.org 70 i 32563
Err codemadness.org 70 i 32564 Err codemadness.org 70 i 32565
I hope I’ve provided tools which help you to run FreeBSD in EC2, no matter how common or unusual your needs are. If you find my work useful, please consider supporting my work in this area; while this is both something I enjoy working on and something which is useful for my day job (Tarsnap, my online backup service), having support would make it easier for me to prioritize FreeBSD/EC2 issues over other projects.
Err codemadness.org 70 i 32566 Err codemadness.org 70 i 32567


Err codemadness.org 70 i 32568 Err codemadness.org 70 i 32569

Using the GOG.com installers for Linux, on NetBSD

Err codemadness.org 70 i 32570 Err codemadness.org 70 i 32571
GOG.com prefers that you use their GOG Galaxy desktop app to download, install and manage all of your GOG games. But customers always have the option to install the game on their own terms, with a platform-specific installer. Err codemadness.org 70 i 32572 GOG offers these installers for Mac, Windows and/or Linux, depending on which platforms the game is available for.
Err codemadness.org 70 i 32573 Err codemadness.org 70 i 32574
    Err codemadness.org 70 i 32575
  • The installers truly are platform-specific:
  • Err codemadness.org 70 i 32576
  • macOS games are distributed in a standard .pkg
  • Err codemadness.org 70 i 32577
  • Windows games are distributed in a setup wizard .exe
  • Err codemadness.org 70 i 32578
  • Linux games are distributed in a goofy shell archive
  • Err codemadness.org 70 i 32579
Err codemadness.org 70 i 32580 Err codemadness.org 70 i 32581
Of course, none of those are NetBSD. So, if I wanted to even attempt to play a game distributed by GOG.com on NetBSD, which one should I pick? The obvious choice is the Linux installer, since Linux is the most similar to NetBSD, right? Au contraire! In practice, I found that it is easier to download the Windows installer.
Err codemadness.org 70 i 32582 Err codemadness.org 70 i 32583
Here’s what I mean. For example, I ported the open source version of Aquaria to pkgsrc, but that package is only the game’s engine, not the multimedia data. The multimedia data is still copyrighted. Therefore, you need to get it from somewhere else. GOG is usually a good choice, because they distribute their games without DRM. And as mentioned earlier, picking the Linux installer seemed like a natural choice.
Err codemadness.org 70 i 32584 Err codemadness.org 70 i 32585
Now, actually PLAYING the games on NetBSD is a separate matter entirely. The game I’ve got here, though, my current obsession Pyre, is built with MonoGame and therefore could theoretically work on NetBSD, too, with the help of a library called FNA and a script for OpenBSD called fnaify. I do hope to create a pkgsrc package for FNA and port the fnaify script to NetBSD at some point.
Err codemadness.org 70 i 32586 Err codemadness.org 70 i 32587


Err codemadness.org 70 i 32588 Err codemadness.org 70 i 32589

Beastie Bits

Err codemadness.org 70 i 32590 Err codemadness.org 70 i 32591 Err codemadness.org 70 i 32605 Err codemadness.org 70 i 32606


Err codemadness.org 70 i 32607 Err codemadness.org 70 i 32608

Feedback/Questions

Err codemadness.org 70 i 32609 Err codemadness.org 70 i 32610 Err codemadness.org 70 i 32615 Err codemadness.org 70 i 32616


Err codemadness.org 70 i 32617 Err codemadness.org 70 i 32618
    Err codemadness.org 70 i 32619
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 32620
Err codemadness.org 70 i 32621 Err codemadness.org 70 i 32622


]]> Err codemadness.org 70 i 32623
Err codemadness.org 70 i 32624 Err codemadness.org 70 i 32625 The future of ZFS in FreeBSD, we pick highlights from the FreeBSD quarterly status report, flying with the raven, modern KDE on FreeBSD, many ways to launch FreeBSD in EC2, GOG installers on NetBSD, and more.

Err codemadness.org 70 i 32626 Err codemadness.org 70 i 32627

Headlines

Err codemadness.org 70 i 32628 Err codemadness.org 70 i 32629

The future of ZFS in FreeBSD

Err codemadness.org 70 i 32630 Err codemadness.org 70 i 32631
The sources for FreeBSD’s ZFS support are currently taken directly from Illumos with local ifdefs to support the peculiarities of FreeBSD where the Solaris Portability Layer (SPL) shims fall short. FreeBSD has regularly pulled changes from Illumos and tried to push back any bug fixes and new features done in the context of FreeBSD. In the past few years the vast majority of new development in ZFS has taken place in DelphixOS and zfsonlinux (ZoL). Earlier this year Delphix announced that they will be moving to ZoL: https://www.delphix.com/blog/kickoff-future-eko-2018 This shift means that there will be little to no net new development of Illumos. While working through the git history of ZoL I have also discovered that many races and locking bugs have been fixed in ZoL and never made it back to Illumos and thus FreeBSD. This state of affairs has led to a general agreement among the stakeholders that I have spoken to that it makes sense to rebase FreeBSD’s ZFS on ZoL. Brian Behlendorf has graciously encouraged me to add FreeBSD support directly to ZoL https://github.com/zfsonfreebsd/ZoF so that we might all have a single shared code base. Err codemadness.org 70 i 32632 A port for ZoF can be found at https://github.com/miwi-fbsd/zof-port Before it can be committed some additional functionality needs to be added to the FreeBSD opencrypto framework. These can be found at https://reviews.freebsd.org/D18520 Err codemadness.org 70 i 32633 This port will provide FreeBSD users with multi modifier protection, project quotas, encrypted datasets, allocation classes, vectorized raidz, vectorized checksums, and various command line improvements.
Err codemadness.org 70 i 32634 Err codemadness.org 70 i 32635


Err codemadness.org 70 i 32636 Err codemadness.org 70 i 32637

FreeBSD Quarterly Status Update

Err codemadness.org 70 i 32638 Err codemadness.org 70 i 32639
With FreeBSD having gone all the way to 12, it is perhaps useful to take a look back at all the things that have been accomplished, in terms of many visible changes, as well as all the things that happen behind the scenes to ensure that FreeBSD continues to offer an alternative in both design, implementation, and execution. Err codemadness.org 70 i 32640 The things you can look forward to reading about are too numerous to summarize, but cover just about everything from finalizing releases, administrative work, optimizations and depessimizations, features added and fixed, and many areas of improvement that might just surprise you a little. Err codemadness.org 70 i 32641 Please have a cup of coffee, tea, hot cocoa, or other beverage of choice, and enjoy this culmulative set of reports covering everything that’s been done since October, 2017. Err codemadness.org 70 i 32642 —Daniel Ebdrup
Err codemadness.org 70 i 32643 Err codemadness.org 70 i 32644


Err codemadness.org 70 i 32645 Err codemadness.org 70 i 32646

News Roundup

Err codemadness.org 70 i 32647 Err codemadness.org 70 i 32648

One year of flying with the Raven: Ready for the Desktop?

Err codemadness.org 70 i 32649 Err codemadness.org 70 i 32650
It has been a little over one year now that I’m with the Ravenports project. Time to reflect my involvement, my expectations and hopes.
Err codemadness.org 70 i 32651 Err codemadness.org 70 i 32652
    Err codemadness.org 70 i 32653
  • Ravenports
  • Err codemadness.org 70 i 32654
Err codemadness.org 70 i 32655 Err codemadness.org 70 i 32656
Ravenports is a universal packaging framework for *nix operating systems. For the user it provides easy access to binary packages of common software for multiple platforms. It has been the long-lasting champion on Repology’s top 10 repositories regarding package freshness (rarely dropping below 96 percent while all other projects keep below 90!).
Err codemadness.org 70 i 32657 Err codemadness.org 70 i 32658
For the porter it offers a well-designed and elegant means of writing cross-platform buildsheets that allow building the same version of the software with (completely or mostly) the same compile-time configuration on different operating systems or distributions.
Err codemadness.org 70 i 32659 Err codemadness.org 70 i 32660
And for the developer it means a real-world project that’s written in modern Ada (ravenadm) and C (pkg) – as well as some Perl for support scripts and make. Things feel very optimized and fast. Not being a programmer though, I cannot really say anything about the actual code and thus leave it to the interested reader’s judgement.
Err codemadness.org 70 i 32661 Err codemadness.org 70 i 32662


Err codemadness.org 70 i 32663 Err codemadness.org 70 i 32664

Modern KDE on FreeBSD

Err codemadness.org 70 i 32665 Err codemadness.org 70 i 32666
New stuff in the official FreeBSD repositories! The X11 team has landed a newer version of libinput, opening up the way for KDE Plasma 5.14 in ports. That’s a pretty big update and it may frighten people with a new wallpaper. Err codemadness.org 70 i 32667 What this means is that the graphical stack is once again on-par with what Plasma upstream expects, and we can get back to chasing releases as soon as they happen, rather than gnashing our teeth at missing dependencies. The KDE-FreeBSD CI servers are in the process of being upgraded to 12-STABLE, and we’re integrating with the new experimental CI systems as well. This means we are chasing sensibly-modern systems (13-CURRENT is out of scope).
Err codemadness.org 70 i 32668 Err codemadness.org 70 i 32669


Err codemadness.org 70 i 32670 Err codemadness.org 70 i 32671

The many ways to launch FreeBSD in EC2

Err codemadness.org 70 i 32672 Err codemadness.org 70 i 32673
Talking to FreeBSD users recently, I became aware that while I’ve created a lot of tools, I haven’t done a very good job of explaining how, and more importantly when to use them. So for all of the EC2-curious FreeBSD users out there: Here are the many ways to launch and configure FreeBSD in EC2 — ranging from the simplest to the most complicated (but most powerful):
Err codemadness.org 70 i 32674 Err codemadness.org 70 i 32675
    Err codemadness.org 70 i 32676
  • Launch FreeBSD and SSH in
  • Err codemadness.org 70 i 32677
  • Launch FreeBSD and provide user-data
  • Err codemadness.org 70 i 32678
  • Use the AMI Builder to create a customized FreeBSD AMI
  • Err codemadness.org 70 i 32679
  • Build a FreeBSD AMI from a modified FreeBSD source tree
  • Err codemadness.org 70 i 32680
  • Build your own disk image
  • Err codemadness.org 70 i 32681
Err codemadness.org 70 i 32682 Err codemadness.org 70 i 32683
I hope I’ve provided tools which help you to run FreeBSD in EC2, no matter how common or unusual your needs are. If you find my work useful, please consider supporting my work in this area; while this is both something I enjoy working on and something which is useful for my day job (Tarsnap, my online backup service), having support would make it easier for me to prioritize FreeBSD/EC2 issues over other projects.
Err codemadness.org 70 i 32684 Err codemadness.org 70 i 32685


Err codemadness.org 70 i 32686 Err codemadness.org 70 i 32687

Using the GOG.com installers for Linux, on NetBSD

Err codemadness.org 70 i 32688 Err codemadness.org 70 i 32689
GOG.com prefers that you use their GOG Galaxy desktop app to download, install and manage all of your GOG games. But customers always have the option to install the game on their own terms, with a platform-specific installer. Err codemadness.org 70 i 32690 GOG offers these installers for Mac, Windows and/or Linux, depending on which platforms the game is available for.
Err codemadness.org 70 i 32691 Err codemadness.org 70 i 32692
    Err codemadness.org 70 i 32693
  • The installers truly are platform-specific:
  • Err codemadness.org 70 i 32694
  • macOS games are distributed in a standard .pkg
  • Err codemadness.org 70 i 32695
  • Windows games are distributed in a setup wizard .exe
  • Err codemadness.org 70 i 32696
  • Linux games are distributed in a goofy shell archive
  • Err codemadness.org 70 i 32697
Err codemadness.org 70 i 32698 Err codemadness.org 70 i 32699
Of course, none of those are NetBSD. So, if I wanted to even attempt to play a game distributed by GOG.com on NetBSD, which one should I pick? The obvious choice is the Linux installer, since Linux is the most similar to NetBSD, right? Au contraire! In practice, I found that it is easier to download the Windows installer.
Err codemadness.org 70 i 32700 Err codemadness.org 70 i 32701
Here’s what I mean. For example, I ported the open source version of Aquaria to pkgsrc, but that package is only the game’s engine, not the multimedia data. The multimedia data is still copyrighted. Therefore, you need to get it from somewhere else. GOG is usually a good choice, because they distribute their games without DRM. And as mentioned earlier, picking the Linux installer seemed like a natural choice.
Err codemadness.org 70 i 32702 Err codemadness.org 70 i 32703
Now, actually PLAYING the games on NetBSD is a separate matter entirely. The game I’ve got here, though, my current obsession Pyre, is built with MonoGame and therefore could theoretically work on NetBSD, too, with the help of a library called FNA and a script for OpenBSD called fnaify. I do hope to create a pkgsrc package for FNA and port the fnaify script to NetBSD at some point.
Err codemadness.org 70 i 32704 Err codemadness.org 70 i 32705


Err codemadness.org 70 i 32706 Err codemadness.org 70 i 32707

Beastie Bits

Err codemadness.org 70 i 32708 Err codemadness.org 70 i 32709 Err codemadness.org 70 i 32723 Err codemadness.org 70 i 32724


Err codemadness.org 70 i 32725 Err codemadness.org 70 i 32726

Feedback/Questions

Err codemadness.org 70 i 32727 Err codemadness.org 70 i 32728 Err codemadness.org 70 i 32733 Err codemadness.org 70 i 32734


Err codemadness.org 70 i 32735 Err codemadness.org 70 i 32736
    Err codemadness.org 70 i 32737
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 32738
Err codemadness.org 70 i 32739 Err codemadness.org 70 i 32740


]]> Err codemadness.org 70 i 32741
Err codemadness.org 70 i 32742 https://fireside.fm/player/v2/FYhhasNR+_eIACcz6 Err codemadness.org 70 i 32743 Err codemadness.org 70 i 32744 ]]> Err codemadness.org 70 i 32745 Err codemadness.org 70 i 32746
Err codemadness.org 70 i 32747 Err codemadness.org 70 i 32748 Episode 278: The Real McCoy | BSD Now 278 Err codemadness.org 70 i 32749 https://www.bsdnow.tv/278 Err codemadness.org 70 i 32750 http://feed.jupiter.zone/bsdnow#entry-3070 Err codemadness.org 70 i 32751 Thu, 27 Dec 2018 01:00:00 -0800 Err codemadness.org 70 i 32752 Allan Jude Err codemadness.org 70 i 32753 Err codemadness.org 70 i 32754 full Err codemadness.org 70 i 32755 Allan Jude Err codemadness.org 70 i 32756 We sat down at BSDCan 2018 to interview Kirk McKusick about various topics ranging about the early years of Berkeley Unix, his continuing work on UFS, the governance of FreeBSD, and more. Err codemadness.org 70 i 32757 49:39 Err codemadness.org 70 i 32758 no Err codemadness.org 70 i 32759 Err codemadness.org 70 i 32760 We sat down at BSDCan 2018 to interview Kirk McKusick about various topics ranging about the early years of Berkeley Unix, his continuing work on UFS, the governance of FreeBSD, and more. Err codemadness.org 70 i 32761 <p>##Interview - Kirk McKusick - <a href="mailto:mckusick@mckusick.com">mckusick@mckusick.com</a><br> Err codemadness.org 70 i 32762 25 years of FreeBSD</p> Err codemadness.org 70 i 32763 <ul> Err codemadness.org 70 i 32764 <li>How Kirk got started in BSD, at the very beginning</li> Err codemadness.org 70 i 32765 <li>Predicting the Future</li> Err codemadness.org 70 i 32766 <li>How the code and community grew</li> Err codemadness.org 70 i 32767 <li>The leadership of the project, and how it changed over time</li> Err codemadness.org 70 i 32768 <li>UFS over the years (reading disks from 1982 in 2018)</li> Err codemadness.org 70 i 32769 <li>Conferences</li> Err codemadness.org 70 i 32770 <li>The rise and fall of Linux</li> Err codemadness.org 70 i 32771 <li>The resurgence of FreeBSD</li> Err codemadness.org 70 i 32772 </ul> Err codemadness.org 70 i 32773 <hr> Err codemadness.org 70 i 32774 <p>We want to extend a big thank you to the entire BSD community for making this show possible, and to all of our viewers for watching and providing the feedback that makes this show successful. We wish you all a happy and prosperous new year, and we’ll see you next week.</p> Err codemadness.org 70 i 32775 <ul> Err codemadness.org 70 i 32776 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 32777 </ul> Err codemadness.org 70 i 32778 <hr> Err codemadness.org 70 i 32779 Err codemadness.org 70 i 32780 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 32781 Err codemadness.org 70 i 32782 We sat down at BSDCan 2018 to interview Kirk McKusick about various topics ranging about the early years of Berkeley Unix, his continuing work on UFS, the governance of FreeBSD, and more.

Err codemadness.org 70 i 32783 Err codemadness.org 70 i 32784

##Interview - Kirk McKusick - mckusick@mckusick.com
Err codemadness.org 70 i 32785 25 years of FreeBSD

Err codemadness.org 70 i 32786 Err codemadness.org 70 i 32787
    Err codemadness.org 70 i 32788
  • How Kirk got started in BSD, at the very beginning
  • Err codemadness.org 70 i 32789
  • Predicting the Future
  • Err codemadness.org 70 i 32790
  • How the code and community grew
  • Err codemadness.org 70 i 32791
  • The leadership of the project, and how it changed over time
  • Err codemadness.org 70 i 32792
  • UFS over the years (reading disks from 1982 in 2018)
  • Err codemadness.org 70 i 32793
  • Conferences
  • Err codemadness.org 70 i 32794
  • The rise and fall of Linux
  • Err codemadness.org 70 i 32795
  • The resurgence of FreeBSD
  • Err codemadness.org 70 i 32796
Err codemadness.org 70 i 32797 Err codemadness.org 70 i 32798


Err codemadness.org 70 i 32799 Err codemadness.org 70 i 32800

We want to extend a big thank you to the entire BSD community for making this show possible, and to all of our viewers for watching and providing the feedback that makes this show successful. We wish you all a happy and prosperous new year, and we’ll see you next week.

Err codemadness.org 70 i 32801 Err codemadness.org 70 i 32802
    Err codemadness.org 70 i 32803
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 32804
Err codemadness.org 70 i 32805 Err codemadness.org 70 i 32806


]]> Err codemadness.org 70 i 32807
Err codemadness.org 70 i 32808 Err codemadness.org 70 i 32809 We sat down at BSDCan 2018 to interview Kirk McKusick about various topics ranging about the early years of Berkeley Unix, his continuing work on UFS, the governance of FreeBSD, and more.

Err codemadness.org 70 i 32810 Err codemadness.org 70 i 32811

##Interview - Kirk McKusick - mckusick@mckusick.com
Err codemadness.org 70 i 32812 25 years of FreeBSD

Err codemadness.org 70 i 32813 Err codemadness.org 70 i 32814
    Err codemadness.org 70 i 32815
  • How Kirk got started in BSD, at the very beginning
  • Err codemadness.org 70 i 32816
  • Predicting the Future
  • Err codemadness.org 70 i 32817
  • How the code and community grew
  • Err codemadness.org 70 i 32818
  • The leadership of the project, and how it changed over time
  • Err codemadness.org 70 i 32819
  • UFS over the years (reading disks from 1982 in 2018)
  • Err codemadness.org 70 i 32820
  • Conferences
  • Err codemadness.org 70 i 32821
  • The rise and fall of Linux
  • Err codemadness.org 70 i 32822
  • The resurgence of FreeBSD
  • Err codemadness.org 70 i 32823
Err codemadness.org 70 i 32824 Err codemadness.org 70 i 32825


Err codemadness.org 70 i 32826 Err codemadness.org 70 i 32827

We want to extend a big thank you to the entire BSD community for making this show possible, and to all of our viewers for watching and providing the feedback that makes this show successful. We wish you all a happy and prosperous new year, and we’ll see you next week.

Err codemadness.org 70 i 32828 Err codemadness.org 70 i 32829
    Err codemadness.org 70 i 32830
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 32831
Err codemadness.org 70 i 32832 Err codemadness.org 70 i 32833


]]> Err codemadness.org 70 i 32834
Err codemadness.org 70 i 32835 https://fireside.fm/player/v2/FYhhasNR+XnTpyPyj Err codemadness.org 70 i 32836 Err codemadness.org 70 i 32837 ]]> Err codemadness.org 70 i 32838 Err codemadness.org 70 i 32839
Err codemadness.org 70 i 32840 Err codemadness.org 70 i 32841 Episode 277: Nmap Level Up | BSD Now 277 Err codemadness.org 70 i 32842 https://www.bsdnow.tv/277 Err codemadness.org 70 i 32843 http://feed.jupiter.zone/bsdnow#entry-3058 Err codemadness.org 70 i 32844 Mon, 24 Dec 2018 08:00:00 -0800 Err codemadness.org 70 i 32845 Allan Jude Err codemadness.org 70 i 32846 Err codemadness.org 70 i 32847 full Err codemadness.org 70 i 32848 Allan Jude Err codemadness.org 70 i 32849 The Open Source midlife crisis, Donald Knuth The Yoda of Silicon Valley, Certbot For OpenBSD's httpd, how to upgrade FreeBSD from 11 to 12, level up your nmap game, NetBSD desktop, and more. Err codemadness.org 70 i 32850 1:16:25 Err codemadness.org 70 i 32851 no Err codemadness.org 70 i 32852 Err codemadness.org 70 i 32853 The Open Source midlife crisis, Donald Knuth The Yoda of Silicon Valley, Certbot For OpenBSD's httpd, how to upgrade FreeBSD from 11 to 12, level up your nmap game, NetBSD desktop, and more. Err codemadness.org 70 i 32854 <p>##Headlines<br> Err codemadness.org 70 i 32855 <a href="http://dtrace.org/blogs/bmc/2018/12/14/open-source-confronts-its-midlife-crisis/">Open Source Confronts its midlife crisis</a></p> Err codemadness.org 70 i 32856 <blockquote> Err codemadness.org 70 i 32857 <p>Midlife is tough: the idealism of youth has faded, as has inevitably some of its fitness and vigor. At the same time, the responsibilities of adulthood have grown. Making things more challenging, while you are navigating the turbulence of teenagers, your own parents are likely entering life’s twilight, needing help in new ways from their adult children. By midlife, in addition to the singular joys of life, you have also likely experienced its terrible sorrows: death, heartbreak, betrayal. Taken together, the fading of youth, the growth in responsibility and the endurance of misfortune can lead to cynicism or (worse) drastic and poorly thought-out choices. Add in a little fear of mortality and some existential dread, and you have the stuff of which midlife crises are made…<br> Err codemadness.org 70 i 32858 I raise this not because of my own adventures at midlife, but because it is clear to me that open source — now several decades old and fully adult — is going through its own midlife crisis. This has long been in the making: for years, I (and others) have been critical of service providers’ parasitic relationship with open source, as cloud service providers turn open source software into a service offering without giving back to the communities upon which they implicitly depend. At the same time, open source has been (rightfully) entirely unsympathetic to the proprietary software models that have been burned to the ground — but also seemingly oblivious as to the larger economic waves that have buoyed them.<br> Err codemadness.org 70 i 32859 So it seemed like only a matter of time before the companies built around open source software would have to confront their own crisis of confidence: open source business models are really tough, selling software-as-a-service is one of the most natural of them, the cloud service providers are really good at it — and their commercial appetites seem boundless. And, like a new cherry red two-seater sports car next to a minivan in a suburban driveway, some open source companies are dealing with this crisis exceptionally poorly: they are trying to restrict the way that their open source software can be used. These companies want it both ways: they want the advantages of open source — the community, the positivity, the energy, the adoption, the downloads — but they also want to enjoy the fruits of proprietary software companies in software lock-in and its monopolistic rents. If this were entirely transparent (that is, if some bits were merely being made explicitly proprietary), it would be fine: we could accept these companies as essentially proprietary software companies, albeit with an open source loss-leader. But instead, these companies are trying to license their way into this self-contradictory world: continuing to claim to be entirely open source, but perverting the license under which portions of that source are available. Most gallingly, they are doing this by hijacking open source nomenclature. Of these, the laughably named commons clause is the worst offender (it is plainly designed to be confused with the purely virtuous creative commons), but others (including CockroachDB’s Community License, MongoDB’s Server Side Public License, and Confluent’s Community License) are little better. And in particular, as it apparently needs to be said: no, “community” is not the opposite of “open source” — please stop sullying its good name by attaching it to licenses that are deliberately not open source! But even if they were more aptly named (e.g. “the restricted clause” or “the controlled use license” or — perhaps most honest of all — “the please-don’t-put-me-out-of-business-during-the-next-reInvent-keynote clause”), these licenses suffer from a serious problem: they are almost certainly asserting rights that the copyright holder doesn’t in fact have.<br> Err codemadness.org 70 i 32860 If I sell you a book that I wrote, I can restrict your right to read it aloud for an audience, or sell a translation, or write a sequel; these restrictions are rights afforded the copyright holder. I cannot, however, tell you that you can’t put the book on the same bookshelf as that of my rival, or that you can’t read the book while flying a particular airline I dislike, or that you aren’t allowed to read the book and also work for a company that competes with mine. (Lest you think that last example absurd, that’s almost verbatim the language in the new Confluent Community (sic) License.) I personally think that none of these licenses would withstand a court challenge, but I also don’t think it will come to that: because the vendors behind these licenses will surely fear that they wouldn’t survive litigation, they will deliberately avoid inviting such challenges. In some ways, this netherworld is even worse, as the license becomes a vessel for unverifiable fear of arbitrary liability.<br> Err codemadness.org 70 i 32861 let me put this to you as directly as possible: cloud services providers are emphatically not going to license your proprietary software. I mean, you knew that, right? The whole premise with your proprietary license is that you are finding that there is no way to compete with the operational dominance of the cloud services providers; did you really believe that those same dominant cloud services providers can’t simply reimplement your LDAP integration or whatever? The cloud services providers are currently reproprietarizing all of computing — they are making their own CPUs for crying out loud! — reimplementing the bits of your software that they need in the name of the service that their customers want (and will pay for!) won’t even move the needle in terms of their effort.<br> Err codemadness.org 70 i 32862 Worse than all of this (and the reason why this madness needs to stop): licenses that are vague with respect to permitted use are corporate toxin. Any company that has been through an acquisition can speak of the peril of the due diligence license audit: the acquiring entity is almost always deep pocketed and (not unrelatedly) risk averse; the last thing that any company wants is for a deal to go sideways because of concern over unbounded liability to some third-party knuckle-head. So companies that engage in license tomfoolery are doing worse than merely not solving their own problem: they are potentially poisoning the wellspring of their own community.<br> Err codemadness.org 70 i 32863 in the end, open source will survive its midlife questioning just as people in midlife get through theirs: by returning to its core values and by finding rejuvenation in its communities. Indeed, we can all find solace in the fact that while life is finite, our values and our communities survive us — and that our engagement with them is our most important legacy.</p> Err codemadness.org 70 i 32864 </blockquote> Err codemadness.org 70 i 32865 <ul> Err codemadness.org 70 i 32866 <li>See the article for the rest</li> Err codemadness.org 70 i 32867 </ul> Err codemadness.org 70 i 32868 <hr> Err codemadness.org 70 i 32869 <p>###<a href="https://www.nytimes.com/2018/12/17/science/donald-knuth-computers-algorithms-programming.html">Donald Knuth - The Yoda of Silicon Valley</a></p> Err codemadness.org 70 i 32870 <blockquote> Err codemadness.org 70 i 32871 <p>For half a century, the Stanford computer scientist Donald Knuth, who bears a slight resemblance to Yoda — albeit standing 6-foot-4 and wearing glasses — has reigned as the spirit-guide of the algorithmic realm.<br> Err codemadness.org 70 i 32872 He is the author of “The Art of Computer Programming,” a continuing four-volume opus that is his life’s work. The first volume debuted in 1968, and the collected volumes (sold as a boxed set for about $250) were included by American Scientist in 2013 on its list of books that shaped the last century of science — alongside a special edition of “The Autobiography of Charles Darwin,” Tom Wolfe’s “The Right Stuff,” Rachel Carson’s “Silent Spring” and monographs by Albert Einstein, John von Neumann and Richard Feynman.<br> Err codemadness.org 70 i 32873 With more than one million copies in print, “The Art of Computer Programming” is the Bible of its field. “Like an actual bible, it is long and comprehensive; no other book is as comprehensive,” said Peter Norvig, a director of research at Google. After 652 pages, volume one closes with a blurb on the back cover from Bill Gates: “You should definitely send me a résumé if you can read the whole thing.”<br> Err codemadness.org 70 i 32874 The volume opens with an excerpt from “McCall’s Cookbook”:</p> Err codemadness.org 70 i 32875 </blockquote> Err codemadness.org 70 i 32876 <p><code>Here is your book, the one your thousands of letters have asked us to publish. It has taken us years to do, checking and rechecking countless recipes to bring you only the best, only the interesting, only the perfect.</code></p> Err codemadness.org 70 i 32877 <blockquote> Err codemadness.org 70 i 32878 <p>Inside are algorithms, the recipes that feed the digital age — although, as Dr. Knuth likes to point out, algorithms can also be found on Babylonian tablets from 3,800 years ago. He is an esteemed algorithmist; his name is attached to some of the field’s most important specimens, such as the Knuth-Morris-Pratt string-searching algorithm. Devised in 1970, it finds all occurrences of a given word or pattern of letters in a text — for instance, when you hit Command+F to search for a keyword in a document.<br> Err codemadness.org 70 i 32879 Now 80, Dr. Knuth usually dresses like the youthful geek he was when he embarked on this odyssey: long-sleeved T-shirt under a short-sleeved T-shirt, with jeans, at least at this time of year. In those early days, he worked close to the machine, writing “in the raw,” tinkering with the zeros and ones.</p> Err codemadness.org 70 i 32880 </blockquote> Err codemadness.org 70 i 32881 <ul> Err codemadness.org 70 i 32882 <li>See the article for the rest</li> Err codemadness.org 70 i 32883 </ul> Err codemadness.org 70 i 32884 <hr> Err codemadness.org 70 i 32885 <p>##News Roundup<br> Err codemadness.org 70 i 32886 <a href="https://dev.to/nabbisen/lets-encrypt-certbot-for-openbsds-httpd-3ofd">Let’s Encrypt: Certbot For OpenBSD’s httpd</a></p> Err codemadness.org 70 i 32887 <ul> Err codemadness.org 70 i 32888 <li>Intro</li> Err codemadness.org 70 i 32889 </ul> Err codemadness.org 70 i 32890 <blockquote> Err codemadness.org 70 i 32891 <p>Let’s Encrypt is “a free, automated, and open Certificate Authority”.<br> Err codemadness.org 70 i 32892 Certbot is “an easy-to-use automatic client that fetches and deploys SSL/TLS certificates for your web server”, well known as “the official Let’s Encrypt client”.<br> Err codemadness.org 70 i 32893 I remember well how excited I felt when I read Let’s Encrypt’s “Our First Certificate Is Now Live” in 2015.<br> Err codemadness.org 70 i 32894 How wonderful the goal of them is; it’s to “give people the digital certificates they need in order to enable HTTPS (SSL/TLS) for websites, for free” “to create a more secure and privacy-respecting Web”!<br> Err codemadness.org 70 i 32895 Since this year, they have begun to support even ACME v2 and Wildcard Certificate!<br> Err codemadness.org 70 i 32896 Well, in OpenBSD as well as other operating systems, it’s easy and comfortable to have their big help &#x1f60a;</p> Err codemadness.org 70 i 32897 </blockquote> Err codemadness.org 70 i 32898 <ul> Err codemadness.org 70 i 32899 <li>Environment</li> Err codemadness.org 70 i 32900 <li>OS: OpenBSD 6.4 amd64</li> Err codemadness.org 70 i 32901 <li>Web Server: OpenBSD’s httpd</li> Err codemadness.org 70 i 32902 <li>Certification: Let’s Encrypt with Certbot 0.27</li> Err codemadness.org 70 i 32903 <li>Reference: OpenBSD’s httpd</li> Err codemadness.org 70 i 32904 </ul> Err codemadness.org 70 i 32905 <hr> Err codemadness.org 70 i 32906 <p>###<a href="https://www.cyberciti.biz/open-source/freebsd-12-released-here-is-how-to-upgrade-freebsd/">FreeBSD 12 released: Here is how to upgrade FreeBSD 11 to 12</a></p> Err codemadness.org 70 i 32907 <blockquote> Err codemadness.org 70 i 32908 <p>The FreeBSD project announces the availability of FreeBSD 12.0-RELEASE. It is the first release of the stable/12 branch. The new version comes with updated software and features for a wild variety of architectures. The latest release provides performance improvements and better support for FreeBSD jails and more. One can benefit greatly using an upgraded version of FreeBSD.</p> Err codemadness.org 70 i 32909 </blockquote> Err codemadness.org 70 i 32910 <blockquote> Err codemadness.org 70 i 32911 <p>FreeBSD 12.0 supports amd64, i386, powerpc, powerpc64, powerpcspe, sparc64, armv6, armv7, and aarch64 architectures. One can run it on a standalone server or desktop system. Another option is to run it on Raspberry PI computer. FreeBSD 12 also runs on popular cloud service providers such as AWS EC2/Lightsail or Google compute VM.</p> Err codemadness.org 70 i 32912 </blockquote> Err codemadness.org 70 i 32913 <ul> Err codemadness.org 70 i 32914 <li> Err codemadness.org 70 i 32915 <p>New features and highlights:</p> Err codemadness.org 70 i 32916 </li> Err codemadness.org 70 i 32917 <li> Err codemadness.org 70 i 32918 <p>OpenSSL version 1.1.1a (LTS)</p> Err codemadness.org 70 i 32919 </li> Err codemadness.org 70 i 32920 <li> Err codemadness.org 70 i 32921 <p>OpenSSH server 7.8p1</p> Err codemadness.org 70 i 32922 </li> Err codemadness.org 70 i 32923 <li> Err codemadness.org 70 i 32924 <p>Unbound server 1.8.1</p> Err codemadness.org 70 i 32925 </li> Err codemadness.org 70 i 32926 <li> Err codemadness.org 70 i 32927 <p>Clang and co 6.0.1</p> Err codemadness.org 70 i 32928 </li> Err codemadness.org 70 i 32929 <li> Err codemadness.org 70 i 32930 <p>The FreeBSD installer supports EFI+GELI as an installation option</p> Err codemadness.org 70 i 32931 </li> Err codemadness.org 70 i 32932 <li> Err codemadness.org 70 i 32933 <p>VIMAGE FreeBSD kernel configuration option has been enabled by default. VIMAGE was the main reason I custom compiled FreeBSD for the last few years. No more custom compile for me.</p> Err codemadness.org 70 i 32934 </li> Err codemadness.org 70 i 32935 <li> Err codemadness.org 70 i 32936 <p>Graphics drivers for modern ATI/AMD and Intel graphics cards are now available in the FreeBSD ports collection</p> Err codemadness.org 70 i 32937 </li> Err codemadness.org 70 i 32938 <li> Err codemadness.org 70 i 32939 <p>ZFS has been updated to include new sysctl(s), vfs.zfs.arcminprefetchms and vfs.zfs.arcminprescientprefetchms, which improve performance of the zpool scrub subcommand</p> Err codemadness.org 70 i 32940 </li> Err codemadness.org 70 i 32941 <li> Err codemadness.org 70 i 32942 <p>The pf packet filter is now usable within a jail using vnet</p> Err codemadness.org 70 i 32943 </li> Err codemadness.org 70 i 32944 <li> Err codemadness.org 70 i 32945 <p>KDE updated to version 5.12.5</p> Err codemadness.org 70 i 32946 </li> Err codemadness.org 70 i 32947 <li> Err codemadness.org 70 i 32948 <p>The NFS version 4.1 includes pNFS server support</p> Err codemadness.org 70 i 32949 </li> Err codemadness.org 70 i 32950 <li> Err codemadness.org 70 i 32951 <p>Perl 5.26.2</p> Err codemadness.org 70 i 32952 </li> Err codemadness.org 70 i 32953 <li> Err codemadness.org 70 i 32954 <p>The default PAGER now defaults to less for most commands</p> Err codemadness.org 70 i 32955 </li> Err codemadness.org 70 i 32956 <li> Err codemadness.org 70 i 32957 <p>The dd utility has been updated to add the status=progress option to match GNU/Linux dd command to show progress bar while running dd</p> Err codemadness.org 70 i 32958 </li> Err codemadness.org 70 i 32959 <li> Err codemadness.org 70 i 32960 <p>FreeBSD now supports ext4 for read/write operation</p> Err codemadness.org 70 i 32961 </li> Err codemadness.org 70 i 32962 <li> Err codemadness.org 70 i 32963 <p>Python 2.7</p> Err codemadness.org 70 i 32964 </li> Err codemadness.org 70 i 32965 <li> Err codemadness.org 70 i 32966 <p>much more</p> Err codemadness.org 70 i 32967 </li> Err codemadness.org 70 i 32968 </ul> Err codemadness.org 70 i 32969 <hr> Err codemadness.org 70 i 32970 <p>###<a href="https://zwischenzugs.com/2018/11/25/six-ways-to-level-up-your-nmap-game/">Six Ways to Level Up Your nmap Game</a></p> Err codemadness.org 70 i 32971 <blockquote> Err codemadness.org 70 i 32972 <p>nmap is a network exploration tool and security / port scanner.<br> Err codemadness.org 70 i 32973 If you’ve heard of it, and you’re like me, you’ve most likely used it like this:<br> Err codemadness.org 70 i 32974 ie, you’ve pointed it at an IP address and observed the output which tells you the open ports on a host.<br> Err codemadness.org 70 i 32975 I used nmap like this for years, but only recently grokked the manual to see what else it could do. Here’s a quick look and some of the more useful things I found out.</p> Err codemadness.org 70 i 32976 </blockquote> Err codemadness.org 70 i 32977 <ul> Err codemadness.org 70 i 32978 <li> Err codemadness.org 70 i 32979 <ol> Err codemadness.org 70 i 32980 <li>Scan a Network</li> Err codemadness.org 70 i 32981 </ol> Err codemadness.org 70 i 32982 </li> Err codemadness.org 70 i 32983 <li> Err codemadness.org 70 i 32984 <ol start="2"> Err codemadness.org 70 i 32985 <li>Scan All Ports</li> Err codemadness.org 70 i 32986 </ol> Err codemadness.org 70 i 32987 </li> Err codemadness.org 70 i 32988 <li> Err codemadness.org 70 i 32989 <ol start="3"> Err codemadness.org 70 i 32990 <li>Get service versions</li> Err codemadness.org 70 i 32991 </ol> Err codemadness.org 70 i 32992 </li> Err codemadness.org 70 i 32993 <li> Err codemadness.org 70 i 32994 <ol start="4"> Err codemadness.org 70 i 32995 <li>Use -A for more data</li> Err codemadness.org 70 i 32996 </ol> Err codemadness.org 70 i 32997 </li> Err codemadness.org 70 i 32998 <li> Err codemadness.org 70 i 32999 <ol start="5"> Err codemadness.org 70 i 33000 <li>Find out what nmap is up to</li> Err codemadness.org 70 i 33001 </ol> Err codemadness.org 70 i 33002 </li> Err codemadness.org 70 i 33003 <li> Err codemadness.org 70 i 33004 <ol start="6"> Err codemadness.org 70 i 33005 <li>Script your own scans with NSE</li> Err codemadness.org 70 i 33006 </ol> Err codemadness.org 70 i 33007 </li> Err codemadness.org 70 i 33008 </ul> Err codemadness.org 70 i 33009 <hr> Err codemadness.org 70 i 33010 <p>###[NetBSD Desktop]</p> Err codemadness.org 70 i 33011 <ul> Err codemadness.org 70 i 33012 <li><a href="https://unitedbsd.com/t/netbsd-desktop-part-1-manual-netbsd-installation-on-gpt-uefi/284">Part 1: Manual NetBSD installation on GPT/UEFI</a></li> Err codemadness.org 70 i 33013 <li><a href="https://unitedbsd.com/t/netbsd-desktop-pt-2-set-up-wireless-networking-on-netbsd-with-wpa-supplicant-and-dhcpcd/281">NetBSD desktop pt.2: Set up wireless networking on NetBSD with wpasupplicant and dhcpcd</a></li> Err codemadness.org 70 i 33014 <li><a href="https://unitedbsd.com/t/netbsd-desktop-pt-3-simple-stateful-firewall-with-npf/286">Part 3: Simple stateful firewall with NPF</a></li> Err codemadness.org 70 i 33015 <li><a href="https://unitedbsd.com/t/netbsd-desktop-pt-4-the-x-display-manager-xdm/292">Part 4: 4: The X Display Manager (XDM)</a></li> Err codemadness.org 70 i 33016 <li><a href="https://unitedbsd.com/t/netbsd-desktop-pt-5-automounting-with-berkeley-am-utils/294/3">Part 5: automounting with Berkeley am-utils</a></li> Err codemadness.org 70 i 33017 </ul> Err codemadness.org 70 i 33018 <hr> Err codemadness.org 70 i 33019 <p>##Beastie Bits</p> Err codemadness.org 70 i 33020 <ul> Err codemadness.org 70 i 33021 <li><a href="https://lists.freebsd.org/pipermail/freebsd-current/2018-December/072422.html">Call For Testing: ZFS on FreeBSD Project</a></li> Err codemadness.org 70 i 33022 <li><a href="https://www.dragonflydigest.com/2018/12/18/22223.html">DragonFlyBSD 5.4.1 release within a week</a></li> Err codemadness.org 70 i 33023 <li><a href="https://www.bunniestudios.com/blog/?p=5421">You Can’t Opt Out of the Patent System. That’s Why Patent Pandas Was Created!</a></li> Err codemadness.org 70 i 33024 <li><a href="https://yggdrasil-network.github.io/2018/12/12/announcing-v0-3.html">Announcing Yggdrasil Network v0.3</a></li> Err codemadness.org 70 i 33025 <li><a href="https://www.ziprecruiter.com/c/The-Good-Seed/Job/OpenBSD-Network-Engineer/-in-Los-Angeles,CA?jobid=35a52212-57d4d705">OpenBSD Network Engineer Job listing</a></li> Err codemadness.org 70 i 33026 <li><a href="https://itsfoss.com/freebsd-12-release/">FreeBSD 12.0 Stable Version Released!</a></li> Err codemadness.org 70 i 33027 <li><a href="http://bsdsec.net/articles/libressl-2-9-0-released">LibreSSL 2.9.0 released</a></li> Err codemadness.org 70 i 33028 <li><a href="https://www.youtube.com/watch?v=Nq8sLqtzCEQ">Live stream test: Sgi Octane light bar repair / soldering!</a></li> Err codemadness.org 70 i 33029 <li><a href="https://www.sophimail.com/configure-freebsd-email-server-using-postfix-dovecot-mysql-spamassassin/">Configure a FreeBSD Email Server Using Postfix, Dovecot, MySQL, DAVICAL and SpamAssassin</a></li> Err codemadness.org 70 i 33030 <li><a href="http://blog.obligd.com/posts/berkeley-smorgasbord.html">Berkeley smorgasbord</a></li> Err codemadness.org 70 i 33031 <li><a href="https://fosdem.org/2019/schedule/track/bsd/">FOSDEM BSD Devroom schedule</a></li> Err codemadness.org 70 i 33032 </ul> Err codemadness.org 70 i 33033 <hr> Err codemadness.org 70 i 33034 <p>##Feedback/Questions</p> Err codemadness.org 70 i 33035 <ul> Err codemadness.org 70 i 33036 <li>Warren - <a href="http://dpaste.com/1V1XS01#wrap">Ep.273: OpenZFS on OS X</a></li> Err codemadness.org 70 i 33037 <li>cogoman - <a href="http://dpaste.com/0P0MWFC#wrap">tarsnap security and using SSDs in raid</a></li> Err codemadness.org 70 i 33038 <li>Andrew - <a href="http://dpaste.com/3H9M5M0">Portland BSD Pizza Night</a></li> Err codemadness.org 70 i 33039 </ul> Err codemadness.org 70 i 33040 <hr> Err codemadness.org 70 i 33041 <ul> Err codemadness.org 70 i 33042 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 33043 </ul> Err codemadness.org 70 i 33044 <hr> Err codemadness.org 70 i 33045 Err codemadness.org 70 i 33046 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, Donald Knuth, LetsEncrypt, Certbot, nmap, patent, yggdrasil, libressl Err codemadness.org 70 i 33047 Err codemadness.org 70 i 33048 The Open Source midlife crisis, Donald Knuth The Yoda of Silicon Valley, Certbot For OpenBSD's httpd, how to upgrade FreeBSD from 11 to 12, level up your nmap game, NetBSD desktop, and more.

Err codemadness.org 70 i 33049 Err codemadness.org 70 i 33050

##Headlines
Err codemadness.org 70 i 33051 ###Open Source Confronts its midlife crisis

Err codemadness.org 70 i 33052 Err codemadness.org 70 i 33053
Err codemadness.org 70 i 33054

Midlife is tough: the idealism of youth has faded, as has inevitably some of its fitness and vigor. At the same time, the responsibilities of adulthood have grown. Making things more challenging, while you are navigating the turbulence of teenagers, your own parents are likely entering life’s twilight, needing help in new ways from their adult children. By midlife, in addition to the singular joys of life, you have also likely experienced its terrible sorrows: death, heartbreak, betrayal. Taken together, the fading of youth, the growth in responsibility and the endurance of misfortune can lead to cynicism or (worse) drastic and poorly thought-out choices. Add in a little fear of mortality and some existential dread, and you have the stuff of which midlife crises are made…
Err codemadness.org 70 i 33055 I raise this not because of my own adventures at midlife, but because it is clear to me that open source — now several decades old and fully adult — is going through its own midlife crisis. This has long been in the making: for years, I (and others) have been critical of service providers’ parasitic relationship with open source, as cloud service providers turn open source software into a service offering without giving back to the communities upon which they implicitly depend. At the same time, open source has been (rightfully) entirely unsympathetic to the proprietary software models that have been burned to the ground — but also seemingly oblivious as to the larger economic waves that have buoyed them.
Err codemadness.org 70 i 33056 So it seemed like only a matter of time before the companies built around open source software would have to confront their own crisis of confidence: open source business models are really tough, selling software-as-a-service is one of the most natural of them, the cloud service providers are really good at it — and their commercial appetites seem boundless. And, like a new cherry red two-seater sports car next to a minivan in a suburban driveway, some open source companies are dealing with this crisis exceptionally poorly: they are trying to restrict the way that their open source software can be used. These companies want it both ways: they want the advantages of open source — the community, the positivity, the energy, the adoption, the downloads — but they also want to enjoy the fruits of proprietary software companies in software lock-in and its monopolistic rents. If this were entirely transparent (that is, if some bits were merely being made explicitly proprietary), it would be fine: we could accept these companies as essentially proprietary software companies, albeit with an open source loss-leader. But instead, these companies are trying to license their way into this self-contradictory world: continuing to claim to be entirely open source, but perverting the license under which portions of that source are available. Most gallingly, they are doing this by hijacking open source nomenclature. Of these, the laughably named commons clause is the worst offender (it is plainly designed to be confused with the purely virtuous creative commons), but others (including CockroachDB’s Community License, MongoDB’s Server Side Public License, and Confluent’s Community License) are little better. And in particular, as it apparently needs to be said: no, “community” is not the opposite of “open source” — please stop sullying its good name by attaching it to licenses that are deliberately not open source! But even if they were more aptly named (e.g. “the restricted clause” or “the controlled use license” or — perhaps most honest of all — “the please-don’t-put-me-out-of-business-during-the-next-reInvent-keynote clause”), these licenses suffer from a serious problem: they are almost certainly asserting rights that the copyright holder doesn’t in fact have.
Err codemadness.org 70 i 33057 If I sell you a book that I wrote, I can restrict your right to read it aloud for an audience, or sell a translation, or write a sequel; these restrictions are rights afforded the copyright holder. I cannot, however, tell you that you can’t put the book on the same bookshelf as that of my rival, or that you can’t read the book while flying a particular airline I dislike, or that you aren’t allowed to read the book and also work for a company that competes with mine. (Lest you think that last example absurd, that’s almost verbatim the language in the new Confluent Community (sic) License.) I personally think that none of these licenses would withstand a court challenge, but I also don’t think it will come to that: because the vendors behind these licenses will surely fear that they wouldn’t survive litigation, they will deliberately avoid inviting such challenges. In some ways, this netherworld is even worse, as the license becomes a vessel for unverifiable fear of arbitrary liability.
Err codemadness.org 70 i 33058 let me put this to you as directly as possible: cloud services providers are emphatically not going to license your proprietary software. I mean, you knew that, right? The whole premise with your proprietary license is that you are finding that there is no way to compete with the operational dominance of the cloud services providers; did you really believe that those same dominant cloud services providers can’t simply reimplement your LDAP integration or whatever? The cloud services providers are currently reproprietarizing all of computing — they are making their own CPUs for crying out loud! — reimplementing the bits of your software that they need in the name of the service that their customers want (and will pay for!) won’t even move the needle in terms of their effort.
Err codemadness.org 70 i 33059 Worse than all of this (and the reason why this madness needs to stop): licenses that are vague with respect to permitted use are corporate toxin. Any company that has been through an acquisition can speak of the peril of the due diligence license audit: the acquiring entity is almost always deep pocketed and (not unrelatedly) risk averse; the last thing that any company wants is for a deal to go sideways because of concern over unbounded liability to some third-party knuckle-head. So companies that engage in license tomfoolery are doing worse than merely not solving their own problem: they are potentially poisoning the wellspring of their own community.
Err codemadness.org 70 i 33060 in the end, open source will survive its midlife questioning just as people in midlife get through theirs: by returning to its core values and by finding rejuvenation in its communities. Indeed, we can all find solace in the fact that while life is finite, our values and our communities survive us — and that our engagement with them is our most important legacy.

Err codemadness.org 70 i 33061
Err codemadness.org 70 i 33062 Err codemadness.org 70 i 33063
    Err codemadness.org 70 i 33064
  • See the article for the rest
  • Err codemadness.org 70 i 33065
Err codemadness.org 70 i 33066 Err codemadness.org 70 i 33067


Err codemadness.org 70 i 33068 Err codemadness.org 70 i 33069

###Donald Knuth - The Yoda of Silicon Valley

Err codemadness.org 70 i 33070 Err codemadness.org 70 i 33071
Err codemadness.org 70 i 33072

For half a century, the Stanford computer scientist Donald Knuth, who bears a slight resemblance to Yoda — albeit standing 6-foot-4 and wearing glasses — has reigned as the spirit-guide of the algorithmic realm.
Err codemadness.org 70 i 33073 He is the author of “The Art of Computer Programming,” a continuing four-volume opus that is his life’s work. The first volume debuted in 1968, and the collected volumes (sold as a boxed set for about $250) were included by American Scientist in 2013 on its list of books that shaped the last century of science — alongside a special edition of “The Autobiography of Charles Darwin,” Tom Wolfe’s “The Right Stuff,” Rachel Carson’s “Silent Spring” and monographs by Albert Einstein, John von Neumann and Richard Feynman.
Err codemadness.org 70 i 33074 With more than one million copies in print, “The Art of Computer Programming” is the Bible of its field. “Like an actual bible, it is long and comprehensive; no other book is as comprehensive,” said Peter Norvig, a director of research at Google. After 652 pages, volume one closes with a blurb on the back cover from Bill Gates: “You should definitely send me a résumé if you can read the whole thing.”
Err codemadness.org 70 i 33075 The volume opens with an excerpt from “McCall’s Cookbook”:

Err codemadness.org 70 i 33076
Err codemadness.org 70 i 33077 Err codemadness.org 70 i 33078

Here is your book, the one your thousands of letters have asked us to publish. It has taken us years to do, checking and rechecking countless recipes to bring you only the best, only the interesting, only the perfect.

Err codemadness.org 70 i 33079 Err codemadness.org 70 i 33080
Err codemadness.org 70 i 33081

Inside are algorithms, the recipes that feed the digital age — although, as Dr. Knuth likes to point out, algorithms can also be found on Babylonian tablets from 3,800 years ago. He is an esteemed algorithmist; his name is attached to some of the field’s most important specimens, such as the Knuth-Morris-Pratt string-searching algorithm. Devised in 1970, it finds all occurrences of a given word or pattern of letters in a text — for instance, when you hit Command+F to search for a keyword in a document.
Err codemadness.org 70 i 33082 Now 80, Dr. Knuth usually dresses like the youthful geek he was when he embarked on this odyssey: long-sleeved T-shirt under a short-sleeved T-shirt, with jeans, at least at this time of year. In those early days, he worked close to the machine, writing “in the raw,” tinkering with the zeros and ones.

Err codemadness.org 70 i 33083
Err codemadness.org 70 i 33084 Err codemadness.org 70 i 33085
    Err codemadness.org 70 i 33086
  • See the article for the rest
  • Err codemadness.org 70 i 33087
Err codemadness.org 70 i 33088 Err codemadness.org 70 i 33089


Err codemadness.org 70 i 33090 Err codemadness.org 70 i 33091

##News Roundup
Err codemadness.org 70 i 33092 ###Let’s Encrypt: Certbot For OpenBSD’s httpd

Err codemadness.org 70 i 33093 Err codemadness.org 70 i 33094
    Err codemadness.org 70 i 33095
  • Intro
  • Err codemadness.org 70 i 33096
Err codemadness.org 70 i 33097 Err codemadness.org 70 i 33098
Err codemadness.org 70 i 33099

Let’s Encrypt is “a free, automated, and open Certificate Authority”.
Err codemadness.org 70 i 33100 Certbot is “an easy-to-use automatic client that fetches and deploys SSL/TLS certificates for your web server”, well known as “the official Let’s Encrypt client”.
Err codemadness.org 70 i 33101 I remember well how excited I felt when I read Let’s Encrypt’s “Our First Certificate Is Now Live” in 2015.
Err codemadness.org 70 i 33102 How wonderful the goal of them is; it’s to “give people the digital certificates they need in order to enable HTTPS (SSL/TLS) for websites, for free” “to create a more secure and privacy-respecting Web”!
Err codemadness.org 70 i 33103 Since this year, they have begun to support even ACME v2 and Wildcard Certificate!
Err codemadness.org 70 i 33104 Well, in OpenBSD as well as other operating systems, it’s easy and comfortable to have their big help 😊

Err codemadness.org 70 i 33105
Err codemadness.org 70 i 33106 Err codemadness.org 70 i 33107
    Err codemadness.org 70 i 33108
  • Environment
  • Err codemadness.org 70 i 33109
  • OS: OpenBSD 6.4 amd64
  • Err codemadness.org 70 i 33110
  • Web Server: OpenBSD’s httpd
  • Err codemadness.org 70 i 33111
  • Certification: Let’s Encrypt with Certbot 0.27
  • Err codemadness.org 70 i 33112
  • Reference: OpenBSD’s httpd
  • Err codemadness.org 70 i 33113
Err codemadness.org 70 i 33114 Err codemadness.org 70 i 33115


Err codemadness.org 70 i 33116 Err codemadness.org 70 i 33117

###FreeBSD 12 released: Here is how to upgrade FreeBSD 11 to 12

Err codemadness.org 70 i 33118 Err codemadness.org 70 i 33119
Err codemadness.org 70 i 33120

The FreeBSD project announces the availability of FreeBSD 12.0-RELEASE. It is the first release of the stable/12 branch. The new version comes with updated software and features for a wild variety of architectures. The latest release provides performance improvements and better support for FreeBSD jails and more. One can benefit greatly using an upgraded version of FreeBSD.

Err codemadness.org 70 i 33121
Err codemadness.org 70 i 33122 Err codemadness.org 70 i 33123
Err codemadness.org 70 i 33124

FreeBSD 12.0 supports amd64, i386, powerpc, powerpc64, powerpcspe, sparc64, armv6, armv7, and aarch64 architectures. One can run it on a standalone server or desktop system. Another option is to run it on Raspberry PI computer. FreeBSD 12 also runs on popular cloud service providers such as AWS EC2/Lightsail or Google compute VM.

Err codemadness.org 70 i 33125
Err codemadness.org 70 i 33126 Err codemadness.org 70 i 33127
    Err codemadness.org 70 i 33128
  • Err codemadness.org 70 i 33129

    New features and highlights:

    Err codemadness.org 70 i 33130
  • Err codemadness.org 70 i 33131
  • Err codemadness.org 70 i 33132

    OpenSSL version 1.1.1a (LTS)

    Err codemadness.org 70 i 33133
  • Err codemadness.org 70 i 33134
  • Err codemadness.org 70 i 33135

    OpenSSH server 7.8p1

    Err codemadness.org 70 i 33136
  • Err codemadness.org 70 i 33137
  • Err codemadness.org 70 i 33138

    Unbound server 1.8.1

    Err codemadness.org 70 i 33139
  • Err codemadness.org 70 i 33140
  • Err codemadness.org 70 i 33141

    Clang and co 6.0.1

    Err codemadness.org 70 i 33142
  • Err codemadness.org 70 i 33143
  • Err codemadness.org 70 i 33144

    The FreeBSD installer supports EFI+GELI as an installation option

    Err codemadness.org 70 i 33145
  • Err codemadness.org 70 i 33146
  • Err codemadness.org 70 i 33147

    VIMAGE FreeBSD kernel configuration option has been enabled by default. VIMAGE was the main reason I custom compiled FreeBSD for the last few years. No more custom compile for me.

    Err codemadness.org 70 i 33148
  • Err codemadness.org 70 i 33149
  • Err codemadness.org 70 i 33150

    Graphics drivers for modern ATI/AMD and Intel graphics cards are now available in the FreeBSD ports collection

    Err codemadness.org 70 i 33151
  • Err codemadness.org 70 i 33152
  • Err codemadness.org 70 i 33153

    ZFS has been updated to include new sysctl(s), vfs.zfs.arc_min_prefetch_ms and vfs.zfs.arc_min_prescient_prefetch_ms, which improve performance of the zpool scrub subcommand

    Err codemadness.org 70 i 33154
  • Err codemadness.org 70 i 33155
  • Err codemadness.org 70 i 33156

    The pf packet filter is now usable within a jail using vnet

    Err codemadness.org 70 i 33157
  • Err codemadness.org 70 i 33158
  • Err codemadness.org 70 i 33159

    KDE updated to version 5.12.5

    Err codemadness.org 70 i 33160
  • Err codemadness.org 70 i 33161
  • Err codemadness.org 70 i 33162

    The NFS version 4.1 includes pNFS server support

    Err codemadness.org 70 i 33163
  • Err codemadness.org 70 i 33164
  • Err codemadness.org 70 i 33165

    Perl 5.26.2

    Err codemadness.org 70 i 33166
  • Err codemadness.org 70 i 33167
  • Err codemadness.org 70 i 33168

    The default PAGER now defaults to less for most commands

    Err codemadness.org 70 i 33169
  • Err codemadness.org 70 i 33170
  • Err codemadness.org 70 i 33171

    The dd utility has been updated to add the status=progress option to match GNU/Linux dd command to show progress bar while running dd

    Err codemadness.org 70 i 33172
  • Err codemadness.org 70 i 33173
  • Err codemadness.org 70 i 33174

    FreeBSD now supports ext4 for read/write operation

    Err codemadness.org 70 i 33175
  • Err codemadness.org 70 i 33176
  • Err codemadness.org 70 i 33177

    Python 2.7

    Err codemadness.org 70 i 33178
  • Err codemadness.org 70 i 33179
  • Err codemadness.org 70 i 33180

    much more

    Err codemadness.org 70 i 33181
  • Err codemadness.org 70 i 33182
Err codemadness.org 70 i 33183 Err codemadness.org 70 i 33184


Err codemadness.org 70 i 33185 Err codemadness.org 70 i 33186

###Six Ways to Level Up Your nmap Game

Err codemadness.org 70 i 33187 Err codemadness.org 70 i 33188
Err codemadness.org 70 i 33189

nmap is a network exploration tool and security / port scanner.
Err codemadness.org 70 i 33190 If you’ve heard of it, and you’re like me, you’ve most likely used it like this:
Err codemadness.org 70 i 33191 ie, you’ve pointed it at an IP address and observed the output which tells you the open ports on a host.
Err codemadness.org 70 i 33192 I used nmap like this for years, but only recently grokked the manual to see what else it could do. Here’s a quick look and some of the more useful things I found out.

Err codemadness.org 70 i 33193
Err codemadness.org 70 i 33194 Err codemadness.org 70 i 33195
    Err codemadness.org 70 i 33196
  • Err codemadness.org 70 i 33197
      Err codemadness.org 70 i 33198
    1. Scan a Network
    2. Err codemadness.org 70 i 33199
    Err codemadness.org 70 i 33200
  • Err codemadness.org 70 i 33201
  • Err codemadness.org 70 i 33202
      Err codemadness.org 70 i 33203
    1. Scan All Ports
    2. Err codemadness.org 70 i 33204
    Err codemadness.org 70 i 33205
  • Err codemadness.org 70 i 33206
  • Err codemadness.org 70 i 33207
      Err codemadness.org 70 i 33208
    1. Get service versions
    2. Err codemadness.org 70 i 33209
    Err codemadness.org 70 i 33210
  • Err codemadness.org 70 i 33211
  • Err codemadness.org 70 i 33212
      Err codemadness.org 70 i 33213
    1. Use -A for more data
    2. Err codemadness.org 70 i 33214
    Err codemadness.org 70 i 33215
  • Err codemadness.org 70 i 33216
  • Err codemadness.org 70 i 33217
      Err codemadness.org 70 i 33218
    1. Find out what nmap is up to
    2. Err codemadness.org 70 i 33219
    Err codemadness.org 70 i 33220
  • Err codemadness.org 70 i 33221
  • Err codemadness.org 70 i 33222
      Err codemadness.org 70 i 33223
    1. Script your own scans with NSE
    2. Err codemadness.org 70 i 33224
    Err codemadness.org 70 i 33225
  • Err codemadness.org 70 i 33226
Err codemadness.org 70 i 33227 Err codemadness.org 70 i 33228


Err codemadness.org 70 i 33229 Err codemadness.org 70 i 33230

###[NetBSD Desktop]

Err codemadness.org 70 i 33231 Err codemadness.org 70 i 33232 Err codemadness.org 70 i 33239 Err codemadness.org 70 i 33240


Err codemadness.org 70 i 33241 Err codemadness.org 70 i 33242

##Beastie Bits

Err codemadness.org 70 i 33243 Err codemadness.org 70 i 33244 Err codemadness.org 70 i 33257 Err codemadness.org 70 i 33258


Err codemadness.org 70 i 33259 Err codemadness.org 70 i 33260

##Feedback/Questions

Err codemadness.org 70 i 33261 Err codemadness.org 70 i 33262 Err codemadness.org 70 i 33267 Err codemadness.org 70 i 33268


Err codemadness.org 70 i 33269 Err codemadness.org 70 i 33270
    Err codemadness.org 70 i 33271
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 33272
Err codemadness.org 70 i 33273 Err codemadness.org 70 i 33274


]]> Err codemadness.org 70 i 33275
Err codemadness.org 70 i 33276 Err codemadness.org 70 i 33277 The Open Source midlife crisis, Donald Knuth The Yoda of Silicon Valley, Certbot For OpenBSD's httpd, how to upgrade FreeBSD from 11 to 12, level up your nmap game, NetBSD desktop, and more.

Err codemadness.org 70 i 33278 Err codemadness.org 70 i 33279

##Headlines
Err codemadness.org 70 i 33280 ###Open Source Confronts its midlife crisis

Err codemadness.org 70 i 33281 Err codemadness.org 70 i 33282
Err codemadness.org 70 i 33283

Midlife is tough: the idealism of youth has faded, as has inevitably some of its fitness and vigor. At the same time, the responsibilities of adulthood have grown. Making things more challenging, while you are navigating the turbulence of teenagers, your own parents are likely entering life’s twilight, needing help in new ways from their adult children. By midlife, in addition to the singular joys of life, you have also likely experienced its terrible sorrows: death, heartbreak, betrayal. Taken together, the fading of youth, the growth in responsibility and the endurance of misfortune can lead to cynicism or (worse) drastic and poorly thought-out choices. Add in a little fear of mortality and some existential dread, and you have the stuff of which midlife crises are made…
Err codemadness.org 70 i 33284 I raise this not because of my own adventures at midlife, but because it is clear to me that open source — now several decades old and fully adult — is going through its own midlife crisis. This has long been in the making: for years, I (and others) have been critical of service providers’ parasitic relationship with open source, as cloud service providers turn open source software into a service offering without giving back to the communities upon which they implicitly depend. At the same time, open source has been (rightfully) entirely unsympathetic to the proprietary software models that have been burned to the ground — but also seemingly oblivious as to the larger economic waves that have buoyed them.
Err codemadness.org 70 i 33285 So it seemed like only a matter of time before the companies built around open source software would have to confront their own crisis of confidence: open source business models are really tough, selling software-as-a-service is one of the most natural of them, the cloud service providers are really good at it — and their commercial appetites seem boundless. And, like a new cherry red two-seater sports car next to a minivan in a suburban driveway, some open source companies are dealing with this crisis exceptionally poorly: they are trying to restrict the way that their open source software can be used. These companies want it both ways: they want the advantages of open source — the community, the positivity, the energy, the adoption, the downloads — but they also want to enjoy the fruits of proprietary software companies in software lock-in and its monopolistic rents. If this were entirely transparent (that is, if some bits were merely being made explicitly proprietary), it would be fine: we could accept these companies as essentially proprietary software companies, albeit with an open source loss-leader. But instead, these companies are trying to license their way into this self-contradictory world: continuing to claim to be entirely open source, but perverting the license under which portions of that source are available. Most gallingly, they are doing this by hijacking open source nomenclature. Of these, the laughably named commons clause is the worst offender (it is plainly designed to be confused with the purely virtuous creative commons), but others (including CockroachDB’s Community License, MongoDB’s Server Side Public License, and Confluent’s Community License) are little better. And in particular, as it apparently needs to be said: no, “community” is not the opposite of “open source” — please stop sullying its good name by attaching it to licenses that are deliberately not open source! But even if they were more aptly named (e.g. “the restricted clause” or “the controlled use license” or — perhaps most honest of all — “the please-don’t-put-me-out-of-business-during-the-next-reInvent-keynote clause”), these licenses suffer from a serious problem: they are almost certainly asserting rights that the copyright holder doesn’t in fact have.
Err codemadness.org 70 i 33286 If I sell you a book that I wrote, I can restrict your right to read it aloud for an audience, or sell a translation, or write a sequel; these restrictions are rights afforded the copyright holder. I cannot, however, tell you that you can’t put the book on the same bookshelf as that of my rival, or that you can’t read the book while flying a particular airline I dislike, or that you aren’t allowed to read the book and also work for a company that competes with mine. (Lest you think that last example absurd, that’s almost verbatim the language in the new Confluent Community (sic) License.) I personally think that none of these licenses would withstand a court challenge, but I also don’t think it will come to that: because the vendors behind these licenses will surely fear that they wouldn’t survive litigation, they will deliberately avoid inviting such challenges. In some ways, this netherworld is even worse, as the license becomes a vessel for unverifiable fear of arbitrary liability.
Err codemadness.org 70 i 33287 let me put this to you as directly as possible: cloud services providers are emphatically not going to license your proprietary software. I mean, you knew that, right? The whole premise with your proprietary license is that you are finding that there is no way to compete with the operational dominance of the cloud services providers; did you really believe that those same dominant cloud services providers can’t simply reimplement your LDAP integration or whatever? The cloud services providers are currently reproprietarizing all of computing — they are making their own CPUs for crying out loud! — reimplementing the bits of your software that they need in the name of the service that their customers want (and will pay for!) won’t even move the needle in terms of their effort.
Err codemadness.org 70 i 33288 Worse than all of this (and the reason why this madness needs to stop): licenses that are vague with respect to permitted use are corporate toxin. Any company that has been through an acquisition can speak of the peril of the due diligence license audit: the acquiring entity is almost always deep pocketed and (not unrelatedly) risk averse; the last thing that any company wants is for a deal to go sideways because of concern over unbounded liability to some third-party knuckle-head. So companies that engage in license tomfoolery are doing worse than merely not solving their own problem: they are potentially poisoning the wellspring of their own community.
Err codemadness.org 70 i 33289 in the end, open source will survive its midlife questioning just as people in midlife get through theirs: by returning to its core values and by finding rejuvenation in its communities. Indeed, we can all find solace in the fact that while life is finite, our values and our communities survive us — and that our engagement with them is our most important legacy.

Err codemadness.org 70 i 33290
Err codemadness.org 70 i 33291 Err codemadness.org 70 i 33292
    Err codemadness.org 70 i 33293
  • See the article for the rest
  • Err codemadness.org 70 i 33294
Err codemadness.org 70 i 33295 Err codemadness.org 70 i 33296


Err codemadness.org 70 i 33297 Err codemadness.org 70 i 33298

###Donald Knuth - The Yoda of Silicon Valley

Err codemadness.org 70 i 33299 Err codemadness.org 70 i 33300
Err codemadness.org 70 i 33301

For half a century, the Stanford computer scientist Donald Knuth, who bears a slight resemblance to Yoda — albeit standing 6-foot-4 and wearing glasses — has reigned as the spirit-guide of the algorithmic realm.
Err codemadness.org 70 i 33302 He is the author of “The Art of Computer Programming,” a continuing four-volume opus that is his life’s work. The first volume debuted in 1968, and the collected volumes (sold as a boxed set for about $250) were included by American Scientist in 2013 on its list of books that shaped the last century of science — alongside a special edition of “The Autobiography of Charles Darwin,” Tom Wolfe’s “The Right Stuff,” Rachel Carson’s “Silent Spring” and monographs by Albert Einstein, John von Neumann and Richard Feynman.
Err codemadness.org 70 i 33303 With more than one million copies in print, “The Art of Computer Programming” is the Bible of its field. “Like an actual bible, it is long and comprehensive; no other book is as comprehensive,” said Peter Norvig, a director of research at Google. After 652 pages, volume one closes with a blurb on the back cover from Bill Gates: “You should definitely send me a résumé if you can read the whole thing.”
Err codemadness.org 70 i 33304 The volume opens with an excerpt from “McCall’s Cookbook”:

Err codemadness.org 70 i 33305
Err codemadness.org 70 i 33306 Err codemadness.org 70 i 33307

Here is your book, the one your thousands of letters have asked us to publish. It has taken us years to do, checking and rechecking countless recipes to bring you only the best, only the interesting, only the perfect.

Err codemadness.org 70 i 33308 Err codemadness.org 70 i 33309
Err codemadness.org 70 i 33310

Inside are algorithms, the recipes that feed the digital age — although, as Dr. Knuth likes to point out, algorithms can also be found on Babylonian tablets from 3,800 years ago. He is an esteemed algorithmist; his name is attached to some of the field’s most important specimens, such as the Knuth-Morris-Pratt string-searching algorithm. Devised in 1970, it finds all occurrences of a given word or pattern of letters in a text — for instance, when you hit Command+F to search for a keyword in a document.
Err codemadness.org 70 i 33311 Now 80, Dr. Knuth usually dresses like the youthful geek he was when he embarked on this odyssey: long-sleeved T-shirt under a short-sleeved T-shirt, with jeans, at least at this time of year. In those early days, he worked close to the machine, writing “in the raw,” tinkering with the zeros and ones.

Err codemadness.org 70 i 33312
Err codemadness.org 70 i 33313 Err codemadness.org 70 i 33314
    Err codemadness.org 70 i 33315
  • See the article for the rest
  • Err codemadness.org 70 i 33316
Err codemadness.org 70 i 33317 Err codemadness.org 70 i 33318


Err codemadness.org 70 i 33319 Err codemadness.org 70 i 33320

##News Roundup
Err codemadness.org 70 i 33321 ###Let’s Encrypt: Certbot For OpenBSD’s httpd

Err codemadness.org 70 i 33322 Err codemadness.org 70 i 33323
    Err codemadness.org 70 i 33324
  • Intro
  • Err codemadness.org 70 i 33325
Err codemadness.org 70 i 33326 Err codemadness.org 70 i 33327
Err codemadness.org 70 i 33328

Let’s Encrypt is “a free, automated, and open Certificate Authority”.
Err codemadness.org 70 i 33329 Certbot is “an easy-to-use automatic client that fetches and deploys SSL/TLS certificates for your web server”, well known as “the official Let’s Encrypt client”.
Err codemadness.org 70 i 33330 I remember well how excited I felt when I read Let’s Encrypt’s “Our First Certificate Is Now Live” in 2015.
Err codemadness.org 70 i 33331 How wonderful the goal of them is; it’s to “give people the digital certificates they need in order to enable HTTPS (SSL/TLS) for websites, for free” “to create a more secure and privacy-respecting Web”!
Err codemadness.org 70 i 33332 Since this year, they have begun to support even ACME v2 and Wildcard Certificate!
Err codemadness.org 70 i 33333 Well, in OpenBSD as well as other operating systems, it’s easy and comfortable to have their big help 😊

Err codemadness.org 70 i 33334
Err codemadness.org 70 i 33335 Err codemadness.org 70 i 33336
    Err codemadness.org 70 i 33337
  • Environment
  • Err codemadness.org 70 i 33338
  • OS: OpenBSD 6.4 amd64
  • Err codemadness.org 70 i 33339
  • Web Server: OpenBSD’s httpd
  • Err codemadness.org 70 i 33340
  • Certification: Let’s Encrypt with Certbot 0.27
  • Err codemadness.org 70 i 33341
  • Reference: OpenBSD’s httpd
  • Err codemadness.org 70 i 33342
Err codemadness.org 70 i 33343 Err codemadness.org 70 i 33344


Err codemadness.org 70 i 33345 Err codemadness.org 70 i 33346

###FreeBSD 12 released: Here is how to upgrade FreeBSD 11 to 12

Err codemadness.org 70 i 33347 Err codemadness.org 70 i 33348
Err codemadness.org 70 i 33349

The FreeBSD project announces the availability of FreeBSD 12.0-RELEASE. It is the first release of the stable/12 branch. The new version comes with updated software and features for a wild variety of architectures. The latest release provides performance improvements and better support for FreeBSD jails and more. One can benefit greatly using an upgraded version of FreeBSD.

Err codemadness.org 70 i 33350
Err codemadness.org 70 i 33351 Err codemadness.org 70 i 33352
Err codemadness.org 70 i 33353

FreeBSD 12.0 supports amd64, i386, powerpc, powerpc64, powerpcspe, sparc64, armv6, armv7, and aarch64 architectures. One can run it on a standalone server or desktop system. Another option is to run it on Raspberry PI computer. FreeBSD 12 also runs on popular cloud service providers such as AWS EC2/Lightsail or Google compute VM.

Err codemadness.org 70 i 33354
Err codemadness.org 70 i 33355 Err codemadness.org 70 i 33356
    Err codemadness.org 70 i 33357
  • Err codemadness.org 70 i 33358

    New features and highlights:

    Err codemadness.org 70 i 33359
  • Err codemadness.org 70 i 33360
  • Err codemadness.org 70 i 33361

    OpenSSL version 1.1.1a (LTS)

    Err codemadness.org 70 i 33362
  • Err codemadness.org 70 i 33363
  • Err codemadness.org 70 i 33364

    OpenSSH server 7.8p1

    Err codemadness.org 70 i 33365
  • Err codemadness.org 70 i 33366
  • Err codemadness.org 70 i 33367

    Unbound server 1.8.1

    Err codemadness.org 70 i 33368
  • Err codemadness.org 70 i 33369
  • Err codemadness.org 70 i 33370

    Clang and co 6.0.1

    Err codemadness.org 70 i 33371
  • Err codemadness.org 70 i 33372
  • Err codemadness.org 70 i 33373

    The FreeBSD installer supports EFI+GELI as an installation option

    Err codemadness.org 70 i 33374
  • Err codemadness.org 70 i 33375
  • Err codemadness.org 70 i 33376

    VIMAGE FreeBSD kernel configuration option has been enabled by default. VIMAGE was the main reason I custom compiled FreeBSD for the last few years. No more custom compile for me.

    Err codemadness.org 70 i 33377
  • Err codemadness.org 70 i 33378
  • Err codemadness.org 70 i 33379

    Graphics drivers for modern ATI/AMD and Intel graphics cards are now available in the FreeBSD ports collection

    Err codemadness.org 70 i 33380
  • Err codemadness.org 70 i 33381
  • Err codemadness.org 70 i 33382

    ZFS has been updated to include new sysctl(s), vfs.zfs.arc_min_prefetch_ms and vfs.zfs.arc_min_prescient_prefetch_ms, which improve performance of the zpool scrub subcommand

    Err codemadness.org 70 i 33383
  • Err codemadness.org 70 i 33384
  • Err codemadness.org 70 i 33385

    The pf packet filter is now usable within a jail using vnet

    Err codemadness.org 70 i 33386
  • Err codemadness.org 70 i 33387
  • Err codemadness.org 70 i 33388

    KDE updated to version 5.12.5

    Err codemadness.org 70 i 33389
  • Err codemadness.org 70 i 33390
  • Err codemadness.org 70 i 33391

    The NFS version 4.1 includes pNFS server support

    Err codemadness.org 70 i 33392
  • Err codemadness.org 70 i 33393
  • Err codemadness.org 70 i 33394

    Perl 5.26.2

    Err codemadness.org 70 i 33395
  • Err codemadness.org 70 i 33396
  • Err codemadness.org 70 i 33397

    The default PAGER now defaults to less for most commands

    Err codemadness.org 70 i 33398
  • Err codemadness.org 70 i 33399
  • Err codemadness.org 70 i 33400

    The dd utility has been updated to add the status=progress option to match GNU/Linux dd command to show progress bar while running dd

    Err codemadness.org 70 i 33401
  • Err codemadness.org 70 i 33402
  • Err codemadness.org 70 i 33403

    FreeBSD now supports ext4 for read/write operation

    Err codemadness.org 70 i 33404
  • Err codemadness.org 70 i 33405
  • Err codemadness.org 70 i 33406

    Python 2.7

    Err codemadness.org 70 i 33407
  • Err codemadness.org 70 i 33408
  • Err codemadness.org 70 i 33409

    much more

    Err codemadness.org 70 i 33410
  • Err codemadness.org 70 i 33411
Err codemadness.org 70 i 33412 Err codemadness.org 70 i 33413


Err codemadness.org 70 i 33414 Err codemadness.org 70 i 33415

###Six Ways to Level Up Your nmap Game

Err codemadness.org 70 i 33416 Err codemadness.org 70 i 33417
Err codemadness.org 70 i 33418

nmap is a network exploration tool and security / port scanner.
Err codemadness.org 70 i 33419 If you’ve heard of it, and you’re like me, you’ve most likely used it like this:
Err codemadness.org 70 i 33420 ie, you’ve pointed it at an IP address and observed the output which tells you the open ports on a host.
Err codemadness.org 70 i 33421 I used nmap like this for years, but only recently grokked the manual to see what else it could do. Here’s a quick look and some of the more useful things I found out.

Err codemadness.org 70 i 33422
Err codemadness.org 70 i 33423 Err codemadness.org 70 i 33424
    Err codemadness.org 70 i 33425
  • Err codemadness.org 70 i 33426
      Err codemadness.org 70 i 33427
    1. Scan a Network
    2. Err codemadness.org 70 i 33428
    Err codemadness.org 70 i 33429
  • Err codemadness.org 70 i 33430
  • Err codemadness.org 70 i 33431
      Err codemadness.org 70 i 33432
    1. Scan All Ports
    2. Err codemadness.org 70 i 33433
    Err codemadness.org 70 i 33434
  • Err codemadness.org 70 i 33435
  • Err codemadness.org 70 i 33436
      Err codemadness.org 70 i 33437
    1. Get service versions
    2. Err codemadness.org 70 i 33438
    Err codemadness.org 70 i 33439
  • Err codemadness.org 70 i 33440
  • Err codemadness.org 70 i 33441
      Err codemadness.org 70 i 33442
    1. Use -A for more data
    2. Err codemadness.org 70 i 33443
    Err codemadness.org 70 i 33444
  • Err codemadness.org 70 i 33445
  • Err codemadness.org 70 i 33446
      Err codemadness.org 70 i 33447
    1. Find out what nmap is up to
    2. Err codemadness.org 70 i 33448
    Err codemadness.org 70 i 33449
  • Err codemadness.org 70 i 33450
  • Err codemadness.org 70 i 33451
      Err codemadness.org 70 i 33452
    1. Script your own scans with NSE
    2. Err codemadness.org 70 i 33453
    Err codemadness.org 70 i 33454
  • Err codemadness.org 70 i 33455
Err codemadness.org 70 i 33456 Err codemadness.org 70 i 33457


Err codemadness.org 70 i 33458 Err codemadness.org 70 i 33459

###[NetBSD Desktop]

Err codemadness.org 70 i 33460 Err codemadness.org 70 i 33461 Err codemadness.org 70 i 33468 Err codemadness.org 70 i 33469


Err codemadness.org 70 i 33470 Err codemadness.org 70 i 33471

##Beastie Bits

Err codemadness.org 70 i 33472 Err codemadness.org 70 i 33473 Err codemadness.org 70 i 33486 Err codemadness.org 70 i 33487


Err codemadness.org 70 i 33488 Err codemadness.org 70 i 33489

##Feedback/Questions

Err codemadness.org 70 i 33490 Err codemadness.org 70 i 33491 Err codemadness.org 70 i 33496 Err codemadness.org 70 i 33497


Err codemadness.org 70 i 33498 Err codemadness.org 70 i 33499
    Err codemadness.org 70 i 33500
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 33501
Err codemadness.org 70 i 33502 Err codemadness.org 70 i 33503


]]> Err codemadness.org 70 i 33504
Err codemadness.org 70 i 33505 https://fireside.fm/player/v2/FYhhasNR+dzMYMCix Err codemadness.org 70 i 33506 Err codemadness.org 70 i 33507 ]]> Err codemadness.org 70 i 33508 Err codemadness.org 70 i 33509
Err codemadness.org 70 i 33510 Err codemadness.org 70 i 33511 Episode 276: Ho, Ho, Ho - 12.0 | BSD Now 276 Err codemadness.org 70 i 33512 https://www.bsdnow.tv/276 Err codemadness.org 70 i 33513 http://feed.jupiter.zone/bsdnow#entry-3028 Err codemadness.org 70 i 33514 Thu, 13 Dec 2018 01:15:00 -0800 Err codemadness.org 70 i 33515 Allan Jude Err codemadness.org 70 i 33516 Err codemadness.org 70 i 33517 full Err codemadness.org 70 i 33518 Allan Jude Err codemadness.org 70 i 33519 FreeBSD 12.0 is finally here, partly-cloudy IPsec VPN, KLEAK with NetBSD, How to create synth repos, GhostBSD author interview, and more. Err codemadness.org 70 i 33520 1:10:41 Err codemadness.org 70 i 33521 no Err codemadness.org 70 i 33522 Err codemadness.org 70 i 33523 FreeBSD 12.0 is finally here, partly-cloudy IPsec VPN, KLEAK with NetBSD, How to create synth repos, GhostBSD author interview, and more. Err codemadness.org 70 i 33524 <p>##Headlines<br> Err codemadness.org 70 i 33525 <a href="https://www.freebsd.org/releases/12.0R/relnotes.html">FreeBSD 12.0 is available</a></p> Err codemadness.org 70 i 33526 <ul> Err codemadness.org 70 i 33527 <li>After a long release cycle, the wait is over: FreeBSD 12.0 is now officially available.</li> Err codemadness.org 70 i 33528 <li>We’ve picked a few interesting things to cover in the show, make sure to read the full <a href="https://www.freebsd.org/releases/12.0R/relnotes.html">Release Notes</a></li> Err codemadness.org 70 i 33529 </ul> Err codemadness.org 70 i 33530 <blockquote> Err codemadness.org 70 i 33531 <p>Userland:<br> Err codemadness.org 70 i 33532 Group permissions on /dev/acpi have been changed to allow users in the operator GID to invoke acpiconf(8) to suspend the system.<br> Err codemadness.org 70 i 33533 The default devfs.rules(5) configuration has been updated to allow mount_fusefs(8) with jail(8).<br> Err codemadness.org 70 i 33534 The default PAGER now defaults to less(1) for most commands.<br> Err codemadness.org 70 i 33535 The newsyslog(8) utility has been updated to reject configuration entries that specify setuid(2) or executable log files.<br> Err codemadness.org 70 i 33536 The WITH_REPRODUCIBLE_BUILD src.conf(5) knob has been enabled by default.<br> Err codemadness.org 70 i 33537 A new src.conf(5) knob, WITH_RETPOLINE, has been added to enable the retpoline mitigation for userland builds.<br> Err codemadness.org 70 i 33538 Userland applications:<br> Err codemadness.org 70 i 33539 The dtrace(1) utility has been updated to support if and else statements.<br> Err codemadness.org 70 i 33540 The legacy gdb(1) utility included in the base system is now installed to /usr/libexec for use with crashinfo(8). The gdbserver and gdbtui utilities are no longer installed. For interactive debugging, lldb(1) or a modern version of gdb(1) from devel/gdb should be used. A new src.conf(5) knob, WITHOUT_GDB_LIBEXEC has been added to disable building gdb(1). The gdb(1) utility is still installed in /usr/bin on sparc64.<br> Err codemadness.org 70 i 33541 The setfacl(1) utility has been updated to include a new flag, -R, used to operate recursively on directories.<br> Err codemadness.org 70 i 33542 The geli(8) utility has been updated to provide support for initializing multiple providers at once when they use the same passphrase and/or key.<br> Err codemadness.org 70 i 33543 The dd(1) utility has been updated to add the status=progress option, which prints the status of its operation on a single line once per second, similar to GNU dd(1).<br> Err codemadness.org 70 i 33544 The date(1) utility has been updated to include a new flag, -I, which prints its output in ISO 8601 formatting.<br> Err codemadness.org 70 i 33545 The bectl(8) utility has been added, providing an administrative interface for managing ZFS boot environments, similar to sysutils/beadm.<br> Err codemadness.org 70 i 33546 The bhyve(8) utility has been updated to add a new subcommand to the -l and -s flags, help, which when used, prints a list of supported LPC and PCI devices, respectively.<br> Err codemadness.org 70 i 33547 The tftp(1) utility has been updated to change the default transfer mode from ASCII to binary.<br> Err codemadness.org 70 i 33548 The chown(8) utility has been updated to prevent overflow of UID or GID arguments where the argument exceeded UID_MAX or GID_MAX, respectively.<br> Err codemadness.org 70 i 33549 Kernel:<br> Err codemadness.org 70 i 33550 The ACPI subsystem has been updated to implement Device object types for ACPI 6.0 support, required for some Dell, Inc. Poweredge™ AMD® Epyc™ systems.<br> Err codemadness.org 70 i 33551 The amdsmn(4) and amdtemp(4) drivers have been updated to attach to AMD® Ryzen 2™ host bridges.<br> Err codemadness.org 70 i 33552 The amdtemp(4) driver has been updated to fix temperature reporting for AMD® 2990WX CPUs.<br> Err codemadness.org 70 i 33553 Kernel Configuration:<br> Err codemadness.org 70 i 33554 The VIMAGE kernel configuration option has been enabled by default.<br> Err codemadness.org 70 i 33555 The dumpon(8) utility has been updated to add support for compressed kernel crash dumps when the kernel configuration file includes the GZIO option. See rc.conf(5) and dumpon(8) for additional information.<br> Err codemadness.org 70 i 33556 The NUMA option has been enabled by default in the amd64 GENERIC and MINIMAL kernel configurations.<br> Err codemadness.org 70 i 33557 Device Drivers:<br> Err codemadness.org 70 i 33558 The random(4) driver has been updated to remove the Yarrow algorithm. The Fortuna algorithm remains the default, and now only, available algorithm.<br> Err codemadness.org 70 i 33559 The vt(4) driver has been updated with performance improvements, drawing text at rates ranging from 2- to 6-times faster.<br> Err codemadness.org 70 i 33560 Deprecated Drivers:<br> Err codemadness.org 70 i 33561 The lmc(4) driver has been removed.<br> Err codemadness.org 70 i 33562 The ixgb(4) driver has been removed.<br> Err codemadness.org 70 i 33563 The nxge(4) driver has been removed.<br> Err codemadness.org 70 i 33564 The vxge(4) driver has been removed.<br> Err codemadness.org 70 i 33565 The jedec_ts(4) driver has been removed in 12.0-RELEASE, and its functionality replaced by jedec_dimm(4).<br> Err codemadness.org 70 i 33566 The DRM driver for modern graphics chipsets has been marked deprecated and marked for removal in FreeBSD 13. The DRM kernel modules are available from graphics/drm-stable-kmod or graphics/drm-legacy-kmod in the Ports Collection as well as via pkg(8). Additionally, the kernel modules have been added to the lua loader.conf(5) module_blacklist, as installation from the Ports Collection or pkg(8) is strongly recommended.<br> Err codemadness.org 70 i 33567 The following drivers have been deprecated in FreeBSD 12.0, and not present in FreeBSD 13.0: ae(4), de(4), ed(4), ep(4), ex(4), fe(4), pcn(4), sf(4), sn(4), tl(4), tx(4), txp(4), vx(4), wb(4), xe(4)<br> Err codemadness.org 70 i 33568 Storage:<br> Err codemadness.org 70 i 33569 The UFS/FFS filesystem has been updated to support check hashes to cylinder-group maps. Support for check hashes is available only for UFS2.<br> Err codemadness.org 70 i 33570 The UFS/FFS filesystem has been updated to consolidate TRIM/BIO_DELETE commands, reducing read/write requests due to fewer TRIM messages being sent simultaneously.<br> Err codemadness.org 70 i 33571 TRIM consolidation support has been enabled by default in the UFS/FFS filesystem. TRIM consolidation can be disabled by setting the vfs.ffs.dotrimcons sysctl(8) to 0, or adding vfs.ffs.dotrimcons=0 to sysctl.conf(5).<br> Err codemadness.org 70 i 33572 NFS:<br> Err codemadness.org 70 i 33573 The NFS version 4.1 server has been updated to include pNFS server support.<br> Err codemadness.org 70 i 33574 ZFS:<br> Err codemadness.org 70 i 33575 ZFS has been updated to include new sysctl(8)s, vfs.zfs.arc_min_prefetch_ms and vfs.zfs.arc_min_prescient_prefetch_ms, which improve performance of the zpool(8) scrub subcommand.<br> Err codemadness.org 70 i 33576 The new spacemap_v2 zpool feature has been added. This provides more efficient encoding of spacemaps, especially for full vdev spacemaps.<br> Err codemadness.org 70 i 33577 The large_dnode zpool feature been imported, allowing better compatibility with pools created under ZFS-on-Linux 0.7.x<br> Err codemadness.org 70 i 33578 Many bug fixes have been applied to the device removal feature. This feature allows you to remove a non-redundant or mirror vdev from a pool by relocating its data to other vdevs.<br> Err codemadness.org 70 i 33579 Includes the fix for PR 229614 that could cause processes to hang in zil_commit()<br> Err codemadness.org 70 i 33580 Boot Loader Changes:<br> Err codemadness.org 70 i 33581 The lua loader(8) has been updated to detect a list of installed kernels to boot.<br> Err codemadness.org 70 i 33582 The loader(8) has been updated to support geli(8) for all architectures and all disk-like devices.<br> Err codemadness.org 70 i 33583 The loader(8) has been updated to add support for loading Intel® microcode updates early during the boot process.</p> Err codemadness.org 70 i 33584 <p>Networking:<br> Err codemadness.org 70 i 33585 The pf(4) packet filter is now usable within a jail(8) using vnet(9).<br> Err codemadness.org 70 i 33586 The pf(4) packet filter has been updated to use rmlock(9) instead of rwlock(9), resulting in significant performance improvements.<br> Err codemadness.org 70 i 33587 The SO_REUSEPORT_LB option has been added to the network stack, allowing multiple programs or threads to bind to the same port, and incoming connections load balanced using a hash function.</p> Err codemadness.org 70 i 33588 </blockquote> Err codemadness.org 70 i 33589 <ul> Err codemadness.org 70 i 33590 <li>Again, read the release notes for a full list, check out the <a href="https://www.freebsd.org/releases/12.0R/errata.html">errata notices</a>. A big THANKS to the entire release engineering team and all developers involved in the release, much appreciated!</li> Err codemadness.org 70 i 33591 </ul> Err codemadness.org 70 i 33592 <hr> Err codemadness.org 70 i 33593 <p>###<a href="https://www.adminbyaccident.com/politics/abandon-linux-move-freebsd-illumos/">Abandon Linux. Move to FreeBSD or Illumos</a></p> Err codemadness.org 70 i 33594 <blockquote> Err codemadness.org 70 i 33595 <p>If you use GNU/Linux and you are only on opensource, you may be doing it wrong. Here’s why.<br> Err codemadness.org 70 i 33596 Is your company based on opensource based software only? Do you have a bunch of developers hitting some kind of server you have installed for them to “do their thing”? Being it for economical reasons (remember to donate), being it for philosophycal ones, you may have skipped good alternatives. The BSD’s and Illumos.<br> Err codemadness.org 70 i 33597 I bet you are running some sort of Debian, openSuSE or CentOS. It’s very discouraging having entered into the IT field recently and discover many of the people you meet do not even recognise the name BSD. Naming Solaris seems like naming the evil itself. The problem being many do not know why. They can’t point anything specific other than it’s fading out. This has recently shown strong when Oracle officials have stated development for new features has ceased and almost 90 % of developers for Solaris have been layed off. AIX seems alien to almost everybody unless you have a white beard. And all this is silly.<br> Err codemadness.org 70 i 33598 And here’s why. You are certainly missing two important features that FreeBSD and Illumos derivatives are enjoying. A full virtualization technology, much better and fully developed compared to the LXC containers in the Linux world, such as Jails on BSD, Zones in Solaris/Illumos, and the great ZFS file system which both share.<br> Err codemadness.org 70 i 33599 You have probably heard of a new Linux filesystem named Btrfs, which by the way, development has been dropped from the Red Hat side. Trying to emulate ZFS, Oracle started developing Btrfs file system before they acquired Sun (the original developer of ZFS), and SuSE joined the effort as well as Red Hat. It is not as well developed as ZFS and it hasn’t been tested in production environments as extensively as the former has. That leaves some uncertainty on using it or not. Red Hat leaving it aside does add some more. Although some organizations have used it with various grades of success.<br> Err codemadness.org 70 i 33600 But why is this anyhow interesting for a sysadmin or any organization? Well… FreeBSD (descendant of Berkeley UNIX) and SmartOS (based on Illumos) aglutinate some features that make administration easier, safer, faster and more reliable. The dream of any systems administrator.<br> Err codemadness.org 70 i 33601 To start, the ZFS filesystem combines the typical filesystem with a volume manager. It includes protection against corruption, snapshots and copy-on-write clones, as well as volume manager.<br> Err codemadness.org 70 i 33602 Jails is another interesting piece of technology. Linux folks usually associate this as a sort of chroot. It isn’t. It is somehow inspired by it but as you may know you can escape from a chroot environment with a blink of an eye. Jails are not called jails casually. The name has a purpose. Contain processes and programs within a defined and totally controlled environment. Jails appeared first in FreeBSD in the year 2000. Solaris Zones debuted on 2005 (now called containers) are the now proprietary version of those.<br> Err codemadness.org 70 i 33603 There are some other technologies on Linux such as Btrfs or Docker. But they have some caveats. Btrfs hasn’t been fully developed yet and it’s hasn’t been proved as much in production environments as ZFS has. And some problems have arisen recently although the developers are pushing the envelope. At some time they will match ZFS capabilities for sure. Docker is growing exponentially and it’s one of the cool technologies of modern times. The caveat is, as before, the development of this technology hasn’t been fully developed. Unlike other virtualization technologies this is not a kernel playing on top of another kernel. This is virtualization at the OS level, meaning differentiated environments can coexist on a single host, “hitting” the same unique kernel which controls and shares the resources. The problem comes when you put Docker on top of any other virtualization technology such as KVM or Xen. It breaks the purpose of it and has a performance penalty.<br> Err codemadness.org 70 i 33604 I have arrived into the IT field with very little knowledge, that is true. But what I see strikes me. Working in a bank has allowed me to see a big production environment that needs the highest of the availability and reliability. This is, sometimes, achieved by bruteforce. And it’s legitime and adequate. Redundancy has a reason and a purpose for example. But some other times it looks, it feels, like killing flies with cannons. More hardware, more virtual machines, more people, more of this, more of that. They can afford it, so they try to maintain the cost low but at the end of the day there is a chunky budget to back operations.<br> Err codemadness.org 70 i 33605 But here comes reality. You’re not a bank and you need to squeeze your investment as much as possible. By using FreeBSD jails you can avoid the performance penalty of KVM or Xen virtualization. Do you use VMWare or Hyper-V? You can avoid both and gain in performance. Not only that, control and manageability are equal as before, and sometimes easier to administer. There are four ways to operate them which can be divided in two categories. Hardcore and Human Being. For the Hardcore use the FreeBSD handbook and investigate as much as you can. For the Human Being way there are three options to use. Ezjail, Iocage and CBSD which are frameworks or programs as you may call to manage jails. I personally use Iocage but I have also used Ezjail.<br> Err codemadness.org 70 i 33606 How can you use jails on your benefit? Ever tried to configure some new software and failed miserably? You can have three different jails running at the same time with different configurations. Want to try a new configuration in a production piece of hardware without applying it on the final users? You can do that with a small jail while the production environment is on in another bigger, chunkier jail.<br> Err codemadness.org 70 i 33607 Want to divide the hardware as a replica of the division of the team/s you are working with? Want to sell virtual machines with bare metal performance? Do you want to isolate some piece of critical software or even data in a more controlled environment? Do you have different clients and you want to use the same hardware but you want to avoid them seeing each other at the same time you maintain performance and reliability?<br> Err codemadness.org 70 i 33608 Are you a developer and you have to have reliable and portable snapshots of your work? Do you want to try new options-designs without breaking your previous work, in a timeless fashion? You can work on something, clone the jail and apply the new ideas on the project in a matter of seconds. You can stop there, export the filesystem snapshot containing all the environment and all your work and place it on a thumbdrive to later import it on a big production system. Want to change that image properties such as the network stack interface and ip? This is just one command away from you.<br> Err codemadness.org 70 i 33609 But what properties can you assign to a jail and how can I manage them you may be wondering. Hostname, disk quota, i/o, memory, cpu limits, network isolation, network virtualization, snapshots and the manage of those, migration and root privilege isolation to name a few. You can also clone them and import and export them between different systems. Some of these things because of ZFS. Iocage is a python program to manage jails and it takes profit from ZFS advantages.<br> Err codemadness.org 70 i 33610 But FreeBSD is not Linux you may say. No it is not. There are no run levels. The systemd factor is out of this equation. This is so since the begginning. Ever wondered where did vi come from? The TCP/IP stack? Your beloved macOS from Apple? All this is coming from the FreeBSD project. If you are used to Linux your adaptation period with any BSD will be short, very short. You will almost feel at home. Used to packaged software using yum or apt-get? No worries. With pkgng, the package management tool used in FreeBSD has almost 27.000 compiled packages for you to use. Almost all software found on any of the important GNU/Linux distros can be found here. Java, Python, C, C++, Clang, GCC, Javascript frameworks, Ruby, PHP, MySQL and the major forks, etc. All this opensource software, and much more, is available at your fingertips.<br> Err codemadness.org 70 i 33611 I am a developer and… frankly my time is money and I appreciate both much more than dealing with systems configuration, etc. You can set a VM using VMWare or VirtualBox and play with barebones FreeBSD or you can use TrueOS (a derivative) which comes in a server version and a desktop oriented one. The latter will be easier for you to play with. You may be doing this already with Linux. There is a third and very sensible option. FreeNAS, developed by iXSystems. It is FreeBSD based and offers all these technologies with a GUI. VMWare, Hyper-V? Nowadays you can get your hands off the CLI and get a decent, usable, nice GUI.<br> Err codemadness.org 70 i 33612 You say you play on the cloud. The major players already include FreeBSD in their offerings. You can find it in Amazon AWS or Azure (with official Microsoft support contracts too!). You can also find it in DigitalOcean and other hosting providers. There is no excuse. You can use it at home, at the office, with old or new hardware and in the cloud as well. You can even pay for a support contract to use it. Joyent, the developers of SmartOS have their own cloud with different locations around the globe. Have a look on them too.<br> Err codemadness.org 70 i 33613 If you want the original of ZFS and zones you may think of Solaris. But it’s fading away. But it really isn’t. When Oracle bouth Sun many people ran away in an stampide fashion. Some of the good folks working at Sun founded new projects. One of these is Illumos. Joyent is a company formed by people who developed these technologies. They are a cloud operator, have been recently bought by Samsung and have a very competent team of people providing great tech solutions. They have developed an OS, called SmartOS (based on Illumos) with all these features. The source from this goes back to the early days of UNIX. Do you remember the days of OpenSolaris when Sun opensourced the crown jewels? There you have it. A modern opensource UNIX operating system with the roots in their original place and the head planted on today’s needs.<br> Err codemadness.org 70 i 33614 In conclusion. If you are on GNU/Linux and you only use opensource software you may be doing it wrong. And missing goodies you may need and like. Once you put your hands on them, trust me, you won’t look back. And if you have some “old fashioned” admins who know Solaris, you can bring them to a new profitable and exciting life with both systems.<br> Err codemadness.org 70 i 33615 Still not convinced? Would you have ever imagined Microsoft supporting Linux? Even loving it? They do love now FreeBSD. And not only that, they provide their own image in the Azure Cloud and you can get Microsoft support, payed support if you want to use the platform on Azure. Ain’t it… surprising? Convincing at all?<br> Err codemadness.org 70 i 33616 PS: I haven’t mentioned both softwares, FreeBSD and SmartOS do have a Linux translation layer. This means you can run Linux binaries on them and the program won’t cough at all. Since the ABI stays stable the only thing you need to run a Linux binary is a translation between the different system calls and the libraries. Remember POSIX? Choose your poison and enjoy it.</p> Err codemadness.org 70 i 33617 </blockquote> Err codemadness.org 70 i 33618 <hr> Err codemadness.org 70 i 33619 <p>###<a href="https://bradackerman.com/posts/2018-12-05-bsd-cloudy-vpn/">A partly-cloudy IPsec VPN</a></p> Err codemadness.org 70 i 33620 <ul> Err codemadness.org 70 i 33621 <li>Audience</li> Err codemadness.org 70 i 33622 </ul> Err codemadness.org 70 i 33623 <blockquote> Err codemadness.org 70 i 33624 <p>I’m assuming that readers have at least a basic knowledge of TCP/IP networking and some UNIX or UNIX-like systems, but not necessarily OpenBSD or FreeBSD. This post will therefore be light on details that aren’t OS specific and are likely to be encountered in normal use (e.g., how to use vi or another text editor.) For more information on these topics, read Absolute FreeBSD (3ed.) by Michael W. Lucas.</p> Err codemadness.org 70 i 33625 </blockquote> Err codemadness.org 70 i 33626 <ul> Err codemadness.org 70 i 33627 <li>Overview</li> Err codemadness.org 70 i 33628 </ul> Err codemadness.org 70 i 33629 <blockquote> Err codemadness.org 70 i 33630 <p>I’m redoing my DigitalOcean virtual machines (which they call droplets). My requirements are:</p> Err codemadness.org 70 i 33631 </blockquote> Err codemadness.org 70 i 33632 <ul> Err codemadness.org 70 i 33633 <li>VPN</li> Err codemadness.org 70 i 33634 <li>Road-warrior access, so I can use private network resources from anywhere.</li> Err codemadness.org 70 i 33635 <li>A site-to-site VPN, extending my home network to my VPSes.</li> Err codemadness.org 70 i 33636 <li>Hosting for public and private network services.</li> Err codemadness.org 70 i 33637 <li>A proxy service to provide a public IP address to services hosted at home.</li> Err codemadness.org 70 i 33638 </ul> Err codemadness.org 70 i 33639 <blockquote> Err codemadness.org 70 i 33640 <p>The last item is on the list because I don’t actually have a public IP address at home; my firewall’s external address is in the RFC 1918 space, and the entire apartment building shares a single public IPv4 address.1 (IPv6? Don’t I wish.) The end-state network will include one OpenBSD droplet providing firewall, router, and VPN services; and one FreeBSD droplet hosting multiple jailed services.<br> Err codemadness.org 70 i 33641 I’ll be providing access via these droplets to a NextCloud instance at home. A simple NAT on the DO router droplet isn’t going to work, because packets going from home to the internet would exit through the apartment building’s connection and not through the VPN. It’s possible that I could do work around this issue with packet tagging using the pf firewall, but HAProxy is simple to configure and unlikely to result in hard-to-debug problems. relayd is also an option, but doesn’t have the TLS parsing abilities of HAProxy, which I’ll be using later on.<br> Err codemadness.org 70 i 33642 Since this system includes jails running on a VPS, and they’ve got RFC 1918 addresses, I want them reachable from my home network. Once that’s done, I can access the private address space from anywhere through a VPN connection to the cloudy router.<br> Err codemadness.org 70 i 33643 The VPN itself will be of the IPsec variety. IPsec is the traditional enterprise VPN standard, and is even used for classified applications, but has a (somewhat-deserved) reputation for complexity, but recent versions of OpenBSD turn down the difficulty by quite a bit.</p> Err codemadness.org 70 i 33644 </blockquote> Err codemadness.org 70 i 33645 <ul> Err codemadness.org 70 i 33646 <li>The end-state network should look like: <a href="https://d33wubrfki0l68.cloudfront.net/0ccf46fb057e0d50923209bb2e2af0122637e72d/e714e/201812-cloudy/endstate.svg">https://d33wubrfki0l68.cloudfront.net/0ccf46fb057e0d50923209bb2e2af0122637e72d/e714e/201812-cloudy/endstate.svg</a></li> Err codemadness.org 70 i 33647 </ul> Err codemadness.org 70 i 33648 <blockquote> Err codemadness.org 70 i 33649 <p>This VPN both separates internal network traffic from public traffic and uses encryption to prevent interception or tampering.<br> Err codemadness.org 70 i 33650 Once traffic has been encrypted, decrypting it without the key would, as Bruce Schneier once put it, require a computer built from something other than matter that occupies something other than space. Dyson spheres and a frakton of causality violation would possibly work, as would mathemagical technology that alters the local calendar such that P=NP.2 Black-bag jobs and/or suborning cloud provider employees doesn’t quite have that guarantee of impossibility, however. If you have serious security requirements, you’ll need to do better than a random blog entry.</p> Err codemadness.org 70 i 33651 </blockquote> Err codemadness.org 70 i 33652 <hr> Err codemadness.org 70 i 33653 <p>##News Roundup<br> Err codemadness.org 70 i 33654 <a href="https://netbsd.org/gallery/presentations/maxv/kleak.pdf">KLEAK: Practical Kernel Memory Disclosure Detection</a></p> Err codemadness.org 70 i 33655 <blockquote> Err codemadness.org 70 i 33656 <p>Modern operating systems such as NetBSD, macOS, and Windows isolate their kernel from userspace programs to increase fault tolerance and to protect against malicious manipulations [10]. User space programs have to call into the kernel to request resources, via system calls or ioctls. This communication between user space and kernel space crosses a security boundary. Kernel memory disclosures - also known as kernel information leaks - denote the inadvertent copying of uninitialized bytes from kernel space to user space. Such disclosed memory may contain cryptographic keys, information about the kernel memory layout, or other forms of secret data. Even though kernel memory disclosures do not allow direct exploitation of a system, they lay the ground for it.<br> Err codemadness.org 70 i 33657 We introduce KLEAK, a simple approach to dynamically detect kernel information leaks. Simply said, KLEAK utilizes a rudimentary form of taint tracking: it taints kernel memory with marker values, lets the data travel through the kernel and scans the buffers exchanged between the kernel and the user space for these marker values. By using compiler instrumentation and rotating the markers at regular intervals, KLEAK significantly reduces the number of false positives, and is able to yield relevant results with little effort.<br> Err codemadness.org 70 i 33658 Our approach is practically feasible as we prove with an implementation for the NetBSD kernel. A small performance penalty is introduced, but the system remains usable. In addition to implementing KLEAK in the NetBSD kernel, we applied our approach to FreeBSD 11.2. In total, we detected 21 previously unknown kernel memory disclosures in NetBSD-current and FreeBSD 11.2, which were fixed subsequently. As a follow-up, the projects’ developers manually audited related kernel areas and identified dozens of other kernel memory disclosures.<br> Err codemadness.org 70 i 33659 The remainder of this paper is structured as follows. Section II discusses the bug class of kernel memory disclosures. Section III presents KLEAK to dynamically detect instances of this bug class. Section IV discusses the results of applying KLEAK to NetBSD-current and FreeBSD 11.2. Section V reviews prior research. Finally, Section VI concludes this paper.</p> Err codemadness.org 70 i 33660 </blockquote> Err codemadness.org 70 i 33661 <hr> Err codemadness.org 70 i 33662 <p>###<a href="https://www.dragonflybsd.org/docs/howtos/How_To_Create_Official_Synth_Repo/">How To Create Official Synth Repo</a></p> Err codemadness.org 70 i 33663 <ul> Err codemadness.org 70 i 33664 <li> Err codemadness.org 70 i 33665 <p>System Environment</p> Err codemadness.org 70 i 33666 </li> Err codemadness.org 70 i 33667 <li> Err codemadness.org 70 i 33668 <p>Make sure /usr/dports is updated and that it contains no cruft (git pull; git status). Remove any cruft.</p> Err codemadness.org 70 i 33669 </li> Err codemadness.org 70 i 33670 <li> Err codemadness.org 70 i 33671 <p>Make sure your ‘synth’ is up-to-date ‘pkg upgrade synth’. If you already updated your system you may have to build synth from scratch, from /usr/dports/ports-mgmt/synth.</p> Err codemadness.org 70 i 33672 </li> Err codemadness.org 70 i 33673 <li> Err codemadness.org 70 i 33674 <p>Make sure /etc/make.conf is clean.</p> Err codemadness.org 70 i 33675 </li> Err codemadness.org 70 i 33676 <li> Err codemadness.org 70 i 33677 <p>Update /usr/src to the current master, make sure there is no cruft in it</p> Err codemadness.org 70 i 33678 </li> Err codemadness.org 70 i 33679 <li> Err codemadness.org 70 i 33680 <p>Do a full buildworld, buildkernel, installkernel and installworld</p> Err codemadness.org 70 i 33681 </li> Err codemadness.org 70 i 33682 <li> Err codemadness.org 70 i 33683 <p>Reboot</p> Err codemadness.org 70 i 33684 </li> Err codemadness.org 70 i 33685 <li> Err codemadness.org 70 i 33686 <p>After the reboot, before proceeding, run ‘uname -a’ and make sure you are now on the desired release or development kernel.</p> Err codemadness.org 70 i 33687 </li> Err codemadness.org 70 i 33688 <li> Err codemadness.org 70 i 33689 <p>Synth Environment</p> Err codemadness.org 70 i 33690 </li> Err codemadness.org 70 i 33691 <li> Err codemadness.org 70 i 33692 <p>/usr/local/etc/synth/ contains the synth configuration. It should contain a synth.ini file (you may have to rename the template), and you will have to create or edit a LiveSystem-make.conf file.</p> Err codemadness.org 70 i 33693 </li> Err codemadness.org 70 i 33694 <li> Err codemadness.org 70 i 33695 <p>System requirements are hefty. Just linking chromium alone eats at least 30GB, for example. Concurrent c++ compiles can eat up to 2GB per process. We recommend at least 100GB of SSD based swap space and 300GB of free space on the filesystem.</p> Err codemadness.org 70 i 33696 </li> Err codemadness.org 70 i 33697 <li> Err codemadness.org 70 i 33698 <p>synth.ini should contain this. Plus modify the builders and jobs to suit your system. With 128G of ram, 30/30 or 40/25 works well. If you have 32G of ram, maybe 8/8 or less.</p> Err codemadness.org 70 i 33699 </li> Err codemadness.org 70 i 33700 </ul> Err codemadness.org 70 i 33701 <p><code>; Take care when hand editing!</code><br> Err codemadness.org 70 i 33702 <code></code><br> Err codemadness.org 70 i 33703 <code>[Global Configuration]</code><br> Err codemadness.org 70 i 33704 <code>profileselected= LiveSystem</code><br> Err codemadness.org 70 i 33705 <code></code><br> Err codemadness.org 70 i 33706 <code>[LiveSystem]</code><br> Err codemadness.org 70 i 33707 <code>Operatingsystem= DragonFly</code><br> Err codemadness.org 70 i 33708 <code>Directorypackages= /build/synth/livepackages</code><br> Err codemadness.org 70 i 33709 <code>Directoryrepository= /build/synth/livepackages/All</code><br> Err codemadness.org 70 i 33710 <code>Directoryportsdir= /build/synth/dports</code><br> Err codemadness.org 70 i 33711 <code>Directoryoptions= /build/synth/options</code><br> Err codemadness.org 70 i 33712 <code>Directorydistfiles= /usr/distfiles</code><br> Err codemadness.org 70 i 33713 <code>Directorybuildbase= /build/synth/build</code><br> Err codemadness.org 70 i 33714 <code>Directorylogs= /build/synth/logs</code><br> Err codemadness.org 70 i 33715 <code>Directoryccache= disabled</code><br> Err codemadness.org 70 i 33716 <code>Directorysystem= /</code><br> Err codemadness.org 70 i 33717 <code>Numberofbuilders= 30</code><br> Err codemadness.org 70 i 33718 <code>Maxjobsperbuilder= 30</code><br> Err codemadness.org 70 i 33719 <code>Tmpfsworkdir= true</code><br> Err codemadness.org 70 i 33720 <code>Tmpfslocalbase= true</code><br> Err codemadness.org 70 i 33721 <code>Displaywithncurses= true</code><br> Err codemadness.org 70 i 33722 <code>leverageprebuilt= false</code></p> Err codemadness.org 70 i 33723 <ul> Err codemadness.org 70 i 33724 <li>LiveSystem-make.conf should contain one line to restrict licensing to only what is allowed to be built as a binary package:</li> Err codemadness.org 70 i 33725 </ul> Err codemadness.org 70 i 33726 <p><code>LICENSESACCEPTED= NONE</code></p> Err codemadness.org 70 i 33727 <ul> Err codemadness.org 70 i 33728 <li> Err codemadness.org 70 i 33729 <p>Make sure there is no other cruft in /usr/local/etc/synth/</p> Err codemadness.org 70 i 33730 </li> Err codemadness.org 70 i 33731 <li> Err codemadness.org 70 i 33732 <p>In the example above, the synth working dirs are in “/build/synth”. Make sure the base directories exist. Clean out any cruft for a fresh build from-scratch:</p> Err codemadness.org 70 i 33733 </li> Err codemadness.org 70 i 33734 </ul> Err codemadness.org 70 i 33735 <p><code>rm -rf /build/synth/livepackages/*</code><br> Err codemadness.org 70 i 33736 <code>rm -rf /build/synth/logs</code><br> Err codemadness.org 70 i 33737 <code>mkdir /build/synth/logs</code></p> Err codemadness.org 70 i 33738 <ul> Err codemadness.org 70 i 33739 <li>Run synth everything. I recommend doing this in a ‘screen’ session in case you lose your ssh session (assuming you are ssh’d into the build machine).</li> Err codemadness.org 70 i 33740 </ul> Err codemadness.org 70 i 33741 <p><code>(optionally start a screen session)</code><br> Err codemadness.org 70 i 33742 <code>synth everything</code></p> Err codemadness.org 70 i 33743 <ul> Err codemadness.org 70 i 33744 <li>A full synth build takes over 24 hours to run on a 48-core box, around 12 hours to run on a 64-core box. On a 4-core/8-thread box it will take at least 3 days. There will be times when swap space is heavily used. If you have not run synth before, monitor your memory and swap loads to make sure you have configured the jobs properly. If you are overloading the system, you may have to ^C the synth run, reduce the jobs, and start it again. It will pick up where it left off.</li> Err codemadness.org 70 i 33745 <li>When synth finishes, let it rebuild the database. You then have a working binary repo.</li> Err codemadness.org 70 i 33746 <li>It is usually a good idea to run synth several times to pick up any stuff it couldn’t build the first time. Each of these incremental runs may take a few hours, depending on what it tries to build.</li> Err codemadness.org 70 i 33747 </ul> Err codemadness.org 70 i 33748 <hr> Err codemadness.org 70 i 33749 <p>###<a href="https://www.freebsdbytes.com/2018/11/interview-eric-turgeon-founder-maintainer-ghostbsd/">Interview with founder and maintainer of GhostBSD, Eric Turgeon</a></p> Err codemadness.org 70 i 33750 <ul> Err codemadness.org 70 i 33751 <li>Thanks you Eric for taking part. To start off, could you tell us a little about yourself, just a bit of background?</li> Err codemadness.org 70 i 33752 <li>How did you become interested in open source?</li> Err codemadness.org 70 i 33753 <li>When and how did you get interested in the BSD operating systems?</li> Err codemadness.org 70 i 33754 <li>On your Twitter profile, you state that you are an automation engineer at iXsystems. Can you share what you do in your day-to-day job?</li> Err codemadness.org 70 i 33755 <li>You are the founder and project lead of GhostBSD. Could you describe GhostBSD to those who have never used it or never heard of it?</li> Err codemadness.org 70 i 33756 <li>Developing an operating system is not a small thing. What made you decide to start the GhostBSD project and not join another “desktop FreeBSD” related project, such as PC-BSD and DesktopBSD at the time?</li> Err codemadness.org 70 i 33757 <li>How did you get to the name GhostBSD? Did you consider any other names?</li> Err codemadness.org 70 i 33758 <li>You recently released GhostBSD 18.10? What’s new in that version and what are the key features? What has changed since GhostBSD 11.1?</li> Err codemadness.org 70 i 33759 <li>The current version is 18.10. Will the next version be 19.04 (like Ubuntu’s version numbering), or is a new version released after the next stable TrueOS release</li> Err codemadness.org 70 i 33760 <li>Can you tell us something about the development team? Is it yourself, or are there other core team members? I think I saw two other developers on your Github project page.</li> Err codemadness.org 70 i 33761 <li>How about the relationship with the community? Is it possible for a community member to contribute, and how are those contributions handled?</li> Err codemadness.org 70 i 33762 <li>What was the biggest challenge during development?</li> Err codemadness.org 70 i 33763 <li>If you had to pick one feature readers should check out in GhostBSD, what is it and why?</li> Err codemadness.org 70 i 33764 <li>What is the relationship between iXsystems and the GhostBSD project? Or is GhostBSD a hobby project that you run separately from your work at iXsystems?</li> Err codemadness.org 70 i 33765 <li>What is the relationship between GhostBSD and TrueOS? Is GhostBSD TrueOS with the MATE desktop on top, or are there other modifications, additions, and differences?</li> Err codemadness.org 70 i 33766 <li>Where does GhostBSD go from here? What are your plans for 2019?</li> Err codemadness.org 70 i 33767 <li>Is there anything else that wasn’t asked or that you want to share?</li> Err codemadness.org 70 i 33768 </ul> Err codemadness.org 70 i 33769 <hr> Err codemadness.org 70 i 33770 <p>##Beastie Bits</p> Err codemadness.org 70 i 33771 <ul> Err codemadness.org 70 i 33772 <li><a href="https://twitter.com/gonzoua/status/1071252700023508993">dialog(1) script to select audio output on FreeBSD</a></li> Err codemadness.org 70 i 33773 <li><a href="http://blog.obligd.com/posts/erlang-otp-on-openbsd.html">Erlang otp on OpenBSD</a></li> Err codemadness.org 70 i 33774 <li><a href="https://oshogbo.vexillium.org/blog/57/">Capsicum</a></li> Err codemadness.org 70 i 33775 <li><a href="https://blog.grem.de/sysadmin/FreeBSD-On-rpi3-With-crochet-2018-10-27-18-00.html">https://blog.grem.de/sysadmin/FreeBSD-On-rpi3-With-crochet-2018-10-27-18-00.html</a></li> Err codemadness.org 70 i 33776 <li><a href="https://blog.netbsd.org/tnf/entry/introductionto%C2%B5ubsana_clean">Introduction to µUBSan - a clean-room reimplementation of the Undefined Behavior Sanitizer runtime</a></li> Err codemadness.org 70 i 33777 <li><a href="https://pkgsrc.org/pkgsrcCon/2018/talks.html">pkgsrcCon 2018 in Berlin - Videos</a></li> Err codemadness.org 70 i 33778 <li><a href="https://freebsddesktop.github.io/2018/12/08/drm-kmod-primer.html">Getting started with drm-kmod</a></li> Err codemadness.org 70 i 33779 </ul> Err codemadness.org 70 i 33780 <hr> Err codemadness.org 70 i 33781 <p>##Feedback/Questions</p> Err codemadness.org 70 i 33782 <ul> Err codemadness.org 70 i 33783 <li>Malcolm - <a href="http://dpaste.com/28PYSGK">Show segment idea</a></li> Err codemadness.org 70 i 33784 <li>Fraser - <a href="http://dpaste.com/38W3PRB">Question: FreeBSD official binary package options</a></li> Err codemadness.org 70 i 33785 <li>Harri - <a href="http://dpaste.com/3SENZ7H#wrap">BSD Magazine</a></li> Err codemadness.org 70 i 33786 </ul> Err codemadness.org 70 i 33787 <hr> Err codemadness.org 70 i 33788 <ul> Err codemadness.org 70 i 33789 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 33790 </ul> Err codemadness.org 70 i 33791 <hr> Err codemadness.org 70 i 33792 Err codemadness.org 70 i 33793 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, Illumos, IPSec, VPN, OpenBGPD, KLEAK, Synth Err codemadness.org 70 i 33794 Err codemadness.org 70 i 33795 FreeBSD 12.0 is finally here, partly-cloudy IPsec VPN, KLEAK with NetBSD, How to create synth repos, GhostBSD author interview, and more.

Err codemadness.org 70 i 33796 Err codemadness.org 70 i 33797

##Headlines
Err codemadness.org 70 i 33798 ###FreeBSD 12.0 is available

Err codemadness.org 70 i 33799 Err codemadness.org 70 i 33800
    Err codemadness.org 70 i 33801
  • After a long release cycle, the wait is over: FreeBSD 12.0 is now officially available.
  • Err codemadness.org 70 i 33802
  • We’ve picked a few interesting things to cover in the show, make sure to read the full Release Notes
  • Err codemadness.org 70 i 33803
Err codemadness.org 70 i 33804 Err codemadness.org 70 i 33805
Err codemadness.org 70 i 33806

Userland:
Err codemadness.org 70 i 33807 Group permissions on /dev/acpi have been changed to allow users in the operator GID to invoke acpiconf(8) to suspend the system.
Err codemadness.org 70 i 33808 The default devfs.rules(5) configuration has been updated to allow mount_fusefs(8) with jail(8).
Err codemadness.org 70 i 33809 The default PAGER now defaults to less(1) for most commands.
Err codemadness.org 70 i 33810 The newsyslog(8) utility has been updated to reject configuration entries that specify setuid(2) or executable log files.
Err codemadness.org 70 i 33811 The WITH_REPRODUCIBLE_BUILD src.conf(5) knob has been enabled by default.
Err codemadness.org 70 i 33812 A new src.conf(5) knob, WITH_RETPOLINE, has been added to enable the retpoline mitigation for userland builds.
Err codemadness.org 70 i 33813 Userland applications:
Err codemadness.org 70 i 33814 The dtrace(1) utility has been updated to support if and else statements.
Err codemadness.org 70 i 33815 The legacy gdb(1) utility included in the base system is now installed to /usr/libexec for use with crashinfo(8). The gdbserver and gdbtui utilities are no longer installed. For interactive debugging, lldb(1) or a modern version of gdb(1) from devel/gdb should be used. A new src.conf(5) knob, WITHOUT_GDB_LIBEXEC has been added to disable building gdb(1). The gdb(1) utility is still installed in /usr/bin on sparc64.
Err codemadness.org 70 i 33816 The setfacl(1) utility has been updated to include a new flag, -R, used to operate recursively on directories.
Err codemadness.org 70 i 33817 The geli(8) utility has been updated to provide support for initializing multiple providers at once when they use the same passphrase and/or key.
Err codemadness.org 70 i 33818 The dd(1) utility has been updated to add the status=progress option, which prints the status of its operation on a single line once per second, similar to GNU dd(1).
Err codemadness.org 70 i 33819 The date(1) utility has been updated to include a new flag, -I, which prints its output in ISO 8601 formatting.
Err codemadness.org 70 i 33820 The bectl(8) utility has been added, providing an administrative interface for managing ZFS boot environments, similar to sysutils/beadm.
Err codemadness.org 70 i 33821 The bhyve(8) utility has been updated to add a new subcommand to the -l and -s flags, help, which when used, prints a list of supported LPC and PCI devices, respectively.
Err codemadness.org 70 i 33822 The tftp(1) utility has been updated to change the default transfer mode from ASCII to binary.
Err codemadness.org 70 i 33823 The chown(8) utility has been updated to prevent overflow of UID or GID arguments where the argument exceeded UID_MAX or GID_MAX, respectively.
Err codemadness.org 70 i 33824 Kernel:
Err codemadness.org 70 i 33825 The ACPI subsystem has been updated to implement Device object types for ACPI 6.0 support, required for some Dell, Inc. Poweredge™ AMD® Epyc™ systems.
Err codemadness.org 70 i 33826 The amdsmn(4) and amdtemp(4) drivers have been updated to attach to AMD® Ryzen 2™ host bridges.
Err codemadness.org 70 i 33827 The amdtemp(4) driver has been updated to fix temperature reporting for AMD® 2990WX CPUs.
Err codemadness.org 70 i 33828 Kernel Configuration:
Err codemadness.org 70 i 33829 The VIMAGE kernel configuration option has been enabled by default.
Err codemadness.org 70 i 33830 The dumpon(8) utility has been updated to add support for compressed kernel crash dumps when the kernel configuration file includes the GZIO option. See rc.conf(5) and dumpon(8) for additional information.
Err codemadness.org 70 i 33831 The NUMA option has been enabled by default in the amd64 GENERIC and MINIMAL kernel configurations.
Err codemadness.org 70 i 33832 Device Drivers:
Err codemadness.org 70 i 33833 The random(4) driver has been updated to remove the Yarrow algorithm. The Fortuna algorithm remains the default, and now only, available algorithm.
Err codemadness.org 70 i 33834 The vt(4) driver has been updated with performance improvements, drawing text at rates ranging from 2- to 6-times faster.
Err codemadness.org 70 i 33835 Deprecated Drivers:
Err codemadness.org 70 i 33836 The lmc(4) driver has been removed.
Err codemadness.org 70 i 33837 The ixgb(4) driver has been removed.
Err codemadness.org 70 i 33838 The nxge(4) driver has been removed.
Err codemadness.org 70 i 33839 The vxge(4) driver has been removed.
Err codemadness.org 70 i 33840 The jedec_ts(4) driver has been removed in 12.0-RELEASE, and its functionality replaced by jedec_dimm(4).
Err codemadness.org 70 i 33841 The DRM driver for modern graphics chipsets has been marked deprecated and marked for removal in FreeBSD 13. The DRM kernel modules are available from graphics/drm-stable-kmod or graphics/drm-legacy-kmod in the Ports Collection as well as via pkg(8). Additionally, the kernel modules have been added to the lua loader.conf(5) module_blacklist, as installation from the Ports Collection or pkg(8) is strongly recommended.
Err codemadness.org 70 i 33842 The following drivers have been deprecated in FreeBSD 12.0, and not present in FreeBSD 13.0: ae(4), de(4), ed(4), ep(4), ex(4), fe(4), pcn(4), sf(4), sn(4), tl(4), tx(4), txp(4), vx(4), wb(4), xe(4)
Err codemadness.org 70 i 33843 Storage:
Err codemadness.org 70 i 33844 The UFS/FFS filesystem has been updated to support check hashes to cylinder-group maps. Support for check hashes is available only for UFS2.
Err codemadness.org 70 i 33845 The UFS/FFS filesystem has been updated to consolidate TRIM/BIO_DELETE commands, reducing read/write requests due to fewer TRIM messages being sent simultaneously.
Err codemadness.org 70 i 33846 TRIM consolidation support has been enabled by default in the UFS/FFS filesystem. TRIM consolidation can be disabled by setting the vfs.ffs.dotrimcons sysctl(8) to 0, or adding vfs.ffs.dotrimcons=0 to sysctl.conf(5).
Err codemadness.org 70 i 33847 NFS:
Err codemadness.org 70 i 33848 The NFS version 4.1 server has been updated to include pNFS server support.
Err codemadness.org 70 i 33849 ZFS:
Err codemadness.org 70 i 33850 ZFS has been updated to include new sysctl(8)s, vfs.zfs.arc_min_prefetch_ms and vfs.zfs.arc_min_prescient_prefetch_ms, which improve performance of the zpool(8) scrub subcommand.
Err codemadness.org 70 i 33851 The new spacemap_v2 zpool feature has been added. This provides more efficient encoding of spacemaps, especially for full vdev spacemaps.
Err codemadness.org 70 i 33852 The large_dnode zpool feature been imported, allowing better compatibility with pools created under ZFS-on-Linux 0.7.x
Err codemadness.org 70 i 33853 Many bug fixes have been applied to the device removal feature. This feature allows you to remove a non-redundant or mirror vdev from a pool by relocating its data to other vdevs.
Err codemadness.org 70 i 33854 Includes the fix for PR 229614 that could cause processes to hang in zil_commit()
Err codemadness.org 70 i 33855 Boot Loader Changes:
Err codemadness.org 70 i 33856 The lua loader(8) has been updated to detect a list of installed kernels to boot.
Err codemadness.org 70 i 33857 The loader(8) has been updated to support geli(8) for all architectures and all disk-like devices.
Err codemadness.org 70 i 33858 The loader(8) has been updated to add support for loading Intel® microcode updates early during the boot process.

Err codemadness.org 70 i 33859

Networking:
Err codemadness.org 70 i 33860 The pf(4) packet filter is now usable within a jail(8) using vnet(9).
Err codemadness.org 70 i 33861 The pf(4) packet filter has been updated to use rmlock(9) instead of rwlock(9), resulting in significant performance improvements.
Err codemadness.org 70 i 33862 The SO_REUSEPORT_LB option has been added to the network stack, allowing multiple programs or threads to bind to the same port, and incoming connections load balanced using a hash function.

Err codemadness.org 70 i 33863
Err codemadness.org 70 i 33864 Err codemadness.org 70 i 33865
    Err codemadness.org 70 i 33866
  • Again, read the release notes for a full list, check out the errata notices. A big THANKS to the entire release engineering team and all developers involved in the release, much appreciated!
  • Err codemadness.org 70 i 33867
Err codemadness.org 70 i 33868 Err codemadness.org 70 i 33869


Err codemadness.org 70 i 33870 Err codemadness.org 70 i 33871

###Abandon Linux. Move to FreeBSD or Illumos

Err codemadness.org 70 i 33872 Err codemadness.org 70 i 33873
Err codemadness.org 70 i 33874

If you use GNU/Linux and you are only on opensource, you may be doing it wrong. Here’s why.
Err codemadness.org 70 i 33875 Is your company based on opensource based software only? Do you have a bunch of developers hitting some kind of server you have installed for them to “do their thing”? Being it for economical reasons (remember to donate), being it for philosophycal ones, you may have skipped good alternatives. The BSD’s and Illumos.
Err codemadness.org 70 i 33876 I bet you are running some sort of Debian, openSuSE or CentOS. It’s very discouraging having entered into the IT field recently and discover many of the people you meet do not even recognise the name BSD. Naming Solaris seems like naming the evil itself. The problem being many do not know why. They can’t point anything specific other than it’s fading out. This has recently shown strong when Oracle officials have stated development for new features has ceased and almost 90 % of developers for Solaris have been layed off. AIX seems alien to almost everybody unless you have a white beard. And all this is silly.
Err codemadness.org 70 i 33877 And here’s why. You are certainly missing two important features that FreeBSD and Illumos derivatives are enjoying. A full virtualization technology, much better and fully developed compared to the LXC containers in the Linux world, such as Jails on BSD, Zones in Solaris/Illumos, and the great ZFS file system which both share.
Err codemadness.org 70 i 33878 You have probably heard of a new Linux filesystem named Btrfs, which by the way, development has been dropped from the Red Hat side. Trying to emulate ZFS, Oracle started developing Btrfs file system before they acquired Sun (the original developer of ZFS), and SuSE joined the effort as well as Red Hat. It is not as well developed as ZFS and it hasn’t been tested in production environments as extensively as the former has. That leaves some uncertainty on using it or not. Red Hat leaving it aside does add some more. Although some organizations have used it with various grades of success.
Err codemadness.org 70 i 33879 But why is this anyhow interesting for a sysadmin or any organization? Well… FreeBSD (descendant of Berkeley UNIX) and SmartOS (based on Illumos) aglutinate some features that make administration easier, safer, faster and more reliable. The dream of any systems administrator.
Err codemadness.org 70 i 33880 To start, the ZFS filesystem combines the typical filesystem with a volume manager. It includes protection against corruption, snapshots and copy-on-write clones, as well as volume manager.
Err codemadness.org 70 i 33881 Jails is another interesting piece of technology. Linux folks usually associate this as a sort of chroot. It isn’t. It is somehow inspired by it but as you may know you can escape from a chroot environment with a blink of an eye. Jails are not called jails casually. The name has a purpose. Contain processes and programs within a defined and totally controlled environment. Jails appeared first in FreeBSD in the year 2000. Solaris Zones debuted on 2005 (now called containers) are the now proprietary version of those.
Err codemadness.org 70 i 33882 There are some other technologies on Linux such as Btrfs or Docker. But they have some caveats. Btrfs hasn’t been fully developed yet and it’s hasn’t been proved as much in production environments as ZFS has. And some problems have arisen recently although the developers are pushing the envelope. At some time they will match ZFS capabilities for sure. Docker is growing exponentially and it’s one of the cool technologies of modern times. The caveat is, as before, the development of this technology hasn’t been fully developed. Unlike other virtualization technologies this is not a kernel playing on top of another kernel. This is virtualization at the OS level, meaning differentiated environments can coexist on a single host, “hitting” the same unique kernel which controls and shares the resources. The problem comes when you put Docker on top of any other virtualization technology such as KVM or Xen. It breaks the purpose of it and has a performance penalty.
Err codemadness.org 70 i 33883 I have arrived into the IT field with very little knowledge, that is true. But what I see strikes me. Working in a bank has allowed me to see a big production environment that needs the highest of the availability and reliability. This is, sometimes, achieved by bruteforce. And it’s legitime and adequate. Redundancy has a reason and a purpose for example. But some other times it looks, it feels, like killing flies with cannons. More hardware, more virtual machines, more people, more of this, more of that. They can afford it, so they try to maintain the cost low but at the end of the day there is a chunky budget to back operations.
Err codemadness.org 70 i 33884 But here comes reality. You’re not a bank and you need to squeeze your investment as much as possible. By using FreeBSD jails you can avoid the performance penalty of KVM or Xen virtualization. Do you use VMWare or Hyper-V? You can avoid both and gain in performance. Not only that, control and manageability are equal as before, and sometimes easier to administer. There are four ways to operate them which can be divided in two categories. Hardcore and Human Being. For the Hardcore use the FreeBSD handbook and investigate as much as you can. For the Human Being way there are three options to use. Ezjail, Iocage and CBSD which are frameworks or programs as you may call to manage jails. I personally use Iocage but I have also used Ezjail.
Err codemadness.org 70 i 33885 How can you use jails on your benefit? Ever tried to configure some new software and failed miserably? You can have three different jails running at the same time with different configurations. Want to try a new configuration in a production piece of hardware without applying it on the final users? You can do that with a small jail while the production environment is on in another bigger, chunkier jail.
Err codemadness.org 70 i 33886 Want to divide the hardware as a replica of the division of the team/s you are working with? Want to sell virtual machines with bare metal performance? Do you want to isolate some piece of critical software or even data in a more controlled environment? Do you have different clients and you want to use the same hardware but you want to avoid them seeing each other at the same time you maintain performance and reliability?
Err codemadness.org 70 i 33887 Are you a developer and you have to have reliable and portable snapshots of your work? Do you want to try new options-designs without breaking your previous work, in a timeless fashion? You can work on something, clone the jail and apply the new ideas on the project in a matter of seconds. You can stop there, export the filesystem snapshot containing all the environment and all your work and place it on a thumbdrive to later import it on a big production system. Want to change that image properties such as the network stack interface and ip? This is just one command away from you.
Err codemadness.org 70 i 33888 But what properties can you assign to a jail and how can I manage them you may be wondering. Hostname, disk quota, i/o, memory, cpu limits, network isolation, network virtualization, snapshots and the manage of those, migration and root privilege isolation to name a few. You can also clone them and import and export them between different systems. Some of these things because of ZFS. Iocage is a python program to manage jails and it takes profit from ZFS advantages.
Err codemadness.org 70 i 33889 But FreeBSD is not Linux you may say. No it is not. There are no run levels. The systemd factor is out of this equation. This is so since the begginning. Ever wondered where did vi come from? The TCP/IP stack? Your beloved macOS from Apple? All this is coming from the FreeBSD project. If you are used to Linux your adaptation period with any BSD will be short, very short. You will almost feel at home. Used to packaged software using yum or apt-get? No worries. With pkgng, the package management tool used in FreeBSD has almost 27.000 compiled packages for you to use. Almost all software found on any of the important GNU/Linux distros can be found here. Java, Python, C, C++, Clang, GCC, Javascript frameworks, Ruby, PHP, MySQL and the major forks, etc. All this opensource software, and much more, is available at your fingertips.
Err codemadness.org 70 i 33890 I am a developer and… frankly my time is money and I appreciate both much more than dealing with systems configuration, etc. You can set a VM using VMWare or VirtualBox and play with barebones FreeBSD or you can use TrueOS (a derivative) which comes in a server version and a desktop oriented one. The latter will be easier for you to play with. You may be doing this already with Linux. There is a third and very sensible option. FreeNAS, developed by iXSystems. It is FreeBSD based and offers all these technologies with a GUI. VMWare, Hyper-V? Nowadays you can get your hands off the CLI and get a decent, usable, nice GUI.
Err codemadness.org 70 i 33891 You say you play on the cloud. The major players already include FreeBSD in their offerings. You can find it in Amazon AWS or Azure (with official Microsoft support contracts too!). You can also find it in DigitalOcean and other hosting providers. There is no excuse. You can use it at home, at the office, with old or new hardware and in the cloud as well. You can even pay for a support contract to use it. Joyent, the developers of SmartOS have their own cloud with different locations around the globe. Have a look on them too.
Err codemadness.org 70 i 33892 If you want the original of ZFS and zones you may think of Solaris. But it’s fading away. But it really isn’t. When Oracle bouth Sun many people ran away in an stampide fashion. Some of the good folks working at Sun founded new projects. One of these is Illumos. Joyent is a company formed by people who developed these technologies. They are a cloud operator, have been recently bought by Samsung and have a very competent team of people providing great tech solutions. They have developed an OS, called SmartOS (based on Illumos) with all these features. The source from this goes back to the early days of UNIX. Do you remember the days of OpenSolaris when Sun opensourced the crown jewels? There you have it. A modern opensource UNIX operating system with the roots in their original place and the head planted on today’s needs.
Err codemadness.org 70 i 33893 In conclusion. If you are on GNU/Linux and you only use opensource software you may be doing it wrong. And missing goodies you may need and like. Once you put your hands on them, trust me, you won’t look back. And if you have some “old fashioned” admins who know Solaris, you can bring them to a new profitable and exciting life with both systems.
Err codemadness.org 70 i 33894 Still not convinced? Would you have ever imagined Microsoft supporting Linux? Even loving it? They do love now FreeBSD. And not only that, they provide their own image in the Azure Cloud and you can get Microsoft support, payed support if you want to use the platform on Azure. Ain’t it… surprising? Convincing at all?
Err codemadness.org 70 i 33895 PS: I haven’t mentioned both softwares, FreeBSD and SmartOS do have a Linux translation layer. This means you can run Linux binaries on them and the program won’t cough at all. Since the ABI stays stable the only thing you need to run a Linux binary is a translation between the different system calls and the libraries. Remember POSIX? Choose your poison and enjoy it.

Err codemadness.org 70 i 33896
Err codemadness.org 70 i 33897 Err codemadness.org 70 i 33898


Err codemadness.org 70 i 33899 Err codemadness.org 70 i 33900

###A partly-cloudy IPsec VPN

Err codemadness.org 70 i 33901 Err codemadness.org 70 i 33902
    Err codemadness.org 70 i 33903
  • Audience
  • Err codemadness.org 70 i 33904
Err codemadness.org 70 i 33905 Err codemadness.org 70 i 33906
Err codemadness.org 70 i 33907

I’m assuming that readers have at least a basic knowledge of TCP/IP networking and some UNIX or UNIX-like systems, but not necessarily OpenBSD or FreeBSD. This post will therefore be light on details that aren’t OS specific and are likely to be encountered in normal use (e.g., how to use vi or another text editor.) For more information on these topics, read Absolute FreeBSD (3ed.) by Michael W. Lucas.

Err codemadness.org 70 i 33908
Err codemadness.org 70 i 33909 Err codemadness.org 70 i 33910
    Err codemadness.org 70 i 33911
  • Overview
  • Err codemadness.org 70 i 33912
Err codemadness.org 70 i 33913 Err codemadness.org 70 i 33914
Err codemadness.org 70 i 33915

I’m redoing my DigitalOcean virtual machines (which they call droplets). My requirements are:

Err codemadness.org 70 i 33916
Err codemadness.org 70 i 33917 Err codemadness.org 70 i 33918
    Err codemadness.org 70 i 33919
  • VPN
  • Err codemadness.org 70 i 33920
  • Road-warrior access, so I can use private network resources from anywhere.
  • Err codemadness.org 70 i 33921
  • A site-to-site VPN, extending my home network to my VPSes.
  • Err codemadness.org 70 i 33922
  • Hosting for public and private network services.
  • Err codemadness.org 70 i 33923
  • A proxy service to provide a public IP address to services hosted at home.
  • Err codemadness.org 70 i 33924
Err codemadness.org 70 i 33925 Err codemadness.org 70 i 33926
Err codemadness.org 70 i 33927

The last item is on the list because I don’t actually have a public IP address at home; my firewall’s external address is in the RFC 1918 space, and the entire apartment building shares a single public IPv4 address.1 (IPv6? Don’t I wish.) The end-state network will include one OpenBSD droplet providing firewall, router, and VPN services; and one FreeBSD droplet hosting multiple jailed services.
Err codemadness.org 70 i 33928 I’ll be providing access via these droplets to a NextCloud instance at home. A simple NAT on the DO router droplet isn’t going to work, because packets going from home to the internet would exit through the apartment building’s connection and not through the VPN. It’s possible that I could do work around this issue with packet tagging using the pf firewall, but HAProxy is simple to configure and unlikely to result in hard-to-debug problems. relayd is also an option, but doesn’t have the TLS parsing abilities of HAProxy, which I’ll be using later on.
Err codemadness.org 70 i 33929 Since this system includes jails running on a VPS, and they’ve got RFC 1918 addresses, I want them reachable from my home network. Once that’s done, I can access the private address space from anywhere through a VPN connection to the cloudy router.
Err codemadness.org 70 i 33930 The VPN itself will be of the IPsec variety. IPsec is the traditional enterprise VPN standard, and is even used for classified applications, but has a (somewhat-deserved) reputation for complexity, but recent versions of OpenBSD turn down the difficulty by quite a bit.

Err codemadness.org 70 i 33931
Err codemadness.org 70 i 33932 Err codemadness.org 70 i 33933 Err codemadness.org 70 i 33936 Err codemadness.org 70 i 33937
Err codemadness.org 70 i 33938

This VPN both separates internal network traffic from public traffic and uses encryption to prevent interception or tampering.
Err codemadness.org 70 i 33939 Once traffic has been encrypted, decrypting it without the key would, as Bruce Schneier once put it, require a computer built from something other than matter that occupies something other than space. Dyson spheres and a frakton of causality violation would possibly work, as would mathemagical technology that alters the local calendar such that P=NP.2 Black-bag jobs and/or suborning cloud provider employees doesn’t quite have that guarantee of impossibility, however. If you have serious security requirements, you’ll need to do better than a random blog entry.

Err codemadness.org 70 i 33940
Err codemadness.org 70 i 33941 Err codemadness.org 70 i 33942


Err codemadness.org 70 i 33943 Err codemadness.org 70 i 33944

##News Roundup
Err codemadness.org 70 i 33945 ###KLEAK: Practical Kernel Memory Disclosure Detection

Err codemadness.org 70 i 33946 Err codemadness.org 70 i 33947
Err codemadness.org 70 i 33948

Modern operating systems such as NetBSD, macOS, and Windows isolate their kernel from userspace programs to increase fault tolerance and to protect against malicious manipulations [10]. User space programs have to call into the kernel to request resources, via system calls or ioctls. This communication between user space and kernel space crosses a security boundary. Kernel memory disclosures - also known as kernel information leaks - denote the inadvertent copying of uninitialized bytes from kernel space to user space. Such disclosed memory may contain cryptographic keys, information about the kernel memory layout, or other forms of secret data. Even though kernel memory disclosures do not allow direct exploitation of a system, they lay the ground for it.
Err codemadness.org 70 i 33949 We introduce KLEAK, a simple approach to dynamically detect kernel information leaks. Simply said, KLEAK utilizes a rudimentary form of taint tracking: it taints kernel memory with marker values, lets the data travel through the kernel and scans the buffers exchanged between the kernel and the user space for these marker values. By using compiler instrumentation and rotating the markers at regular intervals, KLEAK significantly reduces the number of false positives, and is able to yield relevant results with little effort.
Err codemadness.org 70 i 33950 Our approach is practically feasible as we prove with an implementation for the NetBSD kernel. A small performance penalty is introduced, but the system remains usable. In addition to implementing KLEAK in the NetBSD kernel, we applied our approach to FreeBSD 11.2. In total, we detected 21 previously unknown kernel memory disclosures in NetBSD-current and FreeBSD 11.2, which were fixed subsequently. As a follow-up, the projects’ developers manually audited related kernel areas and identified dozens of other kernel memory disclosures.
Err codemadness.org 70 i 33951 The remainder of this paper is structured as follows. Section II discusses the bug class of kernel memory disclosures. Section III presents KLEAK to dynamically detect instances of this bug class. Section IV discusses the results of applying KLEAK to NetBSD-current and FreeBSD 11.2. Section V reviews prior research. Finally, Section VI concludes this paper.

Err codemadness.org 70 i 33952
Err codemadness.org 70 i 33953 Err codemadness.org 70 i 33954


Err codemadness.org 70 i 33955 Err codemadness.org 70 i 33956

###How To Create Official Synth Repo

Err codemadness.org 70 i 33957 Err codemadness.org 70 i 33958
    Err codemadness.org 70 i 33959
  • Err codemadness.org 70 i 33960

    System Environment

    Err codemadness.org 70 i 33961
  • Err codemadness.org 70 i 33962
  • Err codemadness.org 70 i 33963

    Make sure /usr/dports is updated and that it contains no cruft (git pull; git status). Remove any cruft.

    Err codemadness.org 70 i 33964
  • Err codemadness.org 70 i 33965
  • Err codemadness.org 70 i 33966

    Make sure your ‘synth’ is up-to-date ‘pkg upgrade synth’. If you already updated your system you may have to build synth from scratch, from /usr/dports/ports-mgmt/synth.

    Err codemadness.org 70 i 33967
  • Err codemadness.org 70 i 33968
  • Err codemadness.org 70 i 33969

    Make sure /etc/make.conf is clean.

    Err codemadness.org 70 i 33970
  • Err codemadness.org 70 i 33971
  • Err codemadness.org 70 i 33972

    Update /usr/src to the current master, make sure there is no cruft in it

    Err codemadness.org 70 i 33973
  • Err codemadness.org 70 i 33974
  • Err codemadness.org 70 i 33975

    Do a full buildworld, buildkernel, installkernel and installworld

    Err codemadness.org 70 i 33976
  • Err codemadness.org 70 i 33977
  • Err codemadness.org 70 i 33978

    Reboot

    Err codemadness.org 70 i 33979
  • Err codemadness.org 70 i 33980
  • Err codemadness.org 70 i 33981

    After the reboot, before proceeding, run ‘uname -a’ and make sure you are now on the desired release or development kernel.

    Err codemadness.org 70 i 33982
  • Err codemadness.org 70 i 33983
  • Err codemadness.org 70 i 33984

    Synth Environment

    Err codemadness.org 70 i 33985
  • Err codemadness.org 70 i 33986
  • Err codemadness.org 70 i 33987

    /usr/local/etc/synth/ contains the synth configuration. It should contain a synth.ini file (you may have to rename the template), and you will have to create or edit a LiveSystem-make.conf file.

    Err codemadness.org 70 i 33988
  • Err codemadness.org 70 i 33989
  • Err codemadness.org 70 i 33990

    System requirements are hefty. Just linking chromium alone eats at least 30GB, for example. Concurrent c++ compiles can eat up to 2GB per process. We recommend at least 100GB of SSD based swap space and 300GB of free space on the filesystem.

    Err codemadness.org 70 i 33991
  • Err codemadness.org 70 i 33992
  • Err codemadness.org 70 i 33993

    synth.ini should contain this. Plus modify the builders and jobs to suit your system. With 128G of ram, 30/30 or 40/25 works well. If you have 32G of ram, maybe 8/8 or less.

    Err codemadness.org 70 i 33994
  • Err codemadness.org 70 i 33995
Err codemadness.org 70 i 33996 Err codemadness.org 70 i 33997

; Take care when hand editing!
Err codemadness.org 70 i 33998
Err codemadness.org 70 i 33999 [Global Configuration]
Err codemadness.org 70 i 34000 profile_selected= LiveSystem
Err codemadness.org 70 i 34001
Err codemadness.org 70 i 34002 [LiveSystem]
Err codemadness.org 70 i 34003 Operating_system= DragonFly
Err codemadness.org 70 i 34004 Directory_packages= /build/synth/live_packages
Err codemadness.org 70 i 34005 Directory_repository= /build/synth/live_packages/All
Err codemadness.org 70 i 34006 Directory_portsdir= /build/synth/dports
Err codemadness.org 70 i 34007 Directory_options= /build/synth/options
Err codemadness.org 70 i 34008 Directory_distfiles= /usr/distfiles
Err codemadness.org 70 i 34009 Directory_buildbase= /build/synth/build
Err codemadness.org 70 i 34010 Directory_logs= /build/synth/logs
Err codemadness.org 70 i 34011 Directory_ccache= disabled
Err codemadness.org 70 i 34012 Directory_system= /
Err codemadness.org 70 i 34013 Number_of_builders= 30
Err codemadness.org 70 i 34014 Max_jobs_per_builder= 30
Err codemadness.org 70 i 34015 Tmpfs_workdir= true
Err codemadness.org 70 i 34016 Tmpfs_localbase= true
Err codemadness.org 70 i 34017 Display_with_ncurses= true
Err codemadness.org 70 i 34018 leverage_prebuilt= false

Err codemadness.org 70 i 34019 Err codemadness.org 70 i 34020
    Err codemadness.org 70 i 34021
  • LiveSystem-make.conf should contain one line to restrict licensing to only what is allowed to be built as a binary package:
  • Err codemadness.org 70 i 34022
Err codemadness.org 70 i 34023 Err codemadness.org 70 i 34024

LICENSES_ACCEPTED= NONE

Err codemadness.org 70 i 34025 Err codemadness.org 70 i 34026
    Err codemadness.org 70 i 34027
  • Err codemadness.org 70 i 34028

    Make sure there is no other cruft in /usr/local/etc/synth/

    Err codemadness.org 70 i 34029
  • Err codemadness.org 70 i 34030
  • Err codemadness.org 70 i 34031

    In the example above, the synth working dirs are in “/build/synth”. Make sure the base directories exist. Clean out any cruft for a fresh build from-scratch:

    Err codemadness.org 70 i 34032
  • Err codemadness.org 70 i 34033
Err codemadness.org 70 i 34034 Err codemadness.org 70 i 34035

rm -rf /build/synth/live_packages/*
Err codemadness.org 70 i 34036 rm -rf /build/synth/logs
Err codemadness.org 70 i 34037 mkdir /build/synth/logs

Err codemadness.org 70 i 34038 Err codemadness.org 70 i 34039
    Err codemadness.org 70 i 34040
  • Run synth everything. I recommend doing this in a ‘screen’ session in case you lose your ssh session (assuming you are ssh’d into the build machine).
  • Err codemadness.org 70 i 34041
Err codemadness.org 70 i 34042 Err codemadness.org 70 i 34043

(optionally start a screen session)
Err codemadness.org 70 i 34044 synth everything

Err codemadness.org 70 i 34045 Err codemadness.org 70 i 34046
    Err codemadness.org 70 i 34047
  • A full synth build takes over 24 hours to run on a 48-core box, around 12 hours to run on a 64-core box. On a 4-core/8-thread box it will take at least 3 days. There will be times when swap space is heavily used. If you have not run synth before, monitor your memory and swap loads to make sure you have configured the jobs properly. If you are overloading the system, you may have to ^C the synth run, reduce the jobs, and start it again. It will pick up where it left off.
  • Err codemadness.org 70 i 34048
  • When synth finishes, let it rebuild the database. You then have a working binary repo.
  • Err codemadness.org 70 i 34049
  • It is usually a good idea to run synth several times to pick up any stuff it couldn’t build the first time. Each of these incremental runs may take a few hours, depending on what it tries to build.
  • Err codemadness.org 70 i 34050
Err codemadness.org 70 i 34051 Err codemadness.org 70 i 34052


Err codemadness.org 70 i 34053 Err codemadness.org 70 i 34054

###Interview with founder and maintainer of GhostBSD, Eric Turgeon

Err codemadness.org 70 i 34055 Err codemadness.org 70 i 34056
    Err codemadness.org 70 i 34057
  • Thanks you Eric for taking part. To start off, could you tell us a little about yourself, just a bit of background?
  • Err codemadness.org 70 i 34058
  • How did you become interested in open source?
  • Err codemadness.org 70 i 34059
  • When and how did you get interested in the BSD operating systems?
  • Err codemadness.org 70 i 34060
  • On your Twitter profile, you state that you are an automation engineer at iXsystems. Can you share what you do in your day-to-day job?
  • Err codemadness.org 70 i 34061
  • You are the founder and project lead of GhostBSD. Could you describe GhostBSD to those who have never used it or never heard of it?
  • Err codemadness.org 70 i 34062
  • Developing an operating system is not a small thing. What made you decide to start the GhostBSD project and not join another “desktop FreeBSD” related project, such as PC-BSD and DesktopBSD at the time?
  • Err codemadness.org 70 i 34063
  • How did you get to the name GhostBSD? Did you consider any other names?
  • Err codemadness.org 70 i 34064
  • You recently released GhostBSD 18.10? What’s new in that version and what are the key features? What has changed since GhostBSD 11.1?
  • Err codemadness.org 70 i 34065
  • The current version is 18.10. Will the next version be 19.04 (like Ubuntu’s version numbering), or is a new version released after the next stable TrueOS release
  • Err codemadness.org 70 i 34066
  • Can you tell us something about the development team? Is it yourself, or are there other core team members? I think I saw two other developers on your Github project page.
  • Err codemadness.org 70 i 34067
  • How about the relationship with the community? Is it possible for a community member to contribute, and how are those contributions handled?
  • Err codemadness.org 70 i 34068
  • What was the biggest challenge during development?
  • Err codemadness.org 70 i 34069
  • If you had to pick one feature readers should check out in GhostBSD, what is it and why?
  • Err codemadness.org 70 i 34070
  • What is the relationship between iXsystems and the GhostBSD project? Or is GhostBSD a hobby project that you run separately from your work at iXsystems?
  • Err codemadness.org 70 i 34071
  • What is the relationship between GhostBSD and TrueOS? Is GhostBSD TrueOS with the MATE desktop on top, or are there other modifications, additions, and differences?
  • Err codemadness.org 70 i 34072
  • Where does GhostBSD go from here? What are your plans for 2019?
  • Err codemadness.org 70 i 34073
  • Is there anything else that wasn’t asked or that you want to share?
  • Err codemadness.org 70 i 34074
Err codemadness.org 70 i 34075 Err codemadness.org 70 i 34076


Err codemadness.org 70 i 34077 Err codemadness.org 70 i 34078

##Beastie Bits

Err codemadness.org 70 i 34079 Err codemadness.org 70 i 34080 Err codemadness.org 70 i 34089 Err codemadness.org 70 i 34090


Err codemadness.org 70 i 34091 Err codemadness.org 70 i 34092

##Feedback/Questions

Err codemadness.org 70 i 34093 Err codemadness.org 70 i 34094 Err codemadness.org 70 i 34099 Err codemadness.org 70 i 34100


Err codemadness.org 70 i 34101 Err codemadness.org 70 i 34102
    Err codemadness.org 70 i 34103
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 34104
Err codemadness.org 70 i 34105 Err codemadness.org 70 i 34106


]]> Err codemadness.org 70 i 34107
Err codemadness.org 70 i 34108 Err codemadness.org 70 i 34109 FreeBSD 12.0 is finally here, partly-cloudy IPsec VPN, KLEAK with NetBSD, How to create synth repos, GhostBSD author interview, and more.

Err codemadness.org 70 i 34110 Err codemadness.org 70 i 34111

##Headlines
Err codemadness.org 70 i 34112 ###FreeBSD 12.0 is available

Err codemadness.org 70 i 34113 Err codemadness.org 70 i 34114
    Err codemadness.org 70 i 34115
  • After a long release cycle, the wait is over: FreeBSD 12.0 is now officially available.
  • Err codemadness.org 70 i 34116
  • We’ve picked a few interesting things to cover in the show, make sure to read the full Release Notes
  • Err codemadness.org 70 i 34117
Err codemadness.org 70 i 34118 Err codemadness.org 70 i 34119
Err codemadness.org 70 i 34120

Userland:
Err codemadness.org 70 i 34121 Group permissions on /dev/acpi have been changed to allow users in the operator GID to invoke acpiconf(8) to suspend the system.
Err codemadness.org 70 i 34122 The default devfs.rules(5) configuration has been updated to allow mount_fusefs(8) with jail(8).
Err codemadness.org 70 i 34123 The default PAGER now defaults to less(1) for most commands.
Err codemadness.org 70 i 34124 The newsyslog(8) utility has been updated to reject configuration entries that specify setuid(2) or executable log files.
Err codemadness.org 70 i 34125 The WITH_REPRODUCIBLE_BUILD src.conf(5) knob has been enabled by default.
Err codemadness.org 70 i 34126 A new src.conf(5) knob, WITH_RETPOLINE, has been added to enable the retpoline mitigation for userland builds.
Err codemadness.org 70 i 34127 Userland applications:
Err codemadness.org 70 i 34128 The dtrace(1) utility has been updated to support if and else statements.
Err codemadness.org 70 i 34129 The legacy gdb(1) utility included in the base system is now installed to /usr/libexec for use with crashinfo(8). The gdbserver and gdbtui utilities are no longer installed. For interactive debugging, lldb(1) or a modern version of gdb(1) from devel/gdb should be used. A new src.conf(5) knob, WITHOUT_GDB_LIBEXEC has been added to disable building gdb(1). The gdb(1) utility is still installed in /usr/bin on sparc64.
Err codemadness.org 70 i 34130 The setfacl(1) utility has been updated to include a new flag, -R, used to operate recursively on directories.
Err codemadness.org 70 i 34131 The geli(8) utility has been updated to provide support for initializing multiple providers at once when they use the same passphrase and/or key.
Err codemadness.org 70 i 34132 The dd(1) utility has been updated to add the status=progress option, which prints the status of its operation on a single line once per second, similar to GNU dd(1).
Err codemadness.org 70 i 34133 The date(1) utility has been updated to include a new flag, -I, which prints its output in ISO 8601 formatting.
Err codemadness.org 70 i 34134 The bectl(8) utility has been added, providing an administrative interface for managing ZFS boot environments, similar to sysutils/beadm.
Err codemadness.org 70 i 34135 The bhyve(8) utility has been updated to add a new subcommand to the -l and -s flags, help, which when used, prints a list of supported LPC and PCI devices, respectively.
Err codemadness.org 70 i 34136 The tftp(1) utility has been updated to change the default transfer mode from ASCII to binary.
Err codemadness.org 70 i 34137 The chown(8) utility has been updated to prevent overflow of UID or GID arguments where the argument exceeded UID_MAX or GID_MAX, respectively.
Err codemadness.org 70 i 34138 Kernel:
Err codemadness.org 70 i 34139 The ACPI subsystem has been updated to implement Device object types for ACPI 6.0 support, required for some Dell, Inc. Poweredge™ AMD® Epyc™ systems.
Err codemadness.org 70 i 34140 The amdsmn(4) and amdtemp(4) drivers have been updated to attach to AMD® Ryzen 2™ host bridges.
Err codemadness.org 70 i 34141 The amdtemp(4) driver has been updated to fix temperature reporting for AMD® 2990WX CPUs.
Err codemadness.org 70 i 34142 Kernel Configuration:
Err codemadness.org 70 i 34143 The VIMAGE kernel configuration option has been enabled by default.
Err codemadness.org 70 i 34144 The dumpon(8) utility has been updated to add support for compressed kernel crash dumps when the kernel configuration file includes the GZIO option. See rc.conf(5) and dumpon(8) for additional information.
Err codemadness.org 70 i 34145 The NUMA option has been enabled by default in the amd64 GENERIC and MINIMAL kernel configurations.
Err codemadness.org 70 i 34146 Device Drivers:
Err codemadness.org 70 i 34147 The random(4) driver has been updated to remove the Yarrow algorithm. The Fortuna algorithm remains the default, and now only, available algorithm.
Err codemadness.org 70 i 34148 The vt(4) driver has been updated with performance improvements, drawing text at rates ranging from 2- to 6-times faster.
Err codemadness.org 70 i 34149 Deprecated Drivers:
Err codemadness.org 70 i 34150 The lmc(4) driver has been removed.
Err codemadness.org 70 i 34151 The ixgb(4) driver has been removed.
Err codemadness.org 70 i 34152 The nxge(4) driver has been removed.
Err codemadness.org 70 i 34153 The vxge(4) driver has been removed.
Err codemadness.org 70 i 34154 The jedec_ts(4) driver has been removed in 12.0-RELEASE, and its functionality replaced by jedec_dimm(4).
Err codemadness.org 70 i 34155 The DRM driver for modern graphics chipsets has been marked deprecated and marked for removal in FreeBSD 13. The DRM kernel modules are available from graphics/drm-stable-kmod or graphics/drm-legacy-kmod in the Ports Collection as well as via pkg(8). Additionally, the kernel modules have been added to the lua loader.conf(5) module_blacklist, as installation from the Ports Collection or pkg(8) is strongly recommended.
Err codemadness.org 70 i 34156 The following drivers have been deprecated in FreeBSD 12.0, and not present in FreeBSD 13.0: ae(4), de(4), ed(4), ep(4), ex(4), fe(4), pcn(4), sf(4), sn(4), tl(4), tx(4), txp(4), vx(4), wb(4), xe(4)
Err codemadness.org 70 i 34157 Storage:
Err codemadness.org 70 i 34158 The UFS/FFS filesystem has been updated to support check hashes to cylinder-group maps. Support for check hashes is available only for UFS2.
Err codemadness.org 70 i 34159 The UFS/FFS filesystem has been updated to consolidate TRIM/BIO_DELETE commands, reducing read/write requests due to fewer TRIM messages being sent simultaneously.
Err codemadness.org 70 i 34160 TRIM consolidation support has been enabled by default in the UFS/FFS filesystem. TRIM consolidation can be disabled by setting the vfs.ffs.dotrimcons sysctl(8) to 0, or adding vfs.ffs.dotrimcons=0 to sysctl.conf(5).
Err codemadness.org 70 i 34161 NFS:
Err codemadness.org 70 i 34162 The NFS version 4.1 server has been updated to include pNFS server support.
Err codemadness.org 70 i 34163 ZFS:
Err codemadness.org 70 i 34164 ZFS has been updated to include new sysctl(8)s, vfs.zfs.arc_min_prefetch_ms and vfs.zfs.arc_min_prescient_prefetch_ms, which improve performance of the zpool(8) scrub subcommand.
Err codemadness.org 70 i 34165 The new spacemap_v2 zpool feature has been added. This provides more efficient encoding of spacemaps, especially for full vdev spacemaps.
Err codemadness.org 70 i 34166 The large_dnode zpool feature been imported, allowing better compatibility with pools created under ZFS-on-Linux 0.7.x
Err codemadness.org 70 i 34167 Many bug fixes have been applied to the device removal feature. This feature allows you to remove a non-redundant or mirror vdev from a pool by relocating its data to other vdevs.
Err codemadness.org 70 i 34168 Includes the fix for PR 229614 that could cause processes to hang in zil_commit()
Err codemadness.org 70 i 34169 Boot Loader Changes:
Err codemadness.org 70 i 34170 The lua loader(8) has been updated to detect a list of installed kernels to boot.
Err codemadness.org 70 i 34171 The loader(8) has been updated to support geli(8) for all architectures and all disk-like devices.
Err codemadness.org 70 i 34172 The loader(8) has been updated to add support for loading Intel® microcode updates early during the boot process.

Err codemadness.org 70 i 34173

Networking:
Err codemadness.org 70 i 34174 The pf(4) packet filter is now usable within a jail(8) using vnet(9).
Err codemadness.org 70 i 34175 The pf(4) packet filter has been updated to use rmlock(9) instead of rwlock(9), resulting in significant performance improvements.
Err codemadness.org 70 i 34176 The SO_REUSEPORT_LB option has been added to the network stack, allowing multiple programs or threads to bind to the same port, and incoming connections load balanced using a hash function.

Err codemadness.org 70 i 34177
Err codemadness.org 70 i 34178 Err codemadness.org 70 i 34179
    Err codemadness.org 70 i 34180
  • Again, read the release notes for a full list, check out the errata notices. A big THANKS to the entire release engineering team and all developers involved in the release, much appreciated!
  • Err codemadness.org 70 i 34181
Err codemadness.org 70 i 34182 Err codemadness.org 70 i 34183


Err codemadness.org 70 i 34184 Err codemadness.org 70 i 34185

###Abandon Linux. Move to FreeBSD or Illumos

Err codemadness.org 70 i 34186 Err codemadness.org 70 i 34187
Err codemadness.org 70 i 34188

If you use GNU/Linux and you are only on opensource, you may be doing it wrong. Here’s why.
Err codemadness.org 70 i 34189 Is your company based on opensource based software only? Do you have a bunch of developers hitting some kind of server you have installed for them to “do their thing”? Being it for economical reasons (remember to donate), being it for philosophycal ones, you may have skipped good alternatives. The BSD’s and Illumos.
Err codemadness.org 70 i 34190 I bet you are running some sort of Debian, openSuSE or CentOS. It’s very discouraging having entered into the IT field recently and discover many of the people you meet do not even recognise the name BSD. Naming Solaris seems like naming the evil itself. The problem being many do not know why. They can’t point anything specific other than it’s fading out. This has recently shown strong when Oracle officials have stated development for new features has ceased and almost 90 % of developers for Solaris have been layed off. AIX seems alien to almost everybody unless you have a white beard. And all this is silly.
Err codemadness.org 70 i 34191 And here’s why. You are certainly missing two important features that FreeBSD and Illumos derivatives are enjoying. A full virtualization technology, much better and fully developed compared to the LXC containers in the Linux world, such as Jails on BSD, Zones in Solaris/Illumos, and the great ZFS file system which both share.
Err codemadness.org 70 i 34192 You have probably heard of a new Linux filesystem named Btrfs, which by the way, development has been dropped from the Red Hat side. Trying to emulate ZFS, Oracle started developing Btrfs file system before they acquired Sun (the original developer of ZFS), and SuSE joined the effort as well as Red Hat. It is not as well developed as ZFS and it hasn’t been tested in production environments as extensively as the former has. That leaves some uncertainty on using it or not. Red Hat leaving it aside does add some more. Although some organizations have used it with various grades of success.
Err codemadness.org 70 i 34193 But why is this anyhow interesting for a sysadmin or any organization? Well… FreeBSD (descendant of Berkeley UNIX) and SmartOS (based on Illumos) aglutinate some features that make administration easier, safer, faster and more reliable. The dream of any systems administrator.
Err codemadness.org 70 i 34194 To start, the ZFS filesystem combines the typical filesystem with a volume manager. It includes protection against corruption, snapshots and copy-on-write clones, as well as volume manager.
Err codemadness.org 70 i 34195 Jails is another interesting piece of technology. Linux folks usually associate this as a sort of chroot. It isn’t. It is somehow inspired by it but as you may know you can escape from a chroot environment with a blink of an eye. Jails are not called jails casually. The name has a purpose. Contain processes and programs within a defined and totally controlled environment. Jails appeared first in FreeBSD in the year 2000. Solaris Zones debuted on 2005 (now called containers) are the now proprietary version of those.
Err codemadness.org 70 i 34196 There are some other technologies on Linux such as Btrfs or Docker. But they have some caveats. Btrfs hasn’t been fully developed yet and it’s hasn’t been proved as much in production environments as ZFS has. And some problems have arisen recently although the developers are pushing the envelope. At some time they will match ZFS capabilities for sure. Docker is growing exponentially and it’s one of the cool technologies of modern times. The caveat is, as before, the development of this technology hasn’t been fully developed. Unlike other virtualization technologies this is not a kernel playing on top of another kernel. This is virtualization at the OS level, meaning differentiated environments can coexist on a single host, “hitting” the same unique kernel which controls and shares the resources. The problem comes when you put Docker on top of any other virtualization technology such as KVM or Xen. It breaks the purpose of it and has a performance penalty.
Err codemadness.org 70 i 34197 I have arrived into the IT field with very little knowledge, that is true. But what I see strikes me. Working in a bank has allowed me to see a big production environment that needs the highest of the availability and reliability. This is, sometimes, achieved by bruteforce. And it’s legitime and adequate. Redundancy has a reason and a purpose for example. But some other times it looks, it feels, like killing flies with cannons. More hardware, more virtual machines, more people, more of this, more of that. They can afford it, so they try to maintain the cost low but at the end of the day there is a chunky budget to back operations.
Err codemadness.org 70 i 34198 But here comes reality. You’re not a bank and you need to squeeze your investment as much as possible. By using FreeBSD jails you can avoid the performance penalty of KVM or Xen virtualization. Do you use VMWare or Hyper-V? You can avoid both and gain in performance. Not only that, control and manageability are equal as before, and sometimes easier to administer. There are four ways to operate them which can be divided in two categories. Hardcore and Human Being. For the Hardcore use the FreeBSD handbook and investigate as much as you can. For the Human Being way there are three options to use. Ezjail, Iocage and CBSD which are frameworks or programs as you may call to manage jails. I personally use Iocage but I have also used Ezjail.
Err codemadness.org 70 i 34199 How can you use jails on your benefit? Ever tried to configure some new software and failed miserably? You can have three different jails running at the same time with different configurations. Want to try a new configuration in a production piece of hardware without applying it on the final users? You can do that with a small jail while the production environment is on in another bigger, chunkier jail.
Err codemadness.org 70 i 34200 Want to divide the hardware as a replica of the division of the team/s you are working with? Want to sell virtual machines with bare metal performance? Do you want to isolate some piece of critical software or even data in a more controlled environment? Do you have different clients and you want to use the same hardware but you want to avoid them seeing each other at the same time you maintain performance and reliability?
Err codemadness.org 70 i 34201 Are you a developer and you have to have reliable and portable snapshots of your work? Do you want to try new options-designs without breaking your previous work, in a timeless fashion? You can work on something, clone the jail and apply the new ideas on the project in a matter of seconds. You can stop there, export the filesystem snapshot containing all the environment and all your work and place it on a thumbdrive to later import it on a big production system. Want to change that image properties such as the network stack interface and ip? This is just one command away from you.
Err codemadness.org 70 i 34202 But what properties can you assign to a jail and how can I manage them you may be wondering. Hostname, disk quota, i/o, memory, cpu limits, network isolation, network virtualization, snapshots and the manage of those, migration and root privilege isolation to name a few. You can also clone them and import and export them between different systems. Some of these things because of ZFS. Iocage is a python program to manage jails and it takes profit from ZFS advantages.
Err codemadness.org 70 i 34203 But FreeBSD is not Linux you may say. No it is not. There are no run levels. The systemd factor is out of this equation. This is so since the begginning. Ever wondered where did vi come from? The TCP/IP stack? Your beloved macOS from Apple? All this is coming from the FreeBSD project. If you are used to Linux your adaptation period with any BSD will be short, very short. You will almost feel at home. Used to packaged software using yum or apt-get? No worries. With pkgng, the package management tool used in FreeBSD has almost 27.000 compiled packages for you to use. Almost all software found on any of the important GNU/Linux distros can be found here. Java, Python, C, C++, Clang, GCC, Javascript frameworks, Ruby, PHP, MySQL and the major forks, etc. All this opensource software, and much more, is available at your fingertips.
Err codemadness.org 70 i 34204 I am a developer and… frankly my time is money and I appreciate both much more than dealing with systems configuration, etc. You can set a VM using VMWare or VirtualBox and play with barebones FreeBSD or you can use TrueOS (a derivative) which comes in a server version and a desktop oriented one. The latter will be easier for you to play with. You may be doing this already with Linux. There is a third and very sensible option. FreeNAS, developed by iXSystems. It is FreeBSD based and offers all these technologies with a GUI. VMWare, Hyper-V? Nowadays you can get your hands off the CLI and get a decent, usable, nice GUI.
Err codemadness.org 70 i 34205 You say you play on the cloud. The major players already include FreeBSD in their offerings. You can find it in Amazon AWS or Azure (with official Microsoft support contracts too!). You can also find it in DigitalOcean and other hosting providers. There is no excuse. You can use it at home, at the office, with old or new hardware and in the cloud as well. You can even pay for a support contract to use it. Joyent, the developers of SmartOS have their own cloud with different locations around the globe. Have a look on them too.
Err codemadness.org 70 i 34206 If you want the original of ZFS and zones you may think of Solaris. But it’s fading away. But it really isn’t. When Oracle bouth Sun many people ran away in an stampide fashion. Some of the good folks working at Sun founded new projects. One of these is Illumos. Joyent is a company formed by people who developed these technologies. They are a cloud operator, have been recently bought by Samsung and have a very competent team of people providing great tech solutions. They have developed an OS, called SmartOS (based on Illumos) with all these features. The source from this goes back to the early days of UNIX. Do you remember the days of OpenSolaris when Sun opensourced the crown jewels? There you have it. A modern opensource UNIX operating system with the roots in their original place and the head planted on today’s needs.
Err codemadness.org 70 i 34207 In conclusion. If you are on GNU/Linux and you only use opensource software you may be doing it wrong. And missing goodies you may need and like. Once you put your hands on them, trust me, you won’t look back. And if you have some “old fashioned” admins who know Solaris, you can bring them to a new profitable and exciting life with both systems.
Err codemadness.org 70 i 34208 Still not convinced? Would you have ever imagined Microsoft supporting Linux? Even loving it? They do love now FreeBSD. And not only that, they provide their own image in the Azure Cloud and you can get Microsoft support, payed support if you want to use the platform on Azure. Ain’t it… surprising? Convincing at all?
Err codemadness.org 70 i 34209 PS: I haven’t mentioned both softwares, FreeBSD and SmartOS do have a Linux translation layer. This means you can run Linux binaries on them and the program won’t cough at all. Since the ABI stays stable the only thing you need to run a Linux binary is a translation between the different system calls and the libraries. Remember POSIX? Choose your poison and enjoy it.

Err codemadness.org 70 i 34210
Err codemadness.org 70 i 34211 Err codemadness.org 70 i 34212


Err codemadness.org 70 i 34213 Err codemadness.org 70 i 34214

###A partly-cloudy IPsec VPN

Err codemadness.org 70 i 34215 Err codemadness.org 70 i 34216
    Err codemadness.org 70 i 34217
  • Audience
  • Err codemadness.org 70 i 34218
Err codemadness.org 70 i 34219 Err codemadness.org 70 i 34220
Err codemadness.org 70 i 34221

I’m assuming that readers have at least a basic knowledge of TCP/IP networking and some UNIX or UNIX-like systems, but not necessarily OpenBSD or FreeBSD. This post will therefore be light on details that aren’t OS specific and are likely to be encountered in normal use (e.g., how to use vi or another text editor.) For more information on these topics, read Absolute FreeBSD (3ed.) by Michael W. Lucas.

Err codemadness.org 70 i 34222
Err codemadness.org 70 i 34223 Err codemadness.org 70 i 34224
    Err codemadness.org 70 i 34225
  • Overview
  • Err codemadness.org 70 i 34226
Err codemadness.org 70 i 34227 Err codemadness.org 70 i 34228
Err codemadness.org 70 i 34229

I’m redoing my DigitalOcean virtual machines (which they call droplets). My requirements are:

Err codemadness.org 70 i 34230
Err codemadness.org 70 i 34231 Err codemadness.org 70 i 34232
    Err codemadness.org 70 i 34233
  • VPN
  • Err codemadness.org 70 i 34234
  • Road-warrior access, so I can use private network resources from anywhere.
  • Err codemadness.org 70 i 34235
  • A site-to-site VPN, extending my home network to my VPSes.
  • Err codemadness.org 70 i 34236
  • Hosting for public and private network services.
  • Err codemadness.org 70 i 34237
  • A proxy service to provide a public IP address to services hosted at home.
  • Err codemadness.org 70 i 34238
Err codemadness.org 70 i 34239 Err codemadness.org 70 i 34240
Err codemadness.org 70 i 34241

The last item is on the list because I don’t actually have a public IP address at home; my firewall’s external address is in the RFC 1918 space, and the entire apartment building shares a single public IPv4 address.1 (IPv6? Don’t I wish.) The end-state network will include one OpenBSD droplet providing firewall, router, and VPN services; and one FreeBSD droplet hosting multiple jailed services.
Err codemadness.org 70 i 34242 I’ll be providing access via these droplets to a NextCloud instance at home. A simple NAT on the DO router droplet isn’t going to work, because packets going from home to the internet would exit through the apartment building’s connection and not through the VPN. It’s possible that I could do work around this issue with packet tagging using the pf firewall, but HAProxy is simple to configure and unlikely to result in hard-to-debug problems. relayd is also an option, but doesn’t have the TLS parsing abilities of HAProxy, which I’ll be using later on.
Err codemadness.org 70 i 34243 Since this system includes jails running on a VPS, and they’ve got RFC 1918 addresses, I want them reachable from my home network. Once that’s done, I can access the private address space from anywhere through a VPN connection to the cloudy router.
Err codemadness.org 70 i 34244 The VPN itself will be of the IPsec variety. IPsec is the traditional enterprise VPN standard, and is even used for classified applications, but has a (somewhat-deserved) reputation for complexity, but recent versions of OpenBSD turn down the difficulty by quite a bit.

Err codemadness.org 70 i 34245
Err codemadness.org 70 i 34246 Err codemadness.org 70 i 34247 Err codemadness.org 70 i 34250 Err codemadness.org 70 i 34251
Err codemadness.org 70 i 34252

This VPN both separates internal network traffic from public traffic and uses encryption to prevent interception or tampering.
Err codemadness.org 70 i 34253 Once traffic has been encrypted, decrypting it without the key would, as Bruce Schneier once put it, require a computer built from something other than matter that occupies something other than space. Dyson spheres and a frakton of causality violation would possibly work, as would mathemagical technology that alters the local calendar such that P=NP.2 Black-bag jobs and/or suborning cloud provider employees doesn’t quite have that guarantee of impossibility, however. If you have serious security requirements, you’ll need to do better than a random blog entry.

Err codemadness.org 70 i 34254
Err codemadness.org 70 i 34255 Err codemadness.org 70 i 34256


Err codemadness.org 70 i 34257 Err codemadness.org 70 i 34258

##News Roundup
Err codemadness.org 70 i 34259 ###KLEAK: Practical Kernel Memory Disclosure Detection

Err codemadness.org 70 i 34260 Err codemadness.org 70 i 34261
Err codemadness.org 70 i 34262

Modern operating systems such as NetBSD, macOS, and Windows isolate their kernel from userspace programs to increase fault tolerance and to protect against malicious manipulations [10]. User space programs have to call into the kernel to request resources, via system calls or ioctls. This communication between user space and kernel space crosses a security boundary. Kernel memory disclosures - also known as kernel information leaks - denote the inadvertent copying of uninitialized bytes from kernel space to user space. Such disclosed memory may contain cryptographic keys, information about the kernel memory layout, or other forms of secret data. Even though kernel memory disclosures do not allow direct exploitation of a system, they lay the ground for it.
Err codemadness.org 70 i 34263 We introduce KLEAK, a simple approach to dynamically detect kernel information leaks. Simply said, KLEAK utilizes a rudimentary form of taint tracking: it taints kernel memory with marker values, lets the data travel through the kernel and scans the buffers exchanged between the kernel and the user space for these marker values. By using compiler instrumentation and rotating the markers at regular intervals, KLEAK significantly reduces the number of false positives, and is able to yield relevant results with little effort.
Err codemadness.org 70 i 34264 Our approach is practically feasible as we prove with an implementation for the NetBSD kernel. A small performance penalty is introduced, but the system remains usable. In addition to implementing KLEAK in the NetBSD kernel, we applied our approach to FreeBSD 11.2. In total, we detected 21 previously unknown kernel memory disclosures in NetBSD-current and FreeBSD 11.2, which were fixed subsequently. As a follow-up, the projects’ developers manually audited related kernel areas and identified dozens of other kernel memory disclosures.
Err codemadness.org 70 i 34265 The remainder of this paper is structured as follows. Section II discusses the bug class of kernel memory disclosures. Section III presents KLEAK to dynamically detect instances of this bug class. Section IV discusses the results of applying KLEAK to NetBSD-current and FreeBSD 11.2. Section V reviews prior research. Finally, Section VI concludes this paper.

Err codemadness.org 70 i 34266
Err codemadness.org 70 i 34267 Err codemadness.org 70 i 34268


Err codemadness.org 70 i 34269 Err codemadness.org 70 i 34270

###How To Create Official Synth Repo

Err codemadness.org 70 i 34271 Err codemadness.org 70 i 34272
    Err codemadness.org 70 i 34273
  • Err codemadness.org 70 i 34274

    System Environment

    Err codemadness.org 70 i 34275
  • Err codemadness.org 70 i 34276
  • Err codemadness.org 70 i 34277

    Make sure /usr/dports is updated and that it contains no cruft (git pull; git status). Remove any cruft.

    Err codemadness.org 70 i 34278
  • Err codemadness.org 70 i 34279
  • Err codemadness.org 70 i 34280

    Make sure your ‘synth’ is up-to-date ‘pkg upgrade synth’. If you already updated your system you may have to build synth from scratch, from /usr/dports/ports-mgmt/synth.

    Err codemadness.org 70 i 34281
  • Err codemadness.org 70 i 34282
  • Err codemadness.org 70 i 34283

    Make sure /etc/make.conf is clean.

    Err codemadness.org 70 i 34284
  • Err codemadness.org 70 i 34285
  • Err codemadness.org 70 i 34286

    Update /usr/src to the current master, make sure there is no cruft in it

    Err codemadness.org 70 i 34287
  • Err codemadness.org 70 i 34288
  • Err codemadness.org 70 i 34289

    Do a full buildworld, buildkernel, installkernel and installworld

    Err codemadness.org 70 i 34290
  • Err codemadness.org 70 i 34291
  • Err codemadness.org 70 i 34292

    Reboot

    Err codemadness.org 70 i 34293
  • Err codemadness.org 70 i 34294
  • Err codemadness.org 70 i 34295

    After the reboot, before proceeding, run ‘uname -a’ and make sure you are now on the desired release or development kernel.

    Err codemadness.org 70 i 34296
  • Err codemadness.org 70 i 34297
  • Err codemadness.org 70 i 34298

    Synth Environment

    Err codemadness.org 70 i 34299
  • Err codemadness.org 70 i 34300
  • Err codemadness.org 70 i 34301

    /usr/local/etc/synth/ contains the synth configuration. It should contain a synth.ini file (you may have to rename the template), and you will have to create or edit a LiveSystem-make.conf file.

    Err codemadness.org 70 i 34302
  • Err codemadness.org 70 i 34303
  • Err codemadness.org 70 i 34304

    System requirements are hefty. Just linking chromium alone eats at least 30GB, for example. Concurrent c++ compiles can eat up to 2GB per process. We recommend at least 100GB of SSD based swap space and 300GB of free space on the filesystem.

    Err codemadness.org 70 i 34305
  • Err codemadness.org 70 i 34306
  • Err codemadness.org 70 i 34307

    synth.ini should contain this. Plus modify the builders and jobs to suit your system. With 128G of ram, 30/30 or 40/25 works well. If you have 32G of ram, maybe 8/8 or less.

    Err codemadness.org 70 i 34308
  • Err codemadness.org 70 i 34309
Err codemadness.org 70 i 34310 Err codemadness.org 70 i 34311

; Take care when hand editing!
Err codemadness.org 70 i 34312
Err codemadness.org 70 i 34313 [Global Configuration]
Err codemadness.org 70 i 34314 profile_selected= LiveSystem
Err codemadness.org 70 i 34315
Err codemadness.org 70 i 34316 [LiveSystem]
Err codemadness.org 70 i 34317 Operating_system= DragonFly
Err codemadness.org 70 i 34318 Directory_packages= /build/synth/live_packages
Err codemadness.org 70 i 34319 Directory_repository= /build/synth/live_packages/All
Err codemadness.org 70 i 34320 Directory_portsdir= /build/synth/dports
Err codemadness.org 70 i 34321 Directory_options= /build/synth/options
Err codemadness.org 70 i 34322 Directory_distfiles= /usr/distfiles
Err codemadness.org 70 i 34323 Directory_buildbase= /build/synth/build
Err codemadness.org 70 i 34324 Directory_logs= /build/synth/logs
Err codemadness.org 70 i 34325 Directory_ccache= disabled
Err codemadness.org 70 i 34326 Directory_system= /
Err codemadness.org 70 i 34327 Number_of_builders= 30
Err codemadness.org 70 i 34328 Max_jobs_per_builder= 30
Err codemadness.org 70 i 34329 Tmpfs_workdir= true
Err codemadness.org 70 i 34330 Tmpfs_localbase= true
Err codemadness.org 70 i 34331 Display_with_ncurses= true
Err codemadness.org 70 i 34332 leverage_prebuilt= false

Err codemadness.org 70 i 34333 Err codemadness.org 70 i 34334
    Err codemadness.org 70 i 34335
  • LiveSystem-make.conf should contain one line to restrict licensing to only what is allowed to be built as a binary package:
  • Err codemadness.org 70 i 34336
Err codemadness.org 70 i 34337 Err codemadness.org 70 i 34338

LICENSES_ACCEPTED= NONE

Err codemadness.org 70 i 34339 Err codemadness.org 70 i 34340
    Err codemadness.org 70 i 34341
  • Err codemadness.org 70 i 34342

    Make sure there is no other cruft in /usr/local/etc/synth/

    Err codemadness.org 70 i 34343
  • Err codemadness.org 70 i 34344
  • Err codemadness.org 70 i 34345

    In the example above, the synth working dirs are in “/build/synth”. Make sure the base directories exist. Clean out any cruft for a fresh build from-scratch:

    Err codemadness.org 70 i 34346
  • Err codemadness.org 70 i 34347
Err codemadness.org 70 i 34348 Err codemadness.org 70 i 34349

rm -rf /build/synth/live_packages/*
Err codemadness.org 70 i 34350 rm -rf /build/synth/logs
Err codemadness.org 70 i 34351 mkdir /build/synth/logs

Err codemadness.org 70 i 34352 Err codemadness.org 70 i 34353
    Err codemadness.org 70 i 34354
  • Run synth everything. I recommend doing this in a ‘screen’ session in case you lose your ssh session (assuming you are ssh’d into the build machine).
  • Err codemadness.org 70 i 34355
Err codemadness.org 70 i 34356 Err codemadness.org 70 i 34357

(optionally start a screen session)
Err codemadness.org 70 i 34358 synth everything

Err codemadness.org 70 i 34359 Err codemadness.org 70 i 34360
    Err codemadness.org 70 i 34361
  • A full synth build takes over 24 hours to run on a 48-core box, around 12 hours to run on a 64-core box. On a 4-core/8-thread box it will take at least 3 days. There will be times when swap space is heavily used. If you have not run synth before, monitor your memory and swap loads to make sure you have configured the jobs properly. If you are overloading the system, you may have to ^C the synth run, reduce the jobs, and start it again. It will pick up where it left off.
  • Err codemadness.org 70 i 34362
  • When synth finishes, let it rebuild the database. You then have a working binary repo.
  • Err codemadness.org 70 i 34363
  • It is usually a good idea to run synth several times to pick up any stuff it couldn’t build the first time. Each of these incremental runs may take a few hours, depending on what it tries to build.
  • Err codemadness.org 70 i 34364
Err codemadness.org 70 i 34365 Err codemadness.org 70 i 34366


Err codemadness.org 70 i 34367 Err codemadness.org 70 i 34368

###Interview with founder and maintainer of GhostBSD, Eric Turgeon

Err codemadness.org 70 i 34369 Err codemadness.org 70 i 34370
    Err codemadness.org 70 i 34371
  • Thanks you Eric for taking part. To start off, could you tell us a little about yourself, just a bit of background?
  • Err codemadness.org 70 i 34372
  • How did you become interested in open source?
  • Err codemadness.org 70 i 34373
  • When and how did you get interested in the BSD operating systems?
  • Err codemadness.org 70 i 34374
  • On your Twitter profile, you state that you are an automation engineer at iXsystems. Can you share what you do in your day-to-day job?
  • Err codemadness.org 70 i 34375
  • You are the founder and project lead of GhostBSD. Could you describe GhostBSD to those who have never used it or never heard of it?
  • Err codemadness.org 70 i 34376
  • Developing an operating system is not a small thing. What made you decide to start the GhostBSD project and not join another “desktop FreeBSD” related project, such as PC-BSD and DesktopBSD at the time?
  • Err codemadness.org 70 i 34377
  • How did you get to the name GhostBSD? Did you consider any other names?
  • Err codemadness.org 70 i 34378
  • You recently released GhostBSD 18.10? What’s new in that version and what are the key features? What has changed since GhostBSD 11.1?
  • Err codemadness.org 70 i 34379
  • The current version is 18.10. Will the next version be 19.04 (like Ubuntu’s version numbering), or is a new version released after the next stable TrueOS release
  • Err codemadness.org 70 i 34380
  • Can you tell us something about the development team? Is it yourself, or are there other core team members? I think I saw two other developers on your Github project page.
  • Err codemadness.org 70 i 34381
  • How about the relationship with the community? Is it possible for a community member to contribute, and how are those contributions handled?
  • Err codemadness.org 70 i 34382
  • What was the biggest challenge during development?
  • Err codemadness.org 70 i 34383
  • If you had to pick one feature readers should check out in GhostBSD, what is it and why?
  • Err codemadness.org 70 i 34384
  • What is the relationship between iXsystems and the GhostBSD project? Or is GhostBSD a hobby project that you run separately from your work at iXsystems?
  • Err codemadness.org 70 i 34385
  • What is the relationship between GhostBSD and TrueOS? Is GhostBSD TrueOS with the MATE desktop on top, or are there other modifications, additions, and differences?
  • Err codemadness.org 70 i 34386
  • Where does GhostBSD go from here? What are your plans for 2019?
  • Err codemadness.org 70 i 34387
  • Is there anything else that wasn’t asked or that you want to share?
  • Err codemadness.org 70 i 34388
Err codemadness.org 70 i 34389 Err codemadness.org 70 i 34390


Err codemadness.org 70 i 34391 Err codemadness.org 70 i 34392

##Beastie Bits

Err codemadness.org 70 i 34393 Err codemadness.org 70 i 34394 Err codemadness.org 70 i 34403 Err codemadness.org 70 i 34404


Err codemadness.org 70 i 34405 Err codemadness.org 70 i 34406

##Feedback/Questions

Err codemadness.org 70 i 34407 Err codemadness.org 70 i 34408 Err codemadness.org 70 i 34413 Err codemadness.org 70 i 34414


Err codemadness.org 70 i 34415 Err codemadness.org 70 i 34416
    Err codemadness.org 70 i 34417
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 34418
Err codemadness.org 70 i 34419 Err codemadness.org 70 i 34420


]]> Err codemadness.org 70 i 34421
Err codemadness.org 70 i 34422 https://fireside.fm/player/v2/FYhhasNR+N-pZoQL5 Err codemadness.org 70 i 34423 Err codemadness.org 70 i 34424 ]]> Err codemadness.org 70 i 34425 Err codemadness.org 70 i 34426
Err codemadness.org 70 i 34427 Err codemadness.org 70 i 34428 Episode 275: OpenBSD in Stereo | BSD Now 275 Err codemadness.org 70 i 34429 https://www.bsdnow.tv/275 Err codemadness.org 70 i 34430 http://feed.jupiter.zone/bsdnow#entry-2997 Err codemadness.org 70 i 34431 Sun, 09 Dec 2018 01:00:00 -0800 Err codemadness.org 70 i 34432 Allan Jude Err codemadness.org 70 i 34433 Err codemadness.org 70 i 34434 full Err codemadness.org 70 i 34435 Allan Jude Err codemadness.org 70 i 34436 DragonflyBSD 5.4 has been released, down the Gopher hole with OpenBSD, OpenBSD in stereo with VFIO, BSD/OS the best candidate for legally tested open source Unix, OpenBGPD adds diversity to the routing server landscape, and more. Err codemadness.org 70 i 34437 1:24:52 Err codemadness.org 70 i 34438 no Err codemadness.org 70 i 34439 Err codemadness.org 70 i 34440 DragonflyBSD 5.4 has been released, down the Gopher hole with OpenBSD, OpenBSD in stereo with VFIO, BSD/OS the best candidate for legally tested open source Unix, OpenBGPD adds diversity to the routing server landscape, and more. Err codemadness.org 70 i 34441 Headlines Err codemadness.org 70 i 34442 <a href="https://www.dragonflybsd.org/release54/">DragonflyBSD 5.4 released</a> Err codemadness.org 70 i 34443 <blockquote>DragonFly version 5.4 brings a new system compiler in GCC 8, improved NUMA support, a large of number network and virtual machine driver updates, and updates to video support. This release is 64-bit only, as with previous releases. Err codemadness.org 70 i 34444 The details of all commits between the 5.2 and 5.4 branches are available in the associated commit messages for 5.4.0rc and 5.4.0.</blockquote> Err codemadness.org 70 i 34445 <ul> Err codemadness.org 70 i 34446 <li>Big-ticket items</li> Err codemadness.org 70 i 34447 <li>Much better support for asymmetric NUMA (Non-Uniform Memory Access) configurations. In particular, both the memory subsystem and the scheduler now understand the Threadripper 2990WX’s architecture. The scheduler will prioritize CPU nodes with direct-attached memory and the memory subsystem will normalize memory queues for CPU nodes without direct-attached memory (which improves cache locality on those CPUs).</li> Err codemadness.org 70 i 34448 <li>Incremental performance work. DragonFly as a whole is very SMP friendly. The type of performance work we are doing now mostly revolves around improving fairness for shared-vs-exclusive lock clashes, reducing cache ping-ponging due to non-contending SMP locks (i.e. massive use of shared locks on shared resources), and so forth.</li> Err codemadness.org 70 i 34449 <li>Major updates to dports brings us to within a week or two of FreeBSD’s ports as of this writing, in particular major updates to chromium, and making the whole mess work with gcc-8.</li> Err codemadness.org 70 i 34450 <li>Major rewriting of the tty clist code and the tty locking code, significantly improving concurrency across multiple ttys and ptys.</li> Err codemadness.org 70 i 34451 <li>GCC 8</li> Err codemadness.org 70 i 34452 <li>DragonFly now ships with GCC 8.0, and runs as the default compiler. It is also now used for building dports.</li> Err codemadness.org 70 i 34453 <li>GCC 4.7.4 and GCC 5.4.1 are still installed. 4.7.4 is our backup compiler, and 5.4.1 is still there to ensure a smooth transition, but should generally not be used. buildworld builds all three by default to ensure maximum compatibility.</li> Err codemadness.org 70 i 34454 <li>Many passes through world sources were made to address various warnings and errors the new GCC brought with it.</li> Err codemadness.org 70 i 34455 <li>HAMMER2</li> Err codemadness.org 70 i 34456 <li>HAMMER2 is recommended as the default root filesystem in non-clustered mode.</li> Err codemadness.org 70 i 34457 <li>Clustered support is not yet available.</li> Err codemadness.org 70 i 34458 <li>Increased bulkfree cache to reduce the number of iterations required.</li> Err codemadness.org 70 i 34459 <li>Fixed numerous bugs.</li> Err codemadness.org 70 i 34460 <li>Improved support on low-memory machines.</li> Err codemadness.org 70 i 34461 <li>Significant pre-work on the XOP API to help support future networked operations.</li> Err codemadness.org 70 i 34462 <li>Details</li> Err codemadness.org 70 i 34463 <li>Checksums Err codemadness.org 70 i 34464 <code>MD5 (dfly-x86_64-5.4.0_REL.img) = 7277d7cffc92837c7d1c5dd11a11b98f</code> Err codemadness.org 70 i 34465 <code>MD5 (dfly-x86_64-5.4.0_REL.iso) = 6da7abf036fe9267479837b3c3078408</code> Err codemadness.org 70 i 34466 <code>MD5 (dfly-x86_64-5.4.0_REL.img.bz2) = a77a072c864f4b72fd56b4250c983ff1</code> Err codemadness.org 70 i 34467 <code>MD5 (dfly-x86_64-5.4.0_REL.iso.bz2) = 4dbfec6ccfc1d59c5049455db914d499</code></li> Err codemadness.org 70 i 34468 <li>Downloads Links</li> Err codemadness.org 70 i 34469 </ul> Err codemadness.org 70 i 34470 <blockquote>DragonFly BSD is 64-bit only, as announced during the 3.8 release.</blockquote> Err codemadness.org 70 i 34471 <ul> Err codemadness.org 70 i 34472 <li>USB: dfly-x86_64-5.4.0_REL.img as bzip2 file</li> Err codemadness.org 70 i 34473 <li>ISO: dfly-x86_64-5.4.0_REL.iso as bzip2 file</li> Err codemadness.org 70 i 34474 <li>Uncompressed ISO: dfly-x86_64-5.4.0_REL.iso (For use with VPS providers as an install image.)</li> Err codemadness.org 70 i 34475 </ul> Err codemadness.org 70 i 34476 Err codemadness.org 70 i 34477 <hr /> Err codemadness.org 70 i 34478 <a href="https://cryogenix.net/gophernicus.html">Down the Gopher hole with OpenBSD, Gophernicus, and TLS</a> Err codemadness.org 70 i 34479 <blockquote>In the early 2000s I thought I had seen the worst of the web - Java applets, Macromedia (&gt;Adobe) Flash, animated GIFs, javascript snow that kept you warm in the winter by burning out your CPU, and so on. For a time we learned from these mistakes, and started putting the burden on the server-side - then with improvements in javascript engines we started abusing it again with JSON/AJAX and it all went down hill from there.</blockquote> Err codemadness.org 70 i 34480 <blockquote>Like cloud computing, blockchains, machine learning and a tonne of other a la mode technologies around today - most users and service providers don’t need websites that consume 1GB of memory processing JS and downloading 50MB of compressed data just to read Alice’s one-page travel blog or Bob’s notes on porting NetBSD to his blood-pressure monitor.</blockquote> Err codemadness.org 70 i 34481 <blockquote>Before the HTTP web we relied on Prestel/Minitel style systems, BBS systems, and arguably the most accessible of all - Gopher! Gopher was similar to the locally accessed AmigaGuide format, in that it allowed users to search and retrieve documents interactively, with links and cross-references. Its efficiency and distraction-free nature make it attractive to those who are tired of the invasive, clickbait, ad-filled, javascript-laden web2/3.x. But enough complaining and evangelism - here’s how to get your own Gopher Hole!</blockquote> Err codemadness.org 70 i 34482 <blockquote>Gophernicus is a modern gopher daemon which aims to be secure (although it still uses inetd -_-); it’s even in OpenBSD ports so at least we can rely on it to be reasonably audited.</blockquote> Err codemadness.org 70 i 34483 <blockquote>If you need a starting point with Gopher, SDF-EU’s wiki has a good article here.</blockquote> Err codemadness.org 70 i 34484 <ul> Err codemadness.org 70 i 34485 <li><a href="https://sdfeu.org/w/tutorials:gopher">https://sdfeu.org/w/tutorials:gopher</a></li> Err codemadness.org 70 i 34486 </ul> Err codemadness.org 70 i 34487 <blockquote>Finally, if you don’t like gopher(1) - there’s always lynx(1) or NCSA Mosaic!</blockquote> Err codemadness.org 70 i 34488 <ul> Err codemadness.org 70 i 34489 <li><a href="https://cryogenix.net/NCSA_Mosaic_OpenBSD.html">https://cryogenix.net/NCSA_Mosaic_OpenBSD.html</a></li> Err codemadness.org 70 i 34490 </ul> Err codemadness.org 70 i 34491 <blockquote>I’ve added TLS support to Gophernicus so you don’t need to use stunnel anymore. The code is ugly and unpolished though so I wouldn’t recommend for production use.</blockquote> Err codemadness.org 70 i 34492 <ul> Err codemadness.org 70 i 34493 <li><a href="https://github.com/0x16h/gophernicus">https://github.com/0x16h/gophernicus</a></li> Err codemadness.org 70 i 34494 <li><a href="https://github.com/0x16h/gophernicus/blob/master/INSTALL.openbsd">https://github.com/0x16h/gophernicus/blob/master/INSTALL.openbsd</a></li> Err codemadness.org 70 i 34495 </ul> Err codemadness.org 70 i 34496 Err codemadness.org 70 i 34497 <hr /> Err codemadness.org 70 i 34498 News Roundup Err codemadness.org 70 i 34499 <a href="https://jcs.org/2018/11/12/vfio">OpenBSD in Stereo with Linux VFIO</a> Err codemadness.org 70 i 34500 <blockquote>I use a Huawei Matebook X as my primary OpenBSD laptop and one aspect of its hardware support has always been lacking: audio never played out of the right-side speaker. The speaker did actually work, but only in Windows and only after the Realtek Dolby Atmos audio driver from Huawei was installed. Under OpenBSD and Linux, and even Windows with the default Intel sound driver, audio only ever played out of the left speaker. Err codemadness.org 70 i 34501 Now, after some extensive reverse engineering and debugging with the help of VFIO on Linux, I finally have audio playing out of both speakers on OpenBSD.</blockquote> Err codemadness.org 70 i 34502 <ul> Err codemadness.org 70 i 34503 <li>VFIO</li> Err codemadness.org 70 i 34504 </ul> Err codemadness.org 70 i 34505 <blockquote>The Linux kernel has functionality called VFIO which enables direct access to a physical device (like a PCI card) from userspace, usually passing it to an emulator like QEMU. Err codemadness.org 70 i 34506 To my surprise, these days, it seems to be primarily by gamers who boot Linux, then use QEMU to run a game in Windows and use VFIO to pass the computer’s GPU device through to Windows. Err codemadness.org 70 i 34507 By using Linux and VFIO, I was able to boot Windows 10 inside of QEMU and pass my laptop’s PCI audio device through to Windows, allowing the Realtek audio drivers to natively control the audio device. Combined with QEMU’s tracing functionality, I was able to get a log of all PCI I/O between Windows and the PCI audio device.</blockquote> Err codemadness.org 70 i 34508 <ul> Err codemadness.org 70 i 34509 <li>Using VFIO</li> Err codemadness.org 70 i 34510 </ul> Err codemadness.org 70 i 34511 <blockquote>To use VFIO to pass-through a PCI device, it first needs to be stubbed out so the Linux kernel’s default drivers don’t attach to it. GRUB can be configured to instruct the kernel to ignore the PCI audio device (8086:9d71) and explicitly enable the Intel IOMMU driver by adding the following to /etc/default/grub and running update-grub Err codemadness.org 70 i 34512 With the audio device stubbed out, a new VFIO device can be created from it Err codemadness.org 70 i 34513 Then the VFIO device (00:1f.3) can be passed to QEMU Err codemadness.org 70 i 34514 I was using my own build of QEMU for this, due to some custom logging I needed (more on that later), but the default QEMU package should work fine. The events.txt was a file of all VFIO events I wanted logged (which was all of them). Err codemadness.org 70 i 34515 Since I was frequently killing QEMU and restarting it, Windows 10 wanted to go through its unexpected shutdown routine each time (and would sometimes just fail to boot again). To avoid this and to get a consistent set of logs each time, I used qemu-img to take a snapshot of a base image first, then boot QEMU with that snapshot. The snapshot just gets thrown away the next time qemu-img is run and Windows always starts from a consistent state. Err codemadness.org 70 i 34516 QEMU will now log each VFIO event which gets saved to a debug-output file. Err codemadness.org 70 i 34517 With a full log of all PCI I/O activity from Windows, I compared it to the output from OpenBSD and tried to find the magic register writes that enabled the second speaker. After days of combing through the logs and annotating them by looking up hex values in the documentation, diffing runtime register values, and even brute-forcing it by mechanically duplicating all PCI I/O activity in the OpenBSD driver, nothing would activate the right speaker. Err codemadness.org 70 i 34518 One strange thing that I noticed was if I booted Windows 10 in QEMU and it activated the speaker, then booted OpenBSD in QEMU without resetting the PCI device’s power in-between (as a normal system reboot would do), both speakers worked in OpenBSD and the configuration that the HDA controller presented was different, even without any changes in OpenBSD.</blockquote> Err codemadness.org 70 i 34519 <blockquote>A Primer on Intel HDA Err codemadness.org 70 i 34520 Most modern computers with integrated sound chips use an Intel High Definition Audio (HDA) Controller device, with one or more codecs (like the Realtek ALC269) hanging off of it. These codecs do the actual audio processing and communicate with DACs and ADCs to send digital audio to the connected speakers, or read analog audio from a microphone and convert it to a digital input stream. In my Huawei Matebook X, this is done through a Realtek ALC298 codec. Err codemadness.org 70 i 34521 On OpenBSD, these HDA controllers are supported by the azalia(4) driver, with all of the per-codec details in the lengthy azalia_codec.c file. This file has grown quite large with lots of codec- and machine-specific quirks to route things properly, toggle various GPIO pins, and unmute speakers that are for some reason muted by default. Err codemadness.org 70 i 34522 The azalia driver talks to the HDA controller and sets up various buffers and then walks the list of codecs. Each codec supports a number of widget nodes which can be interconnected in various ways. Some of these nodes can be reconfigured on the fly to do things like turning a microphone port into a headphone port. Err codemadness.org 70 i 34523 The newer Huawei Matebook X Pro released a few months ago is also plagued with this speaker problem, although it has four speakers and only two work by default. A fix is being proposed for the Linux kernel which just reconfigures those widget pins in the Intel HDA driver. Unfortunately no pin reconfiguration is enough to fix my Matebook X with its two speakers. Err codemadness.org 70 i 34524 While reading more documentation on the HDA, I realized there was a lot more activity going on than I was able to see through the PCI tracing. Err codemadness.org 70 i 34525 For speed and efficiency, HDA controllers use a DMA engine to transfer audio streams as well as the commands from the OS driver to the codecs. In the output above, the CORBWP=0; size=256 and RIRBRP=0, size=256 indicate the setup of the CORB (Command Output Ring Buffer) and RIRB (Response Input Ring Buffer) each with 256 entries. The HDA driver allocates a DMA address and then writes it to the two CORBLBASE and CORBUBASE registers, and again for the RIRB. Err codemadness.org 70 i 34526 When the driver wants to send a command to a codec, such as CORB_GET_PARAMETER with a parameter of COP_VOLUME_KNOB_CAPABILITIES, it encodes the codec address, the node index, the command verb, and the parameter, and then writes that value to the CORB ring at the address it set up with the controller at initialization time (CORBLBASE/CORBUBASE) plus the offset of the ring index. Once the command is on the ring, it does a PCI write to the CORBWP register, advancing it by one. This lets the controller know a new command is queued, which it then acts on and writes the response value on the RIRB ring at the same position as the command (but at the RIRB’s DMA address). It then generates an interrupt, telling the driver to read the new RIRBWP value and process the new results. Err codemadness.org 70 i 34527 Since the actual command contents and responses are handled through DMA writes and reads, these important values weren’t showing up in the VFIO PCI trace output that I had gathered. Time to hack QEMU.</blockquote> Err codemadness.org 70 i 34528 <ul> Err codemadness.org 70 i 34529 <li>Logging DMA Memory Values in QEMU</li> Err codemadness.org 70 i 34530 </ul> Err codemadness.org 70 i 34531 <blockquote>Since DMA activity wouldn’t show up through QEMU’s VFIO tracing and I obviously couldn’t get Windows to dump these values like I could in OpenBSD, I could make QEMU recognize the PCI write to the CORBWP register as an indication that a command has just been written to the CORB ring. Err codemadness.org 70 i 34532 My custom hack in QEMU adds some HDA awareness to remember the CORB and RIRB DMA addresses as they get programmed in the controller. Then any time a PCI write to the CORBWP register is done, QEMU fetches the new CORB command from DMA memory, decodes it into the codec address, node address, command, and parameter, and prints it out. When a PCI read of the RIRBWP register is requested, QEMU reads the response and prints the corresponding CORB command that it stored earlier. Err codemadness.org 70 i 34533 With this hack in place, I now had a full log of all CORB commands and RIRB responses sent to and read from the codec: Err codemadness.org 70 i 34534 An early version of this patch left me stumped for a few days because, even after submitting all of the same CORB commands in OpenBSD, the second speaker still didn’t work. It wasn’t until re-reading the HDA spec that I realized the Windows driver was submitting more than one command at a time, writing multiple CORB entries and writing a CORBWP value that was advanced by two. This required turning my CORB/RIRB reading into a for loop, reading each new command and response between the new CORBWP/RIRBWP value and the one previously seen. Err codemadness.org 70 i 34535 Sure enough, the magic commands to enable the second speaker were sent in these periods where it submitted more than one command at a time.</blockquote> Err codemadness.org 70 i 34536 <ul> Err codemadness.org 70 i 34537 <li>Minimizing the Magic</li> Err codemadness.org 70 i 34538 </ul> Err codemadness.org 70 i 34539 <blockquote>The full log of VFIO PCI activity from the Windows driver was over 65,000 lines and contained 3,150 CORB commands, which is a lot to sort through. It took me a couple more days to reduce that down to a small subset that was actually required to activate the second speaker, and that could only be done through trial and error:</blockquote> Err codemadness.org 70 i 34540 <ul> Err codemadness.org 70 i 34541 <li>Boot OpenBSD with the full list of CORB commands in the azalia driver</li> Err codemadness.org 70 i 34542 <li>Comment out a group of them</li> Err codemadness.org 70 i 34543 <li>Compile kernel and install it, halt the QEMU guest</li> Err codemadness.org 70 i 34544 <li>Suspend and wake the laptop, resetting PCI power to the audio device to reset the speaker/Dolby initialization and ensure the previous run isn’t influencing the current test (I’m guessing there is an easier to way to reset PCI power than suspending the laptop, but oh well)</li> Err codemadness.org 70 i 34545 <li>Start QEMU, boot OpenBSD with the new kernel</li> Err codemadness.org 70 i 34546 <li>Play an MP3 with mpg123 which has alternating left- and right-channel audio and listen for both channels to play</li> Err codemadness.org 70 i 34547 </ul> Err codemadness.org 70 i 34548 <blockquote>This required a dozen or so iterations because sometimes I’d comment out too many commands and the right speaker would stop working. Other times the combination of commands would hang the controller and it wouldn’t process any further commands. At one point the combination of commands actually flipped the channels around so the right channel audio was playing through the left speaker.</blockquote> Err codemadness.org 70 i 34549 <ul> Err codemadness.org 70 i 34550 <li>The Result</li> Err codemadness.org 70 i 34551 </ul> Err codemadness.org 70 i 34552 <blockquote>After about a week of this routine, I ended up with a list of 662 CORB commands that are needed to get the second speaker working. Based on the number of repeated-but-slightly-different values written with the 0x500 and 0x400 commands, I’m guessing this is some kind of training data and that this is doing the full Dolby/Atmos system initialization, not just turning on the second speaker, but I could be completely wrong. Err codemadness.org 70 i 34553 In any case, the stereo sound from OpenBSD is wonderful now and I can finally stop downmixing everything to mono to play from the left speaker. In case you ever need to do this, sndiod can be run with -c 0:0 to reduce the channels to one. Err codemadness.org 70 i 34554 Due to the massive size of the code needed for this quirk, I’m not sure if I’ll be committing it upstream in OpenBSD or just saving it for my own tree. But at least now the hardware support chart for my Matebook is all yeses for the things I care about. Err codemadness.org 70 i 34555 I’ve also updated the Linux bug report that I opened before venturing down this path, hoping one of the maintainers of that HDA code that works at Intel or Realtek knew of a solution I could just port to OpenBSD. I’m curious to see what they’ll do with it.</blockquote> Err codemadness.org 70 i 34556 Err codemadness.org 70 i 34557 <hr /> Err codemadness.org 70 i 34558 <a href="https://virtuallyfun.com/wordpress/2018/11/26/why-bsd-os-is-the-best-candidate-for-being-the-only-tested-legally-open-unix/">Why BSD/OS is the best candidate for being the only tested legally open UNIX</a> Err codemadness.org 70 i 34559 <ul> Err codemadness.org 70 i 34560 <li>Introduction</li> Err codemadness.org 70 i 34561 </ul> Err codemadness.org 70 i 34562 <blockquote>The UNIX® system is an old operating system, possibly older than many of the readers of this post. However, despite its age, it still has not been open sourced completely. In this post, I will try to detail which parts of which UNIX systems have not yet been open sourced. I will focus on the legal situation in Germany in particular, taking it representative of European law in general – albeit that is a stretch, knowing the diversity of European jurisdictions. Please note that familiarity with basic terms of copyright law is assumed.</blockquote> Err codemadness.org 70 i 34563 <ul> Err codemadness.org 70 i 34564 <li>Ancient UNIX</li> Err codemadness.org 70 i 34565 </ul> Err codemadness.org 70 i 34566 <blockquote>The term “Ancient UNIX” refers to the versions of UNIX up to and including Seventh Edition UNIX (1979) including the 32V port to the VAX. Ancient UNIX was created at Bell Laboratories, a subsidiary of AT&amp;T at the time. It was later transferred of the AT&amp;T UNIX Support Group, then AT&amp;T Information Systems and finally the AT&amp;T subsidiary UNIX System Laboratories, Inc. (USL). The legal situation differs between the United States of America and Germany. Err codemadness.org 70 i 34567 In a ruling as part of the UNIX System Laboratories, Inc. v. Berkeley Software Design, Inc. (USL v. BSDi) case, a U.S. court found that USL had no copyright to the Seventh Edition UNIX system and 32V – arguably, by extension, all earlier versions of Ancient UNIX as well – because USL/AT&amp;T had failed to affix copyright notices and could not demonstrate a trade secret. Due to the obsessive tendency of U.S. courts to consider themselves bound to precedents (cf. the infamous Pierson v. Post case), it can be reasonably expected that this ruling would be honored and applied in subsequent cases. Thus under U.S. law, Ancient UNIX can be safely assumed to belong in the public domain. Err codemadness.org 70 i 34568 The situation differs in Germany. Unlike the U.S., copyright never needed registration in order to exist. Computer programs are works in the sense of the German 1965 Act on Copyright and Related Rights (Copyright Act, henceforth CopyA) as per CopyA § 2(1) no. 1. Even prior to the amendment of CopyA § 2(1) to include computer programs, computer programs have been recognized as copyrightable works by the German Supreme Court (BGHZ 112, 264 Betriebssystem, no. 19); CopyA § 137d(1) rightly clarifies that. The copyright holder at 1979 would still have been USL via Bell Labs and AT&amp;T. Copyright of computer programs is transferred to the employer upon creation under CopyA § 69(1). Err codemadness.org 70 i 34569 Note that this does not affect expiry (Daniel Kaboth/Benjamin Spies, commentary on CopyA §§ 69a‒69g, in: Hartwig Ahlberg/Horst-Peter Götting (eds.), Urheberrecht: UrhG, KUG, VerlG, VGG, Kommentar, 4th ed., C. H. Beck, 2018, no. 16 ad CopyA § 69b; cf. Bundestag-Drucksache [BT-Drs.] 12/4022, p. 10). Expiry occurs 70 years after the death of the (co-)author that died most recently as per CopyA § 65(1) and 64; this has been the case since at least the 1960s, meaning there is no way for copyright to have expired already (old version, as per Bundesgesetzblatt Part I No. 51 of September 16, 1965, pp. 1273‒1294). Err codemadness.org 70 i 34570 In Germany, private international law applies the so-called “Territorialitätsprinzip” for intellectual property rights. This means that the effect of an intellectual property right is limited to the territory of a state (Anne Lauber-Rönsberg, KollisionsR, in: Hartwig Ahlberg/Horst-Peter Götting (eds.), ibid., pp. 2241 et seqq., no. 4). Additionally, the “Schutzlandprinzip” applies; this means that protection of intellectual property follows the lex loci protectionis, i.e. the law of the country for which protection is sought (BGH GRUR 2015, 264 HiHotel II, no. 25; BGH GRUR 2003, 328 Sender Felsberg, no. 24), albeit this is criticized in parts of doctrine (Lauber-Rönsberg, ibid., no. 10). The “Schutzlandprinzip” requires that the existence of an intellectual property right be verified as well (BGH ZUM 2016, 522 Wagenfeld-Leuchte II, no. 19). Err codemadness.org 70 i 34571 Thus, in Germany, copyright on Ancient UNIX is still alive and well. Who has it, though? A ruling by the U.S. Court of Appeals, Tenth Circuit, in the case of The SCO Group, Inc. v. Novell, Inc. (SCO v. Novell) in the U.S. made clear that Novell owns the rights to System V – thus presumably UNIX System III as well – and Ancient UNIX, though SCO acquired enough rights to develop UnixWare/OpenServer (Ruling 10-4122 [D.C. No. 2:04-CV-00139-TS], pp. 19 et seq.). Novell itself was purchased by the Attachmate Group, which was in turn acquired by the COBOL vendor Micro Focus. Therefore, the rights to SVRX and – outside the U.S. – are with Micro Focus right now. If all you care about is the U.S., you can stop reading about Ancient UNIX here. Err codemadness.org 70 i 34572 So how does the Caldera license factor into all of this? For some context, the license was issued January 23, 2002 and covers Ancient UNIX (V1 through V7 including 32V), specifically excluding System III and System V. Caldera, Inc. was founded in 1994. The Santa Cruz Operation, Inc. sold its rights to UNIX to Caldera in 2001, renamed itself to Tarantella Inc. and Caldera renamed itself The SCO Group. Nemo plus iuris ad alium transferre potest quam ipse habet; no one can transfer more rights than he has. The question now becomes whether Caldera had the rights to issue the Caldera license. Err codemadness.org 70 i 34573 I’ve noted it above but it needs restating: Foreign decisions are not necessarily accepted in Germany due to the “Territorialitätsprinzip” and “Schutzlandprinzip” – however, I will be citing a U.S. ruling for its assessment of the facts for the sake of simplicity. As per ruling 10-4122, “The district court found the parties intended for SCO to serve as Novell’s agent with respect to the old SVRX licenses and the only portion of the UNIX business transferred outright under the APA [asset purchase agreement] was the ability to exploit and further develop the newer UnixWare system. SCO was able to protect that business because it was able to copyright its own improvements to the system. The only reason to protect the earlier UNIX code would be to protect the existing SVRX licenses, and the court concluded Novell retained ultimate control over that portion of the business under the APA.” The relevant agreements consist of multiple pieces: Err codemadness.org 70 i 34574 the base Asset Purchase Agreement “APA” (Part I) Err codemadness.org 70 i 34575 the base Asset Purchase Agreement “APA” (Part II) Err codemadness.org 70 i 34576 the Operating Agremeent and Amendment 1 to the APA Err codemadness.org 70 i 34577 the Amendment 2 to the APA Err codemadness.org 70 i 34578 The APA dates September 19, 1995, from before the Caldera license. Caldera cannot possibly have acquired rights that The Santa Cruz Operation, Inc. itself never had. Furthermore, I’ve failed to find any mention of Ancient UNIX; all that is transferred is rights to SVRX. Overall, I believe that the U.S. courts’ assesment of the facts represents the situation accurately. Thus for all intents and purposes, UNIX up to and including System V remained with Novell/Attachmate/Micro Focus. Caldera therefore never had any rights to Ancient UNIX, which means it never had the rights to issue the Caldera license. The Caldera license is null and void – in the U.S. because the copyright has been lost due to formalities, everywhere else because Caldera never had the rights to issue it. Err codemadness.org 70 i 34579 The first step to truly freeing UNIX would this be to get Micro Focus to re-issue the Caldera license for Ancient UNIX, ideally it would now also include System III and System V.</blockquote> Err codemadness.org 70 i 34580 <ul> Err codemadness.org 70 i 34581 <li>BSD/OS</li> Err codemadness.org 70 i 34582 </ul> Err codemadness.org 70 i 34583 <blockquote>Another operating system near UNIX is of interest. The USL v. BSDi lawsuit includes two parties: USL, which we have seen above, and Berkeley Software Design, Inc. BSDi sold BSD/386 (later BSD/OS), which was a derivative of 4.4BSD. The software parts of the BSDi company were acquired by Wind River Systems, whereas the hardware parts went to iXsystems. Copyright is not disputed there, though Wind River Systems ceased selling BSD/OS products 15 years ago, in 2003. In addition, Wind River System let their trademark on BSD expire, though this is without consequence for copyright. Err codemadness.org 70 i 34584 BSD/OS is notable in the sense that it powered much of early internet infrastructure. Traces of its legacy can still be found on Richard Stevens’ FAQ. Err codemadness.org 70 i 34585 To truly make UNIX history free, BSD/OS would arguably also need to see a source code release. BSD/OS at least in its earliest releases under BSDi would ship with source code, though under a non-free license, far from BSD or even GPL licensing.</blockquote> Err codemadness.org 70 i 34586 <ul> Err codemadness.org 70 i 34587 <li>System V</li> Err codemadness.org 70 i 34588 </ul> Err codemadness.org 70 i 34589 <blockquote>The fate of System V as a whole is difficult to determine. Various licenses have been granted to a number of vendors (Dell UNIX comes to mind; HP for HP-UX, IBM for AIX, SGI UNIX, etc.). Sun released OpenSolaris – notoriously, Oracle closed the source to Solaris again after its release –, which is a System V Release 4 descendant. However, this means nothing for the copyright or licensing status of System V itself. Presumably, the rights with System V still remain with Novell (now Micro Focus): SCO managed to sublicense rights to develop and sell UnixWare/OpenServer, themselves System V/III descendants, to unXis, Inc. (now known as Xinuos, Inc.), which implies that Xinuos is not the copyright holder of System V. Err codemadness.org 70 i 34590 Obviously, to free UNIX, System V and its entire family of descendants would also need to be open sourced. However, I expect tremendous resistance on part of all the companies mentioned. As noted in the “Ancient UNIX” section, Micro Focus alone would probably be sufficient to release System V, though this would mean nothing for the other commercial System V derivatives.</blockquote> Err codemadness.org 70 i 34591 <ul> Err codemadness.org 70 i 34592 <li>Newer Research UNIX</li> Err codemadness.org 70 i 34593 </ul> Err codemadness.org 70 i 34594 <blockquote>The fate of Bell Labs would be a different one; it would go on to be purchased by Lucent, now part of Nokia. After commercial UNIX got separated out to USL, Research UNIX would continue to exist inside of Bell Labs. Research UNIX V8, V9 and V10 were not quite released by Alcatel-Lucent USA Inc. and Nokia in 2017. Err codemadness.org 70 i 34595 However, this is merely a notice that the companies involved will not assert their copyrights only with respect to any non-commercial usage of the code. It is still not possible, over 30 years later, to freely use the V8 code.</blockquote> Err codemadness.org 70 i 34596 <ul> Err codemadness.org 70 i 34597 <li>Conclusion Err codemadness.org 70 i 34598 In the U.S., Ancient UNIX is freely available. People located everywhere else, however, are unable to legally obtain UNIX code for any of the systems mentioned above. The exception being BSD/OS, assuming a purchase of a legitimate copy of the source code CD. This is deeply unsatisfying and I implore all involved companies to consider open sourcing (preferably under a BSD-style license) their code older than a decade, if nothing else, then at least for the sake of historical purposes. I would like to encourage everybody reading this to consider reaching out to Micro Focus and Wind River Systems about System V and BSD/OS, respectively. Perhaps the masses can change their minds.</li> Err codemadness.org 70 i 34599 </ul> Err codemadness.org 70 i 34600 <blockquote>A small note about patents: Some technologies used in newer iterations of the UNIX system (in particular the System V derivatives) may be encumbered with software patents. An open source license will not help against patent infringement claims. However, the patents on anything used in the historical operating systems will certainly have expired by now. In addition, European readers can ignore this entirely – software patents just aren’t a thing.</blockquote> Err codemadness.org 70 i 34601 Err codemadness.org 70 i 34602 <hr /> Err codemadness.org 70 i 34603 <a href="https://labs.ripe.net/Members/claudio_jeker/openbgpd-adding-diversity-to-route-server-landscape">OpenBGPD - Adding Diversity to the Route Server Landscape</a> Err codemadness.org 70 i 34604 <ul> Err codemadness.org 70 i 34605 <li>Introduction</li> Err codemadness.org 70 i 34606 </ul> Err codemadness.org 70 i 34607 <blockquote>As of last year, there was effectively only a single solution in the Route Server vendor market: the BIRD Internet routing daemon. <a href="http://NIC.CZ">NIC.CZ</a> (the organisation developing BIRD) has done fantastic work on maintaining their BGP-4 implementation, however, it’s not healthy to have virtually every Internet Exchange Point (IXP) in the RIPE NCC service region depend on a single open source project. The current situation can be compared to the state of the DNS root nameservers back in 2002 - their dependence on the BIND nameserver daemon and the resulting development of NSD as an alternative by NLnet, in cooperation with the RIPE NCC. Err codemadness.org 70 i 34608 OpenBGPD used to be one of the most popular Route Server implementations until the early 2010s. OpenBGPD’s main problem was that its performance couldn’t keep up with the Internet’s growth, so it lost market share. An analysis by Job Snijders suggested that a modernised OpenBGPD distribution would be a most viable option to regain diversity on the Route Server level.</blockquote> Err codemadness.org 70 i 34609 <ul> Err codemadness.org 70 i 34610 <li>Missing features in OpenBGPD</li> Err codemadness.org 70 i 34611 </ul> Err codemadness.org 70 i 34612 <blockquote>The following main missing features were identified in OpenBGPD:</blockquote> Err codemadness.org 70 i 34613 <ul> Err codemadness.org 70 i 34614 <li>Performance</li> Err codemadness.org 70 i 34615 </ul> Err codemadness.org 70 i 34616 <blockquote>In previous versions of OpenBGPD, the filtering performance didn’t allow proper filtering of all EBGP sessions. Current best practice at IXP Route Servers is to carefully evaluate and validate of all routes learned from EBGP peers. The OpenBGPD ruleset required to do correct filtering (in many deployment scenarios) was simply too lengthy - and negatively impacted service performance during configuration reloads. While filtering performance is the biggest bottleneck, general improvements to the Routing Information Base were also made to improve scalability. IXP Route Servers with a few hundred peering sessions are commonplace and adding new sessions shouldn’t impact the Route Servers’ service to other peers. We found that performance was the most pressing issue that needed to be tackled.</blockquote> Err codemadness.org 70 i 34617 <ul> Err codemadness.org 70 i 34618 <li>Lack of RPKI Origin Validation</li> Err codemadness.org 70 i 34619 </ul> Err codemadness.org 70 i 34620 <blockquote>As we’ve seen, Internet operators are moving to adopt RPKI based BGP Origin Validation. While it was theoretically possible to emulate RFC 6811-style Origin Validation in previous versions of OpenBGPD, the required configuration wasn’t optimised for performance and wasn’t user friendly. We believe that BGP Origin Validation should be as easy as possible - this requires BGP-4 vendors to implement native, optimised routines for Origin Validation. Of course, enabling Origin Validation shouldn’t have an impact on performance either when processing BGP updates or when updating the Route Origin Authorisation (ROA) table itself.</blockquote> Err codemadness.org 70 i 34621 <ul> Err codemadness.org 70 i 34622 <li>Portability</li> Err codemadness.org 70 i 34623 </ul> Err codemadness.org 70 i 34624 <blockquote>OpenBGPD is an integral part of OpenBSD, but IXPs may prefer to run their services infrastructure on an operating system of their choice. Making sure that there’s a portable OpenBGPD version which follows the OpenBSD project release cycle will give IXPs this option.</blockquote> Err codemadness.org 70 i 34625 <ul> Err codemadness.org 70 i 34626 <li>Development steps</li> Err codemadness.org 70 i 34627 </ul> Err codemadness.org 70 i 34628 <blockquote>By addressing the issues mentioned above, we could bring back OpenBGPD as a viable Route Server implementation. Err codemadness.org 70 i 34629 Since I was one of the core OpenBGPD developers, I was asked if I wanted to pick up this project again. Thanks to the funding from the RIPE NCC Project Fund, this was possible. Starting in June 2018, I worked full time on this important community project. Over the last few months, many of the problems are already addressed and are now part of the OpenBSD 6.4 release. So far, 154 commits were made to OpenBGPD during the 6.4 development cycle - around 8% of all commits ever to OpenBGPD! This shows that due to funding and dedicated resources, a lot of work could be pushed into the latest release of OpenBGPD.</blockquote> Err codemadness.org 70 i 34630 <ul> Err codemadness.org 70 i 34631 <li>OpenBGPD 6.4</li> Err codemadness.org 70 i 34632 </ul> Err codemadness.org 70 i 34633 <blockquote>The OpenBGPD version, as part of OpenBSD 6.4 release, demonstrates great progress. Even though there have been many changes to the core of OpenBGPD, the released version is as solid and reliable as previous releases and the many bug fixes and improvements make this the best OpenBGPD release so far. The changes in the filter language allow users to write more efficient rulesets while the introduction of RPKI origination validation fixes an important missing feature. For IXPs, OpenBGPD now is an alternative again. There are still open issues, but the gap is closing!</blockquote> Err codemadness.org 70 i 34634 <ul> Err codemadness.org 70 i 34635 <li>Feature highlights</li> Err codemadness.org 70 i 34636 </ul> Err codemadness.org 70 i 34637 <blockquote>The following changes should be highlighted:</blockquote> Err codemadness.org 70 i 34638 <ul> Err codemadness.org 70 i 34639 <li>Introduction of background soft-reconfiguration on config reload. Running the soft-reconfiguration task in the background allows for new updates and withdraws to be processed at the same time. This improves convergence time - one of the key metrics for Route Servers.</li> Err codemadness.org 70 i 34640 <li>BGP Origin Validation when a roa-set is configured Every EBGP route announcement is validated against the locally configured VRP table entries. Depending on the validation process’s outcome, the validation state is set to valid, invalid or not found. The filter language has been extended to allow checking for the origin validation state, and thanks to this, it is possible to deny invalid prefixes or regard valid prefixes different to the ones that aren’t found. The roa-set table is read from the configuration file and updated during configuration reloads. On production systems reloading the roa-set and applying it to all prefixes is done in a couple of seconds.</li> Err codemadness.org 70 i 34641 <li>Fast prefix-set lookups In OpenBSD 6.3 prefix-sets got introduced in OpenBGPD. A prefix-set combines many prefix lookups into a single filter rule. The original implementation wasn’t optimised but now a fast trie lookup is used. Thanks to this, large IRR DB prefix tables can now be implemented efficiently.</li> Err codemadness.org 70 i 34642 <li>Introduction of as-sets Similar to prefix-sets, as-sets help group many AS numbers into a single lookup. Thanks to this, large IRR DB origin AS tables can be implemented efficiently. Err codemadness.org 70 i 34643 Introduction of origin-sets</li> Err codemadness.org 70 i 34644 <li>Looking at the configurations of Route Servers doing full filtering, it was noticed that a common lookup was binding a prefix to an origin AS - similar to how a roa-set is used for RPKI. These origin-set tables are used to extend the IRR prefix lookup and generated from alternative sources.</li> Err codemadness.org 70 i 34645 <li>Improving third party tools</li> Err codemadness.org 70 i 34646 </ul> Err codemadness.org 70 i 34647 <blockquote>Users can only benefit from the changes introduced in OpenBGPD 6.4 when the surrounding 3rd party tools are adjusted accordingly. Two opensource projects such as bgpq3 and arouteserver are frequently used by network operators and IXPs to generate BGP configurations. Thanks to our contributions to those projects, we were able to get them ready for all the new features in OpenBGPD.</blockquote> Err codemadness.org 70 i 34648 <ul> Err codemadness.org 70 i 34649 <li>bgpq3 was extended to create as-set and prefix-set tables based on IRR DB entries. This is replacing the old way of doing the same with a large amount of filter rules. Thanks to the quick response from the bgpq3 maintainer, it was possible to ship OpenBSD 6.4 with a bgpq3 package that includes all the new features.</li> Err codemadness.org 70 i 34650 <li>arouteserver was adjusted to implement RPKI roa-set, as-set, prefix-set, and origin-set to generate a much better-performing configurations for the 6.4 version. With the v0.20.0 release of arouteserver, IXPs are able to generate an OpenBGPD configuration which is a ton faster but also implements the new functionalities. Looking at YYCIX (the resident IXP in Calgary, Canada) the ruleset generated by arouteserver was reduced from 370,000 rules to well under 6,000 rules. This resulted in the initial convergence time dropping from over 1 hour to less than 2 minutes, and subsequent configuration reloads are hitless and no longer noticeable.</li> Err codemadness.org 70 i 34651 <li>What still needs to be done</li> Err codemadness.org 70 i 34652 </ul> Err codemadness.org 70 i 34653 <blockquote>A sizeable chunk of work still left on the table is the rework of the RIB data structures in OpenBGPD - these haven’t been changed since the initial design of OpenBGPD in 2003. There’s currently ongoing work (in small steps, to avoid jeopardising the stability of OpenBGPD) to modernise these data-structures. The goal is to provide better decoupling of the filter step from storing RIB database changes, to pave the way to multi-threaded operations at a later point.</blockquote> Err codemadness.org 70 i 34654 <ul> Err codemadness.org 70 i 34655 <li>Looking forward</li> Err codemadness.org 70 i 34656 <li>Job Snijders oversaw this year’s fundraising and project management, he adds:</li> Err codemadness.org 70 i 34657 </ul> Err codemadness.org 70 i 34658 <blockquote>It’s been incredibly productive to create an environment where a core developer is allowed to work full time on the OpenBGPD code base. However, it’s important to note there still is room for a number of new features to help improve its operational capabilities (such as BMP, RFC 7313, ADD_PATH, etc). It’d be beneficial to the Internet community at large if we can extend Claudio Jeker’s involvement for another year. Open source software doesn’t grow on trees! Strategic investments are the only way to keep OpenBGPD’s roadmap aligned with Internet growth and operator requirements.</blockquote> Err codemadness.org 70 i 34659 Err codemadness.org 70 i 34660 <hr /> Err codemadness.org 70 i 34661 Beastie Bits Err codemadness.org 70 i 34662 <ul> Err codemadness.org 70 i 34663 <li><a href="http://lists.dragonflybsd.org/pipermail/commits/2018-November/718130.html">DragonFly - git: annotated tag v5.5.0 created</a></li> Err codemadness.org 70 i 34664 <li><a href="https://www.youtube.com/watch?v=Qvj7Mkr13d8">Torchlight 2 on NetBSD</a></li> Err codemadness.org 70 i 34665 <li><a href="https://www.usenix.org/system/files/login/articles/login_dec14_03_dawidek.pdf">Older, but still good USENIX Login Article on Capsicum</a></li> Err codemadness.org 70 i 34666 <li><a href="https://github.com/myfreeweb/capsicumizer">The Super Capsicumizer 9000</a></li> Err codemadness.org 70 i 34667 <li><a href="https://www.noc-ps.com/">Dedicated and Virtual Server PXE provisioning tool</a></li> Err codemadness.org 70 i 34668 <li><a href="https://cirrus-ci.org/guide/FreeBSD/">Cirrus CI have announced FreeBSD support</a></li> Err codemadness.org 70 i 34669 <li><a href="https://twitter.com/astr0baby/status/1065353771952336897">NetBSD PineBook Gameplay</a></li> Err codemadness.org 70 i 34670 <li><a href="http://www.bsdcan.org/2019/papers.php">BSDCan 2019 CfP is out</a></li> Err codemadness.org 70 i 34671 <li>Allan’s first ZFS array, Zulu, turned 7 years old on Nov 29th</li> Err codemadness.org 70 i 34672 </ul> Err codemadness.org 70 i 34673 Err codemadness.org 70 i 34674 <hr /> Err codemadness.org 70 i 34675 Feedback/Questions Err codemadness.org 70 i 34676 <ul> Err codemadness.org 70 i 34677 <li>Malcom - <a href="http://dpaste.com/35TNNX4">Installing Drivers in Development</a></li> Err codemadness.org 70 i 34678 <li>Samir - <a href="http://dpaste.com/2RCB37Y#wrap">Introduction to ZFS</a></li> Err codemadness.org 70 i 34679 <li>Newnix - <a href="http://dpaste.com/01YJ4EB#wrap">Drive Failures</a></li> Err codemadness.org 70 i 34680 </ul> Err codemadness.org 70 i 34681 Err codemadness.org 70 i 34682 <hr /> Err codemadness.org 70 i 34683 <ul> Err codemadness.org 70 i 34684 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 34685 </ul> Err codemadness.org 70 i 34686 Err codemadness.org 70 i 34687 <hr /> Err codemadness.org 70 i 34688 Err codemadness.org 70 i 34689 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, Gopher, Linux VFIO, OpenBGPD, Capsicum, Pinebook Err codemadness.org 70 i 34690 Err codemadness.org 70 i 34691 DragonflyBSD 5.4 has been released, down the Gopher hole with OpenBSD, OpenBSD in stereo with VFIO, BSD/OS the best candidate for legally tested open source Unix, OpenBGPD adds diversity to the routing server landscape, and more.

Err codemadness.org 70 i 34692 Err codemadness.org 70 i 34693

Headlines

Err codemadness.org 70 i 34694 Err codemadness.org 70 i 34695

DragonflyBSD 5.4 released

Err codemadness.org 70 i 34696 Err codemadness.org 70 i 34697
DragonFly version 5.4 brings a new system compiler in GCC 8, improved NUMA support, a large of number network and virtual machine driver updates, and updates to video support. This release is 64-bit only, as with previous releases. Err codemadness.org 70 i 34698 The details of all commits between the 5.2 and 5.4 branches are available in the associated commit messages for 5.4.0rc and 5.4.0.
Err codemadness.org 70 i 34699 Err codemadness.org 70 i 34700
    Err codemadness.org 70 i 34701
  • Big-ticket items
  • Err codemadness.org 70 i 34702
  • Much better support for asymmetric NUMA (Non-Uniform Memory Access) configurations. In particular, both the memory subsystem and the scheduler now understand the Threadripper 2990WX’s architecture. The scheduler will prioritize CPU nodes with direct-attached memory and the memory subsystem will normalize memory queues for CPU nodes without direct-attached memory (which improves cache locality on those CPUs).
  • Err codemadness.org 70 i 34703
  • Incremental performance work. DragonFly as a whole is very SMP friendly. The type of performance work we are doing now mostly revolves around improving fairness for shared-vs-exclusive lock clashes, reducing cache ping-ponging due to non-contending SMP locks (i.e. massive use of shared locks on shared resources), and so forth.
  • Err codemadness.org 70 i 34704
  • Major updates to dports brings us to within a week or two of FreeBSD’s ports as of this writing, in particular major updates to chromium, and making the whole mess work with gcc-8.
  • Err codemadness.org 70 i 34705
  • Major rewriting of the tty clist code and the tty locking code, significantly improving concurrency across multiple ttys and ptys.
  • Err codemadness.org 70 i 34706
  • GCC 8
  • Err codemadness.org 70 i 34707
  • DragonFly now ships with GCC 8.0, and runs as the default compiler. It is also now used for building dports.
  • Err codemadness.org 70 i 34708
  • GCC 4.7.4 and GCC 5.4.1 are still installed. 4.7.4 is our backup compiler, and 5.4.1 is still there to ensure a smooth transition, but should generally not be used. buildworld builds all three by default to ensure maximum compatibility.
  • Err codemadness.org 70 i 34709
  • Many passes through world sources were made to address various warnings and errors the new GCC brought with it.
  • Err codemadness.org 70 i 34710
  • HAMMER2
  • Err codemadness.org 70 i 34711
  • HAMMER2 is recommended as the default root filesystem in non-clustered mode.
  • Err codemadness.org 70 i 34712
  • Clustered support is not yet available.
  • Err codemadness.org 70 i 34713
  • Increased bulkfree cache to reduce the number of iterations required.
  • Err codemadness.org 70 i 34714
  • Fixed numerous bugs.
  • Err codemadness.org 70 i 34715
  • Improved support on low-memory machines.
  • Err codemadness.org 70 i 34716
  • Significant pre-work on the XOP API to help support future networked operations.
  • Err codemadness.org 70 i 34717
  • Details
  • Err codemadness.org 70 i 34718
  • Checksums Err codemadness.org 70 i 34719 MD5 (dfly-x86_64-5.4.0_REL.img) = 7277d7cffc92837c7d1c5dd11a11b98f Err codemadness.org 70 i 34720 MD5 (dfly-x86_64-5.4.0_REL.iso) = 6da7abf036fe9267479837b3c3078408 Err codemadness.org 70 i 34721 MD5 (dfly-x86_64-5.4.0_REL.img.bz2) = a77a072c864f4b72fd56b4250c983ff1 Err codemadness.org 70 i 34722 MD5 (dfly-x86_64-5.4.0_REL.iso.bz2) = 4dbfec6ccfc1d59c5049455db914d499
  • Err codemadness.org 70 i 34723
  • Downloads Links
  • Err codemadness.org 70 i 34724
Err codemadness.org 70 i 34725 Err codemadness.org 70 i 34726
DragonFly BSD is 64-bit only, as announced during the 3.8 release.
Err codemadness.org 70 i 34727 Err codemadness.org 70 i 34728
    Err codemadness.org 70 i 34729
  • USB: dfly-x86_64-5.4.0_REL.img as bzip2 file
  • Err codemadness.org 70 i 34730
  • ISO: dfly-x86_64-5.4.0_REL.iso as bzip2 file
  • Err codemadness.org 70 i 34731
  • Uncompressed ISO: dfly-x86_64-5.4.0_REL.iso (For use with VPS providers as an install image.)
  • Err codemadness.org 70 i 34732
Err codemadness.org 70 i 34733 Err codemadness.org 70 i 34734


Err codemadness.org 70 i 34735 Err codemadness.org 70 i 34736

Down the Gopher hole with OpenBSD, Gophernicus, and TLS

Err codemadness.org 70 i 34737 Err codemadness.org 70 i 34738
In the early 2000s I thought I had seen the worst of the web - Java applets, Macromedia (>Adobe) Flash, animated GIFs, javascript snow that kept you warm in the winter by burning out your CPU, and so on. For a time we learned from these mistakes, and started putting the burden on the server-side - then with improvements in javascript engines we started abusing it again with JSON/AJAX and it all went down hill from there.
Err codemadness.org 70 i 34739 Err codemadness.org 70 i 34740
Like cloud computing, blockchains, machine learning and a tonne of other a la mode technologies around today - most users and service providers don’t need websites that consume 1GB of memory processing JS and downloading 50MB of compressed data just to read Alice’s one-page travel blog or Bob’s notes on porting NetBSD to his blood-pressure monitor.
Err codemadness.org 70 i 34741 Err codemadness.org 70 i 34742
Before the HTTP web we relied on Prestel/Minitel style systems, BBS systems, and arguably the most accessible of all - Gopher! Gopher was similar to the locally accessed AmigaGuide format, in that it allowed users to search and retrieve documents interactively, with links and cross-references. Its efficiency and distraction-free nature make it attractive to those who are tired of the invasive, clickbait, ad-filled, javascript-laden web2/3.x. But enough complaining and evangelism - here’s how to get your own Gopher Hole!
Err codemadness.org 70 i 34743 Err codemadness.org 70 i 34744
Gophernicus is a modern gopher daemon which aims to be secure (although it still uses inetd -_-); it’s even in OpenBSD ports so at least we can rely on it to be reasonably audited.
Err codemadness.org 70 i 34745 Err codemadness.org 70 i 34746
If you need a starting point with Gopher, SDF-EU’s wiki has a good article here.
Err codemadness.org 70 i 34747 Err codemadness.org 70 i 34748 Err codemadness.org 70 i 34751 Err codemadness.org 70 i 34752
Finally, if you don’t like gopher(1) - there’s always lynx(1) or NCSA Mosaic!
Err codemadness.org 70 i 34753 Err codemadness.org 70 i 34754 Err codemadness.org 70 i 34757 Err codemadness.org 70 i 34758
I’ve added TLS support to Gophernicus so you don’t need to use stunnel anymore. The code is ugly and unpolished though so I wouldn’t recommend for production use.
Err codemadness.org 70 i 34759 Err codemadness.org 70 i 34760 Err codemadness.org 70 i 34764 Err codemadness.org 70 i 34765


Err codemadness.org 70 i 34766 Err codemadness.org 70 i 34767

News Roundup

Err codemadness.org 70 i 34768 Err codemadness.org 70 i 34769

OpenBSD in Stereo with Linux VFIO

Err codemadness.org 70 i 34770 Err codemadness.org 70 i 34771
I use a Huawei Matebook X as my primary OpenBSD laptop and one aspect of its hardware support has always been lacking: audio never played out of the right-side speaker. The speaker did actually work, but only in Windows and only after the Realtek Dolby Atmos audio driver from Huawei was installed. Under OpenBSD and Linux, and even Windows with the default Intel sound driver, audio only ever played out of the left speaker. Err codemadness.org 70 i 34772 Now, after some extensive reverse engineering and debugging with the help of VFIO on Linux, I finally have audio playing out of both speakers on OpenBSD.
Err codemadness.org 70 i 34773 Err codemadness.org 70 i 34774
    Err codemadness.org 70 i 34775
  • VFIO
  • Err codemadness.org 70 i 34776
Err codemadness.org 70 i 34777 Err codemadness.org 70 i 34778
The Linux kernel has functionality called VFIO which enables direct access to a physical device (like a PCI card) from userspace, usually passing it to an emulator like QEMU. Err codemadness.org 70 i 34779 To my surprise, these days, it seems to be primarily by gamers who boot Linux, then use QEMU to run a game in Windows and use VFIO to pass the computer’s GPU device through to Windows. Err codemadness.org 70 i 34780 By using Linux and VFIO, I was able to boot Windows 10 inside of QEMU and pass my laptop’s PCI audio device through to Windows, allowing the Realtek audio drivers to natively control the audio device. Combined with QEMU’s tracing functionality, I was able to get a log of all PCI I/O between Windows and the PCI audio device.
Err codemadness.org 70 i 34781 Err codemadness.org 70 i 34782
    Err codemadness.org 70 i 34783
  • Using VFIO
  • Err codemadness.org 70 i 34784
Err codemadness.org 70 i 34785 Err codemadness.org 70 i 34786
To use VFIO to pass-through a PCI device, it first needs to be stubbed out so the Linux kernel’s default drivers don’t attach to it. GRUB can be configured to instruct the kernel to ignore the PCI audio device (8086:9d71) and explicitly enable the Intel IOMMU driver by adding the following to /etc/default/grub and running update-grub Err codemadness.org 70 i 34787 With the audio device stubbed out, a new VFIO device can be created from it Err codemadness.org 70 i 34788 Then the VFIO device (00:1f.3) can be passed to QEMU Err codemadness.org 70 i 34789 I was using my own build of QEMU for this, due to some custom logging I needed (more on that later), but the default QEMU package should work fine. The events.txt was a file of all VFIO events I wanted logged (which was all of them). Err codemadness.org 70 i 34790 Since I was frequently killing QEMU and restarting it, Windows 10 wanted to go through its unexpected shutdown routine each time (and would sometimes just fail to boot again). To avoid this and to get a consistent set of logs each time, I used qemu-img to take a snapshot of a base image first, then boot QEMU with that snapshot. The snapshot just gets thrown away the next time qemu-img is run and Windows always starts from a consistent state. Err codemadness.org 70 i 34791 QEMU will now log each VFIO event which gets saved to a debug-output file. Err codemadness.org 70 i 34792 With a full log of all PCI I/O activity from Windows, I compared it to the output from OpenBSD and tried to find the magic register writes that enabled the second speaker. After days of combing through the logs and annotating them by looking up hex values in the documentation, diffing runtime register values, and even brute-forcing it by mechanically duplicating all PCI I/O activity in the OpenBSD driver, nothing would activate the right speaker. Err codemadness.org 70 i 34793 One strange thing that I noticed was if I booted Windows 10 in QEMU and it activated the speaker, then booted OpenBSD in QEMU without resetting the PCI device’s power in-between (as a normal system reboot would do), both speakers worked in OpenBSD and the configuration that the HDA controller presented was different, even without any changes in OpenBSD.
Err codemadness.org 70 i 34794 Err codemadness.org 70 i 34795
A Primer on Intel HDA Err codemadness.org 70 i 34796 Most modern computers with integrated sound chips use an Intel High Definition Audio (HDA) Controller device, with one or more codecs (like the Realtek ALC269) hanging off of it. These codecs do the actual audio processing and communicate with DACs and ADCs to send digital audio to the connected speakers, or read analog audio from a microphone and convert it to a digital input stream. In my Huawei Matebook X, this is done through a Realtek ALC298 codec. Err codemadness.org 70 i 34797 On OpenBSD, these HDA controllers are supported by the azalia(4) driver, with all of the per-codec details in the lengthy azalia_codec.c file. This file has grown quite large with lots of codec- and machine-specific quirks to route things properly, toggle various GPIO pins, and unmute speakers that are for some reason muted by default. Err codemadness.org 70 i 34798 The azalia driver talks to the HDA controller and sets up various buffers and then walks the list of codecs. Each codec supports a number of widget nodes which can be interconnected in various ways. Some of these nodes can be reconfigured on the fly to do things like turning a microphone port into a headphone port. Err codemadness.org 70 i 34799 The newer Huawei Matebook X Pro released a few months ago is also plagued with this speaker problem, although it has four speakers and only two work by default. A fix is being proposed for the Linux kernel which just reconfigures those widget pins in the Intel HDA driver. Unfortunately no pin reconfiguration is enough to fix my Matebook X with its two speakers. Err codemadness.org 70 i 34800 While reading more documentation on the HDA, I realized there was a lot more activity going on than I was able to see through the PCI tracing. Err codemadness.org 70 i 34801 For speed and efficiency, HDA controllers use a DMA engine to transfer audio streams as well as the commands from the OS driver to the codecs. In the output above, the CORBWP=0; size=256 and RIRBRP=0, size=256 indicate the setup of the CORB (Command Output Ring Buffer) and RIRB (Response Input Ring Buffer) each with 256 entries. The HDA driver allocates a DMA address and then writes it to the two CORBLBASE and CORBUBASE registers, and again for the RIRB. Err codemadness.org 70 i 34802 When the driver wants to send a command to a codec, such as CORB_GET_PARAMETER with a parameter of COP_VOLUME_KNOB_CAPABILITIES, it encodes the codec address, the node index, the command verb, and the parameter, and then writes that value to the CORB ring at the address it set up with the controller at initialization time (CORBLBASE/CORBUBASE) plus the offset of the ring index. Once the command is on the ring, it does a PCI write to the CORBWP register, advancing it by one. This lets the controller know a new command is queued, which it then acts on and writes the response value on the RIRB ring at the same position as the command (but at the RIRB’s DMA address). It then generates an interrupt, telling the driver to read the new RIRBWP value and process the new results. Err codemadness.org 70 i 34803 Since the actual command contents and responses are handled through DMA writes and reads, these important values weren’t showing up in the VFIO PCI trace output that I had gathered. Time to hack QEMU.
Err codemadness.org 70 i 34804 Err codemadness.org 70 i 34805
    Err codemadness.org 70 i 34806
  • Logging DMA Memory Values in QEMU
  • Err codemadness.org 70 i 34807
Err codemadness.org 70 i 34808 Err codemadness.org 70 i 34809
Since DMA activity wouldn’t show up through QEMU’s VFIO tracing and I obviously couldn’t get Windows to dump these values like I could in OpenBSD, I could make QEMU recognize the PCI write to the CORBWP register as an indication that a command has just been written to the CORB ring. Err codemadness.org 70 i 34810 My custom hack in QEMU adds some HDA awareness to remember the CORB and RIRB DMA addresses as they get programmed in the controller. Then any time a PCI write to the CORBWP register is done, QEMU fetches the new CORB command from DMA memory, decodes it into the codec address, node address, command, and parameter, and prints it out. When a PCI read of the RIRBWP register is requested, QEMU reads the response and prints the corresponding CORB command that it stored earlier. Err codemadness.org 70 i 34811 With this hack in place, I now had a full log of all CORB commands and RIRB responses sent to and read from the codec: Err codemadness.org 70 i 34812 An early version of this patch left me stumped for a few days because, even after submitting all of the same CORB commands in OpenBSD, the second speaker still didn’t work. It wasn’t until re-reading the HDA spec that I realized the Windows driver was submitting more than one command at a time, writing multiple CORB entries and writing a CORBWP value that was advanced by two. This required turning my CORB/RIRB reading into a for loop, reading each new command and response between the new CORBWP/RIRBWP value and the one previously seen. Err codemadness.org 70 i 34813 Sure enough, the magic commands to enable the second speaker were sent in these periods where it submitted more than one command at a time.
Err codemadness.org 70 i 34814 Err codemadness.org 70 i 34815
    Err codemadness.org 70 i 34816
  • Minimizing the Magic
  • Err codemadness.org 70 i 34817
Err codemadness.org 70 i 34818 Err codemadness.org 70 i 34819
The full log of VFIO PCI activity from the Windows driver was over 65,000 lines and contained 3,150 CORB commands, which is a lot to sort through. It took me a couple more days to reduce that down to a small subset that was actually required to activate the second speaker, and that could only be done through trial and error:
Err codemadness.org 70 i 34820 Err codemadness.org 70 i 34821
    Err codemadness.org 70 i 34822
  • Boot OpenBSD with the full list of CORB commands in the azalia driver
  • Err codemadness.org 70 i 34823
  • Comment out a group of them
  • Err codemadness.org 70 i 34824
  • Compile kernel and install it, halt the QEMU guest
  • Err codemadness.org 70 i 34825
  • Suspend and wake the laptop, resetting PCI power to the audio device to reset the speaker/Dolby initialization and ensure the previous run isn’t influencing the current test (I’m guessing there is an easier to way to reset PCI power than suspending the laptop, but oh well)
  • Err codemadness.org 70 i 34826
  • Start QEMU, boot OpenBSD with the new kernel
  • Err codemadness.org 70 i 34827
  • Play an MP3 with mpg123 which has alternating left- and right-channel audio and listen for both channels to play
  • Err codemadness.org 70 i 34828
Err codemadness.org 70 i 34829 Err codemadness.org 70 i 34830
This required a dozen or so iterations because sometimes I’d comment out too many commands and the right speaker would stop working. Other times the combination of commands would hang the controller and it wouldn’t process any further commands. At one point the combination of commands actually flipped the channels around so the right channel audio was playing through the left speaker.
Err codemadness.org 70 i 34831 Err codemadness.org 70 i 34832
    Err codemadness.org 70 i 34833
  • The Result
  • Err codemadness.org 70 i 34834
Err codemadness.org 70 i 34835 Err codemadness.org 70 i 34836
After about a week of this routine, I ended up with a list of 662 CORB commands that are needed to get the second speaker working. Based on the number of repeated-but-slightly-different values written with the 0x500 and 0x400 commands, I’m guessing this is some kind of training data and that this is doing the full Dolby/Atmos system initialization, not just turning on the second speaker, but I could be completely wrong. Err codemadness.org 70 i 34837 In any case, the stereo sound from OpenBSD is wonderful now and I can finally stop downmixing everything to mono to play from the left speaker. In case you ever need to do this, sndiod can be run with -c 0:0 to reduce the channels to one. Err codemadness.org 70 i 34838 Due to the massive size of the code needed for this quirk, I’m not sure if I’ll be committing it upstream in OpenBSD or just saving it for my own tree. But at least now the hardware support chart for my Matebook is all yeses for the things I care about. Err codemadness.org 70 i 34839 I’ve also updated the Linux bug report that I opened before venturing down this path, hoping one of the maintainers of that HDA code that works at Intel or Realtek knew of a solution I could just port to OpenBSD. I’m curious to see what they’ll do with it.
Err codemadness.org 70 i 34840 Err codemadness.org 70 i 34841


Err codemadness.org 70 i 34842 Err codemadness.org 70 i 34843

Why BSD/OS is the best candidate for being the only tested legally open UNIX

Err codemadness.org 70 i 34844 Err codemadness.org 70 i 34845
    Err codemadness.org 70 i 34846
  • Introduction
  • Err codemadness.org 70 i 34847
Err codemadness.org 70 i 34848 Err codemadness.org 70 i 34849
The UNIX® system is an old operating system, possibly older than many of the readers of this post. However, despite its age, it still has not been open sourced completely. In this post, I will try to detail which parts of which UNIX systems have not yet been open sourced. I will focus on the legal situation in Germany in particular, taking it representative of European law in general – albeit that is a stretch, knowing the diversity of European jurisdictions. Please note that familiarity with basic terms of copyright law is assumed.
Err codemadness.org 70 i 34850 Err codemadness.org 70 i 34851
    Err codemadness.org 70 i 34852
  • Ancient UNIX
  • Err codemadness.org 70 i 34853
Err codemadness.org 70 i 34854 Err codemadness.org 70 i 34855
The term “Ancient UNIX” refers to the versions of UNIX up to and including Seventh Edition UNIX (1979) including the 32V port to the VAX. Ancient UNIX was created at Bell Laboratories, a subsidiary of AT&T at the time. It was later transferred of the AT&T UNIX Support Group, then AT&T Information Systems and finally the AT&T subsidiary UNIX System Laboratories, Inc. (USL). The legal situation differs between the United States of America and Germany. Err codemadness.org 70 i 34856 In a ruling as part of the UNIX System Laboratories, Inc. v. Berkeley Software Design, Inc. (USL v. BSDi) case, a U.S. court found that USL had no copyright to the Seventh Edition UNIX system and 32V – arguably, by extension, all earlier versions of Ancient UNIX as well – because USL/AT&T had failed to affix copyright notices and could not demonstrate a trade secret. Due to the obsessive tendency of U.S. courts to consider themselves bound to precedents (cf. the infamous Pierson v. Post case), it can be reasonably expected that this ruling would be honored and applied in subsequent cases. Thus under U.S. law, Ancient UNIX can be safely assumed to belong in the public domain. Err codemadness.org 70 i 34857 The situation differs in Germany. Unlike the U.S., copyright never needed registration in order to exist. Computer programs are works in the sense of the German 1965 Act on Copyright and Related Rights (Copyright Act, henceforth CopyA) as per CopyA § 2(1) no. 1. Even prior to the amendment of CopyA § 2(1) to include computer programs, computer programs have been recognized as copyrightable works by the German Supreme Court (BGHZ 112, 264 Betriebssystem, no. 19); CopyA § 137d(1) rightly clarifies that. The copyright holder at 1979 would still have been USL via Bell Labs and AT&T. Copyright of computer programs is transferred to the employer upon creation under CopyA § 69(1). Err codemadness.org 70 i 34858 Note that this does not affect expiry (Daniel Kaboth/Benjamin Spies, commentary on CopyA §§ 69a‒69g, in: Hartwig Ahlberg/Horst-Peter Götting (eds.), Urheberrecht: UrhG, KUG, VerlG, VGG, Kommentar, 4th ed., C. H. Beck, 2018, no. 16 ad CopyA § 69b; cf. Bundestag-Drucksache [BT-Drs.] 12/4022, p. 10). Expiry occurs 70 years after the death of the (co-)author that died most recently as per CopyA § 65(1) and 64; this has been the case since at least the 1960s, meaning there is no way for copyright to have expired already (old version, as per Bundesgesetzblatt Part I No. 51 of September 16, 1965, pp. 1273‒1294). Err codemadness.org 70 i 34859 In Germany, private international law applies the so-called “Territorialitätsprinzip” for intellectual property rights. This means that the effect of an intellectual property right is limited to the territory of a state (Anne Lauber-Rönsberg, KollisionsR, in: Hartwig Ahlberg/Horst-Peter Götting (eds.), ibid., pp. 2241 et seqq., no. 4). Additionally, the “Schutzlandprinzip” applies; this means that protection of intellectual property follows the lex loci protectionis, i.e. the law of the country for which protection is sought (BGH GRUR 2015, 264 HiHotel II, no. 25; BGH GRUR 2003, 328 Sender Felsberg, no. 24), albeit this is criticized in parts of doctrine (Lauber-Rönsberg, ibid., no. 10). The “Schutzlandprinzip” requires that the existence of an intellectual property right be verified as well (BGH ZUM 2016, 522 Wagenfeld-Leuchte II, no. 19). Err codemadness.org 70 i 34860 Thus, in Germany, copyright on Ancient UNIX is still alive and well. Who has it, though? A ruling by the U.S. Court of Appeals, Tenth Circuit, in the case of The SCO Group, Inc. v. Novell, Inc. (SCO v. Novell) in the U.S. made clear that Novell owns the rights to System V – thus presumably UNIX System III as well – and Ancient UNIX, though SCO acquired enough rights to develop UnixWare/OpenServer (Ruling 10-4122 [D.C. No. 2:04-CV-00139-TS], pp. 19 et seq.). Novell itself was purchased by the Attachmate Group, which was in turn acquired by the COBOL vendor Micro Focus. Therefore, the rights to SVRX and – outside the U.S. – are with Micro Focus right now. If all you care about is the U.S., you can stop reading about Ancient UNIX here. Err codemadness.org 70 i 34861 So how does the Caldera license factor into all of this? For some context, the license was issued January 23, 2002 and covers Ancient UNIX (V1 through V7 including 32V), specifically excluding System III and System V. Caldera, Inc. was founded in 1994. The Santa Cruz Operation, Inc. sold its rights to UNIX to Caldera in 2001, renamed itself to Tarantella Inc. and Caldera renamed itself The SCO Group. Nemo plus iuris ad alium transferre potest quam ipse habet; no one can transfer more rights than he has. The question now becomes whether Caldera had the rights to issue the Caldera license. Err codemadness.org 70 i 34862 I’ve noted it above but it needs restating: Foreign decisions are not necessarily accepted in Germany due to the “Territorialitätsprinzip” and “Schutzlandprinzip” – however, I will be citing a U.S. ruling for its assessment of the facts for the sake of simplicity. As per ruling 10-4122, “The district court found the parties intended for SCO to serve as Novell’s agent with respect to the old SVRX licenses and the only portion of the UNIX business transferred outright under the APA [asset purchase agreement] was the ability to exploit and further develop the newer UnixWare system. SCO was able to protect that business because it was able to copyright its own improvements to the system. The only reason to protect the earlier UNIX code would be to protect the existing SVRX licenses, and the court concluded Novell retained ultimate control over that portion of the business under the APA.” The relevant agreements consist of multiple pieces: Err codemadness.org 70 i 34863 the base Asset Purchase Agreement “APA” (Part I) Err codemadness.org 70 i 34864 the base Asset Purchase Agreement “APA” (Part II) Err codemadness.org 70 i 34865 the Operating Agremeent and Amendment 1 to the APA Err codemadness.org 70 i 34866 the Amendment 2 to the APA Err codemadness.org 70 i 34867 The APA dates September 19, 1995, from before the Caldera license. Caldera cannot possibly have acquired rights that The Santa Cruz Operation, Inc. itself never had. Furthermore, I’ve failed to find any mention of Ancient UNIX; all that is transferred is rights to SVRX. Overall, I believe that the U.S. courts’ assesment of the facts represents the situation accurately. Thus for all intents and purposes, UNIX up to and including System V remained with Novell/Attachmate/Micro Focus. Caldera therefore never had any rights to Ancient UNIX, which means it never had the rights to issue the Caldera license. The Caldera license is null and void – in the U.S. because the copyright has been lost due to formalities, everywhere else because Caldera never had the rights to issue it. Err codemadness.org 70 i 34868 The first step to truly freeing UNIX would this be to get Micro Focus to re-issue the Caldera license for Ancient UNIX, ideally it would now also include System III and System V.
Err codemadness.org 70 i 34869 Err codemadness.org 70 i 34870
    Err codemadness.org 70 i 34871
  • BSD/OS
  • Err codemadness.org 70 i 34872
Err codemadness.org 70 i 34873 Err codemadness.org 70 i 34874
Another operating system near UNIX is of interest. The USL v. BSDi lawsuit includes two parties: USL, which we have seen above, and Berkeley Software Design, Inc. BSDi sold BSD/386 (later BSD/OS), which was a derivative of 4.4BSD. The software parts of the BSDi company were acquired by Wind River Systems, whereas the hardware parts went to iXsystems. Copyright is not disputed there, though Wind River Systems ceased selling BSD/OS products 15 years ago, in 2003. In addition, Wind River System let their trademark on BSD expire, though this is without consequence for copyright. Err codemadness.org 70 i 34875 BSD/OS is notable in the sense that it powered much of early internet infrastructure. Traces of its legacy can still be found on Richard Stevens’ FAQ. Err codemadness.org 70 i 34876 To truly make UNIX history free, BSD/OS would arguably also need to see a source code release. BSD/OS at least in its earliest releases under BSDi would ship with source code, though under a non-free license, far from BSD or even GPL licensing.
Err codemadness.org 70 i 34877 Err codemadness.org 70 i 34878
    Err codemadness.org 70 i 34879
  • System V
  • Err codemadness.org 70 i 34880
Err codemadness.org 70 i 34881 Err codemadness.org 70 i 34882
The fate of System V as a whole is difficult to determine. Various licenses have been granted to a number of vendors (Dell UNIX comes to mind; HP for HP-UX, IBM for AIX, SGI UNIX, etc.). Sun released OpenSolaris – notoriously, Oracle closed the source to Solaris again after its release –, which is a System V Release 4 descendant. However, this means nothing for the copyright or licensing status of System V itself. Presumably, the rights with System V still remain with Novell (now Micro Focus): SCO managed to sublicense rights to develop and sell UnixWare/OpenServer, themselves System V/III descendants, to unXis, Inc. (now known as Xinuos, Inc.), which implies that Xinuos is not the copyright holder of System V. Err codemadness.org 70 i 34883 Obviously, to free UNIX, System V and its entire family of descendants would also need to be open sourced. However, I expect tremendous resistance on part of all the companies mentioned. As noted in the “Ancient UNIX” section, Micro Focus alone would probably be sufficient to release System V, though this would mean nothing for the other commercial System V derivatives.
Err codemadness.org 70 i 34884 Err codemadness.org 70 i 34885
    Err codemadness.org 70 i 34886
  • Newer Research UNIX
  • Err codemadness.org 70 i 34887
Err codemadness.org 70 i 34888 Err codemadness.org 70 i 34889
The fate of Bell Labs would be a different one; it would go on to be purchased by Lucent, now part of Nokia. After commercial UNIX got separated out to USL, Research UNIX would continue to exist inside of Bell Labs. Research UNIX V8, V9 and V10 were not quite released by Alcatel-Lucent USA Inc. and Nokia in 2017. Err codemadness.org 70 i 34890 However, this is merely a notice that the companies involved will not assert their copyrights only with respect to any non-commercial usage of the code. It is still not possible, over 30 years later, to freely use the V8 code.
Err codemadness.org 70 i 34891 Err codemadness.org 70 i 34892
    Err codemadness.org 70 i 34893
  • Conclusion Err codemadness.org 70 i 34894 In the U.S., Ancient UNIX is freely available. People located everywhere else, however, are unable to legally obtain UNIX code for any of the systems mentioned above. The exception being BSD/OS, assuming a purchase of a legitimate copy of the source code CD. This is deeply unsatisfying and I implore all involved companies to consider open sourcing (preferably under a BSD-style license) their code older than a decade, if nothing else, then at least for the sake of historical purposes. I would like to encourage everybody reading this to consider reaching out to Micro Focus and Wind River Systems about System V and BSD/OS, respectively. Perhaps the masses can change their minds.
  • Err codemadness.org 70 i 34895
Err codemadness.org 70 i 34896 Err codemadness.org 70 i 34897
A small note about patents: Some technologies used in newer iterations of the UNIX system (in particular the System V derivatives) may be encumbered with software patents. An open source license will not help against patent infringement claims. However, the patents on anything used in the historical operating systems will certainly have expired by now. In addition, European readers can ignore this entirely – software patents just aren’t a thing.
Err codemadness.org 70 i 34898 Err codemadness.org 70 i 34899


Err codemadness.org 70 i 34900 Err codemadness.org 70 i 34901

OpenBGPD - Adding Diversity to the Route Server Landscape

Err codemadness.org 70 i 34902 Err codemadness.org 70 i 34903
    Err codemadness.org 70 i 34904
  • Introduction
  • Err codemadness.org 70 i 34905
Err codemadness.org 70 i 34906 Err codemadness.org 70 i 34907
As of last year, there was effectively only a single solution in the Route Server vendor market: the BIRD Internet routing daemon. NIC.CZ (the organisation developing BIRD) has done fantastic work on maintaining their BGP-4 implementation, however, it’s not healthy to have virtually every Internet Exchange Point (IXP) in the RIPE NCC service region depend on a single open source project. The current situation can be compared to the state of the DNS root nameservers back in 2002 - their dependence on the BIND nameserver daemon and the resulting development of NSD as an alternative by NLnet, in cooperation with the RIPE NCC. Err codemadness.org 70 i 34908 OpenBGPD used to be one of the most popular Route Server implementations until the early 2010s. OpenBGPD’s main problem was that its performance couldn’t keep up with the Internet’s growth, so it lost market share. An analysis by Job Snijders suggested that a modernised OpenBGPD distribution would be a most viable option to regain diversity on the Route Server level.
Err codemadness.org 70 i 34909 Err codemadness.org 70 i 34910
    Err codemadness.org 70 i 34911
  • Missing features in OpenBGPD
  • Err codemadness.org 70 i 34912
Err codemadness.org 70 i 34913 Err codemadness.org 70 i 34914
The following main missing features were identified in OpenBGPD:
Err codemadness.org 70 i 34915 Err codemadness.org 70 i 34916
    Err codemadness.org 70 i 34917
  • Performance
  • Err codemadness.org 70 i 34918
Err codemadness.org 70 i 34919 Err codemadness.org 70 i 34920
In previous versions of OpenBGPD, the filtering performance didn’t allow proper filtering of all EBGP sessions. Current best practice at IXP Route Servers is to carefully evaluate and validate of all routes learned from EBGP peers. The OpenBGPD ruleset required to do correct filtering (in many deployment scenarios) was simply too lengthy - and negatively impacted service performance during configuration reloads. While filtering performance is the biggest bottleneck, general improvements to the Routing Information Base were also made to improve scalability. IXP Route Servers with a few hundred peering sessions are commonplace and adding new sessions shouldn’t impact the Route Servers’ service to other peers. We found that performance was the most pressing issue that needed to be tackled.
Err codemadness.org 70 i 34921 Err codemadness.org 70 i 34922
    Err codemadness.org 70 i 34923
  • Lack of RPKI Origin Validation
  • Err codemadness.org 70 i 34924
Err codemadness.org 70 i 34925 Err codemadness.org 70 i 34926
As we’ve seen, Internet operators are moving to adopt RPKI based BGP Origin Validation. While it was theoretically possible to emulate RFC 6811-style Origin Validation in previous versions of OpenBGPD, the required configuration wasn’t optimised for performance and wasn’t user friendly. We believe that BGP Origin Validation should be as easy as possible - this requires BGP-4 vendors to implement native, optimised routines for Origin Validation. Of course, enabling Origin Validation shouldn’t have an impact on performance either when processing BGP updates or when updating the Route Origin Authorisation (ROA) table itself.
Err codemadness.org 70 i 34927 Err codemadness.org 70 i 34928
    Err codemadness.org 70 i 34929
  • Portability
  • Err codemadness.org 70 i 34930
Err codemadness.org 70 i 34931 Err codemadness.org 70 i 34932
OpenBGPD is an integral part of OpenBSD, but IXPs may prefer to run their services infrastructure on an operating system of their choice. Making sure that there’s a portable OpenBGPD version which follows the OpenBSD project release cycle will give IXPs this option.
Err codemadness.org 70 i 34933 Err codemadness.org 70 i 34934
    Err codemadness.org 70 i 34935
  • Development steps
  • Err codemadness.org 70 i 34936
Err codemadness.org 70 i 34937 Err codemadness.org 70 i 34938
By addressing the issues mentioned above, we could bring back OpenBGPD as a viable Route Server implementation. Err codemadness.org 70 i 34939 Since I was one of the core OpenBGPD developers, I was asked if I wanted to pick up this project again. Thanks to the funding from the RIPE NCC Project Fund, this was possible. Starting in June 2018, I worked full time on this important community project. Over the last few months, many of the problems are already addressed and are now part of the OpenBSD 6.4 release. So far, 154 commits were made to OpenBGPD during the 6.4 development cycle - around 8% of all commits ever to OpenBGPD! This shows that due to funding and dedicated resources, a lot of work could be pushed into the latest release of OpenBGPD.
Err codemadness.org 70 i 34940 Err codemadness.org 70 i 34941
    Err codemadness.org 70 i 34942
  • OpenBGPD 6.4
  • Err codemadness.org 70 i 34943
Err codemadness.org 70 i 34944 Err codemadness.org 70 i 34945
The OpenBGPD version, as part of OpenBSD 6.4 release, demonstrates great progress. Even though there have been many changes to the core of OpenBGPD, the released version is as solid and reliable as previous releases and the many bug fixes and improvements make this the best OpenBGPD release so far. The changes in the filter language allow users to write more efficient rulesets while the introduction of RPKI origination validation fixes an important missing feature. For IXPs, OpenBGPD now is an alternative again. There are still open issues, but the gap is closing!
Err codemadness.org 70 i 34946 Err codemadness.org 70 i 34947
    Err codemadness.org 70 i 34948
  • Feature highlights
  • Err codemadness.org 70 i 34949
Err codemadness.org 70 i 34950 Err codemadness.org 70 i 34951
The following changes should be highlighted:
Err codemadness.org 70 i 34952 Err codemadness.org 70 i 34953
    Err codemadness.org 70 i 34954
  • Introduction of background soft-reconfiguration on config reload. Running the soft-reconfiguration task in the background allows for new updates and withdraws to be processed at the same time. This improves convergence time - one of the key metrics for Route Servers.
  • Err codemadness.org 70 i 34955
  • BGP Origin Validation when a roa-set is configured Every EBGP route announcement is validated against the locally configured VRP table entries. Depending on the validation process’s outcome, the validation state is set to valid, invalid or not found. The filter language has been extended to allow checking for the origin validation state, and thanks to this, it is possible to deny invalid prefixes or regard valid prefixes different to the ones that aren’t found. The roa-set table is read from the configuration file and updated during configuration reloads. On production systems reloading the roa-set and applying it to all prefixes is done in a couple of seconds.
  • Err codemadness.org 70 i 34956
  • Fast prefix-set lookups In OpenBSD 6.3 prefix-sets got introduced in OpenBGPD. A prefix-set combines many prefix lookups into a single filter rule. The original implementation wasn’t optimised but now a fast trie lookup is used. Thanks to this, large IRR DB prefix tables can now be implemented efficiently.
  • Err codemadness.org 70 i 34957
  • Introduction of as-sets Similar to prefix-sets, as-sets help group many AS numbers into a single lookup. Thanks to this, large IRR DB origin AS tables can be implemented efficiently. Err codemadness.org 70 i 34958 Introduction of origin-sets
  • Err codemadness.org 70 i 34959
  • Looking at the configurations of Route Servers doing full filtering, it was noticed that a common lookup was binding a prefix to an origin AS - similar to how a roa-set is used for RPKI. These origin-set tables are used to extend the IRR prefix lookup and generated from alternative sources.
  • Err codemadness.org 70 i 34960
  • Improving third party tools
  • Err codemadness.org 70 i 34961
Err codemadness.org 70 i 34962 Err codemadness.org 70 i 34963
Users can only benefit from the changes introduced in OpenBGPD 6.4 when the surrounding 3rd party tools are adjusted accordingly. Two opensource projects such as bgpq3 and arouteserver are frequently used by network operators and IXPs to generate BGP configurations. Thanks to our contributions to those projects, we were able to get them ready for all the new features in OpenBGPD.
Err codemadness.org 70 i 34964 Err codemadness.org 70 i 34965
    Err codemadness.org 70 i 34966
  • bgpq3 was extended to create as-set and prefix-set tables based on IRR DB entries. This is replacing the old way of doing the same with a large amount of filter rules. Thanks to the quick response from the bgpq3 maintainer, it was possible to ship OpenBSD 6.4 with a bgpq3 package that includes all the new features.
  • Err codemadness.org 70 i 34967
  • arouteserver was adjusted to implement RPKI roa-set, as-set, prefix-set, and origin-set to generate a much better-performing configurations for the 6.4 version. With the v0.20.0 release of arouteserver, IXPs are able to generate an OpenBGPD configuration which is a ton faster but also implements the new functionalities. Looking at YYCIX (the resident IXP in Calgary, Canada) the ruleset generated by arouteserver was reduced from 370,000 rules to well under 6,000 rules. This resulted in the initial convergence time dropping from over 1 hour to less than 2 minutes, and subsequent configuration reloads are hitless and no longer noticeable.
  • Err codemadness.org 70 i 34968
  • What still needs to be done
  • Err codemadness.org 70 i 34969
Err codemadness.org 70 i 34970 Err codemadness.org 70 i 34971
A sizeable chunk of work still left on the table is the rework of the RIB data structures in OpenBGPD - these haven’t been changed since the initial design of OpenBGPD in 2003. There’s currently ongoing work (in small steps, to avoid jeopardising the stability of OpenBGPD) to modernise these data-structures. The goal is to provide better decoupling of the filter step from storing RIB database changes, to pave the way to multi-threaded operations at a later point.
Err codemadness.org 70 i 34972 Err codemadness.org 70 i 34973
    Err codemadness.org 70 i 34974
  • Looking forward
  • Err codemadness.org 70 i 34975
  • Job Snijders oversaw this year’s fundraising and project management, he adds:
  • Err codemadness.org 70 i 34976
Err codemadness.org 70 i 34977 Err codemadness.org 70 i 34978
It’s been incredibly productive to create an environment where a core developer is allowed to work full time on the OpenBGPD code base. However, it’s important to note there still is room for a number of new features to help improve its operational capabilities (such as BMP, RFC 7313, ADD_PATH, etc). It’d be beneficial to the Internet community at large if we can extend Claudio Jeker’s involvement for another year. Open source software doesn’t grow on trees! Strategic investments are the only way to keep OpenBGPD’s roadmap aligned with Internet growth and operator requirements.
Err codemadness.org 70 i 34979 Err codemadness.org 70 i 34980


Err codemadness.org 70 i 34981 Err codemadness.org 70 i 34982

Beastie Bits

Err codemadness.org 70 i 34983 Err codemadness.org 70 i 34984 Err codemadness.org 70 i 34995 Err codemadness.org 70 i 34996


Err codemadness.org 70 i 34997 Err codemadness.org 70 i 34998

Feedback/Questions

Err codemadness.org 70 i 34999 Err codemadness.org 70 i 35000 Err codemadness.org 70 i 35005 Err codemadness.org 70 i 35006


Err codemadness.org 70 i 35007 Err codemadness.org 70 i 35008
    Err codemadness.org 70 i 35009
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 35010
Err codemadness.org 70 i 35011 Err codemadness.org 70 i 35012


]]> Err codemadness.org 70 i 35013
Err codemadness.org 70 i 35014 Err codemadness.org 70 i 35015 DragonflyBSD 5.4 has been released, down the Gopher hole with OpenBSD, OpenBSD in stereo with VFIO, BSD/OS the best candidate for legally tested open source Unix, OpenBGPD adds diversity to the routing server landscape, and more.

Err codemadness.org 70 i 35016 Err codemadness.org 70 i 35017

Headlines

Err codemadness.org 70 i 35018 Err codemadness.org 70 i 35019

DragonflyBSD 5.4 released

Err codemadness.org 70 i 35020 Err codemadness.org 70 i 35021
DragonFly version 5.4 brings a new system compiler in GCC 8, improved NUMA support, a large of number network and virtual machine driver updates, and updates to video support. This release is 64-bit only, as with previous releases. Err codemadness.org 70 i 35022 The details of all commits between the 5.2 and 5.4 branches are available in the associated commit messages for 5.4.0rc and 5.4.0.
Err codemadness.org 70 i 35023 Err codemadness.org 70 i 35024
    Err codemadness.org 70 i 35025
  • Big-ticket items
  • Err codemadness.org 70 i 35026
  • Much better support for asymmetric NUMA (Non-Uniform Memory Access) configurations. In particular, both the memory subsystem and the scheduler now understand the Threadripper 2990WX’s architecture. The scheduler will prioritize CPU nodes with direct-attached memory and the memory subsystem will normalize memory queues for CPU nodes without direct-attached memory (which improves cache locality on those CPUs).
  • Err codemadness.org 70 i 35027
  • Incremental performance work. DragonFly as a whole is very SMP friendly. The type of performance work we are doing now mostly revolves around improving fairness for shared-vs-exclusive lock clashes, reducing cache ping-ponging due to non-contending SMP locks (i.e. massive use of shared locks on shared resources), and so forth.
  • Err codemadness.org 70 i 35028
  • Major updates to dports brings us to within a week or two of FreeBSD’s ports as of this writing, in particular major updates to chromium, and making the whole mess work with gcc-8.
  • Err codemadness.org 70 i 35029
  • Major rewriting of the tty clist code and the tty locking code, significantly improving concurrency across multiple ttys and ptys.
  • Err codemadness.org 70 i 35030
  • GCC 8
  • Err codemadness.org 70 i 35031
  • DragonFly now ships with GCC 8.0, and runs as the default compiler. It is also now used for building dports.
  • Err codemadness.org 70 i 35032
  • GCC 4.7.4 and GCC 5.4.1 are still installed. 4.7.4 is our backup compiler, and 5.4.1 is still there to ensure a smooth transition, but should generally not be used. buildworld builds all three by default to ensure maximum compatibility.
  • Err codemadness.org 70 i 35033
  • Many passes through world sources were made to address various warnings and errors the new GCC brought with it.
  • Err codemadness.org 70 i 35034
  • HAMMER2
  • Err codemadness.org 70 i 35035
  • HAMMER2 is recommended as the default root filesystem in non-clustered mode.
  • Err codemadness.org 70 i 35036
  • Clustered support is not yet available.
  • Err codemadness.org 70 i 35037
  • Increased bulkfree cache to reduce the number of iterations required.
  • Err codemadness.org 70 i 35038
  • Fixed numerous bugs.
  • Err codemadness.org 70 i 35039
  • Improved support on low-memory machines.
  • Err codemadness.org 70 i 35040
  • Significant pre-work on the XOP API to help support future networked operations.
  • Err codemadness.org 70 i 35041
  • Details
  • Err codemadness.org 70 i 35042
  • Checksums Err codemadness.org 70 i 35043 MD5 (dfly-x86_64-5.4.0_REL.img) = 7277d7cffc92837c7d1c5dd11a11b98f Err codemadness.org 70 i 35044 MD5 (dfly-x86_64-5.4.0_REL.iso) = 6da7abf036fe9267479837b3c3078408 Err codemadness.org 70 i 35045 MD5 (dfly-x86_64-5.4.0_REL.img.bz2) = a77a072c864f4b72fd56b4250c983ff1 Err codemadness.org 70 i 35046 MD5 (dfly-x86_64-5.4.0_REL.iso.bz2) = 4dbfec6ccfc1d59c5049455db914d499
  • Err codemadness.org 70 i 35047
  • Downloads Links
  • Err codemadness.org 70 i 35048
Err codemadness.org 70 i 35049 Err codemadness.org 70 i 35050
DragonFly BSD is 64-bit only, as announced during the 3.8 release.
Err codemadness.org 70 i 35051 Err codemadness.org 70 i 35052
    Err codemadness.org 70 i 35053
  • USB: dfly-x86_64-5.4.0_REL.img as bzip2 file
  • Err codemadness.org 70 i 35054
  • ISO: dfly-x86_64-5.4.0_REL.iso as bzip2 file
  • Err codemadness.org 70 i 35055
  • Uncompressed ISO: dfly-x86_64-5.4.0_REL.iso (For use with VPS providers as an install image.)
  • Err codemadness.org 70 i 35056
Err codemadness.org 70 i 35057 Err codemadness.org 70 i 35058


Err codemadness.org 70 i 35059 Err codemadness.org 70 i 35060

Down the Gopher hole with OpenBSD, Gophernicus, and TLS

Err codemadness.org 70 i 35061 Err codemadness.org 70 i 35062
In the early 2000s I thought I had seen the worst of the web - Java applets, Macromedia (>Adobe) Flash, animated GIFs, javascript snow that kept you warm in the winter by burning out your CPU, and so on. For a time we learned from these mistakes, and started putting the burden on the server-side - then with improvements in javascript engines we started abusing it again with JSON/AJAX and it all went down hill from there.
Err codemadness.org 70 i 35063 Err codemadness.org 70 i 35064
Like cloud computing, blockchains, machine learning and a tonne of other a la mode technologies around today - most users and service providers don’t need websites that consume 1GB of memory processing JS and downloading 50MB of compressed data just to read Alice’s one-page travel blog or Bob’s notes on porting NetBSD to his blood-pressure monitor.
Err codemadness.org 70 i 35065 Err codemadness.org 70 i 35066
Before the HTTP web we relied on Prestel/Minitel style systems, BBS systems, and arguably the most accessible of all - Gopher! Gopher was similar to the locally accessed AmigaGuide format, in that it allowed users to search and retrieve documents interactively, with links and cross-references. Its efficiency and distraction-free nature make it attractive to those who are tired of the invasive, clickbait, ad-filled, javascript-laden web2/3.x. But enough complaining and evangelism - here’s how to get your own Gopher Hole!
Err codemadness.org 70 i 35067 Err codemadness.org 70 i 35068
Gophernicus is a modern gopher daemon which aims to be secure (although it still uses inetd -_-); it’s even in OpenBSD ports so at least we can rely on it to be reasonably audited.
Err codemadness.org 70 i 35069 Err codemadness.org 70 i 35070
If you need a starting point with Gopher, SDF-EU’s wiki has a good article here.
Err codemadness.org 70 i 35071 Err codemadness.org 70 i 35072 Err codemadness.org 70 i 35075 Err codemadness.org 70 i 35076
Finally, if you don’t like gopher(1) - there’s always lynx(1) or NCSA Mosaic!
Err codemadness.org 70 i 35077 Err codemadness.org 70 i 35078 Err codemadness.org 70 i 35081 Err codemadness.org 70 i 35082
I’ve added TLS support to Gophernicus so you don’t need to use stunnel anymore. The code is ugly and unpolished though so I wouldn’t recommend for production use.
Err codemadness.org 70 i 35083 Err codemadness.org 70 i 35084 Err codemadness.org 70 i 35088 Err codemadness.org 70 i 35089


Err codemadness.org 70 i 35090 Err codemadness.org 70 i 35091

News Roundup

Err codemadness.org 70 i 35092 Err codemadness.org 70 i 35093

OpenBSD in Stereo with Linux VFIO

Err codemadness.org 70 i 35094 Err codemadness.org 70 i 35095
I use a Huawei Matebook X as my primary OpenBSD laptop and one aspect of its hardware support has always been lacking: audio never played out of the right-side speaker. The speaker did actually work, but only in Windows and only after the Realtek Dolby Atmos audio driver from Huawei was installed. Under OpenBSD and Linux, and even Windows with the default Intel sound driver, audio only ever played out of the left speaker. Err codemadness.org 70 i 35096 Now, after some extensive reverse engineering and debugging with the help of VFIO on Linux, I finally have audio playing out of both speakers on OpenBSD.
Err codemadness.org 70 i 35097 Err codemadness.org 70 i 35098
    Err codemadness.org 70 i 35099
  • VFIO
  • Err codemadness.org 70 i 35100
Err codemadness.org 70 i 35101 Err codemadness.org 70 i 35102
The Linux kernel has functionality called VFIO which enables direct access to a physical device (like a PCI card) from userspace, usually passing it to an emulator like QEMU. Err codemadness.org 70 i 35103 To my surprise, these days, it seems to be primarily by gamers who boot Linux, then use QEMU to run a game in Windows and use VFIO to pass the computer’s GPU device through to Windows. Err codemadness.org 70 i 35104 By using Linux and VFIO, I was able to boot Windows 10 inside of QEMU and pass my laptop’s PCI audio device through to Windows, allowing the Realtek audio drivers to natively control the audio device. Combined with QEMU’s tracing functionality, I was able to get a log of all PCI I/O between Windows and the PCI audio device.
Err codemadness.org 70 i 35105 Err codemadness.org 70 i 35106
    Err codemadness.org 70 i 35107
  • Using VFIO
  • Err codemadness.org 70 i 35108
Err codemadness.org 70 i 35109 Err codemadness.org 70 i 35110
To use VFIO to pass-through a PCI device, it first needs to be stubbed out so the Linux kernel’s default drivers don’t attach to it. GRUB can be configured to instruct the kernel to ignore the PCI audio device (8086:9d71) and explicitly enable the Intel IOMMU driver by adding the following to /etc/default/grub and running update-grub Err codemadness.org 70 i 35111 With the audio device stubbed out, a new VFIO device can be created from it Err codemadness.org 70 i 35112 Then the VFIO device (00:1f.3) can be passed to QEMU Err codemadness.org 70 i 35113 I was using my own build of QEMU for this, due to some custom logging I needed (more on that later), but the default QEMU package should work fine. The events.txt was a file of all VFIO events I wanted logged (which was all of them). Err codemadness.org 70 i 35114 Since I was frequently killing QEMU and restarting it, Windows 10 wanted to go through its unexpected shutdown routine each time (and would sometimes just fail to boot again). To avoid this and to get a consistent set of logs each time, I used qemu-img to take a snapshot of a base image first, then boot QEMU with that snapshot. The snapshot just gets thrown away the next time qemu-img is run and Windows always starts from a consistent state. Err codemadness.org 70 i 35115 QEMU will now log each VFIO event which gets saved to a debug-output file. Err codemadness.org 70 i 35116 With a full log of all PCI I/O activity from Windows, I compared it to the output from OpenBSD and tried to find the magic register writes that enabled the second speaker. After days of combing through the logs and annotating them by looking up hex values in the documentation, diffing runtime register values, and even brute-forcing it by mechanically duplicating all PCI I/O activity in the OpenBSD driver, nothing would activate the right speaker. Err codemadness.org 70 i 35117 One strange thing that I noticed was if I booted Windows 10 in QEMU and it activated the speaker, then booted OpenBSD in QEMU without resetting the PCI device’s power in-between (as a normal system reboot would do), both speakers worked in OpenBSD and the configuration that the HDA controller presented was different, even without any changes in OpenBSD.
Err codemadness.org 70 i 35118 Err codemadness.org 70 i 35119
A Primer on Intel HDA Err codemadness.org 70 i 35120 Most modern computers with integrated sound chips use an Intel High Definition Audio (HDA) Controller device, with one or more codecs (like the Realtek ALC269) hanging off of it. These codecs do the actual audio processing and communicate with DACs and ADCs to send digital audio to the connected speakers, or read analog audio from a microphone and convert it to a digital input stream. In my Huawei Matebook X, this is done through a Realtek ALC298 codec. Err codemadness.org 70 i 35121 On OpenBSD, these HDA controllers are supported by the azalia(4) driver, with all of the per-codec details in the lengthy azalia_codec.c file. This file has grown quite large with lots of codec- and machine-specific quirks to route things properly, toggle various GPIO pins, and unmute speakers that are for some reason muted by default. Err codemadness.org 70 i 35122 The azalia driver talks to the HDA controller and sets up various buffers and then walks the list of codecs. Each codec supports a number of widget nodes which can be interconnected in various ways. Some of these nodes can be reconfigured on the fly to do things like turning a microphone port into a headphone port. Err codemadness.org 70 i 35123 The newer Huawei Matebook X Pro released a few months ago is also plagued with this speaker problem, although it has four speakers and only two work by default. A fix is being proposed for the Linux kernel which just reconfigures those widget pins in the Intel HDA driver. Unfortunately no pin reconfiguration is enough to fix my Matebook X with its two speakers. Err codemadness.org 70 i 35124 While reading more documentation on the HDA, I realized there was a lot more activity going on than I was able to see through the PCI tracing. Err codemadness.org 70 i 35125 For speed and efficiency, HDA controllers use a DMA engine to transfer audio streams as well as the commands from the OS driver to the codecs. In the output above, the CORBWP=0; size=256 and RIRBRP=0, size=256 indicate the setup of the CORB (Command Output Ring Buffer) and RIRB (Response Input Ring Buffer) each with 256 entries. The HDA driver allocates a DMA address and then writes it to the two CORBLBASE and CORBUBASE registers, and again for the RIRB. Err codemadness.org 70 i 35126 When the driver wants to send a command to a codec, such as CORB_GET_PARAMETER with a parameter of COP_VOLUME_KNOB_CAPABILITIES, it encodes the codec address, the node index, the command verb, and the parameter, and then writes that value to the CORB ring at the address it set up with the controller at initialization time (CORBLBASE/CORBUBASE) plus the offset of the ring index. Once the command is on the ring, it does a PCI write to the CORBWP register, advancing it by one. This lets the controller know a new command is queued, which it then acts on and writes the response value on the RIRB ring at the same position as the command (but at the RIRB’s DMA address). It then generates an interrupt, telling the driver to read the new RIRBWP value and process the new results. Err codemadness.org 70 i 35127 Since the actual command contents and responses are handled through DMA writes and reads, these important values weren’t showing up in the VFIO PCI trace output that I had gathered. Time to hack QEMU.
Err codemadness.org 70 i 35128 Err codemadness.org 70 i 35129
    Err codemadness.org 70 i 35130
  • Logging DMA Memory Values in QEMU
  • Err codemadness.org 70 i 35131
Err codemadness.org 70 i 35132 Err codemadness.org 70 i 35133
Since DMA activity wouldn’t show up through QEMU’s VFIO tracing and I obviously couldn’t get Windows to dump these values like I could in OpenBSD, I could make QEMU recognize the PCI write to the CORBWP register as an indication that a command has just been written to the CORB ring. Err codemadness.org 70 i 35134 My custom hack in QEMU adds some HDA awareness to remember the CORB and RIRB DMA addresses as they get programmed in the controller. Then any time a PCI write to the CORBWP register is done, QEMU fetches the new CORB command from DMA memory, decodes it into the codec address, node address, command, and parameter, and prints it out. When a PCI read of the RIRBWP register is requested, QEMU reads the response and prints the corresponding CORB command that it stored earlier. Err codemadness.org 70 i 35135 With this hack in place, I now had a full log of all CORB commands and RIRB responses sent to and read from the codec: Err codemadness.org 70 i 35136 An early version of this patch left me stumped for a few days because, even after submitting all of the same CORB commands in OpenBSD, the second speaker still didn’t work. It wasn’t until re-reading the HDA spec that I realized the Windows driver was submitting more than one command at a time, writing multiple CORB entries and writing a CORBWP value that was advanced by two. This required turning my CORB/RIRB reading into a for loop, reading each new command and response between the new CORBWP/RIRBWP value and the one previously seen. Err codemadness.org 70 i 35137 Sure enough, the magic commands to enable the second speaker were sent in these periods where it submitted more than one command at a time.
Err codemadness.org 70 i 35138 Err codemadness.org 70 i 35139
    Err codemadness.org 70 i 35140
  • Minimizing the Magic
  • Err codemadness.org 70 i 35141
Err codemadness.org 70 i 35142 Err codemadness.org 70 i 35143
The full log of VFIO PCI activity from the Windows driver was over 65,000 lines and contained 3,150 CORB commands, which is a lot to sort through. It took me a couple more days to reduce that down to a small subset that was actually required to activate the second speaker, and that could only be done through trial and error:
Err codemadness.org 70 i 35144 Err codemadness.org 70 i 35145
    Err codemadness.org 70 i 35146
  • Boot OpenBSD with the full list of CORB commands in the azalia driver
  • Err codemadness.org 70 i 35147
  • Comment out a group of them
  • Err codemadness.org 70 i 35148
  • Compile kernel and install it, halt the QEMU guest
  • Err codemadness.org 70 i 35149
  • Suspend and wake the laptop, resetting PCI power to the audio device to reset the speaker/Dolby initialization and ensure the previous run isn’t influencing the current test (I’m guessing there is an easier to way to reset PCI power than suspending the laptop, but oh well)
  • Err codemadness.org 70 i 35150
  • Start QEMU, boot OpenBSD with the new kernel
  • Err codemadness.org 70 i 35151
  • Play an MP3 with mpg123 which has alternating left- and right-channel audio and listen for both channels to play
  • Err codemadness.org 70 i 35152
Err codemadness.org 70 i 35153 Err codemadness.org 70 i 35154
This required a dozen or so iterations because sometimes I’d comment out too many commands and the right speaker would stop working. Other times the combination of commands would hang the controller and it wouldn’t process any further commands. At one point the combination of commands actually flipped the channels around so the right channel audio was playing through the left speaker.
Err codemadness.org 70 i 35155 Err codemadness.org 70 i 35156
    Err codemadness.org 70 i 35157
  • The Result
  • Err codemadness.org 70 i 35158
Err codemadness.org 70 i 35159 Err codemadness.org 70 i 35160
After about a week of this routine, I ended up with a list of 662 CORB commands that are needed to get the second speaker working. Based on the number of repeated-but-slightly-different values written with the 0x500 and 0x400 commands, I’m guessing this is some kind of training data and that this is doing the full Dolby/Atmos system initialization, not just turning on the second speaker, but I could be completely wrong. Err codemadness.org 70 i 35161 In any case, the stereo sound from OpenBSD is wonderful now and I can finally stop downmixing everything to mono to play from the left speaker. In case you ever need to do this, sndiod can be run with -c 0:0 to reduce the channels to one. Err codemadness.org 70 i 35162 Due to the massive size of the code needed for this quirk, I’m not sure if I’ll be committing it upstream in OpenBSD or just saving it for my own tree. But at least now the hardware support chart for my Matebook is all yeses for the things I care about. Err codemadness.org 70 i 35163 I’ve also updated the Linux bug report that I opened before venturing down this path, hoping one of the maintainers of that HDA code that works at Intel or Realtek knew of a solution I could just port to OpenBSD. I’m curious to see what they’ll do with it.
Err codemadness.org 70 i 35164 Err codemadness.org 70 i 35165


Err codemadness.org 70 i 35166 Err codemadness.org 70 i 35167

Why BSD/OS is the best candidate for being the only tested legally open UNIX

Err codemadness.org 70 i 35168 Err codemadness.org 70 i 35169
    Err codemadness.org 70 i 35170
  • Introduction
  • Err codemadness.org 70 i 35171
Err codemadness.org 70 i 35172 Err codemadness.org 70 i 35173
The UNIX® system is an old operating system, possibly older than many of the readers of this post. However, despite its age, it still has not been open sourced completely. In this post, I will try to detail which parts of which UNIX systems have not yet been open sourced. I will focus on the legal situation in Germany in particular, taking it representative of European law in general – albeit that is a stretch, knowing the diversity of European jurisdictions. Please note that familiarity with basic terms of copyright law is assumed.
Err codemadness.org 70 i 35174 Err codemadness.org 70 i 35175
    Err codemadness.org 70 i 35176
  • Ancient UNIX
  • Err codemadness.org 70 i 35177
Err codemadness.org 70 i 35178 Err codemadness.org 70 i 35179
The term “Ancient UNIX” refers to the versions of UNIX up to and including Seventh Edition UNIX (1979) including the 32V port to the VAX. Ancient UNIX was created at Bell Laboratories, a subsidiary of AT&T at the time. It was later transferred of the AT&T UNIX Support Group, then AT&T Information Systems and finally the AT&T subsidiary UNIX System Laboratories, Inc. (USL). The legal situation differs between the United States of America and Germany. Err codemadness.org 70 i 35180 In a ruling as part of the UNIX System Laboratories, Inc. v. Berkeley Software Design, Inc. (USL v. BSDi) case, a U.S. court found that USL had no copyright to the Seventh Edition UNIX system and 32V – arguably, by extension, all earlier versions of Ancient UNIX as well – because USL/AT&T had failed to affix copyright notices and could not demonstrate a trade secret. Due to the obsessive tendency of U.S. courts to consider themselves bound to precedents (cf. the infamous Pierson v. Post case), it can be reasonably expected that this ruling would be honored and applied in subsequent cases. Thus under U.S. law, Ancient UNIX can be safely assumed to belong in the public domain. Err codemadness.org 70 i 35181 The situation differs in Germany. Unlike the U.S., copyright never needed registration in order to exist. Computer programs are works in the sense of the German 1965 Act on Copyright and Related Rights (Copyright Act, henceforth CopyA) as per CopyA § 2(1) no. 1. Even prior to the amendment of CopyA § 2(1) to include computer programs, computer programs have been recognized as copyrightable works by the German Supreme Court (BGHZ 112, 264 Betriebssystem, no. 19); CopyA § 137d(1) rightly clarifies that. The copyright holder at 1979 would still have been USL via Bell Labs and AT&T. Copyright of computer programs is transferred to the employer upon creation under CopyA § 69(1). Err codemadness.org 70 i 35182 Note that this does not affect expiry (Daniel Kaboth/Benjamin Spies, commentary on CopyA §§ 69a‒69g, in: Hartwig Ahlberg/Horst-Peter Götting (eds.), Urheberrecht: UrhG, KUG, VerlG, VGG, Kommentar, 4th ed., C. H. Beck, 2018, no. 16 ad CopyA § 69b; cf. Bundestag-Drucksache [BT-Drs.] 12/4022, p. 10). Expiry occurs 70 years after the death of the (co-)author that died most recently as per CopyA § 65(1) and 64; this has been the case since at least the 1960s, meaning there is no way for copyright to have expired already (old version, as per Bundesgesetzblatt Part I No. 51 of September 16, 1965, pp. 1273‒1294). Err codemadness.org 70 i 35183 In Germany, private international law applies the so-called “Territorialitätsprinzip” for intellectual property rights. This means that the effect of an intellectual property right is limited to the territory of a state (Anne Lauber-Rönsberg, KollisionsR, in: Hartwig Ahlberg/Horst-Peter Götting (eds.), ibid., pp. 2241 et seqq., no. 4). Additionally, the “Schutzlandprinzip” applies; this means that protection of intellectual property follows the lex loci protectionis, i.e. the law of the country for which protection is sought (BGH GRUR 2015, 264 HiHotel II, no. 25; BGH GRUR 2003, 328 Sender Felsberg, no. 24), albeit this is criticized in parts of doctrine (Lauber-Rönsberg, ibid., no. 10). The “Schutzlandprinzip” requires that the existence of an intellectual property right be verified as well (BGH ZUM 2016, 522 Wagenfeld-Leuchte II, no. 19). Err codemadness.org 70 i 35184 Thus, in Germany, copyright on Ancient UNIX is still alive and well. Who has it, though? A ruling by the U.S. Court of Appeals, Tenth Circuit, in the case of The SCO Group, Inc. v. Novell, Inc. (SCO v. Novell) in the U.S. made clear that Novell owns the rights to System V – thus presumably UNIX System III as well – and Ancient UNIX, though SCO acquired enough rights to develop UnixWare/OpenServer (Ruling 10-4122 [D.C. No. 2:04-CV-00139-TS], pp. 19 et seq.). Novell itself was purchased by the Attachmate Group, which was in turn acquired by the COBOL vendor Micro Focus. Therefore, the rights to SVRX and – outside the U.S. – are with Micro Focus right now. If all you care about is the U.S., you can stop reading about Ancient UNIX here. Err codemadness.org 70 i 35185 So how does the Caldera license factor into all of this? For some context, the license was issued January 23, 2002 and covers Ancient UNIX (V1 through V7 including 32V), specifically excluding System III and System V. Caldera, Inc. was founded in 1994. The Santa Cruz Operation, Inc. sold its rights to UNIX to Caldera in 2001, renamed itself to Tarantella Inc. and Caldera renamed itself The SCO Group. Nemo plus iuris ad alium transferre potest quam ipse habet; no one can transfer more rights than he has. The question now becomes whether Caldera had the rights to issue the Caldera license. Err codemadness.org 70 i 35186 I’ve noted it above but it needs restating: Foreign decisions are not necessarily accepted in Germany due to the “Territorialitätsprinzip” and “Schutzlandprinzip” – however, I will be citing a U.S. ruling for its assessment of the facts for the sake of simplicity. As per ruling 10-4122, “The district court found the parties intended for SCO to serve as Novell’s agent with respect to the old SVRX licenses and the only portion of the UNIX business transferred outright under the APA [asset purchase agreement] was the ability to exploit and further develop the newer UnixWare system. SCO was able to protect that business because it was able to copyright its own improvements to the system. The only reason to protect the earlier UNIX code would be to protect the existing SVRX licenses, and the court concluded Novell retained ultimate control over that portion of the business under the APA.” The relevant agreements consist of multiple pieces: Err codemadness.org 70 i 35187 the base Asset Purchase Agreement “APA” (Part I) Err codemadness.org 70 i 35188 the base Asset Purchase Agreement “APA” (Part II) Err codemadness.org 70 i 35189 the Operating Agremeent and Amendment 1 to the APA Err codemadness.org 70 i 35190 the Amendment 2 to the APA Err codemadness.org 70 i 35191 The APA dates September 19, 1995, from before the Caldera license. Caldera cannot possibly have acquired rights that The Santa Cruz Operation, Inc. itself never had. Furthermore, I’ve failed to find any mention of Ancient UNIX; all that is transferred is rights to SVRX. Overall, I believe that the U.S. courts’ assesment of the facts represents the situation accurately. Thus for all intents and purposes, UNIX up to and including System V remained with Novell/Attachmate/Micro Focus. Caldera therefore never had any rights to Ancient UNIX, which means it never had the rights to issue the Caldera license. The Caldera license is null and void – in the U.S. because the copyright has been lost due to formalities, everywhere else because Caldera never had the rights to issue it. Err codemadness.org 70 i 35192 The first step to truly freeing UNIX would this be to get Micro Focus to re-issue the Caldera license for Ancient UNIX, ideally it would now also include System III and System V.
Err codemadness.org 70 i 35193 Err codemadness.org 70 i 35194
    Err codemadness.org 70 i 35195
  • BSD/OS
  • Err codemadness.org 70 i 35196
Err codemadness.org 70 i 35197 Err codemadness.org 70 i 35198
Another operating system near UNIX is of interest. The USL v. BSDi lawsuit includes two parties: USL, which we have seen above, and Berkeley Software Design, Inc. BSDi sold BSD/386 (later BSD/OS), which was a derivative of 4.4BSD. The software parts of the BSDi company were acquired by Wind River Systems, whereas the hardware parts went to iXsystems. Copyright is not disputed there, though Wind River Systems ceased selling BSD/OS products 15 years ago, in 2003. In addition, Wind River System let their trademark on BSD expire, though this is without consequence for copyright. Err codemadness.org 70 i 35199 BSD/OS is notable in the sense that it powered much of early internet infrastructure. Traces of its legacy can still be found on Richard Stevens’ FAQ. Err codemadness.org 70 i 35200 To truly make UNIX history free, BSD/OS would arguably also need to see a source code release. BSD/OS at least in its earliest releases under BSDi would ship with source code, though under a non-free license, far from BSD or even GPL licensing.
Err codemadness.org 70 i 35201 Err codemadness.org 70 i 35202
    Err codemadness.org 70 i 35203
  • System V
  • Err codemadness.org 70 i 35204
Err codemadness.org 70 i 35205 Err codemadness.org 70 i 35206
The fate of System V as a whole is difficult to determine. Various licenses have been granted to a number of vendors (Dell UNIX comes to mind; HP for HP-UX, IBM for AIX, SGI UNIX, etc.). Sun released OpenSolaris – notoriously, Oracle closed the source to Solaris again after its release –, which is a System V Release 4 descendant. However, this means nothing for the copyright or licensing status of System V itself. Presumably, the rights with System V still remain with Novell (now Micro Focus): SCO managed to sublicense rights to develop and sell UnixWare/OpenServer, themselves System V/III descendants, to unXis, Inc. (now known as Xinuos, Inc.), which implies that Xinuos is not the copyright holder of System V. Err codemadness.org 70 i 35207 Obviously, to free UNIX, System V and its entire family of descendants would also need to be open sourced. However, I expect tremendous resistance on part of all the companies mentioned. As noted in the “Ancient UNIX” section, Micro Focus alone would probably be sufficient to release System V, though this would mean nothing for the other commercial System V derivatives.
Err codemadness.org 70 i 35208 Err codemadness.org 70 i 35209
    Err codemadness.org 70 i 35210
  • Newer Research UNIX
  • Err codemadness.org 70 i 35211
Err codemadness.org 70 i 35212 Err codemadness.org 70 i 35213
The fate of Bell Labs would be a different one; it would go on to be purchased by Lucent, now part of Nokia. After commercial UNIX got separated out to USL, Research UNIX would continue to exist inside of Bell Labs. Research UNIX V8, V9 and V10 were not quite released by Alcatel-Lucent USA Inc. and Nokia in 2017. Err codemadness.org 70 i 35214 However, this is merely a notice that the companies involved will not assert their copyrights only with respect to any non-commercial usage of the code. It is still not possible, over 30 years later, to freely use the V8 code.
Err codemadness.org 70 i 35215 Err codemadness.org 70 i 35216
    Err codemadness.org 70 i 35217
  • Conclusion Err codemadness.org 70 i 35218 In the U.S., Ancient UNIX is freely available. People located everywhere else, however, are unable to legally obtain UNIX code for any of the systems mentioned above. The exception being BSD/OS, assuming a purchase of a legitimate copy of the source code CD. This is deeply unsatisfying and I implore all involved companies to consider open sourcing (preferably under a BSD-style license) their code older than a decade, if nothing else, then at least for the sake of historical purposes. I would like to encourage everybody reading this to consider reaching out to Micro Focus and Wind River Systems about System V and BSD/OS, respectively. Perhaps the masses can change their minds.
  • Err codemadness.org 70 i 35219
Err codemadness.org 70 i 35220 Err codemadness.org 70 i 35221
A small note about patents: Some technologies used in newer iterations of the UNIX system (in particular the System V derivatives) may be encumbered with software patents. An open source license will not help against patent infringement claims. However, the patents on anything used in the historical operating systems will certainly have expired by now. In addition, European readers can ignore this entirely – software patents just aren’t a thing.
Err codemadness.org 70 i 35222 Err codemadness.org 70 i 35223


Err codemadness.org 70 i 35224 Err codemadness.org 70 i 35225

OpenBGPD - Adding Diversity to the Route Server Landscape

Err codemadness.org 70 i 35226 Err codemadness.org 70 i 35227
    Err codemadness.org 70 i 35228
  • Introduction
  • Err codemadness.org 70 i 35229
Err codemadness.org 70 i 35230 Err codemadness.org 70 i 35231
As of last year, there was effectively only a single solution in the Route Server vendor market: the BIRD Internet routing daemon. NIC.CZ (the organisation developing BIRD) has done fantastic work on maintaining their BGP-4 implementation, however, it’s not healthy to have virtually every Internet Exchange Point (IXP) in the RIPE NCC service region depend on a single open source project. The current situation can be compared to the state of the DNS root nameservers back in 2002 - their dependence on the BIND nameserver daemon and the resulting development of NSD as an alternative by NLnet, in cooperation with the RIPE NCC. Err codemadness.org 70 i 35232 OpenBGPD used to be one of the most popular Route Server implementations until the early 2010s. OpenBGPD’s main problem was that its performance couldn’t keep up with the Internet’s growth, so it lost market share. An analysis by Job Snijders suggested that a modernised OpenBGPD distribution would be a most viable option to regain diversity on the Route Server level.
Err codemadness.org 70 i 35233 Err codemadness.org 70 i 35234
    Err codemadness.org 70 i 35235
  • Missing features in OpenBGPD
  • Err codemadness.org 70 i 35236
Err codemadness.org 70 i 35237 Err codemadness.org 70 i 35238
The following main missing features were identified in OpenBGPD:
Err codemadness.org 70 i 35239 Err codemadness.org 70 i 35240
    Err codemadness.org 70 i 35241
  • Performance
  • Err codemadness.org 70 i 35242
Err codemadness.org 70 i 35243 Err codemadness.org 70 i 35244
In previous versions of OpenBGPD, the filtering performance didn’t allow proper filtering of all EBGP sessions. Current best practice at IXP Route Servers is to carefully evaluate and validate of all routes learned from EBGP peers. The OpenBGPD ruleset required to do correct filtering (in many deployment scenarios) was simply too lengthy - and negatively impacted service performance during configuration reloads. While filtering performance is the biggest bottleneck, general improvements to the Routing Information Base were also made to improve scalability. IXP Route Servers with a few hundred peering sessions are commonplace and adding new sessions shouldn’t impact the Route Servers’ service to other peers. We found that performance was the most pressing issue that needed to be tackled.
Err codemadness.org 70 i 35245 Err codemadness.org 70 i 35246
    Err codemadness.org 70 i 35247
  • Lack of RPKI Origin Validation
  • Err codemadness.org 70 i 35248
Err codemadness.org 70 i 35249 Err codemadness.org 70 i 35250
As we’ve seen, Internet operators are moving to adopt RPKI based BGP Origin Validation. While it was theoretically possible to emulate RFC 6811-style Origin Validation in previous versions of OpenBGPD, the required configuration wasn’t optimised for performance and wasn’t user friendly. We believe that BGP Origin Validation should be as easy as possible - this requires BGP-4 vendors to implement native, optimised routines for Origin Validation. Of course, enabling Origin Validation shouldn’t have an impact on performance either when processing BGP updates or when updating the Route Origin Authorisation (ROA) table itself.
Err codemadness.org 70 i 35251 Err codemadness.org 70 i 35252
    Err codemadness.org 70 i 35253
  • Portability
  • Err codemadness.org 70 i 35254
Err codemadness.org 70 i 35255 Err codemadness.org 70 i 35256
OpenBGPD is an integral part of OpenBSD, but IXPs may prefer to run their services infrastructure on an operating system of their choice. Making sure that there’s a portable OpenBGPD version which follows the OpenBSD project release cycle will give IXPs this option.
Err codemadness.org 70 i 35257 Err codemadness.org 70 i 35258
    Err codemadness.org 70 i 35259
  • Development steps
  • Err codemadness.org 70 i 35260
Err codemadness.org 70 i 35261 Err codemadness.org 70 i 35262
By addressing the issues mentioned above, we could bring back OpenBGPD as a viable Route Server implementation. Err codemadness.org 70 i 35263 Since I was one of the core OpenBGPD developers, I was asked if I wanted to pick up this project again. Thanks to the funding from the RIPE NCC Project Fund, this was possible. Starting in June 2018, I worked full time on this important community project. Over the last few months, many of the problems are already addressed and are now part of the OpenBSD 6.4 release. So far, 154 commits were made to OpenBGPD during the 6.4 development cycle - around 8% of all commits ever to OpenBGPD! This shows that due to funding and dedicated resources, a lot of work could be pushed into the latest release of OpenBGPD.
Err codemadness.org 70 i 35264 Err codemadness.org 70 i 35265
    Err codemadness.org 70 i 35266
  • OpenBGPD 6.4
  • Err codemadness.org 70 i 35267
Err codemadness.org 70 i 35268 Err codemadness.org 70 i 35269
The OpenBGPD version, as part of OpenBSD 6.4 release, demonstrates great progress. Even though there have been many changes to the core of OpenBGPD, the released version is as solid and reliable as previous releases and the many bug fixes and improvements make this the best OpenBGPD release so far. The changes in the filter language allow users to write more efficient rulesets while the introduction of RPKI origination validation fixes an important missing feature. For IXPs, OpenBGPD now is an alternative again. There are still open issues, but the gap is closing!
Err codemadness.org 70 i 35270 Err codemadness.org 70 i 35271
    Err codemadness.org 70 i 35272
  • Feature highlights
  • Err codemadness.org 70 i 35273
Err codemadness.org 70 i 35274 Err codemadness.org 70 i 35275
The following changes should be highlighted:
Err codemadness.org 70 i 35276 Err codemadness.org 70 i 35277
    Err codemadness.org 70 i 35278
  • Introduction of background soft-reconfiguration on config reload. Running the soft-reconfiguration task in the background allows for new updates and withdraws to be processed at the same time. This improves convergence time - one of the key metrics for Route Servers.
  • Err codemadness.org 70 i 35279
  • BGP Origin Validation when a roa-set is configured Every EBGP route announcement is validated against the locally configured VRP table entries. Depending on the validation process’s outcome, the validation state is set to valid, invalid or not found. The filter language has been extended to allow checking for the origin validation state, and thanks to this, it is possible to deny invalid prefixes or regard valid prefixes different to the ones that aren’t found. The roa-set table is read from the configuration file and updated during configuration reloads. On production systems reloading the roa-set and applying it to all prefixes is done in a couple of seconds.
  • Err codemadness.org 70 i 35280
  • Fast prefix-set lookups In OpenBSD 6.3 prefix-sets got introduced in OpenBGPD. A prefix-set combines many prefix lookups into a single filter rule. The original implementation wasn’t optimised but now a fast trie lookup is used. Thanks to this, large IRR DB prefix tables can now be implemented efficiently.
  • Err codemadness.org 70 i 35281
  • Introduction of as-sets Similar to prefix-sets, as-sets help group many AS numbers into a single lookup. Thanks to this, large IRR DB origin AS tables can be implemented efficiently. Err codemadness.org 70 i 35282 Introduction of origin-sets
  • Err codemadness.org 70 i 35283
  • Looking at the configurations of Route Servers doing full filtering, it was noticed that a common lookup was binding a prefix to an origin AS - similar to how a roa-set is used for RPKI. These origin-set tables are used to extend the IRR prefix lookup and generated from alternative sources.
  • Err codemadness.org 70 i 35284
  • Improving third party tools
  • Err codemadness.org 70 i 35285
Err codemadness.org 70 i 35286 Err codemadness.org 70 i 35287
Users can only benefit from the changes introduced in OpenBGPD 6.4 when the surrounding 3rd party tools are adjusted accordingly. Two opensource projects such as bgpq3 and arouteserver are frequently used by network operators and IXPs to generate BGP configurations. Thanks to our contributions to those projects, we were able to get them ready for all the new features in OpenBGPD.
Err codemadness.org 70 i 35288 Err codemadness.org 70 i 35289
    Err codemadness.org 70 i 35290
  • bgpq3 was extended to create as-set and prefix-set tables based on IRR DB entries. This is replacing the old way of doing the same with a large amount of filter rules. Thanks to the quick response from the bgpq3 maintainer, it was possible to ship OpenBSD 6.4 with a bgpq3 package that includes all the new features.
  • Err codemadness.org 70 i 35291
  • arouteserver was adjusted to implement RPKI roa-set, as-set, prefix-set, and origin-set to generate a much better-performing configurations for the 6.4 version. With the v0.20.0 release of arouteserver, IXPs are able to generate an OpenBGPD configuration which is a ton faster but also implements the new functionalities. Looking at YYCIX (the resident IXP in Calgary, Canada) the ruleset generated by arouteserver was reduced from 370,000 rules to well under 6,000 rules. This resulted in the initial convergence time dropping from over 1 hour to less than 2 minutes, and subsequent configuration reloads are hitless and no longer noticeable.
  • Err codemadness.org 70 i 35292
  • What still needs to be done
  • Err codemadness.org 70 i 35293
Err codemadness.org 70 i 35294 Err codemadness.org 70 i 35295
A sizeable chunk of work still left on the table is the rework of the RIB data structures in OpenBGPD - these haven’t been changed since the initial design of OpenBGPD in 2003. There’s currently ongoing work (in small steps, to avoid jeopardising the stability of OpenBGPD) to modernise these data-structures. The goal is to provide better decoupling of the filter step from storing RIB database changes, to pave the way to multi-threaded operations at a later point.
Err codemadness.org 70 i 35296 Err codemadness.org 70 i 35297
    Err codemadness.org 70 i 35298
  • Looking forward
  • Err codemadness.org 70 i 35299
  • Job Snijders oversaw this year’s fundraising and project management, he adds:
  • Err codemadness.org 70 i 35300
Err codemadness.org 70 i 35301 Err codemadness.org 70 i 35302
It’s been incredibly productive to create an environment where a core developer is allowed to work full time on the OpenBGPD code base. However, it’s important to note there still is room for a number of new features to help improve its operational capabilities (such as BMP, RFC 7313, ADD_PATH, etc). It’d be beneficial to the Internet community at large if we can extend Claudio Jeker’s involvement for another year. Open source software doesn’t grow on trees! Strategic investments are the only way to keep OpenBGPD’s roadmap aligned with Internet growth and operator requirements.
Err codemadness.org 70 i 35303 Err codemadness.org 70 i 35304


Err codemadness.org 70 i 35305 Err codemadness.org 70 i 35306

Beastie Bits

Err codemadness.org 70 i 35307 Err codemadness.org 70 i 35308 Err codemadness.org 70 i 35319 Err codemadness.org 70 i 35320


Err codemadness.org 70 i 35321 Err codemadness.org 70 i 35322

Feedback/Questions

Err codemadness.org 70 i 35323 Err codemadness.org 70 i 35324 Err codemadness.org 70 i 35329 Err codemadness.org 70 i 35330


Err codemadness.org 70 i 35331 Err codemadness.org 70 i 35332
    Err codemadness.org 70 i 35333
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 35334
Err codemadness.org 70 i 35335 Err codemadness.org 70 i 35336


]]> Err codemadness.org 70 i 35337
Err codemadness.org 70 i 35338 https://fireside.fm/player/v2/FYhhasNR+hdeyaiAl Err codemadness.org 70 i 35339 Err codemadness.org 70 i 35340 ]]> Err codemadness.org 70 i 35341 Err codemadness.org 70 i 35342
Err codemadness.org 70 i 35343 Err codemadness.org 70 i 35344 Episode 274: Language: Assembly | BSD Now 274 Err codemadness.org 70 i 35345 https://www.bsdnow.tv/274 Err codemadness.org 70 i 35346 http://feed.jupiter.zone/bsdnow#entry-2962 Err codemadness.org 70 i 35347 Wed, 28 Nov 2018 23:00:00 -0800 Err codemadness.org 70 i 35348 Allan Jude Err codemadness.org 70 i 35349 Err codemadness.org 70 i 35350 full Err codemadness.org 70 i 35351 Allan Jude Err codemadness.org 70 i 35352 Assembly language on OpenBSD, using bhyve for FreeBSD development, FreeBSD Gaming, FreeBSD for Thanksgiving, no space left on Dragonfly’s hammer2, and more. Err codemadness.org 70 i 35353 1:04:24 Err codemadness.org 70 i 35354 no Err codemadness.org 70 i 35355 Err codemadness.org 70 i 35356 Assembly language on OpenBSD, using bhyve for FreeBSD development, FreeBSD Gaming, FreeBSD for Thanksgiving, no space left on Dragonfly’s hammer2, and more. Err codemadness.org 70 i 35357 <p>##Headlines<br> Err codemadness.org 70 i 35358 <a href="https://cryogenix.net/OpenBSD_assembly.html">Assembly language on OpenBSD amd64+arm64</a></p> Err codemadness.org 70 i 35359 <blockquote> Err codemadness.org 70 i 35360 <p>This is a short introduction to assembly language programming on OpenBSD/amd64+arm64. Because of security features in the kernel, I have had to rethink a series of tutorials covering Aarch64 assembly language on OpenBSD, and therefore this will serve as a placeholder-cum-reminder.</p> Err codemadness.org 70 i 35361 </blockquote> Err codemadness.org 70 i 35362 <blockquote> Err codemadness.org 70 i 35363 <p>OpenBSD, like many UNIX and unix-like operating systems, now uses the Executable and Linkable Format (ELF) for its binary libraries and executables. Although the structure of this format is beyond the scope of this short introduction, it is necessary for me to explain part of one of the headers.</p> Err codemadness.org 70 i 35364 </blockquote> Err codemadness.org 70 i 35365 <blockquote> Err codemadness.org 70 i 35366 <p>Within the program header there are sections known as PT_NOTE that OpenBSD and other systems use to distinguish their ELF executables - OpenBSD looks for this section to check if it should attempt to execute the program or not.</p> Err codemadness.org 70 i 35367 </blockquote> Err codemadness.org 70 i 35368 <ul> Err codemadness.org 70 i 35369 <li>Our first program: in C!</li> Err codemadness.org 70 i 35370 </ul> Err codemadness.org 70 i 35371 <blockquote> Err codemadness.org 70 i 35372 <p>It’s often a good idea to prototype your assembly programs in a high level language such as C - it can then double up as both a set of notes and a working program that you can debug and compile into assembly language to compare with your own asm code.</p> Err codemadness.org 70 i 35373 </blockquote> Err codemadness.org 70 i 35374 <ul> Err codemadness.org 70 i 35375 <li>See the article for the rest on:</li> Err codemadness.org 70 i 35376 <li>Our first program: in x86-64 Asm (AT&amp;T/GAS syntax)</li> Err codemadness.org 70 i 35377 <li>Our first program: in inline x86-64 assembly</li> Err codemadness.org 70 i 35378 <li>Our first program: in x86-64 asm (NASM syntax)</li> Err codemadness.org 70 i 35379 <li>Our first program: in ARMv8 AArch64 assembly</li> Err codemadness.org 70 i 35380 </ul> Err codemadness.org 70 i 35381 <hr> Err codemadness.org 70 i 35382 <p>###<a href="https://bsdjhb.blogspot.com/2018/10/using-bhyve-for-freebsd-development.html">Using bhyve for FreeBSD Development</a></p> Err codemadness.org 70 i 35383 <ul> Err codemadness.org 70 i 35384 <li>The Hypervisor</li> Err codemadness.org 70 i 35385 </ul> Err codemadness.org 70 i 35386 <blockquote> Err codemadness.org 70 i 35387 <p>The bhyve hypervisor requires a 64-bit x86 processor with hardware support for virtualization. This requirement allows for a simple, clean hypervisor implementation, but it does require a fairly recent<br> Err codemadness.org 70 i 35388 processor. The current hypervisor requires an Intel processor, but there is an active development branch with support for AMD processors.<br> Err codemadness.org 70 i 35389 The hypervisor itself contains both user and kernel components. The kernel driver is contained in the vmm.ko module and can be loaded either at boot from the boot loader or at runtime. It must<br> Err codemadness.org 70 i 35390 be loaded before any guests can be created. When a guest is created, the kernel driver creates a device file in /dev/vmm which is used by the user programs to interact with the guest.<br> Err codemadness.org 70 i 35391 The primary user component is the bhyve(8) program. It constructs the emulated device tree in the guest and provides the implementation for most of the emulated devices. It also calls the kernel driver to execute the guest. Note that the guest always executes inside the driver itself, so guest execution time in the host is counted as system time in the bhyve process.<br> Err codemadness.org 70 i 35392 Currently, bhyve does not provide a system firmware interface to the guest (neither BIOS nor UEFI). Instead, a user program running on the host is used to perform boot time operations including loading the guest operating system kernel into the guest’s memory and setting the initial guest state so that the guest begins execution at the kernel’s entry point. For FreeBSD guests, the bhyveload(8) program can be used to load the kernel and prepare the guest for execution. Support for some other operating systems is available via the grub2-bhyve program which is available via the sysutils/grub2-bhyve port or as a prebuilt package.<br> Err codemadness.org 70 i 35393 The bhyveload(8) program in FreeBSD 10.0 only supports 64-bit guests. Support for 32-bit guests will be included in FreeBSD 10.1.</p> Err codemadness.org 70 i 35394 </blockquote> Err codemadness.org 70 i 35395 <ul> Err codemadness.org 70 i 35396 <li> Err codemadness.org 70 i 35397 <p>See the article for the very technical breakdown of the following:</p> Err codemadness.org 70 i 35398 </li> Err codemadness.org 70 i 35399 <li> Err codemadness.org 70 i 35400 <p>Network Setup</p> Err codemadness.org 70 i 35401 </li> Err codemadness.org 70 i 35402 <li> Err codemadness.org 70 i 35403 <p>Bridged Configuration</p> Err codemadness.org 70 i 35404 </li> Err codemadness.org 70 i 35405 <li> Err codemadness.org 70 i 35406 <p>Private Network with NAT</p> Err codemadness.org 70 i 35407 </li> Err codemadness.org 70 i 35408 <li> Err codemadness.org 70 i 35409 <p>Using dnsmasq with a Private Network</p> Err codemadness.org 70 i 35410 </li> Err codemadness.org 70 i 35411 <li> Err codemadness.org 70 i 35412 <p>Running Guests via <a href="http://vmrun.sh">vmrun.sh</a></p> Err codemadness.org 70 i 35413 </li> Err codemadness.org 70 i 35414 <li> Err codemadness.org 70 i 35415 <p>Configuring Guests</p> Err codemadness.org 70 i 35416 </li> Err codemadness.org 70 i 35417 <li> Err codemadness.org 70 i 35418 <p>Using a bhyve Guest as a Target</p> Err codemadness.org 70 i 35419 </li> Err codemadness.org 70 i 35420 <li> Err codemadness.org 70 i 35421 <p>Conclusion</p> Err codemadness.org 70 i 35422 </li> Err codemadness.org 70 i 35423 </ul> Err codemadness.org 70 i 35424 <blockquote> Err codemadness.org 70 i 35425 <p>The bhyve hypervisor is a nice addition to a FreeBSD developer’s toolbox. Guests can be used both to develop new features and to test merges to stable branches. The hypervisor has a wide variety of uses beyond developing FreeBSD as well.</p> Err codemadness.org 70 i 35426 </blockquote> Err codemadness.org 70 i 35427 <hr> Err codemadness.org 70 i 35428 <p>##News Roundup<br> Err codemadness.org 70 i 35429 <a href="https://oshogbo.vexillium.org/blog/58/">Games on FreeBSD</a></p> Err codemadness.org 70 i 35430 <blockquote> Err codemadness.org 70 i 35431 <p>What do all programmers like to do after work? Ok, what do most programers like to do after work? The answer is simple: play a good game! Recently at the Polish BSD User Group meetup mulander was telling us how you can play games on OpenBSD. Today let’s discuss how this looks in the FreeBSD world using the “server only” operating system.</p> Err codemadness.org 70 i 35432 </blockquote> Err codemadness.org 70 i 35433 <ul> Err codemadness.org 70 i 35434 <li>XNA based games</li> Err codemadness.org 70 i 35435 </ul> Err codemadness.org 70 i 35436 <blockquote> Err codemadness.org 70 i 35437 <p>One of the ways of playing natively is to play indie games which use XNA. XNA is a framework from Microsoft which uses .NET, for creating games. Fortunately, in the BSD world we have Mono, an open source implementation of Microsoft’s .NET Framework which you can use to run games. There is also FNA framework which is a reimplementation of XNA which allows you to run the games under Linux. Thomas Frohwein, from OpenBSD, prepared a script, fnaify. Fnaify translate all dependencies used by an FNA game to OpenBSD dependencies.<br> Err codemadness.org 70 i 35438 I decided to port the script to FreeBSD. The script is using /bin/sh which in the case of OpenBSD is a Korn Shell.</p> Err codemadness.org 70 i 35439 </blockquote> Err codemadness.org 70 i 35440 <blockquote> Err codemadness.org 70 i 35441 <p>I didn’t test it with many games, but I don’t see any reason why it shouldn’t work with all the games tested by the OpenBSD guys. For example, with:</p> Err codemadness.org 70 i 35442 </blockquote> Err codemadness.org 70 i 35443 <ul> Err codemadness.org 70 i 35444 <li> Err codemadness.org 70 i 35445 <p>Cryptark</p> Err codemadness.org 70 i 35446 </li> Err codemadness.org 70 i 35447 <li> Err codemadness.org 70 i 35448 <p>Rouge Legacy</p> Err codemadness.org 70 i 35449 </li> Err codemadness.org 70 i 35450 <li> Err codemadness.org 70 i 35451 <p>Apotheon</p> Err codemadness.org 70 i 35452 </li> Err codemadness.org 70 i 35453 <li> Err codemadness.org 70 i 35454 <p>Escape Goat</p> Err codemadness.org 70 i 35455 </li> Err codemadness.org 70 i 35456 <li> Err codemadness.org 70 i 35457 <p>Bastion</p> Err codemadness.org 70 i 35458 </li> Err codemadness.org 70 i 35459 <li> Err codemadness.org 70 i 35460 <p>CrossCode</p> Err codemadness.org 70 i 35461 </li> Err codemadness.org 70 i 35462 <li> Err codemadness.org 70 i 35463 <p>Atom Zombie Smasher</p> Err codemadness.org 70 i 35464 </li> Err codemadness.org 70 i 35465 <li> Err codemadness.org 70 i 35466 <p>Open-Source games</p> Err codemadness.org 70 i 35467 </li> Err codemadness.org 70 i 35468 </ul> Err codemadness.org 70 i 35469 <blockquote> Err codemadness.org 70 i 35470 <p>In FreeBSD and OpenBSD we also will find popular games which were open sourced. For example, I spend a lot of time playing in Quake 3 Arena on my FreeBSD machine. You can very simply install it using pkg: <code># pkg install ioquake3</code></p> Err codemadness.org 70 i 35471 </blockquote> Err codemadness.org 70 i 35472 <blockquote> Err codemadness.org 70 i 35473 <p>Then move the files for the skins and maps to the .ioquake3 directory from your copy of Quake. In the past I also played UrbanTerror which is a fully open source shooter based on the Quake 3 Arena engine. It’s is also very easy to install it from ports: <code># pkg install iourbanterror</code></p> Err codemadness.org 70 i 35474 </blockquote> Err codemadness.org 70 i 35475 <blockquote> Err codemadness.org 70 i 35476 <p>In the ports tree in the games directory you can find over 1000 directories, many of them with fully implemented games. I didn’t test many games in this category, but you can find some interesting titles like:</p> Err codemadness.org 70 i 35477 </blockquote> Err codemadness.org 70 i 35478 <ul> Err codemadness.org 70 i 35479 <li>openxcom (Open-source re-implementation of the original X-Com)</li> Err codemadness.org 70 i 35480 <li>openjazz (Free re-implementation of the Jazz Jackrabbit™ game engine)</li> Err codemadness.org 70 i 35481 <li>corsixth (Open source re-implementation of Theme Hospital)</li> Err codemadness.org 70 i 35482 <li>quake2</li> Err codemadness.org 70 i 35483 <li>openra (Red Alert)</li> Err codemadness.org 70 i 35484 <li>openrct2 (Open source re-implementation of RollerCoaster Tycoon 2)</li> Err codemadness.org 70 i 35485 <li>openmw (Open source engine reimplementation of the game Morrowind)</li> Err codemadness.org 70 i 35486 </ul> Err codemadness.org 70 i 35487 <blockquote> Err codemadness.org 70 i 35488 <p>All those titles are simply installed through the packages. In that case I don’t think FreeBSD has any difference from OpenBSD.</p> Err codemadness.org 70 i 35489 </blockquote> Err codemadness.org 70 i 35490 <ul> Err codemadness.org 70 i 35491 <li>Wine</li> Err codemadness.org 70 i 35492 </ul> Err codemadness.org 70 i 35493 <blockquote> Err codemadness.org 70 i 35494 <p>One of the big advantages of FreeBSD over OpenBSD is that FreeBSD supports wine. Wine allows you to run Windows applications under other operating systems (including mac). If you are a FreeBSD 11 user, you can simply fetch wine from packages: <code># pkg install i386-wine</code></p> Err codemadness.org 70 i 35495 </blockquote> Err codemadness.org 70 i 35496 <blockquote> Err codemadness.org 70 i 35497 <p>To run Windows games, you need to have a 32-bit wine because most of the games on Windows are built on 32-bits (maybe this has changed – I don’t play so much these days). In my case, because I run FreeBSD-CURRENT I needed to build wine from ports. It wasn’t nice, but it also wasn’t unpleasant. The whole step-by-step building process of a wine from ports can be found here.</p> Err codemadness.org 70 i 35498 </blockquote> Err codemadness.org 70 i 35499 <ul> Err codemadness.org 70 i 35500 <li>Summary</li> Err codemadness.org 70 i 35501 </ul> Err codemadness.org 70 i 35502 <blockquote> Err codemadness.org 70 i 35503 <p>As you can see there are many titles available for *BSDs. Thanks to the FNA and fnaify, OpenBSD and FreeBSD can work with indie games which use the XNA framework. There are many interesting games implemented using this framework. Open source is not only for big server machines, and there are many re-implementations of popular games like Theme Hospital or RollerCoaster Tycoon 2. The biggest market is still enabled through wine, although its creates a lot of problems to run the games. Also, if you are an OpenBSD user only this option is not available for you. Please also note that we didn’t discuss any other emulators besides wine. In OpenBSD and FreeBSD there are many of them for GameBoy, SNES, NeoGeo and other games consoles.</p> Err codemadness.org 70 i 35504 </blockquote> Err codemadness.org 70 i 35505 <hr> Err codemadness.org 70 i 35506 <p>###<a href="https://bwidawsk.net/blog/index.php/2018/11/freebsd-for-thanksgiving/">FreeBSD For Thanksgiving</a></p> Err codemadness.org 70 i 35507 <blockquote> Err codemadness.org 70 i 35508 <p>I’ve been working on FreeBSD for Intel for almost 6 months now. In the world of programmers, I am considered an old dog, and these 6 months have been all about learning new tricks. Luckily, I’ve found myself in a remarkably inclusive and receptive community whose patience seems plentiful. As I get ready to take some time off for the holidays, and move into that retrospective time of year, I thought I’d beat the rush a bit and update on the progress<br> Err codemadness.org 70 i 35509 Earlier this year, I decided to move from architect of the Linux graphics driver into a more nebulous role of FreeBSD enabling. I was excited, but also uncertain if I was making the right decision.<br> Err codemadness.org 70 i 35510 Earlier this half, I decided some general work in power management was highly important and began working there. I attended BSDCam (handsome guy on the right), and led a session on Power Management. I was honored to be able to lead this kind of effort.<br> Err codemadness.org 70 i 35511 Earlier this quarter, I put the first round of my patches up for review, implementing suspend-to-idle. I have some rougher patches to handle s0ix support when suspending-to-idle. I gave a talk MeetBSD about our team’s work.<br> Err codemadness.org 70 i 35512 Earlier this month, I noticed that FreeBSD doesn’t have an implementation for Intel Speed Shift (HWPstates), and I started working on that.<br> Err codemadness.org 70 i 35513 Earlier this week, I was promoted from a lowly mentee committer to a full src committer.<br> Err codemadness.org 70 i 35514 Earlier today, I decided to relegate my Linux laptop to the role of my backup machine, and I am writing this from my Dell XPS13 running FreeBSD</p> Err codemadness.org 70 i 35515 </blockquote> Err codemadness.org 70 i 35516 <p><code>vandamme 13.0-CURRENT FreeBSD 13.0-CURRENT #45 881fee072ff(hwp)-dirty: Mon Nov 19 16:19:32 PST 2018 bwidawsk@vandamme:/usr/home/bwidawsk/usr/obj/usr/home/bwidawsk/usr/src/amd64.amd64/sys/DEVMACHINE amd64</code></p> Err codemadness.org 70 i 35517 <blockquote> Err codemadness.org 70 i 35518 <p>6 months later, I feel a lot less uncertain about making the right decision. In fact, I think both opportunities would be great, and I’m thankful this Thanksgiving that this is my life and career. I have more plans and things I want to get done. I’m looking forward to being thankful again next year.</p> Err codemadness.org 70 i 35519 </blockquote> Err codemadness.org 70 i 35520 <hr> Err codemadness.org 70 i 35521 <p>###<a href="https://www.garyshood.com/hammer2-space/">hammer2: no space left on device on Dragonfly BSD</a></p> Err codemadness.org 70 i 35522 <ul> Err codemadness.org 70 i 35523 <li>The Issue</li> Err codemadness.org 70 i 35524 </ul> Err codemadness.org 70 i 35525 <blockquote> Err codemadness.org 70 i 35526 <p>hammer2 does not actually delete a file when you rm or unlink it. Since recovery of the file is possible (this is the design of hammer2), there will still be an entry taking up data. It’s similar to how git works.<br> Err codemadness.org 70 i 35527 Even with 75% usage listed here, the filesystem could still have filled up. If you are using it as your root filesystem, then attempts to clean up data may fail. If the kernel panics over this, you will see something like this.</p> Err codemadness.org 70 i 35528 </blockquote> Err codemadness.org 70 i 35529 <ul> Err codemadness.org 70 i 35530 <li>The Fix</li> Err codemadness.org 70 i 35531 </ul> Err codemadness.org 70 i 35532 <blockquote> Err codemadness.org 70 i 35533 <p>If you have a recent enough version of the rescue ramdisk installed, on bootup you can press ‘r’ and access the rescue ramdisk. Your provider will have to offer some sort of remote interface for interacting with the operating system before it boots, like VNC or IPMI. You can then mount your filesystem using:</p> Err codemadness.org 70 i 35534 </blockquote> Err codemadness.org 70 i 35535 <p><code>[root@ ~]# mkdir /tmp/fs</code><br> Err codemadness.org 70 i 35536 <code>[root@ ~]# mount_hammer2 -o local /dev/vbd0s1a /tmp/fs</code></p> Err codemadness.org 70 i 35537 <blockquote> Err codemadness.org 70 i 35538 <p>If you receive an error that /sbin/hammer2 is not found, then your rescue ramdisk is not up to date enough. In that scenario, download the latest 5.2 iso from <a href="http://dragonflybsd.org">dragonflybsd.org</a> and boot from the cd-rom on your virtual machine or physical device. Just login as root instead of installer.<br> Err codemadness.org 70 i 35539 If the mount does succeed, then all you have to do is run the following twice:</p> Err codemadness.org 70 i 35540 </blockquote> Err codemadness.org 70 i 35541 <p><code>[root@ ~]# /sbin/hammer2 bulkfree /tmp/fs</code></p> Err codemadness.org 70 i 35542 <blockquote> Err codemadness.org 70 i 35543 <p>If you do not have enough memory on your machine, you may need to mount swap. Add your swap partition to the /etc/fstab and then do:</p> Err codemadness.org 70 i 35544 </blockquote> Err codemadness.org 70 i 35545 <p><code>[root@ ~]# swapon -a</code></p> Err codemadness.org 70 i 35546 <blockquote> Err codemadness.org 70 i 35547 <p>Once you have ran the bulkfree command twice, the usage reported by df -h will be correct. However, there is a chance on reboot that a core dump will be placed in /var/crash/ so be prepared to have plenty of space free in case that happens. You should also delete any files you can and run the bulkfree operation twice afterwards to clear up additional space.</p> Err codemadness.org 70 i 35548 </blockquote> Err codemadness.org 70 i 35549 <hr> Err codemadness.org 70 i 35550 <p>##Beastie Bits</p> Err codemadness.org 70 i 35551 <ul> Err codemadness.org 70 i 35552 <li><a href="http://dpaste.com/1S9NMZA">BSD Pizza Night - Portland</a></li> Err codemadness.org 70 i 35553 <li><a href="http://dpaste.com/3T0AB7M">bsd@35c3: …the place for you…*NIX!</a></li> Err codemadness.org 70 i 35554 <li><a href="http://project-trident.org/download/">Project Trident PreRelease Image now available</a></li> Err codemadness.org 70 i 35555 <li><a href="https://dataswamp.org/~solene/2018-11-09-stardew-valley.html">Play Stardew Valley on OpenBSD</a></li> Err codemadness.org 70 i 35556 <li><a href="https://github.com/charlesdaniels/gmixerctl">GUI Wrapper for OpenBSD mixerctl</a></li> Err codemadness.org 70 i 35557 <li><a href="https://github.com/q5sys/qtv/">qtv - QuickTextViewer</a></li> Err codemadness.org 70 i 35558 </ul> Err codemadness.org 70 i 35559 <hr> Err codemadness.org 70 i 35560 <p>##Feedback/Questions</p> Err codemadness.org 70 i 35561 <ul> Err codemadness.org 70 i 35562 <li>Ron - <a href="http://dpaste.com/16XT6PQ#wrap">Ideas for feedback section</a></li> Err codemadness.org 70 i 35563 <li>Paulo - <a href="http://dpaste.com/0BEE730">SDIO Firmware</a></li> Err codemadness.org 70 i 35564 <li>Dan - <a href="http://dpaste.com/3Q7DERN#wrap">Some fun ZFS questions about labels</a></li> Err codemadness.org 70 i 35565 </ul> Err codemadness.org 70 i 35566 <hr> Err codemadness.org 70 i 35567 <ul> Err codemadness.org 70 i 35568 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 35569 </ul> Err codemadness.org 70 i 35570 <hr> Err codemadness.org 70 i 35571 Err codemadness.org 70 i 35572 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, gaming, assembly language, hammer2 Err codemadness.org 70 i 35573 Err codemadness.org 70 i 35574 Assembly language on OpenBSD, using bhyve for FreeBSD development, FreeBSD Gaming, FreeBSD for Thanksgiving, no space left on Dragonfly’s hammer2, and more.

Err codemadness.org 70 i 35575 Err codemadness.org 70 i 35576

##Headlines
Err codemadness.org 70 i 35577 ###Assembly language on OpenBSD amd64+arm64

Err codemadness.org 70 i 35578 Err codemadness.org 70 i 35579
Err codemadness.org 70 i 35580

This is a short introduction to assembly language programming on OpenBSD/amd64+arm64. Because of security features in the kernel, I have had to rethink a series of tutorials covering Aarch64 assembly language on OpenBSD, and therefore this will serve as a placeholder-cum-reminder.

Err codemadness.org 70 i 35581
Err codemadness.org 70 i 35582 Err codemadness.org 70 i 35583
Err codemadness.org 70 i 35584

OpenBSD, like many UNIX and unix-like operating systems, now uses the Executable and Linkable Format (ELF) for its binary libraries and executables. Although the structure of this format is beyond the scope of this short introduction, it is necessary for me to explain part of one of the headers.

Err codemadness.org 70 i 35585
Err codemadness.org 70 i 35586 Err codemadness.org 70 i 35587
Err codemadness.org 70 i 35588

Within the program header there are sections known as PT_NOTE that OpenBSD and other systems use to distinguish their ELF executables - OpenBSD looks for this section to check if it should attempt to execute the program or not.

Err codemadness.org 70 i 35589
Err codemadness.org 70 i 35590 Err codemadness.org 70 i 35591
    Err codemadness.org 70 i 35592
  • Our first program: in C!
  • Err codemadness.org 70 i 35593
Err codemadness.org 70 i 35594 Err codemadness.org 70 i 35595
Err codemadness.org 70 i 35596

It’s often a good idea to prototype your assembly programs in a high level language such as C - it can then double up as both a set of notes and a working program that you can debug and compile into assembly language to compare with your own asm code.

Err codemadness.org 70 i 35597
Err codemadness.org 70 i 35598 Err codemadness.org 70 i 35599
    Err codemadness.org 70 i 35600
  • See the article for the rest on:
  • Err codemadness.org 70 i 35601
  • Our first program: in x86-64 Asm (AT&T/GAS syntax)
  • Err codemadness.org 70 i 35602
  • Our first program: in inline x86-64 assembly
  • Err codemadness.org 70 i 35603
  • Our first program: in x86-64 asm (NASM syntax)
  • Err codemadness.org 70 i 35604
  • Our first program: in ARMv8 AArch64 assembly
  • Err codemadness.org 70 i 35605
Err codemadness.org 70 i 35606 Err codemadness.org 70 i 35607


Err codemadness.org 70 i 35608 Err codemadness.org 70 i 35609

###Using bhyve for FreeBSD Development

Err codemadness.org 70 i 35610 Err codemadness.org 70 i 35611
    Err codemadness.org 70 i 35612
  • The Hypervisor
  • Err codemadness.org 70 i 35613
Err codemadness.org 70 i 35614 Err codemadness.org 70 i 35615
Err codemadness.org 70 i 35616

The bhyve hypervisor requires a 64-bit x86 processor with hardware support for virtualization. This requirement allows for a simple, clean hypervisor implementation, but it does require a fairly recent
Err codemadness.org 70 i 35617 processor. The current hypervisor requires an Intel processor, but there is an active development branch with support for AMD processors.
Err codemadness.org 70 i 35618 The hypervisor itself contains both user and kernel components. The kernel driver is contained in the vmm.ko module and can be loaded either at boot from the boot loader or at runtime. It must
Err codemadness.org 70 i 35619 be loaded before any guests can be created. When a guest is created, the kernel driver creates a device file in /dev/vmm which is used by the user programs to interact with the guest.
Err codemadness.org 70 i 35620 The primary user component is the bhyve(8) program. It constructs the emulated device tree in the guest and provides the implementation for most of the emulated devices. It also calls the kernel driver to execute the guest. Note that the guest always executes inside the driver itself, so guest execution time in the host is counted as system time in the bhyve process.
Err codemadness.org 70 i 35621 Currently, bhyve does not provide a system firmware interface to the guest (neither BIOS nor UEFI). Instead, a user program running on the host is used to perform boot time operations including loading the guest operating system kernel into the guest’s memory and setting the initial guest state so that the guest begins execution at the kernel’s entry point. For FreeBSD guests, the bhyveload(8) program can be used to load the kernel and prepare the guest for execution. Support for some other operating systems is available via the grub2-bhyve program which is available via the sysutils/grub2-bhyve port or as a prebuilt package.
Err codemadness.org 70 i 35622 The bhyveload(8) program in FreeBSD 10.0 only supports 64-bit guests. Support for 32-bit guests will be included in FreeBSD 10.1.

Err codemadness.org 70 i 35623
Err codemadness.org 70 i 35624 Err codemadness.org 70 i 35625
    Err codemadness.org 70 i 35626
  • Err codemadness.org 70 i 35627

    See the article for the very technical breakdown of the following:

    Err codemadness.org 70 i 35628
  • Err codemadness.org 70 i 35629
  • Err codemadness.org 70 i 35630

    Network Setup

    Err codemadness.org 70 i 35631
  • Err codemadness.org 70 i 35632
  • Err codemadness.org 70 i 35633

    Bridged Configuration

    Err codemadness.org 70 i 35634
  • Err codemadness.org 70 i 35635
  • Err codemadness.org 70 i 35636

    Private Network with NAT

    Err codemadness.org 70 i 35637
  • Err codemadness.org 70 i 35638
  • Err codemadness.org 70 i 35639

    Using dnsmasq with a Private Network

    Err codemadness.org 70 i 35640
  • Err codemadness.org 70 i 35641
  • Err codemadness.org 70 i 35642

    Running Guests via vmrun.sh

    Err codemadness.org 70 i 35643
  • Err codemadness.org 70 i 35644
  • Err codemadness.org 70 i 35645

    Configuring Guests

    Err codemadness.org 70 i 35646
  • Err codemadness.org 70 i 35647
  • Err codemadness.org 70 i 35648

    Using a bhyve Guest as a Target

    Err codemadness.org 70 i 35649
  • Err codemadness.org 70 i 35650
  • Err codemadness.org 70 i 35651

    Conclusion

    Err codemadness.org 70 i 35652
  • Err codemadness.org 70 i 35653
Err codemadness.org 70 i 35654 Err codemadness.org 70 i 35655
Err codemadness.org 70 i 35656

The bhyve hypervisor is a nice addition to a FreeBSD developer’s toolbox. Guests can be used both to develop new features and to test merges to stable branches. The hypervisor has a wide variety of uses beyond developing FreeBSD as well.

Err codemadness.org 70 i 35657
Err codemadness.org 70 i 35658 Err codemadness.org 70 i 35659


Err codemadness.org 70 i 35660 Err codemadness.org 70 i 35661

##News Roundup
Err codemadness.org 70 i 35662 ###Games on FreeBSD

Err codemadness.org 70 i 35663 Err codemadness.org 70 i 35664
Err codemadness.org 70 i 35665

What do all programmers like to do after work? Ok, what do most programers like to do after work? The answer is simple: play a good game! Recently at the Polish BSD User Group meetup mulander was telling us how you can play games on OpenBSD. Today let’s discuss how this looks in the FreeBSD world using the “server only” operating system.

Err codemadness.org 70 i 35666
Err codemadness.org 70 i 35667 Err codemadness.org 70 i 35668
    Err codemadness.org 70 i 35669
  • XNA based games
  • Err codemadness.org 70 i 35670
Err codemadness.org 70 i 35671 Err codemadness.org 70 i 35672
Err codemadness.org 70 i 35673

One of the ways of playing natively is to play indie games which use XNA. XNA is a framework from Microsoft which uses .NET, for creating games. Fortunately, in the BSD world we have Mono, an open source implementation of Microsoft’s .NET Framework which you can use to run games. There is also FNA framework which is a reimplementation of XNA which allows you to run the games under Linux. Thomas Frohwein, from OpenBSD, prepared a script, fnaify. Fnaify translate all dependencies used by an FNA game to OpenBSD dependencies.
Err codemadness.org 70 i 35674 I decided to port the script to FreeBSD. The script is using /bin/sh which in the case of OpenBSD is a Korn Shell.

Err codemadness.org 70 i 35675
Err codemadness.org 70 i 35676 Err codemadness.org 70 i 35677
Err codemadness.org 70 i 35678

I didn’t test it with many games, but I don’t see any reason why it shouldn’t work with all the games tested by the OpenBSD guys. For example, with:

Err codemadness.org 70 i 35679
Err codemadness.org 70 i 35680 Err codemadness.org 70 i 35681
    Err codemadness.org 70 i 35682
  • Err codemadness.org 70 i 35683

    Cryptark

    Err codemadness.org 70 i 35684
  • Err codemadness.org 70 i 35685
  • Err codemadness.org 70 i 35686

    Rouge Legacy

    Err codemadness.org 70 i 35687
  • Err codemadness.org 70 i 35688
  • Err codemadness.org 70 i 35689

    Apotheon

    Err codemadness.org 70 i 35690
  • Err codemadness.org 70 i 35691
  • Err codemadness.org 70 i 35692

    Escape Goat

    Err codemadness.org 70 i 35693
  • Err codemadness.org 70 i 35694
  • Err codemadness.org 70 i 35695

    Bastion

    Err codemadness.org 70 i 35696
  • Err codemadness.org 70 i 35697
  • Err codemadness.org 70 i 35698

    CrossCode

    Err codemadness.org 70 i 35699
  • Err codemadness.org 70 i 35700
  • Err codemadness.org 70 i 35701

    Atom Zombie Smasher

    Err codemadness.org 70 i 35702
  • Err codemadness.org 70 i 35703
  • Err codemadness.org 70 i 35704

    Open-Source games

    Err codemadness.org 70 i 35705
  • Err codemadness.org 70 i 35706
Err codemadness.org 70 i 35707 Err codemadness.org 70 i 35708
Err codemadness.org 70 i 35709

In FreeBSD and OpenBSD we also will find popular games which were open sourced. For example, I spend a lot of time playing in Quake 3 Arena on my FreeBSD machine. You can very simply install it using pkg: # pkg install ioquake3

Err codemadness.org 70 i 35710
Err codemadness.org 70 i 35711 Err codemadness.org 70 i 35712
Err codemadness.org 70 i 35713

Then move the files for the skins and maps to the .ioquake3 directory from your copy of Quake. In the past I also played UrbanTerror which is a fully open source shooter based on the Quake 3 Arena engine. It’s is also very easy to install it from ports: # pkg install iourbanterror

Err codemadness.org 70 i 35714
Err codemadness.org 70 i 35715 Err codemadness.org 70 i 35716
Err codemadness.org 70 i 35717

In the ports tree in the games directory you can find over 1000 directories, many of them with fully implemented games. I didn’t test many games in this category, but you can find some interesting titles like:

Err codemadness.org 70 i 35718
Err codemadness.org 70 i 35719 Err codemadness.org 70 i 35720
    Err codemadness.org 70 i 35721
  • openxcom (Open-source re-implementation of the original X-Com)
  • Err codemadness.org 70 i 35722
  • openjazz (Free re-implementation of the Jazz Jackrabbit™ game engine)
  • Err codemadness.org 70 i 35723
  • corsixth (Open source re-implementation of Theme Hospital)
  • Err codemadness.org 70 i 35724
  • quake2
  • Err codemadness.org 70 i 35725
  • openra (Red Alert)
  • Err codemadness.org 70 i 35726
  • openrct2 (Open source re-implementation of RollerCoaster Tycoon 2)
  • Err codemadness.org 70 i 35727
  • openmw (Open source engine reimplementation of the game Morrowind)
  • Err codemadness.org 70 i 35728
Err codemadness.org 70 i 35729 Err codemadness.org 70 i 35730
Err codemadness.org 70 i 35731

All those titles are simply installed through the packages. In that case I don’t think FreeBSD has any difference from OpenBSD.

Err codemadness.org 70 i 35732
Err codemadness.org 70 i 35733 Err codemadness.org 70 i 35734
    Err codemadness.org 70 i 35735
  • Wine
  • Err codemadness.org 70 i 35736
Err codemadness.org 70 i 35737 Err codemadness.org 70 i 35738
Err codemadness.org 70 i 35739

One of the big advantages of FreeBSD over OpenBSD is that FreeBSD supports wine. Wine allows you to run Windows applications under other operating systems (including mac). If you are a FreeBSD 11 user, you can simply fetch wine from packages: # pkg install i386-wine

Err codemadness.org 70 i 35740
Err codemadness.org 70 i 35741 Err codemadness.org 70 i 35742
Err codemadness.org 70 i 35743

To run Windows games, you need to have a 32-bit wine because most of the games on Windows are built on 32-bits (maybe this has changed – I don’t play so much these days). In my case, because I run FreeBSD-CURRENT I needed to build wine from ports. It wasn’t nice, but it also wasn’t unpleasant. The whole step-by-step building process of a wine from ports can be found here.

Err codemadness.org 70 i 35744
Err codemadness.org 70 i 35745 Err codemadness.org 70 i 35746
    Err codemadness.org 70 i 35747
  • Summary
  • Err codemadness.org 70 i 35748
Err codemadness.org 70 i 35749 Err codemadness.org 70 i 35750
Err codemadness.org 70 i 35751

As you can see there are many titles available for *BSDs. Thanks to the FNA and fnaify, OpenBSD and FreeBSD can work with indie games which use the XNA framework. There are many interesting games implemented using this framework. Open source is not only for big server machines, and there are many re-implementations of popular games like Theme Hospital or RollerCoaster Tycoon 2. The biggest market is still enabled through wine, although its creates a lot of problems to run the games. Also, if you are an OpenBSD user only this option is not available for you. Please also note that we didn’t discuss any other emulators besides wine. In OpenBSD and FreeBSD there are many of them for GameBoy, SNES, NeoGeo and other games consoles.

Err codemadness.org 70 i 35752
Err codemadness.org 70 i 35753 Err codemadness.org 70 i 35754


Err codemadness.org 70 i 35755 Err codemadness.org 70 i 35756

###FreeBSD For Thanksgiving

Err codemadness.org 70 i 35757 Err codemadness.org 70 i 35758
Err codemadness.org 70 i 35759

I’ve been working on FreeBSD for Intel for almost 6 months now. In the world of programmers, I am considered an old dog, and these 6 months have been all about learning new tricks. Luckily, I’ve found myself in a remarkably inclusive and receptive community whose patience seems plentiful. As I get ready to take some time off for the holidays, and move into that retrospective time of year, I thought I’d beat the rush a bit and update on the progress
Err codemadness.org 70 i 35760 Earlier this year, I decided to move from architect of the Linux graphics driver into a more nebulous role of FreeBSD enabling. I was excited, but also uncertain if I was making the right decision.
Err codemadness.org 70 i 35761 Earlier this half, I decided some general work in power management was highly important and began working there. I attended BSDCam (handsome guy on the right), and led a session on Power Management. I was honored to be able to lead this kind of effort.
Err codemadness.org 70 i 35762 Earlier this quarter, I put the first round of my patches up for review, implementing suspend-to-idle. I have some rougher patches to handle s0ix support when suspending-to-idle. I gave a talk MeetBSD about our team’s work.
Err codemadness.org 70 i 35763 Earlier this month, I noticed that FreeBSD doesn’t have an implementation for Intel Speed Shift (HWPstates), and I started working on that.
Err codemadness.org 70 i 35764 Earlier this week, I was promoted from a lowly mentee committer to a full src committer.
Err codemadness.org 70 i 35765 Earlier today, I decided to relegate my Linux laptop to the role of my backup machine, and I am writing this from my Dell XPS13 running FreeBSD

Err codemadness.org 70 i 35766
Err codemadness.org 70 i 35767 Err codemadness.org 70 i 35768

vandamme 13.0-CURRENT FreeBSD 13.0-CURRENT #45 881fee072ff(hwp)-dirty: Mon Nov 19 16:19:32 PST 2018 bwidawsk@vandamme:/usr/home/bwidawsk/usr/obj/usr/home/bwidawsk/usr/src/amd64.amd64/sys/DEVMACHINE amd64

Err codemadness.org 70 i 35769 Err codemadness.org 70 i 35770
Err codemadness.org 70 i 35771

6 months later, I feel a lot less uncertain about making the right decision. In fact, I think both opportunities would be great, and I’m thankful this Thanksgiving that this is my life and career. I have more plans and things I want to get done. I’m looking forward to being thankful again next year.

Err codemadness.org 70 i 35772
Err codemadness.org 70 i 35773 Err codemadness.org 70 i 35774


Err codemadness.org 70 i 35775 Err codemadness.org 70 i 35776

###hammer2: no space left on device on Dragonfly BSD

Err codemadness.org 70 i 35777 Err codemadness.org 70 i 35778
    Err codemadness.org 70 i 35779
  • The Issue
  • Err codemadness.org 70 i 35780
Err codemadness.org 70 i 35781 Err codemadness.org 70 i 35782
Err codemadness.org 70 i 35783

hammer2 does not actually delete a file when you rm or unlink it. Since recovery of the file is possible (this is the design of hammer2), there will still be an entry taking up data. It’s similar to how git works.
Err codemadness.org 70 i 35784 Even with 75% usage listed here, the filesystem could still have filled up. If you are using it as your root filesystem, then attempts to clean up data may fail. If the kernel panics over this, you will see something like this.

Err codemadness.org 70 i 35785
Err codemadness.org 70 i 35786 Err codemadness.org 70 i 35787
    Err codemadness.org 70 i 35788
  • The Fix
  • Err codemadness.org 70 i 35789
Err codemadness.org 70 i 35790 Err codemadness.org 70 i 35791
Err codemadness.org 70 i 35792

If you have a recent enough version of the rescue ramdisk installed, on bootup you can press ‘r’ and access the rescue ramdisk. Your provider will have to offer some sort of remote interface for interacting with the operating system before it boots, like VNC or IPMI. You can then mount your filesystem using:

Err codemadness.org 70 i 35793
Err codemadness.org 70 i 35794 Err codemadness.org 70 i 35795

[root@ ~]# mkdir /tmp/fs
Err codemadness.org 70 i 35796 [root@ ~]# mount_hammer2 -o local /dev/vbd0s1a /tmp/fs

Err codemadness.org 70 i 35797 Err codemadness.org 70 i 35798
Err codemadness.org 70 i 35799

If you receive an error that /sbin/hammer2 is not found, then your rescue ramdisk is not up to date enough. In that scenario, download the latest 5.2 iso from dragonflybsd.org and boot from the cd-rom on your virtual machine or physical device. Just login as root instead of installer.
Err codemadness.org 70 i 35800 If the mount does succeed, then all you have to do is run the following twice:

Err codemadness.org 70 i 35801
Err codemadness.org 70 i 35802 Err codemadness.org 70 i 35803

[root@ ~]# /sbin/hammer2 bulkfree /tmp/fs

Err codemadness.org 70 i 35804 Err codemadness.org 70 i 35805
Err codemadness.org 70 i 35806

If you do not have enough memory on your machine, you may need to mount swap. Add your swap partition to the /etc/fstab and then do:

Err codemadness.org 70 i 35807
Err codemadness.org 70 i 35808 Err codemadness.org 70 i 35809

[root@ ~]# swapon -a

Err codemadness.org 70 i 35810 Err codemadness.org 70 i 35811
Err codemadness.org 70 i 35812

Once you have ran the bulkfree command twice, the usage reported by df -h will be correct. However, there is a chance on reboot that a core dump will be placed in /var/crash/ so be prepared to have plenty of space free in case that happens. You should also delete any files you can and run the bulkfree operation twice afterwards to clear up additional space.

Err codemadness.org 70 i 35813
Err codemadness.org 70 i 35814 Err codemadness.org 70 i 35815


Err codemadness.org 70 i 35816 Err codemadness.org 70 i 35817

##Beastie Bits

Err codemadness.org 70 i 35818 Err codemadness.org 70 i 35819 Err codemadness.org 70 i 35827 Err codemadness.org 70 i 35828


Err codemadness.org 70 i 35829 Err codemadness.org 70 i 35830

##Feedback/Questions

Err codemadness.org 70 i 35831 Err codemadness.org 70 i 35832 Err codemadness.org 70 i 35837 Err codemadness.org 70 i 35838


Err codemadness.org 70 i 35839 Err codemadness.org 70 i 35840
    Err codemadness.org 70 i 35841
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 35842
Err codemadness.org 70 i 35843 Err codemadness.org 70 i 35844


]]> Err codemadness.org 70 i 35845
Err codemadness.org 70 i 35846 Err codemadness.org 70 i 35847 Assembly language on OpenBSD, using bhyve for FreeBSD development, FreeBSD Gaming, FreeBSD for Thanksgiving, no space left on Dragonfly’s hammer2, and more.

Err codemadness.org 70 i 35848 Err codemadness.org 70 i 35849

##Headlines
Err codemadness.org 70 i 35850 ###Assembly language on OpenBSD amd64+arm64

Err codemadness.org 70 i 35851 Err codemadness.org 70 i 35852
Err codemadness.org 70 i 35853

This is a short introduction to assembly language programming on OpenBSD/amd64+arm64. Because of security features in the kernel, I have had to rethink a series of tutorials covering Aarch64 assembly language on OpenBSD, and therefore this will serve as a placeholder-cum-reminder.

Err codemadness.org 70 i 35854
Err codemadness.org 70 i 35855 Err codemadness.org 70 i 35856
Err codemadness.org 70 i 35857

OpenBSD, like many UNIX and unix-like operating systems, now uses the Executable and Linkable Format (ELF) for its binary libraries and executables. Although the structure of this format is beyond the scope of this short introduction, it is necessary for me to explain part of one of the headers.

Err codemadness.org 70 i 35858
Err codemadness.org 70 i 35859 Err codemadness.org 70 i 35860
Err codemadness.org 70 i 35861

Within the program header there are sections known as PT_NOTE that OpenBSD and other systems use to distinguish their ELF executables - OpenBSD looks for this section to check if it should attempt to execute the program or not.

Err codemadness.org 70 i 35862
Err codemadness.org 70 i 35863 Err codemadness.org 70 i 35864
    Err codemadness.org 70 i 35865
  • Our first program: in C!
  • Err codemadness.org 70 i 35866
Err codemadness.org 70 i 35867 Err codemadness.org 70 i 35868
Err codemadness.org 70 i 35869

It’s often a good idea to prototype your assembly programs in a high level language such as C - it can then double up as both a set of notes and a working program that you can debug and compile into assembly language to compare with your own asm code.

Err codemadness.org 70 i 35870
Err codemadness.org 70 i 35871 Err codemadness.org 70 i 35872
    Err codemadness.org 70 i 35873
  • See the article for the rest on:
  • Err codemadness.org 70 i 35874
  • Our first program: in x86-64 Asm (AT&T/GAS syntax)
  • Err codemadness.org 70 i 35875
  • Our first program: in inline x86-64 assembly
  • Err codemadness.org 70 i 35876
  • Our first program: in x86-64 asm (NASM syntax)
  • Err codemadness.org 70 i 35877
  • Our first program: in ARMv8 AArch64 assembly
  • Err codemadness.org 70 i 35878
Err codemadness.org 70 i 35879 Err codemadness.org 70 i 35880


Err codemadness.org 70 i 35881 Err codemadness.org 70 i 35882

###Using bhyve for FreeBSD Development

Err codemadness.org 70 i 35883 Err codemadness.org 70 i 35884
    Err codemadness.org 70 i 35885
  • The Hypervisor
  • Err codemadness.org 70 i 35886
Err codemadness.org 70 i 35887 Err codemadness.org 70 i 35888
Err codemadness.org 70 i 35889

The bhyve hypervisor requires a 64-bit x86 processor with hardware support for virtualization. This requirement allows for a simple, clean hypervisor implementation, but it does require a fairly recent
Err codemadness.org 70 i 35890 processor. The current hypervisor requires an Intel processor, but there is an active development branch with support for AMD processors.
Err codemadness.org 70 i 35891 The hypervisor itself contains both user and kernel components. The kernel driver is contained in the vmm.ko module and can be loaded either at boot from the boot loader or at runtime. It must
Err codemadness.org 70 i 35892 be loaded before any guests can be created. When a guest is created, the kernel driver creates a device file in /dev/vmm which is used by the user programs to interact with the guest.
Err codemadness.org 70 i 35893 The primary user component is the bhyve(8) program. It constructs the emulated device tree in the guest and provides the implementation for most of the emulated devices. It also calls the kernel driver to execute the guest. Note that the guest always executes inside the driver itself, so guest execution time in the host is counted as system time in the bhyve process.
Err codemadness.org 70 i 35894 Currently, bhyve does not provide a system firmware interface to the guest (neither BIOS nor UEFI). Instead, a user program running on the host is used to perform boot time operations including loading the guest operating system kernel into the guest’s memory and setting the initial guest state so that the guest begins execution at the kernel’s entry point. For FreeBSD guests, the bhyveload(8) program can be used to load the kernel and prepare the guest for execution. Support for some other operating systems is available via the grub2-bhyve program which is available via the sysutils/grub2-bhyve port or as a prebuilt package.
Err codemadness.org 70 i 35895 The bhyveload(8) program in FreeBSD 10.0 only supports 64-bit guests. Support for 32-bit guests will be included in FreeBSD 10.1.

Err codemadness.org 70 i 35896
Err codemadness.org 70 i 35897 Err codemadness.org 70 i 35898
    Err codemadness.org 70 i 35899
  • Err codemadness.org 70 i 35900

    See the article for the very technical breakdown of the following:

    Err codemadness.org 70 i 35901
  • Err codemadness.org 70 i 35902
  • Err codemadness.org 70 i 35903

    Network Setup

    Err codemadness.org 70 i 35904
  • Err codemadness.org 70 i 35905
  • Err codemadness.org 70 i 35906

    Bridged Configuration

    Err codemadness.org 70 i 35907
  • Err codemadness.org 70 i 35908
  • Err codemadness.org 70 i 35909

    Private Network with NAT

    Err codemadness.org 70 i 35910
  • Err codemadness.org 70 i 35911
  • Err codemadness.org 70 i 35912

    Using dnsmasq with a Private Network

    Err codemadness.org 70 i 35913
  • Err codemadness.org 70 i 35914
  • Err codemadness.org 70 i 35915

    Running Guests via vmrun.sh

    Err codemadness.org 70 i 35916
  • Err codemadness.org 70 i 35917
  • Err codemadness.org 70 i 35918

    Configuring Guests

    Err codemadness.org 70 i 35919
  • Err codemadness.org 70 i 35920
  • Err codemadness.org 70 i 35921

    Using a bhyve Guest as a Target

    Err codemadness.org 70 i 35922
  • Err codemadness.org 70 i 35923
  • Err codemadness.org 70 i 35924

    Conclusion

    Err codemadness.org 70 i 35925
  • Err codemadness.org 70 i 35926
Err codemadness.org 70 i 35927 Err codemadness.org 70 i 35928
Err codemadness.org 70 i 35929

The bhyve hypervisor is a nice addition to a FreeBSD developer’s toolbox. Guests can be used both to develop new features and to test merges to stable branches. The hypervisor has a wide variety of uses beyond developing FreeBSD as well.

Err codemadness.org 70 i 35930
Err codemadness.org 70 i 35931 Err codemadness.org 70 i 35932


Err codemadness.org 70 i 35933 Err codemadness.org 70 i 35934

##News Roundup
Err codemadness.org 70 i 35935 ###Games on FreeBSD

Err codemadness.org 70 i 35936 Err codemadness.org 70 i 35937
Err codemadness.org 70 i 35938

What do all programmers like to do after work? Ok, what do most programers like to do after work? The answer is simple: play a good game! Recently at the Polish BSD User Group meetup mulander was telling us how you can play games on OpenBSD. Today let’s discuss how this looks in the FreeBSD world using the “server only” operating system.

Err codemadness.org 70 i 35939
Err codemadness.org 70 i 35940 Err codemadness.org 70 i 35941
    Err codemadness.org 70 i 35942
  • XNA based games
  • Err codemadness.org 70 i 35943
Err codemadness.org 70 i 35944 Err codemadness.org 70 i 35945
Err codemadness.org 70 i 35946

One of the ways of playing natively is to play indie games which use XNA. XNA is a framework from Microsoft which uses .NET, for creating games. Fortunately, in the BSD world we have Mono, an open source implementation of Microsoft’s .NET Framework which you can use to run games. There is also FNA framework which is a reimplementation of XNA which allows you to run the games under Linux. Thomas Frohwein, from OpenBSD, prepared a script, fnaify. Fnaify translate all dependencies used by an FNA game to OpenBSD dependencies.
Err codemadness.org 70 i 35947 I decided to port the script to FreeBSD. The script is using /bin/sh which in the case of OpenBSD is a Korn Shell.

Err codemadness.org 70 i 35948
Err codemadness.org 70 i 35949 Err codemadness.org 70 i 35950
Err codemadness.org 70 i 35951

I didn’t test it with many games, but I don’t see any reason why it shouldn’t work with all the games tested by the OpenBSD guys. For example, with:

Err codemadness.org 70 i 35952
Err codemadness.org 70 i 35953 Err codemadness.org 70 i 35954
    Err codemadness.org 70 i 35955
  • Err codemadness.org 70 i 35956

    Cryptark

    Err codemadness.org 70 i 35957
  • Err codemadness.org 70 i 35958
  • Err codemadness.org 70 i 35959

    Rouge Legacy

    Err codemadness.org 70 i 35960
  • Err codemadness.org 70 i 35961
  • Err codemadness.org 70 i 35962

    Apotheon

    Err codemadness.org 70 i 35963
  • Err codemadness.org 70 i 35964
  • Err codemadness.org 70 i 35965

    Escape Goat

    Err codemadness.org 70 i 35966
  • Err codemadness.org 70 i 35967
  • Err codemadness.org 70 i 35968

    Bastion

    Err codemadness.org 70 i 35969
  • Err codemadness.org 70 i 35970
  • Err codemadness.org 70 i 35971

    CrossCode

    Err codemadness.org 70 i 35972
  • Err codemadness.org 70 i 35973
  • Err codemadness.org 70 i 35974

    Atom Zombie Smasher

    Err codemadness.org 70 i 35975
  • Err codemadness.org 70 i 35976
  • Err codemadness.org 70 i 35977

    Open-Source games

    Err codemadness.org 70 i 35978
  • Err codemadness.org 70 i 35979
Err codemadness.org 70 i 35980 Err codemadness.org 70 i 35981
Err codemadness.org 70 i 35982

In FreeBSD and OpenBSD we also will find popular games which were open sourced. For example, I spend a lot of time playing in Quake 3 Arena on my FreeBSD machine. You can very simply install it using pkg: # pkg install ioquake3

Err codemadness.org 70 i 35983
Err codemadness.org 70 i 35984 Err codemadness.org 70 i 35985
Err codemadness.org 70 i 35986

Then move the files for the skins and maps to the .ioquake3 directory from your copy of Quake. In the past I also played UrbanTerror which is a fully open source shooter based on the Quake 3 Arena engine. It’s is also very easy to install it from ports: # pkg install iourbanterror

Err codemadness.org 70 i 35987
Err codemadness.org 70 i 35988 Err codemadness.org 70 i 35989
Err codemadness.org 70 i 35990

In the ports tree in the games directory you can find over 1000 directories, many of them with fully implemented games. I didn’t test many games in this category, but you can find some interesting titles like:

Err codemadness.org 70 i 35991
Err codemadness.org 70 i 35992 Err codemadness.org 70 i 35993
    Err codemadness.org 70 i 35994
  • openxcom (Open-source re-implementation of the original X-Com)
  • Err codemadness.org 70 i 35995
  • openjazz (Free re-implementation of the Jazz Jackrabbit™ game engine)
  • Err codemadness.org 70 i 35996
  • corsixth (Open source re-implementation of Theme Hospital)
  • Err codemadness.org 70 i 35997
  • quake2
  • Err codemadness.org 70 i 35998
  • openra (Red Alert)
  • Err codemadness.org 70 i 35999
  • openrct2 (Open source re-implementation of RollerCoaster Tycoon 2)
  • Err codemadness.org 70 i 36000
  • openmw (Open source engine reimplementation of the game Morrowind)
  • Err codemadness.org 70 i 36001
Err codemadness.org 70 i 36002 Err codemadness.org 70 i 36003
Err codemadness.org 70 i 36004

All those titles are simply installed through the packages. In that case I don’t think FreeBSD has any difference from OpenBSD.

Err codemadness.org 70 i 36005
Err codemadness.org 70 i 36006 Err codemadness.org 70 i 36007
    Err codemadness.org 70 i 36008
  • Wine
  • Err codemadness.org 70 i 36009
Err codemadness.org 70 i 36010 Err codemadness.org 70 i 36011
Err codemadness.org 70 i 36012

One of the big advantages of FreeBSD over OpenBSD is that FreeBSD supports wine. Wine allows you to run Windows applications under other operating systems (including mac). If you are a FreeBSD 11 user, you can simply fetch wine from packages: # pkg install i386-wine

Err codemadness.org 70 i 36013
Err codemadness.org 70 i 36014 Err codemadness.org 70 i 36015
Err codemadness.org 70 i 36016

To run Windows games, you need to have a 32-bit wine because most of the games on Windows are built on 32-bits (maybe this has changed – I don’t play so much these days). In my case, because I run FreeBSD-CURRENT I needed to build wine from ports. It wasn’t nice, but it also wasn’t unpleasant. The whole step-by-step building process of a wine from ports can be found here.

Err codemadness.org 70 i 36017
Err codemadness.org 70 i 36018 Err codemadness.org 70 i 36019
    Err codemadness.org 70 i 36020
  • Summary
  • Err codemadness.org 70 i 36021
Err codemadness.org 70 i 36022 Err codemadness.org 70 i 36023
Err codemadness.org 70 i 36024

As you can see there are many titles available for *BSDs. Thanks to the FNA and fnaify, OpenBSD and FreeBSD can work with indie games which use the XNA framework. There are many interesting games implemented using this framework. Open source is not only for big server machines, and there are many re-implementations of popular games like Theme Hospital or RollerCoaster Tycoon 2. The biggest market is still enabled through wine, although its creates a lot of problems to run the games. Also, if you are an OpenBSD user only this option is not available for you. Please also note that we didn’t discuss any other emulators besides wine. In OpenBSD and FreeBSD there are many of them for GameBoy, SNES, NeoGeo and other games consoles.

Err codemadness.org 70 i 36025
Err codemadness.org 70 i 36026 Err codemadness.org 70 i 36027


Err codemadness.org 70 i 36028 Err codemadness.org 70 i 36029

###FreeBSD For Thanksgiving

Err codemadness.org 70 i 36030 Err codemadness.org 70 i 36031
Err codemadness.org 70 i 36032

I’ve been working on FreeBSD for Intel for almost 6 months now. In the world of programmers, I am considered an old dog, and these 6 months have been all about learning new tricks. Luckily, I’ve found myself in a remarkably inclusive and receptive community whose patience seems plentiful. As I get ready to take some time off for the holidays, and move into that retrospective time of year, I thought I’d beat the rush a bit and update on the progress
Err codemadness.org 70 i 36033 Earlier this year, I decided to move from architect of the Linux graphics driver into a more nebulous role of FreeBSD enabling. I was excited, but also uncertain if I was making the right decision.
Err codemadness.org 70 i 36034 Earlier this half, I decided some general work in power management was highly important and began working there. I attended BSDCam (handsome guy on the right), and led a session on Power Management. I was honored to be able to lead this kind of effort.
Err codemadness.org 70 i 36035 Earlier this quarter, I put the first round of my patches up for review, implementing suspend-to-idle. I have some rougher patches to handle s0ix support when suspending-to-idle. I gave a talk MeetBSD about our team’s work.
Err codemadness.org 70 i 36036 Earlier this month, I noticed that FreeBSD doesn’t have an implementation for Intel Speed Shift (HWPstates), and I started working on that.
Err codemadness.org 70 i 36037 Earlier this week, I was promoted from a lowly mentee committer to a full src committer.
Err codemadness.org 70 i 36038 Earlier today, I decided to relegate my Linux laptop to the role of my backup machine, and I am writing this from my Dell XPS13 running FreeBSD

Err codemadness.org 70 i 36039
Err codemadness.org 70 i 36040 Err codemadness.org 70 i 36041

vandamme 13.0-CURRENT FreeBSD 13.0-CURRENT #45 881fee072ff(hwp)-dirty: Mon Nov 19 16:19:32 PST 2018 bwidawsk@vandamme:/usr/home/bwidawsk/usr/obj/usr/home/bwidawsk/usr/src/amd64.amd64/sys/DEVMACHINE amd64

Err codemadness.org 70 i 36042 Err codemadness.org 70 i 36043
Err codemadness.org 70 i 36044

6 months later, I feel a lot less uncertain about making the right decision. In fact, I think both opportunities would be great, and I’m thankful this Thanksgiving that this is my life and career. I have more plans and things I want to get done. I’m looking forward to being thankful again next year.

Err codemadness.org 70 i 36045
Err codemadness.org 70 i 36046 Err codemadness.org 70 i 36047


Err codemadness.org 70 i 36048 Err codemadness.org 70 i 36049

###hammer2: no space left on device on Dragonfly BSD

Err codemadness.org 70 i 36050 Err codemadness.org 70 i 36051
    Err codemadness.org 70 i 36052
  • The Issue
  • Err codemadness.org 70 i 36053
Err codemadness.org 70 i 36054 Err codemadness.org 70 i 36055
Err codemadness.org 70 i 36056

hammer2 does not actually delete a file when you rm or unlink it. Since recovery of the file is possible (this is the design of hammer2), there will still be an entry taking up data. It’s similar to how git works.
Err codemadness.org 70 i 36057 Even with 75% usage listed here, the filesystem could still have filled up. If you are using it as your root filesystem, then attempts to clean up data may fail. If the kernel panics over this, you will see something like this.

Err codemadness.org 70 i 36058
Err codemadness.org 70 i 36059 Err codemadness.org 70 i 36060
    Err codemadness.org 70 i 36061
  • The Fix
  • Err codemadness.org 70 i 36062
Err codemadness.org 70 i 36063 Err codemadness.org 70 i 36064
Err codemadness.org 70 i 36065

If you have a recent enough version of the rescue ramdisk installed, on bootup you can press ‘r’ and access the rescue ramdisk. Your provider will have to offer some sort of remote interface for interacting with the operating system before it boots, like VNC or IPMI. You can then mount your filesystem using:

Err codemadness.org 70 i 36066
Err codemadness.org 70 i 36067 Err codemadness.org 70 i 36068

[root@ ~]# mkdir /tmp/fs
Err codemadness.org 70 i 36069 [root@ ~]# mount_hammer2 -o local /dev/vbd0s1a /tmp/fs

Err codemadness.org 70 i 36070 Err codemadness.org 70 i 36071
Err codemadness.org 70 i 36072

If you receive an error that /sbin/hammer2 is not found, then your rescue ramdisk is not up to date enough. In that scenario, download the latest 5.2 iso from dragonflybsd.org and boot from the cd-rom on your virtual machine or physical device. Just login as root instead of installer.
Err codemadness.org 70 i 36073 If the mount does succeed, then all you have to do is run the following twice:

Err codemadness.org 70 i 36074
Err codemadness.org 70 i 36075 Err codemadness.org 70 i 36076

[root@ ~]# /sbin/hammer2 bulkfree /tmp/fs

Err codemadness.org 70 i 36077 Err codemadness.org 70 i 36078
Err codemadness.org 70 i 36079

If you do not have enough memory on your machine, you may need to mount swap. Add your swap partition to the /etc/fstab and then do:

Err codemadness.org 70 i 36080
Err codemadness.org 70 i 36081 Err codemadness.org 70 i 36082

[root@ ~]# swapon -a

Err codemadness.org 70 i 36083 Err codemadness.org 70 i 36084
Err codemadness.org 70 i 36085

Once you have ran the bulkfree command twice, the usage reported by df -h will be correct. However, there is a chance on reboot that a core dump will be placed in /var/crash/ so be prepared to have plenty of space free in case that happens. You should also delete any files you can and run the bulkfree operation twice afterwards to clear up additional space.

Err codemadness.org 70 i 36086
Err codemadness.org 70 i 36087 Err codemadness.org 70 i 36088


Err codemadness.org 70 i 36089 Err codemadness.org 70 i 36090

##Beastie Bits

Err codemadness.org 70 i 36091 Err codemadness.org 70 i 36092 Err codemadness.org 70 i 36100 Err codemadness.org 70 i 36101


Err codemadness.org 70 i 36102 Err codemadness.org 70 i 36103

##Feedback/Questions

Err codemadness.org 70 i 36104 Err codemadness.org 70 i 36105 Err codemadness.org 70 i 36110 Err codemadness.org 70 i 36111


Err codemadness.org 70 i 36112 Err codemadness.org 70 i 36113
    Err codemadness.org 70 i 36114
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 36115
Err codemadness.org 70 i 36116 Err codemadness.org 70 i 36117


]]> Err codemadness.org 70 i 36118
Err codemadness.org 70 i 36119 https://fireside.fm/player/v2/FYhhasNR+Xw6R0hoW Err codemadness.org 70 i 36120 Err codemadness.org 70 i 36121 ]]> Err codemadness.org 70 i 36122 Err codemadness.org 70 i 36123
Err codemadness.org 70 i 36124 Err codemadness.org 70 i 36125 Episode 273: A Thoughtful Episode | BSD Now 273 Err codemadness.org 70 i 36126 https://www.bsdnow.tv/273 Err codemadness.org 70 i 36127 http://feed.jupiter.zone/bsdnow#entry-2927 Err codemadness.org 70 i 36128 Thu, 22 Nov 2018 23:00:00 -0800 Err codemadness.org 70 i 36129 Allan Jude Err codemadness.org 70 i 36130 Err codemadness.org 70 i 36131 full Err codemadness.org 70 i 36132 Allan Jude Err codemadness.org 70 i 36133 Thoughts on NetBSD 8.0, Monitoring love for a GigaBit OpenBSD firewall, cat’s source history, X.org root permission bug, thoughts on OpenBSD as a desktop, and NomadBSD review. Err codemadness.org 70 i 36134 1:14:32 Err codemadness.org 70 i 36135 no Err codemadness.org 70 i 36136 Err codemadness.org 70 i 36137 Thoughts on NetBSD 8.0, Monitoring love for a GigaBit OpenBSD firewall, cat’s source history, X.org root permission bug, thoughts on OpenBSD as a desktop, and NomadBSD review. Err codemadness.org 70 i 36138 <p>##Headlines<br> Err codemadness.org 70 i 36139 <a href="https://distrowatch.com/weekly.php?issue=20181119#netbsd">Some thoughts on NetBSD 8.0</a></p> Err codemadness.org 70 i 36140 <blockquote> Err codemadness.org 70 i 36141 <p>NetBSD is a highly portable operating system which can be run on dozens of different hardware architectures. The operating system’s clean and minimal design allow it to be run in all sorts of environments, ranging from embedded devices, to servers, to workstations. While the base operating system is minimal, NetBSD users have access to a large repository of binary packages and a ports tree which I will touch upon later.<br> Err codemadness.org 70 i 36142 I last tried NetBSD 7.0 about three years ago and decided it was time to test drive the operating system again. In the past three years NetBSD has introduced a few new features, many of them security enhancements. For example, NetBSD now supports write exclusive-or execute (W^X) protection and address space layout randomization (ASLR) to protect programs against common attacks. NetBSD 8.0 also includes USB3 support and the ability to work with ZFS storage volumes.</p> Err codemadness.org 70 i 36143 </blockquote> Err codemadness.org 70 i 36144 <ul> Err codemadness.org 70 i 36145 <li>Early impressions</li> Err codemadness.org 70 i 36146 </ul> Err codemadness.org 70 i 36147 <blockquote> Err codemadness.org 70 i 36148 <p>Since I had set up NetBSD with a Full install and enabled xdm during the setup process, the operating system booted to a graphical login screen. From here we can sign into our account. The login screen does not provide options to shut down or restart the computer. Logging into our account brings up the twm window manager and provides a virtual terminal, courtesy of xterm. There is a panel that provides a method for logging out of the window manager. The twm environment is sparse, fast and devoid of distractions.</p> Err codemadness.org 70 i 36149 </blockquote> Err codemadness.org 70 i 36150 <ul> Err codemadness.org 70 i 36151 <li>Software management</li> Err codemadness.org 70 i 36152 </ul> Err codemadness.org 70 i 36153 <blockquote> Err codemadness.org 70 i 36154 <p>NetBSD ships with a fairly standard collection of command line tools and manual pages, but otherwise it is a fairly minimal platform. If we want to run network services, have access to a web browser, or use a word processor we are going to need to install more software. There are two main approaches to installing new packages. The first, and easier approach, is to use the pkgin package manager. The pkgin utility works much the same way APT or DNF work in the Linux world, or as pkg works on FreeBSD. We can search for software by name, install or remove items. I found pkgin worked well, though its output can be terse. My only complaint with pkgin is that it does not handle “close enough” package names. For example, if I tried to run “pkgin install vlc” or “pkgin install firefox” I would quickly be told these items did not exist. But a more forgiving package manager will realize items like vlc2 or firefox45 are available and offer to install those.<br> Err codemadness.org 70 i 36155 The pkgin tool installs new programs in the /usr/pkg/bin directory. Depending on your configuration and shell, this location may not be in your user’s path, and it will be helpful to adjust your PATH variable accordingly.<br> Err codemadness.org 70 i 36156 The other common approach to acquiring new software is to use the pkgsrc framework. I have talked about using pkgsrc before and I will skip the details. Basically, we can download a collection of recipes for building popular open source software and run a command to download and install these items from their source code. Using pkgsrc basically gives us the same software as using pkgin would, but with some added flexibility on the options we use.<br> Err codemadness.org 70 i 36157 Once new software has been installed, it may need to be enabled and activated, particularly if it uses (or is) a background service. New items can be enabled in the /etc/rc.conf file and started or stopped using the service command. This works about the same as the service command on FreeBSD and most non-systemd Linux distributions.</p> Err codemadness.org 70 i 36158 </blockquote> Err codemadness.org 70 i 36159 <ul> Err codemadness.org 70 i 36160 <li>Hardware</li> Err codemadness.org 70 i 36161 </ul> Err codemadness.org 70 i 36162 <blockquote> Err codemadness.org 70 i 36163 <p>I found that, when logged into the twm environment, NetBSD used about 130MB of RAM. This included kernel memory and all active memory. A fresh, Full install used up 1.5GB of disk space. I generally found NetBSD ran well in both VirtualBox and on my desktop computer. The system was quick and stable. I did have trouble getting a higher screen resolution in both environments. NetBSD does not offer VirtualBox add-on modules. There are NetBSD patches for VirtualBox out there, but there is some manual work involved in getting them working. When running on my desktop computer I think the resolution issue was one of finding and dealing with the correct video driver. Screen resolution aside, NetBSD performed well and detected all my hardware.</p> Err codemadness.org 70 i 36164 </blockquote> Err codemadness.org 70 i 36165 <ul> Err codemadness.org 70 i 36166 <li>Personal projects</li> Err codemadness.org 70 i 36167 </ul> Err codemadness.org 70 i 36168 <blockquote> Err codemadness.org 70 i 36169 <p>Since NetBSD provides users with a small, core operating system without many utilities if we want to use NetBSD for something we need to have a project in mind. I had four mini projects in mind I wanted to try this week: install a desktop environment, enable file sharing for computers on the local network, test multimedia (video, audio and YouTube capabilities), and set up a ZFS volume for storage.<br> Err codemadness.org 70 i 36170 I began with the desktop. Specifically, I followed the same tutorial I used three years ago to try to set up the Xfce desktop. While Xfce and its supporting services installed, I was unable to get a working desktop out of the experience. I could get the Xfce window manager working, but not the entire session. This tutorial worked beautifully with NetBSD 7.0, but not with version 8.0. Undeterred, I switched gears and installed Fluxbox instead. This gave me a slightly more powerful graphical environment than what I had before with twm while maintaining performance. Fluxbox ran without any problems, though its application menu was automatically populated with many programs which were not actually installed.<br> Err codemadness.org 70 i 36171 Next, I tried installing a few multimedia applications to play audio and video files. Here I ran into a couple of interesting problems. I found the music players I installed would play audio files, but the audio was quite slow. It always sounded like a cassette tape dragging. When I tried to play a video, the entire graphical session would crash, taking me back to the login screen. When I installed Firefox, I found I could play YouTube videos, and the video played smoothly, but again the audio was unusually slow.<br> Err codemadness.org 70 i 36172 I set up two methods of sharing files on the local network: OpenSSH and FTP. NetBSD basically gives us OpenSSH for free at install time and I added an FTP server through the pkgin package manager which worked beautifully with its default configuration.<br> Err codemadness.org 70 i 36173 I experimented with ZFS support a little, just enough to confirm I could create and access ZFS volumes. ZFS seems to work on NetBSD just as well, and with the same basic features, as it does on FreeBSD and mainstream Linux distributions. I think this is a good feature for the portable operating system to have since it means we can stick NetBSD on nearly any networked computer and use it as a NAS.</p> Err codemadness.org 70 i 36174 </blockquote> Err codemadness.org 70 i 36175 <ul> Err codemadness.org 70 i 36176 <li>Conclusions</li> Err codemadness.org 70 i 36177 </ul> Err codemadness.org 70 i 36178 <blockquote> Err codemadness.org 70 i 36179 <p>NetBSD, like its close cousins (FreeBSD and OpenBSD) does not do a lot of hand holding or automation. It offers a foundation that will run on most CPUs and we can choose to build on that foundation. I mention this because, on its own, NetBSD does not do much. If we want to get something out of it, we need to be willing to build on its foundation - we need a project. This is important to keep in mind as I think going into NetBSD and thinking, “Oh I’ll just explore around and expand on this as I go,” will likely lead to disappointment. I recommend figuring out what you want to do before installing NetBSD and making sure the required tools are available in the operating system’s repositories.<br> Err codemadness.org 70 i 36180 Some of the projects I embarked on this week (using ZFS and setting up file sharing) worked well. Others, like getting multimedia support and a full-featured desktop, did not. Given more time, I’m sure I could find a suitable desktop to install (along with the required documentation to get it and its services running), or customize one based on one of the available window managers. However, any full featured desktop is going to require some manual work. Media support was not great. The right players and codecs were there, but I was not able to get audio to play smoothly.<br> Err codemadness.org 70 i 36181 My main complaint with NetBSD relates to my struggle to get some features working to my satisfaction: the documentation is scattered. There are four different sections of the project’s website for documentation (FAQs, The Guide, manual pages and the wiki). Whatever we are looking for is likely to be in one of those, but which one? Or, just as likely, the tutorial we want is not there, but is on a forum or blog somewhere. I found that the documentation provided was often thin, more of a quick reference to remind people how something works rather than a full explanation.<br> Err codemadness.org 70 i 36182 As an example, I found a couple of documents relating to setting up a firewall. One dealt with networking NetBSD on a LAN, another explored IPv6 support, but neither gave an overview on syntax or a basic guide to blocking all but one or two ports. It seemed like that information should already be known, or picked up elsewhere.<br> Err codemadness.org 70 i 36183 Newcomers are likely to be a bit confused by software management guides for the same reason. Some pages refer to using a tool called pkg_add, others use pkgsrc and its make utility, others mention pkgin. Ultimately, these tools each give approximately the same result, but work differently and yet are mentioned almost interchangeably. I have used NetBSD before a few times and could stumble through these guides, but new users are likely to come away confused.<br> Err codemadness.org 70 i 36184 One quirk of NetBSD, which may be a security feature or an inconvenience, depending on one’s point of view, is super user programs are not included in regular users’ paths. This means we need to change our path if we want to be able to run programs typically used by root. For example, shutdown and mount are not in regular users’ paths by default. This made checking some things tricky for me.<br> Err codemadness.org 70 i 36185 Ultimately though, NetBSD is not famous for its convenience or features so much as its flexibility. The operating system will run on virtually any processor and should work almost identically across multiple platforms. That gives NetBSD users a good deal of consistency across a range of hardware and the chance to experiment with a member of the Unix family on hardware that might not be compatible with Linux or the other BSDs.</p> Err codemadness.org 70 i 36186 </blockquote> Err codemadness.org 70 i 36187 <hr> Err codemadness.org 70 i 36188 <p>###<a href="https://tech.mangot.com/blog/2018/11/08/showing-a-gigabit-openbsd-firewall-some-monitoring-love/">Showing a Gigabit OpenBSD Firewall Some Monitoring Love</a></p> Err codemadness.org 70 i 36189 <blockquote> Err codemadness.org 70 i 36190 <p>I have a pretty long history of running my home servers or firewalls on “exotic” hardware. At first, it was Sun Microsystem hardware, then it moved to the excellent Soekris line, with some cool single board computers thrown in the mix. Recently I’ve been running OpenBSD Octeon on the Ubiquiti Edge Router Lite, an amazing little piece of kit at an amazing price point.</p> Err codemadness.org 70 i 36191 </blockquote> Err codemadness.org 70 i 36192 <ul> Err codemadness.org 70 i 36193 <li>Upgrade Time!</li> Err codemadness.org 70 i 36194 </ul> Err codemadness.org 70 i 36195 <blockquote> Err codemadness.org 70 i 36196 <p>This setup has served me for some time and I’ve been extremely happy with it. But, in the #firstworldproblems category, I recently upgraded the household to the amazing Gigabit fibre offering from Sonic. A great problem to have, but also too much of a problem for the little Edge Router Lite (ERL).<br> Err codemadness.org 70 i 36197 The way the OpenBSD PF firewall works, it’s only able to process packets on a single core. Not a problem for the dual-core 500 MHz ERL when you’re pushing under ~200 Mbps, but more of a problem when you’re trying to push 1000 Mbps.<br> Err codemadness.org 70 i 36198 I needed something that was faster on a per core basis but still satisfied my usual firewall requirements. Loosely:</p> Err codemadness.org 70 i 36199 </blockquote> Err codemadness.org 70 i 36200 <ul> Err codemadness.org 70 i 36201 <li>small form factor</li> Err codemadness.org 70 i 36202 <li>fan-less</li> Err codemadness.org 70 i 36203 <li>multiple Intel Ethernet ports (good driver support)</li> Err codemadness.org 70 i 36204 <li>low power consumption</li> Err codemadness.org 70 i 36205 <li>not your regular off-the-shelf kit</li> Err codemadness.org 70 i 36206 <li>relatively inexpensive</li> Err codemadness.org 70 i 36207 </ul> Err codemadness.org 70 i 36208 <blockquote> Err codemadness.org 70 i 36209 <p>After evaluating a LOT of different options I settled on the Protectli Vault FW2B. With the specs required for the firewall (2 GB RAM and 8 GB drive) it comes in at a mere $239 USD! Installation of OpenBSD 6.4 was pretty straight forward, with the only problem I had was Etcher did not want to recognize the ‘.fs’ extension on the install image as bootable image. I quickly fixed this with good old Unix dd(1) on the Mac. Everything else was incredibly smooth.<br> Err codemadness.org 70 i 36210 After loading the same rulesets on my new install, the results were fantastic!</p> Err codemadness.org 70 i 36211 </blockquote> Err codemadness.org 70 i 36212 <ul> Err codemadness.org 70 i 36213 <li>Monitoring</li> Err codemadness.org 70 i 36214 </ul> Err codemadness.org 70 i 36215 <blockquote> Err codemadness.org 70 i 36216 <p>Now that the machine was up and running (and fast!), I wanted to know what it was doing. Over the years, I’ve always relied on the venerable pfstat software to give me an overview of my traffic, blocked packets, etc. It looks like this:<br> Err codemadness.org 70 i 36217 As you can see it’s based on RRDtool, which was simply incredible in its time. Having worked on monitoring almost continuously for almost the past decade, I wanted to see if we could re-implement the same functionality using more modern tools as RRDtool and pfstat definitely have their limitations. This might be an opportunity to learn some new things as well.<br> Err codemadness.org 70 i 36218 I came across pf-graphite which seemed to be a great start! He had everything I needed and I added a few more stats from the detailed interface statistics and the ability for the code to exit for running from cron(8), which is a bit more OpenBSD style. I added code for sending to some SaaS metrics platforms but ultimately stuck with straight Graphite. One important thing to note was to use the Graphite pickle port (2004) instead of the default plaintext port for submission. Also you will need to set a loginterface in your ‘pf.conf’.<br> Err codemadness.org 70 i 36219 A bit of tweaking with Graphite and Grafana, and I had a pretty darn good recreation of my original PF stats dashboard!<br> Err codemadness.org 70 i 36220 As you can see it’s based on RRDtool, which was simply incredible in its time. Having worked on monitoring almost continuously for almost the past decade, I wanted to see if we could re-implement the same functionality using more modern tools as RRDtool and pfstat definitely have their limitations. This might be an opportunity to learn some new things as well.<br> Err codemadness.org 70 i 36221 I came across pf-graphite which seemed to be a great start! He had everything I needed and I added a few more stats from the detailed interface statistics and the ability for the code to exit for running from cron(8), which is a bit more OpenBSD style. I added code for sending to some SaaS metrics platforms but ultimately stuck with straight Graphite. One important thing to note was to use the Graphite pickle port (2004) instead of the default plaintext port for submission. Also you will need to set a loginterface in your ‘pf.conf’.<br> Err codemadness.org 70 i 36222 A bit of tweaking with Graphite and Grafana, and I had a pretty darn good recreation of my original PF stats dashboard!</p> Err codemadness.org 70 i 36223 </blockquote> Err codemadness.org 70 i 36224 <p>###<a href="https://twobithistory.org/2018/11/12/cat.html">The Source History of Cat</a></p> Err codemadness.org 70 i 36225 <blockquote> Err codemadness.org 70 i 36226 <p>I once had a debate with members of my extended family about whether a computer science degree is a degree worth pursuing. I was in college at the time and trying to decide whether I should major in computer science. My aunt and a cousin of mine believed that I shouldn’t. They conceded that knowing how to program is of course a useful and lucrative thing, but they argued that the field of computer science advances so quickly that everything I learned would almost immediately be outdated. Better to pick up programming on the side and instead major in a field like economics or physics where the basic principles would be applicable throughout my lifetime.<br> Err codemadness.org 70 i 36227 I knew that my aunt and cousin were wrong and decided to major in computer science. (Sorry, aunt and cousin!) It is easy to see why the average person might believe that a field like computer science, or a profession like software engineering, completely reinvents itself every few years. We had personal computers, then the web, then phones, then machine learning… technology is always changing, so surely all the underlying principles and techniques change too. Of course, the amazing thing is how little actually changes. Most people, I’m sure, would be stunned to know just how old some of the important software on their computer really is. I’m not talking about flashy application software, admittedly—my copy of Firefox, the program I probably use the most on my computer, is not even two weeks old. But, if you pull up the manual page for something like grep, you will see that it has not been updated since 2010 (at least on MacOS). And the original version of grep was written in 1974, which in the computing world was back when dinosaurs roamed Silicon Valley. People (and programs) still depend on grep every day.<br> Err codemadness.org 70 i 36228 My aunt and cousin thought of computer technology as a series of increasingly elaborate sand castles supplanting one another after each high tide clears the beach. The reality, at least in many areas, is that we steadily accumulate programs that have solved problems. We might have to occasionally modify these programs to avoid software rot, but otherwise they can be left alone. grep is a simple program that solves a still-relevant problem, so it survives. Most application programming is done at a very high level, atop a pyramid of much older code solving much older problems. The ideas and concepts of 30 or 40 years ago, far from being obsolete today, have in many cases been embodied in software that you can still find installed on your laptop.<br> Err codemadness.org 70 i 36229 I thought it would be interesting to take a look at one such old program and see how much it had changed since it was first written. cat is maybe the simplest of all the Unix utilities, so I’m going to use it as my example. Ken Thompson wrote the original implementation of cat in 1969. If I were to tell somebody that I have a program on my computer from 1969, would that be accurate? How much has cat really evolved over the decades? How old is the software on our computers?<br> Err codemadness.org 70 i 36230 Thanks to repositories like this one, we can see exactly how cat has evolved since 1969. I’m going to focus on implementations of cat that are ancestors of the implementation I have on my Macbook. You will see, as we trace cat from the first versions of Unix down to the cat in MacOS today, that the program has been rewritten more times than you might expect—but it ultimately works more or less the same way it did fifty years ago.</p> Err codemadness.org 70 i 36231 </blockquote> Err codemadness.org 70 i 36232 <ul> Err codemadness.org 70 i 36233 <li>Research Unix</li> Err codemadness.org 70 i 36234 </ul> Err codemadness.org 70 i 36235 <blockquote> Err codemadness.org 70 i 36236 <p>Ken Thompson and Dennis Ritchie began writing Unix on a PDP 7. This was in 1969, before C, so all of the early Unix software was written in PDP 7 assembly. The exact flavor of assembly they used was unique to Unix, since Ken Thompson wrote his own assembler that added some features on top of the assembler provided by DEC, the PDP 7’s manufacturer. Thompson’s changes are all documented in the original Unix Programmer’s Manual under the entry for as, the assembler.<br> Err codemadness.org 70 i 36237 The first implementation of cat is thus in PDP 7 assembly. I’ve added comments that try to explain what each instruction is doing, but the program is still difficult to follow unless you understand some of the extensions Thompson made while writing his assembler. There are two important ones. First, the ; character can be used to separate multiple statements on the same line. It appears that this was used most often to put system call arguments on the same line as the sys instruction. Second, Thompson added support for “temporary labels” using the digits 0 through 9. These are labels that can be reused throughout a program, thus being, according to the Unix Programmer’s Manual, “less taxing both on the imagination of the programmer and on the symbol space of the assembler.” From any given instruction, you can refer to the next or most recent temporary label n using nf and nb respectively. For example, if you have some code in a block labeled 1:, you can jump back to that block from further down by using the instruction jmp 1b. (But you cannot jump forward to that block from above without using jmp 1f instead.)<br> Err codemadness.org 70 i 36238 The most interesting thing about this first version of cat is that it contains two names we should recognize. There is a block of instructions labeled getc and a block of instructions labeled putc, demonstrating that these names are older than the C standard library. The first version of cat actually contained implementations of both functions. The implementations buffered input so that reads and writes were not done a character at a time.<br> Err codemadness.org 70 i 36239 The first version of cat did not last long. Ken Thompson and Dennis Ritchie were able to persuade Bell Labs to buy them a PDP 11 so that they could continue to expand and improve Unix. The PDP 11 had a different instruction set, so cat had to be rewritten. I’ve marked up this second version of cat with comments as well. It uses new assembler mnemonics for the new instruction set and takes advantage of the PDP 11’s various addressing modes. (If you are confused by the parentheses and dollar signs in the source code, those are used to indicate different addressing modes.) But it also leverages the ; character and temporary labels just like the first version of cat, meaning that these features must have been retained when as was adapted for the PDP 11.<br> Err codemadness.org 70 i 36240 The second version of cat is significantly simpler than the first. It is also more “Unix-y” in that it doesn’t just expect a list of filename arguments—it will, when given no arguments, read from stdin, which is what cat still does today. You can also give this version of cat an argument of - to indicate that it should read from stdin.<br> Err codemadness.org 70 i 36241 In 1973, in preparation for the release of the Fourth Edition of Unix, much of Unix was rewritten in C. But cat does not seem to have been rewritten in C until a while after that. The first C implementation of cat only shows up in the Seventh Edition of Unix. This implementation is really fun to look through because it is so simple. Of all the implementations to follow, this one most resembles the idealized cat used as a pedagogic demonstration in K&amp;R C. The heart of the program is the classic two-liner:</p> Err codemadness.org 70 i 36242 </blockquote> Err codemadness.org 70 i 36243 <p><code>while ((c = getc(fi)) != EOF)</code><br> Err codemadness.org 70 i 36244 <code>putchar(c);</code></p> Err codemadness.org 70 i 36245 <blockquote> Err codemadness.org 70 i 36246 <p>There is of course quite a bit more code than that, but the extra code is mostly there to ensure that you aren’t reading and writing to the same file. The other interesting thing to note is that this implementation of cat only recognized one flag, -u. The -u flag could be used to avoid buffering input and output, which cat would otherwise do in blocks of 512 bytes.</p> Err codemadness.org 70 i 36247 </blockquote> Err codemadness.org 70 i 36248 <ul> Err codemadness.org 70 i 36249 <li>BSD</li> Err codemadness.org 70 i 36250 </ul> Err codemadness.org 70 i 36251 <blockquote> Err codemadness.org 70 i 36252 <p>After the Seventh Edition, Unix spawned all sorts of derivatives and offshoots. MacOS is built on top of Darwin, which in turn is derived from the Berkeley Software Distribution (BSD), so BSD is the Unix offshoot we are most interested in. BSD was originally just a collection of useful programs and add-ons for Unix, but it eventually became a complete operating system. BSD seems to have relied on the original cat implementation up until the fourth BSD release, known as 4BSD, when support was added for a whole slew of new flags. The 4BSD implementation of cat is clearly derived from the original implementation, though it adds a new function to implement the behavior triggered by the new flags. The naming conventions already used in the file were adhered to—the fflg variable, used to mark whether input was being read from stdin or a file, was joined by nflg, bflg, vflg, sflg, eflg, and tflg, all there to record whether or not each new flag was supplied in the invocation of the program. These were the last command-line flags added to cat; the man page for cat today lists these flags and no others, at least on Mac OS. 4BSD was released in 1980, so this set of flags is 38 years old.<br> Err codemadness.org 70 i 36253 cat would be entirely rewritten a final time for BSD Net/2, which was, among other things, an attempt to avoid licensing issues by replacing all AT&amp;T Unix-derived code with new code. BSD Net/2 was released in 1991. This final rewrite of cat was done by Kevin Fall, who graduated from Berkeley in 1988 and spent the next year working as a staff member at the Computer Systems Research Group (CSRG). Fall told me that a list of Unix utilities still implemented using AT&amp;T code was put up on a wall at CSRG and staff were told to pick the utilities they wanted to reimplement. Fall picked cat and mknod. The cat implementation bundled with MacOS today is built from a source file that still bears his name at the very top. His version of cat, even though it is a relatively trivial program, is today used by millions.<br> Err codemadness.org 70 i 36254 Fall’s original implementation of cat is much longer than anything we have seen so far. Other than support for a -? help flag, it adds nothing in the way of new functionality. Conceptually, it is very similar to the 4BSD implementation. It is only longer because Fall separates the implementation into a “raw” mode and a “cooked” mode. The “raw” mode is cat classic; it prints a file character for character. The “cooked” mode is cat with all the 4BSD command-line options. The distinction makes sense but it also pads out the implementation so that it seems more complex at first glance than it actually is. There is also a fancy error handling function at the end of the file that further adds to its length.</p> Err codemadness.org 70 i 36255 </blockquote> Err codemadness.org 70 i 36256 <ul> Err codemadness.org 70 i 36257 <li>MacOS</li> Err codemadness.org 70 i 36258 </ul> Err codemadness.org 70 i 36259 <blockquote> Err codemadness.org 70 i 36260 <p>The very first release of Mac OS X thus includes an implementation of cat pulled from the NetBSD project. So the first Mac OS X implementation of cat is Kevin Fall’s cat. The only thing that had changed over the intervening decade was that Fall’s error-handling function err() was removed and the err() function made available by err.h was used in its place. err.h is a BSD extension to the C standard library.<br> Err codemadness.org 70 i 36261 The NetBSD implementation of cat was later swapped out for FreeBSD’s implementation of cat. According to Wikipedia, Apple began using FreeBSD instead of NetBSD in Mac OS X 10.3 (Panther). But the Mac OS X implementation of cat, according to Apple’s own open source releases, was not replaced until Mac OS X 10.5 (Leopard) was released in 2007. The FreeBSD implementation that Apple swapped in for the Leopard release is the same implementation on Apple computers today. As of 2018, the implementation has not been updated or changed at all since 2007.<br> Err codemadness.org 70 i 36262 So the Mac OS cat is old. As it happens, it is actually two years older than its 2007 appearance in MacOS X would suggest. This 2005 change, which is visible in FreeBSD’s Github mirror, was the last change made to FreeBSD’s cat before Apple pulled it into Mac OS X. So the Mac OS X cat implementation, which has not been kept in sync with FreeBSD’s cat implementation, is officially 13 years old. There’s a larger debate to be had about how much software can change before it really counts as the same software; in this case, the source file has not changed at all since 2005.<br> Err codemadness.org 70 i 36263 The cat implementation used by Mac OS today is not that different from the implementation that Fall wrote for the 1991 BSD Net/2 release. The biggest difference is that a whole new function was added to provide Unix domain socket support. At some point, a FreeBSD developer also seems to have decided that Fall’s rawargs() function and cookargs() should be combined into a single function called scanfiles(). Otherwise, the heart of the program is still Fall’s code.<br> Err codemadness.org 70 i 36264 I asked Fall how he felt about having written the cat implementation now used by millions of Apple users, either directly or indirectly through some program that relies on cat being present. Fall, who is now a consultant and a co-author of the most recent editions of TCP/IP Illustrated, says that he is surprised when people get such a thrill out of learning about his work on cat. Fall has had a long career in computing and has worked on many high-profile projects, but it seems that many people still get most excited about the six months of work he put into rewriting cat in 1989.</p> Err codemadness.org 70 i 36265 </blockquote> Err codemadness.org 70 i 36266 <ul> Err codemadness.org 70 i 36267 <li>The Hundred-Year-Old Program</li> Err codemadness.org 70 i 36268 </ul> Err codemadness.org 70 i 36269 <blockquote> Err codemadness.org 70 i 36270 <p>In the grand scheme of things, computers are not an old invention. We’re used to hundred-year-old photographs or even hundred-year-old camera footage. But computer programs are in a different category—they’re high-tech and new. At least, they are now. As the computing industry matures, will we someday find ourselves using programs that approach the hundred-year-old mark?<br> Err codemadness.org 70 i 36271 Computer hardware will presumably change enough that we won’t be able to take an executable compiled today and run it on hardware a century from now. Perhaps advances in programming language design will also mean that nobody will understand C in the future and cat will have long since been rewritten in another language. (Though C has already been around for fifty years, and it doesn’t look like it is about to be replaced any time soon.) But barring all that, why not just keep using the cat we have forever?<br> Err codemadness.org 70 i 36272 I think the history of cat shows that some ideas in computer science are in fact very durable. Indeed, with cat, both the idea and the program itself are old. It may not be accurate to say that the cat on my computer is from 1969. But I could make a case for saying that the cat on my computer is from 1989, when Fall wrote his implementation of cat. Lots of other software is just as ancient. So maybe we shouldn’t think of computer science and software development primarily as fields that disrupt the status quo and invent new things. Our computer systems are built out of historical artifacts. At some point, we may all spend more time trying to understand and maintain those historical artifacts than we spend writing new code.</p> Err codemadness.org 70 i 36273 </blockquote> Err codemadness.org 70 i 36274 <hr> Err codemadness.org 70 i 36275 <p>##News Roundup<br> Err codemadness.org 70 i 36276 <a href="https://www.bleepingcomputer.com/news/security/trivial-bug-in-xorg-gives-root-permission-on-linux-and-bsd-systems/">Trivial Bug in X.Org Gives Root Permission on Linux and BSD Systems</a></p> Err codemadness.org 70 i 36277 <blockquote> Err codemadness.org 70 i 36278 <p>A vulnerability that is trivial to exploit allows privilege escalation to root level on Linux and BSD distributions using <a href="http://X.Org">X.Org</a> server, the open source implementation of the X Window System that offers the graphical environment.<br> Err codemadness.org 70 i 36279 The flaw is now identified as CVE-2018-14665 (credited to security researcher Narendra Shinde). It has been present in xorg-server for two years, since version 1.19.0 and is exploitable by a limited user as long as the X server runs with elevated permissions.</p> Err codemadness.org 70 i 36280 </blockquote> Err codemadness.org 70 i 36281 <ul> Err codemadness.org 70 i 36282 <li>Privilege escalation and arbitrary file overwrite</li> Err codemadness.org 70 i 36283 </ul> Err codemadness.org 70 i 36284 <blockquote> Err codemadness.org 70 i 36285 <p>An advisory on Thursday describes the problem as an “incorrect command-line parameter validation” that also allows an attacker to overwrite arbitrary files.<br> Err codemadness.org 70 i 36286 Privilege escalation can be accomplished via the -modulepath argument by setting an insecure path to modules loaded by the <a href="http://X.org">X.org</a> server. Arbitrary file overwrite is possible through the -logfile argument, because of improper verification when parsing the option.</p> Err codemadness.org 70 i 36287 </blockquote> Err codemadness.org 70 i 36288 <ul> Err codemadness.org 70 i 36289 <li>Bug could have been avoided in OpenBSD 6.4</li> Err codemadness.org 70 i 36290 </ul> Err codemadness.org 70 i 36291 <blockquote> Err codemadness.org 70 i 36292 <p>OpenBSD, the free and open-source operating system with a strong focus on security, uses xorg. On October 18, the project released version 6.4 of the OS, affected by CVE-2018-14665. This could have been avoided, though.<br> Err codemadness.org 70 i 36293 Theo de Raadt, founder and leader of the OpenBSD project, says that X maintainer knew about the problem since at least October 11. For some reason, the OpenBSD developers received the message one hour before the public announcement this Thursday, a week after their new OS release.<br> Err codemadness.org 70 i 36294 “As yet we don’t have answers about why our X maintainer (on the X security team) and his team provided information to other projects (some who don’t even ship with this new X server) but chose to not give us a heads-up which could have saved all the new 6.4 users a lot of grief,” Raadt says.<br> Err codemadness.org 70 i 36295 Had OpenBSD developers known about the bug before the release, they could have taken steps to mitigate the problem or delay the launch for a week or two.<br> Err codemadness.org 70 i 36296 To remedy the problem, the OpenBSD project provides a source code patch, which requires compiling and rebuilding the X server.<br> Err codemadness.org 70 i 36297 As a temporary solution, users can disable the Xorg binary by running the following command:</p> Err codemadness.org 70 i 36298 </blockquote> Err codemadness.org 70 i 36299 <p><code>chmod u-s /usr/X11R6/bin/Xorg</code></p> Err codemadness.org 70 i 36300 <ul> Err codemadness.org 70 i 36301 <li>Trivial exploitation</li> Err codemadness.org 70 i 36302 </ul> Err codemadness.org 70 i 36303 <blockquote> Err codemadness.org 70 i 36304 <p>CVE-2018-14665 does not help compromise systems, but it is useful in the following stages of an attack.<br> Err codemadness.org 70 i 36305 Leveraging it after gaining access to a vulnerable machine is fairly easy. Matthew Hickey, co-founder, and head of Hacker House security outfit created and published an exploit, saying that it can be triggered from a remote SSH session.<br> Err codemadness.org 70 i 36306 Three hours after the public announcement of the security gap, Daemon Security CEO Michael Shirk replied with one line that overwrote shadow files on the system. Hickey did one better and fit the entire local privilege escalation exploit in one line.<br> Err codemadness.org 70 i 36307 Apart from OpenBSD, other operating systems affected by the bug include Debian and Ubuntu, Fedora and its downstream distro Red Hat Enterprise Linux along with its community-supported counterpart CentOS.</p> Err codemadness.org 70 i 36308 </blockquote> Err codemadness.org 70 i 36309 <hr> Err codemadness.org 70 i 36310 <p>###<a href="https://blog.gsora.xyz/openbsd-on-the-desktop-some-thoughts/">OpenBSD on the Desktop: some thoughts</a></p> Err codemadness.org 70 i 36311 <blockquote> Err codemadness.org 70 i 36312 <p>I’ve been using OpenBSD on my ThinkPad X230 for some weeks now, and the experience has been peculiar in some ways.<br> Err codemadness.org 70 i 36313 The OS itself in my opinion is not ready for widespread desktop usage, and the development team is not trying to push it in the throat of anybody who wants a Windows or macOS alternative.<br> Err codemadness.org 70 i 36314 You need to understand a little bit of how *NIX systems work, because you’ll use CLI more than UI.<br> Err codemadness.org 70 i 36315 That’s not necessarily bad, and I’m sure I learned a trick or two that could translate easily to Linux or macOS.<br> Err codemadness.org 70 i 36316 Their development process is purely based on developers that love to contribute and hack around, just because it’s fun.<br> Err codemadness.org 70 i 36317 Even the mailing list is a cool place to hang on!<br> Err codemadness.org 70 i 36318 Code correctness and security are a must, nothing gets committed if it doesn’t get reviewed thoroughly first - nowadays the first two properties should be enforced in every major operating system.<br> Err codemadness.org 70 i 36319 I like the idea of a platform that continually evolves.<br> Err codemadness.org 70 i 36320 pledge(2) and unveil(2) are the proof that with a little effort, you can secure existing software better than ever.<br> Err codemadness.org 70 i 36321 I like the “sensible defaults” approach, having an OS ready to be used - UI included if you selected it during the setup process - is great.<br> Err codemadness.org 70 i 36322 Just install a browser and you’re ready to go.<br> Err codemadness.org 70 i 36323 Manual pages on OpenBSD are real manuals, not an extension of the “–help” command found in most CLI softwares.<br> Err codemadness.org 70 i 36324 They help you understand inner workings of the operating system, no internet connection needed.<br> Err codemadness.org 70 i 36325 There are some trade-offs, too.<br> Err codemadness.org 70 i 36326 Performance is not first-class, mostly because of all the security mitigations and checks done at runtime3.<br> Err codemadness.org 70 i 36327 I write Go code in neovim, and sometimes you can feel a slight slowdown when you’re compiling and editing multiple files at the same time, but usually I can’t notice any meaningful difference.<br> Err codemadness.org 70 i 36328 Browsers are a different matter though, you can definitely feel something differs from the experience you can have on mainstream operating systems.<br> Err codemadness.org 70 i 36329 But again, trade-offs.<br> Err codemadness.org 70 i 36330 To use OpenBSD on the desktop you must be ready to sacrifice some of the goodies of mainstream OSes, but if you’re searching for a zen place to do your computing stuff, it’s the best you can get right now.</p> Err codemadness.org 70 i 36331 </blockquote> Err codemadness.org 70 i 36332 <hr> Err codemadness.org 70 i 36333 <p>###<a href="https://distrowatch.com/weekly.php?issue=20180813#nomadbsd">Review: NomadBSD 1.1</a></p> Err codemadness.org 70 i 36334 <blockquote> Err codemadness.org 70 i 36335 <p>One of the most recent additions to the DistroWatch database is NomadBSD. According to the NomadBSD website: “NomadBSD is a 64-bit live system for USB flash drives, based on FreeBSD. Together with automatic hardware detection and setup, it is configured to be used as a desktop system that works out of the box, but can also be used for data recovery.”<br> Err codemadness.org 70 i 36336 The latest release of NomadBSD (or simply “Nomad”, as I will refer to the project in this review) is version 1.1. It is based on FreeBSD 11.2 and is offered in two builds, one for generic personal computers and one for Macbooks. The release announcement mentions version 1.1 offers improved video driver support for Intel and AMD cards. The operating system ships with Octopkg for graphical package management and the system should automatically detect, and work with, VirtualBox environments.<br> Err codemadness.org 70 i 36337 Nomad 1.1 is available as a 2GB download, which we then decompress to produce a 4GB file which can be written to a USB thumb drive. There is no optical media build of Nomad as it is designed to be run entirely from the USB drive, and write data persistently to the drive, rather than simply being installed from the USB media.</p> Err codemadness.org 70 i 36338 </blockquote> Err codemadness.org 70 i 36339 <ul> Err codemadness.org 70 i 36340 <li>Initial setup</li> Err codemadness.org 70 i 36341 </ul> Err codemadness.org 70 i 36342 <blockquote> Err codemadness.org 70 i 36343 <p>Booting from the USB drive brings up a series of text-based menus which ask us to configure key parts of the operating system. We are asked to select our time zone, keyboard layout, keyboard model, keyboard mapping and our preferred language. While we can select options from a list, the options tend to be short and cryptic. Rather than “English (US)”, for example, we might be given “enUS”. We are also asked to create a password for the root user account and another one for a regular user which is called “nomad”. We can then select which shell nomad will use. The default is zsh, but there are plenty of other options, including csh and bash. We have the option of encrypting our user’s home directory.<br> Err codemadness.org 70 i 36344 I feel it is important to point out that these settings, and nomad’s home directory, are stored on the USB drive. The options and settings we select will not be saved to our local hard drive and our configuration choices will not affect other operating systems already installed on our computer. At the end, the configuration wizard asks if we want to run the BSDstats service. This option is not explained at all, but it contacts BSDstats to provide some basic statistics on BSD users.<br> Err codemadness.org 70 i 36345 The system then takes a few minutes to apply its changes to the USB drive and automatically reboots the computer. While running the initial setup wizard, I had nearly identical experiences when running Nomad on a physical computer and running the operating system in a VirtualBox virtual machine. However, after the initial setup process was over, I had quite different experiences depending on the environment so I want to divide my experiences into two different sections.</p> Err codemadness.org 70 i 36346 </blockquote> Err codemadness.org 70 i 36347 <ul> Err codemadness.org 70 i 36348 <li>Physical desktop computer</li> Err codemadness.org 70 i 36349 </ul> Err codemadness.org 70 i 36350 <blockquote> Err codemadness.org 70 i 36351 <p>At first, Nomad failed to boot on my desktop computer. From the operating system’s boot loader, I enabled Safe Mode which allowed Nomad to boot. At that point, Nomad was able to start up, but would only display a text console. The desktop environment failed to start when running in Safe Mode.<br> Err codemadness.org 70 i 36352 Networking was also disabled by default and I had to enable a network interface and DHCP address assignment to connect to the Internet. Instructions for enabling networking can be found in FreeBSD’s Handbook. Once we are on-line we can use the pkg command line package manager to install and update software. Had the desktop environment worked then the Octopkg graphical package manager would also be available to make browsing and installing software a point-n-click experience.<br> Err codemadness.org 70 i 36353 Had I been able to run the desktop for prolonged amounts of time I could have made use of such pre-installed items as the Firefox web browser, the VLC media player, LibreOffice and Thunderbird. Nomad offers a fairly small collection of desktop applications, but what is there is mostly popular, capable software.<br> Err codemadness.org 70 i 36354 When running the operating system I noted that, with one user logged in, Nomad only runs 15 processes with the default configuration. These processes require less than 100MB of RAM, and the whole system fits comfortably on a 4GB USB drive.</p> Err codemadness.org 70 i 36355 </blockquote> Err codemadness.org 70 i 36356 <ul> Err codemadness.org 70 i 36357 <li>Conclusions</li> Err codemadness.org 70 i 36358 </ul> Err codemadness.org 70 i 36359 <blockquote> Err codemadness.org 70 i 36360 <p>Ultimately using Nomad was not a practical option for me. The operating system did not work well with my hardware, or the virtual environment. In the virtual machine, Nomad crashed consistently after just a few minutes of uptime. On the desktop computer, I could not get a desktop environment to run. The command line tools worked well, and the system performed tasks very quickly, but a command line only environment is not well suited to my workflow.<br> Err codemadness.org 70 i 36361 I like the idea of what NomadBSD is offering. There are not many live desktop flavours of FreeBSD, apart from GhostBSD. It was nice to see developers trying to make a FreeBSD-based, plug-and-go operating system that would offer a desktop and persistent storage. I suspect the system would work and perform its stated functions on different hardware, but in my case my experiment was necessarily short lived.</p> Err codemadness.org 70 i 36362 </blockquote> Err codemadness.org 70 i 36363 <hr> Err codemadness.org 70 i 36364 <p>##Beastie Bits</p> Err codemadness.org 70 i 36365 <ul> Err codemadness.org 70 i 36366 <li><a href="https://oshogbo.vexillium.org/blog/50/">FreeBSD lockless algorithm - seq</a></li> Err codemadness.org 70 i 36367 <li><a href="https://github.com/bob-beck/libtls/blob/master/TUTORIAL.md">Happy Bob’s Libtls tutorial</a></li> Err codemadness.org 70 i 36368 <li><a href="https://chown.me/blog/locking-openbsd-when-sleeping.html">Locking OpenBSD when it’s sleeping</a></li> Err codemadness.org 70 i 36369 <li><a href="https://www.geoghegan.ca/serviio.html">iio - The OpenBSD Way</a></li> Err codemadness.org 70 i 36370 <li><a href="https://bsdboy.ml/blog/installing-hugo-and-hosting-on-openbsd.html">Installing Hugo and Hosting Website on OpenBSD Server</a></li> Err codemadness.org 70 i 36371 <li><a href="http://blog.osorio.me/post.php?idpost=1">Fosdem 2019 reminder: BSD devroom CfP</a></li> Err codemadness.org 70 i 36372 <li><a href="https://www.youtube.com/watch?v=4gOoPxGKKjA&amp;feature=youtu.be">OpenBGPD, gotta go fast! - Claudio Jeker</a></li> Err codemadness.org 70 i 36373 <li><a href="http://project-trident.org/post/2018-11-10rc3-available/">Project Trident RC3 available</a></li> Err codemadness.org 70 i 36374 <li><a href="https://lists.freebsd.org/pipermail/freebsd-announce/2018-November/001849.html">FreeBSD 10.4 EOL</a></li> Err codemadness.org 70 i 36375 <li><a href="https://bsd.network/@ephemeris/101073578346815313">Play “Crazy Train” through your APU2 speaker</a></li> Err codemadness.org 70 i 36376 </ul> Err codemadness.org 70 i 36377 <hr> Err codemadness.org 70 i 36378 <p>##Feedback/Questions</p> Err codemadness.org 70 i 36379 <ul> Err codemadness.org 70 i 36380 <li>Tobias - <a href="http://dpaste.com/174WGEY#wrap">Satisfying my storage hunger and wallet pains</a></li> Err codemadness.org 70 i 36381 <li>Lasse - <a href="http://dpaste.com/1QBMH73">Question regarding FreeBSD backups</a> Err codemadness.org 70 i 36382 <ul> Err codemadness.org 70 i 36383 <li><a href="https://twitter.com/dlangille">https://twitter.com/dlangille</a></li> Err codemadness.org 70 i 36384 <li><a href="https://dan.langille.org/">https://dan.langille.org/</a></li> Err codemadness.org 70 i 36385 </ul> Err codemadness.org 70 i 36386 </li> Err codemadness.org 70 i 36387 </ul> Err codemadness.org 70 i 36388 <hr> Err codemadness.org 70 i 36389 <ul> Err codemadness.org 70 i 36390 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 36391 </ul> Err codemadness.org 70 i 36392 <hr> Err codemadness.org 70 i 36393 Err codemadness.org 70 i 36394 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, cat, Firewall, x.org, vulnerability, nomadbsd, OpenBGPD, Hugo, Fosdem, iio Err codemadness.org 70 i 36395 Err codemadness.org 70 i 36396 Thoughts on NetBSD 8.0, Monitoring love for a GigaBit OpenBSD firewall, cat’s source history, X.org root permission bug, thoughts on OpenBSD as a desktop, and NomadBSD review.

Err codemadness.org 70 i 36397 Err codemadness.org 70 i 36398

##Headlines
Err codemadness.org 70 i 36399 ###Some thoughts on NetBSD 8.0

Err codemadness.org 70 i 36400 Err codemadness.org 70 i 36401
Err codemadness.org 70 i 36402

NetBSD is a highly portable operating system which can be run on dozens of different hardware architectures. The operating system’s clean and minimal design allow it to be run in all sorts of environments, ranging from embedded devices, to servers, to workstations. While the base operating system is minimal, NetBSD users have access to a large repository of binary packages and a ports tree which I will touch upon later.
Err codemadness.org 70 i 36403 I last tried NetBSD 7.0 about three years ago and decided it was time to test drive the operating system again. In the past three years NetBSD has introduced a few new features, many of them security enhancements. For example, NetBSD now supports write exclusive-or execute (W^X) protection and address space layout randomization (ASLR) to protect programs against common attacks. NetBSD 8.0 also includes USB3 support and the ability to work with ZFS storage volumes.

Err codemadness.org 70 i 36404
Err codemadness.org 70 i 36405 Err codemadness.org 70 i 36406
    Err codemadness.org 70 i 36407
  • Early impressions
  • Err codemadness.org 70 i 36408
Err codemadness.org 70 i 36409 Err codemadness.org 70 i 36410
Err codemadness.org 70 i 36411

Since I had set up NetBSD with a Full install and enabled xdm during the setup process, the operating system booted to a graphical login screen. From here we can sign into our account. The login screen does not provide options to shut down or restart the computer. Logging into our account brings up the twm window manager and provides a virtual terminal, courtesy of xterm. There is a panel that provides a method for logging out of the window manager. The twm environment is sparse, fast and devoid of distractions.

Err codemadness.org 70 i 36412
Err codemadness.org 70 i 36413 Err codemadness.org 70 i 36414
    Err codemadness.org 70 i 36415
  • Software management
  • Err codemadness.org 70 i 36416
Err codemadness.org 70 i 36417 Err codemadness.org 70 i 36418
Err codemadness.org 70 i 36419

NetBSD ships with a fairly standard collection of command line tools and manual pages, but otherwise it is a fairly minimal platform. If we want to run network services, have access to a web browser, or use a word processor we are going to need to install more software. There are two main approaches to installing new packages. The first, and easier approach, is to use the pkgin package manager. The pkgin utility works much the same way APT or DNF work in the Linux world, or as pkg works on FreeBSD. We can search for software by name, install or remove items. I found pkgin worked well, though its output can be terse. My only complaint with pkgin is that it does not handle “close enough” package names. For example, if I tried to run “pkgin install vlc” or “pkgin install firefox” I would quickly be told these items did not exist. But a more forgiving package manager will realize items like vlc2 or firefox45 are available and offer to install those.
Err codemadness.org 70 i 36420 The pkgin tool installs new programs in the /usr/pkg/bin directory. Depending on your configuration and shell, this location may not be in your user’s path, and it will be helpful to adjust your PATH variable accordingly.
Err codemadness.org 70 i 36421 The other common approach to acquiring new software is to use the pkgsrc framework. I have talked about using pkgsrc before and I will skip the details. Basically, we can download a collection of recipes for building popular open source software and run a command to download and install these items from their source code. Using pkgsrc basically gives us the same software as using pkgin would, but with some added flexibility on the options we use.
Err codemadness.org 70 i 36422 Once new software has been installed, it may need to be enabled and activated, particularly if it uses (or is) a background service. New items can be enabled in the /etc/rc.conf file and started or stopped using the service command. This works about the same as the service command on FreeBSD and most non-systemd Linux distributions.

Err codemadness.org 70 i 36423
Err codemadness.org 70 i 36424 Err codemadness.org 70 i 36425
    Err codemadness.org 70 i 36426
  • Hardware
  • Err codemadness.org 70 i 36427
Err codemadness.org 70 i 36428 Err codemadness.org 70 i 36429
Err codemadness.org 70 i 36430

I found that, when logged into the twm environment, NetBSD used about 130MB of RAM. This included kernel memory and all active memory. A fresh, Full install used up 1.5GB of disk space. I generally found NetBSD ran well in both VirtualBox and on my desktop computer. The system was quick and stable. I did have trouble getting a higher screen resolution in both environments. NetBSD does not offer VirtualBox add-on modules. There are NetBSD patches for VirtualBox out there, but there is some manual work involved in getting them working. When running on my desktop computer I think the resolution issue was one of finding and dealing with the correct video driver. Screen resolution aside, NetBSD performed well and detected all my hardware.

Err codemadness.org 70 i 36431
Err codemadness.org 70 i 36432 Err codemadness.org 70 i 36433
    Err codemadness.org 70 i 36434
  • Personal projects
  • Err codemadness.org 70 i 36435
Err codemadness.org 70 i 36436 Err codemadness.org 70 i 36437
Err codemadness.org 70 i 36438

Since NetBSD provides users with a small, core operating system without many utilities if we want to use NetBSD for something we need to have a project in mind. I had four mini projects in mind I wanted to try this week: install a desktop environment, enable file sharing for computers on the local network, test multimedia (video, audio and YouTube capabilities), and set up a ZFS volume for storage.
Err codemadness.org 70 i 36439 I began with the desktop. Specifically, I followed the same tutorial I used three years ago to try to set up the Xfce desktop. While Xfce and its supporting services installed, I was unable to get a working desktop out of the experience. I could get the Xfce window manager working, but not the entire session. This tutorial worked beautifully with NetBSD 7.0, but not with version 8.0. Undeterred, I switched gears and installed Fluxbox instead. This gave me a slightly more powerful graphical environment than what I had before with twm while maintaining performance. Fluxbox ran without any problems, though its application menu was automatically populated with many programs which were not actually installed.
Err codemadness.org 70 i 36440 Next, I tried installing a few multimedia applications to play audio and video files. Here I ran into a couple of interesting problems. I found the music players I installed would play audio files, but the audio was quite slow. It always sounded like a cassette tape dragging. When I tried to play a video, the entire graphical session would crash, taking me back to the login screen. When I installed Firefox, I found I could play YouTube videos, and the video played smoothly, but again the audio was unusually slow.
Err codemadness.org 70 i 36441 I set up two methods of sharing files on the local network: OpenSSH and FTP. NetBSD basically gives us OpenSSH for free at install time and I added an FTP server through the pkgin package manager which worked beautifully with its default configuration.
Err codemadness.org 70 i 36442 I experimented with ZFS support a little, just enough to confirm I could create and access ZFS volumes. ZFS seems to work on NetBSD just as well, and with the same basic features, as it does on FreeBSD and mainstream Linux distributions. I think this is a good feature for the portable operating system to have since it means we can stick NetBSD on nearly any networked computer and use it as a NAS.

Err codemadness.org 70 i 36443
Err codemadness.org 70 i 36444 Err codemadness.org 70 i 36445
    Err codemadness.org 70 i 36446
  • Conclusions
  • Err codemadness.org 70 i 36447
Err codemadness.org 70 i 36448 Err codemadness.org 70 i 36449
Err codemadness.org 70 i 36450

NetBSD, like its close cousins (FreeBSD and OpenBSD) does not do a lot of hand holding or automation. It offers a foundation that will run on most CPUs and we can choose to build on that foundation. I mention this because, on its own, NetBSD does not do much. If we want to get something out of it, we need to be willing to build on its foundation - we need a project. This is important to keep in mind as I think going into NetBSD and thinking, “Oh I’ll just explore around and expand on this as I go,” will likely lead to disappointment. I recommend figuring out what you want to do before installing NetBSD and making sure the required tools are available in the operating system’s repositories.
Err codemadness.org 70 i 36451 Some of the projects I embarked on this week (using ZFS and setting up file sharing) worked well. Others, like getting multimedia support and a full-featured desktop, did not. Given more time, I’m sure I could find a suitable desktop to install (along with the required documentation to get it and its services running), or customize one based on one of the available window managers. However, any full featured desktop is going to require some manual work. Media support was not great. The right players and codecs were there, but I was not able to get audio to play smoothly.
Err codemadness.org 70 i 36452 My main complaint with NetBSD relates to my struggle to get some features working to my satisfaction: the documentation is scattered. There are four different sections of the project’s website for documentation (FAQs, The Guide, manual pages and the wiki). Whatever we are looking for is likely to be in one of those, but which one? Or, just as likely, the tutorial we want is not there, but is on a forum or blog somewhere. I found that the documentation provided was often thin, more of a quick reference to remind people how something works rather than a full explanation.
Err codemadness.org 70 i 36453 As an example, I found a couple of documents relating to setting up a firewall. One dealt with networking NetBSD on a LAN, another explored IPv6 support, but neither gave an overview on syntax or a basic guide to blocking all but one or two ports. It seemed like that information should already be known, or picked up elsewhere.
Err codemadness.org 70 i 36454 Newcomers are likely to be a bit confused by software management guides for the same reason. Some pages refer to using a tool called pkg_add, others use pkgsrc and its make utility, others mention pkgin. Ultimately, these tools each give approximately the same result, but work differently and yet are mentioned almost interchangeably. I have used NetBSD before a few times and could stumble through these guides, but new users are likely to come away confused.
Err codemadness.org 70 i 36455 One quirk of NetBSD, which may be a security feature or an inconvenience, depending on one’s point of view, is super user programs are not included in regular users’ paths. This means we need to change our path if we want to be able to run programs typically used by root. For example, shutdown and mount are not in regular users’ paths by default. This made checking some things tricky for me.
Err codemadness.org 70 i 36456 Ultimately though, NetBSD is not famous for its convenience or features so much as its flexibility. The operating system will run on virtually any processor and should work almost identically across multiple platforms. That gives NetBSD users a good deal of consistency across a range of hardware and the chance to experiment with a member of the Unix family on hardware that might not be compatible with Linux or the other BSDs.

Err codemadness.org 70 i 36457
Err codemadness.org 70 i 36458 Err codemadness.org 70 i 36459


Err codemadness.org 70 i 36460 Err codemadness.org 70 i 36461

###Showing a Gigabit OpenBSD Firewall Some Monitoring Love

Err codemadness.org 70 i 36462 Err codemadness.org 70 i 36463
Err codemadness.org 70 i 36464

I have a pretty long history of running my home servers or firewalls on “exotic” hardware. At first, it was Sun Microsystem hardware, then it moved to the excellent Soekris line, with some cool single board computers thrown in the mix. Recently I’ve been running OpenBSD Octeon on the Ubiquiti Edge Router Lite, an amazing little piece of kit at an amazing price point.

Err codemadness.org 70 i 36465
Err codemadness.org 70 i 36466 Err codemadness.org 70 i 36467
    Err codemadness.org 70 i 36468
  • Upgrade Time!
  • Err codemadness.org 70 i 36469
Err codemadness.org 70 i 36470 Err codemadness.org 70 i 36471
Err codemadness.org 70 i 36472

This setup has served me for some time and I’ve been extremely happy with it. But, in the #firstworldproblems category, I recently upgraded the household to the amazing Gigabit fibre offering from Sonic. A great problem to have, but also too much of a problem for the little Edge Router Lite (ERL).
Err codemadness.org 70 i 36473 The way the OpenBSD PF firewall works, it’s only able to process packets on a single core. Not a problem for the dual-core 500 MHz ERL when you’re pushing under ~200 Mbps, but more of a problem when you’re trying to push 1000 Mbps.
Err codemadness.org 70 i 36474 I needed something that was faster on a per core basis but still satisfied my usual firewall requirements. Loosely:

Err codemadness.org 70 i 36475
Err codemadness.org 70 i 36476 Err codemadness.org 70 i 36477
    Err codemadness.org 70 i 36478
  • small form factor
  • Err codemadness.org 70 i 36479
  • fan-less
  • Err codemadness.org 70 i 36480
  • multiple Intel Ethernet ports (good driver support)
  • Err codemadness.org 70 i 36481
  • low power consumption
  • Err codemadness.org 70 i 36482
  • not your regular off-the-shelf kit
  • Err codemadness.org 70 i 36483
  • relatively inexpensive
  • Err codemadness.org 70 i 36484
Err codemadness.org 70 i 36485 Err codemadness.org 70 i 36486
Err codemadness.org 70 i 36487

After evaluating a LOT of different options I settled on the Protectli Vault FW2B. With the specs required for the firewall (2 GB RAM and 8 GB drive) it comes in at a mere $239 USD! Installation of OpenBSD 6.4 was pretty straight forward, with the only problem I had was Etcher did not want to recognize the ‘.fs’ extension on the install image as bootable image. I quickly fixed this with good old Unix dd(1) on the Mac. Everything else was incredibly smooth.
Err codemadness.org 70 i 36488 After loading the same rulesets on my new install, the results were fantastic!

Err codemadness.org 70 i 36489
Err codemadness.org 70 i 36490 Err codemadness.org 70 i 36491
    Err codemadness.org 70 i 36492
  • Monitoring
  • Err codemadness.org 70 i 36493
Err codemadness.org 70 i 36494 Err codemadness.org 70 i 36495
Err codemadness.org 70 i 36496

Now that the machine was up and running (and fast!), I wanted to know what it was doing. Over the years, I’ve always relied on the venerable pfstat software to give me an overview of my traffic, blocked packets, etc. It looks like this:
Err codemadness.org 70 i 36497 As you can see it’s based on RRDtool, which was simply incredible in its time. Having worked on monitoring almost continuously for almost the past decade, I wanted to see if we could re-implement the same functionality using more modern tools as RRDtool and pfstat definitely have their limitations. This might be an opportunity to learn some new things as well.
Err codemadness.org 70 i 36498 I came across pf-graphite which seemed to be a great start! He had everything I needed and I added a few more stats from the detailed interface statistics and the ability for the code to exit for running from cron(8), which is a bit more OpenBSD style. I added code for sending to some SaaS metrics platforms but ultimately stuck with straight Graphite. One important thing to note was to use the Graphite pickle port (2004) instead of the default plaintext port for submission. Also you will need to set a loginterface in your ‘pf.conf’.
Err codemadness.org 70 i 36499 A bit of tweaking with Graphite and Grafana, and I had a pretty darn good recreation of my original PF stats dashboard!
Err codemadness.org 70 i 36500 As you can see it’s based on RRDtool, which was simply incredible in its time. Having worked on monitoring almost continuously for almost the past decade, I wanted to see if we could re-implement the same functionality using more modern tools as RRDtool and pfstat definitely have their limitations. This might be an opportunity to learn some new things as well.
Err codemadness.org 70 i 36501 I came across pf-graphite which seemed to be a great start! He had everything I needed and I added a few more stats from the detailed interface statistics and the ability for the code to exit for running from cron(8), which is a bit more OpenBSD style. I added code for sending to some SaaS metrics platforms but ultimately stuck with straight Graphite. One important thing to note was to use the Graphite pickle port (2004) instead of the default plaintext port for submission. Also you will need to set a loginterface in your ‘pf.conf’.
Err codemadness.org 70 i 36502 A bit of tweaking with Graphite and Grafana, and I had a pretty darn good recreation of my original PF stats dashboard!

Err codemadness.org 70 i 36503
Err codemadness.org 70 i 36504 Err codemadness.org 70 i 36505

###The Source History of Cat

Err codemadness.org 70 i 36506 Err codemadness.org 70 i 36507
Err codemadness.org 70 i 36508

I once had a debate with members of my extended family about whether a computer science degree is a degree worth pursuing. I was in college at the time and trying to decide whether I should major in computer science. My aunt and a cousin of mine believed that I shouldn’t. They conceded that knowing how to program is of course a useful and lucrative thing, but they argued that the field of computer science advances so quickly that everything I learned would almost immediately be outdated. Better to pick up programming on the side and instead major in a field like economics or physics where the basic principles would be applicable throughout my lifetime.
Err codemadness.org 70 i 36509 I knew that my aunt and cousin were wrong and decided to major in computer science. (Sorry, aunt and cousin!) It is easy to see why the average person might believe that a field like computer science, or a profession like software engineering, completely reinvents itself every few years. We had personal computers, then the web, then phones, then machine learning… technology is always changing, so surely all the underlying principles and techniques change too. Of course, the amazing thing is how little actually changes. Most people, I’m sure, would be stunned to know just how old some of the important software on their computer really is. I’m not talking about flashy application software, admittedly—my copy of Firefox, the program I probably use the most on my computer, is not even two weeks old. But, if you pull up the manual page for something like grep, you will see that it has not been updated since 2010 (at least on MacOS). And the original version of grep was written in 1974, which in the computing world was back when dinosaurs roamed Silicon Valley. People (and programs) still depend on grep every day.
Err codemadness.org 70 i 36510 My aunt and cousin thought of computer technology as a series of increasingly elaborate sand castles supplanting one another after each high tide clears the beach. The reality, at least in many areas, is that we steadily accumulate programs that have solved problems. We might have to occasionally modify these programs to avoid software rot, but otherwise they can be left alone. grep is a simple program that solves a still-relevant problem, so it survives. Most application programming is done at a very high level, atop a pyramid of much older code solving much older problems. The ideas and concepts of 30 or 40 years ago, far from being obsolete today, have in many cases been embodied in software that you can still find installed on your laptop.
Err codemadness.org 70 i 36511 I thought it would be interesting to take a look at one such old program and see how much it had changed since it was first written. cat is maybe the simplest of all the Unix utilities, so I’m going to use it as my example. Ken Thompson wrote the original implementation of cat in 1969. If I were to tell somebody that I have a program on my computer from 1969, would that be accurate? How much has cat really evolved over the decades? How old is the software on our computers?
Err codemadness.org 70 i 36512 Thanks to repositories like this one, we can see exactly how cat has evolved since 1969. I’m going to focus on implementations of cat that are ancestors of the implementation I have on my Macbook. You will see, as we trace cat from the first versions of Unix down to the cat in MacOS today, that the program has been rewritten more times than you might expect—but it ultimately works more or less the same way it did fifty years ago.

Err codemadness.org 70 i 36513
Err codemadness.org 70 i 36514 Err codemadness.org 70 i 36515
    Err codemadness.org 70 i 36516
  • Research Unix
  • Err codemadness.org 70 i 36517
Err codemadness.org 70 i 36518 Err codemadness.org 70 i 36519
Err codemadness.org 70 i 36520

Ken Thompson and Dennis Ritchie began writing Unix on a PDP 7. This was in 1969, before C, so all of the early Unix software was written in PDP 7 assembly. The exact flavor of assembly they used was unique to Unix, since Ken Thompson wrote his own assembler that added some features on top of the assembler provided by DEC, the PDP 7’s manufacturer. Thompson’s changes are all documented in the original Unix Programmer’s Manual under the entry for as, the assembler.
Err codemadness.org 70 i 36521 The first implementation of cat is thus in PDP 7 assembly. I’ve added comments that try to explain what each instruction is doing, but the program is still difficult to follow unless you understand some of the extensions Thompson made while writing his assembler. There are two important ones. First, the ; character can be used to separate multiple statements on the same line. It appears that this was used most often to put system call arguments on the same line as the sys instruction. Second, Thompson added support for “temporary labels” using the digits 0 through 9. These are labels that can be reused throughout a program, thus being, according to the Unix Programmer’s Manual, “less taxing both on the imagination of the programmer and on the symbol space of the assembler.” From any given instruction, you can refer to the next or most recent temporary label n using nf and nb respectively. For example, if you have some code in a block labeled 1:, you can jump back to that block from further down by using the instruction jmp 1b. (But you cannot jump forward to that block from above without using jmp 1f instead.)
Err codemadness.org 70 i 36522 The most interesting thing about this first version of cat is that it contains two names we should recognize. There is a block of instructions labeled getc and a block of instructions labeled putc, demonstrating that these names are older than the C standard library. The first version of cat actually contained implementations of both functions. The implementations buffered input so that reads and writes were not done a character at a time.
Err codemadness.org 70 i 36523 The first version of cat did not last long. Ken Thompson and Dennis Ritchie were able to persuade Bell Labs to buy them a PDP 11 so that they could continue to expand and improve Unix. The PDP 11 had a different instruction set, so cat had to be rewritten. I’ve marked up this second version of cat with comments as well. It uses new assembler mnemonics for the new instruction set and takes advantage of the PDP 11’s various addressing modes. (If you are confused by the parentheses and dollar signs in the source code, those are used to indicate different addressing modes.) But it also leverages the ; character and temporary labels just like the first version of cat, meaning that these features must have been retained when as was adapted for the PDP 11.
Err codemadness.org 70 i 36524 The second version of cat is significantly simpler than the first. It is also more “Unix-y” in that it doesn’t just expect a list of filename arguments—it will, when given no arguments, read from stdin, which is what cat still does today. You can also give this version of cat an argument of - to indicate that it should read from stdin.
Err codemadness.org 70 i 36525 In 1973, in preparation for the release of the Fourth Edition of Unix, much of Unix was rewritten in C. But cat does not seem to have been rewritten in C until a while after that. The first C implementation of cat only shows up in the Seventh Edition of Unix. This implementation is really fun to look through because it is so simple. Of all the implementations to follow, this one most resembles the idealized cat used as a pedagogic demonstration in K&R C. The heart of the program is the classic two-liner:

Err codemadness.org 70 i 36526
Err codemadness.org 70 i 36527 Err codemadness.org 70 i 36528

while ((c = getc(fi)) != EOF)
Err codemadness.org 70 i 36529 putchar(c);

Err codemadness.org 70 i 36530 Err codemadness.org 70 i 36531
Err codemadness.org 70 i 36532

There is of course quite a bit more code than that, but the extra code is mostly there to ensure that you aren’t reading and writing to the same file. The other interesting thing to note is that this implementation of cat only recognized one flag, -u. The -u flag could be used to avoid buffering input and output, which cat would otherwise do in blocks of 512 bytes.

Err codemadness.org 70 i 36533
Err codemadness.org 70 i 36534 Err codemadness.org 70 i 36535
    Err codemadness.org 70 i 36536
  • BSD
  • Err codemadness.org 70 i 36537
Err codemadness.org 70 i 36538 Err codemadness.org 70 i 36539
Err codemadness.org 70 i 36540

After the Seventh Edition, Unix spawned all sorts of derivatives and offshoots. MacOS is built on top of Darwin, which in turn is derived from the Berkeley Software Distribution (BSD), so BSD is the Unix offshoot we are most interested in. BSD was originally just a collection of useful programs and add-ons for Unix, but it eventually became a complete operating system. BSD seems to have relied on the original cat implementation up until the fourth BSD release, known as 4BSD, when support was added for a whole slew of new flags. The 4BSD implementation of cat is clearly derived from the original implementation, though it adds a new function to implement the behavior triggered by the new flags. The naming conventions already used in the file were adhered to—the fflg variable, used to mark whether input was being read from stdin or a file, was joined by nflg, bflg, vflg, sflg, eflg, and tflg, all there to record whether or not each new flag was supplied in the invocation of the program. These were the last command-line flags added to cat; the man page for cat today lists these flags and no others, at least on Mac OS. 4BSD was released in 1980, so this set of flags is 38 years old.
Err codemadness.org 70 i 36541 cat would be entirely rewritten a final time for BSD Net/2, which was, among other things, an attempt to avoid licensing issues by replacing all AT&T Unix-derived code with new code. BSD Net/2 was released in 1991. This final rewrite of cat was done by Kevin Fall, who graduated from Berkeley in 1988 and spent the next year working as a staff member at the Computer Systems Research Group (CSRG). Fall told me that a list of Unix utilities still implemented using AT&T code was put up on a wall at CSRG and staff were told to pick the utilities they wanted to reimplement. Fall picked cat and mknod. The cat implementation bundled with MacOS today is built from a source file that still bears his name at the very top. His version of cat, even though it is a relatively trivial program, is today used by millions.
Err codemadness.org 70 i 36542 Fall’s original implementation of cat is much longer than anything we have seen so far. Other than support for a -? help flag, it adds nothing in the way of new functionality. Conceptually, it is very similar to the 4BSD implementation. It is only longer because Fall separates the implementation into a “raw” mode and a “cooked” mode. The “raw” mode is cat classic; it prints a file character for character. The “cooked” mode is cat with all the 4BSD command-line options. The distinction makes sense but it also pads out the implementation so that it seems more complex at first glance than it actually is. There is also a fancy error handling function at the end of the file that further adds to its length.

Err codemadness.org 70 i 36543
Err codemadness.org 70 i 36544 Err codemadness.org 70 i 36545
    Err codemadness.org 70 i 36546
  • MacOS
  • Err codemadness.org 70 i 36547
Err codemadness.org 70 i 36548 Err codemadness.org 70 i 36549
Err codemadness.org 70 i 36550

The very first release of Mac OS X thus includes an implementation of cat pulled from the NetBSD project. So the first Mac OS X implementation of cat is Kevin Fall’s cat. The only thing that had changed over the intervening decade was that Fall’s error-handling function err() was removed and the err() function made available by err.h was used in its place. err.h is a BSD extension to the C standard library.
Err codemadness.org 70 i 36551 The NetBSD implementation of cat was later swapped out for FreeBSD’s implementation of cat. According to Wikipedia, Apple began using FreeBSD instead of NetBSD in Mac OS X 10.3 (Panther). But the Mac OS X implementation of cat, according to Apple’s own open source releases, was not replaced until Mac OS X 10.5 (Leopard) was released in 2007. The FreeBSD implementation that Apple swapped in for the Leopard release is the same implementation on Apple computers today. As of 2018, the implementation has not been updated or changed at all since 2007.
Err codemadness.org 70 i 36552 So the Mac OS cat is old. As it happens, it is actually two years older than its 2007 appearance in MacOS X would suggest. This 2005 change, which is visible in FreeBSD’s Github mirror, was the last change made to FreeBSD’s cat before Apple pulled it into Mac OS X. So the Mac OS X cat implementation, which has not been kept in sync with FreeBSD’s cat implementation, is officially 13 years old. There’s a larger debate to be had about how much software can change before it really counts as the same software; in this case, the source file has not changed at all since 2005.
Err codemadness.org 70 i 36553 The cat implementation used by Mac OS today is not that different from the implementation that Fall wrote for the 1991 BSD Net/2 release. The biggest difference is that a whole new function was added to provide Unix domain socket support. At some point, a FreeBSD developer also seems to have decided that Fall’s raw_args() function and cook_args() should be combined into a single function called scanfiles(). Otherwise, the heart of the program is still Fall’s code.
Err codemadness.org 70 i 36554 I asked Fall how he felt about having written the cat implementation now used by millions of Apple users, either directly or indirectly through some program that relies on cat being present. Fall, who is now a consultant and a co-author of the most recent editions of TCP/IP Illustrated, says that he is surprised when people get such a thrill out of learning about his work on cat. Fall has had a long career in computing and has worked on many high-profile projects, but it seems that many people still get most excited about the six months of work he put into rewriting cat in 1989.

Err codemadness.org 70 i 36555
Err codemadness.org 70 i 36556 Err codemadness.org 70 i 36557
    Err codemadness.org 70 i 36558
  • The Hundred-Year-Old Program
  • Err codemadness.org 70 i 36559
Err codemadness.org 70 i 36560 Err codemadness.org 70 i 36561
Err codemadness.org 70 i 36562

In the grand scheme of things, computers are not an old invention. We’re used to hundred-year-old photographs or even hundred-year-old camera footage. But computer programs are in a different category—they’re high-tech and new. At least, they are now. As the computing industry matures, will we someday find ourselves using programs that approach the hundred-year-old mark?
Err codemadness.org 70 i 36563 Computer hardware will presumably change enough that we won’t be able to take an executable compiled today and run it on hardware a century from now. Perhaps advances in programming language design will also mean that nobody will understand C in the future and cat will have long since been rewritten in another language. (Though C has already been around for fifty years, and it doesn’t look like it is about to be replaced any time soon.) But barring all that, why not just keep using the cat we have forever?
Err codemadness.org 70 i 36564 I think the history of cat shows that some ideas in computer science are in fact very durable. Indeed, with cat, both the idea and the program itself are old. It may not be accurate to say that the cat on my computer is from 1969. But I could make a case for saying that the cat on my computer is from 1989, when Fall wrote his implementation of cat. Lots of other software is just as ancient. So maybe we shouldn’t think of computer science and software development primarily as fields that disrupt the status quo and invent new things. Our computer systems are built out of historical artifacts. At some point, we may all spend more time trying to understand and maintain those historical artifacts than we spend writing new code.

Err codemadness.org 70 i 36565
Err codemadness.org 70 i 36566 Err codemadness.org 70 i 36567


Err codemadness.org 70 i 36568 Err codemadness.org 70 i 36569

##News Roundup
Err codemadness.org 70 i 36570 ###Trivial Bug in X.Org Gives Root Permission on Linux and BSD Systems

Err codemadness.org 70 i 36571 Err codemadness.org 70 i 36572
Err codemadness.org 70 i 36573

A vulnerability that is trivial to exploit allows privilege escalation to root level on Linux and BSD distributions using X.Org server, the open source implementation of the X Window System that offers the graphical environment.
Err codemadness.org 70 i 36574 The flaw is now identified as CVE-2018-14665 (credited to security researcher Narendra Shinde). It has been present in xorg-server for two years, since version 1.19.0 and is exploitable by a limited user as long as the X server runs with elevated permissions.

Err codemadness.org 70 i 36575
Err codemadness.org 70 i 36576 Err codemadness.org 70 i 36577
    Err codemadness.org 70 i 36578
  • Privilege escalation and arbitrary file overwrite
  • Err codemadness.org 70 i 36579
Err codemadness.org 70 i 36580 Err codemadness.org 70 i 36581
Err codemadness.org 70 i 36582

An advisory on Thursday describes the problem as an “incorrect command-line parameter validation” that also allows an attacker to overwrite arbitrary files.
Err codemadness.org 70 i 36583 Privilege escalation can be accomplished via the -modulepath argument by setting an insecure path to modules loaded by the X.org server. Arbitrary file overwrite is possible through the -logfile argument, because of improper verification when parsing the option.

Err codemadness.org 70 i 36584
Err codemadness.org 70 i 36585 Err codemadness.org 70 i 36586
    Err codemadness.org 70 i 36587
  • Bug could have been avoided in OpenBSD 6.4
  • Err codemadness.org 70 i 36588
Err codemadness.org 70 i 36589 Err codemadness.org 70 i 36590
Err codemadness.org 70 i 36591

OpenBSD, the free and open-source operating system with a strong focus on security, uses xorg. On October 18, the project released version 6.4 of the OS, affected by CVE-2018-14665. This could have been avoided, though.
Err codemadness.org 70 i 36592 Theo de Raadt, founder and leader of the OpenBSD project, says that X maintainer knew about the problem since at least October 11. For some reason, the OpenBSD developers received the message one hour before the public announcement this Thursday, a week after their new OS release.
Err codemadness.org 70 i 36593 “As yet we don’t have answers about why our X maintainer (on the X security team) and his team provided information to other projects (some who don’t even ship with this new X server) but chose to not give us a heads-up which could have saved all the new 6.4 users a lot of grief,” Raadt says.
Err codemadness.org 70 i 36594 Had OpenBSD developers known about the bug before the release, they could have taken steps to mitigate the problem or delay the launch for a week or two.
Err codemadness.org 70 i 36595 To remedy the problem, the OpenBSD project provides a source code patch, which requires compiling and rebuilding the X server.
Err codemadness.org 70 i 36596 As a temporary solution, users can disable the Xorg binary by running the following command:

Err codemadness.org 70 i 36597
Err codemadness.org 70 i 36598 Err codemadness.org 70 i 36599

chmod u-s /usr/X11R6/bin/Xorg

Err codemadness.org 70 i 36600 Err codemadness.org 70 i 36601
    Err codemadness.org 70 i 36602
  • Trivial exploitation
  • Err codemadness.org 70 i 36603
Err codemadness.org 70 i 36604 Err codemadness.org 70 i 36605
Err codemadness.org 70 i 36606

CVE-2018-14665 does not help compromise systems, but it is useful in the following stages of an attack.
Err codemadness.org 70 i 36607 Leveraging it after gaining access to a vulnerable machine is fairly easy. Matthew Hickey, co-founder, and head of Hacker House security outfit created and published an exploit, saying that it can be triggered from a remote SSH session.
Err codemadness.org 70 i 36608 Three hours after the public announcement of the security gap, Daemon Security CEO Michael Shirk replied with one line that overwrote shadow files on the system. Hickey did one better and fit the entire local privilege escalation exploit in one line.
Err codemadness.org 70 i 36609 Apart from OpenBSD, other operating systems affected by the bug include Debian and Ubuntu, Fedora and its downstream distro Red Hat Enterprise Linux along with its community-supported counterpart CentOS.

Err codemadness.org 70 i 36610
Err codemadness.org 70 i 36611 Err codemadness.org 70 i 36612


Err codemadness.org 70 i 36613 Err codemadness.org 70 i 36614

###OpenBSD on the Desktop: some thoughts

Err codemadness.org 70 i 36615 Err codemadness.org 70 i 36616
Err codemadness.org 70 i 36617

I’ve been using OpenBSD on my ThinkPad X230 for some weeks now, and the experience has been peculiar in some ways.
Err codemadness.org 70 i 36618 The OS itself in my opinion is not ready for widespread desktop usage, and the development team is not trying to push it in the throat of anybody who wants a Windows or macOS alternative.
Err codemadness.org 70 i 36619 You need to understand a little bit of how *NIX systems work, because you’ll use CLI more than UI.
Err codemadness.org 70 i 36620 That’s not necessarily bad, and I’m sure I learned a trick or two that could translate easily to Linux or macOS.
Err codemadness.org 70 i 36621 Their development process is purely based on developers that love to contribute and hack around, just because it’s fun.
Err codemadness.org 70 i 36622 Even the mailing list is a cool place to hang on!
Err codemadness.org 70 i 36623 Code correctness and security are a must, nothing gets committed if it doesn’t get reviewed thoroughly first - nowadays the first two properties should be enforced in every major operating system.
Err codemadness.org 70 i 36624 I like the idea of a platform that continually evolves.
Err codemadness.org 70 i 36625 pledge(2) and unveil(2) are the proof that with a little effort, you can secure existing software better than ever.
Err codemadness.org 70 i 36626 I like the “sensible defaults” approach, having an OS ready to be used - UI included if you selected it during the setup process - is great.
Err codemadness.org 70 i 36627 Just install a browser and you’re ready to go.
Err codemadness.org 70 i 36628 Manual pages on OpenBSD are real manuals, not an extension of the “–help” command found in most CLI softwares.
Err codemadness.org 70 i 36629 They help you understand inner workings of the operating system, no internet connection needed.
Err codemadness.org 70 i 36630 There are some trade-offs, too.
Err codemadness.org 70 i 36631 Performance is not first-class, mostly because of all the security mitigations and checks done at runtime3.
Err codemadness.org 70 i 36632 I write Go code in neovim, and sometimes you can feel a slight slowdown when you’re compiling and editing multiple files at the same time, but usually I can’t notice any meaningful difference.
Err codemadness.org 70 i 36633 Browsers are a different matter though, you can definitely feel something differs from the experience you can have on mainstream operating systems.
Err codemadness.org 70 i 36634 But again, trade-offs.
Err codemadness.org 70 i 36635 To use OpenBSD on the desktop you must be ready to sacrifice some of the goodies of mainstream OSes, but if you’re searching for a zen place to do your computing stuff, it’s the best you can get right now.

Err codemadness.org 70 i 36636
Err codemadness.org 70 i 36637 Err codemadness.org 70 i 36638


Err codemadness.org 70 i 36639 Err codemadness.org 70 i 36640

###Review: NomadBSD 1.1

Err codemadness.org 70 i 36641 Err codemadness.org 70 i 36642
Err codemadness.org 70 i 36643

One of the most recent additions to the DistroWatch database is NomadBSD. According to the NomadBSD website: “NomadBSD is a 64-bit live system for USB flash drives, based on FreeBSD. Together with automatic hardware detection and setup, it is configured to be used as a desktop system that works out of the box, but can also be used for data recovery.”
Err codemadness.org 70 i 36644 The latest release of NomadBSD (or simply “Nomad”, as I will refer to the project in this review) is version 1.1. It is based on FreeBSD 11.2 and is offered in two builds, one for generic personal computers and one for Macbooks. The release announcement mentions version 1.1 offers improved video driver support for Intel and AMD cards. The operating system ships with Octopkg for graphical package management and the system should automatically detect, and work with, VirtualBox environments.
Err codemadness.org 70 i 36645 Nomad 1.1 is available as a 2GB download, which we then decompress to produce a 4GB file which can be written to a USB thumb drive. There is no optical media build of Nomad as it is designed to be run entirely from the USB drive, and write data persistently to the drive, rather than simply being installed from the USB media.

Err codemadness.org 70 i 36646
Err codemadness.org 70 i 36647 Err codemadness.org 70 i 36648
    Err codemadness.org 70 i 36649
  • Initial setup
  • Err codemadness.org 70 i 36650
Err codemadness.org 70 i 36651 Err codemadness.org 70 i 36652
Err codemadness.org 70 i 36653

Booting from the USB drive brings up a series of text-based menus which ask us to configure key parts of the operating system. We are asked to select our time zone, keyboard layout, keyboard model, keyboard mapping and our preferred language. While we can select options from a list, the options tend to be short and cryptic. Rather than “English (US)”, for example, we might be given “en_US”. We are also asked to create a password for the root user account and another one for a regular user which is called “nomad”. We can then select which shell nomad will use. The default is zsh, but there are plenty of other options, including csh and bash. We have the option of encrypting our user’s home directory.
Err codemadness.org 70 i 36654 I feel it is important to point out that these settings, and nomad’s home directory, are stored on the USB drive. The options and settings we select will not be saved to our local hard drive and our configuration choices will not affect other operating systems already installed on our computer. At the end, the configuration wizard asks if we want to run the BSDstats service. This option is not explained at all, but it contacts BSDstats to provide some basic statistics on BSD users.
Err codemadness.org 70 i 36655 The system then takes a few minutes to apply its changes to the USB drive and automatically reboots the computer. While running the initial setup wizard, I had nearly identical experiences when running Nomad on a physical computer and running the operating system in a VirtualBox virtual machine. However, after the initial setup process was over, I had quite different experiences depending on the environment so I want to divide my experiences into two different sections.

Err codemadness.org 70 i 36656
Err codemadness.org 70 i 36657 Err codemadness.org 70 i 36658
    Err codemadness.org 70 i 36659
  • Physical desktop computer
  • Err codemadness.org 70 i 36660
Err codemadness.org 70 i 36661 Err codemadness.org 70 i 36662
Err codemadness.org 70 i 36663

At first, Nomad failed to boot on my desktop computer. From the operating system’s boot loader, I enabled Safe Mode which allowed Nomad to boot. At that point, Nomad was able to start up, but would only display a text console. The desktop environment failed to start when running in Safe Mode.
Err codemadness.org 70 i 36664 Networking was also disabled by default and I had to enable a network interface and DHCP address assignment to connect to the Internet. Instructions for enabling networking can be found in FreeBSD’s Handbook. Once we are on-line we can use the pkg command line package manager to install and update software. Had the desktop environment worked then the Octopkg graphical package manager would also be available to make browsing and installing software a point-n-click experience.
Err codemadness.org 70 i 36665 Had I been able to run the desktop for prolonged amounts of time I could have made use of such pre-installed items as the Firefox web browser, the VLC media player, LibreOffice and Thunderbird. Nomad offers a fairly small collection of desktop applications, but what is there is mostly popular, capable software.
Err codemadness.org 70 i 36666 When running the operating system I noted that, with one user logged in, Nomad only runs 15 processes with the default configuration. These processes require less than 100MB of RAM, and the whole system fits comfortably on a 4GB USB drive.

Err codemadness.org 70 i 36667
Err codemadness.org 70 i 36668 Err codemadness.org 70 i 36669
    Err codemadness.org 70 i 36670
  • Conclusions
  • Err codemadness.org 70 i 36671
Err codemadness.org 70 i 36672 Err codemadness.org 70 i 36673
Err codemadness.org 70 i 36674

Ultimately using Nomad was not a practical option for me. The operating system did not work well with my hardware, or the virtual environment. In the virtual machine, Nomad crashed consistently after just a few minutes of uptime. On the desktop computer, I could not get a desktop environment to run. The command line tools worked well, and the system performed tasks very quickly, but a command line only environment is not well suited to my workflow.
Err codemadness.org 70 i 36675 I like the idea of what NomadBSD is offering. There are not many live desktop flavours of FreeBSD, apart from GhostBSD. It was nice to see developers trying to make a FreeBSD-based, plug-and-go operating system that would offer a desktop and persistent storage. I suspect the system would work and perform its stated functions on different hardware, but in my case my experiment was necessarily short lived.

Err codemadness.org 70 i 36676
Err codemadness.org 70 i 36677 Err codemadness.org 70 i 36678


Err codemadness.org 70 i 36679 Err codemadness.org 70 i 36680

##Beastie Bits

Err codemadness.org 70 i 36681 Err codemadness.org 70 i 36682 Err codemadness.org 70 i 36694 Err codemadness.org 70 i 36695


Err codemadness.org 70 i 36696 Err codemadness.org 70 i 36697

##Feedback/Questions

Err codemadness.org 70 i 36698 Err codemadness.org 70 i 36699
Err codemadness.org 70 i 36709

Err codemadness.org 70 i 36710 Err codemadness.org 70 i 36711
    Err codemadness.org 70 i 36712
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 36713
Err codemadness.org 70 i 36714 Err codemadness.org 70 i 36715


]]> Err codemadness.org 70 i 36716
Err codemadness.org 70 i 36717 Err codemadness.org 70 i 36718 Thoughts on NetBSD 8.0, Monitoring love for a GigaBit OpenBSD firewall, cat’s source history, X.org root permission bug, thoughts on OpenBSD as a desktop, and NomadBSD review.

Err codemadness.org 70 i 36719 Err codemadness.org 70 i 36720

##Headlines
Err codemadness.org 70 i 36721 ###Some thoughts on NetBSD 8.0

Err codemadness.org 70 i 36722 Err codemadness.org 70 i 36723
Err codemadness.org 70 i 36724

NetBSD is a highly portable operating system which can be run on dozens of different hardware architectures. The operating system’s clean and minimal design allow it to be run in all sorts of environments, ranging from embedded devices, to servers, to workstations. While the base operating system is minimal, NetBSD users have access to a large repository of binary packages and a ports tree which I will touch upon later.
Err codemadness.org 70 i 36725 I last tried NetBSD 7.0 about three years ago and decided it was time to test drive the operating system again. In the past three years NetBSD has introduced a few new features, many of them security enhancements. For example, NetBSD now supports write exclusive-or execute (W^X) protection and address space layout randomization (ASLR) to protect programs against common attacks. NetBSD 8.0 also includes USB3 support and the ability to work with ZFS storage volumes.

Err codemadness.org 70 i 36726
Err codemadness.org 70 i 36727 Err codemadness.org 70 i 36728
    Err codemadness.org 70 i 36729
  • Early impressions
  • Err codemadness.org 70 i 36730
Err codemadness.org 70 i 36731 Err codemadness.org 70 i 36732
Err codemadness.org 70 i 36733

Since I had set up NetBSD with a Full install and enabled xdm during the setup process, the operating system booted to a graphical login screen. From here we can sign into our account. The login screen does not provide options to shut down or restart the computer. Logging into our account brings up the twm window manager and provides a virtual terminal, courtesy of xterm. There is a panel that provides a method for logging out of the window manager. The twm environment is sparse, fast and devoid of distractions.

Err codemadness.org 70 i 36734
Err codemadness.org 70 i 36735 Err codemadness.org 70 i 36736
    Err codemadness.org 70 i 36737
  • Software management
  • Err codemadness.org 70 i 36738
Err codemadness.org 70 i 36739 Err codemadness.org 70 i 36740
Err codemadness.org 70 i 36741

NetBSD ships with a fairly standard collection of command line tools and manual pages, but otherwise it is a fairly minimal platform. If we want to run network services, have access to a web browser, or use a word processor we are going to need to install more software. There are two main approaches to installing new packages. The first, and easier approach, is to use the pkgin package manager. The pkgin utility works much the same way APT or DNF work in the Linux world, or as pkg works on FreeBSD. We can search for software by name, install or remove items. I found pkgin worked well, though its output can be terse. My only complaint with pkgin is that it does not handle “close enough” package names. For example, if I tried to run “pkgin install vlc” or “pkgin install firefox” I would quickly be told these items did not exist. But a more forgiving package manager will realize items like vlc2 or firefox45 are available and offer to install those.
Err codemadness.org 70 i 36742 The pkgin tool installs new programs in the /usr/pkg/bin directory. Depending on your configuration and shell, this location may not be in your user’s path, and it will be helpful to adjust your PATH variable accordingly.
Err codemadness.org 70 i 36743 The other common approach to acquiring new software is to use the pkgsrc framework. I have talked about using pkgsrc before and I will skip the details. Basically, we can download a collection of recipes for building popular open source software and run a command to download and install these items from their source code. Using pkgsrc basically gives us the same software as using pkgin would, but with some added flexibility on the options we use.
Err codemadness.org 70 i 36744 Once new software has been installed, it may need to be enabled and activated, particularly if it uses (or is) a background service. New items can be enabled in the /etc/rc.conf file and started or stopped using the service command. This works about the same as the service command on FreeBSD and most non-systemd Linux distributions.

Err codemadness.org 70 i 36745
Err codemadness.org 70 i 36746 Err codemadness.org 70 i 36747
    Err codemadness.org 70 i 36748
  • Hardware
  • Err codemadness.org 70 i 36749
Err codemadness.org 70 i 36750 Err codemadness.org 70 i 36751
Err codemadness.org 70 i 36752

I found that, when logged into the twm environment, NetBSD used about 130MB of RAM. This included kernel memory and all active memory. A fresh, Full install used up 1.5GB of disk space. I generally found NetBSD ran well in both VirtualBox and on my desktop computer. The system was quick and stable. I did have trouble getting a higher screen resolution in both environments. NetBSD does not offer VirtualBox add-on modules. There are NetBSD patches for VirtualBox out there, but there is some manual work involved in getting them working. When running on my desktop computer I think the resolution issue was one of finding and dealing with the correct video driver. Screen resolution aside, NetBSD performed well and detected all my hardware.

Err codemadness.org 70 i 36753
Err codemadness.org 70 i 36754 Err codemadness.org 70 i 36755
    Err codemadness.org 70 i 36756
  • Personal projects
  • Err codemadness.org 70 i 36757
Err codemadness.org 70 i 36758 Err codemadness.org 70 i 36759
Err codemadness.org 70 i 36760

Since NetBSD provides users with a small, core operating system without many utilities if we want to use NetBSD for something we need to have a project in mind. I had four mini projects in mind I wanted to try this week: install a desktop environment, enable file sharing for computers on the local network, test multimedia (video, audio and YouTube capabilities), and set up a ZFS volume for storage.
Err codemadness.org 70 i 36761 I began with the desktop. Specifically, I followed the same tutorial I used three years ago to try to set up the Xfce desktop. While Xfce and its supporting services installed, I was unable to get a working desktop out of the experience. I could get the Xfce window manager working, but not the entire session. This tutorial worked beautifully with NetBSD 7.0, but not with version 8.0. Undeterred, I switched gears and installed Fluxbox instead. This gave me a slightly more powerful graphical environment than what I had before with twm while maintaining performance. Fluxbox ran without any problems, though its application menu was automatically populated with many programs which were not actually installed.
Err codemadness.org 70 i 36762 Next, I tried installing a few multimedia applications to play audio and video files. Here I ran into a couple of interesting problems. I found the music players I installed would play audio files, but the audio was quite slow. It always sounded like a cassette tape dragging. When I tried to play a video, the entire graphical session would crash, taking me back to the login screen. When I installed Firefox, I found I could play YouTube videos, and the video played smoothly, but again the audio was unusually slow.
Err codemadness.org 70 i 36763 I set up two methods of sharing files on the local network: OpenSSH and FTP. NetBSD basically gives us OpenSSH for free at install time and I added an FTP server through the pkgin package manager which worked beautifully with its default configuration.
Err codemadness.org 70 i 36764 I experimented with ZFS support a little, just enough to confirm I could create and access ZFS volumes. ZFS seems to work on NetBSD just as well, and with the same basic features, as it does on FreeBSD and mainstream Linux distributions. I think this is a good feature for the portable operating system to have since it means we can stick NetBSD on nearly any networked computer and use it as a NAS.

Err codemadness.org 70 i 36765
Err codemadness.org 70 i 36766 Err codemadness.org 70 i 36767
    Err codemadness.org 70 i 36768
  • Conclusions
  • Err codemadness.org 70 i 36769
Err codemadness.org 70 i 36770 Err codemadness.org 70 i 36771
Err codemadness.org 70 i 36772

NetBSD, like its close cousins (FreeBSD and OpenBSD) does not do a lot of hand holding or automation. It offers a foundation that will run on most CPUs and we can choose to build on that foundation. I mention this because, on its own, NetBSD does not do much. If we want to get something out of it, we need to be willing to build on its foundation - we need a project. This is important to keep in mind as I think going into NetBSD and thinking, “Oh I’ll just explore around and expand on this as I go,” will likely lead to disappointment. I recommend figuring out what you want to do before installing NetBSD and making sure the required tools are available in the operating system’s repositories.
Err codemadness.org 70 i 36773 Some of the projects I embarked on this week (using ZFS and setting up file sharing) worked well. Others, like getting multimedia support and a full-featured desktop, did not. Given more time, I’m sure I could find a suitable desktop to install (along with the required documentation to get it and its services running), or customize one based on one of the available window managers. However, any full featured desktop is going to require some manual work. Media support was not great. The right players and codecs were there, but I was not able to get audio to play smoothly.
Err codemadness.org 70 i 36774 My main complaint with NetBSD relates to my struggle to get some features working to my satisfaction: the documentation is scattered. There are four different sections of the project’s website for documentation (FAQs, The Guide, manual pages and the wiki). Whatever we are looking for is likely to be in one of those, but which one? Or, just as likely, the tutorial we want is not there, but is on a forum or blog somewhere. I found that the documentation provided was often thin, more of a quick reference to remind people how something works rather than a full explanation.
Err codemadness.org 70 i 36775 As an example, I found a couple of documents relating to setting up a firewall. One dealt with networking NetBSD on a LAN, another explored IPv6 support, but neither gave an overview on syntax or a basic guide to blocking all but one or two ports. It seemed like that information should already be known, or picked up elsewhere.
Err codemadness.org 70 i 36776 Newcomers are likely to be a bit confused by software management guides for the same reason. Some pages refer to using a tool called pkg_add, others use pkgsrc and its make utility, others mention pkgin. Ultimately, these tools each give approximately the same result, but work differently and yet are mentioned almost interchangeably. I have used NetBSD before a few times and could stumble through these guides, but new users are likely to come away confused.
Err codemadness.org 70 i 36777 One quirk of NetBSD, which may be a security feature or an inconvenience, depending on one’s point of view, is super user programs are not included in regular users’ paths. This means we need to change our path if we want to be able to run programs typically used by root. For example, shutdown and mount are not in regular users’ paths by default. This made checking some things tricky for me.
Err codemadness.org 70 i 36778 Ultimately though, NetBSD is not famous for its convenience or features so much as its flexibility. The operating system will run on virtually any processor and should work almost identically across multiple platforms. That gives NetBSD users a good deal of consistency across a range of hardware and the chance to experiment with a member of the Unix family on hardware that might not be compatible with Linux or the other BSDs.

Err codemadness.org 70 i 36779
Err codemadness.org 70 i 36780 Err codemadness.org 70 i 36781


Err codemadness.org 70 i 36782 Err codemadness.org 70 i 36783

###Showing a Gigabit OpenBSD Firewall Some Monitoring Love

Err codemadness.org 70 i 36784 Err codemadness.org 70 i 36785
Err codemadness.org 70 i 36786

I have a pretty long history of running my home servers or firewalls on “exotic” hardware. At first, it was Sun Microsystem hardware, then it moved to the excellent Soekris line, with some cool single board computers thrown in the mix. Recently I’ve been running OpenBSD Octeon on the Ubiquiti Edge Router Lite, an amazing little piece of kit at an amazing price point.

Err codemadness.org 70 i 36787
Err codemadness.org 70 i 36788 Err codemadness.org 70 i 36789
    Err codemadness.org 70 i 36790
  • Upgrade Time!
  • Err codemadness.org 70 i 36791
Err codemadness.org 70 i 36792 Err codemadness.org 70 i 36793
Err codemadness.org 70 i 36794

This setup has served me for some time and I’ve been extremely happy with it. But, in the #firstworldproblems category, I recently upgraded the household to the amazing Gigabit fibre offering from Sonic. A great problem to have, but also too much of a problem for the little Edge Router Lite (ERL).
Err codemadness.org 70 i 36795 The way the OpenBSD PF firewall works, it’s only able to process packets on a single core. Not a problem for the dual-core 500 MHz ERL when you’re pushing under ~200 Mbps, but more of a problem when you’re trying to push 1000 Mbps.
Err codemadness.org 70 i 36796 I needed something that was faster on a per core basis but still satisfied my usual firewall requirements. Loosely:

Err codemadness.org 70 i 36797
Err codemadness.org 70 i 36798 Err codemadness.org 70 i 36799
    Err codemadness.org 70 i 36800
  • small form factor
  • Err codemadness.org 70 i 36801
  • fan-less
  • Err codemadness.org 70 i 36802
  • multiple Intel Ethernet ports (good driver support)
  • Err codemadness.org 70 i 36803
  • low power consumption
  • Err codemadness.org 70 i 36804
  • not your regular off-the-shelf kit
  • Err codemadness.org 70 i 36805
  • relatively inexpensive
  • Err codemadness.org 70 i 36806
Err codemadness.org 70 i 36807 Err codemadness.org 70 i 36808
Err codemadness.org 70 i 36809

After evaluating a LOT of different options I settled on the Protectli Vault FW2B. With the specs required for the firewall (2 GB RAM and 8 GB drive) it comes in at a mere $239 USD! Installation of OpenBSD 6.4 was pretty straight forward, with the only problem I had was Etcher did not want to recognize the ‘.fs’ extension on the install image as bootable image. I quickly fixed this with good old Unix dd(1) on the Mac. Everything else was incredibly smooth.
Err codemadness.org 70 i 36810 After loading the same rulesets on my new install, the results were fantastic!

Err codemadness.org 70 i 36811
Err codemadness.org 70 i 36812 Err codemadness.org 70 i 36813
    Err codemadness.org 70 i 36814
  • Monitoring
  • Err codemadness.org 70 i 36815
Err codemadness.org 70 i 36816 Err codemadness.org 70 i 36817
Err codemadness.org 70 i 36818

Now that the machine was up and running (and fast!), I wanted to know what it was doing. Over the years, I’ve always relied on the venerable pfstat software to give me an overview of my traffic, blocked packets, etc. It looks like this:
Err codemadness.org 70 i 36819 As you can see it’s based on RRDtool, which was simply incredible in its time. Having worked on monitoring almost continuously for almost the past decade, I wanted to see if we could re-implement the same functionality using more modern tools as RRDtool and pfstat definitely have their limitations. This might be an opportunity to learn some new things as well.
Err codemadness.org 70 i 36820 I came across pf-graphite which seemed to be a great start! He had everything I needed and I added a few more stats from the detailed interface statistics and the ability for the code to exit for running from cron(8), which is a bit more OpenBSD style. I added code for sending to some SaaS metrics platforms but ultimately stuck with straight Graphite. One important thing to note was to use the Graphite pickle port (2004) instead of the default plaintext port for submission. Also you will need to set a loginterface in your ‘pf.conf’.
Err codemadness.org 70 i 36821 A bit of tweaking with Graphite and Grafana, and I had a pretty darn good recreation of my original PF stats dashboard!
Err codemadness.org 70 i 36822 As you can see it’s based on RRDtool, which was simply incredible in its time. Having worked on monitoring almost continuously for almost the past decade, I wanted to see if we could re-implement the same functionality using more modern tools as RRDtool and pfstat definitely have their limitations. This might be an opportunity to learn some new things as well.
Err codemadness.org 70 i 36823 I came across pf-graphite which seemed to be a great start! He had everything I needed and I added a few more stats from the detailed interface statistics and the ability for the code to exit for running from cron(8), which is a bit more OpenBSD style. I added code for sending to some SaaS metrics platforms but ultimately stuck with straight Graphite. One important thing to note was to use the Graphite pickle port (2004) instead of the default plaintext port for submission. Also you will need to set a loginterface in your ‘pf.conf’.
Err codemadness.org 70 i 36824 A bit of tweaking with Graphite and Grafana, and I had a pretty darn good recreation of my original PF stats dashboard!

Err codemadness.org 70 i 36825
Err codemadness.org 70 i 36826 Err codemadness.org 70 i 36827

###The Source History of Cat

Err codemadness.org 70 i 36828 Err codemadness.org 70 i 36829
Err codemadness.org 70 i 36830

I once had a debate with members of my extended family about whether a computer science degree is a degree worth pursuing. I was in college at the time and trying to decide whether I should major in computer science. My aunt and a cousin of mine believed that I shouldn’t. They conceded that knowing how to program is of course a useful and lucrative thing, but they argued that the field of computer science advances so quickly that everything I learned would almost immediately be outdated. Better to pick up programming on the side and instead major in a field like economics or physics where the basic principles would be applicable throughout my lifetime.
Err codemadness.org 70 i 36831 I knew that my aunt and cousin were wrong and decided to major in computer science. (Sorry, aunt and cousin!) It is easy to see why the average person might believe that a field like computer science, or a profession like software engineering, completely reinvents itself every few years. We had personal computers, then the web, then phones, then machine learning… technology is always changing, so surely all the underlying principles and techniques change too. Of course, the amazing thing is how little actually changes. Most people, I’m sure, would be stunned to know just how old some of the important software on their computer really is. I’m not talking about flashy application software, admittedly—my copy of Firefox, the program I probably use the most on my computer, is not even two weeks old. But, if you pull up the manual page for something like grep, you will see that it has not been updated since 2010 (at least on MacOS). And the original version of grep was written in 1974, which in the computing world was back when dinosaurs roamed Silicon Valley. People (and programs) still depend on grep every day.
Err codemadness.org 70 i 36832 My aunt and cousin thought of computer technology as a series of increasingly elaborate sand castles supplanting one another after each high tide clears the beach. The reality, at least in many areas, is that we steadily accumulate programs that have solved problems. We might have to occasionally modify these programs to avoid software rot, but otherwise they can be left alone. grep is a simple program that solves a still-relevant problem, so it survives. Most application programming is done at a very high level, atop a pyramid of much older code solving much older problems. The ideas and concepts of 30 or 40 years ago, far from being obsolete today, have in many cases been embodied in software that you can still find installed on your laptop.
Err codemadness.org 70 i 36833 I thought it would be interesting to take a look at one such old program and see how much it had changed since it was first written. cat is maybe the simplest of all the Unix utilities, so I’m going to use it as my example. Ken Thompson wrote the original implementation of cat in 1969. If I were to tell somebody that I have a program on my computer from 1969, would that be accurate? How much has cat really evolved over the decades? How old is the software on our computers?
Err codemadness.org 70 i 36834 Thanks to repositories like this one, we can see exactly how cat has evolved since 1969. I’m going to focus on implementations of cat that are ancestors of the implementation I have on my Macbook. You will see, as we trace cat from the first versions of Unix down to the cat in MacOS today, that the program has been rewritten more times than you might expect—but it ultimately works more or less the same way it did fifty years ago.

Err codemadness.org 70 i 36835
Err codemadness.org 70 i 36836 Err codemadness.org 70 i 36837
    Err codemadness.org 70 i 36838
  • Research Unix
  • Err codemadness.org 70 i 36839
Err codemadness.org 70 i 36840 Err codemadness.org 70 i 36841
Err codemadness.org 70 i 36842

Ken Thompson and Dennis Ritchie began writing Unix on a PDP 7. This was in 1969, before C, so all of the early Unix software was written in PDP 7 assembly. The exact flavor of assembly they used was unique to Unix, since Ken Thompson wrote his own assembler that added some features on top of the assembler provided by DEC, the PDP 7’s manufacturer. Thompson’s changes are all documented in the original Unix Programmer’s Manual under the entry for as, the assembler.
Err codemadness.org 70 i 36843 The first implementation of cat is thus in PDP 7 assembly. I’ve added comments that try to explain what each instruction is doing, but the program is still difficult to follow unless you understand some of the extensions Thompson made while writing his assembler. There are two important ones. First, the ; character can be used to separate multiple statements on the same line. It appears that this was used most often to put system call arguments on the same line as the sys instruction. Second, Thompson added support for “temporary labels” using the digits 0 through 9. These are labels that can be reused throughout a program, thus being, according to the Unix Programmer’s Manual, “less taxing both on the imagination of the programmer and on the symbol space of the assembler.” From any given instruction, you can refer to the next or most recent temporary label n using nf and nb respectively. For example, if you have some code in a block labeled 1:, you can jump back to that block from further down by using the instruction jmp 1b. (But you cannot jump forward to that block from above without using jmp 1f instead.)
Err codemadness.org 70 i 36844 The most interesting thing about this first version of cat is that it contains two names we should recognize. There is a block of instructions labeled getc and a block of instructions labeled putc, demonstrating that these names are older than the C standard library. The first version of cat actually contained implementations of both functions. The implementations buffered input so that reads and writes were not done a character at a time.
Err codemadness.org 70 i 36845 The first version of cat did not last long. Ken Thompson and Dennis Ritchie were able to persuade Bell Labs to buy them a PDP 11 so that they could continue to expand and improve Unix. The PDP 11 had a different instruction set, so cat had to be rewritten. I’ve marked up this second version of cat with comments as well. It uses new assembler mnemonics for the new instruction set and takes advantage of the PDP 11’s various addressing modes. (If you are confused by the parentheses and dollar signs in the source code, those are used to indicate different addressing modes.) But it also leverages the ; character and temporary labels just like the first version of cat, meaning that these features must have been retained when as was adapted for the PDP 11.
Err codemadness.org 70 i 36846 The second version of cat is significantly simpler than the first. It is also more “Unix-y” in that it doesn’t just expect a list of filename arguments—it will, when given no arguments, read from stdin, which is what cat still does today. You can also give this version of cat an argument of - to indicate that it should read from stdin.
Err codemadness.org 70 i 36847 In 1973, in preparation for the release of the Fourth Edition of Unix, much of Unix was rewritten in C. But cat does not seem to have been rewritten in C until a while after that. The first C implementation of cat only shows up in the Seventh Edition of Unix. This implementation is really fun to look through because it is so simple. Of all the implementations to follow, this one most resembles the idealized cat used as a pedagogic demonstration in K&R C. The heart of the program is the classic two-liner:

Err codemadness.org 70 i 36848
Err codemadness.org 70 i 36849 Err codemadness.org 70 i 36850

while ((c = getc(fi)) != EOF)
Err codemadness.org 70 i 36851 putchar(c);

Err codemadness.org 70 i 36852 Err codemadness.org 70 i 36853
Err codemadness.org 70 i 36854

There is of course quite a bit more code than that, but the extra code is mostly there to ensure that you aren’t reading and writing to the same file. The other interesting thing to note is that this implementation of cat only recognized one flag, -u. The -u flag could be used to avoid buffering input and output, which cat would otherwise do in blocks of 512 bytes.

Err codemadness.org 70 i 36855
Err codemadness.org 70 i 36856 Err codemadness.org 70 i 36857
    Err codemadness.org 70 i 36858
  • BSD
  • Err codemadness.org 70 i 36859
Err codemadness.org 70 i 36860 Err codemadness.org 70 i 36861
Err codemadness.org 70 i 36862

After the Seventh Edition, Unix spawned all sorts of derivatives and offshoots. MacOS is built on top of Darwin, which in turn is derived from the Berkeley Software Distribution (BSD), so BSD is the Unix offshoot we are most interested in. BSD was originally just a collection of useful programs and add-ons for Unix, but it eventually became a complete operating system. BSD seems to have relied on the original cat implementation up until the fourth BSD release, known as 4BSD, when support was added for a whole slew of new flags. The 4BSD implementation of cat is clearly derived from the original implementation, though it adds a new function to implement the behavior triggered by the new flags. The naming conventions already used in the file were adhered to—the fflg variable, used to mark whether input was being read from stdin or a file, was joined by nflg, bflg, vflg, sflg, eflg, and tflg, all there to record whether or not each new flag was supplied in the invocation of the program. These were the last command-line flags added to cat; the man page for cat today lists these flags and no others, at least on Mac OS. 4BSD was released in 1980, so this set of flags is 38 years old.
Err codemadness.org 70 i 36863 cat would be entirely rewritten a final time for BSD Net/2, which was, among other things, an attempt to avoid licensing issues by replacing all AT&T Unix-derived code with new code. BSD Net/2 was released in 1991. This final rewrite of cat was done by Kevin Fall, who graduated from Berkeley in 1988 and spent the next year working as a staff member at the Computer Systems Research Group (CSRG). Fall told me that a list of Unix utilities still implemented using AT&T code was put up on a wall at CSRG and staff were told to pick the utilities they wanted to reimplement. Fall picked cat and mknod. The cat implementation bundled with MacOS today is built from a source file that still bears his name at the very top. His version of cat, even though it is a relatively trivial program, is today used by millions.
Err codemadness.org 70 i 36864 Fall’s original implementation of cat is much longer than anything we have seen so far. Other than support for a -? help flag, it adds nothing in the way of new functionality. Conceptually, it is very similar to the 4BSD implementation. It is only longer because Fall separates the implementation into a “raw” mode and a “cooked” mode. The “raw” mode is cat classic; it prints a file character for character. The “cooked” mode is cat with all the 4BSD command-line options. The distinction makes sense but it also pads out the implementation so that it seems more complex at first glance than it actually is. There is also a fancy error handling function at the end of the file that further adds to its length.

Err codemadness.org 70 i 36865
Err codemadness.org 70 i 36866 Err codemadness.org 70 i 36867
    Err codemadness.org 70 i 36868
  • MacOS
  • Err codemadness.org 70 i 36869
Err codemadness.org 70 i 36870 Err codemadness.org 70 i 36871
Err codemadness.org 70 i 36872

The very first release of Mac OS X thus includes an implementation of cat pulled from the NetBSD project. So the first Mac OS X implementation of cat is Kevin Fall’s cat. The only thing that had changed over the intervening decade was that Fall’s error-handling function err() was removed and the err() function made available by err.h was used in its place. err.h is a BSD extension to the C standard library.
Err codemadness.org 70 i 36873 The NetBSD implementation of cat was later swapped out for FreeBSD’s implementation of cat. According to Wikipedia, Apple began using FreeBSD instead of NetBSD in Mac OS X 10.3 (Panther). But the Mac OS X implementation of cat, according to Apple’s own open source releases, was not replaced until Mac OS X 10.5 (Leopard) was released in 2007. The FreeBSD implementation that Apple swapped in for the Leopard release is the same implementation on Apple computers today. As of 2018, the implementation has not been updated or changed at all since 2007.
Err codemadness.org 70 i 36874 So the Mac OS cat is old. As it happens, it is actually two years older than its 2007 appearance in MacOS X would suggest. This 2005 change, which is visible in FreeBSD’s Github mirror, was the last change made to FreeBSD’s cat before Apple pulled it into Mac OS X. So the Mac OS X cat implementation, which has not been kept in sync with FreeBSD’s cat implementation, is officially 13 years old. There’s a larger debate to be had about how much software can change before it really counts as the same software; in this case, the source file has not changed at all since 2005.
Err codemadness.org 70 i 36875 The cat implementation used by Mac OS today is not that different from the implementation that Fall wrote for the 1991 BSD Net/2 release. The biggest difference is that a whole new function was added to provide Unix domain socket support. At some point, a FreeBSD developer also seems to have decided that Fall’s raw_args() function and cook_args() should be combined into a single function called scanfiles(). Otherwise, the heart of the program is still Fall’s code.
Err codemadness.org 70 i 36876 I asked Fall how he felt about having written the cat implementation now used by millions of Apple users, either directly or indirectly through some program that relies on cat being present. Fall, who is now a consultant and a co-author of the most recent editions of TCP/IP Illustrated, says that he is surprised when people get such a thrill out of learning about his work on cat. Fall has had a long career in computing and has worked on many high-profile projects, but it seems that many people still get most excited about the six months of work he put into rewriting cat in 1989.

Err codemadness.org 70 i 36877
Err codemadness.org 70 i 36878 Err codemadness.org 70 i 36879
    Err codemadness.org 70 i 36880
  • The Hundred-Year-Old Program
  • Err codemadness.org 70 i 36881
Err codemadness.org 70 i 36882 Err codemadness.org 70 i 36883
Err codemadness.org 70 i 36884

In the grand scheme of things, computers are not an old invention. We’re used to hundred-year-old photographs or even hundred-year-old camera footage. But computer programs are in a different category—they’re high-tech and new. At least, they are now. As the computing industry matures, will we someday find ourselves using programs that approach the hundred-year-old mark?
Err codemadness.org 70 i 36885 Computer hardware will presumably change enough that we won’t be able to take an executable compiled today and run it on hardware a century from now. Perhaps advances in programming language design will also mean that nobody will understand C in the future and cat will have long since been rewritten in another language. (Though C has already been around for fifty years, and it doesn’t look like it is about to be replaced any time soon.) But barring all that, why not just keep using the cat we have forever?
Err codemadness.org 70 i 36886 I think the history of cat shows that some ideas in computer science are in fact very durable. Indeed, with cat, both the idea and the program itself are old. It may not be accurate to say that the cat on my computer is from 1969. But I could make a case for saying that the cat on my computer is from 1989, when Fall wrote his implementation of cat. Lots of other software is just as ancient. So maybe we shouldn’t think of computer science and software development primarily as fields that disrupt the status quo and invent new things. Our computer systems are built out of historical artifacts. At some point, we may all spend more time trying to understand and maintain those historical artifacts than we spend writing new code.

Err codemadness.org 70 i 36887
Err codemadness.org 70 i 36888 Err codemadness.org 70 i 36889


Err codemadness.org 70 i 36890 Err codemadness.org 70 i 36891

##News Roundup
Err codemadness.org 70 i 36892 ###Trivial Bug in X.Org Gives Root Permission on Linux and BSD Systems

Err codemadness.org 70 i 36893 Err codemadness.org 70 i 36894
Err codemadness.org 70 i 36895

A vulnerability that is trivial to exploit allows privilege escalation to root level on Linux and BSD distributions using X.Org server, the open source implementation of the X Window System that offers the graphical environment.
Err codemadness.org 70 i 36896 The flaw is now identified as CVE-2018-14665 (credited to security researcher Narendra Shinde). It has been present in xorg-server for two years, since version 1.19.0 and is exploitable by a limited user as long as the X server runs with elevated permissions.

Err codemadness.org 70 i 36897
Err codemadness.org 70 i 36898 Err codemadness.org 70 i 36899
    Err codemadness.org 70 i 36900
  • Privilege escalation and arbitrary file overwrite
  • Err codemadness.org 70 i 36901
Err codemadness.org 70 i 36902 Err codemadness.org 70 i 36903
Err codemadness.org 70 i 36904

An advisory on Thursday describes the problem as an “incorrect command-line parameter validation” that also allows an attacker to overwrite arbitrary files.
Err codemadness.org 70 i 36905 Privilege escalation can be accomplished via the -modulepath argument by setting an insecure path to modules loaded by the X.org server. Arbitrary file overwrite is possible through the -logfile argument, because of improper verification when parsing the option.

Err codemadness.org 70 i 36906
Err codemadness.org 70 i 36907 Err codemadness.org 70 i 36908
    Err codemadness.org 70 i 36909
  • Bug could have been avoided in OpenBSD 6.4
  • Err codemadness.org 70 i 36910
Err codemadness.org 70 i 36911 Err codemadness.org 70 i 36912
Err codemadness.org 70 i 36913

OpenBSD, the free and open-source operating system with a strong focus on security, uses xorg. On October 18, the project released version 6.4 of the OS, affected by CVE-2018-14665. This could have been avoided, though.
Err codemadness.org 70 i 36914 Theo de Raadt, founder and leader of the OpenBSD project, says that X maintainer knew about the problem since at least October 11. For some reason, the OpenBSD developers received the message one hour before the public announcement this Thursday, a week after their new OS release.
Err codemadness.org 70 i 36915 “As yet we don’t have answers about why our X maintainer (on the X security team) and his team provided information to other projects (some who don’t even ship with this new X server) but chose to not give us a heads-up which could have saved all the new 6.4 users a lot of grief,” Raadt says.
Err codemadness.org 70 i 36916 Had OpenBSD developers known about the bug before the release, they could have taken steps to mitigate the problem or delay the launch for a week or two.
Err codemadness.org 70 i 36917 To remedy the problem, the OpenBSD project provides a source code patch, which requires compiling and rebuilding the X server.
Err codemadness.org 70 i 36918 As a temporary solution, users can disable the Xorg binary by running the following command:

Err codemadness.org 70 i 36919
Err codemadness.org 70 i 36920 Err codemadness.org 70 i 36921

chmod u-s /usr/X11R6/bin/Xorg

Err codemadness.org 70 i 36922 Err codemadness.org 70 i 36923
    Err codemadness.org 70 i 36924
  • Trivial exploitation
  • Err codemadness.org 70 i 36925
Err codemadness.org 70 i 36926 Err codemadness.org 70 i 36927
Err codemadness.org 70 i 36928

CVE-2018-14665 does not help compromise systems, but it is useful in the following stages of an attack.
Err codemadness.org 70 i 36929 Leveraging it after gaining access to a vulnerable machine is fairly easy. Matthew Hickey, co-founder, and head of Hacker House security outfit created and published an exploit, saying that it can be triggered from a remote SSH session.
Err codemadness.org 70 i 36930 Three hours after the public announcement of the security gap, Daemon Security CEO Michael Shirk replied with one line that overwrote shadow files on the system. Hickey did one better and fit the entire local privilege escalation exploit in one line.
Err codemadness.org 70 i 36931 Apart from OpenBSD, other operating systems affected by the bug include Debian and Ubuntu, Fedora and its downstream distro Red Hat Enterprise Linux along with its community-supported counterpart CentOS.

Err codemadness.org 70 i 36932
Err codemadness.org 70 i 36933 Err codemadness.org 70 i 36934


Err codemadness.org 70 i 36935 Err codemadness.org 70 i 36936

###OpenBSD on the Desktop: some thoughts

Err codemadness.org 70 i 36937 Err codemadness.org 70 i 36938
Err codemadness.org 70 i 36939

I’ve been using OpenBSD on my ThinkPad X230 for some weeks now, and the experience has been peculiar in some ways.
Err codemadness.org 70 i 36940 The OS itself in my opinion is not ready for widespread desktop usage, and the development team is not trying to push it in the throat of anybody who wants a Windows or macOS alternative.
Err codemadness.org 70 i 36941 You need to understand a little bit of how *NIX systems work, because you’ll use CLI more than UI.
Err codemadness.org 70 i 36942 That’s not necessarily bad, and I’m sure I learned a trick or two that could translate easily to Linux or macOS.
Err codemadness.org 70 i 36943 Their development process is purely based on developers that love to contribute and hack around, just because it’s fun.
Err codemadness.org 70 i 36944 Even the mailing list is a cool place to hang on!
Err codemadness.org 70 i 36945 Code correctness and security are a must, nothing gets committed if it doesn’t get reviewed thoroughly first - nowadays the first two properties should be enforced in every major operating system.
Err codemadness.org 70 i 36946 I like the idea of a platform that continually evolves.
Err codemadness.org 70 i 36947 pledge(2) and unveil(2) are the proof that with a little effort, you can secure existing software better than ever.
Err codemadness.org 70 i 36948 I like the “sensible defaults” approach, having an OS ready to be used - UI included if you selected it during the setup process - is great.
Err codemadness.org 70 i 36949 Just install a browser and you’re ready to go.
Err codemadness.org 70 i 36950 Manual pages on OpenBSD are real manuals, not an extension of the “–help” command found in most CLI softwares.
Err codemadness.org 70 i 36951 They help you understand inner workings of the operating system, no internet connection needed.
Err codemadness.org 70 i 36952 There are some trade-offs, too.
Err codemadness.org 70 i 36953 Performance is not first-class, mostly because of all the security mitigations and checks done at runtime3.
Err codemadness.org 70 i 36954 I write Go code in neovim, and sometimes you can feel a slight slowdown when you’re compiling and editing multiple files at the same time, but usually I can’t notice any meaningful difference.
Err codemadness.org 70 i 36955 Browsers are a different matter though, you can definitely feel something differs from the experience you can have on mainstream operating systems.
Err codemadness.org 70 i 36956 But again, trade-offs.
Err codemadness.org 70 i 36957 To use OpenBSD on the desktop you must be ready to sacrifice some of the goodies of mainstream OSes, but if you’re searching for a zen place to do your computing stuff, it’s the best you can get right now.

Err codemadness.org 70 i 36958
Err codemadness.org 70 i 36959 Err codemadness.org 70 i 36960


Err codemadness.org 70 i 36961 Err codemadness.org 70 i 36962

###Review: NomadBSD 1.1

Err codemadness.org 70 i 36963 Err codemadness.org 70 i 36964
Err codemadness.org 70 i 36965

One of the most recent additions to the DistroWatch database is NomadBSD. According to the NomadBSD website: “NomadBSD is a 64-bit live system for USB flash drives, based on FreeBSD. Together with automatic hardware detection and setup, it is configured to be used as a desktop system that works out of the box, but can also be used for data recovery.”
Err codemadness.org 70 i 36966 The latest release of NomadBSD (or simply “Nomad”, as I will refer to the project in this review) is version 1.1. It is based on FreeBSD 11.2 and is offered in two builds, one for generic personal computers and one for Macbooks. The release announcement mentions version 1.1 offers improved video driver support for Intel and AMD cards. The operating system ships with Octopkg for graphical package management and the system should automatically detect, and work with, VirtualBox environments.
Err codemadness.org 70 i 36967 Nomad 1.1 is available as a 2GB download, which we then decompress to produce a 4GB file which can be written to a USB thumb drive. There is no optical media build of Nomad as it is designed to be run entirely from the USB drive, and write data persistently to the drive, rather than simply being installed from the USB media.

Err codemadness.org 70 i 36968
Err codemadness.org 70 i 36969 Err codemadness.org 70 i 36970
    Err codemadness.org 70 i 36971
  • Initial setup
  • Err codemadness.org 70 i 36972
Err codemadness.org 70 i 36973 Err codemadness.org 70 i 36974
Err codemadness.org 70 i 36975

Booting from the USB drive brings up a series of text-based menus which ask us to configure key parts of the operating system. We are asked to select our time zone, keyboard layout, keyboard model, keyboard mapping and our preferred language. While we can select options from a list, the options tend to be short and cryptic. Rather than “English (US)”, for example, we might be given “en_US”. We are also asked to create a password for the root user account and another one for a regular user which is called “nomad”. We can then select which shell nomad will use. The default is zsh, but there are plenty of other options, including csh and bash. We have the option of encrypting our user’s home directory.
Err codemadness.org 70 i 36976 I feel it is important to point out that these settings, and nomad’s home directory, are stored on the USB drive. The options and settings we select will not be saved to our local hard drive and our configuration choices will not affect other operating systems already installed on our computer. At the end, the configuration wizard asks if we want to run the BSDstats service. This option is not explained at all, but it contacts BSDstats to provide some basic statistics on BSD users.
Err codemadness.org 70 i 36977 The system then takes a few minutes to apply its changes to the USB drive and automatically reboots the computer. While running the initial setup wizard, I had nearly identical experiences when running Nomad on a physical computer and running the operating system in a VirtualBox virtual machine. However, after the initial setup process was over, I had quite different experiences depending on the environment so I want to divide my experiences into two different sections.

Err codemadness.org 70 i 36978
Err codemadness.org 70 i 36979 Err codemadness.org 70 i 36980
    Err codemadness.org 70 i 36981
  • Physical desktop computer
  • Err codemadness.org 70 i 36982
Err codemadness.org 70 i 36983 Err codemadness.org 70 i 36984
Err codemadness.org 70 i 36985

At first, Nomad failed to boot on my desktop computer. From the operating system’s boot loader, I enabled Safe Mode which allowed Nomad to boot. At that point, Nomad was able to start up, but would only display a text console. The desktop environment failed to start when running in Safe Mode.
Err codemadness.org 70 i 36986 Networking was also disabled by default and I had to enable a network interface and DHCP address assignment to connect to the Internet. Instructions for enabling networking can be found in FreeBSD’s Handbook. Once we are on-line we can use the pkg command line package manager to install and update software. Had the desktop environment worked then the Octopkg graphical package manager would also be available to make browsing and installing software a point-n-click experience.
Err codemadness.org 70 i 36987 Had I been able to run the desktop for prolonged amounts of time I could have made use of such pre-installed items as the Firefox web browser, the VLC media player, LibreOffice and Thunderbird. Nomad offers a fairly small collection of desktop applications, but what is there is mostly popular, capable software.
Err codemadness.org 70 i 36988 When running the operating system I noted that, with one user logged in, Nomad only runs 15 processes with the default configuration. These processes require less than 100MB of RAM, and the whole system fits comfortably on a 4GB USB drive.

Err codemadness.org 70 i 36989
Err codemadness.org 70 i 36990 Err codemadness.org 70 i 36991
    Err codemadness.org 70 i 36992
  • Conclusions
  • Err codemadness.org 70 i 36993
Err codemadness.org 70 i 36994 Err codemadness.org 70 i 36995
Err codemadness.org 70 i 36996

Ultimately using Nomad was not a practical option for me. The operating system did not work well with my hardware, or the virtual environment. In the virtual machine, Nomad crashed consistently after just a few minutes of uptime. On the desktop computer, I could not get a desktop environment to run. The command line tools worked well, and the system performed tasks very quickly, but a command line only environment is not well suited to my workflow.
Err codemadness.org 70 i 36997 I like the idea of what NomadBSD is offering. There are not many live desktop flavours of FreeBSD, apart from GhostBSD. It was nice to see developers trying to make a FreeBSD-based, plug-and-go operating system that would offer a desktop and persistent storage. I suspect the system would work and perform its stated functions on different hardware, but in my case my experiment was necessarily short lived.

Err codemadness.org 70 i 36998
Err codemadness.org 70 i 36999 Err codemadness.org 70 i 37000


Err codemadness.org 70 i 37001 Err codemadness.org 70 i 37002

##Beastie Bits

Err codemadness.org 70 i 37003 Err codemadness.org 70 i 37004 Err codemadness.org 70 i 37016 Err codemadness.org 70 i 37017


Err codemadness.org 70 i 37018 Err codemadness.org 70 i 37019

##Feedback/Questions

Err codemadness.org 70 i 37020 Err codemadness.org 70 i 37021
Err codemadness.org 70 i 37031

Err codemadness.org 70 i 37032 Err codemadness.org 70 i 37033
    Err codemadness.org 70 i 37034
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 37035
Err codemadness.org 70 i 37036 Err codemadness.org 70 i 37037


]]> Err codemadness.org 70 i 37038
Err codemadness.org 70 i 37039 https://fireside.fm/player/v2/FYhhasNR+ux9vMUR8 Err codemadness.org 70 i 37040 Err codemadness.org 70 i 37041 ]]> Err codemadness.org 70 i 37042 Err codemadness.org 70 i 37043
Err codemadness.org 70 i 37044 Err codemadness.org 70 i 37045 Episode 272: Detain the bhyve | BSD Now 272 Err codemadness.org 70 i 37046 https://www.bsdnow.tv/272 Err codemadness.org 70 i 37047 http://feed.jupiter.zone/bsdnow#entry-2899 Err codemadness.org 70 i 37048 Thu, 15 Nov 2018 10:00:00 -0800 Err codemadness.org 70 i 37049 Allan Jude Err codemadness.org 70 i 37050 Err codemadness.org 70 i 37051 full Err codemadness.org 70 i 37052 Allan Jude Err codemadness.org 70 i 37053 Byproducts of reading OpenBSD’s netcat code, learnings from porting your own projects to FreeBSD, OpenBSD’s unveil(), NetBSD’s Virtual Machine Monitor, what 'dependency' means in Unix init systems, jailing bhyve, and more. Err codemadness.org 70 i 37054 1:08:39 Err codemadness.org 70 i 37055 no Err codemadness.org 70 i 37056 Err codemadness.org 70 i 37057 Byproducts of reading OpenBSD’s netcat code, learnings from porting your own projects to FreeBSD, OpenBSD’s unveil(), NetBSD’s Virtual Machine Monitor, what 'dependency' means in Unix init systems, jailing bhyve, and more. Err codemadness.org 70 i 37058 <p>##Headlines<br> ###<a href="https://nanxiao.me/en/the-byproducts-of-reading-openbsd-netcat-code/">The byproducts of reading OpenBSD netcat code</a></p> <blockquote> <p>When I took part in a training last year, I heard about netcat for the first time. During that class, the tutor showed some hacks and tricks of using netcat which appealed to me and motivated me to learn the guts of it. Fortunately, in the past 2 months, I was not so busy that I can spend my spare time to dive into OpenBSD‘s netcat source code, and got abundant byproducts during this process.<br> (1) Brush up socket programming. I wrote my first network application more than 10 years ago, and always think the socket APIs are marvelous. Just ~10 functions (socket, bind, listen, accept…) with some IO multiplexing buddies (select, poll, epoll…) connect the whole world, wonderful! From that time, I developed a habit that is when touching a new programming language, network programming is an essential exercise. Even though I don’t write socket related code now, reading netcat socket code indeed refresh my knowledge and teach me new stuff.<br> (2) Write a tutorial about netcat. I am mediocre programmer and will forget things when I don’t use it for a long time. So I just take notes of what I think is useful. IMHO, this “tutorial” doesn’t really mean teach others something, but just a journal which I can refer when I need in the future.<br> (3) Submit patches to netcat. During reading code, I also found bugs and some enhancements. Though trivial contributions to OpenBSD, I am still happy and enjoy it.<br> (4) Implement a C++ encapsulation of libtls. OpenBSD‘s netcat supports tls/ssl connection, but it needs you take full care of resource management (memory, socket, etc), otherwise a small mistake can lead to resource leak which is fatal for long-live applications (In fact, the two bugs I reported to OpenBSD are all related resource leak). Therefore I develop a simple C++ library which wraps the libtls and hope it can free developer from this troublesome problem and put more energy in application logic part.<br> Long story to short, reading classical source code is a rewarding process, and you can consider to try it yourself.</p> </blockquote> <hr> <p>###<a href="https://github.com/shlomif/what-i-learned-from-porting-to-freebsd#what-i-learned-from-porting-my-projects-to-freebsd">What I learned from porting my projects to FreeBSD</a></p> <ul> <li>Introduction</li> </ul> <blockquote> <p>I set up a local FreeBSD VirtualBox VM to test something, and it seems to work very well. Due to the novelty factor, I decided to get my software projects to build and pass the tests there.</p> </blockquote> <ul> <li> <p>The Projects</p> </li> <li> <p><a href="https://github.com/shlomif/shlomif-computer-settings/">https://github.com/shlomif/shlomif-computer-settings/</a> (my dotfiles).</p> </li> <li> <p><a href="https://web-cpan.shlomifish.org/latemp/">https://web-cpan.shlomifish.org/latemp/</a></p> </li> <li> <p><a href="https://fc-solve.shlomifish.org/">https://fc-solve.shlomifish.org/</a></p> </li> <li> <p><a href="https://www.shlomifish.org/open-source/projects/black-hole-solitaire-solver/">https://www.shlomifish.org/open-source/projects/black-hole-solitaire-solver/</a></p> </li> <li> <p><a href="https://better-scm.shlomifish.org/source/">https://better-scm.shlomifish.org/source/</a></p> </li> <li> <p><a href="http://perl-begin.org/source/">http://perl-begin.org/source/</a></p> </li> <li> <p><a href="https://www.shlomifish.org/meta/site-source/">https://www.shlomifish.org/meta/site-source/</a></p> </li> <li> <p>Written using a mix of C, Perl 5, Python, Ruby, GNU Bash, XML, CMake, XSLT, XHTML5, XHTML1.1, Website META Language, JavaScript and more.</p> </li> <li> <p>Work fine on several Linux distributions and have <a href="https://en.wikipedia.org/wiki/Travis_CI">https://en.wikipedia.org/wiki/TravisCI</a> using Ubuntu 14.04 hosts</p> </li> <li> <p>Some pass builds and tests on AppVeyor/Win64</p> </li> <li> <p>What I Learned:</p> </li> <li> <p>FreeBSD on VBox has become very reliable</p> </li> <li> <p>Some executables on FreeBSD are in /usr/local/bin instead of /usr/bin</p> </li> <li> <p>make on FreeBSD is not GNU make</p> </li> <li> <p>m4 on FreeBSD is not compatible with GNU m4</p> </li> <li> <p>Some CPAN Modules fail to install using local-lib there</p> </li> <li> <p>DocBook/XSL Does Not Live Under /usr/share/sgml</p> </li> <li> <p>FreeBSD’s grep does not have a “-P” flag by default</p> </li> <li> <p>FreeBSD has no “nproc” command</p> </li> <li> <p>Conclusion:</p> </li> <li> <p>It is easier to port a shell than a shell script. — Larry Wall</p> </li> <li> <p>I ran into some cases where my scriptology was lacking and suboptimal, even for my own personal use, and fixed them.</p> </li> </ul> <hr> <p>##News Roundup<br> ###<a href="https://lwn.net/Articles/767137/">OpenBSD’s unveil()</a></p> <blockquote> <p>One of the key aspects of hardening the user-space side of an operating system is to provide mechanisms for restricting which parts of the filesystem hierarchy a given process can access. Linux has a number of mechanisms of varying capability and complexity for this purpose, but other kernels have taken a different approach. Over the last few months, OpenBSD has inaugurated a new system call named unveil() for this type of hardening that differs significantly from the mechanisms found in Linux.<br> The value of restricting access to the filesystem, from a security point of view, is fairly obvious. A compromised process cannot exfiltrate data that it cannot read, and it cannot corrupt files that it cannot write. Preventing unwanted access is, of course, the purpose of the permissions bits attached to every file, but permissions fall short in an important way: just because a particular user has access to a given file does not necessarily imply that every program run by that user should also have access to that file. There is no reason why your PDF viewer should be able to read your SSH keys, for example. Relying on just the permission bits makes it easy for a compromised process to access files that have nothing to do with that process’s actual job.<br> In a Linux system, there are many ways of trying to restrict that access; that is one of the purposes behind the Linux security module (LSM) architecture, for example. The SELinux LSM uses a complex matrix of labels and roles to make access-control decisions. The AppArmor LSM, instead, uses a relatively simple table of permissible pathnames associated with each application; that approach was highly controversial when AppArmor was first merged, and is still looked down upon by some security developers. Mount namespaces can be used to create a special view of the filesystem hierarchy for a set of processes, rendering much of that hierarchy invisible and, thus, inaccessible. The seccomp mechanism can be used to make decisions on attempts by a process to access files, but that approach is complex and error-prone. Yet another approach can be seen in the Qubes OS distribution, which runs applications in virtual machines to strictly control what they can access.<br> Compared to many of the options found in Linux, unveil() is an exercise in simplicity. This system call, introduced in July, has this prototype:</p> </blockquote> <p><code>int unveil(const char *path, const char *permissions);</code></p> <blockquote> <p>A process that has never called unveil() has full access to the filesystem hierarchy, modulo the usual file permissions and any restrictions that may have been applied by calling pledge(). Calling unveil() for the first time will “drop a veil” across the entire filesystem, rendering the whole thing invisible to the process, with one exception: the file or directory hierarchy starting at path will be accessible with the given permissions. The permissions string can contain any of “r” for read access, “w” for write, “x” for execute, and “c” for the ability to create or remove the path.<br> Subsequent calls to unveil() will make other parts of the filesystem hierarchy accessible; the unveil() system call itself still has access to the entire hierarchy, so there is no problem with unveiling distinct subtrees that are, until the call is made, invisible to the process. If one unveil() call applies to a subtree of a hierarchy unveiled by another call, the permissions associated with the more specific call apply.<br> Calling unveil() with both arguments as null will block any further calls, setting the current view of the filesystem in stone. Calls to unveil() can also be blocked using pledge(). Either way, once the view of the filesystem has been set up appropriately, it is possible to lock it so that the process cannot expand its access in the future should it be taken over and turn hostile.<br> unveil() thus looks a bit like AppArmor, in that it is a path-based mechanism for restricting access to files. In either case, one must first study the program in question to gain a solid understanding of which files it needs to access before closing things down, or the program is likely to break. One significant difference (beyond the other sorts of behavior that AppArmor can control) is that AppArmor’s permissions are stored in an external policy file, while unveil() calls are made by the application itself. That approach keeps the access rules tightly tied to the application and easy for the developers to modify, but it also makes it harder for system administrators to change them without having to rebuild the application from source.<br> One can certainly aim a number of criticisms at unveil() — all of the complaints that have been leveled at path-based access control and more. But the simplicity of unveil() brings a certain kind of utility, as can be seen in the large number of OpenBSD applications that are being modified to use it. OpenBSD is gaining a base level of protection against unintended program behavior; while it is arguably possible to protect a Linux system to a much greater extent, the complexity of the mechanisms involved keeps that from happening in a lot of real-world deployments. There is a certain kind of virtue to simplicity in security mechanisms.</p> </blockquote> <hr> <p>###<a href="http://m00nbsd.net/4e0798b7f2620c965d0dd9d6a7a2f296.html">NetBSD Virtual Machine Monitor (NVVM)</a></p> <ul> <li>NetBSD Virtual Machine Monitor</li> </ul> <blockquote> <p>The NVMM driver provides hardware-accelerated virtualization support on NetBSD. It is made of an ~MI frontend, to which MD backends can be plugged. A virtualization API is provided in libnvmm, that allows to easily create and manage virtual machines via NVMM. Two additional components are shipped as demonstrators, toyvirt and smallkern: the former is a toy virtualizer, that executes in a VM the 64bit ELF binary given as argument, the latter is an example of such binary.</p> </blockquote> <ul> <li>Download</li> </ul> <blockquote> <p>The source code of NVMM, plus the associated tools, can be downloaded here.</p> </blockquote> <ul> <li>Technical details</li> </ul> <blockquote> <p>NVMM can support up to 128 virtual machines, each having a maximum of 256 VCPUs and 4GB of RAM.<br> Each virtual machine is granted access to most of the CPU registers: the GPRs (obviously), the Segment Registers, the Control Registers, the Debug Registers, the FPU (x87 and SSE), and several MSRs.<br> Events can be injected in the virtual machines, to emulate device interrupts. A delay mechanism is used, and allows VMM software to schedule the interrupt right when the VCPU can receive it. NMIs can be injected as well, and use a similar mechanism.<br> The host must always be x8664, but the guest has no constraint on the mode, so it can be x8632, PAE, real mode, and so on.<br> The TSC of each VCPU is always re-based on the host CPU it is executing on, and is therefore guaranteed to increase regardless of the host CPU. However, it may not increase monotonically, because it is not possible to fully hide the host effects on the guest during #VMEXITs.<br> When there are more VCPUs than the host TLB can deal with, NVMM uses a shared ASID, and flushes the shared-ASID VCPUs on each VM switch.<br> The different intercepts are configured in such a way that they cover everything that needs to be emulated. In particular, the LAPIC can be emulated by VMM software, by intercepting reads/writes to the LAPIC page in memory, and monitoring changes to CR8 in the exit state.</p> </blockquote> <hr> <p>###<a href="https://utcc.utoronto.ca/~cks/space/blog/sysadmin/InitDependencyUnclear">What ‘dependency’ means in Unix init systems is underspecified (utoronto.ca)</a></p> <blockquote> <p>I was reading Davin McCall’s On the vagaries of init systems (via) when I ran across the following, about the relationship between various daemons (services, etc):<br> I do not see any compelling reason for having ordering relationships without actual dependency, as both Nosh and Systemd provide for. In comparison, Dinit’s dependencies also imply an ordering, which obviates the need to list a dependency twice in the service description.<br> Well, this may be an easy one but it depends on what an init system means by ‘dependency’. Let’s consider ®syslog and the SSH daemon. I want the syslog daemon to be started before the SSH daemon is started, so that the SSH daemon can log things to it from the beginning. However, I very much do not want the SSH daemon to not be started (or to be shut down) if the syslog daemon fails to start or later fails. If syslog fails, I still want the SSH daemon to be there so that I can perhaps SSH in to the machine and fix the problem.<br> This is generally true of almost all daemons; I want them to start after syslog, so that they can syslog things, but I almost never want them to not be running if syslog failed. (And if for some reason syslog is not configured to start, I want enabling and starting, say, SSH, to also enable and start the syslog daemon.)<br> In general, there are three different relationships between services that I tend to encounter:</p> </blockquote> <ul> <li> <p>a hard requirement, where service B is useless or dangerous without service A. For instance, many NFS v2 and NFS v3 daemons basically don’t function without the RPC portmapper alive and active. On any number of systems, firewall rules being in place are a hard requirement to start most network services; you would rather your network services not start at all than that they start without your defenses in place.</p> </li> <li> <p>a want, where service B wants service A to be running before B starts up, and service A should be started even if it wouldn’t otherwise be, but the failure of A still leaves B functional. Many daemons want the syslog daemon to be started before they start but will run without it, and often you want them to do so so that at least some of the system works even if there is, say, a corrupt syslog configuration file that causes the daemon to error out on start. (But some environments want to hard-fail if they can’t collect security related logging information, so they might make rsyslogd a requirement instead of a want.)</p> </li> <li> <p>an ordering, where if service A is going to be started, B wants to start after it (or before it), but B isn’t otherwise calling for A to be started. We have some of these in our systems, where we need NFS mounts done before cron starts and runs people’s @reboot jobs but neither cron nor NFS mounts exactly or explicitly want each other. (The system as a whole wants both, but that’s a different thing.)</p> </li> </ul> <blockquote> <p>Given these different relationships and the implications for what the init system should do in different situations, talking about ‘dependency’ in it systems is kind of underspecified. What sort of dependency? What happens if one service doesn’t start or fails later?<br> My impression is that generally people pick a want relationship as the default meaning for init system ‘dependency’. Usually this is fine; most services aren’t actively dangerous if one of their declared dependencies fails to start, and it’s generally harmless on any particular system to force a want instead of an ordering relationship because you’re going to be starting everything anyway.</p> </blockquote> <ul> <li>(In my example, you might as well say that cron on the systems in question wants NFS mounts. There is no difference in practice; we already always want to do NFS mounts and start cron.)</li> </ul> <hr> <p>###<a href="https://github.com/lattera/articles/blob/master/freebsd/2018-10-27jailedbhyve/article.md">Jailing The bhyve Hypervisor</a></p> <blockquote> <p>As FreeBSD nears the final 12.0-RELEASE release engineering cycles, I’d like to take a moment to document a cool new feature coming in 12: jailed bhyve.<br> You may notice that I use HardenedBSD instead of FreeBSD in this article. There is no functional difference in bhyve on HardenedBSD versus bhyve on FreeBSD. The only difference between HardenedBSD and FreeBSD is the aditional security offered by HardenedBSD.<br> The steps I outline here work for both FreeBSD and HardenedBSD. These are the bare minimum steps, no extra work needed for either FreeBSD or HardenedBSD.</p> </blockquote> <ul> <li>A Gentle History Lesson</li> </ul> <blockquote> <p>At work in my spare time, I’m helping develop a malware lab. Due to the nature of the beast, we would like to use bhyve on HardenedBSD. Starting with HardenedBSD 12, non-Cross-DSO CFI, SafeStack, Capsicum, ASLR, and strict W^X are all applied to bhyve, making it an extremely hardened hypervisor.<br> So, the work to support jailed bhyve is sponsored by both HardenedBSD and my employer. We’ve also jointly worked on other bhyve hardening features, like protecting the VM’s address space using guard pages (mmap(…, MAPGUARD, …)). Further work is being done in a project called “malhyve.” Only those modifications to bhyve/malhyve that make sense to upstream will be upstreamed.</p> </blockquote> <ul> <li>Initial Setup</li> </ul> <blockquote> <p>We will not go through the process of creating the jail’s filesystem. That process is documented in the FreeBSD Handbook. For UEFI guests, you will need to install the uefi-edk2-bhyve package inside the jail.<br> I network these jails with traditional jail networking. I have tested vnet jails with this setup, and that works fine, too. However, there is no real need to hook the jail up to any network so long as bhyve can access the tap device. In some cases, the VM might not need networking, in which case you can use a network-less VM in a network-less jail.<br> By default, access to the kernel side of bhyve is disabled within jails. We need to set allow.vmm in our jail.conf entry for the bhyve jail.</p> </blockquote> <ul> <li> <p>We will use the following in our jail, so we will need to set up devfs(8) rules for them:</p> </li> <li> <p>A ZFS volume</p> </li> <li> <p>A null-modem device (nmdm(4))</p> </li> <li> <p>UEFI GOP (no devfs rule, but IP assigned to the jail)</p> </li> <li> <p>A tap device</p> </li> <li> <p>Conclusion</p> </li> </ul> <blockquote> <p>The bhyve hypervisor works great within a jail. When combined with HardenedBSD, bhyve is extremely hardened:</p> </blockquote> <ul> <li>PaX ASLR is fully applied due to compilation as a Position-Independent Executable (HardenedBSD enhancement)</li> <li>PaX NOEXEC is fully applied (strict W^X) (HardenedBSD enhancement)</li> <li>Non-Cross-DSO CFI is fully applied (HardenedBSD enhancement)</li> <li>Full RELRO (RELRO + BINDNOW) is fully applied (HardenedBSD enhancement)</li> <li>SafeStack is applied to the application (HardenedBSD enhancement)</li> <li>Jailed (FreeBSD feature written by HardenedBSD)</li> <li>Virtual memory protected with guard pages (FreeBSD feature written by HardenedBSD)</li> <li>Capsicum is fully applied (FreeBSD feature)</li> </ul> <blockquote> <p>Bad guys are going to have a hard time breaking out of the userland components of bhyve on HardenedBSD. :)</p> </blockquote> <hr> <p>##Beastie Bits</p> <ul> <li><a href="https://www.ghostbsd.org/18.10releaseannouncement">GhostBSD 18.10 has been released</a></li> <li><a href="http://project-trident.org/post/2018-11-10rc3-available/">Project Trident RC3 has been released</a></li> <li><a href="https://undeadly.org/cgi?action=article;sid=20181022130631">The OpenBSD Foundation receives the first Silver contribution from a single individual</a></li> <li><a href="http://www.echothrust.com/blogs/monitoring-pf-logs-gource">Monitoring pf logs gource</a></li> <li><a href="https://twitter.com/zmcgrew/status/1055682596812730368">NetBSD on the RISC-V is alive</a></li> <li><a href="https://marc.info/?l=openbsd-tech&amp;m=154050351216908&amp;w=2">The X hole</a></li> <li><a href="http://mail-index.netbsd.org/pkgsrc-users/2018/10/05/msg027525.html">Announcing the pkgsrc-2018Q3 release (2018-10-05)</a></li> <li><a href="https://an.undulating.space/post/180927-er_alternate_firmware_benchmarks/">NAT performance on EdgeRouter X and Lite with EdgeOS, OpenBSD, and OpenWRT</a></li> <li><a href="https://www.princeton.edu/~hos/mike/transcripts/thompson.htm">UNIX (as we know it) might not have existed without Mrs. Thompson</a></li> <li><a href="https://www.freepizza.io/">Free Pizza for your dev events</a></li> <li><a href="https://calagator.org/events/1250474530">Portland BSD Pizza Night: Nov 29th 7pm</a></li> </ul> <hr> <p>##Feedback/Questions</p> <ul> <li>Dennis - <a href="http://dpaste.com/36JB7EC#wrap">Core developers leaving illumOS?</a></li> <li>Ben - <a href="http://dpaste.com/1R36Z32#wrap">Jumping from snapshot to snapshot</a></li> <li>Ias - <a href="http://dpaste.com/1CC86MX">Question about ZFS snapshots</a></li> </ul> <hr> <ul> <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> </ul> <hr> Err codemadness.org 70 i 37059 Err codemadness.org 70 i 37060 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, bhyve, jail, netcat, unveil, NVVM, 18.10, rc3 Err codemadness.org 70 i 37061 Err codemadness.org 70 i 37062 Byproducts of reading OpenBSD’s netcat code, learnings from porting your own projects to FreeBSD, OpenBSD’s unveil(), NetBSD’s Virtual Machine Monitor, what 'dependency' means in Unix init systems, jailing bhyve, and more.
Err codemadness.org 70 i 37063

##Headlines
###The byproducts of reading OpenBSD netcat code

When I took part in a training last year, I heard about netcat for the first time. During that class, the tutor showed some hacks and tricks of using netcat which appealed to me and motivated me to learn the guts of it. Fortunately, in the past 2 months, I was not so busy that I can spend my spare time to dive into OpenBSD‘s netcat source code, and got abundant byproducts during this process.
(1) Brush up socket programming. I wrote my first network application more than 10 years ago, and always think the socket APIs are marvelous. Just ~10 functions (socket, bind, listen, accept…) with some IO multiplexing buddies (select, poll, epoll…) connect the whole world, wonderful! From that time, I developed a habit that is when touching a new programming language, network programming is an essential exercise. Even though I don’t write socket related code now, reading netcat socket code indeed refresh my knowledge and teach me new stuff.
(2) Write a tutorial about netcat. I am mediocre programmer and will forget things when I don’t use it for a long time. So I just take notes of what I think is useful. IMHO, this “tutorial” doesn’t really mean teach others something, but just a journal which I can refer when I need in the future.
(3) Submit patches to netcat. During reading code, I also found bugs and some enhancements. Though trivial contributions to OpenBSD, I am still happy and enjoy it.
(4) Implement a C++ encapsulation of libtls. OpenBSD‘s netcat supports tls/ssl connection, but it needs you take full care of resource management (memory, socket, etc), otherwise a small mistake can lead to resource leak which is fatal for long-live applications (In fact, the two bugs I reported to OpenBSD are all related resource leak). Therefore I develop a simple C++ library which wraps the libtls and hope it can free developer from this troublesome problem and put more energy in application logic part.
Long story to short, reading classical source code is a rewarding process, and you can consider to try it yourself.


###What I learned from porting my projects to FreeBSD

  • Introduction

I set up a local FreeBSD VirtualBox VM to test something, and it seems to work very well. Due to the novelty factor, I decided to get my software projects to build and pass the tests there.


##News Roundup
###OpenBSD’s unveil()

One of the key aspects of hardening the user-space side of an operating system is to provide mechanisms for restricting which parts of the filesystem hierarchy a given process can access. Linux has a number of mechanisms of varying capability and complexity for this purpose, but other kernels have taken a different approach. Over the last few months, OpenBSD has inaugurated a new system call named unveil() for this type of hardening that differs significantly from the mechanisms found in Linux.
The value of restricting access to the filesystem, from a security point of view, is fairly obvious. A compromised process cannot exfiltrate data that it cannot read, and it cannot corrupt files that it cannot write. Preventing unwanted access is, of course, the purpose of the permissions bits attached to every file, but permissions fall short in an important way: just because a particular user has access to a given file does not necessarily imply that every program run by that user should also have access to that file. There is no reason why your PDF viewer should be able to read your SSH keys, for example. Relying on just the permission bits makes it easy for a compromised process to access files that have nothing to do with that process’s actual job.
In a Linux system, there are many ways of trying to restrict that access; that is one of the purposes behind the Linux security module (LSM) architecture, for example. The SELinux LSM uses a complex matrix of labels and roles to make access-control decisions. The AppArmor LSM, instead, uses a relatively simple table of permissible pathnames associated with each application; that approach was highly controversial when AppArmor was first merged, and is still looked down upon by some security developers. Mount namespaces can be used to create a special view of the filesystem hierarchy for a set of processes, rendering much of that hierarchy invisible and, thus, inaccessible. The seccomp mechanism can be used to make decisions on attempts by a process to access files, but that approach is complex and error-prone. Yet another approach can be seen in the Qubes OS distribution, which runs applications in virtual machines to strictly control what they can access.
Compared to many of the options found in Linux, unveil() is an exercise in simplicity. This system call, introduced in July, has this prototype:

int unveil(const char *path, const char *permissions);

A process that has never called unveil() has full access to the filesystem hierarchy, modulo the usual file permissions and any restrictions that may have been applied by calling pledge(). Calling unveil() for the first time will “drop a veil” across the entire filesystem, rendering the whole thing invisible to the process, with one exception: the file or directory hierarchy starting at path will be accessible with the given permissions. The permissions string can contain any of “r” for read access, “w” for write, “x” for execute, and “c” for the ability to create or remove the path.
Subsequent calls to unveil() will make other parts of the filesystem hierarchy accessible; the unveil() system call itself still has access to the entire hierarchy, so there is no problem with unveiling distinct subtrees that are, until the call is made, invisible to the process. If one unveil() call applies to a subtree of a hierarchy unveiled by another call, the permissions associated with the more specific call apply.
Calling unveil() with both arguments as null will block any further calls, setting the current view of the filesystem in stone. Calls to unveil() can also be blocked using pledge(). Either way, once the view of the filesystem has been set up appropriately, it is possible to lock it so that the process cannot expand its access in the future should it be taken over and turn hostile.
unveil() thus looks a bit like AppArmor, in that it is a path-based mechanism for restricting access to files. In either case, one must first study the program in question to gain a solid understanding of which files it needs to access before closing things down, or the program is likely to break. One significant difference (beyond the other sorts of behavior that AppArmor can control) is that AppArmor’s permissions are stored in an external policy file, while unveil() calls are made by the application itself. That approach keeps the access rules tightly tied to the application and easy for the developers to modify, but it also makes it harder for system administrators to change them without having to rebuild the application from source.
One can certainly aim a number of criticisms at unveil() — all of the complaints that have been leveled at path-based access control and more. But the simplicity of unveil() brings a certain kind of utility, as can be seen in the large number of OpenBSD applications that are being modified to use it. OpenBSD is gaining a base level of protection against unintended program behavior; while it is arguably possible to protect a Linux system to a much greater extent, the complexity of the mechanisms involved keeps that from happening in a lot of real-world deployments. There is a certain kind of virtue to simplicity in security mechanisms.


###NetBSD Virtual Machine Monitor (NVVM)

  • NetBSD Virtual Machine Monitor

The NVMM driver provides hardware-accelerated virtualization support on NetBSD. It is made of an ~MI frontend, to which MD backends can be plugged. A virtualization API is provided in libnvmm, that allows to easily create and manage virtual machines via NVMM. Two additional components are shipped as demonstrators, toyvirt and smallkern: the former is a toy virtualizer, that executes in a VM the 64bit ELF binary given as argument, the latter is an example of such binary.

  • Download

The source code of NVMM, plus the associated tools, can be downloaded here.

  • Technical details

NVMM can support up to 128 virtual machines, each having a maximum of 256 VCPUs and 4GB of RAM.
Each virtual machine is granted access to most of the CPU registers: the GPRs (obviously), the Segment Registers, the Control Registers, the Debug Registers, the FPU (x87 and SSE), and several MSRs.
Events can be injected in the virtual machines, to emulate device interrupts. A delay mechanism is used, and allows VMM software to schedule the interrupt right when the VCPU can receive it. NMIs can be injected as well, and use a similar mechanism.
The host must always be x86_64, but the guest has no constraint on the mode, so it can be x86_32, PAE, real mode, and so on.
The TSC of each VCPU is always re-based on the host CPU it is executing on, and is therefore guaranteed to increase regardless of the host CPU. However, it may not increase monotonically, because it is not possible to fully hide the host effects on the guest during #VMEXITs.
When there are more VCPUs than the host TLB can deal with, NVMM uses a shared ASID, and flushes the shared-ASID VCPUs on each VM switch.
The different intercepts are configured in such a way that they cover everything that needs to be emulated. In particular, the LAPIC can be emulated by VMM software, by intercepting reads/writes to the LAPIC page in memory, and monitoring changes to CR8 in the exit state.


###What ‘dependency’ means in Unix init systems is underspecified (utoronto.ca)

I was reading Davin McCall’s On the vagaries of init systems (via) when I ran across the following, about the relationship between various daemons (services, etc):
I do not see any compelling reason for having ordering relationships without actual dependency, as both Nosh and Systemd provide for. In comparison, Dinit’s dependencies also imply an ordering, which obviates the need to list a dependency twice in the service description.
Well, this may be an easy one but it depends on what an init system means by ‘dependency’. Let’s consider ®syslog and the SSH daemon. I want the syslog daemon to be started before the SSH daemon is started, so that the SSH daemon can log things to it from the beginning. However, I very much do not want the SSH daemon to not be started (or to be shut down) if the syslog daemon fails to start or later fails. If syslog fails, I still want the SSH daemon to be there so that I can perhaps SSH in to the machine and fix the problem.
This is generally true of almost all daemons; I want them to start after syslog, so that they can syslog things, but I almost never want them to not be running if syslog failed. (And if for some reason syslog is not configured to start, I want enabling and starting, say, SSH, to also enable and start the syslog daemon.)
In general, there are three different relationships between services that I tend to encounter:

  • a hard requirement, where service B is useless or dangerous without service A. For instance, many NFS v2 and NFS v3 daemons basically don’t function without the RPC portmapper alive and active. On any number of systems, firewall rules being in place are a hard requirement to start most network services; you would rather your network services not start at all than that they start without your defenses in place.

  • a want, where service B wants service A to be running before B starts up, and service A should be started even if it wouldn’t otherwise be, but the failure of A still leaves B functional. Many daemons want the syslog daemon to be started before they start but will run without it, and often you want them to do so so that at least some of the system works even if there is, say, a corrupt syslog configuration file that causes the daemon to error out on start. (But some environments want to hard-fail if they can’t collect security related logging information, so they might make rsyslogd a requirement instead of a want.)

  • an ordering, where if service A is going to be started, B wants to start after it (or before it), but B isn’t otherwise calling for A to be started. We have some of these in our systems, where we need NFS mounts done before cron starts and runs people’s @reboot jobs but neither cron nor NFS mounts exactly or explicitly want each other. (The system as a whole wants both, but that’s a different thing.)

Given these different relationships and the implications for what the init system should do in different situations, talking about ‘dependency’ in it systems is kind of underspecified. What sort of dependency? What happens if one service doesn’t start or fails later?
My impression is that generally people pick a want relationship as the default meaning for init system ‘dependency’. Usually this is fine; most services aren’t actively dangerous if one of their declared dependencies fails to start, and it’s generally harmless on any particular system to force a want instead of an ordering relationship because you’re going to be starting everything anyway.

  • (In my example, you might as well say that cron on the systems in question wants NFS mounts. There is no difference in practice; we already always want to do NFS mounts and start cron.)

###Jailing The bhyve Hypervisor

As FreeBSD nears the final 12.0-RELEASE release engineering cycles, I’d like to take a moment to document a cool new feature coming in 12: jailed bhyve.
You may notice that I use HardenedBSD instead of FreeBSD in this article. There is no functional difference in bhyve on HardenedBSD versus bhyve on FreeBSD. The only difference between HardenedBSD and FreeBSD is the aditional security offered by HardenedBSD.
The steps I outline here work for both FreeBSD and HardenedBSD. These are the bare minimum steps, no extra work needed for either FreeBSD or HardenedBSD.

  • A Gentle History Lesson

At work in my spare time, I’m helping develop a malware lab. Due to the nature of the beast, we would like to use bhyve on HardenedBSD. Starting with HardenedBSD 12, non-Cross-DSO CFI, SafeStack, Capsicum, ASLR, and strict WX are all applied to bhyve, making it an extremely hardened hypervisor.
So, the work to support jailed bhyve is sponsored by both HardenedBSD and my employer. We’ve also jointly worked on other bhyve hardening features, like protecting the VM’s address space using guard pages (mmap(…, MAP_GUARD, …)). Further work is being done in a project called “malhyve.” Only those modifications to bhyve/malhyve that make sense to upstream will be upstreamed.

  • Initial Setup

We will not go through the process of creating the jail’s filesystem. That process is documented in the FreeBSD Handbook. For UEFI guests, you will need to install the uefi-edk2-bhyve package inside the jail.
I network these jails with traditional jail networking. I have tested vnet jails with this setup, and that works fine, too. However, there is no real need to hook the jail up to any network so long as bhyve can access the tap device. In some cases, the VM might not need networking, in which case you can use a network-less VM in a network-less jail.
By default, access to the kernel side of bhyve is disabled within jails. We need to set allow.vmm in our jail.conf entry for the bhyve jail.

  • We will use the following in our jail, so we will need to set up devfs(8) rules for them:

  • A ZFS volume

  • A null-modem device (nmdm(4))

  • UEFI GOP (no devfs rule, but IP assigned to the jail)

  • A tap device

  • Conclusion

The bhyve hypervisor works great within a jail. When combined with HardenedBSD, bhyve is extremely hardened:

  • PaX ASLR is fully applied due to compilation as a Position-Independent Executable (HardenedBSD enhancement)
  • PaX NOEXEC is fully applied (strict WX) (HardenedBSD enhancement)
  • Non-Cross-DSO CFI is fully applied (HardenedBSD enhancement)
  • Full RELRO (RELRO + BIND_NOW) is fully applied (HardenedBSD enhancement)
  • SafeStack is applied to the application (HardenedBSD enhancement)
  • Jailed (FreeBSD feature written by HardenedBSD)
  • Virtual memory protected with guard pages (FreeBSD feature written by HardenedBSD)
  • Capsicum is fully applied (FreeBSD feature)

Bad guys are going to have a hard time breaking out of the userland components of bhyve on HardenedBSD. :)


##Beastie Bits


##Feedback/Questions


  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

]]> Err codemadness.org 70 i 37064
Err codemadness.org 70 i 37065 Err codemadness.org 70 i 37066 Byproducts of reading OpenBSD’s netcat code, learnings from porting your own projects to FreeBSD, OpenBSD’s unveil(), NetBSD’s Virtual Machine Monitor, what 'dependency' means in Unix init systems, jailing bhyve, and more.
Err codemadness.org 70 i 37067

##Headlines
###The byproducts of reading OpenBSD netcat code

When I took part in a training last year, I heard about netcat for the first time. During that class, the tutor showed some hacks and tricks of using netcat which appealed to me and motivated me to learn the guts of it. Fortunately, in the past 2 months, I was not so busy that I can spend my spare time to dive into OpenBSD‘s netcat source code, and got abundant byproducts during this process.
(1) Brush up socket programming. I wrote my first network application more than 10 years ago, and always think the socket APIs are marvelous. Just ~10 functions (socket, bind, listen, accept…) with some IO multiplexing buddies (select, poll, epoll…) connect the whole world, wonderful! From that time, I developed a habit that is when touching a new programming language, network programming is an essential exercise. Even though I don’t write socket related code now, reading netcat socket code indeed refresh my knowledge and teach me new stuff.
(2) Write a tutorial about netcat. I am mediocre programmer and will forget things when I don’t use it for a long time. So I just take notes of what I think is useful. IMHO, this “tutorial” doesn’t really mean teach others something, but just a journal which I can refer when I need in the future.
(3) Submit patches to netcat. During reading code, I also found bugs and some enhancements. Though trivial contributions to OpenBSD, I am still happy and enjoy it.
(4) Implement a C++ encapsulation of libtls. OpenBSD‘s netcat supports tls/ssl connection, but it needs you take full care of resource management (memory, socket, etc), otherwise a small mistake can lead to resource leak which is fatal for long-live applications (In fact, the two bugs I reported to OpenBSD are all related resource leak). Therefore I develop a simple C++ library which wraps the libtls and hope it can free developer from this troublesome problem and put more energy in application logic part.
Long story to short, reading classical source code is a rewarding process, and you can consider to try it yourself.


###What I learned from porting my projects to FreeBSD

  • Introduction

I set up a local FreeBSD VirtualBox VM to test something, and it seems to work very well. Due to the novelty factor, I decided to get my software projects to build and pass the tests there.


##News Roundup
###OpenBSD’s unveil()

One of the key aspects of hardening the user-space side of an operating system is to provide mechanisms for restricting which parts of the filesystem hierarchy a given process can access. Linux has a number of mechanisms of varying capability and complexity for this purpose, but other kernels have taken a different approach. Over the last few months, OpenBSD has inaugurated a new system call named unveil() for this type of hardening that differs significantly from the mechanisms found in Linux.
The value of restricting access to the filesystem, from a security point of view, is fairly obvious. A compromised process cannot exfiltrate data that it cannot read, and it cannot corrupt files that it cannot write. Preventing unwanted access is, of course, the purpose of the permissions bits attached to every file, but permissions fall short in an important way: just because a particular user has access to a given file does not necessarily imply that every program run by that user should also have access to that file. There is no reason why your PDF viewer should be able to read your SSH keys, for example. Relying on just the permission bits makes it easy for a compromised process to access files that have nothing to do with that process’s actual job.
In a Linux system, there are many ways of trying to restrict that access; that is one of the purposes behind the Linux security module (LSM) architecture, for example. The SELinux LSM uses a complex matrix of labels and roles to make access-control decisions. The AppArmor LSM, instead, uses a relatively simple table of permissible pathnames associated with each application; that approach was highly controversial when AppArmor was first merged, and is still looked down upon by some security developers. Mount namespaces can be used to create a special view of the filesystem hierarchy for a set of processes, rendering much of that hierarchy invisible and, thus, inaccessible. The seccomp mechanism can be used to make decisions on attempts by a process to access files, but that approach is complex and error-prone. Yet another approach can be seen in the Qubes OS distribution, which runs applications in virtual machines to strictly control what they can access.
Compared to many of the options found in Linux, unveil() is an exercise in simplicity. This system call, introduced in July, has this prototype:

int unveil(const char *path, const char *permissions);

A process that has never called unveil() has full access to the filesystem hierarchy, modulo the usual file permissions and any restrictions that may have been applied by calling pledge(). Calling unveil() for the first time will “drop a veil” across the entire filesystem, rendering the whole thing invisible to the process, with one exception: the file or directory hierarchy starting at path will be accessible with the given permissions. The permissions string can contain any of “r” for read access, “w” for write, “x” for execute, and “c” for the ability to create or remove the path.
Subsequent calls to unveil() will make other parts of the filesystem hierarchy accessible; the unveil() system call itself still has access to the entire hierarchy, so there is no problem with unveiling distinct subtrees that are, until the call is made, invisible to the process. If one unveil() call applies to a subtree of a hierarchy unveiled by another call, the permissions associated with the more specific call apply.
Calling unveil() with both arguments as null will block any further calls, setting the current view of the filesystem in stone. Calls to unveil() can also be blocked using pledge(). Either way, once the view of the filesystem has been set up appropriately, it is possible to lock it so that the process cannot expand its access in the future should it be taken over and turn hostile.
unveil() thus looks a bit like AppArmor, in that it is a path-based mechanism for restricting access to files. In either case, one must first study the program in question to gain a solid understanding of which files it needs to access before closing things down, or the program is likely to break. One significant difference (beyond the other sorts of behavior that AppArmor can control) is that AppArmor’s permissions are stored in an external policy file, while unveil() calls are made by the application itself. That approach keeps the access rules tightly tied to the application and easy for the developers to modify, but it also makes it harder for system administrators to change them without having to rebuild the application from source.
One can certainly aim a number of criticisms at unveil() — all of the complaints that have been leveled at path-based access control and more. But the simplicity of unveil() brings a certain kind of utility, as can be seen in the large number of OpenBSD applications that are being modified to use it. OpenBSD is gaining a base level of protection against unintended program behavior; while it is arguably possible to protect a Linux system to a much greater extent, the complexity of the mechanisms involved keeps that from happening in a lot of real-world deployments. There is a certain kind of virtue to simplicity in security mechanisms.


###NetBSD Virtual Machine Monitor (NVVM)

  • NetBSD Virtual Machine Monitor

The NVMM driver provides hardware-accelerated virtualization support on NetBSD. It is made of an ~MI frontend, to which MD backends can be plugged. A virtualization API is provided in libnvmm, that allows to easily create and manage virtual machines via NVMM. Two additional components are shipped as demonstrators, toyvirt and smallkern: the former is a toy virtualizer, that executes in a VM the 64bit ELF binary given as argument, the latter is an example of such binary.

  • Download

The source code of NVMM, plus the associated tools, can be downloaded here.

  • Technical details

NVMM can support up to 128 virtual machines, each having a maximum of 256 VCPUs and 4GB of RAM.
Each virtual machine is granted access to most of the CPU registers: the GPRs (obviously), the Segment Registers, the Control Registers, the Debug Registers, the FPU (x87 and SSE), and several MSRs.
Events can be injected in the virtual machines, to emulate device interrupts. A delay mechanism is used, and allows VMM software to schedule the interrupt right when the VCPU can receive it. NMIs can be injected as well, and use a similar mechanism.
The host must always be x86_64, but the guest has no constraint on the mode, so it can be x86_32, PAE, real mode, and so on.
The TSC of each VCPU is always re-based on the host CPU it is executing on, and is therefore guaranteed to increase regardless of the host CPU. However, it may not increase monotonically, because it is not possible to fully hide the host effects on the guest during #VMEXITs.
When there are more VCPUs than the host TLB can deal with, NVMM uses a shared ASID, and flushes the shared-ASID VCPUs on each VM switch.
The different intercepts are configured in such a way that they cover everything that needs to be emulated. In particular, the LAPIC can be emulated by VMM software, by intercepting reads/writes to the LAPIC page in memory, and monitoring changes to CR8 in the exit state.


###What ‘dependency’ means in Unix init systems is underspecified (utoronto.ca)

I was reading Davin McCall’s On the vagaries of init systems (via) when I ran across the following, about the relationship between various daemons (services, etc):
I do not see any compelling reason for having ordering relationships without actual dependency, as both Nosh and Systemd provide for. In comparison, Dinit’s dependencies also imply an ordering, which obviates the need to list a dependency twice in the service description.
Well, this may be an easy one but it depends on what an init system means by ‘dependency’. Let’s consider ®syslog and the SSH daemon. I want the syslog daemon to be started before the SSH daemon is started, so that the SSH daemon can log things to it from the beginning. However, I very much do not want the SSH daemon to not be started (or to be shut down) if the syslog daemon fails to start or later fails. If syslog fails, I still want the SSH daemon to be there so that I can perhaps SSH in to the machine and fix the problem.
This is generally true of almost all daemons; I want them to start after syslog, so that they can syslog things, but I almost never want them to not be running if syslog failed. (And if for some reason syslog is not configured to start, I want enabling and starting, say, SSH, to also enable and start the syslog daemon.)
In general, there are three different relationships between services that I tend to encounter:

  • a hard requirement, where service B is useless or dangerous without service A. For instance, many NFS v2 and NFS v3 daemons basically don’t function without the RPC portmapper alive and active. On any number of systems, firewall rules being in place are a hard requirement to start most network services; you would rather your network services not start at all than that they start without your defenses in place.

  • a want, where service B wants service A to be running before B starts up, and service A should be started even if it wouldn’t otherwise be, but the failure of A still leaves B functional. Many daemons want the syslog daemon to be started before they start but will run without it, and often you want them to do so so that at least some of the system works even if there is, say, a corrupt syslog configuration file that causes the daemon to error out on start. (But some environments want to hard-fail if they can’t collect security related logging information, so they might make rsyslogd a requirement instead of a want.)

  • an ordering, where if service A is going to be started, B wants to start after it (or before it), but B isn’t otherwise calling for A to be started. We have some of these in our systems, where we need NFS mounts done before cron starts and runs people’s @reboot jobs but neither cron nor NFS mounts exactly or explicitly want each other. (The system as a whole wants both, but that’s a different thing.)

Given these different relationships and the implications for what the init system should do in different situations, talking about ‘dependency’ in it systems is kind of underspecified. What sort of dependency? What happens if one service doesn’t start or fails later?
My impression is that generally people pick a want relationship as the default meaning for init system ‘dependency’. Usually this is fine; most services aren’t actively dangerous if one of their declared dependencies fails to start, and it’s generally harmless on any particular system to force a want instead of an ordering relationship because you’re going to be starting everything anyway.

  • (In my example, you might as well say that cron on the systems in question wants NFS mounts. There is no difference in practice; we already always want to do NFS mounts and start cron.)

###Jailing The bhyve Hypervisor

As FreeBSD nears the final 12.0-RELEASE release engineering cycles, I’d like to take a moment to document a cool new feature coming in 12: jailed bhyve.
You may notice that I use HardenedBSD instead of FreeBSD in this article. There is no functional difference in bhyve on HardenedBSD versus bhyve on FreeBSD. The only difference between HardenedBSD and FreeBSD is the aditional security offered by HardenedBSD.
The steps I outline here work for both FreeBSD and HardenedBSD. These are the bare minimum steps, no extra work needed for either FreeBSD or HardenedBSD.

  • A Gentle History Lesson

At work in my spare time, I’m helping develop a malware lab. Due to the nature of the beast, we would like to use bhyve on HardenedBSD. Starting with HardenedBSD 12, non-Cross-DSO CFI, SafeStack, Capsicum, ASLR, and strict WX are all applied to bhyve, making it an extremely hardened hypervisor.
So, the work to support jailed bhyve is sponsored by both HardenedBSD and my employer. We’ve also jointly worked on other bhyve hardening features, like protecting the VM’s address space using guard pages (mmap(…, MAP_GUARD, …)). Further work is being done in a project called “malhyve.” Only those modifications to bhyve/malhyve that make sense to upstream will be upstreamed.

  • Initial Setup

We will not go through the process of creating the jail’s filesystem. That process is documented in the FreeBSD Handbook. For UEFI guests, you will need to install the uefi-edk2-bhyve package inside the jail.
I network these jails with traditional jail networking. I have tested vnet jails with this setup, and that works fine, too. However, there is no real need to hook the jail up to any network so long as bhyve can access the tap device. In some cases, the VM might not need networking, in which case you can use a network-less VM in a network-less jail.
By default, access to the kernel side of bhyve is disabled within jails. We need to set allow.vmm in our jail.conf entry for the bhyve jail.

  • We will use the following in our jail, so we will need to set up devfs(8) rules for them:

  • A ZFS volume

  • A null-modem device (nmdm(4))

  • UEFI GOP (no devfs rule, but IP assigned to the jail)

  • A tap device

  • Conclusion

The bhyve hypervisor works great within a jail. When combined with HardenedBSD, bhyve is extremely hardened:

  • PaX ASLR is fully applied due to compilation as a Position-Independent Executable (HardenedBSD enhancement)
  • PaX NOEXEC is fully applied (strict WX) (HardenedBSD enhancement)
  • Non-Cross-DSO CFI is fully applied (HardenedBSD enhancement)
  • Full RELRO (RELRO + BIND_NOW) is fully applied (HardenedBSD enhancement)
  • SafeStack is applied to the application (HardenedBSD enhancement)
  • Jailed (FreeBSD feature written by HardenedBSD)
  • Virtual memory protected with guard pages (FreeBSD feature written by HardenedBSD)
  • Capsicum is fully applied (FreeBSD feature)

Bad guys are going to have a hard time breaking out of the userland components of bhyve on HardenedBSD. :)


##Beastie Bits


##Feedback/Questions


  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

]]> Err codemadness.org 70 i 37068
Err codemadness.org 70 i 37069 https://fireside.fm/player/v2/FYhhasNR+fhfXeW-_ Err codemadness.org 70 i 37070 Err codemadness.org 70 i 37071 ]]> Err codemadness.org 70 i 37072 Err codemadness.org 70 i 37073
Err codemadness.org 70 i 37074 Err codemadness.org 70 i 37075 Episode 271: Automatic Drive Tests | BSD Now 271 Err codemadness.org 70 i 37076 https://www.bsdnow.tv/271 Err codemadness.org 70 i 37077 http://feed.jupiter.zone/bsdnow#entry-2867 Err codemadness.org 70 i 37078 Thu, 08 Nov 2018 01:00:00 -0800 Err codemadness.org 70 i 37079 Allan Jude Err codemadness.org 70 i 37080 Err codemadness.org 70 i 37081 full Err codemadness.org 70 i 37082 Allan Jude Err codemadness.org 70 i 37083 MidnightBSD 1.0 released, MeetBSD review, EuroBSDcon trip reports, DNS over TLS in FreeBSD 12, Upgrading OpenBSD with Ansible, how to use smartd to run tests on your drives automatically, and more. Err codemadness.org 70 i 37084 1:08:01 Err codemadness.org 70 i 37085 no Err codemadness.org 70 i 37086 Err codemadness.org 70 i 37087 MidnightBSD 1.0 released, MeetBSD review, EuroBSDcon trip reports, DNS over TLS in FreeBSD 12, Upgrading OpenBSD with Ansible, how to use smartd to run tests on your drives automatically, and more. Err codemadness.org 70 i 37088 <p>##Headlines<br> Err codemadness.org 70 i 37089 <a href="https://www.midnightbsd.org/news/">MidnightBSD 1.0 now available</a></p> Err codemadness.org 70 i 37090 <blockquote> Err codemadness.org 70 i 37091 <p>I’m happy to announce the availability of MidnightBSD 1.0 for amd64 and i386. Over the years, many ambitious goals were set for our 1.0 release. As it approached, it was clear we wouldn’t be able to accomplish all of them. This release is more of a natural progression rather than a groundbreaking event. It includes many updates to the base system, improvements to the package manager, an updated compiler, and tools.<br> Err codemadness.org 70 i 37092 Of particular note, you can now boot off of ZFS and use NVME SSDs and some AMD Radeon graphics cards support acceleration. AMD Ryzen support has greatly improved in this release. We also have added bhyve from FreeBSD.<br> Err codemadness.org 70 i 37093 The 1.0 release is finally available. Still building packages for i386 and plan to do an amd64 package build later in the week. The single largest issue with the release process has been the web server performance. The CPU is overloaded and has been at solid 100% for several days. The server has a core i7 7700 in it. I’m trying to figure out what to buy as an upgrade so that we don’t continue to have this issue going forward. As it’s actually blocked in multiple processes, a 6 or 8 core chip might be an improvement for the workload…</p> Err codemadness.org 70 i 37094 </blockquote> Err codemadness.org 70 i 37095 <ul> Err codemadness.org 70 i 37096 <li>Download links: <a href="https://www.midnightbsd.org/download/">https://www.midnightbsd.org/download/</a></li> Err codemadness.org 70 i 37097 <li><a href="https://www.youtube.com/watch?time_continue=33&amp;v=-rlk2wFsjJ4">https://www.youtube.com/watch?time_continue=33&amp;v=-rlk2wFsjJ4</a></li> Err codemadness.org 70 i 37098 </ul> Err codemadness.org 70 i 37099 <hr> Err codemadness.org 70 i 37100 <p>###<a href="https://linuxunplugged.com/articles/meetbsd2018">MeetBSD Review</a></p> Err codemadness.org 70 i 37101 <blockquote> Err codemadness.org 70 i 37102 <p>MeetBSD 2018 took place at the sprawling Intel Santa Clara campus. The venue itself felt more like an olive branch than a simple friendly gesture by Intel. In truth it felt like a bit of an apology. You get the subtle sense they feel bad about how the BSD’s were treated with the Meltdown and Specter flaws. In fact, you may be right to think they felt a bit sorry towards the entire open source community.</p> Err codemadness.org 70 i 37103 </blockquote> Err codemadness.org 70 i 37104 <ul> Err codemadness.org 70 i 37105 <li>MeetBSD 2018</li> Err codemadness.org 70 i 37106 </ul> Err codemadness.org 70 i 37107 <blockquote> Err codemadness.org 70 i 37108 <p>At most massive venues the parking is the first concern, not so here - in fact that was rather straightforward. No, the real challenge is navigating the buildings. Luckily I had help from navigator extraordinaire, Hadea, who located the correct building, SC12 quickly. Finding the entrance took a moment or two though. The lobby itself was converted by iXsystems efficiently into the MeetBSD expo hall, clean, efficient and roomy with registration, some seating, and an extra conference room for on-on-one sessions. On day two sponsor booths were also setup. All who showed up on day one were warmly greeted with badges, lanyards and goodies by Denise and her friendly team.<br> Err codemadness.org 70 i 37109 Like every great BSD event, plenty of food was made available. And as always they make it look effortless. These events showcase iXsystem’s inherent generosity toward its community; with breakfast items in the back of the main auditorium room in the morning, boxed lunches, fruit and cookies at lunch time, and snacks for the rest of the day. But just in case your still hungry, there is a pizza meetup in another Intel room after day one and two.<br> Err codemadness.org 70 i 37110 MeetBSD leverages it’s realistically small crowd size on day one. The morning starts off with introductions of the entire group, the mic is passed around the room.<br> Err codemadness.org 70 i 37111 The group is a good mix of pros in the industry (such as Juniper, Intel, Ebay, Groupon, Cisco, etc), iX staff, and a few enthusiast. Lots of people with a focus or passion for networking. And, of course, some friendly Linux bashing went down for good measure, always followed by a good natured chuckle.</p> Err codemadness.org 70 i 37112 </blockquote> Err codemadness.org 70 i 37113 <ul> Err codemadness.org 70 i 37114 <li>MeetBSD Gives me The Feels</li> Err codemadness.org 70 i 37115 </ul> Err codemadness.org 70 i 37116 <blockquote> Err codemadness.org 70 i 37117 <p>I find that I am subtly unnerved at this venue, and at lunch I saw it clearly. I have always had a strong geek radar, allowing me to navigate a new area (like Berkeley for MeetBSD of 2016, or even SCALE earlier this year in Pasadena), and in a glance I can see who is from my conference and who isn’t. This means it is easy, nearly effortless to know who to greet with a smile and a wave. These are MY people. Here at the Intel campus though it is different. The drive in alone reveals behemoth complexes all with well known tech names prominently displayed. This is Silicon Valley, and all of these people look like MY people. So much for knowing who’s from my conference. Thank goodness for those infamous BSD horns. None-the-less I am struck by how massive these tech giants are. And Intel is one of the largest of those giants, and see the physical reminders of this fact brought home the significance that they had opened their doors, wifi, and bathrooms to the BSD community.</p> Err codemadness.org 70 i 37118 </blockquote> Err codemadness.org 70 i 37119 <hr> Err codemadness.org 70 i 37120 <p>###[EuroBSDcon 2018 Trip Reports]<br> Err codemadness.org 70 i 37121 <a href="https://www.freebsdfoundation.org/blog/eurobsd-2018-trip-report-joseph-mingrone/">https://www.freebsdfoundation.org/blog/eurobsd-2018-trip-report-joseph-mingrone/</a><br> Err codemadness.org 70 i 37122 <a href="https://www.freebsdfoundation.org/blog/eurobsd-2018-trip-report-vinicius-zavam/">https://www.freebsdfoundation.org/blog/eurobsd-2018-trip-report-vinicius-zavam/</a><br> Err codemadness.org 70 i 37123 <a href="https://www.freebsdfoundation.org/blog/eurobsd-2018-trip-report-emmanuel-vadot/">https://www.freebsdfoundation.org/blog/eurobsd-2018-trip-report-emmanuel-vadot/</a></p> Err codemadness.org 70 i 37124 <hr> Err codemadness.org 70 i 37125 <p>##News Roundup<br> Err codemadness.org 70 i 37126 <a href="https://blog.des.no/2018/10/dns-over-tls-in-freebsd-12/">DNS over TLS in FreeBSD 12</a></p> Err codemadness.org 70 i 37127 <blockquote> Err codemadness.org 70 i 37128 <p>With the arrival of OpenSSL 1.1.1, an upgraded Unbound, and some changes to the setup and init scripts, FreeBSD 12.0, currently in beta, now supports DNS over TLS out of the box.<br> Err codemadness.org 70 i 37129 DNS over TLS is just what it sounds like: DNS over TCP, but wrapped in a TLS session. It encrypts your requests and the server’s replies, and optionally allows you to verify the identity of the server. The advantages are protection against eavesdropping and manipulation of your DNS traffic; the drawbacks are a slight performance degradation and potential firewall traversal issues, as it runs over a non-standard port (TCP port 853) which may be blocked on some networks. Let’s take a look at how to set it up.</p> Err codemadness.org 70 i 37130 </blockquote> Err codemadness.org 70 i 37131 <ul> Err codemadness.org 70 i 37132 <li>Conclusion</li> Err codemadness.org 70 i 37133 </ul> Err codemadness.org 70 i 37134 <blockquote> Err codemadness.org 70 i 37135 <p>We’ve seen how to set up Unbound—specifically, the local_unbound service in FreeBSD 12.0—to use DNS over TLS instead of plain UDP or TCP, using Cloudflare’s public DNS service as an example. We’ve looked at the performance impact, and at how to ensure (and verify) that Unbound validates the server certificate to prevent man-in-the-middle attacks.<br> Err codemadness.org 70 i 37136 The question that remains is whether it is all worth it. There is undeniably a performance hit, though this may improve with TLS 1.3. More importantly, there are currently very few DNS-over-TLS providers—only one, really, since Quad9 filter their responses—and you have to weigh the advantage of encrypting your DNS traffic against the disadvantage of sending it all to a single organization. I can’t answer that question for you, but I can tell you that the parameters are evolving quickly, and if your answer is negative today, it may not remain so for long. More providers will appear. Performance will improve with TLS 1.3 and QUIC. Within a year or two, running DNS over TLS may very well become the rule rather than the experimental exception.</p> Err codemadness.org 70 i 37137 </blockquote> Err codemadness.org 70 i 37138 <hr> Err codemadness.org 70 i 37139 <p>###<a href="https://chown.me/blog/upgrading-openbsd-with-ansible.html">Upgrading OpenBSD with Ansible</a></p> Err codemadness.org 70 i 37140 <ul> Err codemadness.org 70 i 37141 <li>My router runs OpenBSD -current</li> Err codemadness.org 70 i 37142 </ul> Err codemadness.org 70 i 37143 <blockquote> Err codemadness.org 70 i 37144 <p>A few months ago, I needed software that had just hit the ports tree. I didn’t want to wait for the next release, so I upgraded my router to use -current. Since then, I’ve continued running -current, which means upgrading to a newer snapshot every so often. Running -current is great, but the process of updating to a newer snapshot was cumbersome. Initially, I had to plug in a serial cable and then reboot into bsd.rd, hit enter ten times, then reboot, run sysmerge and update packages.<br> Err codemadness.org 70 i 37145 I eventually switched to upobsd to be able to upgrade without the need for a serial connection. The process was better, but still tiresome. Usually, I would prepare the special version of bsd.rd, boot on bsd.rd, and do something like wash the dishes in the meantime. After about ten minutes, I would dry my hands and then go back to my workstation to see whether the bsd.rd part had finished so I could run sysmerge and pkgadd, and then return to the dishes while it upgraded packages.<br> Err codemadness.org 70 i 37146 Out of laziness, I thought: “I should automate this,” but what happened instead is that I simply didn’t upgrade that machine very often. (Yes, laziness). With my router out of commission, life is very dull, because it is my gateway to the Internet. Even services hosted at my place (like my Mastodon instance) are not reachable when the router is down because I use multiple VLANs (so I need the router to jump across VLANs).</p> Err codemadness.org 70 i 37147 </blockquote> Err codemadness.org 70 i 37148 <ul> Err codemadness.org 70 i 37149 <li>Ansible Reboot Module</li> Err codemadness.org 70 i 37150 </ul> Err codemadness.org 70 i 37151 <blockquote> Err codemadness.org 70 i 37152 <p>I recently got a new job, and one of my first tasks was auditing the Ansible roles written by my predecessors. In one role, the machine rebooted and they used the waitforconnection module to wait for it to come back up. That sounded quite hackish to me, so out of curiosity, I tried to determine whether there was a better way. I also thought I might be able to use something similar to further automate my OpenBSD upgrades, and wanted to assess the cleanliness of this method. ;-)<br> Err codemadness.org 70 i 37153 I learned that with the then-upcoming 2.7 Ansible release, a proper reboot module would be included. I went to the docs, which stated that for a certain parameter:<br> Err codemadness.org 70 i 37154 I took this to mean that there was no support for OpenBSD. I looked at the code and, indeed, there was not. However, I believed that it wouldn’t be too hard to add it. I added the missing pieces for OpenBSD, tested it on my poor Pine64 and then submitted it upstream. After a quick back and forth, the module’s author merged it into devel (having a friend working at Red Hat helped the process, merci Cyril !) A couple days later, the release engineer merged it into stable-2.7.<br> Err codemadness.org 70 i 37155 I proceeded to actually write the playbook, and then I hit a bug. The parameter reboottimeout was not recognized by Ansible. This feature would definitely be useful on a slow machine (such as the Pine64 and its dying SD card). Again, my fix was merged into master by the module’s author and then merged into stable-2.7. 2.7.1 will be the first release to feature these fixes, but if you use OpenBSD -current, you already have access to them. I backported the patches when I updated ansible.<br> Err codemadness.org 70 i 37156 Fun fact about Ansible and reboots: “The winreboot module was […] included with Ansible 2.1,” while for unix systems it wasn’t added until 2.7. :D For more details, you can read the module’s author blog article.</p> Err codemadness.org 70 i 37157 </blockquote> Err codemadness.org 70 i 37158 <ul> Err codemadness.org 70 i 37159 <li>The explanations</li> Err codemadness.org 70 i 37160 </ul> Err codemadness.org 70 i 37161 <blockquote> Err codemadness.org 70 i 37162 <p>Ansible runs my script on the remote host to fetch the sets. It creates an answer file from the template and then gives it to upobsd. Once upobsd has created the kernel, Ansible copies it in place of /bsd on the host. The router reboots and boots on /bsd, which is upobsd’s bsd.rd. The installer runs in autoupdate mode. Once it comes back from bsd.rd land, it archives the kernel and finishes by upgrading all the packages.<br> Err codemadness.org 70 i 37163 It also supports upgrading without fetching the sets ahead of time. For instance, I upgrade this way on my Pine64 because if I cared about speed, I wouldn’t use this weak computer with its dying SD card. For this case, I just comment out the pathsets variable and Ansible instead creates an answer file that will instruct the installer to fetch the sets from the designated mirror.<br> Err codemadness.org 70 i 37164 I’ve been archiving my kernels for a few years. It’s a nice way to fill up / keep a history of my upgrades. If I spot a regression, I can try a previous kernel … which may not work with the then-desynchronized userland, but that’s another story.<br> Err codemadness.org 70 i 37165 sysmerge already runs with rc.sysmerge in batch mode and sends the result by email. I don’t think there’s merit to running it again in the playbook. The only perk would be discovering in the terminal whether any files need to be manually merged, rather than reading exactly the same output in the email.<br> Err codemadness.org 70 i 37166 Initially, I used the openbsdpkg module, but it doesn’t work on -current just before a release because pkgadd automatically looks for pub/OpenBSD/${release}/packages/${arch} (which is empty). I wrote and tested this playbook while 6.4 was around the corner, so I switched to command to be able to pass the -Dsnap parameter.</p> Err codemadness.org 70 i 37167 </blockquote> Err codemadness.org 70 i 37168 <ul> Err codemadness.org 70 i 37169 <li>The result</li> Err codemadness.org 70 i 37170 </ul> Err codemadness.org 70 i 37171 <blockquote> Err codemadness.org 70 i 37172 <p>I’m very happy with the playbook! It performs the upgrade with as little intervention as possible and minimal downtime. \o/</p> Err codemadness.org 70 i 37173 </blockquote> Err codemadness.org 70 i 37174 <hr> Err codemadness.org 70 i 37175 <p>###<a href="https://dan.langille.org/2018/11/04/using-smartd-to-automatically-run-tests-on-your-drives/">Using smartd to automatically run tests on your drives</a></p> Err codemadness.org 70 i 37176 <blockquote> Err codemadness.org 70 i 37177 <p>Those programs can “control and monitor storage systems using the Self-Monitoring, Analysis and Reporting Technology System (SMART) built into most modern ATA/SATA, SCSI/SAS and NVMe disks. In many cases, these utilities will provide advanced warning of disk degradation and failure.” See the smartmontools website for more information.</p> Err codemadness.org 70 i 37178 </blockquote> Err codemadness.org 70 i 37179 <blockquote> Err codemadness.org 70 i 37180 <p>NOTE: “Due to OS-specific issues and also depending on the different state of smartmontools development on the platforms, device support is not the same for all OS platforms.” – use the documentation for your OS.</p> Err codemadness.org 70 i 37181 </blockquote> Err codemadness.org 70 i 37182 <blockquote> Err codemadness.org 70 i 37183 <p>I first started using smartd in March 2010 (according to that blog post, that’s when I still writing on both The FreeBSD Diary and this blog). Back then, and until recently, all I did was start smartd. As far as I can tell, all it did was send daily status messages via the FreeBSD periodic tools. I would set my drive devices via dailystatussmartdevices in /etc/periodic.conf and the daily status reports would include drive health information.</p> Err codemadness.org 70 i 37184 </blockquote> Err codemadness.org 70 i 37185 <ul> Err codemadness.org 70 i 37186 <li>Two types of tests</li> Err codemadness.org 70 i 37187 <li>My original abandoned attempt</li> Err codemadness.org 70 i 37188 <li>How do you prove it works?</li> Err codemadness.org 70 i 37189 <li>Looking at the test results</li> Err codemadness.org 70 i 37190 <li>Failed drive to the rescue</li> Err codemadness.org 70 i 37191 <li>smartd.conf I am using</li> Err codemadness.org 70 i 37192 <li>supernews</li> Err codemadness.org 70 i 37193 </ul> Err codemadness.org 70 i 37194 <hr> Err codemadness.org 70 i 37195 <p>##Beastie Bits</p> Err codemadness.org 70 i 37196 <ul> Err codemadness.org 70 i 37197 <li><a href="https://mwl.io/archives/3833">Decent Pics of “Relayd &amp; Httpd Mastery” signature</a></li> Err codemadness.org 70 i 37198 <li><a href="https://twitter.com/0xUID/status/1051208357850345472?s=20">A Unix Shell poster from 1983</a></li> Err codemadness.org 70 i 37199 <li><a href="https://www.meetup.com/UNIX-historians/">Cambridge UNIX historians (Cambridge, United Kingdom)</a></li> Err codemadness.org 70 i 37200 <li><a href="https://hackmd.io/Yv46aOjTS0eYk0m4YLXOTw#">Goals for FreeBSD 13</a></li> Err codemadness.org 70 i 37201 <li><a href="https://www.freebsdfoundation.org/blog/september-october-2018-issue-of-the-freebsd-journal-now-available/">September/October 2018 Issue of the FreeBSD Journal Now Available</a></li> Err codemadness.org 70 i 37202 <li><a href="https://blog.netbsd.org/tnf/entry/using_acme_sh_for_let">Using acme.sh for Let’s Encrypt certificates on pkgsrc.org servers</a></li> Err codemadness.org 70 i 37203 <li><a href="https://jonwillia.ms/2018/09/23/anycast-dns-openbsd">Deploying Anycast DNS Using OpenBSD and BGP</a></li> Err codemadness.org 70 i 37204 <li><a href="https://dataswamp.org/~solene/2017-03-17-integrity.html">How to check your data integrity?</a></li> Err codemadness.org 70 i 37205 </ul> Err codemadness.org 70 i 37206 <hr> Err codemadness.org 70 i 37207 <p>##Feedback/Questions</p> Err codemadness.org 70 i 37208 <ul> Err codemadness.org 70 i 37209 <li>Raymond - <a href="http://dpaste.com/0KNXTJF">MeetBSD California</a> Err codemadness.org 70 i 37210 <ul> Err codemadness.org 70 i 37211 <li>Dev Summit Videos: <a href="https://www.youtube.com/playlist?list=PLb87fdKUIo8TNG6f94xo9_W-XXrEbqgWI">https://www.youtube.com/playlist?list=PLb87fdKUIo8TNG6f94xo9_W-XXrEbqgWI</a></li> Err codemadness.org 70 i 37212 <li>Conference Videos: <a href="https://www.youtube.com/playlist?list=PLb87fdKUIo8Q41aoPE6vssP-uF4dxk86b">https://www.youtube.com/playlist?list=PLb87fdKUIo8Q41aoPE6vssP-uF4dxk86b</a></li> Err codemadness.org 70 i 37213 <li>Conference videos are still being processed, the rest should appear over the next few weeks.</li> Err codemadness.org 70 i 37214 </ul> Err codemadness.org 70 i 37215 </li> Err codemadness.org 70 i 37216 <li>Greg - <a href="http://dpaste.com/1W29RSK">Stable vs Release</a></li> Err codemadness.org 70 i 37217 <li>Mjrodriguez - <a href="http://dpaste.com/2XKMR6B#wrap">Open/FreeBSD support for Single Board computers</a></li> Err codemadness.org 70 i 37218 </ul> Err codemadness.org 70 i 37219 <hr> Err codemadness.org 70 i 37220 <ul> Err codemadness.org 70 i 37221 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 37222 </ul> Err codemadness.org 70 i 37223 <hr> Err codemadness.org 70 i 37224 Err codemadness.org 70 i 37225 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, midnightbsd, eurobsdcon, ansible, dns Err codemadness.org 70 i 37226 Err codemadness.org 70 i 37227 MidnightBSD 1.0 released, MeetBSD review, EuroBSDcon trip reports, DNS over TLS in FreeBSD 12, Upgrading OpenBSD with Ansible, how to use smartd to run tests on your drives automatically, and more.

Err codemadness.org 70 i 37228 Err codemadness.org 70 i 37229

##Headlines
Err codemadness.org 70 i 37230 ###MidnightBSD 1.0 now available

Err codemadness.org 70 i 37231 Err codemadness.org 70 i 37232
Err codemadness.org 70 i 37233

I’m happy to announce the availability of MidnightBSD 1.0 for amd64 and i386. Over the years, many ambitious goals were set for our 1.0 release. As it approached, it was clear we wouldn’t be able to accomplish all of them. This release is more of a natural progression rather than a groundbreaking event. It includes many updates to the base system, improvements to the package manager, an updated compiler, and tools.
Err codemadness.org 70 i 37234 Of particular note, you can now boot off of ZFS and use NVME SSDs and some AMD Radeon graphics cards support acceleration. AMD Ryzen support has greatly improved in this release. We also have added bhyve from FreeBSD.
Err codemadness.org 70 i 37235 The 1.0 release is finally available. Still building packages for i386 and plan to do an amd64 package build later in the week. The single largest issue with the release process has been the web server performance. The CPU is overloaded and has been at solid 100% for several days. The server has a core i7 7700 in it. I’m trying to figure out what to buy as an upgrade so that we don’t continue to have this issue going forward. As it’s actually blocked in multiple processes, a 6 or 8 core chip might be an improvement for the workload…

Err codemadness.org 70 i 37236
Err codemadness.org 70 i 37237 Err codemadness.org 70 i 37238 Err codemadness.org 70 i 37242 Err codemadness.org 70 i 37243


Err codemadness.org 70 i 37244 Err codemadness.org 70 i 37245

###MeetBSD Review

Err codemadness.org 70 i 37246 Err codemadness.org 70 i 37247
Err codemadness.org 70 i 37248

MeetBSD 2018 took place at the sprawling Intel Santa Clara campus. The venue itself felt more like an olive branch than a simple friendly gesture by Intel. In truth it felt like a bit of an apology. You get the subtle sense they feel bad about how the BSD’s were treated with the Meltdown and Specter flaws. In fact, you may be right to think they felt a bit sorry towards the entire open source community.

Err codemadness.org 70 i 37249
Err codemadness.org 70 i 37250 Err codemadness.org 70 i 37251
    Err codemadness.org 70 i 37252
  • MeetBSD 2018
  • Err codemadness.org 70 i 37253
Err codemadness.org 70 i 37254 Err codemadness.org 70 i 37255
Err codemadness.org 70 i 37256

At most massive venues the parking is the first concern, not so here - in fact that was rather straightforward. No, the real challenge is navigating the buildings. Luckily I had help from navigator extraordinaire, Hadea, who located the correct building, SC12 quickly. Finding the entrance took a moment or two though. The lobby itself was converted by iXsystems efficiently into the MeetBSD expo hall, clean, efficient and roomy with registration, some seating, and an extra conference room for on-on-one sessions. On day two sponsor booths were also setup. All who showed up on day one were warmly greeted with badges, lanyards and goodies by Denise and her friendly team.
Err codemadness.org 70 i 37257 Like every great BSD event, plenty of food was made available. And as always they make it look effortless. These events showcase iXsystem’s inherent generosity toward its community; with breakfast items in the back of the main auditorium room in the morning, boxed lunches, fruit and cookies at lunch time, and snacks for the rest of the day. But just in case your still hungry, there is a pizza meetup in another Intel room after day one and two.
Err codemadness.org 70 i 37258 MeetBSD leverages it’s realistically small crowd size on day one. The morning starts off with introductions of the entire group, the mic is passed around the room.
Err codemadness.org 70 i 37259 The group is a good mix of pros in the industry (such as Juniper, Intel, Ebay, Groupon, Cisco, etc), iX staff, and a few enthusiast. Lots of people with a focus or passion for networking. And, of course, some friendly Linux bashing went down for good measure, always followed by a good natured chuckle.

Err codemadness.org 70 i 37260
Err codemadness.org 70 i 37261 Err codemadness.org 70 i 37262
    Err codemadness.org 70 i 37263
  • MeetBSD Gives me The Feels
  • Err codemadness.org 70 i 37264
Err codemadness.org 70 i 37265 Err codemadness.org 70 i 37266
Err codemadness.org 70 i 37267

I find that I am subtly unnerved at this venue, and at lunch I saw it clearly. I have always had a strong geek radar, allowing me to navigate a new area (like Berkeley for MeetBSD of 2016, or even SCALE earlier this year in Pasadena), and in a glance I can see who is from my conference and who isn’t. This means it is easy, nearly effortless to know who to greet with a smile and a wave. These are MY people. Here at the Intel campus though it is different. The drive in alone reveals behemoth complexes all with well known tech names prominently displayed. This is Silicon Valley, and all of these people look like MY people. So much for knowing who’s from my conference. Thank goodness for those infamous BSD horns. None-the-less I am struck by how massive these tech giants are. And Intel is one of the largest of those giants, and see the physical reminders of this fact brought home the significance that they had opened their doors, wifi, and bathrooms to the BSD community.

Err codemadness.org 70 i 37268
Err codemadness.org 70 i 37269 Err codemadness.org 70 i 37270


Err codemadness.org 70 i 37271 Err codemadness.org 70 i 37272

###[EuroBSDcon 2018 Trip Reports]
Err codemadness.org 70 i 37273 https://www.freebsdfoundation.org/blog/eurobsd-2018-trip-report-joseph-mingrone/
Err codemadness.org 70 i 37274 https://www.freebsdfoundation.org/blog/eurobsd-2018-trip-report-vinicius-zavam/
Err codemadness.org 70 i 37275 https://www.freebsdfoundation.org/blog/eurobsd-2018-trip-report-emmanuel-vadot/

Err codemadness.org 70 i 37276 Err codemadness.org 70 i 37277


Err codemadness.org 70 i 37278 Err codemadness.org 70 i 37279

##News Roundup
Err codemadness.org 70 i 37280 ###DNS over TLS in FreeBSD 12

Err codemadness.org 70 i 37281 Err codemadness.org 70 i 37282
Err codemadness.org 70 i 37283

With the arrival of OpenSSL 1.1.1, an upgraded Unbound, and some changes to the setup and init scripts, FreeBSD 12.0, currently in beta, now supports DNS over TLS out of the box.
Err codemadness.org 70 i 37284 DNS over TLS is just what it sounds like: DNS over TCP, but wrapped in a TLS session. It encrypts your requests and the server’s replies, and optionally allows you to verify the identity of the server. The advantages are protection against eavesdropping and manipulation of your DNS traffic; the drawbacks are a slight performance degradation and potential firewall traversal issues, as it runs over a non-standard port (TCP port 853) which may be blocked on some networks. Let’s take a look at how to set it up.

Err codemadness.org 70 i 37285
Err codemadness.org 70 i 37286 Err codemadness.org 70 i 37287
    Err codemadness.org 70 i 37288
  • Conclusion
  • Err codemadness.org 70 i 37289
Err codemadness.org 70 i 37290 Err codemadness.org 70 i 37291
Err codemadness.org 70 i 37292

We’ve seen how to set up Unbound—specifically, the local_unbound service in FreeBSD 12.0—to use DNS over TLS instead of plain UDP or TCP, using Cloudflare’s public DNS service as an example. We’ve looked at the performance impact, and at how to ensure (and verify) that Unbound validates the server certificate to prevent man-in-the-middle attacks.
Err codemadness.org 70 i 37293 The question that remains is whether it is all worth it. There is undeniably a performance hit, though this may improve with TLS 1.3. More importantly, there are currently very few DNS-over-TLS providers—only one, really, since Quad9 filter their responses—and you have to weigh the advantage of encrypting your DNS traffic against the disadvantage of sending it all to a single organization. I can’t answer that question for you, but I can tell you that the parameters are evolving quickly, and if your answer is negative today, it may not remain so for long. More providers will appear. Performance will improve with TLS 1.3 and QUIC. Within a year or two, running DNS over TLS may very well become the rule rather than the experimental exception.

Err codemadness.org 70 i 37294
Err codemadness.org 70 i 37295 Err codemadness.org 70 i 37296


Err codemadness.org 70 i 37297 Err codemadness.org 70 i 37298

###Upgrading OpenBSD with Ansible

Err codemadness.org 70 i 37299 Err codemadness.org 70 i 37300
    Err codemadness.org 70 i 37301
  • My router runs OpenBSD -current
  • Err codemadness.org 70 i 37302
Err codemadness.org 70 i 37303 Err codemadness.org 70 i 37304
Err codemadness.org 70 i 37305

A few months ago, I needed software that had just hit the ports tree. I didn’t want to wait for the next release, so I upgraded my router to use -current. Since then, I’ve continued running -current, which means upgrading to a newer snapshot every so often. Running -current is great, but the process of updating to a newer snapshot was cumbersome. Initially, I had to plug in a serial cable and then reboot into bsd.rd, hit enter ten times, then reboot, run sysmerge and update packages.
Err codemadness.org 70 i 37306 I eventually switched to upobsd to be able to upgrade without the need for a serial connection. The process was better, but still tiresome. Usually, I would prepare the special version of bsd.rd, boot on bsd.rd, and do something like wash the dishes in the meantime. After about ten minutes, I would dry my hands and then go back to my workstation to see whether the bsd.rd part had finished so I could run sysmerge and pkg_add, and then return to the dishes while it upgraded packages.
Err codemadness.org 70 i 37307 Out of laziness, I thought: “I should automate this,” but what happened instead is that I simply didn’t upgrade that machine very often. (Yes, laziness). With my router out of commission, life is very dull, because it is my gateway to the Internet. Even services hosted at my place (like my Mastodon instance) are not reachable when the router is down because I use multiple VLANs (so I need the router to jump across VLANs).

Err codemadness.org 70 i 37308
Err codemadness.org 70 i 37309 Err codemadness.org 70 i 37310
    Err codemadness.org 70 i 37311
  • Ansible Reboot Module
  • Err codemadness.org 70 i 37312
Err codemadness.org 70 i 37313 Err codemadness.org 70 i 37314
Err codemadness.org 70 i 37315

I recently got a new job, and one of my first tasks was auditing the Ansible roles written by my predecessors. In one role, the machine rebooted and they used the wait_for_connection module to wait for it to come back up. That sounded quite hackish to me, so out of curiosity, I tried to determine whether there was a better way. I also thought I might be able to use something similar to further automate my OpenBSD upgrades, and wanted to assess the cleanliness of this method. ;-)
Err codemadness.org 70 i 37316 I learned that with the then-upcoming 2.7 Ansible release, a proper reboot module would be included. I went to the docs, which stated that for a certain parameter:
Err codemadness.org 70 i 37317 I took this to mean that there was no support for OpenBSD. I looked at the code and, indeed, there was not. However, I believed that it wouldn’t be too hard to add it. I added the missing pieces for OpenBSD, tested it on my poor Pine64 and then submitted it upstream. After a quick back and forth, the module’s author merged it into devel (having a friend working at Red Hat helped the process, merci Cyril !) A couple days later, the release engineer merged it into stable-2.7.
Err codemadness.org 70 i 37318 I proceeded to actually write the playbook, and then I hit a bug. The parameter reboot_timeout was not recognized by Ansible. This feature would definitely be useful on a slow machine (such as the Pine64 and its dying SD card). Again, my fix was merged into master by the module’s author and then merged into stable-2.7. 2.7.1 will be the first release to feature these fixes, but if you use OpenBSD -current, you already have access to them. I backported the patches when I updated ansible.
Err codemadness.org 70 i 37319 Fun fact about Ansible and reboots: “The win_reboot module was […] included with Ansible 2.1,” while for unix systems it wasn’t added until 2.7. :D For more details, you can read the module’s author blog article.

Err codemadness.org 70 i 37320
Err codemadness.org 70 i 37321 Err codemadness.org 70 i 37322
    Err codemadness.org 70 i 37323
  • The explanations
  • Err codemadness.org 70 i 37324
Err codemadness.org 70 i 37325 Err codemadness.org 70 i 37326
Err codemadness.org 70 i 37327

Ansible runs my script on the remote host to fetch the sets. It creates an answer file from the template and then gives it to upobsd. Once upobsd has created the kernel, Ansible copies it in place of /bsd on the host. The router reboots and boots on /bsd, which is upobsd’s bsd.rd. The installer runs in auto_update mode. Once it comes back from bsd.rd land, it archives the kernel and finishes by upgrading all the packages.
Err codemadness.org 70 i 37328 It also supports upgrading without fetching the sets ahead of time. For instance, I upgrade this way on my Pine64 because if I cared about speed, I wouldn’t use this weak computer with its dying SD card. For this case, I just comment out the path_sets variable and Ansible instead creates an answer file that will instruct the installer to fetch the sets from the designated mirror.
Err codemadness.org 70 i 37329 I’ve been archiving my kernels for a few years. It’s a nice way to fill up / keep a history of my upgrades. If I spot a regression, I can try a previous kernel … which may not work with the then-desynchronized userland, but that’s another story.
Err codemadness.org 70 i 37330 sysmerge already runs with rc.sysmerge in batch mode and sends the result by email. I don’t think there’s merit to running it again in the playbook. The only perk would be discovering in the terminal whether any files need to be manually merged, rather than reading exactly the same output in the email.
Err codemadness.org 70 i 37331 Initially, I used the openbsd_pkg module, but it doesn’t work on -current just before a release because pkg_add automatically looks for pub/OpenBSD/${release}/packages/${arch} (which is empty). I wrote and tested this playbook while 6.4 was around the corner, so I switched to command to be able to pass the -Dsnap parameter.

Err codemadness.org 70 i 37332
Err codemadness.org 70 i 37333 Err codemadness.org 70 i 37334
    Err codemadness.org 70 i 37335
  • The result
  • Err codemadness.org 70 i 37336
Err codemadness.org 70 i 37337 Err codemadness.org 70 i 37338
Err codemadness.org 70 i 37339

I’m very happy with the playbook! It performs the upgrade with as little intervention as possible and minimal downtime. \o/

Err codemadness.org 70 i 37340
Err codemadness.org 70 i 37341 Err codemadness.org 70 i 37342


Err codemadness.org 70 i 37343 Err codemadness.org 70 i 37344

###Using smartd to automatically run tests on your drives

Err codemadness.org 70 i 37345 Err codemadness.org 70 i 37346
Err codemadness.org 70 i 37347

Those programs can “control and monitor storage systems using the Self-Monitoring, Analysis and Reporting Technology System (SMART) built into most modern ATA/SATA, SCSI/SAS and NVMe disks. In many cases, these utilities will provide advanced warning of disk degradation and failure.” See the smartmontools website for more information.

Err codemadness.org 70 i 37348
Err codemadness.org 70 i 37349 Err codemadness.org 70 i 37350
Err codemadness.org 70 i 37351

NOTE: “Due to OS-specific issues and also depending on the different state of smartmontools development on the platforms, device support is not the same for all OS platforms.” – use the documentation for your OS.

Err codemadness.org 70 i 37352
Err codemadness.org 70 i 37353 Err codemadness.org 70 i 37354
Err codemadness.org 70 i 37355

I first started using smartd in March 2010 (according to that blog post, that’s when I still writing on both The FreeBSD Diary and this blog). Back then, and until recently, all I did was start smartd. As far as I can tell, all it did was send daily status messages via the FreeBSD periodic tools. I would set my drive devices via daily_status_smart_devices in /etc/periodic.conf and the daily status reports would include drive health information.

Err codemadness.org 70 i 37356
Err codemadness.org 70 i 37357 Err codemadness.org 70 i 37358
    Err codemadness.org 70 i 37359
  • Two types of tests
  • Err codemadness.org 70 i 37360
  • My original abandoned attempt
  • Err codemadness.org 70 i 37361
  • How do you prove it works?
  • Err codemadness.org 70 i 37362
  • Looking at the test results
  • Err codemadness.org 70 i 37363
  • Failed drive to the rescue
  • Err codemadness.org 70 i 37364
  • smartd.conf I am using
  • Err codemadness.org 70 i 37365
  • supernews
  • Err codemadness.org 70 i 37366
Err codemadness.org 70 i 37367 Err codemadness.org 70 i 37368


Err codemadness.org 70 i 37369 Err codemadness.org 70 i 37370

##Beastie Bits

Err codemadness.org 70 i 37371 Err codemadness.org 70 i 37372 Err codemadness.org 70 i 37382 Err codemadness.org 70 i 37383


Err codemadness.org 70 i 37384 Err codemadness.org 70 i 37385

##Feedback/Questions

Err codemadness.org 70 i 37386 Err codemadness.org 70 i 37387
Err codemadness.org 70 i 37399

Err codemadness.org 70 i 37400 Err codemadness.org 70 i 37401
    Err codemadness.org 70 i 37402
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 37403
Err codemadness.org 70 i 37404 Err codemadness.org 70 i 37405


]]> Err codemadness.org 70 i 37406
Err codemadness.org 70 i 37407 Err codemadness.org 70 i 37408 MidnightBSD 1.0 released, MeetBSD review, EuroBSDcon trip reports, DNS over TLS in FreeBSD 12, Upgrading OpenBSD with Ansible, how to use smartd to run tests on your drives automatically, and more.

Err codemadness.org 70 i 37409 Err codemadness.org 70 i 37410

##Headlines
Err codemadness.org 70 i 37411 ###MidnightBSD 1.0 now available

Err codemadness.org 70 i 37412 Err codemadness.org 70 i 37413
Err codemadness.org 70 i 37414

I’m happy to announce the availability of MidnightBSD 1.0 for amd64 and i386. Over the years, many ambitious goals were set for our 1.0 release. As it approached, it was clear we wouldn’t be able to accomplish all of them. This release is more of a natural progression rather than a groundbreaking event. It includes many updates to the base system, improvements to the package manager, an updated compiler, and tools.
Err codemadness.org 70 i 37415 Of particular note, you can now boot off of ZFS and use NVME SSDs and some AMD Radeon graphics cards support acceleration. AMD Ryzen support has greatly improved in this release. We also have added bhyve from FreeBSD.
Err codemadness.org 70 i 37416 The 1.0 release is finally available. Still building packages for i386 and plan to do an amd64 package build later in the week. The single largest issue with the release process has been the web server performance. The CPU is overloaded and has been at solid 100% for several days. The server has a core i7 7700 in it. I’m trying to figure out what to buy as an upgrade so that we don’t continue to have this issue going forward. As it’s actually blocked in multiple processes, a 6 or 8 core chip might be an improvement for the workload…

Err codemadness.org 70 i 37417
Err codemadness.org 70 i 37418 Err codemadness.org 70 i 37419 Err codemadness.org 70 i 37423 Err codemadness.org 70 i 37424


Err codemadness.org 70 i 37425 Err codemadness.org 70 i 37426

###MeetBSD Review

Err codemadness.org 70 i 37427 Err codemadness.org 70 i 37428
Err codemadness.org 70 i 37429

MeetBSD 2018 took place at the sprawling Intel Santa Clara campus. The venue itself felt more like an olive branch than a simple friendly gesture by Intel. In truth it felt like a bit of an apology. You get the subtle sense they feel bad about how the BSD’s were treated with the Meltdown and Specter flaws. In fact, you may be right to think they felt a bit sorry towards the entire open source community.

Err codemadness.org 70 i 37430
Err codemadness.org 70 i 37431 Err codemadness.org 70 i 37432
    Err codemadness.org 70 i 37433
  • MeetBSD 2018
  • Err codemadness.org 70 i 37434
Err codemadness.org 70 i 37435 Err codemadness.org 70 i 37436
Err codemadness.org 70 i 37437

At most massive venues the parking is the first concern, not so here - in fact that was rather straightforward. No, the real challenge is navigating the buildings. Luckily I had help from navigator extraordinaire, Hadea, who located the correct building, SC12 quickly. Finding the entrance took a moment or two though. The lobby itself was converted by iXsystems efficiently into the MeetBSD expo hall, clean, efficient and roomy with registration, some seating, and an extra conference room for on-on-one sessions. On day two sponsor booths were also setup. All who showed up on day one were warmly greeted with badges, lanyards and goodies by Denise and her friendly team.
Err codemadness.org 70 i 37438 Like every great BSD event, plenty of food was made available. And as always they make it look effortless. These events showcase iXsystem’s inherent generosity toward its community; with breakfast items in the back of the main auditorium room in the morning, boxed lunches, fruit and cookies at lunch time, and snacks for the rest of the day. But just in case your still hungry, there is a pizza meetup in another Intel room after day one and two.
Err codemadness.org 70 i 37439 MeetBSD leverages it’s realistically small crowd size on day one. The morning starts off with introductions of the entire group, the mic is passed around the room.
Err codemadness.org 70 i 37440 The group is a good mix of pros in the industry (such as Juniper, Intel, Ebay, Groupon, Cisco, etc), iX staff, and a few enthusiast. Lots of people with a focus or passion for networking. And, of course, some friendly Linux bashing went down for good measure, always followed by a good natured chuckle.

Err codemadness.org 70 i 37441
Err codemadness.org 70 i 37442 Err codemadness.org 70 i 37443
    Err codemadness.org 70 i 37444
  • MeetBSD Gives me The Feels
  • Err codemadness.org 70 i 37445
Err codemadness.org 70 i 37446 Err codemadness.org 70 i 37447
Err codemadness.org 70 i 37448

I find that I am subtly unnerved at this venue, and at lunch I saw it clearly. I have always had a strong geek radar, allowing me to navigate a new area (like Berkeley for MeetBSD of 2016, or even SCALE earlier this year in Pasadena), and in a glance I can see who is from my conference and who isn’t. This means it is easy, nearly effortless to know who to greet with a smile and a wave. These are MY people. Here at the Intel campus though it is different. The drive in alone reveals behemoth complexes all with well known tech names prominently displayed. This is Silicon Valley, and all of these people look like MY people. So much for knowing who’s from my conference. Thank goodness for those infamous BSD horns. None-the-less I am struck by how massive these tech giants are. And Intel is one of the largest of those giants, and see the physical reminders of this fact brought home the significance that they had opened their doors, wifi, and bathrooms to the BSD community.

Err codemadness.org 70 i 37449
Err codemadness.org 70 i 37450 Err codemadness.org 70 i 37451


Err codemadness.org 70 i 37452 Err codemadness.org 70 i 37453

###[EuroBSDcon 2018 Trip Reports]
Err codemadness.org 70 i 37454 https://www.freebsdfoundation.org/blog/eurobsd-2018-trip-report-joseph-mingrone/
Err codemadness.org 70 i 37455 https://www.freebsdfoundation.org/blog/eurobsd-2018-trip-report-vinicius-zavam/
Err codemadness.org 70 i 37456 https://www.freebsdfoundation.org/blog/eurobsd-2018-trip-report-emmanuel-vadot/

Err codemadness.org 70 i 37457 Err codemadness.org 70 i 37458


Err codemadness.org 70 i 37459 Err codemadness.org 70 i 37460

##News Roundup
Err codemadness.org 70 i 37461 ###DNS over TLS in FreeBSD 12

Err codemadness.org 70 i 37462 Err codemadness.org 70 i 37463
Err codemadness.org 70 i 37464

With the arrival of OpenSSL 1.1.1, an upgraded Unbound, and some changes to the setup and init scripts, FreeBSD 12.0, currently in beta, now supports DNS over TLS out of the box.
Err codemadness.org 70 i 37465 DNS over TLS is just what it sounds like: DNS over TCP, but wrapped in a TLS session. It encrypts your requests and the server’s replies, and optionally allows you to verify the identity of the server. The advantages are protection against eavesdropping and manipulation of your DNS traffic; the drawbacks are a slight performance degradation and potential firewall traversal issues, as it runs over a non-standard port (TCP port 853) which may be blocked on some networks. Let’s take a look at how to set it up.

Err codemadness.org 70 i 37466
Err codemadness.org 70 i 37467 Err codemadness.org 70 i 37468
    Err codemadness.org 70 i 37469
  • Conclusion
  • Err codemadness.org 70 i 37470
Err codemadness.org 70 i 37471 Err codemadness.org 70 i 37472
Err codemadness.org 70 i 37473

We’ve seen how to set up Unbound—specifically, the local_unbound service in FreeBSD 12.0—to use DNS over TLS instead of plain UDP or TCP, using Cloudflare’s public DNS service as an example. We’ve looked at the performance impact, and at how to ensure (and verify) that Unbound validates the server certificate to prevent man-in-the-middle attacks.
Err codemadness.org 70 i 37474 The question that remains is whether it is all worth it. There is undeniably a performance hit, though this may improve with TLS 1.3. More importantly, there are currently very few DNS-over-TLS providers—only one, really, since Quad9 filter their responses—and you have to weigh the advantage of encrypting your DNS traffic against the disadvantage of sending it all to a single organization. I can’t answer that question for you, but I can tell you that the parameters are evolving quickly, and if your answer is negative today, it may not remain so for long. More providers will appear. Performance will improve with TLS 1.3 and QUIC. Within a year or two, running DNS over TLS may very well become the rule rather than the experimental exception.

Err codemadness.org 70 i 37475
Err codemadness.org 70 i 37476 Err codemadness.org 70 i 37477


Err codemadness.org 70 i 37478 Err codemadness.org 70 i 37479

###Upgrading OpenBSD with Ansible

Err codemadness.org 70 i 37480 Err codemadness.org 70 i 37481
    Err codemadness.org 70 i 37482
  • My router runs OpenBSD -current
  • Err codemadness.org 70 i 37483
Err codemadness.org 70 i 37484 Err codemadness.org 70 i 37485
Err codemadness.org 70 i 37486

A few months ago, I needed software that had just hit the ports tree. I didn’t want to wait for the next release, so I upgraded my router to use -current. Since then, I’ve continued running -current, which means upgrading to a newer snapshot every so often. Running -current is great, but the process of updating to a newer snapshot was cumbersome. Initially, I had to plug in a serial cable and then reboot into bsd.rd, hit enter ten times, then reboot, run sysmerge and update packages.
Err codemadness.org 70 i 37487 I eventually switched to upobsd to be able to upgrade without the need for a serial connection. The process was better, but still tiresome. Usually, I would prepare the special version of bsd.rd, boot on bsd.rd, and do something like wash the dishes in the meantime. After about ten minutes, I would dry my hands and then go back to my workstation to see whether the bsd.rd part had finished so I could run sysmerge and pkg_add, and then return to the dishes while it upgraded packages.
Err codemadness.org 70 i 37488 Out of laziness, I thought: “I should automate this,” but what happened instead is that I simply didn’t upgrade that machine very often. (Yes, laziness). With my router out of commission, life is very dull, because it is my gateway to the Internet. Even services hosted at my place (like my Mastodon instance) are not reachable when the router is down because I use multiple VLANs (so I need the router to jump across VLANs).

Err codemadness.org 70 i 37489
Err codemadness.org 70 i 37490 Err codemadness.org 70 i 37491
    Err codemadness.org 70 i 37492
  • Ansible Reboot Module
  • Err codemadness.org 70 i 37493
Err codemadness.org 70 i 37494 Err codemadness.org 70 i 37495
Err codemadness.org 70 i 37496

I recently got a new job, and one of my first tasks was auditing the Ansible roles written by my predecessors. In one role, the machine rebooted and they used the wait_for_connection module to wait for it to come back up. That sounded quite hackish to me, so out of curiosity, I tried to determine whether there was a better way. I also thought I might be able to use something similar to further automate my OpenBSD upgrades, and wanted to assess the cleanliness of this method. ;-)
Err codemadness.org 70 i 37497 I learned that with the then-upcoming 2.7 Ansible release, a proper reboot module would be included. I went to the docs, which stated that for a certain parameter:
Err codemadness.org 70 i 37498 I took this to mean that there was no support for OpenBSD. I looked at the code and, indeed, there was not. However, I believed that it wouldn’t be too hard to add it. I added the missing pieces for OpenBSD, tested it on my poor Pine64 and then submitted it upstream. After a quick back and forth, the module’s author merged it into devel (having a friend working at Red Hat helped the process, merci Cyril !) A couple days later, the release engineer merged it into stable-2.7.
Err codemadness.org 70 i 37499 I proceeded to actually write the playbook, and then I hit a bug. The parameter reboot_timeout was not recognized by Ansible. This feature would definitely be useful on a slow machine (such as the Pine64 and its dying SD card). Again, my fix was merged into master by the module’s author and then merged into stable-2.7. 2.7.1 will be the first release to feature these fixes, but if you use OpenBSD -current, you already have access to them. I backported the patches when I updated ansible.
Err codemadness.org 70 i 37500 Fun fact about Ansible and reboots: “The win_reboot module was […] included with Ansible 2.1,” while for unix systems it wasn’t added until 2.7. :D For more details, you can read the module’s author blog article.

Err codemadness.org 70 i 37501
Err codemadness.org 70 i 37502 Err codemadness.org 70 i 37503
    Err codemadness.org 70 i 37504
  • The explanations
  • Err codemadness.org 70 i 37505
Err codemadness.org 70 i 37506 Err codemadness.org 70 i 37507
Err codemadness.org 70 i 37508

Ansible runs my script on the remote host to fetch the sets. It creates an answer file from the template and then gives it to upobsd. Once upobsd has created the kernel, Ansible copies it in place of /bsd on the host. The router reboots and boots on /bsd, which is upobsd’s bsd.rd. The installer runs in auto_update mode. Once it comes back from bsd.rd land, it archives the kernel and finishes by upgrading all the packages.
Err codemadness.org 70 i 37509 It also supports upgrading without fetching the sets ahead of time. For instance, I upgrade this way on my Pine64 because if I cared about speed, I wouldn’t use this weak computer with its dying SD card. For this case, I just comment out the path_sets variable and Ansible instead creates an answer file that will instruct the installer to fetch the sets from the designated mirror.
Err codemadness.org 70 i 37510 I’ve been archiving my kernels for a few years. It’s a nice way to fill up / keep a history of my upgrades. If I spot a regression, I can try a previous kernel … which may not work with the then-desynchronized userland, but that’s another story.
Err codemadness.org 70 i 37511 sysmerge already runs with rc.sysmerge in batch mode and sends the result by email. I don’t think there’s merit to running it again in the playbook. The only perk would be discovering in the terminal whether any files need to be manually merged, rather than reading exactly the same output in the email.
Err codemadness.org 70 i 37512 Initially, I used the openbsd_pkg module, but it doesn’t work on -current just before a release because pkg_add automatically looks for pub/OpenBSD/${release}/packages/${arch} (which is empty). I wrote and tested this playbook while 6.4 was around the corner, so I switched to command to be able to pass the -Dsnap parameter.

Err codemadness.org 70 i 37513
Err codemadness.org 70 i 37514 Err codemadness.org 70 i 37515
    Err codemadness.org 70 i 37516
  • The result
  • Err codemadness.org 70 i 37517
Err codemadness.org 70 i 37518 Err codemadness.org 70 i 37519
Err codemadness.org 70 i 37520

I’m very happy with the playbook! It performs the upgrade with as little intervention as possible and minimal downtime. \o/

Err codemadness.org 70 i 37521
Err codemadness.org 70 i 37522 Err codemadness.org 70 i 37523


Err codemadness.org 70 i 37524 Err codemadness.org 70 i 37525

###Using smartd to automatically run tests on your drives

Err codemadness.org 70 i 37526 Err codemadness.org 70 i 37527
Err codemadness.org 70 i 37528

Those programs can “control and monitor storage systems using the Self-Monitoring, Analysis and Reporting Technology System (SMART) built into most modern ATA/SATA, SCSI/SAS and NVMe disks. In many cases, these utilities will provide advanced warning of disk degradation and failure.” See the smartmontools website for more information.

Err codemadness.org 70 i 37529
Err codemadness.org 70 i 37530 Err codemadness.org 70 i 37531
Err codemadness.org 70 i 37532

NOTE: “Due to OS-specific issues and also depending on the different state of smartmontools development on the platforms, device support is not the same for all OS platforms.” – use the documentation for your OS.

Err codemadness.org 70 i 37533
Err codemadness.org 70 i 37534 Err codemadness.org 70 i 37535
Err codemadness.org 70 i 37536

I first started using smartd in March 2010 (according to that blog post, that’s when I still writing on both The FreeBSD Diary and this blog). Back then, and until recently, all I did was start smartd. As far as I can tell, all it did was send daily status messages via the FreeBSD periodic tools. I would set my drive devices via daily_status_smart_devices in /etc/periodic.conf and the daily status reports would include drive health information.

Err codemadness.org 70 i 37537
Err codemadness.org 70 i 37538 Err codemadness.org 70 i 37539
    Err codemadness.org 70 i 37540
  • Two types of tests
  • Err codemadness.org 70 i 37541
  • My original abandoned attempt
  • Err codemadness.org 70 i 37542
  • How do you prove it works?
  • Err codemadness.org 70 i 37543
  • Looking at the test results
  • Err codemadness.org 70 i 37544
  • Failed drive to the rescue
  • Err codemadness.org 70 i 37545
  • smartd.conf I am using
  • Err codemadness.org 70 i 37546
  • supernews
  • Err codemadness.org 70 i 37547
Err codemadness.org 70 i 37548 Err codemadness.org 70 i 37549


Err codemadness.org 70 i 37550 Err codemadness.org 70 i 37551

##Beastie Bits

Err codemadness.org 70 i 37552 Err codemadness.org 70 i 37553 Err codemadness.org 70 i 37563 Err codemadness.org 70 i 37564


Err codemadness.org 70 i 37565 Err codemadness.org 70 i 37566

##Feedback/Questions

Err codemadness.org 70 i 37567 Err codemadness.org 70 i 37568
Err codemadness.org 70 i 37580

Err codemadness.org 70 i 37581 Err codemadness.org 70 i 37582
    Err codemadness.org 70 i 37583
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 37584
Err codemadness.org 70 i 37585 Err codemadness.org 70 i 37586


]]> Err codemadness.org 70 i 37587
Err codemadness.org 70 i 37588 https://fireside.fm/player/v2/FYhhasNR+NbQNHfxg Err codemadness.org 70 i 37589 Err codemadness.org 70 i 37590 ]]> Err codemadness.org 70 i 37591 Err codemadness.org 70 i 37592
Err codemadness.org 70 i 37593 Err codemadness.org 70 i 37594 Episode 270: Ghostly Releases | BSD Now 270 Err codemadness.org 70 i 37595 https://www.bsdnow.tv/270 Err codemadness.org 70 i 37596 http://feed.jupiter.zone/bsdnow#entry-2822 Err codemadness.org 70 i 37597 Thu, 01 Nov 2018 04:00:00 -0700 Err codemadness.org 70 i 37598 Allan Jude Err codemadness.org 70 i 37599 Err codemadness.org 70 i 37600 full Err codemadness.org 70 i 37601 Allan Jude Err codemadness.org 70 i 37602 OpenBSD 6.4 released, GhostBSD RC2 released, MeetBSD - the ultimate hallway track, DragonflyBSD desktop on a Thinkpad, Porting keybase to NetBSD, OpenSSH 7.9, and draft-ietf-6man-ipv6only-flag in FreeBSD. Err codemadness.org 70 i 37603 1:09:07 Err codemadness.org 70 i 37604 no Err codemadness.org 70 i 37605 Err codemadness.org 70 i 37606 OpenBSD 6.4 released, GhostBSD RC2 released, MeetBSD - the ultimate hallway track, DragonflyBSD desktop on a Thinkpad, Porting keybase to NetBSD, OpenSSH 7.9, and draft-ietf-6man-ipv6only-flag in FreeBSD. Err codemadness.org 70 i 37607 <p>##Headlines<br> Err codemadness.org 70 i 37608 <a href="https://www.openbsd.org/64.html">OpenBSD 6.4 released</a></p> Err codemadness.org 70 i 37609 <ul> Err codemadness.org 70 i 37610 <li><a href="https://www.openbsd.org/plus64.html">See a detailed log of changes between the 6.3 and 6.4 releases.</a></li> Err codemadness.org 70 i 37611 <li><a href="https://www.openbsd.org/ftp.html">See the information on the FTP page for a list of mirror machines.</a></li> Err codemadness.org 70 i 37612 <li><a href="https://www.openbsd.org/errata64.html">Have a look at the 6.4 errata page for a list of bugs and workarounds.</a></li> Err codemadness.org 70 i 37613 <li>signify(1) pubkeys for this release:</li> Err codemadness.org 70 i 37614 <li>base: RWQq6XmS4eDAcQW4KsT5Ka0KwTQp2JMOP9V/DR4HTVOL5Bc0D7LeuPwA</li> Err codemadness.org 70 i 37615 <li>fw: RWRoBbjnosJ/39llpve1XaNIrrQND4knG+jSBeIUYU8x4WNkxz6a2K97</li> Err codemadness.org 70 i 37616 <li>pkg: RWRF5TTY+LoN/51QD5kM2hKDtMTzycQBBPmPYhyQEb1+4pff/H6fh/kA</li> Err codemadness.org 70 i 37617 </ul> Err codemadness.org 70 i 37618 <hr> Err codemadness.org 70 i 37619 <p>###<a href="https://www.ghostbsd.org/18.10_RC2_release_announcement">GhostBSD 18.10 RC2 Announced</a></p> Err codemadness.org 70 i 37620 <blockquote> Err codemadness.org 70 i 37621 <p>This second release candidate of GhostBSD 18.10 is the second official release of GhostBSD with TrueOS under the hood. The official desktop of GhostBSD is MATE. However, in the future, there might be an XFCE community release, but for now, there is no community release yet.</p> Err codemadness.org 70 i 37622 </blockquote> Err codemadness.org 70 i 37623 <ul> Err codemadness.org 70 i 37624 <li> Err codemadness.org 70 i 37625 <p>What has changed since RC1</p> Err codemadness.org 70 i 37626 </li> Err codemadness.org 70 i 37627 <li> Err codemadness.org 70 i 37628 <p>Removed drm-stable-kmod and we will let users installed the propper drm-*-kmod</p> Err codemadness.org 70 i 37629 </li> Err codemadness.org 70 i 37630 <li> Err codemadness.org 70 i 37631 <p>Douglas Joachin added libva-intel-driver libva-vdpau-driver to supports accelerated some video driver for Intel</p> Err codemadness.org 70 i 37632 </li> Err codemadness.org 70 i 37633 <li> Err codemadness.org 70 i 37634 <p>Issues that got fixed</p> Err codemadness.org 70 i 37635 </li> Err codemadness.org 70 i 37636 <li> Err codemadness.org 70 i 37637 <p>Bug #70 Cannot run Octopi, missing libgksu error.</p> Err codemadness.org 70 i 37638 </li> Err codemadness.org 70 i 37639 <li> Err codemadness.org 70 i 37640 <p>Bug #71 LibreOffice doesn’t start because of missing libcurl.so.4</p> Err codemadness.org 70 i 37641 </li> Err codemadness.org 70 i 37642 <li> Err codemadness.org 70 i 37643 <p>Bug #72 libarchive is a missing dependency</p> Err codemadness.org 70 i 37644 </li> Err codemadness.org 70 i 37645 </ul> Err codemadness.org 70 i 37646 <blockquote> Err codemadness.org 70 i 37647 <p>Again thanks to iXsystems, TrueOS, Joe Maloney, Kris Moore, Ken Moore, Martin Wilke, Neville Goddard, Vester “Vic” Thacker, Douglas Joachim, Alex Lyakhov, Yetkin Degirmenci and many more who helped to make the transition from FreeBSD to TrueOS smoother.</p> Err codemadness.org 70 i 37648 </blockquote> Err codemadness.org 70 i 37649 <ul> Err codemadness.org 70 i 37650 <li> Err codemadness.org 70 i 37651 <p>Updating from RC1 to RC2:</p> Err codemadness.org 70 i 37652 </li> Err codemadness.org 70 i 37653 <li> Err codemadness.org 70 i 37654 <p>sudo pkg update -f</p> Err codemadness.org 70 i 37655 </li> Err codemadness.org 70 i 37656 <li> Err codemadness.org 70 i 37657 <p>sudo pkg install -f libarchive curl libgksu</p> Err codemadness.org 70 i 37658 </li> Err codemadness.org 70 i 37659 <li> Err codemadness.org 70 i 37660 <p>sudo pkg upgrade</p> Err codemadness.org 70 i 37661 </li> Err codemadness.org 70 i 37662 <li> Err codemadness.org 70 i 37663 <p>Where to download:</p> Err codemadness.org 70 i 37664 </li> Err codemadness.org 70 i 37665 <li> Err codemadness.org 70 i 37666 <p>All images checksum, hybrid ISO(DVD, USB) and torrent are available here: <a href="https://www.ghostbsd.org/download">https://www.ghostbsd.org/download</a></p> Err codemadness.org 70 i 37667 </li> Err codemadness.org 70 i 37668 <li> Err codemadness.org 70 i 37669 <p>[ScreenShots]</p> Err codemadness.org 70 i 37670 </li> Err codemadness.org 70 i 37671 <li> Err codemadness.org 70 i 37672 <p><a href="https://www.ghostbsd.org/sites/default/files/Screenshot_at_2018-10-20_13-22-41.png">https://www.ghostbsd.org/sites/default/files/Screenshotat2018-10-2013-22-41.png</a></p> Err codemadness.org 70 i 37673 </li> Err codemadness.org 70 i 37674 <li> Err codemadness.org 70 i 37675 <p><a href="https://www.ghostbsd.org/sites/default/files/Screenshotat2018-10-2013-27-26.png">https://www.ghostbsd.org/sites/default/files/Screenshotat2018-10-20_13-27-26.png</a></p> Err codemadness.org 70 i 37676 </li> Err codemadness.org 70 i 37677 </ul> Err codemadness.org 70 i 37678 <hr> Err codemadness.org 70 i 37679 <p>###<a href="https://www.openssh.com/txt/release-7.9">OpenSSH 7.9 has been released and it has support for OpenSSL 1.1</a></p> Err codemadness.org 70 i 37680 <pre><code>Changes since OpenSSH 7.8 Err codemadness.org 70 i 37681 This is primarily a bugfix release. Err codemadness.org 70 i 37682 New Features Err codemadness.org 70 i 37683 ssh(1), sshd(8): allow most port numbers to be specified using Err codemadness.org 70 i 37684 service names from getservbyname(3) (typically /etc/services). Err codemadness.org 70 i 37685 ssh(1): allow the IdentityAgent configuration directive to accept Err codemadness.org 70 i 37686 environment variable names. This supports the use of multiple Err codemadness.org 70 i 37687 agent sockets without needing to use fixed paths. Err codemadness.org 70 i 37688 sshd(8): support signalling sessions via the SSH protocol. Err codemadness.org 70 i 37689 A limited subset of signals is supported and only for login or Err codemadness.org 70 i 37690 command sessions (i.e. not subsystems) that were not subject to Err codemadness.org 70 i 37691 a forced command via authorizedkeys or sshdconfig. bz#1424 Err codemadness.org 70 i 37692 ssh(1): support &quot;ssh -Q sig&quot; to list supported signature options. Err codemadness.org 70 i 37693 Also &quot;ssh -Q help&quot; to show the full set of supported queries. Err codemadness.org 70 i 37694 ssh(1), sshd(8): add a CASignatureAlgorithms option for the Err codemadness.org 70 i 37695 client and server configs to allow control over which signature Err codemadness.org 70 i 37696 formats are allowed for CAs to sign certificates. For example, Err codemadness.org 70 i 37697 this allows banning CAs that sign certificates using the RSA-SHA1 Err codemadness.org 70 i 37698 signature algorithm. Err codemadness.org 70 i 37699 sshd(8), ssh-keygen(1): allow key revocation lists (KRLs) to Err codemadness.org 70 i 37700 revoke keys specified by SHA256 hash. Err codemadness.org 70 i 37701 ssh-keygen(1): allow creation of key revocation lists directly Err codemadness.org 70 i 37702 from base64-encoded SHA256 fingerprints. This supports revoking Err codemadness.org 70 i 37703 keys using only the information contained in sshd(8) Err codemadness.org 70 i 37704 authentication log messages. Err codemadness.org 70 i 37705 Bugfixes Err codemadness.org 70 i 37706 ssh(1), ssh-keygen(1): avoid spurious &quot;invalid format&quot; errors when Err codemadness.org 70 i 37707 attempting to load PEM private keys while using an incorrect Err codemadness.org 70 i 37708 passphrase. bz#2901 Err codemadness.org 70 i 37709 sshd(8): when a channel closed message is received from a client, Err codemadness.org 70 i 37710 close the stderr file descriptor at the same time stdout is Err codemadness.org 70 i 37711 closed. This avoids stuck processes if they were waiting for Err codemadness.org 70 i 37712 stderr to close and were insensitive to stdin/out closing. bz#2863 Err codemadness.org 70 i 37713 ssh(1): allow ForwardX11Timeout=0 to disable the untrusted X11 Err codemadness.org 70 i 37714 forwarding timeout and support X11 forwarding indefinitely. Err codemadness.org 70 i 37715 Previously the behaviour of ForwardX11Timeout=0 was undefined. Err codemadness.org 70 i 37716 sshd(8): when compiled with GSSAPI support, cache supported method Err codemadness.org 70 i 37717 OIDs regardless of whether GSSAPI authentication is enabled in the Err codemadness.org 70 i 37718 main section of sshd_config. This avoids sandbox violations if Err codemadness.org 70 i 37719 GSSAPI authentication was later enabled in a Match block. bz#2107 Err codemadness.org 70 i 37720 sshd(8): do not fail closed when configured with a text key Err codemadness.org 70 i 37721 revocation list that contains a too-short key. bz#2897 Err codemadness.org 70 i 37722 ssh(1): treat connections with ProxyJump specified the same as Err codemadness.org 70 i 37723 ones with a ProxyCommand set with regards to hostname Err codemadness.org 70 i 37724 canonicalisation (i.e. don't try to canonicalise the hostname Err codemadness.org 70 i 37725 unless CanonicalizeHostname is set to 'always'). bz#2896 Err codemadness.org 70 i 37726 ssh(1): fix regression in OpenSSH 7.8 that could prevent public- Err codemadness.org 70 i 37727 key authentication using certificates hosted in a ssh-agent(1) Err codemadness.org 70 i 37728 or against sshd(8) from OpenSSH &lt;7.8. Err codemadness.org 70 i 37729 Portability Err codemadness.org 70 i 37730 All: support building against the openssl-1.1 API (releases 1.1.0g Err codemadness.org 70 i 37731 and later). The openssl-1.0 API will remain supported at least Err codemadness.org 70 i 37732 until OpenSSL terminates security patch support for that API version. Err codemadness.org 70 i 37733 sshd(8): allow the futex(2) syscall in the Linux seccomp sandbox; Err codemadness.org 70 i 37734 apparently required by some glibc/OpenSSL combinations. Err codemadness.org 70 i 37735 sshd(8): handle getgrouplist(3) returning more than Err codemadness.org 70 i 37736 SCNGROUPSMAX groups. Some platforms consider this limit more Err codemadness.org 70 i 37737 as a guideline. Err codemadness.org 70 i 37738 </code></pre> Err codemadness.org 70 i 37739 <hr> Err codemadness.org 70 i 37740 <p>##News Roundup</p> Err codemadness.org 70 i 37741 <p>###<a href="https://www.ixsystems.com/blog/meetbsd-2018/">MeetBSD 2018: The Ultimate Hallway Track</a></p> Err codemadness.org 70 i 37742 <blockquote> Err codemadness.org 70 i 37743 <p>Founded in Poland in 2007 and first hosted in California in 2008, MeetBSD combines formal talks with UnConference activities to provide a level of interactivity not found at any other BSD conference. The character of each MeetBSD is determined largely by its venue, ranging from Hacker Dojo in 2010 to Intel’s Santa Clara headquarters this year. The Intel SC12 building provided a beautiful auditorium and sponsors’ room, plus a cafeteria for the Friday night social event and the Saturday night FreeBSD 25th Anniversary Celebration. The formal nature of the auditorium motivated the formation of MeetBSD’s first independent Program Committee and public Call for Participation. Together these resulted in a backbone of talks presented by speakers from the USA, Canada, and Poland, combined with UnConference activities tailored to the space.</p> Err codemadness.org 70 i 37744 </blockquote> Err codemadness.org 70 i 37745 <ul> Err codemadness.org 70 i 37746 <li>MeetBSD Day 0</li> Err codemadness.org 70 i 37747 </ul> Err codemadness.org 70 i 37748 <blockquote> Err codemadness.org 70 i 37749 <p>Day Zero of MeetBSD was a FreeBSD Developer/Vendor Summit hosted in the same auditorium where the talks would take place. Like the conference itself, this event featured a mix of scheduled talks and interactive sessions. The scheduled talks were LWPMFS: LightWeight Persistent Memory Filesystem by Ravi Pokala, Evaluating GIT for FreeBSD by Ed Maste, and NUMA by Mark Johnston. Ed’s overview of the advantages and disadvantages of using Git for FreeBSD development was of the most interest to users and developers, and the discussion continued into the following two days.</p> Err codemadness.org 70 i 37750 </blockquote> Err codemadness.org 70 i 37751 <ul> Err codemadness.org 70 i 37752 <li>MeetBSD Day 1</li> Err codemadness.org 70 i 37753 </ul> Err codemadness.org 70 i 37754 <blockquote> Err codemadness.org 70 i 37755 <p>The first official day of MeetBSD 2018 was kicked off with introductions led by emcee JT Pennington and a keynote, “Using TrueOS to boot-strap your FreeBSD-based project” by Kris Moore. Kris described a new JSON-based release infrastructure that he has exercised with FreeBSD, TrueOS, and FreeNAS. Kris’ talk was followed by “Intel &amp; FreeBSD: Better Together” by Ben Widawsky, the FreeBSD program lead at Intel, who gave an overview of Intel’s past and current efforts supporting FreeBSD. Next came lunch, followed by Kamil Rytarowski’s “Bug detecting software in the NetBSD userland: MKSANITIZER”. This was followed by 5-Minute Lightning Talks, Andrew Fengler’s “FreeBSD: What to (Not) Monitor”, and an OpenZFS Panel Discussion featuring OpenZFS experts Michael W. Lucas, Allan Jude, Alexander Motin, Pawel Dawidek, and Dan Langille. Day one concluded with a social event at the Intel cafeteria where the discussions continued into the night.</p> Err codemadness.org 70 i 37756 </blockquote> Err codemadness.org 70 i 37757 <ul> Err codemadness.org 70 i 37758 <li>MeetBSD Day 2</li> Err codemadness.org 70 i 37759 </ul> Err codemadness.org 70 i 37760 <blockquote> Err codemadness.org 70 i 37761 <p>Day Two of MeetBSD 2018 kicked off with a keynote by Michael W. Lucas entitled “Why BSD?”, where Michael detailed what makes the BSD community different and why it attracts us all. This was followed by Dr. Kirk McKusick’s “The Early Days of BSD” talk, which was followed by “DTrace/dwatch in Production” by Devin Teske. After lunch, we enjoyed “A Curmudgeon’s Language Selection Criteria: Why I Don’t Write Everything in Go, Rust, Elixir, etc” by G. Clifford Williams and, “Best practices of sandboxing applications with Capsicum” by Mariusz Zaborski. I then hosted a Virtualization Panel Discussion that featured eight developers from FreeBSD, OpenBSD, and NetBSD. We then split up for Breakout Sessions and the one on Bloomberg’s controversial article on backdoored Supermicro systems was fascinating given the experts present, all of whom were skeptical of the feasibility of the attack. The day wrapped up with a final talk, “Tales of a Daemontown Performance Peddler: Why ‘it depends’ and what you can do about it” by Nick Principe, followed by the FreeBSD 25th Anniversary Celebration.</p> Err codemadness.org 70 i 37762 </blockquote> Err codemadness.org 70 i 37763 <ul> Err codemadness.org 70 i 37764 <li>Putting the “meet” in MeetBSD</li> Err codemadness.org 70 i 37765 </ul> Err codemadness.org 70 i 37766 <blockquote> Err codemadness.org 70 i 37767 <p>I confess the other organizers and I were nervous about how well one large auditorium would suit a BSD event but the flexible personal space it gave everyone allowed for countless meetings and heated hacking that often brought about immediate results. I watched people take ideas through several iterations with the help and input of obvious and unexpected experts, all of whom were within reach. Not having to pick up and leave for a talk in another room organically resulted in essentially a series of mini hackathons that none of us anticipated but were delighted to witness, taking the “hallway track” to a whole new level. The mix of formal and UnConference activities at MeetBSD is certain to evolve. Thank you to everyone who participated with questions, Lightning Talks, and Panel participation. A huge thanks to our sponsors, including Intel for both hosting and sponsoring MeetBSD California 2018, Western Digital, Supermicro, Verisign, Jupiter Broadcasting, the FreeBSD Foundation, Bank of America Merrill Lynch, the NetBSD Foundation, and the team at iXsystems.</p> Err codemadness.org 70 i 37768 </blockquote> Err codemadness.org 70 i 37769 <blockquote> Err codemadness.org 70 i 37770 <p>See you at MeetBSD 2020!</p> Err codemadness.org 70 i 37771 </blockquote> Err codemadness.org 70 i 37772 <hr> Err codemadness.org 70 i 37773 <p>###<a href="https://panoramacircle.com/2018/10/07/setup-dragonflybsd-with-a-desktop-on-real-hardware-thinkpad-t410/">Setup DragonflyBSD with a desktop on real hardware ThinkPad T410</a><br> Err codemadness.org 70 i 37774 +<a href="https://youtu.be/p4KwssNY82Q">Video Demo</a></p> Err codemadness.org 70 i 37775 <blockquote> Err codemadness.org 70 i 37776 <p>Linux has become too mainstream and standard BSD is a common thing now? How about DragonflyBSD which was created as a fork of FreeBSD 4.8 in conflict over system internals. This tutorial will show how to install it and set up a user-oriented desktop. It should work with DragonflyBSD, FreeBSD and probably all BSDs.<br> Err codemadness.org 70 i 37777 Some background: BSD was is ultimately derived from UNIX back in the days. It is not Linux even though it is similar in many ways because Linux was designed to follow UNIX principles. Seeing is believing, so check out the video of the install!<br> Err codemadness.org 70 i 37778 I did try two BSD distros before called GhostBSD and TrueOS and you can check out my short reviews. DragonflyBSD comes like FreeBSD bare bones and requires some work to get a desktop running.</p> Err codemadness.org 70 i 37779 </blockquote> Err codemadness.org 70 i 37780 <ul> Err codemadness.org 70 i 37781 <li> Err codemadness.org 70 i 37782 <p>Download image file and burn to USB drive or DVD</p> Err codemadness.org 70 i 37783 </li> Err codemadness.org 70 i 37784 <li> Err codemadness.org 70 i 37785 <p>First installation</p> Err codemadness.org 70 i 37786 </li> Err codemadness.org 70 i 37787 <li> Err codemadness.org 70 i 37788 <p>Setting up the system and installing a desktop</p> Err codemadness.org 70 i 37789 </li> Err codemadness.org 70 i 37790 <li> Err codemadness.org 70 i 37791 <p>Inside the desktop</p> Err codemadness.org 70 i 37792 </li> Err codemadness.org 70 i 37793 <li> Err codemadness.org 70 i 37794 <p>Install some more programs</p> Err codemadness.org 70 i 37795 </li> Err codemadness.org 70 i 37796 <li> Err codemadness.org 70 i 37797 <p>How to enable sound?</p> Err codemadness.org 70 i 37798 </li> Err codemadness.org 70 i 37799 <li> Err codemadness.org 70 i 37800 <p>Let’s play some free games</p> Err codemadness.org 70 i 37801 </li> Err codemadness.org 70 i 37802 <li> Err codemadness.org 70 i 37803 <p>Setup WiFi</p> Err codemadness.org 70 i 37804 </li> Err codemadness.org 70 i 37805 <li> Err codemadness.org 70 i 37806 <p>Power mode settings</p> Err codemadness.org 70 i 37807 </li> Err codemadness.org 70 i 37808 <li> Err codemadness.org 70 i 37809 <p>More to do?</p> Err codemadness.org 70 i 37810 </li> Err codemadness.org 70 i 37811 </ul> Err codemadness.org 70 i 37812 <blockquote> Err codemadness.org 70 i 37813 <p>You can check out this blog post if you want a much more detailed tutorial. If you don’t mind standard BSD, get the GhostBSD distro instead which comes with a ready-made desktop xcfe or mate and many functional presets.</p> Err codemadness.org 70 i 37814 </blockquote> Err codemadness.org 70 i 37815 <ul> Err codemadness.org 70 i 37816 <li> Err codemadness.org 70 i 37817 <p>A small summary of what we got on the upside:</p> Err codemadness.org 70 i 37818 <ul> Err codemadness.org 70 i 37819 <li>Free and open source operating system with a long history</li> Err codemadness.org 70 i 37820 <li>Drivers worked fine including Ethernet, WiFi, video 2D &amp; 3D, audio, etc</li> Err codemadness.org 70 i 37821 <li>Hammer2 advanced file system</li> Err codemadness.org 70 i 37822 <li>You are very unique if you use this OS fork</li> Err codemadness.org 70 i 37823 </ul> Err codemadness.org 70 i 37824 </li> Err codemadness.org 70 i 37825 <li> Err codemadness.org 70 i 37826 <p>Some downsides:</p> Err codemadness.org 70 i 37827 </li> Err codemadness.org 70 i 37828 <li> Err codemadness.org 70 i 37829 <p>Less driver and direct app support than Linux</p> Err codemadness.org 70 i 37830 </li> Err codemadness.org 70 i 37831 <li> Err codemadness.org 70 i 37832 <p>Installer and desktop have some traps and quirks and require work</p> Err codemadness.org 70 i 37833 </li> Err codemadness.org 70 i 37834 </ul> Err codemadness.org 70 i 37835 <hr> Err codemadness.org 70 i 37836 <p>###<a href="https://dressupgeekout.blogspot.com/2018/10/porting-keybase-to-netbsd.html">Porting Keybase to NetBSD</a></p> Err codemadness.org 70 i 37837 <blockquote> Err codemadness.org 70 i 37838 <p>Keybase significantly simplifies the whole keypair/PGP thing and makes what is usually a confusing, difficult experience actually rather pleasant. At its heart is an open-source command line utility that does all of the heavy cryptographic lifting. But it’s also hooked up to the network of all other Keybase users, so you don’t have to work very hard to maintain big keychains. Pretty cool!<br> Err codemadness.org 70 i 37839 So, this evening, I tried to get it to all work on NetBSD.<br> Err codemadness.org 70 i 37840 The Keybase client code base is, in my opinion, not very well architected… there exist many different Keybase clients (command line apps, desktop apps, mobile apps) and for some reason the code for all of them are seemingly in this single repository, without even using Git submodules. Not sure what that’s about.<br> Err codemadness.org 70 i 37841 Anyway, “go build”-ing the command line program (it’s written in Go) failed immediately because there’s some platform-specific code that just does not seem to recognize that NetBSD exists (but they do for FreeBSD and OpenBSD). Looks like the Keybase developers maintain a Golang wrapper around struct proc, which of course is different from OS to OS. So I literally just copypasted the OpenBSD wrapper, renamed it to “NetBSD”, and the build basically succeeded from there! This is of course super janky and untrustworthy, but it seems to Mostly Just Work…<br> Err codemadness.org 70 i 37842 I forked the GitHub repo, you can see the diff on top of keybase 2.7.3 here: bccaaf3096a<br> Err codemadness.org 70 i 37843 Eventually I ended up with a ~/go/bin/keybase which launches just fine. Meaning, I can main() okay. But the moment you try to do anything interesting, it looks super scary:</p> Err codemadness.org 70 i 37844 </blockquote> Err codemadness.org 70 i 37845 <pre><code>charlotte@sakuracity:~/go/bin ./keybase login Err codemadness.org 70 i 37846 ▶ WARNING Running in devel mode Err codemadness.org 70 i 37847 ▶ INFO Forking background server with pid=12932 Err codemadness.org 70 i 37848 ▶ ERROR unexpected error in Login: API network error: doRetry failed, Err codemadness.org 70 i 37849 attempts: 1, timeout 5s, last err: Get Err codemadness.org 70 i 37850 http://localhost:3000//api/1.0/merkle/path.json?last=3784314&amp;loaddeleted=1&amp;loadresetchain=1&amp;poll=10&amp;sighints_low=3&amp;uid=38ae1dfa49cd6831ea2fdade5c5d0519: Err codemadness.org 70 i 37851 dial tcp [::1]:3000: connect: connection refused Err codemadness.org 70 i 37852 </code></pre> Err codemadness.org 70 i 37853 <blockquote> Err codemadness.org 70 i 37854 <p>There’s a few things about this error message that stuck out to me:</p> Err codemadness.org 70 i 37855 </blockquote> Err codemadness.org 70 i 37856 <ul> Err codemadness.org 70 i 37857 <li>Forking a background server? What?</li> Err codemadness.org 70 i 37858 <li>It’s trying to connect to localhost? That must be the server that doesn’t work …</li> Err codemadness.org 70 i 37859 </ul> Err codemadness.org 70 i 37860 <blockquote> Err codemadness.org 70 i 37861 <p>Unfortunately, this nonfunctional “background server” sticks around even when a command as simple as ‘login’ command just failed:</p> Err codemadness.org 70 i 37862 </blockquote> Err codemadness.org 70 i 37863 <pre><code>charlotte@sakuracity:~/go/bin ps 12932 Err codemadness.org 70 i 37864 PID TTY STAT TIME COMMAND Err codemadness.org 70 i 37865 12932 ? Ssl 0:00.21 ./keybase --debug --log-file Err codemadness.org 70 i 37866 /home/charlotte/.cache/keybase.devel/keybase.service.log service --chdir Err codemadness.org 70 i 37867 /home/charlotte/.config/keybase.devel --auto-forked Err codemadness.org 70 i 37868 </code></pre> Err codemadness.org 70 i 37869 <blockquote> Err codemadness.org 70 i 37870 <p>I’m not exactly sure what the intended purpose of the “background server” even is, but fortunately we can kill it and even tell the keybase command to not even spawn one:</p> Err codemadness.org 70 i 37871 </blockquote> Err codemadness.org 70 i 37872 <pre><code>charlotte@sakuracity:~/go/bin ./keybase help advanced | grep -- --standalone Err codemadness.org 70 i 37873 --standalone Use the client without any daemon support. Err codemadness.org 70 i 37874 </code></pre> Err codemadness.org 70 i 37875 <blockquote> Err codemadness.org 70 i 37876 <p>And then we can fix wanting to connect to localhost by specifying an expected Keybase API server – how about the one hosted at <a href="https://keybase.io">https://keybase.io</a>?</p> Err codemadness.org 70 i 37877 </blockquote> Err codemadness.org 70 i 37878 <pre><code>charlotte@sakuracity:~/go/bin ./keybase help advanced | grep -- --server Err codemadness.org 70 i 37879 --server, -s Specify server API. Err codemadness.org 70 i 37880 </code></pre> Err codemadness.org 70 i 37881 <blockquote> Err codemadness.org 70 i 37882 <p>Basically, what I’m trying to say is that if you specify both of these options, the keybase command does what I expect on NetBSD:</p> Err codemadness.org 70 i 37883 </blockquote> Err codemadness.org 70 i 37884 <pre><code>charlotte@sakuracity:~/go/bin ./keybase --standalone -s https://keybase.io login Err codemadness.org 70 i 37885 ▶ WARNING Running in devel mode Err codemadness.org 70 i 37886 Please enter the Keybase passphrase for dressupgeekout (6+ characters): Err codemadness.org 70 i 37887 charlotte@sakuracity:~/go/bin ./keybase --standalone -s https://keybase.io id dressupgeekout Err codemadness.org 70 i 37888 ▶ WARNING Running in devel mode Err codemadness.org 70 i 37889 ▶ INFO Identifying dressupgeekout Err codemadness.org 70 i 37890 ✔ public key fingerprint: 7873 DA50 A786 9A3F 1662 3A17 20BD 8739 E82C 7F2F Err codemadness.org 70 i 37891 ✔ &quot;dressupgeekout&quot; on github: Err codemadness.org 70 i 37892 https://gist.github.com/0471c7918d254425835bf5e1b4bcda00 [cached 2018-10-11 Err codemadness.org 70 i 37893 20:55:21 PDT] Err codemadness.org 70 i 37894 ✔ &quot;dressupgeekout&quot; on reddit: Err codemadness.org 70 i 37895 https://www.reddit.com/r/KeybaseProofs/comments/9ng5qm/mykeybaseproof_redditdressupgeekout/ Err codemadness.org 70 i 37896 [cached 2018-10-11 20:55:21 PDT] Err codemadness.org 70 i 37897 </code></pre> Err codemadness.org 70 i 37898 <hr> Err codemadness.org 70 i 37899 <p>###<a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=339929">Initial implementation of draft-ietf-6man-ipv6only-flag</a></p> Err codemadness.org 70 i 37900 <pre><code>This change defines the RA &quot;6&quot; (IPv6-Only) flag which routers Err codemadness.org 70 i 37901 may advertise, kernel logic to check if all routers on a link Err codemadness.org 70 i 37902 have the flag set and accordingly update a per-interface flag. Err codemadness.org 70 i 37903 If all routers agree that it is an IPv6-only link, etheroutputframe(), Err codemadness.org 70 i 37904 based on the interface flag, will filter out all ETHERTYPE_IP/ARP Err codemadness.org 70 i 37905 frames, drop them, and return EAFNOSUPPORT to upper layers. Err codemadness.org 70 i 37906 The change also updates ndp to show the &quot;6&quot; flag, ifconfig to Err codemadness.org 70 i 37907 display the IPV6_ONLY nd6 flag if set, and rtadvd to allow Err codemadness.org 70 i 37908 announcing the flag. Err codemadness.org 70 i 37909 Further changes to tcpdump (contrib code) are availble and will Err codemadness.org 70 i 37910 be upstreamed. Err codemadness.org 70 i 37911 Tested the code (slightly earlier version) with 2 FreeBSD Err codemadness.org 70 i 37912 IPv6 routers, a FreeBSD laptop on ethernet as well as wifi, Err codemadness.org 70 i 37913 and with Win10 and OSX clients (which did not fall over with Err codemadness.org 70 i 37914 the &quot;6&quot; flag set but not understood). Err codemadness.org 70 i 37915 We may also want to (a) implement and RX filter, and (b) over Err codemadness.org 70 i 37916 time enahnce user space to, say, stop dhclient from running Err codemadness.org 70 i 37917 when the interface flag is set. Also we might want to start Err codemadness.org 70 i 37918 IPv6 before IPv4 in the future. Err codemadness.org 70 i 37919 All the code is hidden under the EXPERIMENTAL option and not Err codemadness.org 70 i 37920 compiled by default as the draft is a work-in-progress and Err codemadness.org 70 i 37921 we cannot rely on the fact that IANA will assign the bits Err codemadness.org 70 i 37922 as requested by the draft and hence they may change. Err codemadness.org 70 i 37923 Dear 6man, you have running code. Err codemadness.org 70 i 37924 Discussed with: Bob Hinden, Brian E Carpenter Err codemadness.org 70 i 37925 </code></pre> Err codemadness.org 70 i 37926 <p>##Beastie Bits</p> Err codemadness.org 70 i 37927 <ul> Err codemadness.org 70 i 37928 <li><a href="https://dan.langille.org/2018/10/02/running-freebsd-on-osx-using-xhyve-a-port-of-bhyve/">Running FreeBSD on macOS via xhyve</a></li> Err codemadness.org 70 i 37929 <li><a href="https://mwl.io/archives/3841">Auction Winners</a></li> Err codemadness.org 70 i 37930 <li><a href="https://github.com/vedetta-com/vedetta/blob/master/src/usr/local/share/doc/vedetta/OpenSSH_Principals.md">OpenSSH Principals</a></li> Err codemadness.org 70 i 37931 <li><a href="https://undeadly.org/cgi?action=article;sid=20181018160645">OpenBSD Foundation gets a second Iridium donation from Handshake</a></li> Err codemadness.org 70 i 37932 <li><a href="https://mail-index.netbsd.org/netbsd-advocacy/2018/10/10/msg000786.html">NetBSD machines at Open Source Conference 2018 Kagawa</a></li> Err codemadness.org 70 i 37933 <li><a href="https://mwl.io/archives/3818">Absolute FreeBSD now shipping!</a></li> Err codemadness.org 70 i 37934 <li><a href="https://h3artbl33d.nl/blog/nextcloud-on-openbsd">NextCloud on OpenBSD</a></li> Err codemadness.org 70 i 37935 <li><a href="https://www.freebsd.org/news/newsflash.html#event20181027:01">FreeBSD 12.0-BETA2 Available</a></li> Err codemadness.org 70 i 37936 <li><a href="https://twitter.com/gvnn3/status/1049347862541344771">DTrace on Windows ported from FreeBSD</a></li> Err codemadness.org 70 i 37937 <li><a href="http://dpaste.com/36DFQ1S">HELBUG fall 2018 meeting scheduled - Thursday the 15th of November</a></li> Err codemadness.org 70 i 37938 <li><a href="https://translate.google.com/translate?hl=de&amp;sl=de&amp;tl=en&amp;u=https%3A%2F%2Ftickets.events.ccc.de%2F35c3%2Fintro%2F">35C3 pre-sale has started</a></li> Err codemadness.org 70 i 37939 <li><a href="https://www.meetup.com/BSD-Users-Stockholm/events/254235663/">Stockholm BSD User Meeting: Tuesday Nov 13, 18:00 - 21:30 </a></li> Err codemadness.org 70 i 37940 <li><a href="https://bsd-pl.org/en">Polish BSD User Group: Thursday Nov 15, 18:30 - 21:00 </a></li> Err codemadness.org 70 i 37941 </ul> Err codemadness.org 70 i 37942 <hr> Err codemadness.org 70 i 37943 <p>##Feedback/Questions</p> Err codemadness.org 70 i 37944 <ul> Err codemadness.org 70 i 37945 <li>Greg - <a href="http://dpaste.com/1WA54CC">Interview suggestion for the show</a></li> Err codemadness.org 70 i 37946 <li>Nelson - <a href="http://dpaste.com/21KKF7Q#wrap">Ghostscript vulnerabilities</a></li> Err codemadness.org 70 i 37947 <li>Allison - <a href="http://dpaste.com/3K6D7ST">Ports and GCC</a></li> Err codemadness.org 70 i 37948 </ul> Err codemadness.org 70 i 37949 <hr> Err codemadness.org 70 i 37950 <ul> Err codemadness.org 70 i 37951 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 37952 </ul> Err codemadness.org 70 i 37953 <hr> Err codemadness.org 70 i 37954 Err codemadness.org 70 i 37955 freebsd,openbsd,netbsd,dragonflybsd,trueos,trident,hardenedbsd,tutorial,howto,guide,bsd,interview,ghostbsd,keybase,openssh,openssl Err codemadness.org 70 i 37956 Err codemadness.org 70 i 37957 OpenBSD 6.4 released, GhostBSD RC2 released, MeetBSD - the ultimate hallway track, DragonflyBSD desktop on a Thinkpad, Porting keybase to NetBSD, OpenSSH 7.9, and draft-ietf-6man-ipv6only-flag in FreeBSD.

Err codemadness.org 70 i 37958 Err codemadness.org 70 i 37959

##Headlines
Err codemadness.org 70 i 37960 ###OpenBSD 6.4 released

Err codemadness.org 70 i 37961 Err codemadness.org 70 i 37962 Err codemadness.org 70 i 37971 Err codemadness.org 70 i 37972


Err codemadness.org 70 i 37973 Err codemadness.org 70 i 37974

###GhostBSD 18.10 RC2 Announced

Err codemadness.org 70 i 37975 Err codemadness.org 70 i 37976
Err codemadness.org 70 i 37977

This second release candidate of GhostBSD 18.10 is the second official release of GhostBSD with TrueOS under the hood. The official desktop of GhostBSD is MATE. However, in the future, there might be an XFCE community release, but for now, there is no community release yet.

Err codemadness.org 70 i 37978
Err codemadness.org 70 i 37979 Err codemadness.org 70 i 37980
    Err codemadness.org 70 i 37981
  • Err codemadness.org 70 i 37982

    What has changed since RC1

    Err codemadness.org 70 i 37983
  • Err codemadness.org 70 i 37984
  • Err codemadness.org 70 i 37985

    Removed drm-stable-kmod and we will let users installed the propper drm-*-kmod

    Err codemadness.org 70 i 37986
  • Err codemadness.org 70 i 37987
  • Err codemadness.org 70 i 37988

    Douglas Joachin added libva-intel-driver libva-vdpau-driver to supports accelerated some video driver for Intel

    Err codemadness.org 70 i 37989
  • Err codemadness.org 70 i 37990
  • Err codemadness.org 70 i 37991

    Issues that got fixed

    Err codemadness.org 70 i 37992
  • Err codemadness.org 70 i 37993
  • Err codemadness.org 70 i 37994

    Bug #70 Cannot run Octopi, missing libgksu error.

    Err codemadness.org 70 i 37995
  • Err codemadness.org 70 i 37996
  • Err codemadness.org 70 i 37997

    Bug #71 LibreOffice doesn’t start because of missing libcurl.so.4

    Err codemadness.org 70 i 37998
  • Err codemadness.org 70 i 37999
  • Err codemadness.org 70 i 38000

    Bug #72 libarchive is a missing dependency

    Err codemadness.org 70 i 38001
  • Err codemadness.org 70 i 38002
Err codemadness.org 70 i 38003 Err codemadness.org 70 i 38004
Err codemadness.org 70 i 38005

Again thanks to iXsystems, TrueOS, Joe Maloney, Kris Moore, Ken Moore, Martin Wilke, Neville Goddard, Vester “Vic” Thacker, Douglas Joachim, Alex Lyakhov, Yetkin Degirmenci and many more who helped to make the transition from FreeBSD to TrueOS smoother.

Err codemadness.org 70 i 38006
Err codemadness.org 70 i 38007 Err codemadness.org 70 i 38008
    Err codemadness.org 70 i 38009
  • Err codemadness.org 70 i 38010

    Updating from RC1 to RC2:

    Err codemadness.org 70 i 38011
  • Err codemadness.org 70 i 38012
  • Err codemadness.org 70 i 38013

    sudo pkg update -f

    Err codemadness.org 70 i 38014
  • Err codemadness.org 70 i 38015
  • Err codemadness.org 70 i 38016

    sudo pkg install -f libarchive curl libgksu

    Err codemadness.org 70 i 38017
  • Err codemadness.org 70 i 38018
  • Err codemadness.org 70 i 38019

    sudo pkg upgrade

    Err codemadness.org 70 i 38020
  • Err codemadness.org 70 i 38021
  • Err codemadness.org 70 i 38022

    Where to download:

    Err codemadness.org 70 i 38023
  • Err codemadness.org 70 i 38024
  • Err codemadness.org 70 i 38025

    All images checksum, hybrid ISO(DVD, USB) and torrent are available here: https://www.ghostbsd.org/download

    Err codemadness.org 70 i 38026
  • Err codemadness.org 70 i 38027
  • Err codemadness.org 70 i 38028

    [ScreenShots]

    Err codemadness.org 70 i 38029
  • Err codemadness.org 70 i 38030
  • Err codemadness.org 70 i 38031

    https://www.ghostbsd.org/sites/default/files/Screenshot_at_2018-10-20_13-22-41.png

    Err codemadness.org 70 i 38032
  • Err codemadness.org 70 i 38033
  • Err codemadness.org 70 i 38034

    https://www.ghostbsd.org/sites/default/files/Screenshot_at_2018-10-20_13-27-26.png

    Err codemadness.org 70 i 38035
  • Err codemadness.org 70 i 38036
Err codemadness.org 70 i 38037 Err codemadness.org 70 i 38038


Err codemadness.org 70 i 38039 Err codemadness.org 70 i 38040

###OpenSSH 7.9 has been released and it has support for OpenSSL 1.1

Err codemadness.org 70 i 38041 Err codemadness.org 70 i 38042
Changes since OpenSSH 7.8	Err	codemadness.org	70
i 38043 =========================	Err	codemadness.org	70
i 38044 	Err	codemadness.org	70
i 38045 This is primarily a bugfix release.	Err	codemadness.org	70
i 38046 	Err	codemadness.org	70
i 38047 New Features	Err	codemadness.org	70
i 38048 ------------	Err	codemadness.org	70
i 38049  * ssh(1), sshd(8): allow most port numbers to be specified using	Err	codemadness.org	70
i 38050    service names from getservbyname(3) (typically /etc/services).	Err	codemadness.org	70
i 38051  * ssh(1): allow the IdentityAgent configuration directive to accept	Err	codemadness.org	70
i 38052    environment variable names. This supports the use of multiple	Err	codemadness.org	70
i 38053    agent sockets without needing to use fixed paths.	Err	codemadness.org	70
i 38054  * sshd(8): support signalling sessions via the SSH protocol.	Err	codemadness.org	70
i 38055    A limited subset of signals is supported and only for login or	Err	codemadness.org	70
i 38056    command sessions (i.e. not subsystems) that were not subject to	Err	codemadness.org	70
i 38057    a forced command via authorized_keys or sshd_config. bz#1424	Err	codemadness.org	70
i 38058  * ssh(1): support "ssh -Q sig" to list supported signature options.	Err	codemadness.org	70
i 38059    Also "ssh -Q help" to show the full set of supported queries.	Err	codemadness.org	70
i 38060  * ssh(1), sshd(8): add a CASignatureAlgorithms option for the	Err	codemadness.org	70
i 38061    client and server configs to allow control over which signature	Err	codemadness.org	70
i 38062    formats are allowed for CAs to sign certificates. For example,	Err	codemadness.org	70
i 38063    this allows banning CAs that sign certificates using the RSA-SHA1	Err	codemadness.org	70
i 38064    signature algorithm.	Err	codemadness.org	70
i 38065  * sshd(8), ssh-keygen(1): allow key revocation lists (KRLs) to	Err	codemadness.org	70
i 38066    revoke keys specified by SHA256 hash.	Err	codemadness.org	70
i 38067  * ssh-keygen(1): allow creation of key revocation lists directly	Err	codemadness.org	70
i 38068    from base64-encoded SHA256 fingerprints. This supports revoking	Err	codemadness.org	70
i 38069    keys using only the information contained in sshd(8)	Err	codemadness.org	70
i 38070    authentication log messages.	Err	codemadness.org	70
i 38071 	Err	codemadness.org	70
i 38072 Bugfixes	Err	codemadness.org	70
i 38073 --------	Err	codemadness.org	70
i 38074 	Err	codemadness.org	70
i 38075  * ssh(1), ssh-keygen(1): avoid spurious "invalid format" errors when	Err	codemadness.org	70
i 38076    attempting to load PEM private keys while using an incorrect	Err	codemadness.org	70
i 38077    passphrase. bz#2901	Err	codemadness.org	70
i 38078  * sshd(8): when a channel closed message is received from a client,	Err	codemadness.org	70
i 38079    close the stderr file descriptor at the same time stdout is	Err	codemadness.org	70
i 38080    closed. This avoids stuck processes if they were waiting for	Err	codemadness.org	70
i 38081    stderr to close and were insensitive to stdin/out closing. bz#2863	Err	codemadness.org	70
i 38082  * ssh(1): allow ForwardX11Timeout=0 to disable the untrusted X11	Err	codemadness.org	70
i 38083    forwarding timeout and support X11 forwarding indefinitely.	Err	codemadness.org	70
i 38084    Previously the behaviour of ForwardX11Timeout=0 was undefined.	Err	codemadness.org	70
i 38085  * sshd(8): when compiled with GSSAPI support, cache supported method	Err	codemadness.org	70
i 38086    OIDs regardless of whether GSSAPI authentication is enabled in the	Err	codemadness.org	70
i 38087    main section of sshd_config. This avoids sandbox violations if	Err	codemadness.org	70
i 38088    GSSAPI authentication was later enabled in a Match block. bz#2107	Err	codemadness.org	70
i 38089  * sshd(8): do not fail closed when configured with a text key	Err	codemadness.org	70
i 38090    revocation list that contains a too-short key. bz#2897	Err	codemadness.org	70
i 38091  * ssh(1): treat connections with ProxyJump specified the same as	Err	codemadness.org	70
i 38092    ones with a ProxyCommand set with regards to hostname	Err	codemadness.org	70
i 38093    canonicalisation (i.e. don't try to canonicalise the hostname	Err	codemadness.org	70
i 38094    unless CanonicalizeHostname is set to 'always'). bz#2896	Err	codemadness.org	70
i 38095  * ssh(1): fix regression in OpenSSH 7.8 that could prevent public-	Err	codemadness.org	70
i 38096    key authentication using certificates hosted in a ssh-agent(1)	Err	codemadness.org	70
i 38097    or against sshd(8) from OpenSSH <7.8.	Err	codemadness.org	70
i 38098 	Err	codemadness.org	70
i 38099 Portability	Err	codemadness.org	70
i 38100 -----------	Err	codemadness.org	70
i 38101 	Err	codemadness.org	70
i 38102  * All: support building against the openssl-1.1 API (releases 1.1.0g	Err	codemadness.org	70
i 38103    and later). The openssl-1.0 API will remain supported at least	Err	codemadness.org	70
i 38104    until OpenSSL terminates security patch support for that API version.	Err	codemadness.org	70
i 38105  * sshd(8): allow the futex(2) syscall in the Linux seccomp sandbox;	Err	codemadness.org	70
i 38106    apparently required by some glibc/OpenSSL combinations.	Err	codemadness.org	70
i 38107  * sshd(8): handle getgrouplist(3) returning more than	Err	codemadness.org	70
i 38108    _SC_NGROUPS_MAX groups. Some platforms consider this limit more	Err	codemadness.org	70
i 38109    as a guideline.	Err	codemadness.org	70
i 38110 
Err codemadness.org 70 i 38111 Err codemadness.org 70 i 38112


Err codemadness.org 70 i 38113 Err codemadness.org 70 i 38114

##News Roundup

Err codemadness.org 70 i 38115 Err codemadness.org 70 i 38116

###MeetBSD 2018: The Ultimate Hallway Track

Err codemadness.org 70 i 38117 Err codemadness.org 70 i 38118
Err codemadness.org 70 i 38119

Founded in Poland in 2007 and first hosted in California in 2008, MeetBSD combines formal talks with UnConference activities to provide a level of interactivity not found at any other BSD conference. The character of each MeetBSD is determined largely by its venue, ranging from Hacker Dojo in 2010 to Intel’s Santa Clara headquarters this year. The Intel SC12 building provided a beautiful auditorium and sponsors’ room, plus a cafeteria for the Friday night social event and the Saturday night FreeBSD 25th Anniversary Celebration. The formal nature of the auditorium motivated the formation of MeetBSD’s first independent Program Committee and public Call for Participation. Together these resulted in a backbone of talks presented by speakers from the USA, Canada, and Poland, combined with UnConference activities tailored to the space.

Err codemadness.org 70 i 38120
Err codemadness.org 70 i 38121 Err codemadness.org 70 i 38122
    Err codemadness.org 70 i 38123
  • MeetBSD Day 0
  • Err codemadness.org 70 i 38124
Err codemadness.org 70 i 38125 Err codemadness.org 70 i 38126
Err codemadness.org 70 i 38127

Day Zero of MeetBSD was a FreeBSD Developer/Vendor Summit hosted in the same auditorium where the talks would take place. Like the conference itself, this event featured a mix of scheduled talks and interactive sessions. The scheduled talks were LWPMFS: LightWeight Persistent Memory Filesystem by Ravi Pokala, Evaluating GIT for FreeBSD by Ed Maste, and NUMA by Mark Johnston. Ed’s overview of the advantages and disadvantages of using Git for FreeBSD development was of the most interest to users and developers, and the discussion continued into the following two days.

Err codemadness.org 70 i 38128
Err codemadness.org 70 i 38129 Err codemadness.org 70 i 38130
    Err codemadness.org 70 i 38131
  • MeetBSD Day 1
  • Err codemadness.org 70 i 38132
Err codemadness.org 70 i 38133 Err codemadness.org 70 i 38134
Err codemadness.org 70 i 38135

The first official day of MeetBSD 2018 was kicked off with introductions led by emcee JT Pennington and a keynote, “Using TrueOS to boot-strap your FreeBSD-based project” by Kris Moore. Kris described a new JSON-based release infrastructure that he has exercised with FreeBSD, TrueOS, and FreeNAS. Kris’ talk was followed by “Intel & FreeBSD: Better Together” by Ben Widawsky, the FreeBSD program lead at Intel, who gave an overview of Intel’s past and current efforts supporting FreeBSD. Next came lunch, followed by Kamil Rytarowski’s “Bug detecting software in the NetBSD userland: MKSANITIZER”. This was followed by 5-Minute Lightning Talks, Andrew Fengler’s “FreeBSD: What to (Not) Monitor”, and an OpenZFS Panel Discussion featuring OpenZFS experts Michael W. Lucas, Allan Jude, Alexander Motin, Pawel Dawidek, and Dan Langille. Day one concluded with a social event at the Intel cafeteria where the discussions continued into the night.

Err codemadness.org 70 i 38136
Err codemadness.org 70 i 38137 Err codemadness.org 70 i 38138
    Err codemadness.org 70 i 38139
  • MeetBSD Day 2
  • Err codemadness.org 70 i 38140
Err codemadness.org 70 i 38141 Err codemadness.org 70 i 38142
Err codemadness.org 70 i 38143

Day Two of MeetBSD 2018 kicked off with a keynote by Michael W. Lucas entitled “Why BSD?”, where Michael detailed what makes the BSD community different and why it attracts us all. This was followed by Dr. Kirk McKusick’s “The Early Days of BSD” talk, which was followed by “DTrace/dwatch in Production” by Devin Teske. After lunch, we enjoyed “A Curmudgeon’s Language Selection Criteria: Why I Don’t Write Everything in Go, Rust, Elixir, etc” by G. Clifford Williams and, “Best practices of sandboxing applications with Capsicum” by Mariusz Zaborski. I then hosted a Virtualization Panel Discussion that featured eight developers from FreeBSD, OpenBSD, and NetBSD. We then split up for Breakout Sessions and the one on Bloomberg’s controversial article on backdoored Supermicro systems was fascinating given the experts present, all of whom were skeptical of the feasibility of the attack. The day wrapped up with a final talk, “Tales of a Daemontown Performance Peddler: Why ‘it depends’ and what you can do about it” by Nick Principe, followed by the FreeBSD 25th Anniversary Celebration.

Err codemadness.org 70 i 38144
Err codemadness.org 70 i 38145 Err codemadness.org 70 i 38146
    Err codemadness.org 70 i 38147
  • Putting the “meet” in MeetBSD
  • Err codemadness.org 70 i 38148
Err codemadness.org 70 i 38149 Err codemadness.org 70 i 38150
Err codemadness.org 70 i 38151

I confess the other organizers and I were nervous about how well one large auditorium would suit a BSD event but the flexible personal space it gave everyone allowed for countless meetings and heated hacking that often brought about immediate results. I watched people take ideas through several iterations with the help and input of obvious and unexpected experts, all of whom were within reach. Not having to pick up and leave for a talk in another room organically resulted in essentially a series of mini hackathons that none of us anticipated but were delighted to witness, taking the “hallway track” to a whole new level. The mix of formal and UnConference activities at MeetBSD is certain to evolve. Thank you to everyone who participated with questions, Lightning Talks, and Panel participation. A huge thanks to our sponsors, including Intel for both hosting and sponsoring MeetBSD California 2018, Western Digital, Supermicro, Verisign, Jupiter Broadcasting, the FreeBSD Foundation, Bank of America Merrill Lynch, the NetBSD Foundation, and the team at iXsystems.

Err codemadness.org 70 i 38152
Err codemadness.org 70 i 38153 Err codemadness.org 70 i 38154
Err codemadness.org 70 i 38155

See you at MeetBSD 2020!

Err codemadness.org 70 i 38156
Err codemadness.org 70 i 38157 Err codemadness.org 70 i 38158


Err codemadness.org 70 i 38159 Err codemadness.org 70 i 38160

###Setup DragonflyBSD with a desktop on real hardware ThinkPad T410
Err codemadness.org 70 i 38161 +Video Demo

Err codemadness.org 70 i 38162 Err codemadness.org 70 i 38163
Err codemadness.org 70 i 38164

Linux has become too mainstream and standard BSD is a common thing now? How about DragonflyBSD which was created as a fork of FreeBSD 4.8 in conflict over system internals. This tutorial will show how to install it and set up a user-oriented desktop. It should work with DragonflyBSD, FreeBSD and probably all BSDs.
Err codemadness.org 70 i 38165 Some background: BSD was is ultimately derived from UNIX back in the days. It is not Linux even though it is similar in many ways because Linux was designed to follow UNIX principles. Seeing is believing, so check out the video of the install!
Err codemadness.org 70 i 38166 I did try two BSD distros before called GhostBSD and TrueOS and you can check out my short reviews. DragonflyBSD comes like FreeBSD bare bones and requires some work to get a desktop running.

Err codemadness.org 70 i 38167
Err codemadness.org 70 i 38168 Err codemadness.org 70 i 38169
    Err codemadness.org 70 i 38170
  • Err codemadness.org 70 i 38171

    Download image file and burn to USB drive or DVD

    Err codemadness.org 70 i 38172
  • Err codemadness.org 70 i 38173
  • Err codemadness.org 70 i 38174

    First installation

    Err codemadness.org 70 i 38175
  • Err codemadness.org 70 i 38176
  • Err codemadness.org 70 i 38177

    Setting up the system and installing a desktop

    Err codemadness.org 70 i 38178
  • Err codemadness.org 70 i 38179
  • Err codemadness.org 70 i 38180

    Inside the desktop

    Err codemadness.org 70 i 38181
  • Err codemadness.org 70 i 38182
  • Err codemadness.org 70 i 38183

    Install some more programs

    Err codemadness.org 70 i 38184
  • Err codemadness.org 70 i 38185
  • Err codemadness.org 70 i 38186

    How to enable sound?

    Err codemadness.org 70 i 38187
  • Err codemadness.org 70 i 38188
  • Err codemadness.org 70 i 38189

    Let’s play some free games

    Err codemadness.org 70 i 38190
  • Err codemadness.org 70 i 38191
  • Err codemadness.org 70 i 38192

    Setup WiFi

    Err codemadness.org 70 i 38193
  • Err codemadness.org 70 i 38194
  • Err codemadness.org 70 i 38195

    Power mode settings

    Err codemadness.org 70 i 38196
  • Err codemadness.org 70 i 38197
  • Err codemadness.org 70 i 38198

    More to do?

    Err codemadness.org 70 i 38199
  • Err codemadness.org 70 i 38200
Err codemadness.org 70 i 38201 Err codemadness.org 70 i 38202
Err codemadness.org 70 i 38203

You can check out this blog post if you want a much more detailed tutorial. If you don’t mind standard BSD, get the GhostBSD distro instead which comes with a ready-made desktop xcfe or mate and many functional presets.

Err codemadness.org 70 i 38204
Err codemadness.org 70 i 38205 Err codemadness.org 70 i 38206
    Err codemadness.org 70 i 38207
  • Err codemadness.org 70 i 38208

    A small summary of what we got on the upside:

    Err codemadness.org 70 i 38209
      Err codemadness.org 70 i 38210
    • Free and open source operating system with a long history
    • Err codemadness.org 70 i 38211
    • Drivers worked fine including Ethernet, WiFi, video 2D & 3D, audio, etc
    • Err codemadness.org 70 i 38212
    • Hammer2 advanced file system
    • Err codemadness.org 70 i 38213
    • You are very unique if you use this OS fork
    • Err codemadness.org 70 i 38214
    Err codemadness.org 70 i 38215 Err codemadness.org 70 i 38216


  • Err codemadness.org 70 i 38217
  • Err codemadness.org 70 i 38218 Err codemadness.org 70 i 38219

    Some downsides:

    Err codemadness.org 70 i 38220 Err codemadness.org 70 i 38221


  • Err codemadness.org 70 i 38222
  • Err codemadness.org 70 i 38223 Err codemadness.org 70 i 38224

    Less driver and direct app support than Linux

    Err codemadness.org 70 i 38225 Err codemadness.org 70 i 38226


  • Err codemadness.org 70 i 38227
  • Err codemadness.org 70 i 38228 Err codemadness.org 70 i 38229

    Installer and desktop have some traps and quirks and require work

    Err codemadness.org 70 i 38230 Err codemadness.org 70 i 38231


  • Err codemadness.org 70 i 38232

Err codemadness.org 70 i 38233

Err codemadness.org 70 i 38234 Err codemadness.org 70 i 38235

###Porting Keybase to NetBSD

Err codemadness.org 70 i 38236 Err codemadness.org 70 i 38237
Err codemadness.org 70 i 38238

Keybase significantly simplifies the whole keypair/PGP thing and makes what is usually a confusing, difficult experience actually rather pleasant. At its heart is an open-source command line utility that does all of the heavy cryptographic lifting. But it’s also hooked up to the network of all other Keybase users, so you don’t have to work very hard to maintain big keychains. Pretty cool!
Err codemadness.org 70 i 38239 So, this evening, I tried to get it to all work on NetBSD.
Err codemadness.org 70 i 38240 The Keybase client code base is, in my opinion, not very well architected… there exist many different Keybase clients (command line apps, desktop apps, mobile apps) and for some reason the code for all of them are seemingly in this single repository, without even using Git submodules. Not sure what that’s about.
Err codemadness.org 70 i 38241 Anyway, “go build”-ing the command line program (it’s written in Go) failed immediately because there’s some platform-specific code that just does not seem to recognize that NetBSD exists (but they do for FreeBSD and OpenBSD). Looks like the Keybase developers maintain a Golang wrapper around struct proc, which of course is different from OS to OS. So I literally just copypasted the OpenBSD wrapper, renamed it to “NetBSD”, and the build basically succeeded from there! This is of course super janky and untrustworthy, but it seems to Mostly Just Work…
Err codemadness.org 70 i 38242 I forked the GitHub repo, you can see the diff on top of keybase 2.7.3 here: bccaaf3096a
Err codemadness.org 70 i 38243 Eventually I ended up with a ~/go/bin/keybase which launches just fine. Meaning, I can main() okay. But the moment you try to do anything interesting, it looks super scary:

Err codemadness.org 70 i 38244
Err codemadness.org 70 i 38245 Err codemadness.org 70 i 38246
charlotte@sakuracity:~/go/bin ./keybase login	Err	codemadness.org	70
i 38247 ▶ WARNING Running in devel mode	Err	codemadness.org	70
i 38248 ▶ INFO Forking background server with pid=12932	Err	codemadness.org	70
i 38249 ▶ ERROR unexpected error in Login: API network error: doRetry failed,	Err	codemadness.org	70
i 38250 attempts: 1, timeout 5s, last err: Get	Err	codemadness.org	70
i 38251 http://localhost:3000/_/api/1.0/merkle/path.json?last=3784314&load_deleted=1&load_reset_chain=1&poll=10&sig_hints_low=3&uid=38ae1dfa49cd6831ea2fdade5c5d0519:	Err	codemadness.org	70
i 38252 dial tcp [::1]:3000: connect: connection refused	Err	codemadness.org	70
i 38253 
Err codemadness.org 70 i 38254 Err codemadness.org 70 i 38255
Err codemadness.org 70 i 38256

There’s a few things about this error message that stuck out to me:

Err codemadness.org 70 i 38257
Err codemadness.org 70 i 38258 Err codemadness.org 70 i 38259
    Err codemadness.org 70 i 38260
  • Forking a background server? What?
  • Err codemadness.org 70 i 38261
  • It’s trying to connect to localhost? That must be the server that doesn’t work …
  • Err codemadness.org 70 i 38262
Err codemadness.org 70 i 38263 Err codemadness.org 70 i 38264
Err codemadness.org 70 i 38265

Unfortunately, this nonfunctional “background server” sticks around even when a command as simple as ‘login’ command just failed:

Err codemadness.org 70 i 38266
Err codemadness.org 70 i 38267 Err codemadness.org 70 i 38268
charlotte@sakuracity:~/go/bin ps 12932	Err	codemadness.org	70
i 38269   PID TTY STAT    TIME COMMAND	Err	codemadness.org	70
i 38270   12932 ?   Ssl  0:00.21 ./keybase --debug --log-file	Err	codemadness.org	70
i 38271   /home/charlotte/.cache/keybase.devel/keybase.service.log service --chdir	Err	codemadness.org	70
i 38272   /home/charlotte/.config/keybase.devel --auto-forked 	Err	codemadness.org	70
i 38273 
Err codemadness.org 70 i 38274 Err codemadness.org 70 i 38275
Err codemadness.org 70 i 38276

I’m not exactly sure what the intended purpose of the “background server” even is, but fortunately we can kill it and even tell the keybase command to not even spawn one:

Err codemadness.org 70 i 38277
Err codemadness.org 70 i 38278 Err codemadness.org 70 i 38279
charlotte@sakuracity:~/go/bin ./keybase help advanced | grep -- --standalone	Err	codemadness.org	70
i 38280    --standalone                         Use the client without any daemon support.	Err	codemadness.org	70
i 38281 
Err codemadness.org 70 i 38282 Err codemadness.org 70 i 38283
Err codemadness.org 70 i 38284

And then we can fix wanting to connect to localhost by specifying an expected Keybase API server – how about the one hosted at https://keybase.io?

Err codemadness.org 70 i 38285
Err codemadness.org 70 i 38286 Err codemadness.org 70 i 38287
charlotte@sakuracity:~/go/bin ./keybase help advanced | grep -- --server	Err	codemadness.org	70
i 38288    --server, -s                         Specify server API.	Err	codemadness.org	70
i 38289 
Err codemadness.org 70 i 38290 Err codemadness.org 70 i 38291
Err codemadness.org 70 i 38292

Basically, what I’m trying to say is that if you specify both of these options, the keybase command does what I expect on NetBSD:

Err codemadness.org 70 i 38293
Err codemadness.org 70 i 38294 Err codemadness.org 70 i 38295
charlotte@sakuracity:~/go/bin ./keybase --standalone -s https://keybase.io login	Err	codemadness.org	70
i 38296 ▶ WARNING Running in devel mode	Err	codemadness.org	70
i 38297 Please enter the Keybase passphrase for dressupgeekout (6+ characters): 	Err	codemadness.org	70
i 38298 	Err	codemadness.org	70
i 38299 charlotte@sakuracity:~/go/bin ./keybase --standalone -s https://keybase.io id dressupgeekout	Err	codemadness.org	70
i 38300 ▶ WARNING Running in devel mode	Err	codemadness.org	70
i 38301 ▶ INFO Identifying dressupgeekout	Err	codemadness.org	70
i 38302 ✔ public key fingerprint: 7873 DA50 A786 9A3F 1662 3A17 20BD 8739 E82C 7F2F	Err	codemadness.org	70
i 38303 ✔ "dressupgeekout" on github:	Err	codemadness.org	70
i 38304 https://gist.github.com/0471c7918d254425835bf5e1b4bcda00 [cached 2018-10-11	Err	codemadness.org	70
i 38305 20:55:21 PDT]	Err	codemadness.org	70
i 38306 ✔ "dressupgeekout" on reddit:	Err	codemadness.org	70
i 38307 https://www.reddit.com/r/KeybaseProofs/comments/9ng5qm/my_keybase_proof_redditdressupgeekout/	Err	codemadness.org	70
i 38308 [cached 2018-10-11 20:55:21 PDT]	Err	codemadness.org	70
i 38309 
Err codemadness.org 70 i 38310 Err codemadness.org 70 i 38311


Err codemadness.org 70 i 38312 Err codemadness.org 70 i 38313

###Initial implementation of draft-ietf-6man-ipv6only-flag

Err codemadness.org 70 i 38314 Err codemadness.org 70 i 38315
This change defines the RA "6" (IPv6-Only) flag which routers	Err	codemadness.org	70
i 38316 may advertise, kernel logic to check if all routers on a link	Err	codemadness.org	70
i 38317 have the flag set and accordingly update a per-interface flag.	Err	codemadness.org	70
i 38318 	Err	codemadness.org	70
i 38319 If all routers agree that it is an IPv6-only link, ether_output_frame(),	Err	codemadness.org	70
i 38320 based on the interface flag, will filter out all ETHERTYPE_IP/ARP	Err	codemadness.org	70
i 38321 frames, drop them, and return EAFNOSUPPORT to upper layers.	Err	codemadness.org	70
i 38322 	Err	codemadness.org	70
i 38323 The change also updates ndp to show the "6" flag, ifconfig to	Err	codemadness.org	70
i 38324 display the IPV6_ONLY nd6 flag if set, and rtadvd to allow	Err	codemadness.org	70
i 38325 announcing the flag.	Err	codemadness.org	70
i 38326 	Err	codemadness.org	70
i 38327 Further changes to tcpdump (contrib code) are availble and will	Err	codemadness.org	70
i 38328 be upstreamed.	Err	codemadness.org	70
i 38329 	Err	codemadness.org	70
i 38330 Tested the code (slightly earlier version) with 2 FreeBSD	Err	codemadness.org	70
i 38331 IPv6 routers, a FreeBSD laptop on ethernet as well as wifi,	Err	codemadness.org	70
i 38332 and with Win10 and OSX clients (which did not fall over with	Err	codemadness.org	70
i 38333 the "6" flag set but not understood).	Err	codemadness.org	70
i 38334 	Err	codemadness.org	70
i 38335 We may also want to (a) implement and RX filter, and (b) over	Err	codemadness.org	70
i 38336 time enahnce user space to, say, stop dhclient from running	Err	codemadness.org	70
i 38337 when the interface flag is set.  Also we might want to start	Err	codemadness.org	70
i 38338 IPv6 before IPv4 in the future.	Err	codemadness.org	70
i 38339 	Err	codemadness.org	70
i 38340 All the code is hidden under the EXPERIMENTAL option and not	Err	codemadness.org	70
i 38341 compiled by default as the draft is a work-in-progress and	Err	codemadness.org	70
i 38342 we cannot rely on the fact that IANA will assign the bits	Err	codemadness.org	70
i 38343 as requested by the draft and hence they may change.	Err	codemadness.org	70
i 38344 	Err	codemadness.org	70
i 38345 Dear 6man, you have running code.	Err	codemadness.org	70
i 38346 	Err	codemadness.org	70
i 38347 Discussed with: Bob Hinden, Brian E Carpenter	Err	codemadness.org	70
i 38348 
Err codemadness.org 70 i 38349 Err codemadness.org 70 i 38350

##Beastie Bits

Err codemadness.org 70 i 38351 Err codemadness.org 70 i 38352 Err codemadness.org 70 i 38367 Err codemadness.org 70 i 38368


Err codemadness.org 70 i 38369 Err codemadness.org 70 i 38370

##Feedback/Questions

Err codemadness.org 70 i 38371 Err codemadness.org 70 i 38372 Err codemadness.org 70 i 38377 Err codemadness.org 70 i 38378


Err codemadness.org 70 i 38379 Err codemadness.org 70 i 38380
    Err codemadness.org 70 i 38381
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 38382
Err codemadness.org 70 i 38383 Err codemadness.org 70 i 38384


]]> Err codemadness.org 70 i 38385
Err codemadness.org 70 i 38386 Err codemadness.org 70 i 38387 OpenBSD 6.4 released, GhostBSD RC2 released, MeetBSD - the ultimate hallway track, DragonflyBSD desktop on a Thinkpad, Porting keybase to NetBSD, OpenSSH 7.9, and draft-ietf-6man-ipv6only-flag in FreeBSD.

Err codemadness.org 70 i 38388 Err codemadness.org 70 i 38389

##Headlines
Err codemadness.org 70 i 38390 ###OpenBSD 6.4 released

Err codemadness.org 70 i 38391 Err codemadness.org 70 i 38392 Err codemadness.org 70 i 38401 Err codemadness.org 70 i 38402


Err codemadness.org 70 i 38403 Err codemadness.org 70 i 38404

###GhostBSD 18.10 RC2 Announced

Err codemadness.org 70 i 38405 Err codemadness.org 70 i 38406
Err codemadness.org 70 i 38407

This second release candidate of GhostBSD 18.10 is the second official release of GhostBSD with TrueOS under the hood. The official desktop of GhostBSD is MATE. However, in the future, there might be an XFCE community release, but for now, there is no community release yet.

Err codemadness.org 70 i 38408
Err codemadness.org 70 i 38409 Err codemadness.org 70 i 38410
    Err codemadness.org 70 i 38411
  • Err codemadness.org 70 i 38412

    What has changed since RC1

    Err codemadness.org 70 i 38413
  • Err codemadness.org 70 i 38414
  • Err codemadness.org 70 i 38415

    Removed drm-stable-kmod and we will let users installed the propper drm-*-kmod

    Err codemadness.org 70 i 38416
  • Err codemadness.org 70 i 38417
  • Err codemadness.org 70 i 38418

    Douglas Joachin added libva-intel-driver libva-vdpau-driver to supports accelerated some video driver for Intel

    Err codemadness.org 70 i 38419
  • Err codemadness.org 70 i 38420
  • Err codemadness.org 70 i 38421

    Issues that got fixed

    Err codemadness.org 70 i 38422
  • Err codemadness.org 70 i 38423
  • Err codemadness.org 70 i 38424

    Bug #70 Cannot run Octopi, missing libgksu error.

    Err codemadness.org 70 i 38425
  • Err codemadness.org 70 i 38426
  • Err codemadness.org 70 i 38427

    Bug #71 LibreOffice doesn’t start because of missing libcurl.so.4

    Err codemadness.org 70 i 38428
  • Err codemadness.org 70 i 38429
  • Err codemadness.org 70 i 38430

    Bug #72 libarchive is a missing dependency

    Err codemadness.org 70 i 38431
  • Err codemadness.org 70 i 38432
Err codemadness.org 70 i 38433 Err codemadness.org 70 i 38434
Err codemadness.org 70 i 38435

Again thanks to iXsystems, TrueOS, Joe Maloney, Kris Moore, Ken Moore, Martin Wilke, Neville Goddard, Vester “Vic” Thacker, Douglas Joachim, Alex Lyakhov, Yetkin Degirmenci and many more who helped to make the transition from FreeBSD to TrueOS smoother.

Err codemadness.org 70 i 38436
Err codemadness.org 70 i 38437 Err codemadness.org 70 i 38438
    Err codemadness.org 70 i 38439
  • Err codemadness.org 70 i 38440

    Updating from RC1 to RC2:

    Err codemadness.org 70 i 38441
  • Err codemadness.org 70 i 38442
  • Err codemadness.org 70 i 38443

    sudo pkg update -f

    Err codemadness.org 70 i 38444
  • Err codemadness.org 70 i 38445
  • Err codemadness.org 70 i 38446

    sudo pkg install -f libarchive curl libgksu

    Err codemadness.org 70 i 38447
  • Err codemadness.org 70 i 38448
  • Err codemadness.org 70 i 38449

    sudo pkg upgrade

    Err codemadness.org 70 i 38450
  • Err codemadness.org 70 i 38451
  • Err codemadness.org 70 i 38452

    Where to download:

    Err codemadness.org 70 i 38453
  • Err codemadness.org 70 i 38454
  • Err codemadness.org 70 i 38455

    All images checksum, hybrid ISO(DVD, USB) and torrent are available here: https://www.ghostbsd.org/download

    Err codemadness.org 70 i 38456
  • Err codemadness.org 70 i 38457
  • Err codemadness.org 70 i 38458

    [ScreenShots]

    Err codemadness.org 70 i 38459
  • Err codemadness.org 70 i 38460
  • Err codemadness.org 70 i 38461

    https://www.ghostbsd.org/sites/default/files/Screenshot_at_2018-10-20_13-22-41.png

    Err codemadness.org 70 i 38462
  • Err codemadness.org 70 i 38463
  • Err codemadness.org 70 i 38464

    https://www.ghostbsd.org/sites/default/files/Screenshot_at_2018-10-20_13-27-26.png

    Err codemadness.org 70 i 38465
  • Err codemadness.org 70 i 38466
Err codemadness.org 70 i 38467 Err codemadness.org 70 i 38468


Err codemadness.org 70 i 38469 Err codemadness.org 70 i 38470

###OpenSSH 7.9 has been released and it has support for OpenSSL 1.1

Err codemadness.org 70 i 38471 Err codemadness.org 70 i 38472
Changes since OpenSSH 7.8	Err	codemadness.org	70
i 38473 =========================	Err	codemadness.org	70
i 38474 	Err	codemadness.org	70
i 38475 This is primarily a bugfix release.	Err	codemadness.org	70
i 38476 	Err	codemadness.org	70
i 38477 New Features	Err	codemadness.org	70
i 38478 ------------	Err	codemadness.org	70
i 38479  * ssh(1), sshd(8): allow most port numbers to be specified using	Err	codemadness.org	70
i 38480    service names from getservbyname(3) (typically /etc/services).	Err	codemadness.org	70
i 38481  * ssh(1): allow the IdentityAgent configuration directive to accept	Err	codemadness.org	70
i 38482    environment variable names. This supports the use of multiple	Err	codemadness.org	70
i 38483    agent sockets without needing to use fixed paths.	Err	codemadness.org	70
i 38484  * sshd(8): support signalling sessions via the SSH protocol.	Err	codemadness.org	70
i 38485    A limited subset of signals is supported and only for login or	Err	codemadness.org	70
i 38486    command sessions (i.e. not subsystems) that were not subject to	Err	codemadness.org	70
i 38487    a forced command via authorized_keys or sshd_config. bz#1424	Err	codemadness.org	70
i 38488  * ssh(1): support "ssh -Q sig" to list supported signature options.	Err	codemadness.org	70
i 38489    Also "ssh -Q help" to show the full set of supported queries.	Err	codemadness.org	70
i 38490  * ssh(1), sshd(8): add a CASignatureAlgorithms option for the	Err	codemadness.org	70
i 38491    client and server configs to allow control over which signature	Err	codemadness.org	70
i 38492    formats are allowed for CAs to sign certificates. For example,	Err	codemadness.org	70
i 38493    this allows banning CAs that sign certificates using the RSA-SHA1	Err	codemadness.org	70
i 38494    signature algorithm.	Err	codemadness.org	70
i 38495  * sshd(8), ssh-keygen(1): allow key revocation lists (KRLs) to	Err	codemadness.org	70
i 38496    revoke keys specified by SHA256 hash.	Err	codemadness.org	70
i 38497  * ssh-keygen(1): allow creation of key revocation lists directly	Err	codemadness.org	70
i 38498    from base64-encoded SHA256 fingerprints. This supports revoking	Err	codemadness.org	70
i 38499    keys using only the information contained in sshd(8)	Err	codemadness.org	70
i 38500    authentication log messages.	Err	codemadness.org	70
i 38501 	Err	codemadness.org	70
i 38502 Bugfixes	Err	codemadness.org	70
i 38503 --------	Err	codemadness.org	70
i 38504 	Err	codemadness.org	70
i 38505  * ssh(1), ssh-keygen(1): avoid spurious "invalid format" errors when	Err	codemadness.org	70
i 38506    attempting to load PEM private keys while using an incorrect	Err	codemadness.org	70
i 38507    passphrase. bz#2901	Err	codemadness.org	70
i 38508  * sshd(8): when a channel closed message is received from a client,	Err	codemadness.org	70
i 38509    close the stderr file descriptor at the same time stdout is	Err	codemadness.org	70
i 38510    closed. This avoids stuck processes if they were waiting for	Err	codemadness.org	70
i 38511    stderr to close and were insensitive to stdin/out closing. bz#2863	Err	codemadness.org	70
i 38512  * ssh(1): allow ForwardX11Timeout=0 to disable the untrusted X11	Err	codemadness.org	70
i 38513    forwarding timeout and support X11 forwarding indefinitely.	Err	codemadness.org	70
i 38514    Previously the behaviour of ForwardX11Timeout=0 was undefined.	Err	codemadness.org	70
i 38515  * sshd(8): when compiled with GSSAPI support, cache supported method	Err	codemadness.org	70
i 38516    OIDs regardless of whether GSSAPI authentication is enabled in the	Err	codemadness.org	70
i 38517    main section of sshd_config. This avoids sandbox violations if	Err	codemadness.org	70
i 38518    GSSAPI authentication was later enabled in a Match block. bz#2107	Err	codemadness.org	70
i 38519  * sshd(8): do not fail closed when configured with a text key	Err	codemadness.org	70
i 38520    revocation list that contains a too-short key. bz#2897	Err	codemadness.org	70
i 38521  * ssh(1): treat connections with ProxyJump specified the same as	Err	codemadness.org	70
i 38522    ones with a ProxyCommand set with regards to hostname	Err	codemadness.org	70
i 38523    canonicalisation (i.e. don't try to canonicalise the hostname	Err	codemadness.org	70
i 38524    unless CanonicalizeHostname is set to 'always'). bz#2896	Err	codemadness.org	70
i 38525  * ssh(1): fix regression in OpenSSH 7.8 that could prevent public-	Err	codemadness.org	70
i 38526    key authentication using certificates hosted in a ssh-agent(1)	Err	codemadness.org	70
i 38527    or against sshd(8) from OpenSSH <7.8.	Err	codemadness.org	70
i 38528 	Err	codemadness.org	70
i 38529 Portability	Err	codemadness.org	70
i 38530 -----------	Err	codemadness.org	70
i 38531 	Err	codemadness.org	70
i 38532  * All: support building against the openssl-1.1 API (releases 1.1.0g	Err	codemadness.org	70
i 38533    and later). The openssl-1.0 API will remain supported at least	Err	codemadness.org	70
i 38534    until OpenSSL terminates security patch support for that API version.	Err	codemadness.org	70
i 38535  * sshd(8): allow the futex(2) syscall in the Linux seccomp sandbox;	Err	codemadness.org	70
i 38536    apparently required by some glibc/OpenSSL combinations.	Err	codemadness.org	70
i 38537  * sshd(8): handle getgrouplist(3) returning more than	Err	codemadness.org	70
i 38538    _SC_NGROUPS_MAX groups. Some platforms consider this limit more	Err	codemadness.org	70
i 38539    as a guideline.	Err	codemadness.org	70
i 38540 
Err codemadness.org 70 i 38541 Err codemadness.org 70 i 38542


Err codemadness.org 70 i 38543 Err codemadness.org 70 i 38544

##News Roundup

Err codemadness.org 70 i 38545 Err codemadness.org 70 i 38546

###MeetBSD 2018: The Ultimate Hallway Track

Err codemadness.org 70 i 38547 Err codemadness.org 70 i 38548
Err codemadness.org 70 i 38549

Founded in Poland in 2007 and first hosted in California in 2008, MeetBSD combines formal talks with UnConference activities to provide a level of interactivity not found at any other BSD conference. The character of each MeetBSD is determined largely by its venue, ranging from Hacker Dojo in 2010 to Intel’s Santa Clara headquarters this year. The Intel SC12 building provided a beautiful auditorium and sponsors’ room, plus a cafeteria for the Friday night social event and the Saturday night FreeBSD 25th Anniversary Celebration. The formal nature of the auditorium motivated the formation of MeetBSD’s first independent Program Committee and public Call for Participation. Together these resulted in a backbone of talks presented by speakers from the USA, Canada, and Poland, combined with UnConference activities tailored to the space.

Err codemadness.org 70 i 38550
Err codemadness.org 70 i 38551 Err codemadness.org 70 i 38552
    Err codemadness.org 70 i 38553
  • MeetBSD Day 0
  • Err codemadness.org 70 i 38554
Err codemadness.org 70 i 38555 Err codemadness.org 70 i 38556
Err codemadness.org 70 i 38557

Day Zero of MeetBSD was a FreeBSD Developer/Vendor Summit hosted in the same auditorium where the talks would take place. Like the conference itself, this event featured a mix of scheduled talks and interactive sessions. The scheduled talks were LWPMFS: LightWeight Persistent Memory Filesystem by Ravi Pokala, Evaluating GIT for FreeBSD by Ed Maste, and NUMA by Mark Johnston. Ed’s overview of the advantages and disadvantages of using Git for FreeBSD development was of the most interest to users and developers, and the discussion continued into the following two days.

Err codemadness.org 70 i 38558
Err codemadness.org 70 i 38559 Err codemadness.org 70 i 38560
    Err codemadness.org 70 i 38561
  • MeetBSD Day 1
  • Err codemadness.org 70 i 38562
Err codemadness.org 70 i 38563 Err codemadness.org 70 i 38564
Err codemadness.org 70 i 38565

The first official day of MeetBSD 2018 was kicked off with introductions led by emcee JT Pennington and a keynote, “Using TrueOS to boot-strap your FreeBSD-based project” by Kris Moore. Kris described a new JSON-based release infrastructure that he has exercised with FreeBSD, TrueOS, and FreeNAS. Kris’ talk was followed by “Intel & FreeBSD: Better Together” by Ben Widawsky, the FreeBSD program lead at Intel, who gave an overview of Intel’s past and current efforts supporting FreeBSD. Next came lunch, followed by Kamil Rytarowski’s “Bug detecting software in the NetBSD userland: MKSANITIZER”. This was followed by 5-Minute Lightning Talks, Andrew Fengler’s “FreeBSD: What to (Not) Monitor”, and an OpenZFS Panel Discussion featuring OpenZFS experts Michael W. Lucas, Allan Jude, Alexander Motin, Pawel Dawidek, and Dan Langille. Day one concluded with a social event at the Intel cafeteria where the discussions continued into the night.

Err codemadness.org 70 i 38566
Err codemadness.org 70 i 38567 Err codemadness.org 70 i 38568
    Err codemadness.org 70 i 38569
  • MeetBSD Day 2
  • Err codemadness.org 70 i 38570
Err codemadness.org 70 i 38571 Err codemadness.org 70 i 38572
Err codemadness.org 70 i 38573

Day Two of MeetBSD 2018 kicked off with a keynote by Michael W. Lucas entitled “Why BSD?”, where Michael detailed what makes the BSD community different and why it attracts us all. This was followed by Dr. Kirk McKusick’s “The Early Days of BSD” talk, which was followed by “DTrace/dwatch in Production” by Devin Teske. After lunch, we enjoyed “A Curmudgeon’s Language Selection Criteria: Why I Don’t Write Everything in Go, Rust, Elixir, etc” by G. Clifford Williams and, “Best practices of sandboxing applications with Capsicum” by Mariusz Zaborski. I then hosted a Virtualization Panel Discussion that featured eight developers from FreeBSD, OpenBSD, and NetBSD. We then split up for Breakout Sessions and the one on Bloomberg’s controversial article on backdoored Supermicro systems was fascinating given the experts present, all of whom were skeptical of the feasibility of the attack. The day wrapped up with a final talk, “Tales of a Daemontown Performance Peddler: Why ‘it depends’ and what you can do about it” by Nick Principe, followed by the FreeBSD 25th Anniversary Celebration.

Err codemadness.org 70 i 38574
Err codemadness.org 70 i 38575 Err codemadness.org 70 i 38576
    Err codemadness.org 70 i 38577
  • Putting the “meet” in MeetBSD
  • Err codemadness.org 70 i 38578
Err codemadness.org 70 i 38579 Err codemadness.org 70 i 38580
Err codemadness.org 70 i 38581

I confess the other organizers and I were nervous about how well one large auditorium would suit a BSD event but the flexible personal space it gave everyone allowed for countless meetings and heated hacking that often brought about immediate results. I watched people take ideas through several iterations with the help and input of obvious and unexpected experts, all of whom were within reach. Not having to pick up and leave for a talk in another room organically resulted in essentially a series of mini hackathons that none of us anticipated but were delighted to witness, taking the “hallway track” to a whole new level. The mix of formal and UnConference activities at MeetBSD is certain to evolve. Thank you to everyone who participated with questions, Lightning Talks, and Panel participation. A huge thanks to our sponsors, including Intel for both hosting and sponsoring MeetBSD California 2018, Western Digital, Supermicro, Verisign, Jupiter Broadcasting, the FreeBSD Foundation, Bank of America Merrill Lynch, the NetBSD Foundation, and the team at iXsystems.

Err codemadness.org 70 i 38582
Err codemadness.org 70 i 38583 Err codemadness.org 70 i 38584
Err codemadness.org 70 i 38585

See you at MeetBSD 2020!

Err codemadness.org 70 i 38586
Err codemadness.org 70 i 38587 Err codemadness.org 70 i 38588


Err codemadness.org 70 i 38589 Err codemadness.org 70 i 38590

###Setup DragonflyBSD with a desktop on real hardware ThinkPad T410
Err codemadness.org 70 i 38591 +Video Demo

Err codemadness.org 70 i 38592 Err codemadness.org 70 i 38593
Err codemadness.org 70 i 38594

Linux has become too mainstream and standard BSD is a common thing now? How about DragonflyBSD which was created as a fork of FreeBSD 4.8 in conflict over system internals. This tutorial will show how to install it and set up a user-oriented desktop. It should work with DragonflyBSD, FreeBSD and probably all BSDs.
Err codemadness.org 70 i 38595 Some background: BSD was is ultimately derived from UNIX back in the days. It is not Linux even though it is similar in many ways because Linux was designed to follow UNIX principles. Seeing is believing, so check out the video of the install!
Err codemadness.org 70 i 38596 I did try two BSD distros before called GhostBSD and TrueOS and you can check out my short reviews. DragonflyBSD comes like FreeBSD bare bones and requires some work to get a desktop running.

Err codemadness.org 70 i 38597
Err codemadness.org 70 i 38598 Err codemadness.org 70 i 38599
    Err codemadness.org 70 i 38600
  • Err codemadness.org 70 i 38601

    Download image file and burn to USB drive or DVD

    Err codemadness.org 70 i 38602
  • Err codemadness.org 70 i 38603
  • Err codemadness.org 70 i 38604

    First installation

    Err codemadness.org 70 i 38605
  • Err codemadness.org 70 i 38606
  • Err codemadness.org 70 i 38607

    Setting up the system and installing a desktop

    Err codemadness.org 70 i 38608
  • Err codemadness.org 70 i 38609
  • Err codemadness.org 70 i 38610

    Inside the desktop

    Err codemadness.org 70 i 38611
  • Err codemadness.org 70 i 38612
  • Err codemadness.org 70 i 38613

    Install some more programs

    Err codemadness.org 70 i 38614
  • Err codemadness.org 70 i 38615
  • Err codemadness.org 70 i 38616

    How to enable sound?

    Err codemadness.org 70 i 38617
  • Err codemadness.org 70 i 38618
  • Err codemadness.org 70 i 38619

    Let’s play some free games

    Err codemadness.org 70 i 38620
  • Err codemadness.org 70 i 38621
  • Err codemadness.org 70 i 38622

    Setup WiFi

    Err codemadness.org 70 i 38623
  • Err codemadness.org 70 i 38624
  • Err codemadness.org 70 i 38625

    Power mode settings

    Err codemadness.org 70 i 38626
  • Err codemadness.org 70 i 38627
  • Err codemadness.org 70 i 38628

    More to do?

    Err codemadness.org 70 i 38629
  • Err codemadness.org 70 i 38630
Err codemadness.org 70 i 38631 Err codemadness.org 70 i 38632
Err codemadness.org 70 i 38633

You can check out this blog post if you want a much more detailed tutorial. If you don’t mind standard BSD, get the GhostBSD distro instead which comes with a ready-made desktop xcfe or mate and many functional presets.

Err codemadness.org 70 i 38634
Err codemadness.org 70 i 38635 Err codemadness.org 70 i 38636
    Err codemadness.org 70 i 38637
  • Err codemadness.org 70 i 38638

    A small summary of what we got on the upside:

    Err codemadness.org 70 i 38639
      Err codemadness.org 70 i 38640
    • Free and open source operating system with a long history
    • Err codemadness.org 70 i 38641
    • Drivers worked fine including Ethernet, WiFi, video 2D & 3D, audio, etc
    • Err codemadness.org 70 i 38642
    • Hammer2 advanced file system
    • Err codemadness.org 70 i 38643
    • You are very unique if you use this OS fork
    • Err codemadness.org 70 i 38644
    Err codemadness.org 70 i 38645 Err codemadness.org 70 i 38646


  • Err codemadness.org 70 i 38647
  • Err codemadness.org 70 i 38648 Err codemadness.org 70 i 38649

    Some downsides:

    Err codemadness.org 70 i 38650 Err codemadness.org 70 i 38651


  • Err codemadness.org 70 i 38652
  • Err codemadness.org 70 i 38653 Err codemadness.org 70 i 38654

    Less driver and direct app support than Linux

    Err codemadness.org 70 i 38655 Err codemadness.org 70 i 38656


  • Err codemadness.org 70 i 38657
  • Err codemadness.org 70 i 38658 Err codemadness.org 70 i 38659

    Installer and desktop have some traps and quirks and require work

    Err codemadness.org 70 i 38660 Err codemadness.org 70 i 38661


  • Err codemadness.org 70 i 38662

Err codemadness.org 70 i 38663

Err codemadness.org 70 i 38664 Err codemadness.org 70 i 38665

###Porting Keybase to NetBSD

Err codemadness.org 70 i 38666 Err codemadness.org 70 i 38667
Err codemadness.org 70 i 38668

Keybase significantly simplifies the whole keypair/PGP thing and makes what is usually a confusing, difficult experience actually rather pleasant. At its heart is an open-source command line utility that does all of the heavy cryptographic lifting. But it’s also hooked up to the network of all other Keybase users, so you don’t have to work very hard to maintain big keychains. Pretty cool!
Err codemadness.org 70 i 38669 So, this evening, I tried to get it to all work on NetBSD.
Err codemadness.org 70 i 38670 The Keybase client code base is, in my opinion, not very well architected… there exist many different Keybase clients (command line apps, desktop apps, mobile apps) and for some reason the code for all of them are seemingly in this single repository, without even using Git submodules. Not sure what that’s about.
Err codemadness.org 70 i 38671 Anyway, “go build”-ing the command line program (it’s written in Go) failed immediately because there’s some platform-specific code that just does not seem to recognize that NetBSD exists (but they do for FreeBSD and OpenBSD). Looks like the Keybase developers maintain a Golang wrapper around struct proc, which of course is different from OS to OS. So I literally just copypasted the OpenBSD wrapper, renamed it to “NetBSD”, and the build basically succeeded from there! This is of course super janky and untrustworthy, but it seems to Mostly Just Work…
Err codemadness.org 70 i 38672 I forked the GitHub repo, you can see the diff on top of keybase 2.7.3 here: bccaaf3096a
Err codemadness.org 70 i 38673 Eventually I ended up with a ~/go/bin/keybase which launches just fine. Meaning, I can main() okay. But the moment you try to do anything interesting, it looks super scary:

Err codemadness.org 70 i 38674
Err codemadness.org 70 i 38675 Err codemadness.org 70 i 38676
charlotte@sakuracity:~/go/bin ./keybase login	Err	codemadness.org	70
i 38677 ▶ WARNING Running in devel mode	Err	codemadness.org	70
i 38678 ▶ INFO Forking background server with pid=12932	Err	codemadness.org	70
i 38679 ▶ ERROR unexpected error in Login: API network error: doRetry failed,	Err	codemadness.org	70
i 38680 attempts: 1, timeout 5s, last err: Get	Err	codemadness.org	70
i 38681 http://localhost:3000/_/api/1.0/merkle/path.json?last=3784314&load_deleted=1&load_reset_chain=1&poll=10&sig_hints_low=3&uid=38ae1dfa49cd6831ea2fdade5c5d0519:	Err	codemadness.org	70
i 38682 dial tcp [::1]:3000: connect: connection refused	Err	codemadness.org	70
i 38683 
Err codemadness.org 70 i 38684 Err codemadness.org 70 i 38685
Err codemadness.org 70 i 38686

There’s a few things about this error message that stuck out to me:

Err codemadness.org 70 i 38687
Err codemadness.org 70 i 38688 Err codemadness.org 70 i 38689
    Err codemadness.org 70 i 38690
  • Forking a background server? What?
  • Err codemadness.org 70 i 38691
  • It’s trying to connect to localhost? That must be the server that doesn’t work …
  • Err codemadness.org 70 i 38692
Err codemadness.org 70 i 38693 Err codemadness.org 70 i 38694
Err codemadness.org 70 i 38695

Unfortunately, this nonfunctional “background server” sticks around even when a command as simple as ‘login’ command just failed:

Err codemadness.org 70 i 38696
Err codemadness.org 70 i 38697 Err codemadness.org 70 i 38698
charlotte@sakuracity:~/go/bin ps 12932	Err	codemadness.org	70
i 38699   PID TTY STAT    TIME COMMAND	Err	codemadness.org	70
i 38700   12932 ?   Ssl  0:00.21 ./keybase --debug --log-file	Err	codemadness.org	70
i 38701   /home/charlotte/.cache/keybase.devel/keybase.service.log service --chdir	Err	codemadness.org	70
i 38702   /home/charlotte/.config/keybase.devel --auto-forked 	Err	codemadness.org	70
i 38703 
Err codemadness.org 70 i 38704 Err codemadness.org 70 i 38705
Err codemadness.org 70 i 38706

I’m not exactly sure what the intended purpose of the “background server” even is, but fortunately we can kill it and even tell the keybase command to not even spawn one:

Err codemadness.org 70 i 38707
Err codemadness.org 70 i 38708 Err codemadness.org 70 i 38709
charlotte@sakuracity:~/go/bin ./keybase help advanced | grep -- --standalone	Err	codemadness.org	70
i 38710    --standalone                         Use the client without any daemon support.	Err	codemadness.org	70
i 38711 
Err codemadness.org 70 i 38712 Err codemadness.org 70 i 38713
Err codemadness.org 70 i 38714

And then we can fix wanting to connect to localhost by specifying an expected Keybase API server – how about the one hosted at https://keybase.io?

Err codemadness.org 70 i 38715
Err codemadness.org 70 i 38716 Err codemadness.org 70 i 38717
charlotte@sakuracity:~/go/bin ./keybase help advanced | grep -- --server	Err	codemadness.org	70
i 38718    --server, -s                         Specify server API.	Err	codemadness.org	70
i 38719 
Err codemadness.org 70 i 38720 Err codemadness.org 70 i 38721
Err codemadness.org 70 i 38722

Basically, what I’m trying to say is that if you specify both of these options, the keybase command does what I expect on NetBSD:

Err codemadness.org 70 i 38723
Err codemadness.org 70 i 38724 Err codemadness.org 70 i 38725
charlotte@sakuracity:~/go/bin ./keybase --standalone -s https://keybase.io login	Err	codemadness.org	70
i 38726 ▶ WARNING Running in devel mode	Err	codemadness.org	70
i 38727 Please enter the Keybase passphrase for dressupgeekout (6+ characters): 	Err	codemadness.org	70
i 38728 	Err	codemadness.org	70
i 38729 charlotte@sakuracity:~/go/bin ./keybase --standalone -s https://keybase.io id dressupgeekout	Err	codemadness.org	70
i 38730 ▶ WARNING Running in devel mode	Err	codemadness.org	70
i 38731 ▶ INFO Identifying dressupgeekout	Err	codemadness.org	70
i 38732 ✔ public key fingerprint: 7873 DA50 A786 9A3F 1662 3A17 20BD 8739 E82C 7F2F	Err	codemadness.org	70
i 38733 ✔ "dressupgeekout" on github:	Err	codemadness.org	70
i 38734 https://gist.github.com/0471c7918d254425835bf5e1b4bcda00 [cached 2018-10-11	Err	codemadness.org	70
i 38735 20:55:21 PDT]	Err	codemadness.org	70
i 38736 ✔ "dressupgeekout" on reddit:	Err	codemadness.org	70
i 38737 https://www.reddit.com/r/KeybaseProofs/comments/9ng5qm/my_keybase_proof_redditdressupgeekout/	Err	codemadness.org	70
i 38738 [cached 2018-10-11 20:55:21 PDT]	Err	codemadness.org	70
i 38739 
Err codemadness.org 70 i 38740 Err codemadness.org 70 i 38741


Err codemadness.org 70 i 38742 Err codemadness.org 70 i 38743

###Initial implementation of draft-ietf-6man-ipv6only-flag

Err codemadness.org 70 i 38744 Err codemadness.org 70 i 38745
This change defines the RA "6" (IPv6-Only) flag which routers	Err	codemadness.org	70
i 38746 may advertise, kernel logic to check if all routers on a link	Err	codemadness.org	70
i 38747 have the flag set and accordingly update a per-interface flag.	Err	codemadness.org	70
i 38748 	Err	codemadness.org	70
i 38749 If all routers agree that it is an IPv6-only link, ether_output_frame(),	Err	codemadness.org	70
i 38750 based on the interface flag, will filter out all ETHERTYPE_IP/ARP	Err	codemadness.org	70
i 38751 frames, drop them, and return EAFNOSUPPORT to upper layers.	Err	codemadness.org	70
i 38752 	Err	codemadness.org	70
i 38753 The change also updates ndp to show the "6" flag, ifconfig to	Err	codemadness.org	70
i 38754 display the IPV6_ONLY nd6 flag if set, and rtadvd to allow	Err	codemadness.org	70
i 38755 announcing the flag.	Err	codemadness.org	70
i 38756 	Err	codemadness.org	70
i 38757 Further changes to tcpdump (contrib code) are availble and will	Err	codemadness.org	70
i 38758 be upstreamed.	Err	codemadness.org	70
i 38759 	Err	codemadness.org	70
i 38760 Tested the code (slightly earlier version) with 2 FreeBSD	Err	codemadness.org	70
i 38761 IPv6 routers, a FreeBSD laptop on ethernet as well as wifi,	Err	codemadness.org	70
i 38762 and with Win10 and OSX clients (which did not fall over with	Err	codemadness.org	70
i 38763 the "6" flag set but not understood).	Err	codemadness.org	70
i 38764 	Err	codemadness.org	70
i 38765 We may also want to (a) implement and RX filter, and (b) over	Err	codemadness.org	70
i 38766 time enahnce user space to, say, stop dhclient from running	Err	codemadness.org	70
i 38767 when the interface flag is set.  Also we might want to start	Err	codemadness.org	70
i 38768 IPv6 before IPv4 in the future.	Err	codemadness.org	70
i 38769 	Err	codemadness.org	70
i 38770 All the code is hidden under the EXPERIMENTAL option and not	Err	codemadness.org	70
i 38771 compiled by default as the draft is a work-in-progress and	Err	codemadness.org	70
i 38772 we cannot rely on the fact that IANA will assign the bits	Err	codemadness.org	70
i 38773 as requested by the draft and hence they may change.	Err	codemadness.org	70
i 38774 	Err	codemadness.org	70
i 38775 Dear 6man, you have running code.	Err	codemadness.org	70
i 38776 	Err	codemadness.org	70
i 38777 Discussed with: Bob Hinden, Brian E Carpenter	Err	codemadness.org	70
i 38778 
Err codemadness.org 70 i 38779 Err codemadness.org 70 i 38780

##Beastie Bits

Err codemadness.org 70 i 38781 Err codemadness.org 70 i 38782 Err codemadness.org 70 i 38797 Err codemadness.org 70 i 38798


Err codemadness.org 70 i 38799 Err codemadness.org 70 i 38800

##Feedback/Questions

Err codemadness.org 70 i 38801 Err codemadness.org 70 i 38802 Err codemadness.org 70 i 38807 Err codemadness.org 70 i 38808


Err codemadness.org 70 i 38809 Err codemadness.org 70 i 38810
    Err codemadness.org 70 i 38811
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 38812
Err codemadness.org 70 i 38813 Err codemadness.org 70 i 38814


]]> Err codemadness.org 70 i 38815
Err codemadness.org 70 i 38816 https://fireside.fm/player/v2/FYhhasNR+LH8ySsnH Err codemadness.org 70 i 38817 Err codemadness.org 70 i 38818 ]]> Err codemadness.org 70 i 38819 Err codemadness.org 70 i 38820
Err codemadness.org 70 i 38821 Err codemadness.org 70 i 38822 Episode 269: Tiny Daemon Lib | BSD Now 269 Err codemadness.org 70 i 38823 https://www.bsdnow.tv/269 Err codemadness.org 70 i 38824 http://feed.jupiter.zone/bsdnow#entry-2747 Err codemadness.org 70 i 38825 Wed, 24 Oct 2018 02:00:00 -0700 Err codemadness.org 70 i 38826 Allan Jude Err codemadness.org 70 i 38827 Err codemadness.org 70 i 38828 full Err codemadness.org 70 i 38829 Allan Jude Err codemadness.org 70 i 38830 FreeBSD Foundation September Update, tiny C lib for programming Unix daemons, EuroBSDcon trip reports, GhostBSD tested on real hardware, and a BSD auth module for duress. Err codemadness.org 70 i 38831 1:28:19 Err codemadness.org 70 i 38832 no Err codemadness.org 70 i 38833 Err codemadness.org 70 i 38834 FreeBSD Foundation September Update, tiny C lib for programming Unix daemons, EuroBSDcon trip reports, GhostBSD tested on real hardware, and a BSD auth module for duress. Err codemadness.org 70 i 38835 <p>##Headlines<br> Err codemadness.org 70 i 38836 <a href="https://www.freebsdfoundation.org/news-and-events/newsletter/freebsd-foundation-update-september-2018/">FreeBSD Foundation Update, September 2018</a></p> Err codemadness.org 70 i 38837 <ul> Err codemadness.org 70 i 38838 <li>MESSAGE FROM THE EXECUTIVE DIRECTOR</li> Err codemadness.org 70 i 38839 </ul> Err codemadness.org 70 i 38840 <blockquote> Err codemadness.org 70 i 38841 <p>Dear FreeBSD Community Member, It is hard to believe that September is over. The Foundation team had a busy month promoting FreeBSD all over the globe, bug fixing in preparation for 12.0, and setting plans in motion to kick off our 4th quarter fundraising and advocacy efforts. Take a minute to see what we’ve been up to and please consider making a donation to help us continue our efforts supporting FreeBSD!</p> Err codemadness.org 70 i 38842 </blockquote> Err codemadness.org 70 i 38843 <ul> Err codemadness.org 70 i 38844 <li>September 2018 Development Projects Update</li> Err codemadness.org 70 i 38845 </ul> Err codemadness.org 70 i 38846 <blockquote> Err codemadness.org 70 i 38847 <p>In preparation for the release of FreeBSD 12.0, I have been working on investigating and fixing a backlog of kernel bug reports. Of course, this kind of work is never finished, and we will continue to make progress after the release. In the past couple of months I have fixed a combination of long-standing issues and recent regressions. Of note are a pair of UNIX domain socket bugs which had been affecting various applications for years. In particular, Chromium tabs would frequently hang unless a workaround was manually applied to the system, and the bug had started affecting recent versions of Firefox as well. Fixing these issues gave me an opportunity to revisit and extend our regression testing for UNIX sockets, which, in turn, resulted in some related bugs being identified and fixed.<br> Err codemadness.org 70 i 38848 Of late I have also been investigating reports of issues with ZFS, particularly, those reported on FreeBSD 11.2. A number of regressions, including a kernel memory leak and issues with ARC reclamation, have already been fixed for 12.0; investigation of other reports is ongoing. Those who closely follow FreeBSD-CURRENT know that some exciting work to improve memory usage on NUMA systems is now enabled by default. As is usually the case when new code is deployed in a diverse array of systems and workloads, a number of problems since have been identified. We are working on resolving them as soon as possible to ensure the quality of the release.<br> Err codemadness.org 70 i 38849 I’m passionate about maintaining FreeBSD’s stability and dependability as it continues to expand and grow new features, and I’m grateful to the FreeBSD Foundation for sponsoring this work. We depend on users to report problems to the mailing lists and via the bug tracker, so please try running the 12.0 candidate builds and help us make 12.0 a great release.</p> Err codemadness.org 70 i 38850 </blockquote> Err codemadness.org 70 i 38851 <ul> Err codemadness.org 70 i 38852 <li>Fundraising Update: Supporting the Project</li> Err codemadness.org 70 i 38853 </ul> Err codemadness.org 70 i 38854 <blockquote> Err codemadness.org 70 i 38855 <p>It’s officially Fall here at Foundation headquarters and we’re heading full-steam into our final fundraising campaign of the year. We couldn’t even have begun to reach our funding goal of $1.25 million dollars without the support from the companies who have partnered with us this year. Thank you to Verisign for becoming a Silver Partner. They now join a growing list of companies like Xiplink, NetApp, Microsoft, Tarsnap, VMware, and NeoSmart Technologies that are stepping up and showing their commitment to FreeBSD!<br> Err codemadness.org 70 i 38856 Funding from commercial users like these and individual users like yourself, help us continue our efforts of supporting critical areas of FreeBSD such as:</p> Err codemadness.org 70 i 38857 </blockquote> Err codemadness.org 70 i 38858 <ul> Err codemadness.org 70 i 38859 <li>Operating System Improvements: Providing staff to immediately respond to urgent problems and implement new features and functionality allowing for the innovation and stability you’ve come to rely on.</li> Err codemadness.org 70 i 38860 <li>Security: Providing engineering resources to bolster the capacity and responsiveness of the Security team providing your users with piece of mind when security issues arise.</li> Err codemadness.org 70 i 38861 <li>Release Engineering: Continue providing a full-time release engineer, resulting in timely and reliable releases you can plan around.</li> Err codemadness.org 70 i 38862 <li>Quality Assurance: Improving and increasing test coverage, continuous integration, and automated testing with a full-time software engineer to ensure you receive the highest quality, secure, and reliable operating system.</li> Err codemadness.org 70 i 38863 <li>New User Experience: Improving the process and documentation for getting new people involved with FreeBSD, and supporting those people as they become integrated into the FreeBSD Community providing the resources you may need to get new folks up to speed.</li> Err codemadness.org 70 i 38864 <li>Training: Supporting more FreeBSD training for undergraduates, graduates, and postgraduates. Growing the community means reaching people and catching their interest in systems software as early as possible and providing you with a bigger pool of candidates with the FreeBSD skills you’re looking for.</li> Err codemadness.org 70 i 38865 <li>Face-to-Face Opportunities: Facilitating collaboration among members of the community, and building connections throughout the industry to support a healthy and growing ecosystem and make it easier for you to find resources when questions emerge .</li> Err codemadness.org 70 i 38866 </ul> Err codemadness.org 70 i 38867 <blockquote> Err codemadness.org 70 i 38868 <p>We can continue the above work, if we meet our goal this year!<br> Err codemadness.org 70 i 38869 If your company uses FreeBSD, please consider joining our growing list of 2018 partners. If you haven’t made your donation yet, please consider donating today. We are indebted to the individual donors, and companies listed above who have already shown their commitment to open source.<br> Err codemadness.org 70 i 38870 Thank you for supporting FreeBSD and the Foundation!</p> Err codemadness.org 70 i 38871 </blockquote> Err codemadness.org 70 i 38872 <ul> Err codemadness.org 70 i 38873 <li>September 2018 Release Engineering Update</li> Err codemadness.org 70 i 38874 </ul> Err codemadness.org 70 i 38875 <blockquote> Err codemadness.org 70 i 38876 <p>The FreeBSD Release Engineering team continued working on the upcoming 12.0 RELEASE. At present, the 12.0 schedule had been adjusted by one week to allow for necessary works-in-progress to be completed.<br> Err codemadness.org 70 i 38877 Of note, one of the works-in-progress includes updating OpenSSL from 1.0.2 to 1.1.1, in order to avoid breaking the application binary interface (ABI) on an established stable branch.<br> Err codemadness.org 70 i 38878 Due to the level of non-trivial intrusiveness that had already been discovered and addressed in a project branch of the repository, it is possible (but not yet definite) that the schedule will need to be adjusted by another week to allow more time for larger and related updates for this particular update.<br> Err codemadness.org 70 i 38879 Should the 12.0-RELEASE schedule need to be adjusted at any time during the release cycle, the schedule on the FreeBSD project website will be updated accordingly. The current schedule is available at:<br> Err codemadness.org 70 i 38880 <a href="https://www.freebsd.org/releases/12.0R/schedule.html">https://www.freebsd.org/releases/12.0R/schedule.html</a></p> Err codemadness.org 70 i 38881 </blockquote> Err codemadness.org 70 i 38882 <ul> Err codemadness.org 70 i 38883 <li>BSDCam 2018 Trip Report: Marie Helene Kvello-Aune</li> Err codemadness.org 70 i 38884 </ul> Err codemadness.org 70 i 38885 <blockquote> Err codemadness.org 70 i 38886 <p>I’d like to start by thanking the FreeBSD Foundation for sponsoring my trip to BSDCam(bridge) 2018. I wouldn’t have managed to attend otherwise. I’ve used FreeBSD in both personal and professional deployments since the year 2000, and over the last few years I have become more involved with development and documentation.<br> Err codemadness.org 70 i 38887 I arrived in Gatwick, London at midnight. On Monday, August 13, I took the train to Cambridge, and decided to do some touristy activities as I walked from the train station to Churchill College. I ran into Allan outside the hotel right before the sky decided it was time for a heavy rainfall. Monday was mostly spent settling in, recouping after travel, and hanging out with Allan, Brad, Will and Andy later in the afternoon/evening. Read more…</p> Err codemadness.org 70 i 38888 </blockquote> Err codemadness.org 70 i 38889 <ul> Err codemadness.org 70 i 38890 <li>Continuous Integration Update</li> Err codemadness.org 70 i 38891 </ul> Err codemadness.org 70 i 38892 <blockquote> Err codemadness.org 70 i 38893 <p>The FreeBSD Foundation has sponsored the development of the Project’s continuous integration system, available at <a href="https://ci.FreeBSD.org">https://ci.FreeBSD.org</a>, since June. Over the summer, we improved both the software and hardware infrastructure, and also added some new jobs for extending test coverage of the -CURRENT and -STABLE branches. Following are some highlights.</p> Err codemadness.org 70 i 38894 </blockquote> Err codemadness.org 70 i 38895 <ul> Err codemadness.org 70 i 38896 <li>New Hardware</li> Err codemadness.org 70 i 38897 </ul> Err codemadness.org 70 i 38898 <blockquote> Err codemadness.org 70 i 38899 <p>The Foundation purchased 4 new build machines for scaling up the computation power for the various test jobs. These newer, faster machines substantially speed up the time it takes to test amd64 builds, so that failing changes can be identified more quickly. Also, in August, we received a donation of 2 PINE A64-LTS boards from <a href="http://PINE64.org">PINE64.org</a>, which will be put in the hardware test lab as one part of the continuous tests.</p> Err codemadness.org 70 i 38900 </blockquote> Err codemadness.org 70 i 38901 <ul> Err codemadness.org 70 i 38902 <li>CI Staging Environment</li> Err codemadness.org 70 i 38903 </ul> Err codemadness.org 70 i 38904 <blockquote> Err codemadness.org 70 i 38905 <p>We used hardware from a previous generation CI system to build a staging environment for the CI infrastructure, which is available at<br> Err codemadness.org 70 i 38906 <a href="https://ci-dev.freebsd.org">https://ci-dev.freebsd.org</a>. It executes the configurations and scripts from the “staging” branch of the FreeBSD-CI repository, and the development feature branches. We also use it to experiment with the new version of the jenkins server and plugins. Having a staging environment avoids affecting the production CI environment, reducing downtime.</p> Err codemadness.org 70 i 38907 </blockquote> Err codemadness.org 70 i 38908 <ul> Err codemadness.org 70 i 38909 <li>Mail Notification</li> Err codemadness.org 70 i 38910 </ul> Err codemadness.org 70 i 38911 <blockquote> Err codemadness.org 70 i 38912 <p>In July, we turned on failure notification for all the kernel and world build jobs. Committers will receive email containing the build information and failure log to inform them of possible problems with their modification on certain architectures. For amd64 of the -CURRENT branch, we also enabled the notification on failing regression test cases. Currently mail is sent only to the individual committers, but with help from postmaster team, we have created a dev-ci mailing list and will soon be also sending notifications there.</p> Err codemadness.org 70 i 38913 </blockquote> Err codemadness.org 70 i 38914 <ul> Err codemadness.org 70 i 38915 <li>New Test Job</li> Err codemadness.org 70 i 38916 </ul> Err codemadness.org 70 i 38917 <blockquote> Err codemadness.org 70 i 38918 <p>In August, we updated the embedded script of the virtual machine image. Originally it only executed pre-defined tests, but now this behavior can be modified by the data on the attached disk. This mechanism is used for adding new ZFS tests jobs. We are also working on analyzing and fixing the failing and skipped test cases.</p> Err codemadness.org 70 i 38919 </blockquote> Err codemadness.org 70 i 38920 <ul> Err codemadness.org 70 i 38921 <li>Work in Progress</li> Err codemadness.org 70 i 38922 </ul> Err codemadness.org 70 i 38923 <blockquote> Err codemadness.org 70 i 38924 <p>In August and September, we had two developer summits, one in Cambridge, UK and one in Bucharest, Romania. In these meetings, we discussed running special tests, such as ztest, which need a longer run time. We also planned the network testing for TCP/IP stack</p> Err codemadness.org 70 i 38925 </blockquote> Err codemadness.org 70 i 38926 <hr> Err codemadness.org 70 i 38927 <p>###<a href="https://chaoticlab.io/c/c++/unix/2018/10/01/daemonize.html">Daemonize - a Tiny C Library for Programming the UNIX Daemons</a></p> Err codemadness.org 70 i 38928 <blockquote> Err codemadness.org 70 i 38929 <p>Whatever they say, writing System-V style UNIX daemons is hard. One has to follow many rules to make a daemon process behave correctly on diverse UNIX flavours. Moreover, debugging such a code might be somewhat tricky. On the other hand, the process of daemon initialisation is rigid and well defined so the corresponding code has to be written and debugged once and later can be reused countless number of times.<br> Err codemadness.org 70 i 38930 Developers of BSD UNIX were very aware of this, as there a C library function daemon() was available starting from version 4.4. The function, although non-standard, is present on many UNIXes. Unfortunately, it does not follow all the required steps to reliably run a process in the background on systems which follow System-V semantics (e.g. Linux). The details are available at the corresponding Linux man page. The main problem here, as I understand it, is that daemon() does not use the double-forking technique to avoid the situation when zombie processes appear.<br> Err codemadness.org 70 i 38931 Whenever I encounter a problem like this one, I know it is time to write a tiny C library which solves it. This is exactly how ‘daemonize’ was born (GitHub mirror). The library consists of only two files which are meant to be integrated into the source tree of your project. Recently I have updated the library and realised that it would be good to describe how to use it on this site.<br> Err codemadness.org 70 i 38932 If for some reason you want to make a Windows service, I have a battle tested template code for you as well.</p> Err codemadness.org 70 i 38933 </blockquote> Err codemadness.org 70 i 38934 <ul> Err codemadness.org 70 i 38935 <li>System-V Daemon Initialisation Procedure</li> Err codemadness.org 70 i 38936 </ul> Err codemadness.org 70 i 38937 <blockquote> Err codemadness.org 70 i 38938 <p>To make discussion clear we shall quote the steps which have to be performed during a daemon initialisation (according to daemon(7) manual page on Linux). I do it to demonstrate that this task is more tricky than one might expect.</p> Err codemadness.org 70 i 38939 </blockquote> Err codemadness.org 70 i 38940 <ul> Err codemadness.org 70 i 38941 <li> Err codemadness.org 70 i 38942 <p>So, here we go:</p> Err codemadness.org 70 i 38943 </li> Err codemadness.org 70 i 38944 <li> Err codemadness.org 70 i 38945 <p>Close all open file descriptors except standard input, output, and error (i.e. the first three file descriptors 0, 1, 2). This ensures that no accidentally passed file descriptor stays around in the daemon process. On Linux, this is best implemented by iterating through /proc/self/fd, with a fallback of iterating from file descriptor 3 to the value returned by getrlimit() for RLIMITNOFILE.</p> Err codemadness.org 70 i 38946 </li> Err codemadness.org 70 i 38947 <li> Err codemadness.org 70 i 38948 <p>Reset all signal handlers to their default. This is best done by iterating through the available signals up to the limit of _NSIG and resetting them to SIGDFL.</p> Err codemadness.org 70 i 38949 </li> Err codemadness.org 70 i 38950 <li> Err codemadness.org 70 i 38951 <p>Reset the signal mask using sigprocmask().</p> Err codemadness.org 70 i 38952 </li> Err codemadness.org 70 i 38953 <li> Err codemadness.org 70 i 38954 <p>Sanitize the environment block, removing or resetting environment variables that might negatively impact daemon runtime.</p> Err codemadness.org 70 i 38955 </li> Err codemadness.org 70 i 38956 <li> Err codemadness.org 70 i 38957 <p>Call fork(), to create a background process.</p> Err codemadness.org 70 i 38958 </li> Err codemadness.org 70 i 38959 <li> Err codemadness.org 70 i 38960 <p>In the child, call setsid() to detach from any terminal and create an independent session.</p> Err codemadness.org 70 i 38961 </li> Err codemadness.org 70 i 38962 <li> Err codemadness.org 70 i 38963 <p>In the child, call fork() again, to ensure that the daemon can never re-acquire a terminal again.</p> Err codemadness.org 70 i 38964 </li> Err codemadness.org 70 i 38965 <li> Err codemadness.org 70 i 38966 <p>Call exit() in the first child, so that only the second child (the actual daemon process) stays around. This ensures that the daemon process is re-parented to init/PID 1, as all daemons should be.</p> Err codemadness.org 70 i 38967 </li> Err codemadness.org 70 i 38968 <li> Err codemadness.org 70 i 38969 <p>In the daemon process, connect /dev/null to standard input, output, and error.</p> Err codemadness.org 70 i 38970 </li> Err codemadness.org 70 i 38971 <li> Err codemadness.org 70 i 38972 <p>In the daemon process, reset the umask to 0, so that the file modes passed to open(), mkdir() and suchlike directly control the access mode of the created files and directories.</p> Err codemadness.org 70 i 38973 </li> Err codemadness.org 70 i 38974 <li> Err codemadness.org 70 i 38975 <p>In the daemon process, change the current directory to the root directory (/), in order to avoid that the daemon involuntarily blocks mount points from being unmounted.</p> Err codemadness.org 70 i 38976 </li> Err codemadness.org 70 i 38977 <li> Err codemadness.org 70 i 38978 <p>In the daemon process, write the daemon PID (as returned by getpid()) to a PID file, for example /run/foobar.pid (for a hypothetical daemon “foobar”) to ensure that the daemon cannot be started more than once. This must be implemented in race-free fashion so that the PID file is only updated when it is verified at the same time that the PID previously stored in the PID file no longer exists or belongs to a foreign process.</p> Err codemadness.org 70 i 38979 </li> Err codemadness.org 70 i 38980 <li> Err codemadness.org 70 i 38981 <p>In the daemon process, drop privileges, if possible and applicable.</p> Err codemadness.org 70 i 38982 </li> Err codemadness.org 70 i 38983 <li> Err codemadness.org 70 i 38984 <p>From the daemon process, notify the original process started that initialization is complete. This can be implemented via an unnamed pipe or similar communication channel that is created before the first fork() and hence available in both the original and the daemon process.</p> Err codemadness.org 70 i 38985 </li> Err codemadness.org 70 i 38986 <li> Err codemadness.org 70 i 38987 <p>Call exit() in the original process. The process that invoked the daemon must be able to rely on that this exit() happens after initialization is complete and all external communication channels are established and accessible.</p> Err codemadness.org 70 i 38988 </li> Err codemadness.org 70 i 38989 </ul> Err codemadness.org 70 i 38990 <blockquote> Err codemadness.org 70 i 38991 <p>The discussed library does most of the above-mentioned initialisation steps as it becomes immediately evident that implementation details for some of them heavily dependent on the internal logic of an application itself, so it is not possible to implement them in a universal library. I believe it is not a flaw, though, as the missed parts are safe to implement in an application code.</p> Err codemadness.org 70 i 38992 </blockquote> Err codemadness.org 70 i 38993 <ul> Err codemadness.org 70 i 38994 <li>The Library’s Application Programming Interface</li> Err codemadness.org 70 i 38995 </ul> Err codemadness.org 70 i 38996 <blockquote> Err codemadness.org 70 i 38997 <p>The generic programming interface was loosely modelled after above-mentioned BSD’s daemon() function. The library provides two user available functions (one is, in fact, implemented on top of the other) as well as a set of flags to control a daemon creation behaviour.</p> Err codemadness.org 70 i 38998 </blockquote> Err codemadness.org 70 i 38999 <ul> Err codemadness.org 70 i 39000 <li>Conclusion</li> Err codemadness.org 70 i 39001 </ul> Err codemadness.org 70 i 39002 <blockquote> Err codemadness.org 70 i 39003 <p>The objective of the library is to hide all the trickery of programming a daemon so you could concentrate on the more creative parts of your application. I hope it does this well.<br> Err codemadness.org 70 i 39004 If you are not only interested in writing a daemon, but also want to make yourself familiar with the techniques which are used to accomplish that, the source code is available. Moreover, I would advise anyone, who starts developing for a UNIX environment to do that, as it shows many intricacies of programming for these platforms.</p> Err codemadness.org 70 i 39005 </blockquote> Err codemadness.org 70 i 39006 <hr> Err codemadness.org 70 i 39007 <p>##News Roundup<br> Err codemadness.org 70 i 39008 <a href="https://blog.netbsd.org/tnf/entry/eurobsdcon_2018">EuroBSDCon 2018 travel report and obligatory pics</a></p> Err codemadness.org 70 i 39009 <blockquote> Err codemadness.org 70 i 39010 <p>This was my first big BSD conference. We also planned - planned might be a big word - thought about doing a devsummit on Friday. Since the people who were in charge of that had a change of plans, I was sure it’d go horribly wrong.<br> Err codemadness.org 70 i 39011 The day before the devsummit and still in the wrong country, I mentioned the hours and venue on the wiki, and booked a reservation for a restaurant.<br> Err codemadness.org 70 i 39012 It turns out that everything was totally fine, and since the devsummit was at the conference venue (that was having tutorials that day), they even had signs pointing at the room we were given. Thanks EuroBSDCon conference organizers!<br> Err codemadness.org 70 i 39013 At the devsummit, we spent some time hacking. A few people came with “travel laptops” without access to anything, like Riastradh, so I gave him access to my own laptop. This didn’t hold very long and I kinda forgot about it, but for a few moments he had access to a NetBSD source tree and an 8 thread, 16GB RAM machine with which to build things.<br> Err codemadness.org 70 i 39014 We had a short introduction and I suggested we take some pictures, so here’s the ones we got. A few people were concerned about privacy, so they’re not pictured. We had small team to hold the camera :-)<br> Err codemadness.org 70 i 39015 At the actual conference days, I stayed at the speaker hotel with the other speakers. I’ve attempted to make conversation with some visibly FreeBSD/OpenBSD people, but didn’t have plans to talk about anything, so there was a lot of just following people silently.<br> Err codemadness.org 70 i 39016 Perhaps for the next conference I’ll prepare a list of questions to random BSD people and then very obviously grab a piece of paper and ask, “what was…”, read a bit from it, and say, “your latest kernel panic?”, I’m sure it’ll be a great conversation starter.<br> Err codemadness.org 70 i 39017 At the conference itself, was pretty cool to have folks like Kirk McKusick give first person accounts of some past events (Kirk gave a talk about governance at FreeBSD), or the second keynote by Ron Broersma.<br> Err codemadness.org 70 i 39018 My own talk was hastily prepared, it was difficult to bring the topic together into a coherent talk. Nevertheless, I managed to talk about stuff for a while 40 minutes, though usually I skip over so many details that I have trouble putting together a sufficiently long talk.<br> Err codemadness.org 70 i 39019 I mentioned some of my coolest bugs to solve (I should probably make a separate article about some!). A few people asked for the slides after the talk, so I guess it wasn’t totally incoherent.<br> Err codemadness.org 70 i 39020 It was really fun to meet some of my favourite NetBSD people. I got to show off my now fairly well working laptop (it took a lot of work by all of us!).<br> Err codemadness.org 70 i 39021 After the conference I came back with a conference cold, and it took a few days to recover from it. Hopefully I didn’t infect too many people on the way back.</p> Err codemadness.org 70 i 39022 </blockquote> Err codemadness.org 70 i 39023 <hr> Err codemadness.org 70 i 39024 <p>###<a href="https://panoramacircle.com/2018/09/23/ghostbsd-tested-on-real-hardware-t410-better-than-trueos/">GhostBSD tested on real hardware T410 – better than TrueOS?</a></p> Err codemadness.org 70 i 39025 <blockquote> Err codemadness.org 70 i 39026 <p>You might have heard about FreeBSD which is ultimately derived from UNIX back in the days. It is not Linux even though it is similar in many ways because Linux was designed to follow UNIX principles. Seeing is believing, so check out the video of the install and some apps as well!</p> Err codemadness.org 70 i 39027 </blockquote> Err codemadness.org 70 i 39028 <blockquote> Err codemadness.org 70 i 39029 <p>Nowadays if you want some of that BSD on your personal desktop how to go about? Well there is a full package or distro called GhostBSD which is based on FreeBSD current with a Mate or XFCE desktop preconfigured. I did try another package called TrueOS before and you can check out my blog post as well.</p> Err codemadness.org 70 i 39030 </blockquote> Err codemadness.org 70 i 39031 <blockquote> Err codemadness.org 70 i 39032 <p>Let’s give it a try on my Lenovo ThinkPad T410. You can download the latest version from <a href="http://ghostbsd.org">ghostbsd.org</a>. Creating a bootable USB drive was surprisingly difficult as rufus did not work and created a corrupted drive. You have to follow this procedure under Windows: download the 2.5GB .iso file and rename the extension to .img. Download Win32 Disk imager and burn the img file to an USB drive and boot from it. You will be able to start a live session and use the onboard setup to install GhostBSD unto a disk.</p> Err codemadness.org 70 i 39033 </blockquote> Err codemadness.org 70 i 39034 <blockquote> Err codemadness.org 70 i 39035 <p>I did encounter some bugs or quirks along the way. The installer failed the first time for some unknown reason but worked on the second attempt. The first boot stopped upon initialization of the USB3 ports (the T410 does not have USB3) but I could use some ‘exit’ command line magic to continue. The second boot worked fine. Audio was only available through headphones, not speakers but that could partially be fixed using the command line again. Lot’s of installed apps did not show up in the start menu and on goes the quirks list.</p> Err codemadness.org 70 i 39036 </blockquote> Err codemadness.org 70 i 39037 <blockquote> Err codemadness.org 70 i 39038 <p>Overall it is still better than TrueOS for me because drivers did work very well and I could address most of the existing bugs.</p> Err codemadness.org 70 i 39039 </blockquote> Err codemadness.org 70 i 39040 <ul> Err codemadness.org 70 i 39041 <li> Err codemadness.org 70 i 39042 <p>On the upside:</p> Err codemadness.org 70 i 39043 </li> Err codemadness.org 70 i 39044 <li> Err codemadness.org 70 i 39045 <p>Free and open source FreeBSD package ready to go</p> Err codemadness.org 70 i 39046 </li> Err codemadness.org 70 i 39047 <li> Err codemadness.org 70 i 39048 <p>Mate or XFCE desktop (Mate is the only option for daily builds)</p> Err codemadness.org 70 i 39049 </li> Err codemadness.org 70 i 39050 <li> Err codemadness.org 70 i 39051 <p>Drivers work fine including LAN, WiFi, video 2D &amp; 3D, audio, etc</p> Err codemadness.org 70 i 39052 </li> Err codemadness.org 70 i 39053 <li> Err codemadness.org 70 i 39054 <p>UFS or ZFS advanced file systems available</p> Err codemadness.org 70 i 39055 </li> Err codemadness.org 70 i 39056 <li> Err codemadness.org 70 i 39057 <p>Some downsides:</p> Err codemadness.org 70 i 39058 </li> Err codemadness.org 70 i 39059 <li> Err codemadness.org 70 i 39060 <p>Less driver and direct app support than Linux</p> Err codemadness.org 70 i 39061 </li> Err codemadness.org 70 i 39062 <li> Err codemadness.org 70 i 39063 <p>Installer and desktop have some quirks and bugs</p> Err codemadness.org 70 i 39064 </li> Err codemadness.org 70 i 39065 <li> Err codemadness.org 70 i 39066 <p>App-store is cumbersome, inferior to TrueOS</p> Err codemadness.org 70 i 39067 </li> Err codemadness.org 70 i 39068 </ul> Err codemadness.org 70 i 39069 <hr> Err codemadness.org 70 i 39070 <p>##Beastie Bits</p> Err codemadness.org 70 i 39071 <ul> Err codemadness.org 70 i 39072 <li><a href="https://blog.netbsd.org/tnf/entry/eurobsdcon_2018_and_netbsd_sanitizers">EuroBSDCon 2018 and NetBSD sanitizers</a></li> Err codemadness.org 70 i 39073 <li><a href="https://undeadly.org/cgi?action=article;sid=20181002175838">New mandoc feature: -T html -O toc</a></li> Err codemadness.org 70 i 39074 <li><a href="https://www.geeklan.co.uk/?p=2307">EuroBSDcon 2018</a></li> Err codemadness.org 70 i 39075 <li><a href="https://oshogbo.vexillium.org/blog/55/">Polish BSD User Group</a></li> Err codemadness.org 70 i 39076 <li><a href="https://garbage.fm/episodes/43">garbage[43]: What year is it?</a></li> Err codemadness.org 70 i 39077 <li><a href="https://thedemoat50.org/">The Demo @ 50</a></li> Err codemadness.org 70 i 39078 <li><a href="https://youtu.be/tG8R5SQGPck?t=660">Microsoft ports DTrace from FreeBSD to Windows 10</a></li> Err codemadness.org 70 i 39079 <li><a href="https://twitter.com/openbsd">OpenBSD joins Twitter</a></li> Err codemadness.org 70 i 39080 <li><a href="https://roy.marples.name/blog/netbsd-curses-ripoffline-improvements">NetBSD curses ripoffline improvements</a></li> Err codemadness.org 70 i 39081 <li><a href="https://lists.freebsd.org/pipermail/freebsd-stable/2018-October/089717.html">FCP-0101: Deprecating most 10/100 Ethernet drivers</a></li> Err codemadness.org 70 i 39082 <li><a href="https://mail-index.netbsd.org/tech-pkg/2018/10/05/msg020326.html">Announcing the pkgsrc-2018Q3 release</a></li> Err codemadness.org 70 i 39083 <li><a href="http://www.netzbasis.de/openbsd/vmd-debian/index.html">Debian on OpenBSD vmd (without qemu or another debian system)</a></li> Err codemadness.org 70 i 39084 <li><a href="https://github.com/jcs/login_duress">A BSD authentication module for duress passwords (Joshua Stein)</a></li> Err codemadness.org 70 i 39085 <li><a href="https://twitter.com/oshogbovx/status/1019334534935007232?s=03">Disk Price/Performance Analysis</a></li> Err codemadness.org 70 i 39086 </ul> Err codemadness.org 70 i 39087 <hr> Err codemadness.org 70 i 39088 <p>##Feedback/Questions</p> Err codemadness.org 70 i 39089 <ul> Err codemadness.org 70 i 39090 <li>DJ - <a href="http://dpaste.com/0YV8WC6#wrap">Zombie ZFS</a></li> Err codemadness.org 70 i 39091 <li>Josua - <a href="http://dpaste.com/25B1EA8">arm tier 1? how to approach it</a></li> Err codemadness.org 70 i 39092 <li>-Gamah - <a href="http://dpaste.com/2SMSGPB">5ghz</a></li> Err codemadness.org 70 i 39093 </ul> Err codemadness.org 70 i 39094 <hr> Err codemadness.org 70 i 39095 <ul> Err codemadness.org 70 i 39096 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 39097 </ul> Err codemadness.org 70 i 39098 <hr> Err codemadness.org 70 i 39099 Err codemadness.org 70 i 39100 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, ghostbsd, eurobsdcon, daemon Err codemadness.org 70 i 39101 Err codemadness.org 70 i 39102 FreeBSD Foundation September Update, tiny C lib for programming Unix daemons, EuroBSDcon trip reports, GhostBSD tested on real hardware, and a BSD auth module for duress.

Err codemadness.org 70 i 39103 Err codemadness.org 70 i 39104

##Headlines
Err codemadness.org 70 i 39105 ###FreeBSD Foundation Update, September 2018

Err codemadness.org 70 i 39106 Err codemadness.org 70 i 39107
    Err codemadness.org 70 i 39108
  • MESSAGE FROM THE EXECUTIVE DIRECTOR
  • Err codemadness.org 70 i 39109
Err codemadness.org 70 i 39110 Err codemadness.org 70 i 39111
Err codemadness.org 70 i 39112

Dear FreeBSD Community Member, It is hard to believe that September is over. The Foundation team had a busy month promoting FreeBSD all over the globe, bug fixing in preparation for 12.0, and setting plans in motion to kick off our 4th quarter fundraising and advocacy efforts. Take a minute to see what we’ve been up to and please consider making a donation to help us continue our efforts supporting FreeBSD!

Err codemadness.org 70 i 39113
Err codemadness.org 70 i 39114 Err codemadness.org 70 i 39115
    Err codemadness.org 70 i 39116
  • September 2018 Development Projects Update
  • Err codemadness.org 70 i 39117
Err codemadness.org 70 i 39118 Err codemadness.org 70 i 39119
Err codemadness.org 70 i 39120

In preparation for the release of FreeBSD 12.0, I have been working on investigating and fixing a backlog of kernel bug reports. Of course, this kind of work is never finished, and we will continue to make progress after the release. In the past couple of months I have fixed a combination of long-standing issues and recent regressions. Of note are a pair of UNIX domain socket bugs which had been affecting various applications for years. In particular, Chromium tabs would frequently hang unless a workaround was manually applied to the system, and the bug had started affecting recent versions of Firefox as well. Fixing these issues gave me an opportunity to revisit and extend our regression testing for UNIX sockets, which, in turn, resulted in some related bugs being identified and fixed.
Err codemadness.org 70 i 39121 Of late I have also been investigating reports of issues with ZFS, particularly, those reported on FreeBSD 11.2. A number of regressions, including a kernel memory leak and issues with ARC reclamation, have already been fixed for 12.0; investigation of other reports is ongoing. Those who closely follow FreeBSD-CURRENT know that some exciting work to improve memory usage on NUMA systems is now enabled by default. As is usually the case when new code is deployed in a diverse array of systems and workloads, a number of problems since have been identified. We are working on resolving them as soon as possible to ensure the quality of the release.
Err codemadness.org 70 i 39122 I’m passionate about maintaining FreeBSD’s stability and dependability as it continues to expand and grow new features, and I’m grateful to the FreeBSD Foundation for sponsoring this work. We depend on users to report problems to the mailing lists and via the bug tracker, so please try running the 12.0 candidate builds and help us make 12.0 a great release.

Err codemadness.org 70 i 39123
Err codemadness.org 70 i 39124 Err codemadness.org 70 i 39125
    Err codemadness.org 70 i 39126
  • Fundraising Update: Supporting the Project
  • Err codemadness.org 70 i 39127
Err codemadness.org 70 i 39128 Err codemadness.org 70 i 39129
Err codemadness.org 70 i 39130

It’s officially Fall here at Foundation headquarters and we’re heading full-steam into our final fundraising campaign of the year. We couldn’t even have begun to reach our funding goal of $1.25 million dollars without the support from the companies who have partnered with us this year. Thank you to Verisign for becoming a Silver Partner. They now join a growing list of companies like Xiplink, NetApp, Microsoft, Tarsnap, VMware, and NeoSmart Technologies that are stepping up and showing their commitment to FreeBSD!
Err codemadness.org 70 i 39131 Funding from commercial users like these and individual users like yourself, help us continue our efforts of supporting critical areas of FreeBSD such as:

Err codemadness.org 70 i 39132
Err codemadness.org 70 i 39133 Err codemadness.org 70 i 39134
    Err codemadness.org 70 i 39135
  • Operating System Improvements: Providing staff to immediately respond to urgent problems and implement new features and functionality allowing for the innovation and stability you’ve come to rely on.
  • Err codemadness.org 70 i 39136
  • Security: Providing engineering resources to bolster the capacity and responsiveness of the Security team providing your users with piece of mind when security issues arise.
  • Err codemadness.org 70 i 39137
  • Release Engineering: Continue providing a full-time release engineer, resulting in timely and reliable releases you can plan around.
  • Err codemadness.org 70 i 39138
  • Quality Assurance: Improving and increasing test coverage, continuous integration, and automated testing with a full-time software engineer to ensure you receive the highest quality, secure, and reliable operating system.
  • Err codemadness.org 70 i 39139
  • New User Experience: Improving the process and documentation for getting new people involved with FreeBSD, and supporting those people as they become integrated into the FreeBSD Community providing the resources you may need to get new folks up to speed.
  • Err codemadness.org 70 i 39140
  • Training: Supporting more FreeBSD training for undergraduates, graduates, and postgraduates. Growing the community means reaching people and catching their interest in systems software as early as possible and providing you with a bigger pool of candidates with the FreeBSD skills you’re looking for.
  • Err codemadness.org 70 i 39141
  • Face-to-Face Opportunities: Facilitating collaboration among members of the community, and building connections throughout the industry to support a healthy and growing ecosystem and make it easier for you to find resources when questions emerge .
  • Err codemadness.org 70 i 39142
Err codemadness.org 70 i 39143 Err codemadness.org 70 i 39144
Err codemadness.org 70 i 39145

We can continue the above work, if we meet our goal this year!
Err codemadness.org 70 i 39146 If your company uses FreeBSD, please consider joining our growing list of 2018 partners. If you haven’t made your donation yet, please consider donating today. We are indebted to the individual donors, and companies listed above who have already shown their commitment to open source.
Err codemadness.org 70 i 39147 Thank you for supporting FreeBSD and the Foundation!

Err codemadness.org 70 i 39148
Err codemadness.org 70 i 39149 Err codemadness.org 70 i 39150
    Err codemadness.org 70 i 39151
  • September 2018 Release Engineering Update
  • Err codemadness.org 70 i 39152
Err codemadness.org 70 i 39153 Err codemadness.org 70 i 39154
Err codemadness.org 70 i 39155

The FreeBSD Release Engineering team continued working on the upcoming 12.0 RELEASE. At present, the 12.0 schedule had been adjusted by one week to allow for necessary works-in-progress to be completed.
Err codemadness.org 70 i 39156 Of note, one of the works-in-progress includes updating OpenSSL from 1.0.2 to 1.1.1, in order to avoid breaking the application binary interface (ABI) on an established stable branch.
Err codemadness.org 70 i 39157 Due to the level of non-trivial intrusiveness that had already been discovered and addressed in a project branch of the repository, it is possible (but not yet definite) that the schedule will need to be adjusted by another week to allow more time for larger and related updates for this particular update.
Err codemadness.org 70 i 39158 Should the 12.0-RELEASE schedule need to be adjusted at any time during the release cycle, the schedule on the FreeBSD project website will be updated accordingly. The current schedule is available at:
Err codemadness.org 70 i 39159 https://www.freebsd.org/releases/12.0R/schedule.html

Err codemadness.org 70 i 39160
Err codemadness.org 70 i 39161 Err codemadness.org 70 i 39162
    Err codemadness.org 70 i 39163
  • BSDCam 2018 Trip Report: Marie Helene Kvello-Aune
  • Err codemadness.org 70 i 39164
Err codemadness.org 70 i 39165 Err codemadness.org 70 i 39166
Err codemadness.org 70 i 39167

I’d like to start by thanking the FreeBSD Foundation for sponsoring my trip to BSDCam(bridge) 2018. I wouldn’t have managed to attend otherwise. I’ve used FreeBSD in both personal and professional deployments since the year 2000, and over the last few years I have become more involved with development and documentation.
Err codemadness.org 70 i 39168 I arrived in Gatwick, London at midnight. On Monday, August 13, I took the train to Cambridge, and decided to do some touristy activities as I walked from the train station to Churchill College. I ran into Allan outside the hotel right before the sky decided it was time for a heavy rainfall. Monday was mostly spent settling in, recouping after travel, and hanging out with Allan, Brad, Will and Andy later in the afternoon/evening. Read more…

Err codemadness.org 70 i 39169
Err codemadness.org 70 i 39170 Err codemadness.org 70 i 39171
    Err codemadness.org 70 i 39172
  • Continuous Integration Update
  • Err codemadness.org 70 i 39173
Err codemadness.org 70 i 39174 Err codemadness.org 70 i 39175
Err codemadness.org 70 i 39176

The FreeBSD Foundation has sponsored the development of the Project’s continuous integration system, available at https://ci.FreeBSD.org, since June. Over the summer, we improved both the software and hardware infrastructure, and also added some new jobs for extending test coverage of the -CURRENT and -STABLE branches. Following are some highlights.

Err codemadness.org 70 i 39177
Err codemadness.org 70 i 39178 Err codemadness.org 70 i 39179
    Err codemadness.org 70 i 39180
  • New Hardware
  • Err codemadness.org 70 i 39181
Err codemadness.org 70 i 39182 Err codemadness.org 70 i 39183
Err codemadness.org 70 i 39184

The Foundation purchased 4 new build machines for scaling up the computation power for the various test jobs. These newer, faster machines substantially speed up the time it takes to test amd64 builds, so that failing changes can be identified more quickly. Also, in August, we received a donation of 2 PINE A64-LTS boards from PINE64.org, which will be put in the hardware test lab as one part of the continuous tests.

Err codemadness.org 70 i 39185
Err codemadness.org 70 i 39186 Err codemadness.org 70 i 39187
    Err codemadness.org 70 i 39188
  • CI Staging Environment
  • Err codemadness.org 70 i 39189
Err codemadness.org 70 i 39190 Err codemadness.org 70 i 39191
Err codemadness.org 70 i 39192

We used hardware from a previous generation CI system to build a staging environment for the CI infrastructure, which is available at
Err codemadness.org 70 i 39193 https://ci-dev.freebsd.org. It executes the configurations and scripts from the “staging” branch of the FreeBSD-CI repository, and the development feature branches. We also use it to experiment with the new version of the jenkins server and plugins. Having a staging environment avoids affecting the production CI environment, reducing downtime.

Err codemadness.org 70 i 39194
Err codemadness.org 70 i 39195 Err codemadness.org 70 i 39196
    Err codemadness.org 70 i 39197
  • Mail Notification
  • Err codemadness.org 70 i 39198
Err codemadness.org 70 i 39199 Err codemadness.org 70 i 39200
Err codemadness.org 70 i 39201

In July, we turned on failure notification for all the kernel and world build jobs. Committers will receive email containing the build information and failure log to inform them of possible problems with their modification on certain architectures. For amd64 of the -CURRENT branch, we also enabled the notification on failing regression test cases. Currently mail is sent only to the individual committers, but with help from postmaster team, we have created a dev-ci mailing list and will soon be also sending notifications there.

Err codemadness.org 70 i 39202
Err codemadness.org 70 i 39203 Err codemadness.org 70 i 39204
    Err codemadness.org 70 i 39205
  • New Test Job
  • Err codemadness.org 70 i 39206
Err codemadness.org 70 i 39207 Err codemadness.org 70 i 39208
Err codemadness.org 70 i 39209

In August, we updated the embedded script of the virtual machine image. Originally it only executed pre-defined tests, but now this behavior can be modified by the data on the attached disk. This mechanism is used for adding new ZFS tests jobs. We are also working on analyzing and fixing the failing and skipped test cases.

Err codemadness.org 70 i 39210
Err codemadness.org 70 i 39211 Err codemadness.org 70 i 39212
    Err codemadness.org 70 i 39213
  • Work in Progress
  • Err codemadness.org 70 i 39214
Err codemadness.org 70 i 39215 Err codemadness.org 70 i 39216
Err codemadness.org 70 i 39217

In August and September, we had two developer summits, one in Cambridge, UK and one in Bucharest, Romania. In these meetings, we discussed running special tests, such as ztest, which need a longer run time. We also planned the network testing for TCP/IP stack

Err codemadness.org 70 i 39218
Err codemadness.org 70 i 39219 Err codemadness.org 70 i 39220


Err codemadness.org 70 i 39221 Err codemadness.org 70 i 39222

###Daemonize - a Tiny C Library for Programming the UNIX Daemons

Err codemadness.org 70 i 39223 Err codemadness.org 70 i 39224
Err codemadness.org 70 i 39225

Whatever they say, writing System-V style UNIX daemons is hard. One has to follow many rules to make a daemon process behave correctly on diverse UNIX flavours. Moreover, debugging such a code might be somewhat tricky. On the other hand, the process of daemon initialisation is rigid and well defined so the corresponding code has to be written and debugged once and later can be reused countless number of times.
Err codemadness.org 70 i 39226 Developers of BSD UNIX were very aware of this, as there a C library function daemon() was available starting from version 4.4. The function, although non-standard, is present on many UNIXes. Unfortunately, it does not follow all the required steps to reliably run a process in the background on systems which follow System-V semantics (e.g. Linux). The details are available at the corresponding Linux man page. The main problem here, as I understand it, is that daemon() does not use the double-forking technique to avoid the situation when zombie processes appear.
Err codemadness.org 70 i 39227 Whenever I encounter a problem like this one, I know it is time to write a tiny C library which solves it. This is exactly how ‘daemonize’ was born (GitHub mirror). The library consists of only two files which are meant to be integrated into the source tree of your project. Recently I have updated the library and realised that it would be good to describe how to use it on this site.
Err codemadness.org 70 i 39228 If for some reason you want to make a Windows service, I have a battle tested template code for you as well.

Err codemadness.org 70 i 39229
Err codemadness.org 70 i 39230 Err codemadness.org 70 i 39231
    Err codemadness.org 70 i 39232
  • System-V Daemon Initialisation Procedure
  • Err codemadness.org 70 i 39233
Err codemadness.org 70 i 39234 Err codemadness.org 70 i 39235
Err codemadness.org 70 i 39236

To make discussion clear we shall quote the steps which have to be performed during a daemon initialisation (according to daemon(7) manual page on Linux). I do it to demonstrate that this task is more tricky than one might expect.

Err codemadness.org 70 i 39237
Err codemadness.org 70 i 39238 Err codemadness.org 70 i 39239
    Err codemadness.org 70 i 39240
  • Err codemadness.org 70 i 39241

    So, here we go:

    Err codemadness.org 70 i 39242
  • Err codemadness.org 70 i 39243
  • Err codemadness.org 70 i 39244

    Close all open file descriptors except standard input, output, and error (i.e. the first three file descriptors 0, 1, 2). This ensures that no accidentally passed file descriptor stays around in the daemon process. On Linux, this is best implemented by iterating through /proc/self/fd, with a fallback of iterating from file descriptor 3 to the value returned by getrlimit() for RLIMIT_NOFILE.

    Err codemadness.org 70 i 39245
  • Err codemadness.org 70 i 39246
  • Err codemadness.org 70 i 39247

    Reset all signal handlers to their default. This is best done by iterating through the available signals up to the limit of _NSIG and resetting them to SIG_DFL.

    Err codemadness.org 70 i 39248
  • Err codemadness.org 70 i 39249
  • Err codemadness.org 70 i 39250

    Reset the signal mask using sigprocmask().

    Err codemadness.org 70 i 39251
  • Err codemadness.org 70 i 39252
  • Err codemadness.org 70 i 39253

    Sanitize the environment block, removing or resetting environment variables that might negatively impact daemon runtime.

    Err codemadness.org 70 i 39254
  • Err codemadness.org 70 i 39255
  • Err codemadness.org 70 i 39256

    Call fork(), to create a background process.

    Err codemadness.org 70 i 39257
  • Err codemadness.org 70 i 39258
  • Err codemadness.org 70 i 39259

    In the child, call setsid() to detach from any terminal and create an independent session.

    Err codemadness.org 70 i 39260
  • Err codemadness.org 70 i 39261
  • Err codemadness.org 70 i 39262

    In the child, call fork() again, to ensure that the daemon can never re-acquire a terminal again.

    Err codemadness.org 70 i 39263
  • Err codemadness.org 70 i 39264
  • Err codemadness.org 70 i 39265

    Call exit() in the first child, so that only the second child (the actual daemon process) stays around. This ensures that the daemon process is re-parented to init/PID 1, as all daemons should be.

    Err codemadness.org 70 i 39266
  • Err codemadness.org 70 i 39267
  • Err codemadness.org 70 i 39268

    In the daemon process, connect /dev/null to standard input, output, and error.

    Err codemadness.org 70 i 39269
  • Err codemadness.org 70 i 39270
  • Err codemadness.org 70 i 39271

    In the daemon process, reset the umask to 0, so that the file modes passed to open(), mkdir() and suchlike directly control the access mode of the created files and directories.

    Err codemadness.org 70 i 39272
  • Err codemadness.org 70 i 39273
  • Err codemadness.org 70 i 39274

    In the daemon process, change the current directory to the root directory (/), in order to avoid that the daemon involuntarily blocks mount points from being unmounted.

    Err codemadness.org 70 i 39275
  • Err codemadness.org 70 i 39276
  • Err codemadness.org 70 i 39277

    In the daemon process, write the daemon PID (as returned by getpid()) to a PID file, for example /run/foobar.pid (for a hypothetical daemon “foobar”) to ensure that the daemon cannot be started more than once. This must be implemented in race-free fashion so that the PID file is only updated when it is verified at the same time that the PID previously stored in the PID file no longer exists or belongs to a foreign process.

    Err codemadness.org 70 i 39278
  • Err codemadness.org 70 i 39279
  • Err codemadness.org 70 i 39280

    In the daemon process, drop privileges, if possible and applicable.

    Err codemadness.org 70 i 39281
  • Err codemadness.org 70 i 39282
  • Err codemadness.org 70 i 39283

    From the daemon process, notify the original process started that initialization is complete. This can be implemented via an unnamed pipe or similar communication channel that is created before the first fork() and hence available in both the original and the daemon process.

    Err codemadness.org 70 i 39284
  • Err codemadness.org 70 i 39285
  • Err codemadness.org 70 i 39286

    Call exit() in the original process. The process that invoked the daemon must be able to rely on that this exit() happens after initialization is complete and all external communication channels are established and accessible.

    Err codemadness.org 70 i 39287
  • Err codemadness.org 70 i 39288
Err codemadness.org 70 i 39289 Err codemadness.org 70 i 39290
Err codemadness.org 70 i 39291

The discussed library does most of the above-mentioned initialisation steps as it becomes immediately evident that implementation details for some of them heavily dependent on the internal logic of an application itself, so it is not possible to implement them in a universal library. I believe it is not a flaw, though, as the missed parts are safe to implement in an application code.

Err codemadness.org 70 i 39292
Err codemadness.org 70 i 39293 Err codemadness.org 70 i 39294
    Err codemadness.org 70 i 39295
  • The Library’s Application Programming Interface
  • Err codemadness.org 70 i 39296
Err codemadness.org 70 i 39297 Err codemadness.org 70 i 39298
Err codemadness.org 70 i 39299

The generic programming interface was loosely modelled after above-mentioned BSD’s daemon() function. The library provides two user available functions (one is, in fact, implemented on top of the other) as well as a set of flags to control a daemon creation behaviour.

Err codemadness.org 70 i 39300
Err codemadness.org 70 i 39301 Err codemadness.org 70 i 39302
    Err codemadness.org 70 i 39303
  • Conclusion
  • Err codemadness.org 70 i 39304
Err codemadness.org 70 i 39305 Err codemadness.org 70 i 39306
Err codemadness.org 70 i 39307

The objective of the library is to hide all the trickery of programming a daemon so you could concentrate on the more creative parts of your application. I hope it does this well.
Err codemadness.org 70 i 39308 If you are not only interested in writing a daemon, but also want to make yourself familiar with the techniques which are used to accomplish that, the source code is available. Moreover, I would advise anyone, who starts developing for a UNIX environment to do that, as it shows many intricacies of programming for these platforms.

Err codemadness.org 70 i 39309
Err codemadness.org 70 i 39310 Err codemadness.org 70 i 39311


Err codemadness.org 70 i 39312 Err codemadness.org 70 i 39313

##News Roundup
Err codemadness.org 70 i 39314 ###EuroBSDCon 2018 travel report and obligatory pics

Err codemadness.org 70 i 39315 Err codemadness.org 70 i 39316
Err codemadness.org 70 i 39317

This was my first big BSD conference. We also planned - planned might be a big word - thought about doing a devsummit on Friday. Since the people who were in charge of that had a change of plans, I was sure it’d go horribly wrong.
Err codemadness.org 70 i 39318 The day before the devsummit and still in the wrong country, I mentioned the hours and venue on the wiki, and booked a reservation for a restaurant.
Err codemadness.org 70 i 39319 It turns out that everything was totally fine, and since the devsummit was at the conference venue (that was having tutorials that day), they even had signs pointing at the room we were given. Thanks EuroBSDCon conference organizers!
Err codemadness.org 70 i 39320 At the devsummit, we spent some time hacking. A few people came with “travel laptops” without access to anything, like Riastradh, so I gave him access to my own laptop. This didn’t hold very long and I kinda forgot about it, but for a few moments he had access to a NetBSD source tree and an 8 thread, 16GB RAM machine with which to build things.
Err codemadness.org 70 i 39321 We had a short introduction and I suggested we take some pictures, so here’s the ones we got. A few people were concerned about privacy, so they’re not pictured. We had small team to hold the camera :-)
Err codemadness.org 70 i 39322 At the actual conference days, I stayed at the speaker hotel with the other speakers. I’ve attempted to make conversation with some visibly FreeBSD/OpenBSD people, but didn’t have plans to talk about anything, so there was a lot of just following people silently.
Err codemadness.org 70 i 39323 Perhaps for the next conference I’ll prepare a list of questions to random BSD people and then very obviously grab a piece of paper and ask, “what was…”, read a bit from it, and say, “your latest kernel panic?”, I’m sure it’ll be a great conversation starter.
Err codemadness.org 70 i 39324 At the conference itself, was pretty cool to have folks like Kirk McKusick give first person accounts of some past events (Kirk gave a talk about governance at FreeBSD), or the second keynote by Ron Broersma.
Err codemadness.org 70 i 39325 My own talk was hastily prepared, it was difficult to bring the topic together into a coherent talk. Nevertheless, I managed to talk about stuff for a while 40 minutes, though usually I skip over so many details that I have trouble putting together a sufficiently long talk.
Err codemadness.org 70 i 39326 I mentioned some of my coolest bugs to solve (I should probably make a separate article about some!). A few people asked for the slides after the talk, so I guess it wasn’t totally incoherent.
Err codemadness.org 70 i 39327 It was really fun to meet some of my favourite NetBSD people. I got to show off my now fairly well working laptop (it took a lot of work by all of us!).
Err codemadness.org 70 i 39328 After the conference I came back with a conference cold, and it took a few days to recover from it. Hopefully I didn’t infect too many people on the way back.

Err codemadness.org 70 i 39329
Err codemadness.org 70 i 39330 Err codemadness.org 70 i 39331


Err codemadness.org 70 i 39332 Err codemadness.org 70 i 39333

###GhostBSD tested on real hardware T410 – better than TrueOS?

Err codemadness.org 70 i 39334 Err codemadness.org 70 i 39335
Err codemadness.org 70 i 39336

You might have heard about FreeBSD which is ultimately derived from UNIX back in the days. It is not Linux even though it is similar in many ways because Linux was designed to follow UNIX principles. Seeing is believing, so check out the video of the install and some apps as well!

Err codemadness.org 70 i 39337
Err codemadness.org 70 i 39338 Err codemadness.org 70 i 39339
Err codemadness.org 70 i 39340

Nowadays if you want some of that BSD on your personal desktop how to go about? Well there is a full package or distro called GhostBSD which is based on FreeBSD current with a Mate or XFCE desktop preconfigured. I did try another package called TrueOS before and you can check out my blog post as well.

Err codemadness.org 70 i 39341
Err codemadness.org 70 i 39342 Err codemadness.org 70 i 39343
Err codemadness.org 70 i 39344

Let’s give it a try on my Lenovo ThinkPad T410. You can download the latest version from ghostbsd.org. Creating a bootable USB drive was surprisingly difficult as rufus did not work and created a corrupted drive. You have to follow this procedure under Windows: download the 2.5GB .iso file and rename the extension to .img. Download Win32 Disk imager and burn the img file to an USB drive and boot from it. You will be able to start a live session and use the onboard setup to install GhostBSD unto a disk.

Err codemadness.org 70 i 39345
Err codemadness.org 70 i 39346 Err codemadness.org 70 i 39347
Err codemadness.org 70 i 39348

I did encounter some bugs or quirks along the way. The installer failed the first time for some unknown reason but worked on the second attempt. The first boot stopped upon initialization of the USB3 ports (the T410 does not have USB3) but I could use some ‘exit’ command line magic to continue. The second boot worked fine. Audio was only available through headphones, not speakers but that could partially be fixed using the command line again. Lot’s of installed apps did not show up in the start menu and on goes the quirks list.

Err codemadness.org 70 i 39349
Err codemadness.org 70 i 39350 Err codemadness.org 70 i 39351
Err codemadness.org 70 i 39352

Overall it is still better than TrueOS for me because drivers did work very well and I could address most of the existing bugs.

Err codemadness.org 70 i 39353
Err codemadness.org 70 i 39354 Err codemadness.org 70 i 39355
    Err codemadness.org 70 i 39356
  • Err codemadness.org 70 i 39357

    On the upside:

    Err codemadness.org 70 i 39358
  • Err codemadness.org 70 i 39359
  • Err codemadness.org 70 i 39360

    Free and open source FreeBSD package ready to go

    Err codemadness.org 70 i 39361
  • Err codemadness.org 70 i 39362
  • Err codemadness.org 70 i 39363

    Mate or XFCE desktop (Mate is the only option for daily builds)

    Err codemadness.org 70 i 39364
  • Err codemadness.org 70 i 39365
  • Err codemadness.org 70 i 39366

    Drivers work fine including LAN, WiFi, video 2D & 3D, audio, etc

    Err codemadness.org 70 i 39367
  • Err codemadness.org 70 i 39368
  • Err codemadness.org 70 i 39369

    UFS or ZFS advanced file systems available

    Err codemadness.org 70 i 39370
  • Err codemadness.org 70 i 39371
  • Err codemadness.org 70 i 39372

    Some downsides:

    Err codemadness.org 70 i 39373
  • Err codemadness.org 70 i 39374
  • Err codemadness.org 70 i 39375

    Less driver and direct app support than Linux

    Err codemadness.org 70 i 39376
  • Err codemadness.org 70 i 39377
  • Err codemadness.org 70 i 39378

    Installer and desktop have some quirks and bugs

    Err codemadness.org 70 i 39379
  • Err codemadness.org 70 i 39380
  • Err codemadness.org 70 i 39381

    App-store is cumbersome, inferior to TrueOS

    Err codemadness.org 70 i 39382
  • Err codemadness.org 70 i 39383
Err codemadness.org 70 i 39384 Err codemadness.org 70 i 39385


Err codemadness.org 70 i 39386 Err codemadness.org 70 i 39387

##Beastie Bits

Err codemadness.org 70 i 39388 Err codemadness.org 70 i 39389 Err codemadness.org 70 i 39405 Err codemadness.org 70 i 39406


Err codemadness.org 70 i 39407 Err codemadness.org 70 i 39408

##Feedback/Questions

Err codemadness.org 70 i 39409 Err codemadness.org 70 i 39410 Err codemadness.org 70 i 39415 Err codemadness.org 70 i 39416


Err codemadness.org 70 i 39417 Err codemadness.org 70 i 39418
    Err codemadness.org 70 i 39419
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 39420
Err codemadness.org 70 i 39421 Err codemadness.org 70 i 39422


]]> Err codemadness.org 70 i 39423
Err codemadness.org 70 i 39424 Err codemadness.org 70 i 39425 FreeBSD Foundation September Update, tiny C lib for programming Unix daemons, EuroBSDcon trip reports, GhostBSD tested on real hardware, and a BSD auth module for duress.

Err codemadness.org 70 i 39426 Err codemadness.org 70 i 39427

##Headlines
Err codemadness.org 70 i 39428 ###FreeBSD Foundation Update, September 2018

Err codemadness.org 70 i 39429 Err codemadness.org 70 i 39430
    Err codemadness.org 70 i 39431
  • MESSAGE FROM THE EXECUTIVE DIRECTOR
  • Err codemadness.org 70 i 39432
Err codemadness.org 70 i 39433 Err codemadness.org 70 i 39434
Err codemadness.org 70 i 39435

Dear FreeBSD Community Member, It is hard to believe that September is over. The Foundation team had a busy month promoting FreeBSD all over the globe, bug fixing in preparation for 12.0, and setting plans in motion to kick off our 4th quarter fundraising and advocacy efforts. Take a minute to see what we’ve been up to and please consider making a donation to help us continue our efforts supporting FreeBSD!

Err codemadness.org 70 i 39436
Err codemadness.org 70 i 39437 Err codemadness.org 70 i 39438
    Err codemadness.org 70 i 39439
  • September 2018 Development Projects Update
  • Err codemadness.org 70 i 39440
Err codemadness.org 70 i 39441 Err codemadness.org 70 i 39442
Err codemadness.org 70 i 39443

In preparation for the release of FreeBSD 12.0, I have been working on investigating and fixing a backlog of kernel bug reports. Of course, this kind of work is never finished, and we will continue to make progress after the release. In the past couple of months I have fixed a combination of long-standing issues and recent regressions. Of note are a pair of UNIX domain socket bugs which had been affecting various applications for years. In particular, Chromium tabs would frequently hang unless a workaround was manually applied to the system, and the bug had started affecting recent versions of Firefox as well. Fixing these issues gave me an opportunity to revisit and extend our regression testing for UNIX sockets, which, in turn, resulted in some related bugs being identified and fixed.
Err codemadness.org 70 i 39444 Of late I have also been investigating reports of issues with ZFS, particularly, those reported on FreeBSD 11.2. A number of regressions, including a kernel memory leak and issues with ARC reclamation, have already been fixed for 12.0; investigation of other reports is ongoing. Those who closely follow FreeBSD-CURRENT know that some exciting work to improve memory usage on NUMA systems is now enabled by default. As is usually the case when new code is deployed in a diverse array of systems and workloads, a number of problems since have been identified. We are working on resolving them as soon as possible to ensure the quality of the release.
Err codemadness.org 70 i 39445 I’m passionate about maintaining FreeBSD’s stability and dependability as it continues to expand and grow new features, and I’m grateful to the FreeBSD Foundation for sponsoring this work. We depend on users to report problems to the mailing lists and via the bug tracker, so please try running the 12.0 candidate builds and help us make 12.0 a great release.

Err codemadness.org 70 i 39446
Err codemadness.org 70 i 39447 Err codemadness.org 70 i 39448
    Err codemadness.org 70 i 39449
  • Fundraising Update: Supporting the Project
  • Err codemadness.org 70 i 39450
Err codemadness.org 70 i 39451 Err codemadness.org 70 i 39452
Err codemadness.org 70 i 39453

It’s officially Fall here at Foundation headquarters and we’re heading full-steam into our final fundraising campaign of the year. We couldn’t even have begun to reach our funding goal of $1.25 million dollars without the support from the companies who have partnered with us this year. Thank you to Verisign for becoming a Silver Partner. They now join a growing list of companies like Xiplink, NetApp, Microsoft, Tarsnap, VMware, and NeoSmart Technologies that are stepping up and showing their commitment to FreeBSD!
Err codemadness.org 70 i 39454 Funding from commercial users like these and individual users like yourself, help us continue our efforts of supporting critical areas of FreeBSD such as:

Err codemadness.org 70 i 39455
Err codemadness.org 70 i 39456 Err codemadness.org 70 i 39457
    Err codemadness.org 70 i 39458
  • Operating System Improvements: Providing staff to immediately respond to urgent problems and implement new features and functionality allowing for the innovation and stability you’ve come to rely on.
  • Err codemadness.org 70 i 39459
  • Security: Providing engineering resources to bolster the capacity and responsiveness of the Security team providing your users with piece of mind when security issues arise.
  • Err codemadness.org 70 i 39460
  • Release Engineering: Continue providing a full-time release engineer, resulting in timely and reliable releases you can plan around.
  • Err codemadness.org 70 i 39461
  • Quality Assurance: Improving and increasing test coverage, continuous integration, and automated testing with a full-time software engineer to ensure you receive the highest quality, secure, and reliable operating system.
  • Err codemadness.org 70 i 39462
  • New User Experience: Improving the process and documentation for getting new people involved with FreeBSD, and supporting those people as they become integrated into the FreeBSD Community providing the resources you may need to get new folks up to speed.
  • Err codemadness.org 70 i 39463
  • Training: Supporting more FreeBSD training for undergraduates, graduates, and postgraduates. Growing the community means reaching people and catching their interest in systems software as early as possible and providing you with a bigger pool of candidates with the FreeBSD skills you’re looking for.
  • Err codemadness.org 70 i 39464
  • Face-to-Face Opportunities: Facilitating collaboration among members of the community, and building connections throughout the industry to support a healthy and growing ecosystem and make it easier for you to find resources when questions emerge .
  • Err codemadness.org 70 i 39465
Err codemadness.org 70 i 39466 Err codemadness.org 70 i 39467
Err codemadness.org 70 i 39468

We can continue the above work, if we meet our goal this year!
Err codemadness.org 70 i 39469 If your company uses FreeBSD, please consider joining our growing list of 2018 partners. If you haven’t made your donation yet, please consider donating today. We are indebted to the individual donors, and companies listed above who have already shown their commitment to open source.
Err codemadness.org 70 i 39470 Thank you for supporting FreeBSD and the Foundation!

Err codemadness.org 70 i 39471
Err codemadness.org 70 i 39472 Err codemadness.org 70 i 39473
    Err codemadness.org 70 i 39474
  • September 2018 Release Engineering Update
  • Err codemadness.org 70 i 39475
Err codemadness.org 70 i 39476 Err codemadness.org 70 i 39477
Err codemadness.org 70 i 39478

The FreeBSD Release Engineering team continued working on the upcoming 12.0 RELEASE. At present, the 12.0 schedule had been adjusted by one week to allow for necessary works-in-progress to be completed.
Err codemadness.org 70 i 39479 Of note, one of the works-in-progress includes updating OpenSSL from 1.0.2 to 1.1.1, in order to avoid breaking the application binary interface (ABI) on an established stable branch.
Err codemadness.org 70 i 39480 Due to the level of non-trivial intrusiveness that had already been discovered and addressed in a project branch of the repository, it is possible (but not yet definite) that the schedule will need to be adjusted by another week to allow more time for larger and related updates for this particular update.
Err codemadness.org 70 i 39481 Should the 12.0-RELEASE schedule need to be adjusted at any time during the release cycle, the schedule on the FreeBSD project website will be updated accordingly. The current schedule is available at:
Err codemadness.org 70 i 39482 https://www.freebsd.org/releases/12.0R/schedule.html

Err codemadness.org 70 i 39483
Err codemadness.org 70 i 39484 Err codemadness.org 70 i 39485
    Err codemadness.org 70 i 39486
  • BSDCam 2018 Trip Report: Marie Helene Kvello-Aune
  • Err codemadness.org 70 i 39487
Err codemadness.org 70 i 39488 Err codemadness.org 70 i 39489
Err codemadness.org 70 i 39490

I’d like to start by thanking the FreeBSD Foundation for sponsoring my trip to BSDCam(bridge) 2018. I wouldn’t have managed to attend otherwise. I’ve used FreeBSD in both personal and professional deployments since the year 2000, and over the last few years I have become more involved with development and documentation.
Err codemadness.org 70 i 39491 I arrived in Gatwick, London at midnight. On Monday, August 13, I took the train to Cambridge, and decided to do some touristy activities as I walked from the train station to Churchill College. I ran into Allan outside the hotel right before the sky decided it was time for a heavy rainfall. Monday was mostly spent settling in, recouping after travel, and hanging out with Allan, Brad, Will and Andy later in the afternoon/evening. Read more…

Err codemadness.org 70 i 39492
Err codemadness.org 70 i 39493 Err codemadness.org 70 i 39494
    Err codemadness.org 70 i 39495
  • Continuous Integration Update
  • Err codemadness.org 70 i 39496
Err codemadness.org 70 i 39497 Err codemadness.org 70 i 39498
Err codemadness.org 70 i 39499

The FreeBSD Foundation has sponsored the development of the Project’s continuous integration system, available at https://ci.FreeBSD.org, since June. Over the summer, we improved both the software and hardware infrastructure, and also added some new jobs for extending test coverage of the -CURRENT and -STABLE branches. Following are some highlights.

Err codemadness.org 70 i 39500
Err codemadness.org 70 i 39501 Err codemadness.org 70 i 39502
    Err codemadness.org 70 i 39503
  • New Hardware
  • Err codemadness.org 70 i 39504
Err codemadness.org 70 i 39505 Err codemadness.org 70 i 39506
Err codemadness.org 70 i 39507

The Foundation purchased 4 new build machines for scaling up the computation power for the various test jobs. These newer, faster machines substantially speed up the time it takes to test amd64 builds, so that failing changes can be identified more quickly. Also, in August, we received a donation of 2 PINE A64-LTS boards from PINE64.org, which will be put in the hardware test lab as one part of the continuous tests.

Err codemadness.org 70 i 39508
Err codemadness.org 70 i 39509 Err codemadness.org 70 i 39510
    Err codemadness.org 70 i 39511
  • CI Staging Environment
  • Err codemadness.org 70 i 39512
Err codemadness.org 70 i 39513 Err codemadness.org 70 i 39514
Err codemadness.org 70 i 39515

We used hardware from a previous generation CI system to build a staging environment for the CI infrastructure, which is available at
Err codemadness.org 70 i 39516 https://ci-dev.freebsd.org. It executes the configurations and scripts from the “staging” branch of the FreeBSD-CI repository, and the development feature branches. We also use it to experiment with the new version of the jenkins server and plugins. Having a staging environment avoids affecting the production CI environment, reducing downtime.

Err codemadness.org 70 i 39517
Err codemadness.org 70 i 39518 Err codemadness.org 70 i 39519
    Err codemadness.org 70 i 39520
  • Mail Notification
  • Err codemadness.org 70 i 39521
Err codemadness.org 70 i 39522 Err codemadness.org 70 i 39523
Err codemadness.org 70 i 39524

In July, we turned on failure notification for all the kernel and world build jobs. Committers will receive email containing the build information and failure log to inform them of possible problems with their modification on certain architectures. For amd64 of the -CURRENT branch, we also enabled the notification on failing regression test cases. Currently mail is sent only to the individual committers, but with help from postmaster team, we have created a dev-ci mailing list and will soon be also sending notifications there.

Err codemadness.org 70 i 39525
Err codemadness.org 70 i 39526 Err codemadness.org 70 i 39527
    Err codemadness.org 70 i 39528
  • New Test Job
  • Err codemadness.org 70 i 39529
Err codemadness.org 70 i 39530 Err codemadness.org 70 i 39531
Err codemadness.org 70 i 39532

In August, we updated the embedded script of the virtual machine image. Originally it only executed pre-defined tests, but now this behavior can be modified by the data on the attached disk. This mechanism is used for adding new ZFS tests jobs. We are also working on analyzing and fixing the failing and skipped test cases.

Err codemadness.org 70 i 39533
Err codemadness.org 70 i 39534 Err codemadness.org 70 i 39535
    Err codemadness.org 70 i 39536
  • Work in Progress
  • Err codemadness.org 70 i 39537
Err codemadness.org 70 i 39538 Err codemadness.org 70 i 39539
Err codemadness.org 70 i 39540

In August and September, we had two developer summits, one in Cambridge, UK and one in Bucharest, Romania. In these meetings, we discussed running special tests, such as ztest, which need a longer run time. We also planned the network testing for TCP/IP stack

Err codemadness.org 70 i 39541
Err codemadness.org 70 i 39542 Err codemadness.org 70 i 39543


Err codemadness.org 70 i 39544 Err codemadness.org 70 i 39545

###Daemonize - a Tiny C Library for Programming the UNIX Daemons

Err codemadness.org 70 i 39546 Err codemadness.org 70 i 39547
Err codemadness.org 70 i 39548

Whatever they say, writing System-V style UNIX daemons is hard. One has to follow many rules to make a daemon process behave correctly on diverse UNIX flavours. Moreover, debugging such a code might be somewhat tricky. On the other hand, the process of daemon initialisation is rigid and well defined so the corresponding code has to be written and debugged once and later can be reused countless number of times.
Err codemadness.org 70 i 39549 Developers of BSD UNIX were very aware of this, as there a C library function daemon() was available starting from version 4.4. The function, although non-standard, is present on many UNIXes. Unfortunately, it does not follow all the required steps to reliably run a process in the background on systems which follow System-V semantics (e.g. Linux). The details are available at the corresponding Linux man page. The main problem here, as I understand it, is that daemon() does not use the double-forking technique to avoid the situation when zombie processes appear.
Err codemadness.org 70 i 39550 Whenever I encounter a problem like this one, I know it is time to write a tiny C library which solves it. This is exactly how ‘daemonize’ was born (GitHub mirror). The library consists of only two files which are meant to be integrated into the source tree of your project. Recently I have updated the library and realised that it would be good to describe how to use it on this site.
Err codemadness.org 70 i 39551 If for some reason you want to make a Windows service, I have a battle tested template code for you as well.

Err codemadness.org 70 i 39552
Err codemadness.org 70 i 39553 Err codemadness.org 70 i 39554
    Err codemadness.org 70 i 39555
  • System-V Daemon Initialisation Procedure
  • Err codemadness.org 70 i 39556
Err codemadness.org 70 i 39557 Err codemadness.org 70 i 39558
Err codemadness.org 70 i 39559

To make discussion clear we shall quote the steps which have to be performed during a daemon initialisation (according to daemon(7) manual page on Linux). I do it to demonstrate that this task is more tricky than one might expect.

Err codemadness.org 70 i 39560
Err codemadness.org 70 i 39561 Err codemadness.org 70 i 39562
    Err codemadness.org 70 i 39563
  • Err codemadness.org 70 i 39564

    So, here we go:

    Err codemadness.org 70 i 39565
  • Err codemadness.org 70 i 39566
  • Err codemadness.org 70 i 39567

    Close all open file descriptors except standard input, output, and error (i.e. the first three file descriptors 0, 1, 2). This ensures that no accidentally passed file descriptor stays around in the daemon process. On Linux, this is best implemented by iterating through /proc/self/fd, with a fallback of iterating from file descriptor 3 to the value returned by getrlimit() for RLIMIT_NOFILE.

    Err codemadness.org 70 i 39568
  • Err codemadness.org 70 i 39569
  • Err codemadness.org 70 i 39570

    Reset all signal handlers to their default. This is best done by iterating through the available signals up to the limit of _NSIG and resetting them to SIG_DFL.

    Err codemadness.org 70 i 39571
  • Err codemadness.org 70 i 39572
  • Err codemadness.org 70 i 39573

    Reset the signal mask using sigprocmask().

    Err codemadness.org 70 i 39574
  • Err codemadness.org 70 i 39575
  • Err codemadness.org 70 i 39576

    Sanitize the environment block, removing or resetting environment variables that might negatively impact daemon runtime.

    Err codemadness.org 70 i 39577
  • Err codemadness.org 70 i 39578
  • Err codemadness.org 70 i 39579

    Call fork(), to create a background process.

    Err codemadness.org 70 i 39580
  • Err codemadness.org 70 i 39581
  • Err codemadness.org 70 i 39582

    In the child, call setsid() to detach from any terminal and create an independent session.

    Err codemadness.org 70 i 39583
  • Err codemadness.org 70 i 39584
  • Err codemadness.org 70 i 39585

    In the child, call fork() again, to ensure that the daemon can never re-acquire a terminal again.

    Err codemadness.org 70 i 39586
  • Err codemadness.org 70 i 39587
  • Err codemadness.org 70 i 39588

    Call exit() in the first child, so that only the second child (the actual daemon process) stays around. This ensures that the daemon process is re-parented to init/PID 1, as all daemons should be.

    Err codemadness.org 70 i 39589
  • Err codemadness.org 70 i 39590
  • Err codemadness.org 70 i 39591

    In the daemon process, connect /dev/null to standard input, output, and error.

    Err codemadness.org 70 i 39592
  • Err codemadness.org 70 i 39593
  • Err codemadness.org 70 i 39594

    In the daemon process, reset the umask to 0, so that the file modes passed to open(), mkdir() and suchlike directly control the access mode of the created files and directories.

    Err codemadness.org 70 i 39595
  • Err codemadness.org 70 i 39596
  • Err codemadness.org 70 i 39597

    In the daemon process, change the current directory to the root directory (/), in order to avoid that the daemon involuntarily blocks mount points from being unmounted.

    Err codemadness.org 70 i 39598
  • Err codemadness.org 70 i 39599
  • Err codemadness.org 70 i 39600

    In the daemon process, write the daemon PID (as returned by getpid()) to a PID file, for example /run/foobar.pid (for a hypothetical daemon “foobar”) to ensure that the daemon cannot be started more than once. This must be implemented in race-free fashion so that the PID file is only updated when it is verified at the same time that the PID previously stored in the PID file no longer exists or belongs to a foreign process.

    Err codemadness.org 70 i 39601
  • Err codemadness.org 70 i 39602
  • Err codemadness.org 70 i 39603

    In the daemon process, drop privileges, if possible and applicable.

    Err codemadness.org 70 i 39604
  • Err codemadness.org 70 i 39605
  • Err codemadness.org 70 i 39606

    From the daemon process, notify the original process started that initialization is complete. This can be implemented via an unnamed pipe or similar communication channel that is created before the first fork() and hence available in both the original and the daemon process.

    Err codemadness.org 70 i 39607
  • Err codemadness.org 70 i 39608
  • Err codemadness.org 70 i 39609

    Call exit() in the original process. The process that invoked the daemon must be able to rely on that this exit() happens after initialization is complete and all external communication channels are established and accessible.

    Err codemadness.org 70 i 39610
  • Err codemadness.org 70 i 39611
Err codemadness.org 70 i 39612 Err codemadness.org 70 i 39613
Err codemadness.org 70 i 39614

The discussed library does most of the above-mentioned initialisation steps as it becomes immediately evident that implementation details for some of them heavily dependent on the internal logic of an application itself, so it is not possible to implement them in a universal library. I believe it is not a flaw, though, as the missed parts are safe to implement in an application code.

Err codemadness.org 70 i 39615
Err codemadness.org 70 i 39616 Err codemadness.org 70 i 39617
    Err codemadness.org 70 i 39618
  • The Library’s Application Programming Interface
  • Err codemadness.org 70 i 39619
Err codemadness.org 70 i 39620 Err codemadness.org 70 i 39621
Err codemadness.org 70 i 39622

The generic programming interface was loosely modelled after above-mentioned BSD’s daemon() function. The library provides two user available functions (one is, in fact, implemented on top of the other) as well as a set of flags to control a daemon creation behaviour.

Err codemadness.org 70 i 39623
Err codemadness.org 70 i 39624 Err codemadness.org 70 i 39625
    Err codemadness.org 70 i 39626
  • Conclusion
  • Err codemadness.org 70 i 39627
Err codemadness.org 70 i 39628 Err codemadness.org 70 i 39629
Err codemadness.org 70 i 39630

The objective of the library is to hide all the trickery of programming a daemon so you could concentrate on the more creative parts of your application. I hope it does this well.
Err codemadness.org 70 i 39631 If you are not only interested in writing a daemon, but also want to make yourself familiar with the techniques which are used to accomplish that, the source code is available. Moreover, I would advise anyone, who starts developing for a UNIX environment to do that, as it shows many intricacies of programming for these platforms.

Err codemadness.org 70 i 39632
Err codemadness.org 70 i 39633 Err codemadness.org 70 i 39634


Err codemadness.org 70 i 39635 Err codemadness.org 70 i 39636

##News Roundup
Err codemadness.org 70 i 39637 ###EuroBSDCon 2018 travel report and obligatory pics

Err codemadness.org 70 i 39638 Err codemadness.org 70 i 39639
Err codemadness.org 70 i 39640

This was my first big BSD conference. We also planned - planned might be a big word - thought about doing a devsummit on Friday. Since the people who were in charge of that had a change of plans, I was sure it’d go horribly wrong.
Err codemadness.org 70 i 39641 The day before the devsummit and still in the wrong country, I mentioned the hours and venue on the wiki, and booked a reservation for a restaurant.
Err codemadness.org 70 i 39642 It turns out that everything was totally fine, and since the devsummit was at the conference venue (that was having tutorials that day), they even had signs pointing at the room we were given. Thanks EuroBSDCon conference organizers!
Err codemadness.org 70 i 39643 At the devsummit, we spent some time hacking. A few people came with “travel laptops” without access to anything, like Riastradh, so I gave him access to my own laptop. This didn’t hold very long and I kinda forgot about it, but for a few moments he had access to a NetBSD source tree and an 8 thread, 16GB RAM machine with which to build things.
Err codemadness.org 70 i 39644 We had a short introduction and I suggested we take some pictures, so here’s the ones we got. A few people were concerned about privacy, so they’re not pictured. We had small team to hold the camera :-)
Err codemadness.org 70 i 39645 At the actual conference days, I stayed at the speaker hotel with the other speakers. I’ve attempted to make conversation with some visibly FreeBSD/OpenBSD people, but didn’t have plans to talk about anything, so there was a lot of just following people silently.
Err codemadness.org 70 i 39646 Perhaps for the next conference I’ll prepare a list of questions to random BSD people and then very obviously grab a piece of paper and ask, “what was…”, read a bit from it, and say, “your latest kernel panic?”, I’m sure it’ll be a great conversation starter.
Err codemadness.org 70 i 39647 At the conference itself, was pretty cool to have folks like Kirk McKusick give first person accounts of some past events (Kirk gave a talk about governance at FreeBSD), or the second keynote by Ron Broersma.
Err codemadness.org 70 i 39648 My own talk was hastily prepared, it was difficult to bring the topic together into a coherent talk. Nevertheless, I managed to talk about stuff for a while 40 minutes, though usually I skip over so many details that I have trouble putting together a sufficiently long talk.
Err codemadness.org 70 i 39649 I mentioned some of my coolest bugs to solve (I should probably make a separate article about some!). A few people asked for the slides after the talk, so I guess it wasn’t totally incoherent.
Err codemadness.org 70 i 39650 It was really fun to meet some of my favourite NetBSD people. I got to show off my now fairly well working laptop (it took a lot of work by all of us!).
Err codemadness.org 70 i 39651 After the conference I came back with a conference cold, and it took a few days to recover from it. Hopefully I didn’t infect too many people on the way back.

Err codemadness.org 70 i 39652
Err codemadness.org 70 i 39653 Err codemadness.org 70 i 39654


Err codemadness.org 70 i 39655 Err codemadness.org 70 i 39656

###GhostBSD tested on real hardware T410 – better than TrueOS?

Err codemadness.org 70 i 39657 Err codemadness.org 70 i 39658
Err codemadness.org 70 i 39659

You might have heard about FreeBSD which is ultimately derived from UNIX back in the days. It is not Linux even though it is similar in many ways because Linux was designed to follow UNIX principles. Seeing is believing, so check out the video of the install and some apps as well!

Err codemadness.org 70 i 39660
Err codemadness.org 70 i 39661 Err codemadness.org 70 i 39662
Err codemadness.org 70 i 39663

Nowadays if you want some of that BSD on your personal desktop how to go about? Well there is a full package or distro called GhostBSD which is based on FreeBSD current with a Mate or XFCE desktop preconfigured. I did try another package called TrueOS before and you can check out my blog post as well.

Err codemadness.org 70 i 39664
Err codemadness.org 70 i 39665 Err codemadness.org 70 i 39666
Err codemadness.org 70 i 39667

Let’s give it a try on my Lenovo ThinkPad T410. You can download the latest version from ghostbsd.org. Creating a bootable USB drive was surprisingly difficult as rufus did not work and created a corrupted drive. You have to follow this procedure under Windows: download the 2.5GB .iso file and rename the extension to .img. Download Win32 Disk imager and burn the img file to an USB drive and boot from it. You will be able to start a live session and use the onboard setup to install GhostBSD unto a disk.

Err codemadness.org 70 i 39668
Err codemadness.org 70 i 39669 Err codemadness.org 70 i 39670
Err codemadness.org 70 i 39671

I did encounter some bugs or quirks along the way. The installer failed the first time for some unknown reason but worked on the second attempt. The first boot stopped upon initialization of the USB3 ports (the T410 does not have USB3) but I could use some ‘exit’ command line magic to continue. The second boot worked fine. Audio was only available through headphones, not speakers but that could partially be fixed using the command line again. Lot’s of installed apps did not show up in the start menu and on goes the quirks list.

Err codemadness.org 70 i 39672
Err codemadness.org 70 i 39673 Err codemadness.org 70 i 39674
Err codemadness.org 70 i 39675

Overall it is still better than TrueOS for me because drivers did work very well and I could address most of the existing bugs.

Err codemadness.org 70 i 39676
Err codemadness.org 70 i 39677 Err codemadness.org 70 i 39678
    Err codemadness.org 70 i 39679
  • Err codemadness.org 70 i 39680

    On the upside:

    Err codemadness.org 70 i 39681
  • Err codemadness.org 70 i 39682
  • Err codemadness.org 70 i 39683

    Free and open source FreeBSD package ready to go

    Err codemadness.org 70 i 39684
  • Err codemadness.org 70 i 39685
  • Err codemadness.org 70 i 39686

    Mate or XFCE desktop (Mate is the only option for daily builds)

    Err codemadness.org 70 i 39687
  • Err codemadness.org 70 i 39688
  • Err codemadness.org 70 i 39689

    Drivers work fine including LAN, WiFi, video 2D & 3D, audio, etc

    Err codemadness.org 70 i 39690
  • Err codemadness.org 70 i 39691
  • Err codemadness.org 70 i 39692

    UFS or ZFS advanced file systems available

    Err codemadness.org 70 i 39693
  • Err codemadness.org 70 i 39694
  • Err codemadness.org 70 i 39695

    Some downsides:

    Err codemadness.org 70 i 39696
  • Err codemadness.org 70 i 39697
  • Err codemadness.org 70 i 39698

    Less driver and direct app support than Linux

    Err codemadness.org 70 i 39699
  • Err codemadness.org 70 i 39700
  • Err codemadness.org 70 i 39701

    Installer and desktop have some quirks and bugs

    Err codemadness.org 70 i 39702
  • Err codemadness.org 70 i 39703
  • Err codemadness.org 70 i 39704

    App-store is cumbersome, inferior to TrueOS

    Err codemadness.org 70 i 39705
  • Err codemadness.org 70 i 39706
Err codemadness.org 70 i 39707 Err codemadness.org 70 i 39708


Err codemadness.org 70 i 39709 Err codemadness.org 70 i 39710

##Beastie Bits

Err codemadness.org 70 i 39711 Err codemadness.org 70 i 39712 Err codemadness.org 70 i 39728 Err codemadness.org 70 i 39729


Err codemadness.org 70 i 39730 Err codemadness.org 70 i 39731

##Feedback/Questions

Err codemadness.org 70 i 39732 Err codemadness.org 70 i 39733 Err codemadness.org 70 i 39738 Err codemadness.org 70 i 39739


Err codemadness.org 70 i 39740 Err codemadness.org 70 i 39741
    Err codemadness.org 70 i 39742
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 39743
Err codemadness.org 70 i 39744 Err codemadness.org 70 i 39745


]]> Err codemadness.org 70 i 39746
Err codemadness.org 70 i 39747 https://fireside.fm/player/v2/FYhhasNR+34EbQOOv Err codemadness.org 70 i 39748 Err codemadness.org 70 i 39749 ]]> Err codemadness.org 70 i 39750 Err codemadness.org 70 i 39751
Err codemadness.org 70 i 39752 Err codemadness.org 70 i 39753 Episode 268: Netcat Demystified | BSD Now 268 Err codemadness.org 70 i 39754 https://www.bsdnow.tv/268 Err codemadness.org 70 i 39755 http://feed.jupiter.zone/bsdnow#entry-2721 Err codemadness.org 70 i 39756 Tue, 16 Oct 2018 22:00:00 -0700 Err codemadness.org 70 i 39757 Allan Jude Err codemadness.org 70 i 39758 Err codemadness.org 70 i 39759 full Err codemadness.org 70 i 39760 Allan Jude Err codemadness.org 70 i 39761 6 metrics for zpool performance, 2FA with ssh on OpenBSD, ZFS maintaining file type information in dirs, everything old is new again, netcat demystified, and more. Err codemadness.org 70 i 39762 1:07:20 Err codemadness.org 70 i 39763 no Err codemadness.org 70 i 39764 Err codemadness.org 70 i 39765 6 metrics for zpool performance, 2FA with ssh on OpenBSD, ZFS maintaining file type information in dirs, everything old is new again, netcat demystified, and more. Err codemadness.org 70 i 39766 <p>##Headlines<br> Err codemadness.org 70 i 39767 <a href="https://www.ixsystems.com/blog/zfs-pool-performance-1/">Six Metrics for Measuring ZFS Pool Performance Part 1</a></p> Err codemadness.org 70 i 39768 <blockquote> Err codemadness.org 70 i 39769 <p>The layout of a ZFS storage pool has a significant impact on system performance under various workloads. Given the importance of picking the right configuration for your workload and the fact that making changes to an in-use ZFS pool is far from trivial, it is important for an administrator to understand the mechanics of pool performance when designing a storage system.</p> Err codemadness.org 70 i 39770 </blockquote> Err codemadness.org 70 i 39771 <ul> Err codemadness.org 70 i 39772 <li>To quantify pool performance, we will consider six primary metrics:</li> Err codemadness.org 70 i 39773 <li>Read I/O operations per second (IOPS)</li> Err codemadness.org 70 i 39774 <li>Write IOPS</li> Err codemadness.org 70 i 39775 <li>Streaming read speed</li> Err codemadness.org 70 i 39776 <li>Streaming write speed</li> Err codemadness.org 70 i 39777 <li>Storage space efficiency (usable capacity after parity versus total raw capacity)</li> Err codemadness.org 70 i 39778 <li>Fault tolerance (maximum number of drives that can fail before data loss)</li> Err codemadness.org 70 i 39779 <li>For the sake of comparison, we’ll use an example system with 12 drives, each one sized at 6TB, and say that each drive does 100MB/s streaming reads and writes and can do 250 read and write IOPS. We will visualize how the data is spread across the drives by writing 12 multi-colored blocks, shown below. The blocks are written to the pool starting with the brown block on the left (number one), and working our way to the pink block on the right (number 12).</li> Err codemadness.org 70 i 39780 </ul> Err codemadness.org 70 i 39781 <blockquote> Err codemadness.org 70 i 39782 <p>Note that when we calculate data rates and IOPS values for the example system, they are only approximations. Many other factors can impact pool access speeds for better (compression, caching) or worse (poor CPU performance, not enough memory).<br> Err codemadness.org 70 i 39783 There is no single configuration that maximizes all six metrics. Like so many things in life, our objective is to find an appropriate balance of the metrics to match a target workload. For example, a cold-storage backup system will likely want a pool configuration that emphasizes usable storage space and fault tolerance over the other data-rate focused metrics.<br> Err codemadness.org 70 i 39784 Let’s start with a quick review of ZFS storage pools before diving into specific configuration options. ZFS storage pools are comprised of one or more virtual devices, or vdevs. Each vdev is comprised of one or more storage providers, typically physical hard disks. All disk-level redundancy is configured at the vdev level. That is, the RAID layout is set on each vdev as opposed to on the storage pool. Data written to the storage pool is then striped across all the vdevs. Because pool data is striped across the vdevs, the loss of any one vdev means total pool failure. This is perhaps the single most important fact to keep in mind when designing a ZFS storage system. We will circle back to this point in the next post, but keep it in mind as we go through the vdev configuration options.<br> Err codemadness.org 70 i 39785 Because storage pools are made up of one or more vdevs with the pool data striped over the top, we’ll take a look at pool configuration in terms of various vdev configurations. There are three basic vdev configurations: striping, mirroring, and RAIDZ (which itself has three different varieties). The first section will cover striped and mirrored vdevs in this post; the second post will cover RAIDZ and some example scenarios.<br> Err codemadness.org 70 i 39786 A striped vdev is the simplest configuration. Each vdev consists of a single disk with no redundancy. When several of these single-disk, striped vdevs are combined into a single storage pool, the total usable storage space would be the sum of all the drives. When you write data to a pool made of striped vdevs, the data is broken into small chunks called “blocks” and distributed across all the disks in the pool. The blocks are written in “round-robin” sequence, meaning after all the disks receive one row of blocks, called a stripe, it loops back around and writes another stripe under the first. A striped pool has excellent performance and storage space efficiency, but absolutely zero fault tolerance. If even a single drive in the pool fails, the entire pool will fail and all data stored on that pool will be lost.<br> Err codemadness.org 70 i 39787 The excellent performance of a striped pool comes from the fact that all of the disks can work independently for all read and write operations. If you have a bunch of small read or write operations (IOPS), each disk can work independently to fetch the next block. For streaming reads and writes, each disk can fetch the next block in line synchronized with its neighbors. For example, if a given disk is fetching block n, its neighbor to the left can be fetching block n-1, and its neighbor to the right can be fetching block n+1. Therefore, the speed of all read and write operations as well as the quantity of read and write operations (IOPS) on a striped pool will scale with the number of vdevs. Note here that I said the speeds and IOPS scale with the number of vdevs rather than the number of drives; there’s a reason for this and we’ll cover it in the next post when we discuss RAID-Z.<br> Err codemadness.org 70 i 39788 Here’s a summary of the total pool performance (where N is the number of disks in the pool):</p> Err codemadness.org 70 i 39789 </blockquote> Err codemadness.org 70 i 39790 <ul> Err codemadness.org 70 i 39791 <li>N-wide striped:</li> Err codemadness.org 70 i 39792 <li>Read IOPS: N * Read IOPS of a single drive</li> Err codemadness.org 70 i 39793 <li>Write IOPS: N * Write IOPS of a single drive</li> Err codemadness.org 70 i 39794 <li>Streaming read speed: N * Streaming read speed of a single drive</li> Err codemadness.org 70 i 39795 <li>Streaming write speed: N * Streaming write speed of a single drive</li> Err codemadness.org 70 i 39796 <li>Storage space efficiency: 100%</li> Err codemadness.org 70 i 39797 <li>Fault tolerance: None!</li> Err codemadness.org 70 i 39798 </ul> Err codemadness.org 70 i 39799 <blockquote> Err codemadness.org 70 i 39800 <p>Let’s apply this to our example system, configured with a 12-wide striped pool:</p> Err codemadness.org 70 i 39801 </blockquote> Err codemadness.org 70 i 39802 <ul> Err codemadness.org 70 i 39803 <li>12-wide striped:</li> Err codemadness.org 70 i 39804 <li>Read IOPS: 3000</li> Err codemadness.org 70 i 39805 <li>Write IOPS: 3000</li> Err codemadness.org 70 i 39806 <li>Streaming read speed: 1200 MB/s</li> Err codemadness.org 70 i 39807 <li>Streaming write speed: 1200 MB/s</li> Err codemadness.org 70 i 39808 <li>Storage space efficiency: 72 TB</li> Err codemadness.org 70 i 39809 <li>Fault tolerance: None!</li> Err codemadness.org 70 i 39810 <li>Below is a visual depiction of our 12 rainbow blocks written to this pool configuration:</li> Err codemadness.org 70 i 39811 </ul> Err codemadness.org 70 i 39812 <blockquote> Err codemadness.org 70 i 39813 <p>The blocks are simply striped across the 12 disks in the pool. The LBA column on the left stands for “Logical Block Address”. If we treat each disk as a column in an array, each LBA would be a row. It’s also easy to see that if any single disk fails, we would be missing a color in the rainbow and our data would be incomplete. While this configuration has fantastic read and write speeds and can handle a ton of IOPS, the data stored on the pool is very vulnerable. This configuration is not recommended unless you’re comfortable losing all of your pool’s data whenever any single drive fails.<br> Err codemadness.org 70 i 39814 A mirrored vdev consists of two or more disks. A mirrored vdev stores an exact copy of all the data written to it on each one of its drives. Traditional RAID-1 mirrors usually only support two drive mirrors, but ZFS allows for more drives per mirror to increase redundancy and fault tolerance. All disks in a mirrored vdev have to fail for the vdev, and thus the whole pool, to fail. Total storage space will be equal to the size of a single drive in the vdev. If you’re using mismatched drive sizes in your mirrors, the total size will be that of the smallest drive in the mirror.<br> Err codemadness.org 70 i 39815 Streaming read speeds and read IOPS on a mirrored vdev will be faster than write speeds and IOPS. When reading from a mirrored vdev, the drives can “divide and conquer” the operations, similar to what we saw above in the striped pool. This is because each drive in the mirror has an identical copy of the data. For write operations, all of the drives need to write a copy of the data, so the mirrored vdev will be limited to the streaming write speed and IOPS of a single disk.</p> Err codemadness.org 70 i 39816 </blockquote> Err codemadness.org 70 i 39817 <blockquote> Err codemadness.org 70 i 39818 <p>Here’s a summary:</p> Err codemadness.org 70 i 39819 </blockquote> Err codemadness.org 70 i 39820 <ul> Err codemadness.org 70 i 39821 <li> Err codemadness.org 70 i 39822 <p>N-way mirror:</p> Err codemadness.org 70 i 39823 </li> Err codemadness.org 70 i 39824 <li> Err codemadness.org 70 i 39825 <p>Read IOPS: N * Read IOPS of a single drive</p> Err codemadness.org 70 i 39826 </li> Err codemadness.org 70 i 39827 <li> Err codemadness.org 70 i 39828 <p>Write IOPS: Write IOPS of a single drive</p> Err codemadness.org 70 i 39829 </li> Err codemadness.org 70 i 39830 <li> Err codemadness.org 70 i 39831 <p>Streaming read speed: N * Streaming read speed of a single drive</p> Err codemadness.org 70 i 39832 </li> Err codemadness.org 70 i 39833 <li> Err codemadness.org 70 i 39834 <p>Streaming write speed: Streaming write speed of a single drive</p> Err codemadness.org 70 i 39835 </li> Err codemadness.org 70 i 39836 <li> Err codemadness.org 70 i 39837 <p>Storage space efficiency: 50% for 2-way, 33% for 3-way, 25% for 4-way, etc. [(N-1)/N]</p> Err codemadness.org 70 i 39838 </li> Err codemadness.org 70 i 39839 <li> Err codemadness.org 70 i 39840 <p>Fault tolerance: 1 disk per vdev for 2-way, 2 for 3-way, 3 for 4-way, etc. [N-1]</p> Err codemadness.org 70 i 39841 </li> Err codemadness.org 70 i 39842 <li> Err codemadness.org 70 i 39843 <p>For our first example configuration, let’s do something ridiculous and create a 12-way mirror. ZFS supports this kind of thing, but your management probably will not.</p> Err codemadness.org 70 i 39844 </li> Err codemadness.org 70 i 39845 <li> Err codemadness.org 70 i 39846 <p>1x 12-way mirror:</p> Err codemadness.org 70 i 39847 </li> Err codemadness.org 70 i 39848 <li> Err codemadness.org 70 i 39849 <p>Read IOPS: 3000</p> Err codemadness.org 70 i 39850 </li> Err codemadness.org 70 i 39851 <li> Err codemadness.org 70 i 39852 <p>Write IOPS: 250</p> Err codemadness.org 70 i 39853 </li> Err codemadness.org 70 i 39854 <li> Err codemadness.org 70 i 39855 <p>Streaming read speed: 1200 MB/s</p> Err codemadness.org 70 i 39856 </li> Err codemadness.org 70 i 39857 <li> Err codemadness.org 70 i 39858 <p>Streaming write speed: 100 MB/s</p> Err codemadness.org 70 i 39859 </li> Err codemadness.org 70 i 39860 <li> Err codemadness.org 70 i 39861 <p>Storage space efficiency: 8.3% (6 TB)</p> Err codemadness.org 70 i 39862 </li> Err codemadness.org 70 i 39863 <li> Err codemadness.org 70 i 39864 <p>Fault tolerance: 11</p> Err codemadness.org 70 i 39865 </li> Err codemadness.org 70 i 39866 </ul> Err codemadness.org 70 i 39867 <blockquote> Err codemadness.org 70 i 39868 <p>As we can clearly see from the diagram, every single disk in the vdev gets a full copy of our rainbow data. The chainlink icons between the disk labels in the column headers indicate the disks are part of a single vdev. We can lose up to 11 disks in this vdev and still have a complete rainbow. Of course, the data takes up far too much room on the pool, occupying a full 12 LBAs in the data array.</p> Err codemadness.org 70 i 39869 </blockquote> Err codemadness.org 70 i 39870 <blockquote> Err codemadness.org 70 i 39871 <p>Obviously, this is far from the best use of 12 drives. Let’s do something a little more practical and configure the pool with the ZFS equivalent of RAID-10. We’ll configure six 2-way mirror vdevs. ZFS will stripe the data across all 6 of the vdevs. We can use the work we did in the striped vdev section to determine how the pool as a whole will behave. Let’s first calculate the performance per vdev, then we can work on the full pool:</p> Err codemadness.org 70 i 39872 </blockquote> Err codemadness.org 70 i 39873 <ul> Err codemadness.org 70 i 39874 <li> Err codemadness.org 70 i 39875 <p>1x 2-way mirror:</p> Err codemadness.org 70 i 39876 </li> Err codemadness.org 70 i 39877 <li> Err codemadness.org 70 i 39878 <p>Read IOPS: 500</p> Err codemadness.org 70 i 39879 </li> Err codemadness.org 70 i 39880 <li> Err codemadness.org 70 i 39881 <p>Write IOPS: 250</p> Err codemadness.org 70 i 39882 </li> Err codemadness.org 70 i 39883 <li> Err codemadness.org 70 i 39884 <p>Streaming read speed: 200 MB/s</p> Err codemadness.org 70 i 39885 </li> Err codemadness.org 70 i 39886 <li> Err codemadness.org 70 i 39887 <p>Streaming write speed: 100 MB/s</p> Err codemadness.org 70 i 39888 </li> Err codemadness.org 70 i 39889 <li> Err codemadness.org 70 i 39890 <p>Storage space efficiency: 50% (6 TB)</p> Err codemadness.org 70 i 39891 </li> Err codemadness.org 70 i 39892 <li> Err codemadness.org 70 i 39893 <p>Fault tolerance: 1</p> Err codemadness.org 70 i 39894 </li> Err codemadness.org 70 i 39895 <li> Err codemadness.org 70 i 39896 <p>Now we can pretend we have 6 drives with the performance statistics listed above and run them through our striped vdev performance calculator to get the total pool’s performance:</p> Err codemadness.org 70 i 39897 </li> Err codemadness.org 70 i 39898 <li> Err codemadness.org 70 i 39899 <p>6x 2-way mirror:</p> Err codemadness.org 70 i 39900 </li> Err codemadness.org 70 i 39901 <li> Err codemadness.org 70 i 39902 <p>Read IOPS: 3000</p> Err codemadness.org 70 i 39903 </li> Err codemadness.org 70 i 39904 <li> Err codemadness.org 70 i 39905 <p>Write IOPS: 1500</p> Err codemadness.org 70 i 39906 </li> Err codemadness.org 70 i 39907 <li> Err codemadness.org 70 i 39908 <p>Streaming read speed: 3000 MB/s</p> Err codemadness.org 70 i 39909 </li> Err codemadness.org 70 i 39910 <li> Err codemadness.org 70 i 39911 <p>Streaming write speed: 1500 MB/s</p> Err codemadness.org 70 i 39912 </li> Err codemadness.org 70 i 39913 <li> Err codemadness.org 70 i 39914 <p>Storage space efficiency: 50% (36 TB)</p> Err codemadness.org 70 i 39915 </li> Err codemadness.org 70 i 39916 <li> Err codemadness.org 70 i 39917 <p>Fault tolerance: 1 per vdev, 6 total</p> Err codemadness.org 70 i 39918 </li> Err codemadness.org 70 i 39919 <li> Err codemadness.org 70 i 39920 <p>Again, we will examine the configuration from a visual perspective:</p> Err codemadness.org 70 i 39921 </li> Err codemadness.org 70 i 39922 </ul> Err codemadness.org 70 i 39923 <blockquote> Err codemadness.org 70 i 39924 <p>Each vdev gets a block of data and ZFS writes that data to all of (or in this case, both of) the disks in the mirror. As long as we have at least one functional disk in each vdev, we can retrieve our rainbow. As before, the chain link icons denote the disks are part of a single vdev. This configuration emphasizes performance over raw capacity but doesn’t totally disregard fault tolerance as our striped pool did. It’s a very popular configuration for systems that need a lot of fast I/O. Let’s look at one more example configuration using four 3-way mirrors. We’ll skip the individual vdev performance calculation and go straight to the full pool:</p> Err codemadness.org 70 i 39925 </blockquote> Err codemadness.org 70 i 39926 <ul> Err codemadness.org 70 i 39927 <li>4x 3-way mirror:</li> Err codemadness.org 70 i 39928 <li>Read IOPS: 3000</li> Err codemadness.org 70 i 39929 <li>Write IOPS: 1000</li> Err codemadness.org 70 i 39930 <li>Streaming read speed: 3000 MB/s</li> Err codemadness.org 70 i 39931 <li>Streaming write speed: 400 MB/s</li> Err codemadness.org 70 i 39932 <li>Storage space efficiency: 33% (24 TB)</li> Err codemadness.org 70 i 39933 <li>Fault tolerance: 2 per vdev, 8 total</li> Err codemadness.org 70 i 39934 </ul> Err codemadness.org 70 i 39935 <blockquote> Err codemadness.org 70 i 39936 <p>While we have sacrificed some write performance and capacity, the pool is now extremely fault tolerant. This configuration is probably not practical for most applications and it would make more sense to use lower fault tolerance and set up an offsite backup system.<br> Err codemadness.org 70 i 39937 Striped and mirrored vdevs are fantastic for access speed performance, but they either leave you with no redundancy whatsoever or impose at least a 50% penalty on the total usable space of your pool. In the next post, we will cover RAIDZ, which lets you keep data redundancy without sacrificing as much storage space efficiency. We’ll also look at some example workload scenarios and decide which layout would be the best fit for each.</p> Err codemadness.org 70 i 39938 </blockquote> Err codemadness.org 70 i 39939 <hr> Err codemadness.org 70 i 39940 <p>###<a href="https://chown.me/blog/2FA-with-ssh-on-OpenBSD.html">2FA with ssh on OpenBSD</a></p> Err codemadness.org 70 i 39941 <blockquote> Err codemadness.org 70 i 39942 <p>Five years ago I wrote about using a yubikey on OpenBSD. The only problem with doing this is that there’s no validation server available on OpenBSD, so you need to use a different OTP slot for each machine. (You don’t want to risk a replay attack if someone succeeds in capturing an OTP on one machine, right?) Yubikey has two OTP slots per device, so you would need a yubikey for every two machines with which you’d like to use it. You could use a bastion—and use only one yubikey—but I don’t like the SPOF aspect of a bastion. YMMV.<br> Err codemadness.org 70 i 39943 After I played with TOTP, I wanted to use them as a 2FA for ssh. At the time of writing, we can’t do that using only the tools in base. This article focuses on OpenBSD; if you use another operating system, here are two handy links.</p> Err codemadness.org 70 i 39944 </blockquote> Err codemadness.org 70 i 39945 <ul> Err codemadness.org 70 i 39946 <li>SEED CONFIGURATION</li> Err codemadness.org 70 i 39947 </ul> Err codemadness.org 70 i 39948 <blockquote> Err codemadness.org 70 i 39949 <p>The first thing we need to do is to install the software which will be used to verify the OTPs we submit.</p> Err codemadness.org 70 i 39950 </blockquote> Err codemadness.org 70 i 39951 <p><code># pkgadd loginoath</code></p> Err codemadness.org 70 i 39952 <blockquote> Err codemadness.org 70 i 39953 <p>We need to create a secret - aka, the seed - that will be used to calculate the Time-based One-Time Passwords. We should make sure no one can read or change it.</p> Err codemadness.org 70 i 39954 </blockquote> Err codemadness.org 70 i 39955 <p><code>$ openssl rand -hex 20 &gt; ~/.totp-key</code><br> Err codemadness.org 70 i 39956 <code>$ chmod 400 ~/.totp-key</code></p> Err codemadness.org 70 i 39957 <blockquote> Err codemadness.org 70 i 39958 <p>Now we have a hexadecimal key, but apps usually want a base32 secret. I initially wrote a small script to do the conversion.<br> Err codemadness.org 70 i 39959 While writing this article, I took the opportunity to improve it. When I initially wrote this utility for my use, python-qrcode hadn’t yet been imported to the OpenBSD ports/packages system. It’s easy to install now, so let’s use it.<br> Err codemadness.org 70 i 39960 Here’s the improved version. It will ask for the hex key and output the secret as a base32-encoded string, both with and without spacing so you can copy-paste it into your password manager or easily retype it. It will then ask for the information needed to generate a QR code. Adding our new OTP secret to any mobile app using the QR code will be super easy!</p> Err codemadness.org 70 i 39961 </blockquote> Err codemadness.org 70 i 39962 <ul> Err codemadness.org 70 i 39963 <li>SYSTEM CONFIGURATION</li> Err codemadness.org 70 i 39964 </ul> Err codemadness.org 70 i 39965 <blockquote> Err codemadness.org 70 i 39966 <p>We can now move to the configuration of the system to put our new TOTP to use. As you might guess, it’s going to be quite close to what we did with the yubikey.<br> Err codemadness.org 70 i 39967 We need to tweak login.conf. Be careful and keep a root shell open at all times. The few times I broke my OpenBSD were because I messed with login.conf without showing enough care.</p> Err codemadness.org 70 i 39968 </blockquote> Err codemadness.org 70 i 39969 <ul> Err codemadness.org 70 i 39970 <li>SSHD CONFIGURATION</li> Err codemadness.org 70 i 39971 </ul> Err codemadness.org 70 i 39972 <blockquote> Err codemadness.org 70 i 39973 <p>Again, keeping a root shell around decreases the risk of losing access to the system and being locked outside.<br> Err codemadness.org 70 i 39974 A good standard is to use PasswordAuthentication no and to use public key only. Except… have a guess what the P stands for in TOTP. Yes, congrats, you guessed it!<br> Err codemadness.org 70 i 39975 We need to switch to PasswordAuthentication yes. However, if we made this change alone, sshd would then accept a public key OR a password (which are TOTP because of our login.conf). 2FA uses both at the same time.<br> Err codemadness.org 70 i 39976 To inform sshd we intend to use both, we need to set AuthenticationMethods publickey,password. This way, the user trying to login will first need to perform the traditional publickey authentication. Once that’s done, ssh will prompt for a password and the user will need to submit a valid TOTP for the system.<br> Err codemadness.org 70 i 39977 We could do this the other way around, but I think bots could try passwords, wasting resources. Evaluated in this order, failing to provide a public key leads to sshd immediately declining your attempt.</p> Err codemadness.org 70 i 39978 </blockquote> Err codemadness.org 70 i 39979 <ul> Err codemadness.org 70 i 39980 <li>IMPROVING SECURITY WITHOUT IMPACTING UX</li> Err codemadness.org 70 i 39981 </ul> Err codemadness.org 70 i 39982 <blockquote> Err codemadness.org 70 i 39983 <p>My phone has a long enough password that most of the time, I fail to type it correctly on the first try. Of course, if I had to unlock my phone, launch my TOTP app and use my keyboard to enter what I see on my phone’s screen, I would quickly disable 2FA.<br> Err codemadness.org 70 i 39984 To find a balance, I have whitelisted certain IP addresses and users. If I connect from a particular IP address or as a specific user, I don’t want to go through 2FA. For some users, I might not even enable 2FA.<br> Err codemadness.org 70 i 39985 To sum up, we covered how to create a seed, how to perform a hexadecimal to base32 conversion and how to create a QR code for mobile applications. We configured the login system with login.conf so that ssh authentication uses the TOTP login system, and we told sshd to ask for both the public key and the Time-based One-Time Password. Now you should be all set to use two-factor ssh authentication on OpenBSD!</p> Err codemadness.org 70 i 39986 </blockquote> Err codemadness.org 70 i 39987 <hr> Err codemadness.org 70 i 39988 <p>##News Roundup<br> Err codemadness.org 70 i 39989 <a href="https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSAndDirectoryDType">How ZFS maintains file type information in directories</a></p> Err codemadness.org 70 i 39990 <blockquote> Err codemadness.org 70 i 39991 <p>As an aside in yesterday’s history of file type information being available in Unix directories, I mentioned that it was possible for a filesystem to support this even though its Unix didn’t. By supporting it, I mean that the filesystem maintains this information in its on disk format for directories, even though the rest of the kernel will never ask for it. This is what ZFS does.<br> Err codemadness.org 70 i 39992 The easiest way to see that ZFS does this is to use zdb to dump a directory. I’m going to do this on an OmniOS machine, to make it more convincing, and it turns out that this has some interesting results. Since this is OmniOS, we don’t have the convenience of just naming a directory in zdb, so let’s find the root directory of a filesystem, starting from dnode 1 (as seen before).</p> Err codemadness.org 70 i 39993 </blockquote> Err codemadness.org 70 i 39994 <p><code># zdb -dddd fs3-corestaff-01/h/281 1</code><br> Err codemadness.org 70 i 39995 <code>Dataset [....]</code><br> Err codemadness.org 70 i 39996 <code>[...]</code><br> Err codemadness.org 70 i 39997 <code>microzap: 512 bytes, 4 entries</code><br> Err codemadness.org 70 i 39998 <code>[...]</code><br> Err codemadness.org 70 i 39999 <code>ROOT = 3</code><br> Err codemadness.org 70 i 40000 <code></code><br> Err codemadness.org 70 i 40001 <code># zdb -dddd fs3-corestaff-01/h/281 3</code><br> Err codemadness.org 70 i 40002 <code>Object lvl iblk dblk dsize lsize %full type</code><br> Err codemadness.org 70 i 40003 <code>3 1 16K 1K 8K 1K 100.00 ZFS directory</code><br> Err codemadness.org 70 i 40004 <code>[...]</code><br> Err codemadness.org 70 i 40005 <code>microzap: 1024 bytes, 8 entries</code><br> Err codemadness.org 70 i 40006 <code></code><br> Err codemadness.org 70 i 40007 <code>RESTORED = 4396504 (type: Directory)</code><br> Err codemadness.org 70 i 40008 <code>ckstst = 12017 (type: not specified)</code><br> Err codemadness.org 70 i 40009 <code>ckstst3 = 25069 (type: Directory)</code><br> Err codemadness.org 70 i 40010 <code>.demo-file = 5832188 (type: Regular File)</code><br> Err codemadness.org 70 i 40011 <code>.peergroup = 12590 (type: not specified)</code><br> Err codemadness.org 70 i 40012 <code>cks = 5 (type: not specified)</code><br> Err codemadness.org 70 i 40013 <code>cksimap1 = 5247832 (type: Directory)</code><br> Err codemadness.org 70 i 40014 <code>.diskuse = 12016 (type: not specified)</code><br> Err codemadness.org 70 i 40015 <code>ckstst2 = 12535 (type: not specified)</code></p> Err codemadness.org 70 i 40016 <blockquote> Err codemadness.org 70 i 40017 <p>This is actually an old filesystem (it dates from Solaris 10 and has been transferred around with ‘zfs send | zfs recv’ since then), but various home directories for real and test users have been created in it over time (you can probably guess which one is the oldest one). Sufficiently old directories and files have no file type information, but more recent ones have this information, including .demo-file, which I made just now so this would have an entry that was a regular file with type information.<br> Err codemadness.org 70 i 40018 Once I dug into it, this turned out to be a change introduced (or activated) in ZFS filesystem version 2, which is described in ‘zfs upgrade -v’ as ‘enhanced directory entries’. As an actual change in (Open)Solaris, it dates from mid 2007, although I’m not sure what Solaris release it made it into. The upshot is that if you made your ZFS filesystem any time in the last decade, you’ll have this file type information in your directories.<br> Err codemadness.org 70 i 40019 How ZFS stores this file type information is interesting and clever, especially when it comes to backwards compatibility. I’ll start by quoting the comment from zfs_znode.h:</p> Err codemadness.org 70 i 40020 </blockquote> Err codemadness.org 70 i 40021 <p><code>/*</code><br> Err codemadness.org 70 i 40022 <code>* The directory entry has the type (currently unused on</code><br> Err codemadness.org 70 i 40023 <code>* Solaris) in the top 4 bits, and the object number in</code><br> Err codemadness.org 70 i 40024 <code>* the low 48 bits. The &quot;middle&quot; 12 bits are unused.</code><br> Err codemadness.org 70 i 40025 <code>*/</code></p> Err codemadness.org 70 i 40026 <blockquote> Err codemadness.org 70 i 40027 <p>In yesterday’s entry I said that Unix directory entries need to store at least the filename and the inode number of the file. What ZFS is doing here is reusing the 64 bit field used for the ‘inode’ (the ZFS dnode number) to also store the file type, because it knows that object numbers have only a limited range. This also makes old directory entries compatible, by making type 0 (all 4 bits 0) mean ‘not specified’. Since old directory entries only stored the object number and the object number is 48 bits or less, the higher bits are guaranteed to be all zero.<br> Err codemadness.org 70 i 40028 The reason this needed a new ZFS filesystem version is now clear. If you tried to read directory entries with file type information on a version of ZFS that didn’t know about them, the old version would likely see crazy (and non-existent) object numbers and nothing would work. In order to even read a ‘file type in directory entries’ filesystem, you need to know to only look at the low 48 bits of the object number field in directory entries.</p> Err codemadness.org 70 i 40029 </blockquote> Err codemadness.org 70 i 40030 <hr> Err codemadness.org 70 i 40031 <p>###<a href="https://euroquis.nl/bobulate/?p=1976">Everything old is new again</a></p> Err codemadness.org 70 i 40032 <blockquote> Err codemadness.org 70 i 40033 <p>Just because KDE4-era software has been deprecated by the KDE-FreeBSD team in the official ports-repository, doesn’t mean we don’t care for it while we still need to. KDE4 was released on January 11th, 2008 — I still have the T-shirt — which was a very different C++ world than what we now live in. Much of the code pre-dates the availability of C<ins>11 — certainly the availability of compilers with C</ins>11 support. The language has changed a great deal in those ten years since the original release.<br> Err codemadness.org 70 i 40034 The platforms we run KDE code on have, too — FreeBSD 12 is a long way from the FreeBSD 6 or 7 that were current at release (although at the time, I was more into OpenSolaris). In particular, since then the FreeBSD world has switched over to Clang, and FreeBSD current is experimenting with Clang 7. So we’re seeing KDE4-era code being built, and running, on FreeBSD 12 with Clang 7. That’s a platform with a very different idea of what constitutes correct code, than what the code was originally written for. (Not quite as big a difference as Helio’s KDE1 efforts, though)<br> Err codemadness.org 70 i 40035 So, while we’re counting down to removing KDE4 from the FreeBSD ports tree, we’re also going through and fixing it to work with Clang 7, which defaults to a newer C++ standard and which is quite picky about some things. Some time in the distant past, when pointers were integers and NULL was zero, there was some confusion about booleans. So there’s lots of code that does list.contains(element) &gt; 0 … this must have been a trick before booleans were a supported type in all our compilers. In any case it breaks with Clang 7, since contains() returns a QBool which converts to a nullptr (when false) which isn’t comparable to the integer 0. Suffice to say I’ve spent more time reading KDE4-era code this month, than in the past two years.<br> Err codemadness.org 70 i 40036 However, work is proceeding apace, so if you really really want to, you can still get your old-school kicks on a new platform. Because we care about packaging things right, even when we want to get rid of it.</p> Err codemadness.org 70 i 40037 </blockquote> Err codemadness.org 70 i 40038 <hr> Err codemadness.org 70 i 40039 <p>###<a href="https://nanxiao.gitbooks.io/openbsd-netcat-demystified/">OpenBSD netcat demystified</a></p> Err codemadness.org 70 i 40040 <blockquote> Err codemadness.org 70 i 40041 <p>Owing to its versatile functionalities, netcat earns the reputation as “TCP/IP Swiss army knife”. For example, you can create a simple chat app using netcat:</p> Err codemadness.org 70 i 40042 </blockquote> Err codemadness.org 70 i 40043 <ul> Err codemadness.org 70 i 40044 <li>(1) Open a terminal and input following command:</li> Err codemadness.org 70 i 40045 </ul> Err codemadness.org 70 i 40046 <p><code># nc -l 3003</code></p> Err codemadness.org 70 i 40047 <blockquote> Err codemadness.org 70 i 40048 <p>This means a netcat process will listen on 3003 port in this machine (the IP address of current machine is 192.168.35.176).</p> Err codemadness.org 70 i 40049 </blockquote> Err codemadness.org 70 i 40050 <ul> Err codemadness.org 70 i 40051 <li>(2) Connect aforemontioned netcat process in another machine, and send a greeting:</li> Err codemadness.org 70 i 40052 </ul> Err codemadness.org 70 i 40053 <p><code># nc 192.168.35.176 3003</code><br> Err codemadness.org 70 i 40054 <code>hello</code></p> Err codemadness.org 70 i 40055 <blockquote> Err codemadness.org 70 i 40056 <p>Then in the first machine’s terminal, you will see the “hello” text:</p> Err codemadness.org 70 i 40057 </blockquote> Err codemadness.org 70 i 40058 <p><code># nc -l 3003</code><br> Err codemadness.org 70 i 40059 <code>hello</code></p> Err codemadness.org 70 i 40060 <blockquote> Err codemadness.org 70 i 40061 <p>A primitive chatroom is built successfully. Very cool! Isn’t it? I think many people can’t wait to explore more features of netcatnow. If you are among them, congratulations! This tutorial may be the correct place for you.<br> Err codemadness.org 70 i 40062 In the following parts, I will delve into OpenBSD’s netcatcode to give a detailed anatomy of it. The reason of picking OpenBSD’s netcat rather than others’ is because its code repository is small (~2000 lines of code) and neat. Furthermore, I also hope this little book can assist you learn more socket programming knowledge not just grasping usage of netcat.<br> Err codemadness.org 70 i 40063 We’re all set. Let’s go!</p> Err codemadness.org 70 i 40064 </blockquote> Err codemadness.org 70 i 40065 <hr> Err codemadness.org 70 i 40066 <p>##Beastie Bits</p> Err codemadness.org 70 i 40067 <ul> Err codemadness.org 70 i 40068 <li><a href="https://www.geeklan.co.uk/files/eurobsdcon2018.pdf">What’s in store for NetBSD 9.0</a></li> Err codemadness.org 70 i 40069 <li><a href="https://mail-index.netbsd.org/netbsd-advocacy/2018/09/25/msg000783.html">NetBSD machines at Open Source Conference 2018 Hiroshima</a></li> Err codemadness.org 70 i 40070 <li><a href="http://vincentdelft.be/post/post_20180922">nmctl adapted with limited privileges: nmctl-0.6.0</a></li> Err codemadness.org 70 i 40071 <li><a href="https://www.freebsdfoundation.org/blog/submit-your-work-check-out-scale-17x-and-fosdem-19-cfps/">Submit Your Work: Check out SCALE 17x and FOSDEM ’19 CFPs</a></li> Err codemadness.org 70 i 40072 <li><a href="https://www.openbsd.org/64.html">OpenBSD 6.4 site is up! (with a partial list of new features)</a></li> Err codemadness.org 70 i 40073 <li><a href="https://www.blackcatenterprises.us/using-alpine-to-read-your-email/">Using Alpine to Read Your Email on OpenBSD</a></li> Err codemadness.org 70 i 40074 </ul> Err codemadness.org 70 i 40075 <hr> Err codemadness.org 70 i 40076 <p>##Feedback/Questions</p> Err codemadness.org 70 i 40077 <ul> Err codemadness.org 70 i 40078 <li>Morgan - <a href="http://dpaste.com/0EXPWQK#wrap">Send/Receive to Manage Fragmentation?</a></li> Err codemadness.org 70 i 40079 <li>Ryan - <a href="http://dpaste.com/0B6C0Y0">ZFS and mmap</a></li> Err codemadness.org 70 i 40080 <li>Marcus - <a href="http://dpaste.com/1DT26S8#wrap">Linux Compat</a></li> Err codemadness.org 70 i 40081 <li>Ben - <a href="http://dpaste.com/20GTHZE#wrap">Multiple Pools</a></li> Err codemadness.org 70 i 40082 </ul> Err codemadness.org 70 i 40083 <hr> Err codemadness.org 70 i 40084 <ul> Err codemadness.org 70 i 40085 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 40086 </ul> Err codemadness.org 70 i 40087 <hr> Err codemadness.org 70 i 40088 Err codemadness.org 70 i 40089 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, netcat, kde yubikey, 2fa, ssh, zfs, performance Err codemadness.org 70 i 40090 Err codemadness.org 70 i 40091 6 metrics for zpool performance, 2FA with ssh on OpenBSD, ZFS maintaining file type information in dirs, everything old is new again, netcat demystified, and more.

Err codemadness.org 70 i 40092 Err codemadness.org 70 i 40093

##Headlines
Err codemadness.org 70 i 40094 ###Six Metrics for Measuring ZFS Pool Performance Part 1

Err codemadness.org 70 i 40095 Err codemadness.org 70 i 40096
Err codemadness.org 70 i 40097

The layout of a ZFS storage pool has a significant impact on system performance under various workloads. Given the importance of picking the right configuration for your workload and the fact that making changes to an in-use ZFS pool is far from trivial, it is important for an administrator to understand the mechanics of pool performance when designing a storage system.

Err codemadness.org 70 i 40098
Err codemadness.org 70 i 40099 Err codemadness.org 70 i 40100
    Err codemadness.org 70 i 40101
  • To quantify pool performance, we will consider six primary metrics:
  • Err codemadness.org 70 i 40102
  • Read I/O operations per second (IOPS)
  • Err codemadness.org 70 i 40103
  • Write IOPS
  • Err codemadness.org 70 i 40104
  • Streaming read speed
  • Err codemadness.org 70 i 40105
  • Streaming write speed
  • Err codemadness.org 70 i 40106
  • Storage space efficiency (usable capacity after parity versus total raw capacity)
  • Err codemadness.org 70 i 40107
  • Fault tolerance (maximum number of drives that can fail before data loss)
  • Err codemadness.org 70 i 40108
  • For the sake of comparison, we’ll use an example system with 12 drives, each one sized at 6TB, and say that each drive does 100MB/s streaming reads and writes and can do 250 read and write IOPS. We will visualize how the data is spread across the drives by writing 12 multi-colored blocks, shown below. The blocks are written to the pool starting with the brown block on the left (number one), and working our way to the pink block on the right (number 12).
  • Err codemadness.org 70 i 40109
Err codemadness.org 70 i 40110 Err codemadness.org 70 i 40111
Err codemadness.org 70 i 40112

Note that when we calculate data rates and IOPS values for the example system, they are only approximations. Many other factors can impact pool access speeds for better (compression, caching) or worse (poor CPU performance, not enough memory).
Err codemadness.org 70 i 40113 There is no single configuration that maximizes all six metrics. Like so many things in life, our objective is to find an appropriate balance of the metrics to match a target workload. For example, a cold-storage backup system will likely want a pool configuration that emphasizes usable storage space and fault tolerance over the other data-rate focused metrics.
Err codemadness.org 70 i 40114 Let’s start with a quick review of ZFS storage pools before diving into specific configuration options. ZFS storage pools are comprised of one or more virtual devices, or vdevs. Each vdev is comprised of one or more storage providers, typically physical hard disks. All disk-level redundancy is configured at the vdev level. That is, the RAID layout is set on each vdev as opposed to on the storage pool. Data written to the storage pool is then striped across all the vdevs. Because pool data is striped across the vdevs, the loss of any one vdev means total pool failure. This is perhaps the single most important fact to keep in mind when designing a ZFS storage system. We will circle back to this point in the next post, but keep it in mind as we go through the vdev configuration options.
Err codemadness.org 70 i 40115 Because storage pools are made up of one or more vdevs with the pool data striped over the top, we’ll take a look at pool configuration in terms of various vdev configurations. There are three basic vdev configurations: striping, mirroring, and RAIDZ (which itself has three different varieties). The first section will cover striped and mirrored vdevs in this post; the second post will cover RAIDZ and some example scenarios.
Err codemadness.org 70 i 40116 A striped vdev is the simplest configuration. Each vdev consists of a single disk with no redundancy. When several of these single-disk, striped vdevs are combined into a single storage pool, the total usable storage space would be the sum of all the drives. When you write data to a pool made of striped vdevs, the data is broken into small chunks called “blocks” and distributed across all the disks in the pool. The blocks are written in “round-robin” sequence, meaning after all the disks receive one row of blocks, called a stripe, it loops back around and writes another stripe under the first. A striped pool has excellent performance and storage space efficiency, but absolutely zero fault tolerance. If even a single drive in the pool fails, the entire pool will fail and all data stored on that pool will be lost.
Err codemadness.org 70 i 40117 The excellent performance of a striped pool comes from the fact that all of the disks can work independently for all read and write operations. If you have a bunch of small read or write operations (IOPS), each disk can work independently to fetch the next block. For streaming reads and writes, each disk can fetch the next block in line synchronized with its neighbors. For example, if a given disk is fetching block n, its neighbor to the left can be fetching block n-1, and its neighbor to the right can be fetching block n+1. Therefore, the speed of all read and write operations as well as the quantity of read and write operations (IOPS) on a striped pool will scale with the number of vdevs. Note here that I said the speeds and IOPS scale with the number of vdevs rather than the number of drives; there’s a reason for this and we’ll cover it in the next post when we discuss RAID-Z.
Err codemadness.org 70 i 40118 Here’s a summary of the total pool performance (where N is the number of disks in the pool):

Err codemadness.org 70 i 40119
Err codemadness.org 70 i 40120 Err codemadness.org 70 i 40121
    Err codemadness.org 70 i 40122
  • N-wide striped:
  • Err codemadness.org 70 i 40123
  • Read IOPS: N * Read IOPS of a single drive
  • Err codemadness.org 70 i 40124
  • Write IOPS: N * Write IOPS of a single drive
  • Err codemadness.org 70 i 40125
  • Streaming read speed: N * Streaming read speed of a single drive
  • Err codemadness.org 70 i 40126
  • Streaming write speed: N * Streaming write speed of a single drive
  • Err codemadness.org 70 i 40127
  • Storage space efficiency: 100%
  • Err codemadness.org 70 i 40128
  • Fault tolerance: None!
  • Err codemadness.org 70 i 40129
Err codemadness.org 70 i 40130 Err codemadness.org 70 i 40131
Err codemadness.org 70 i 40132

Let’s apply this to our example system, configured with a 12-wide striped pool:

Err codemadness.org 70 i 40133
Err codemadness.org 70 i 40134 Err codemadness.org 70 i 40135
    Err codemadness.org 70 i 40136
  • 12-wide striped:
  • Err codemadness.org 70 i 40137
  • Read IOPS: 3000
  • Err codemadness.org 70 i 40138
  • Write IOPS: 3000
  • Err codemadness.org 70 i 40139
  • Streaming read speed: 1200 MB/s
  • Err codemadness.org 70 i 40140
  • Streaming write speed: 1200 MB/s
  • Err codemadness.org 70 i 40141
  • Storage space efficiency: 72 TB
  • Err codemadness.org 70 i 40142
  • Fault tolerance: None!
  • Err codemadness.org 70 i 40143
  • Below is a visual depiction of our 12 rainbow blocks written to this pool configuration:
  • Err codemadness.org 70 i 40144
Err codemadness.org 70 i 40145 Err codemadness.org 70 i 40146
Err codemadness.org 70 i 40147

The blocks are simply striped across the 12 disks in the pool. The LBA column on the left stands for “Logical Block Address”. If we treat each disk as a column in an array, each LBA would be a row. It’s also easy to see that if any single disk fails, we would be missing a color in the rainbow and our data would be incomplete. While this configuration has fantastic read and write speeds and can handle a ton of IOPS, the data stored on the pool is very vulnerable. This configuration is not recommended unless you’re comfortable losing all of your pool’s data whenever any single drive fails.
Err codemadness.org 70 i 40148 A mirrored vdev consists of two or more disks. A mirrored vdev stores an exact copy of all the data written to it on each one of its drives. Traditional RAID-1 mirrors usually only support two drive mirrors, but ZFS allows for more drives per mirror to increase redundancy and fault tolerance. All disks in a mirrored vdev have to fail for the vdev, and thus the whole pool, to fail. Total storage space will be equal to the size of a single drive in the vdev. If you’re using mismatched drive sizes in your mirrors, the total size will be that of the smallest drive in the mirror.
Err codemadness.org 70 i 40149 Streaming read speeds and read IOPS on a mirrored vdev will be faster than write speeds and IOPS. When reading from a mirrored vdev, the drives can “divide and conquer” the operations, similar to what we saw above in the striped pool. This is because each drive in the mirror has an identical copy of the data. For write operations, all of the drives need to write a copy of the data, so the mirrored vdev will be limited to the streaming write speed and IOPS of a single disk.

Err codemadness.org 70 i 40150
Err codemadness.org 70 i 40151 Err codemadness.org 70 i 40152
Err codemadness.org 70 i 40153

Here’s a summary:

Err codemadness.org 70 i 40154
Err codemadness.org 70 i 40155 Err codemadness.org 70 i 40156
    Err codemadness.org 70 i 40157
  • Err codemadness.org 70 i 40158

    N-way mirror:

    Err codemadness.org 70 i 40159
  • Err codemadness.org 70 i 40160
  • Err codemadness.org 70 i 40161

    Read IOPS: N * Read IOPS of a single drive

    Err codemadness.org 70 i 40162
  • Err codemadness.org 70 i 40163
  • Err codemadness.org 70 i 40164

    Write IOPS: Write IOPS of a single drive

    Err codemadness.org 70 i 40165
  • Err codemadness.org 70 i 40166
  • Err codemadness.org 70 i 40167

    Streaming read speed: N * Streaming read speed of a single drive

    Err codemadness.org 70 i 40168
  • Err codemadness.org 70 i 40169
  • Err codemadness.org 70 i 40170

    Streaming write speed: Streaming write speed of a single drive

    Err codemadness.org 70 i 40171
  • Err codemadness.org 70 i 40172
  • Err codemadness.org 70 i 40173

    Storage space efficiency: 50% for 2-way, 33% for 3-way, 25% for 4-way, etc. [(N-1)/N]

    Err codemadness.org 70 i 40174
  • Err codemadness.org 70 i 40175
  • Err codemadness.org 70 i 40176

    Fault tolerance: 1 disk per vdev for 2-way, 2 for 3-way, 3 for 4-way, etc. [N-1]

    Err codemadness.org 70 i 40177
  • Err codemadness.org 70 i 40178
  • Err codemadness.org 70 i 40179

    For our first example configuration, let’s do something ridiculous and create a 12-way mirror. ZFS supports this kind of thing, but your management probably will not.

    Err codemadness.org 70 i 40180
  • Err codemadness.org 70 i 40181
  • Err codemadness.org 70 i 40182

    1x 12-way mirror:

    Err codemadness.org 70 i 40183
  • Err codemadness.org 70 i 40184
  • Err codemadness.org 70 i 40185

    Read IOPS: 3000

    Err codemadness.org 70 i 40186
  • Err codemadness.org 70 i 40187
  • Err codemadness.org 70 i 40188

    Write IOPS: 250

    Err codemadness.org 70 i 40189
  • Err codemadness.org 70 i 40190
  • Err codemadness.org 70 i 40191

    Streaming read speed: 1200 MB/s

    Err codemadness.org 70 i 40192
  • Err codemadness.org 70 i 40193
  • Err codemadness.org 70 i 40194

    Streaming write speed: 100 MB/s

    Err codemadness.org 70 i 40195
  • Err codemadness.org 70 i 40196
  • Err codemadness.org 70 i 40197

    Storage space efficiency: 8.3% (6 TB)

    Err codemadness.org 70 i 40198
  • Err codemadness.org 70 i 40199
  • Err codemadness.org 70 i 40200

    Fault tolerance: 11

    Err codemadness.org 70 i 40201
  • Err codemadness.org 70 i 40202
Err codemadness.org 70 i 40203 Err codemadness.org 70 i 40204
Err codemadness.org 70 i 40205

As we can clearly see from the diagram, every single disk in the vdev gets a full copy of our rainbow data. The chainlink icons between the disk labels in the column headers indicate the disks are part of a single vdev. We can lose up to 11 disks in this vdev and still have a complete rainbow. Of course, the data takes up far too much room on the pool, occupying a full 12 LBAs in the data array.

Err codemadness.org 70 i 40206
Err codemadness.org 70 i 40207 Err codemadness.org 70 i 40208
Err codemadness.org 70 i 40209

Obviously, this is far from the best use of 12 drives. Let’s do something a little more practical and configure the pool with the ZFS equivalent of RAID-10. We’ll configure six 2-way mirror vdevs. ZFS will stripe the data across all 6 of the vdevs. We can use the work we did in the striped vdev section to determine how the pool as a whole will behave. Let’s first calculate the performance per vdev, then we can work on the full pool:

Err codemadness.org 70 i 40210
Err codemadness.org 70 i 40211 Err codemadness.org 70 i 40212
    Err codemadness.org 70 i 40213
  • Err codemadness.org 70 i 40214

    1x 2-way mirror:

    Err codemadness.org 70 i 40215
  • Err codemadness.org 70 i 40216
  • Err codemadness.org 70 i 40217

    Read IOPS: 500

    Err codemadness.org 70 i 40218
  • Err codemadness.org 70 i 40219
  • Err codemadness.org 70 i 40220

    Write IOPS: 250

    Err codemadness.org 70 i 40221
  • Err codemadness.org 70 i 40222
  • Err codemadness.org 70 i 40223

    Streaming read speed: 200 MB/s

    Err codemadness.org 70 i 40224
  • Err codemadness.org 70 i 40225
  • Err codemadness.org 70 i 40226

    Streaming write speed: 100 MB/s

    Err codemadness.org 70 i 40227
  • Err codemadness.org 70 i 40228
  • Err codemadness.org 70 i 40229

    Storage space efficiency: 50% (6 TB)

    Err codemadness.org 70 i 40230
  • Err codemadness.org 70 i 40231
  • Err codemadness.org 70 i 40232

    Fault tolerance: 1

    Err codemadness.org 70 i 40233
  • Err codemadness.org 70 i 40234
  • Err codemadness.org 70 i 40235

    Now we can pretend we have 6 drives with the performance statistics listed above and run them through our striped vdev performance calculator to get the total pool’s performance:

    Err codemadness.org 70 i 40236
  • Err codemadness.org 70 i 40237
  • Err codemadness.org 70 i 40238

    6x 2-way mirror:

    Err codemadness.org 70 i 40239
  • Err codemadness.org 70 i 40240
  • Err codemadness.org 70 i 40241

    Read IOPS: 3000

    Err codemadness.org 70 i 40242
  • Err codemadness.org 70 i 40243
  • Err codemadness.org 70 i 40244

    Write IOPS: 1500

    Err codemadness.org 70 i 40245
  • Err codemadness.org 70 i 40246
  • Err codemadness.org 70 i 40247

    Streaming read speed: 3000 MB/s

    Err codemadness.org 70 i 40248
  • Err codemadness.org 70 i 40249
  • Err codemadness.org 70 i 40250

    Streaming write speed: 1500 MB/s

    Err codemadness.org 70 i 40251
  • Err codemadness.org 70 i 40252
  • Err codemadness.org 70 i 40253

    Storage space efficiency: 50% (36 TB)

    Err codemadness.org 70 i 40254
  • Err codemadness.org 70 i 40255
  • Err codemadness.org 70 i 40256

    Fault tolerance: 1 per vdev, 6 total

    Err codemadness.org 70 i 40257
  • Err codemadness.org 70 i 40258
  • Err codemadness.org 70 i 40259

    Again, we will examine the configuration from a visual perspective:

    Err codemadness.org 70 i 40260
  • Err codemadness.org 70 i 40261
Err codemadness.org 70 i 40262 Err codemadness.org 70 i 40263
Err codemadness.org 70 i 40264

Each vdev gets a block of data and ZFS writes that data to all of (or in this case, both of) the disks in the mirror. As long as we have at least one functional disk in each vdev, we can retrieve our rainbow. As before, the chain link icons denote the disks are part of a single vdev. This configuration emphasizes performance over raw capacity but doesn’t totally disregard fault tolerance as our striped pool did. It’s a very popular configuration for systems that need a lot of fast I/O. Let’s look at one more example configuration using four 3-way mirrors. We’ll skip the individual vdev performance calculation and go straight to the full pool:

Err codemadness.org 70 i 40265
Err codemadness.org 70 i 40266 Err codemadness.org 70 i 40267
    Err codemadness.org 70 i 40268
  • 4x 3-way mirror:
  • Err codemadness.org 70 i 40269
  • Read IOPS: 3000
  • Err codemadness.org 70 i 40270
  • Write IOPS: 1000
  • Err codemadness.org 70 i 40271
  • Streaming read speed: 3000 MB/s
  • Err codemadness.org 70 i 40272
  • Streaming write speed: 400 MB/s
  • Err codemadness.org 70 i 40273
  • Storage space efficiency: 33% (24 TB)
  • Err codemadness.org 70 i 40274
  • Fault tolerance: 2 per vdev, 8 total
  • Err codemadness.org 70 i 40275
Err codemadness.org 70 i 40276 Err codemadness.org 70 i 40277
Err codemadness.org 70 i 40278

While we have sacrificed some write performance and capacity, the pool is now extremely fault tolerant. This configuration is probably not practical for most applications and it would make more sense to use lower fault tolerance and set up an offsite backup system.
Err codemadness.org 70 i 40279 Striped and mirrored vdevs are fantastic for access speed performance, but they either leave you with no redundancy whatsoever or impose at least a 50% penalty on the total usable space of your pool. In the next post, we will cover RAIDZ, which lets you keep data redundancy without sacrificing as much storage space efficiency. We’ll also look at some example workload scenarios and decide which layout would be the best fit for each.

Err codemadness.org 70 i 40280
Err codemadness.org 70 i 40281 Err codemadness.org 70 i 40282


Err codemadness.org 70 i 40283 Err codemadness.org 70 i 40284

###2FA with ssh on OpenBSD

Err codemadness.org 70 i 40285 Err codemadness.org 70 i 40286
Err codemadness.org 70 i 40287

Five years ago I wrote about using a yubikey on OpenBSD. The only problem with doing this is that there’s no validation server available on OpenBSD, so you need to use a different OTP slot for each machine. (You don’t want to risk a replay attack if someone succeeds in capturing an OTP on one machine, right?) Yubikey has two OTP slots per device, so you would need a yubikey for every two machines with which you’d like to use it. You could use a bastion—and use only one yubikey—but I don’t like the SPOF aspect of a bastion. YMMV.
Err codemadness.org 70 i 40288 After I played with TOTP, I wanted to use them as a 2FA for ssh. At the time of writing, we can’t do that using only the tools in base. This article focuses on OpenBSD; if you use another operating system, here are two handy links.

Err codemadness.org 70 i 40289
Err codemadness.org 70 i 40290 Err codemadness.org 70 i 40291
    Err codemadness.org 70 i 40292
  • SEED CONFIGURATION
  • Err codemadness.org 70 i 40293
Err codemadness.org 70 i 40294 Err codemadness.org 70 i 40295
Err codemadness.org 70 i 40296

The first thing we need to do is to install the software which will be used to verify the OTPs we submit.

Err codemadness.org 70 i 40297
Err codemadness.org 70 i 40298 Err codemadness.org 70 i 40299

# pkg_add login_oath

Err codemadness.org 70 i 40300 Err codemadness.org 70 i 40301
Err codemadness.org 70 i 40302

We need to create a secret - aka, the seed - that will be used to calculate the Time-based One-Time Passwords. We should make sure no one can read or change it.

Err codemadness.org 70 i 40303
Err codemadness.org 70 i 40304 Err codemadness.org 70 i 40305

$ openssl rand -hex 20 > ~/.totp-key
Err codemadness.org 70 i 40306 $ chmod 400 ~/.totp-key

Err codemadness.org 70 i 40307 Err codemadness.org 70 i 40308
Err codemadness.org 70 i 40309

Now we have a hexadecimal key, but apps usually want a base32 secret. I initially wrote a small script to do the conversion.
Err codemadness.org 70 i 40310 While writing this article, I took the opportunity to improve it. When I initially wrote this utility for my use, python-qrcode hadn’t yet been imported to the OpenBSD ports/packages system. It’s easy to install now, so let’s use it.
Err codemadness.org 70 i 40311 Here’s the improved version. It will ask for the hex key and output the secret as a base32-encoded string, both with and without spacing so you can copy-paste it into your password manager or easily retype it. It will then ask for the information needed to generate a QR code. Adding our new OTP secret to any mobile app using the QR code will be super easy!

Err codemadness.org 70 i 40312
Err codemadness.org 70 i 40313 Err codemadness.org 70 i 40314
    Err codemadness.org 70 i 40315
  • SYSTEM CONFIGURATION
  • Err codemadness.org 70 i 40316
Err codemadness.org 70 i 40317 Err codemadness.org 70 i 40318
Err codemadness.org 70 i 40319

We can now move to the configuration of the system to put our new TOTP to use. As you might guess, it’s going to be quite close to what we did with the yubikey.
Err codemadness.org 70 i 40320 We need to tweak login.conf. Be careful and keep a root shell open at all times. The few times I broke my OpenBSD were because I messed with login.conf without showing enough care.

Err codemadness.org 70 i 40321
Err codemadness.org 70 i 40322 Err codemadness.org 70 i 40323
    Err codemadness.org 70 i 40324
  • SSHD CONFIGURATION
  • Err codemadness.org 70 i 40325
Err codemadness.org 70 i 40326 Err codemadness.org 70 i 40327
Err codemadness.org 70 i 40328

Again, keeping a root shell around decreases the risk of losing access to the system and being locked outside.
Err codemadness.org 70 i 40329 A good standard is to use PasswordAuthentication no and to use public key only. Except… have a guess what the P stands for in TOTP. Yes, congrats, you guessed it!
Err codemadness.org 70 i 40330 We need to switch to PasswordAuthentication yes. However, if we made this change alone, sshd would then accept a public key OR a password (which are TOTP because of our login.conf). 2FA uses both at the same time.
Err codemadness.org 70 i 40331 To inform sshd we intend to use both, we need to set AuthenticationMethods publickey,password. This way, the user trying to login will first need to perform the traditional publickey authentication. Once that’s done, ssh will prompt for a password and the user will need to submit a valid TOTP for the system.
Err codemadness.org 70 i 40332 We could do this the other way around, but I think bots could try passwords, wasting resources. Evaluated in this order, failing to provide a public key leads to sshd immediately declining your attempt.

Err codemadness.org 70 i 40333
Err codemadness.org 70 i 40334 Err codemadness.org 70 i 40335
    Err codemadness.org 70 i 40336
  • IMPROVING SECURITY WITHOUT IMPACTING UX
  • Err codemadness.org 70 i 40337
Err codemadness.org 70 i 40338 Err codemadness.org 70 i 40339
Err codemadness.org 70 i 40340

My phone has a long enough password that most of the time, I fail to type it correctly on the first try. Of course, if I had to unlock my phone, launch my TOTP app and use my keyboard to enter what I see on my phone’s screen, I would quickly disable 2FA.
Err codemadness.org 70 i 40341 To find a balance, I have whitelisted certain IP addresses and users. If I connect from a particular IP address or as a specific user, I don’t want to go through 2FA. For some users, I might not even enable 2FA.
Err codemadness.org 70 i 40342 To sum up, we covered how to create a seed, how to perform a hexadecimal to base32 conversion and how to create a QR code for mobile applications. We configured the login system with login.conf so that ssh authentication uses the TOTP login system, and we told sshd to ask for both the public key and the Time-based One-Time Password. Now you should be all set to use two-factor ssh authentication on OpenBSD!

Err codemadness.org 70 i 40343
Err codemadness.org 70 i 40344 Err codemadness.org 70 i 40345


Err codemadness.org 70 i 40346 Err codemadness.org 70 i 40347

##News Roundup
Err codemadness.org 70 i 40348 ###How ZFS maintains file type information in directories

Err codemadness.org 70 i 40349 Err codemadness.org 70 i 40350
Err codemadness.org 70 i 40351

As an aside in yesterday’s history of file type information being available in Unix directories, I mentioned that it was possible for a filesystem to support this even though its Unix didn’t. By supporting it, I mean that the filesystem maintains this information in its on disk format for directories, even though the rest of the kernel will never ask for it. This is what ZFS does.
Err codemadness.org 70 i 40352 The easiest way to see that ZFS does this is to use zdb to dump a directory. I’m going to do this on an OmniOS machine, to make it more convincing, and it turns out that this has some interesting results. Since this is OmniOS, we don’t have the convenience of just naming a directory in zdb, so let’s find the root directory of a filesystem, starting from dnode 1 (as seen before).

Err codemadness.org 70 i 40353
Err codemadness.org 70 i 40354 Err codemadness.org 70 i 40355

# zdb -dddd fs3-corestaff-01/h/281 1
Err codemadness.org 70 i 40356 Dataset [....]
Err codemadness.org 70 i 40357 [...]
Err codemadness.org 70 i 40358 microzap: 512 bytes, 4 entries
Err codemadness.org 70 i 40359 [...]
Err codemadness.org 70 i 40360 ROOT = 3
Err codemadness.org 70 i 40361
Err codemadness.org 70 i 40362 # zdb -dddd fs3-corestaff-01/h/281 3
Err codemadness.org 70 i 40363 Object lvl iblk dblk dsize lsize %full type
Err codemadness.org 70 i 40364 3 1 16K 1K 8K 1K 100.00 ZFS directory
Err codemadness.org 70 i 40365 [...]
Err codemadness.org 70 i 40366 microzap: 1024 bytes, 8 entries
Err codemadness.org 70 i 40367
Err codemadness.org 70 i 40368 RESTORED = 4396504 (type: Directory)
Err codemadness.org 70 i 40369 ckstst = 12017 (type: not specified)
Err codemadness.org 70 i 40370 ckstst3 = 25069 (type: Directory)
Err codemadness.org 70 i 40371 .demo-file = 5832188 (type: Regular File)
Err codemadness.org 70 i 40372 .peergroup = 12590 (type: not specified)
Err codemadness.org 70 i 40373 cks = 5 (type: not specified)
Err codemadness.org 70 i 40374 cksimap1 = 5247832 (type: Directory)
Err codemadness.org 70 i 40375 .diskuse = 12016 (type: not specified)
Err codemadness.org 70 i 40376 ckstst2 = 12535 (type: not specified)

Err codemadness.org 70 i 40377 Err codemadness.org 70 i 40378
Err codemadness.org 70 i 40379

This is actually an old filesystem (it dates from Solaris 10 and has been transferred around with ‘zfs send | zfs recv’ since then), but various home directories for real and test users have been created in it over time (you can probably guess which one is the oldest one). Sufficiently old directories and files have no file type information, but more recent ones have this information, including .demo-file, which I made just now so this would have an entry that was a regular file with type information.
Err codemadness.org 70 i 40380 Once I dug into it, this turned out to be a change introduced (or activated) in ZFS filesystem version 2, which is described in ‘zfs upgrade -v’ as ‘enhanced directory entries’. As an actual change in (Open)Solaris, it dates from mid 2007, although I’m not sure what Solaris release it made it into. The upshot is that if you made your ZFS filesystem any time in the last decade, you’ll have this file type information in your directories.
Err codemadness.org 70 i 40381 How ZFS stores this file type information is interesting and clever, especially when it comes to backwards compatibility. I’ll start by quoting the comment from zfs_znode.h:

Err codemadness.org 70 i 40382
Err codemadness.org 70 i 40383 Err codemadness.org 70 i 40384

/*
Err codemadness.org 70 i 40385 * The directory entry has the type (currently unused on
Err codemadness.org 70 i 40386 * Solaris) in the top 4 bits, and the object number in
Err codemadness.org 70 i 40387 * the low 48 bits. The "middle" 12 bits are unused.
Err codemadness.org 70 i 40388 */

Err codemadness.org 70 i 40389 Err codemadness.org 70 i 40390
Err codemadness.org 70 i 40391

In yesterday’s entry I said that Unix directory entries need to store at least the filename and the inode number of the file. What ZFS is doing here is reusing the 64 bit field used for the ‘inode’ (the ZFS dnode number) to also store the file type, because it knows that object numbers have only a limited range. This also makes old directory entries compatible, by making type 0 (all 4 bits 0) mean ‘not specified’. Since old directory entries only stored the object number and the object number is 48 bits or less, the higher bits are guaranteed to be all zero.
Err codemadness.org 70 i 40392 The reason this needed a new ZFS filesystem version is now clear. If you tried to read directory entries with file type information on a version of ZFS that didn’t know about them, the old version would likely see crazy (and non-existent) object numbers and nothing would work. In order to even read a ‘file type in directory entries’ filesystem, you need to know to only look at the low 48 bits of the object number field in directory entries.

Err codemadness.org 70 i 40393
Err codemadness.org 70 i 40394 Err codemadness.org 70 i 40395


Err codemadness.org 70 i 40396 Err codemadness.org 70 i 40397

###Everything old is new again

Err codemadness.org 70 i 40398 Err codemadness.org 70 i 40399
Err codemadness.org 70 i 40400

Just because KDE4-era software has been deprecated by the KDE-FreeBSD team in the official ports-repository, doesn’t mean we don’t care for it while we still need to. KDE4 was released on January 11th, 2008 — I still have the T-shirt — which was a very different C++ world than what we now live in. Much of the code pre-dates the availability of C11 — certainly the availability of compilers with C11 support. The language has changed a great deal in those ten years since the original release.
Err codemadness.org 70 i 40401 The platforms we run KDE code on have, too — FreeBSD 12 is a long way from the FreeBSD 6 or 7 that were current at release (although at the time, I was more into OpenSolaris). In particular, since then the FreeBSD world has switched over to Clang, and FreeBSD current is experimenting with Clang 7. So we’re seeing KDE4-era code being built, and running, on FreeBSD 12 with Clang 7. That’s a platform with a very different idea of what constitutes correct code, than what the code was originally written for. (Not quite as big a difference as Helio’s KDE1 efforts, though)
Err codemadness.org 70 i 40402 So, while we’re counting down to removing KDE4 from the FreeBSD ports tree, we’re also going through and fixing it to work with Clang 7, which defaults to a newer C++ standard and which is quite picky about some things. Some time in the distant past, when pointers were integers and NULL was zero, there was some confusion about booleans. So there’s lots of code that does list.contains(element) > 0 … this must have been a trick before booleans were a supported type in all our compilers. In any case it breaks with Clang 7, since contains() returns a QBool which converts to a nullptr (when false) which isn’t comparable to the integer 0. Suffice to say I’ve spent more time reading KDE4-era code this month, than in the past two years.
Err codemadness.org 70 i 40403 However, work is proceeding apace, so if you really really want to, you can still get your old-school kicks on a new platform. Because we care about packaging things right, even when we want to get rid of it.

Err codemadness.org 70 i 40404
Err codemadness.org 70 i 40405 Err codemadness.org 70 i 40406


Err codemadness.org 70 i 40407 Err codemadness.org 70 i 40408

###OpenBSD netcat demystified

Err codemadness.org 70 i 40409 Err codemadness.org 70 i 40410
Err codemadness.org 70 i 40411

Owing to its versatile functionalities, netcat earns the reputation as “TCP/IP Swiss army knife”. For example, you can create a simple chat app using netcat:

Err codemadness.org 70 i 40412
Err codemadness.org 70 i 40413 Err codemadness.org 70 i 40414
    Err codemadness.org 70 i 40415
  • (1) Open a terminal and input following command:
  • Err codemadness.org 70 i 40416
Err codemadness.org 70 i 40417 Err codemadness.org 70 i 40418

# nc -l 3003

Err codemadness.org 70 i 40419 Err codemadness.org 70 i 40420
Err codemadness.org 70 i 40421

This means a netcat process will listen on 3003 port in this machine (the IP address of current machine is 192.168.35.176).

Err codemadness.org 70 i 40422
Err codemadness.org 70 i 40423 Err codemadness.org 70 i 40424
    Err codemadness.org 70 i 40425
  • (2) Connect aforemontioned netcat process in another machine, and send a greeting:
  • Err codemadness.org 70 i 40426
Err codemadness.org 70 i 40427 Err codemadness.org 70 i 40428

# nc 192.168.35.176 3003
Err codemadness.org 70 i 40429 hello

Err codemadness.org 70 i 40430 Err codemadness.org 70 i 40431
Err codemadness.org 70 i 40432

Then in the first machine’s terminal, you will see the “hello” text:

Err codemadness.org 70 i 40433
Err codemadness.org 70 i 40434 Err codemadness.org 70 i 40435

# nc -l 3003
Err codemadness.org 70 i 40436 hello

Err codemadness.org 70 i 40437 Err codemadness.org 70 i 40438
Err codemadness.org 70 i 40439

A primitive chatroom is built successfully. Very cool! Isn’t it? I think many people can’t wait to explore more features of netcatnow. If you are among them, congratulations! This tutorial may be the correct place for you.
Err codemadness.org 70 i 40440 In the following parts, I will delve into OpenBSD’s netcatcode to give a detailed anatomy of it. The reason of picking OpenBSD’s netcat rather than others’ is because its code repository is small (~2000 lines of code) and neat. Furthermore, I also hope this little book can assist you learn more socket programming knowledge not just grasping usage of netcat.
Err codemadness.org 70 i 40441 We’re all set. Let’s go!

Err codemadness.org 70 i 40442
Err codemadness.org 70 i 40443 Err codemadness.org 70 i 40444


Err codemadness.org 70 i 40445 Err codemadness.org 70 i 40446

##Beastie Bits

Err codemadness.org 70 i 40447 Err codemadness.org 70 i 40448 Err codemadness.org 70 i 40456 Err codemadness.org 70 i 40457


Err codemadness.org 70 i 40458 Err codemadness.org 70 i 40459

##Feedback/Questions

Err codemadness.org 70 i 40460 Err codemadness.org 70 i 40461 Err codemadness.org 70 i 40467 Err codemadness.org 70 i 40468


Err codemadness.org 70 i 40469 Err codemadness.org 70 i 40470
    Err codemadness.org 70 i 40471
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 40472
Err codemadness.org 70 i 40473 Err codemadness.org 70 i 40474


]]> Err codemadness.org 70 i 40475
Err codemadness.org 70 i 40476 Err codemadness.org 70 i 40477 6 metrics for zpool performance, 2FA with ssh on OpenBSD, ZFS maintaining file type information in dirs, everything old is new again, netcat demystified, and more.

Err codemadness.org 70 i 40478 Err codemadness.org 70 i 40479

##Headlines
Err codemadness.org 70 i 40480 ###Six Metrics for Measuring ZFS Pool Performance Part 1

Err codemadness.org 70 i 40481 Err codemadness.org 70 i 40482
Err codemadness.org 70 i 40483

The layout of a ZFS storage pool has a significant impact on system performance under various workloads. Given the importance of picking the right configuration for your workload and the fact that making changes to an in-use ZFS pool is far from trivial, it is important for an administrator to understand the mechanics of pool performance when designing a storage system.

Err codemadness.org 70 i 40484
Err codemadness.org 70 i 40485 Err codemadness.org 70 i 40486
    Err codemadness.org 70 i 40487
  • To quantify pool performance, we will consider six primary metrics:
  • Err codemadness.org 70 i 40488
  • Read I/O operations per second (IOPS)
  • Err codemadness.org 70 i 40489
  • Write IOPS
  • Err codemadness.org 70 i 40490
  • Streaming read speed
  • Err codemadness.org 70 i 40491
  • Streaming write speed
  • Err codemadness.org 70 i 40492
  • Storage space efficiency (usable capacity after parity versus total raw capacity)
  • Err codemadness.org 70 i 40493
  • Fault tolerance (maximum number of drives that can fail before data loss)
  • Err codemadness.org 70 i 40494
  • For the sake of comparison, we’ll use an example system with 12 drives, each one sized at 6TB, and say that each drive does 100MB/s streaming reads and writes and can do 250 read and write IOPS. We will visualize how the data is spread across the drives by writing 12 multi-colored blocks, shown below. The blocks are written to the pool starting with the brown block on the left (number one), and working our way to the pink block on the right (number 12).
  • Err codemadness.org 70 i 40495
Err codemadness.org 70 i 40496 Err codemadness.org 70 i 40497
Err codemadness.org 70 i 40498

Note that when we calculate data rates and IOPS values for the example system, they are only approximations. Many other factors can impact pool access speeds for better (compression, caching) or worse (poor CPU performance, not enough memory).
Err codemadness.org 70 i 40499 There is no single configuration that maximizes all six metrics. Like so many things in life, our objective is to find an appropriate balance of the metrics to match a target workload. For example, a cold-storage backup system will likely want a pool configuration that emphasizes usable storage space and fault tolerance over the other data-rate focused metrics.
Err codemadness.org 70 i 40500 Let’s start with a quick review of ZFS storage pools before diving into specific configuration options. ZFS storage pools are comprised of one or more virtual devices, or vdevs. Each vdev is comprised of one or more storage providers, typically physical hard disks. All disk-level redundancy is configured at the vdev level. That is, the RAID layout is set on each vdev as opposed to on the storage pool. Data written to the storage pool is then striped across all the vdevs. Because pool data is striped across the vdevs, the loss of any one vdev means total pool failure. This is perhaps the single most important fact to keep in mind when designing a ZFS storage system. We will circle back to this point in the next post, but keep it in mind as we go through the vdev configuration options.
Err codemadness.org 70 i 40501 Because storage pools are made up of one or more vdevs with the pool data striped over the top, we’ll take a look at pool configuration in terms of various vdev configurations. There are three basic vdev configurations: striping, mirroring, and RAIDZ (which itself has three different varieties). The first section will cover striped and mirrored vdevs in this post; the second post will cover RAIDZ and some example scenarios.
Err codemadness.org 70 i 40502 A striped vdev is the simplest configuration. Each vdev consists of a single disk with no redundancy. When several of these single-disk, striped vdevs are combined into a single storage pool, the total usable storage space would be the sum of all the drives. When you write data to a pool made of striped vdevs, the data is broken into small chunks called “blocks” and distributed across all the disks in the pool. The blocks are written in “round-robin” sequence, meaning after all the disks receive one row of blocks, called a stripe, it loops back around and writes another stripe under the first. A striped pool has excellent performance and storage space efficiency, but absolutely zero fault tolerance. If even a single drive in the pool fails, the entire pool will fail and all data stored on that pool will be lost.
Err codemadness.org 70 i 40503 The excellent performance of a striped pool comes from the fact that all of the disks can work independently for all read and write operations. If you have a bunch of small read or write operations (IOPS), each disk can work independently to fetch the next block. For streaming reads and writes, each disk can fetch the next block in line synchronized with its neighbors. For example, if a given disk is fetching block n, its neighbor to the left can be fetching block n-1, and its neighbor to the right can be fetching block n+1. Therefore, the speed of all read and write operations as well as the quantity of read and write operations (IOPS) on a striped pool will scale with the number of vdevs. Note here that I said the speeds and IOPS scale with the number of vdevs rather than the number of drives; there’s a reason for this and we’ll cover it in the next post when we discuss RAID-Z.
Err codemadness.org 70 i 40504 Here’s a summary of the total pool performance (where N is the number of disks in the pool):

Err codemadness.org 70 i 40505
Err codemadness.org 70 i 40506 Err codemadness.org 70 i 40507
    Err codemadness.org 70 i 40508
  • N-wide striped:
  • Err codemadness.org 70 i 40509
  • Read IOPS: N * Read IOPS of a single drive
  • Err codemadness.org 70 i 40510
  • Write IOPS: N * Write IOPS of a single drive
  • Err codemadness.org 70 i 40511
  • Streaming read speed: N * Streaming read speed of a single drive
  • Err codemadness.org 70 i 40512
  • Streaming write speed: N * Streaming write speed of a single drive
  • Err codemadness.org 70 i 40513
  • Storage space efficiency: 100%
  • Err codemadness.org 70 i 40514
  • Fault tolerance: None!
  • Err codemadness.org 70 i 40515
Err codemadness.org 70 i 40516 Err codemadness.org 70 i 40517
Err codemadness.org 70 i 40518

Let’s apply this to our example system, configured with a 12-wide striped pool:

Err codemadness.org 70 i 40519
Err codemadness.org 70 i 40520 Err codemadness.org 70 i 40521
    Err codemadness.org 70 i 40522
  • 12-wide striped:
  • Err codemadness.org 70 i 40523
  • Read IOPS: 3000
  • Err codemadness.org 70 i 40524
  • Write IOPS: 3000
  • Err codemadness.org 70 i 40525
  • Streaming read speed: 1200 MB/s
  • Err codemadness.org 70 i 40526
  • Streaming write speed: 1200 MB/s
  • Err codemadness.org 70 i 40527
  • Storage space efficiency: 72 TB
  • Err codemadness.org 70 i 40528
  • Fault tolerance: None!
  • Err codemadness.org 70 i 40529
  • Below is a visual depiction of our 12 rainbow blocks written to this pool configuration:
  • Err codemadness.org 70 i 40530
Err codemadness.org 70 i 40531 Err codemadness.org 70 i 40532
Err codemadness.org 70 i 40533

The blocks are simply striped across the 12 disks in the pool. The LBA column on the left stands for “Logical Block Address”. If we treat each disk as a column in an array, each LBA would be a row. It’s also easy to see that if any single disk fails, we would be missing a color in the rainbow and our data would be incomplete. While this configuration has fantastic read and write speeds and can handle a ton of IOPS, the data stored on the pool is very vulnerable. This configuration is not recommended unless you’re comfortable losing all of your pool’s data whenever any single drive fails.
Err codemadness.org 70 i 40534 A mirrored vdev consists of two or more disks. A mirrored vdev stores an exact copy of all the data written to it on each one of its drives. Traditional RAID-1 mirrors usually only support two drive mirrors, but ZFS allows for more drives per mirror to increase redundancy and fault tolerance. All disks in a mirrored vdev have to fail for the vdev, and thus the whole pool, to fail. Total storage space will be equal to the size of a single drive in the vdev. If you’re using mismatched drive sizes in your mirrors, the total size will be that of the smallest drive in the mirror.
Err codemadness.org 70 i 40535 Streaming read speeds and read IOPS on a mirrored vdev will be faster than write speeds and IOPS. When reading from a mirrored vdev, the drives can “divide and conquer” the operations, similar to what we saw above in the striped pool. This is because each drive in the mirror has an identical copy of the data. For write operations, all of the drives need to write a copy of the data, so the mirrored vdev will be limited to the streaming write speed and IOPS of a single disk.

Err codemadness.org 70 i 40536
Err codemadness.org 70 i 40537 Err codemadness.org 70 i 40538
Err codemadness.org 70 i 40539

Here’s a summary:

Err codemadness.org 70 i 40540
Err codemadness.org 70 i 40541 Err codemadness.org 70 i 40542
    Err codemadness.org 70 i 40543
  • Err codemadness.org 70 i 40544

    N-way mirror:

    Err codemadness.org 70 i 40545
  • Err codemadness.org 70 i 40546
  • Err codemadness.org 70 i 40547

    Read IOPS: N * Read IOPS of a single drive

    Err codemadness.org 70 i 40548
  • Err codemadness.org 70 i 40549
  • Err codemadness.org 70 i 40550

    Write IOPS: Write IOPS of a single drive

    Err codemadness.org 70 i 40551
  • Err codemadness.org 70 i 40552
  • Err codemadness.org 70 i 40553

    Streaming read speed: N * Streaming read speed of a single drive

    Err codemadness.org 70 i 40554
  • Err codemadness.org 70 i 40555
  • Err codemadness.org 70 i 40556

    Streaming write speed: Streaming write speed of a single drive

    Err codemadness.org 70 i 40557
  • Err codemadness.org 70 i 40558
  • Err codemadness.org 70 i 40559

    Storage space efficiency: 50% for 2-way, 33% for 3-way, 25% for 4-way, etc. [(N-1)/N]

    Err codemadness.org 70 i 40560
  • Err codemadness.org 70 i 40561
  • Err codemadness.org 70 i 40562

    Fault tolerance: 1 disk per vdev for 2-way, 2 for 3-way, 3 for 4-way, etc. [N-1]

    Err codemadness.org 70 i 40563
  • Err codemadness.org 70 i 40564
  • Err codemadness.org 70 i 40565

    For our first example configuration, let’s do something ridiculous and create a 12-way mirror. ZFS supports this kind of thing, but your management probably will not.

    Err codemadness.org 70 i 40566
  • Err codemadness.org 70 i 40567
  • Err codemadness.org 70 i 40568

    1x 12-way mirror:

    Err codemadness.org 70 i 40569
  • Err codemadness.org 70 i 40570
  • Err codemadness.org 70 i 40571

    Read IOPS: 3000

    Err codemadness.org 70 i 40572
  • Err codemadness.org 70 i 40573
  • Err codemadness.org 70 i 40574

    Write IOPS: 250

    Err codemadness.org 70 i 40575
  • Err codemadness.org 70 i 40576
  • Err codemadness.org 70 i 40577

    Streaming read speed: 1200 MB/s

    Err codemadness.org 70 i 40578
  • Err codemadness.org 70 i 40579
  • Err codemadness.org 70 i 40580

    Streaming write speed: 100 MB/s

    Err codemadness.org 70 i 40581
  • Err codemadness.org 70 i 40582
  • Err codemadness.org 70 i 40583

    Storage space efficiency: 8.3% (6 TB)

    Err codemadness.org 70 i 40584
  • Err codemadness.org 70 i 40585
  • Err codemadness.org 70 i 40586

    Fault tolerance: 11

    Err codemadness.org 70 i 40587
  • Err codemadness.org 70 i 40588
Err codemadness.org 70 i 40589 Err codemadness.org 70 i 40590
Err codemadness.org 70 i 40591

As we can clearly see from the diagram, every single disk in the vdev gets a full copy of our rainbow data. The chainlink icons between the disk labels in the column headers indicate the disks are part of a single vdev. We can lose up to 11 disks in this vdev and still have a complete rainbow. Of course, the data takes up far too much room on the pool, occupying a full 12 LBAs in the data array.

Err codemadness.org 70 i 40592
Err codemadness.org 70 i 40593 Err codemadness.org 70 i 40594
Err codemadness.org 70 i 40595

Obviously, this is far from the best use of 12 drives. Let’s do something a little more practical and configure the pool with the ZFS equivalent of RAID-10. We’ll configure six 2-way mirror vdevs. ZFS will stripe the data across all 6 of the vdevs. We can use the work we did in the striped vdev section to determine how the pool as a whole will behave. Let’s first calculate the performance per vdev, then we can work on the full pool:

Err codemadness.org 70 i 40596
Err codemadness.org 70 i 40597 Err codemadness.org 70 i 40598
    Err codemadness.org 70 i 40599
  • Err codemadness.org 70 i 40600

    1x 2-way mirror:

    Err codemadness.org 70 i 40601
  • Err codemadness.org 70 i 40602
  • Err codemadness.org 70 i 40603

    Read IOPS: 500

    Err codemadness.org 70 i 40604
  • Err codemadness.org 70 i 40605
  • Err codemadness.org 70 i 40606

    Write IOPS: 250

    Err codemadness.org 70 i 40607
  • Err codemadness.org 70 i 40608
  • Err codemadness.org 70 i 40609

    Streaming read speed: 200 MB/s

    Err codemadness.org 70 i 40610
  • Err codemadness.org 70 i 40611
  • Err codemadness.org 70 i 40612

    Streaming write speed: 100 MB/s

    Err codemadness.org 70 i 40613
  • Err codemadness.org 70 i 40614
  • Err codemadness.org 70 i 40615

    Storage space efficiency: 50% (6 TB)

    Err codemadness.org 70 i 40616
  • Err codemadness.org 70 i 40617
  • Err codemadness.org 70 i 40618

    Fault tolerance: 1

    Err codemadness.org 70 i 40619
  • Err codemadness.org 70 i 40620
  • Err codemadness.org 70 i 40621

    Now we can pretend we have 6 drives with the performance statistics listed above and run them through our striped vdev performance calculator to get the total pool’s performance:

    Err codemadness.org 70 i 40622
  • Err codemadness.org 70 i 40623
  • Err codemadness.org 70 i 40624

    6x 2-way mirror:

    Err codemadness.org 70 i 40625
  • Err codemadness.org 70 i 40626
  • Err codemadness.org 70 i 40627

    Read IOPS: 3000

    Err codemadness.org 70 i 40628
  • Err codemadness.org 70 i 40629
  • Err codemadness.org 70 i 40630

    Write IOPS: 1500

    Err codemadness.org 70 i 40631
  • Err codemadness.org 70 i 40632
  • Err codemadness.org 70 i 40633

    Streaming read speed: 3000 MB/s

    Err codemadness.org 70 i 40634
  • Err codemadness.org 70 i 40635
  • Err codemadness.org 70 i 40636

    Streaming write speed: 1500 MB/s

    Err codemadness.org 70 i 40637
  • Err codemadness.org 70 i 40638
  • Err codemadness.org 70 i 40639

    Storage space efficiency: 50% (36 TB)

    Err codemadness.org 70 i 40640
  • Err codemadness.org 70 i 40641
  • Err codemadness.org 70 i 40642

    Fault tolerance: 1 per vdev, 6 total

    Err codemadness.org 70 i 40643
  • Err codemadness.org 70 i 40644
  • Err codemadness.org 70 i 40645

    Again, we will examine the configuration from a visual perspective:

    Err codemadness.org 70 i 40646
  • Err codemadness.org 70 i 40647
Err codemadness.org 70 i 40648 Err codemadness.org 70 i 40649
Err codemadness.org 70 i 40650

Each vdev gets a block of data and ZFS writes that data to all of (or in this case, both of) the disks in the mirror. As long as we have at least one functional disk in each vdev, we can retrieve our rainbow. As before, the chain link icons denote the disks are part of a single vdev. This configuration emphasizes performance over raw capacity but doesn’t totally disregard fault tolerance as our striped pool did. It’s a very popular configuration for systems that need a lot of fast I/O. Let’s look at one more example configuration using four 3-way mirrors. We’ll skip the individual vdev performance calculation and go straight to the full pool:

Err codemadness.org 70 i 40651
Err codemadness.org 70 i 40652 Err codemadness.org 70 i 40653
    Err codemadness.org 70 i 40654
  • 4x 3-way mirror:
  • Err codemadness.org 70 i 40655
  • Read IOPS: 3000
  • Err codemadness.org 70 i 40656
  • Write IOPS: 1000
  • Err codemadness.org 70 i 40657
  • Streaming read speed: 3000 MB/s
  • Err codemadness.org 70 i 40658
  • Streaming write speed: 400 MB/s
  • Err codemadness.org 70 i 40659
  • Storage space efficiency: 33% (24 TB)
  • Err codemadness.org 70 i 40660
  • Fault tolerance: 2 per vdev, 8 total
  • Err codemadness.org 70 i 40661
Err codemadness.org 70 i 40662 Err codemadness.org 70 i 40663
Err codemadness.org 70 i 40664

While we have sacrificed some write performance and capacity, the pool is now extremely fault tolerant. This configuration is probably not practical for most applications and it would make more sense to use lower fault tolerance and set up an offsite backup system.
Err codemadness.org 70 i 40665 Striped and mirrored vdevs are fantastic for access speed performance, but they either leave you with no redundancy whatsoever or impose at least a 50% penalty on the total usable space of your pool. In the next post, we will cover RAIDZ, which lets you keep data redundancy without sacrificing as much storage space efficiency. We’ll also look at some example workload scenarios and decide which layout would be the best fit for each.

Err codemadness.org 70 i 40666
Err codemadness.org 70 i 40667 Err codemadness.org 70 i 40668


Err codemadness.org 70 i 40669 Err codemadness.org 70 i 40670

###2FA with ssh on OpenBSD

Err codemadness.org 70 i 40671 Err codemadness.org 70 i 40672
Err codemadness.org 70 i 40673

Five years ago I wrote about using a yubikey on OpenBSD. The only problem with doing this is that there’s no validation server available on OpenBSD, so you need to use a different OTP slot for each machine. (You don’t want to risk a replay attack if someone succeeds in capturing an OTP on one machine, right?) Yubikey has two OTP slots per device, so you would need a yubikey for every two machines with which you’d like to use it. You could use a bastion—and use only one yubikey—but I don’t like the SPOF aspect of a bastion. YMMV.
Err codemadness.org 70 i 40674 After I played with TOTP, I wanted to use them as a 2FA for ssh. At the time of writing, we can’t do that using only the tools in base. This article focuses on OpenBSD; if you use another operating system, here are two handy links.

Err codemadness.org 70 i 40675
Err codemadness.org 70 i 40676 Err codemadness.org 70 i 40677
    Err codemadness.org 70 i 40678
  • SEED CONFIGURATION
  • Err codemadness.org 70 i 40679
Err codemadness.org 70 i 40680 Err codemadness.org 70 i 40681
Err codemadness.org 70 i 40682

The first thing we need to do is to install the software which will be used to verify the OTPs we submit.

Err codemadness.org 70 i 40683
Err codemadness.org 70 i 40684 Err codemadness.org 70 i 40685

# pkg_add login_oath

Err codemadness.org 70 i 40686 Err codemadness.org 70 i 40687
Err codemadness.org 70 i 40688

We need to create a secret - aka, the seed - that will be used to calculate the Time-based One-Time Passwords. We should make sure no one can read or change it.

Err codemadness.org 70 i 40689
Err codemadness.org 70 i 40690 Err codemadness.org 70 i 40691

$ openssl rand -hex 20 > ~/.totp-key
Err codemadness.org 70 i 40692 $ chmod 400 ~/.totp-key

Err codemadness.org 70 i 40693 Err codemadness.org 70 i 40694
Err codemadness.org 70 i 40695

Now we have a hexadecimal key, but apps usually want a base32 secret. I initially wrote a small script to do the conversion.
Err codemadness.org 70 i 40696 While writing this article, I took the opportunity to improve it. When I initially wrote this utility for my use, python-qrcode hadn’t yet been imported to the OpenBSD ports/packages system. It’s easy to install now, so let’s use it.
Err codemadness.org 70 i 40697 Here’s the improved version. It will ask for the hex key and output the secret as a base32-encoded string, both with and without spacing so you can copy-paste it into your password manager or easily retype it. It will then ask for the information needed to generate a QR code. Adding our new OTP secret to any mobile app using the QR code will be super easy!

Err codemadness.org 70 i 40698
Err codemadness.org 70 i 40699 Err codemadness.org 70 i 40700
    Err codemadness.org 70 i 40701
  • SYSTEM CONFIGURATION
  • Err codemadness.org 70 i 40702
Err codemadness.org 70 i 40703 Err codemadness.org 70 i 40704
Err codemadness.org 70 i 40705

We can now move to the configuration of the system to put our new TOTP to use. As you might guess, it’s going to be quite close to what we did with the yubikey.
Err codemadness.org 70 i 40706 We need to tweak login.conf. Be careful and keep a root shell open at all times. The few times I broke my OpenBSD were because I messed with login.conf without showing enough care.

Err codemadness.org 70 i 40707
Err codemadness.org 70 i 40708 Err codemadness.org 70 i 40709
    Err codemadness.org 70 i 40710
  • SSHD CONFIGURATION
  • Err codemadness.org 70 i 40711
Err codemadness.org 70 i 40712 Err codemadness.org 70 i 40713
Err codemadness.org 70 i 40714

Again, keeping a root shell around decreases the risk of losing access to the system and being locked outside.
Err codemadness.org 70 i 40715 A good standard is to use PasswordAuthentication no and to use public key only. Except… have a guess what the P stands for in TOTP. Yes, congrats, you guessed it!
Err codemadness.org 70 i 40716 We need to switch to PasswordAuthentication yes. However, if we made this change alone, sshd would then accept a public key OR a password (which are TOTP because of our login.conf). 2FA uses both at the same time.
Err codemadness.org 70 i 40717 To inform sshd we intend to use both, we need to set AuthenticationMethods publickey,password. This way, the user trying to login will first need to perform the traditional publickey authentication. Once that’s done, ssh will prompt for a password and the user will need to submit a valid TOTP for the system.
Err codemadness.org 70 i 40718 We could do this the other way around, but I think bots could try passwords, wasting resources. Evaluated in this order, failing to provide a public key leads to sshd immediately declining your attempt.

Err codemadness.org 70 i 40719
Err codemadness.org 70 i 40720 Err codemadness.org 70 i 40721
    Err codemadness.org 70 i 40722
  • IMPROVING SECURITY WITHOUT IMPACTING UX
  • Err codemadness.org 70 i 40723
Err codemadness.org 70 i 40724 Err codemadness.org 70 i 40725
Err codemadness.org 70 i 40726

My phone has a long enough password that most of the time, I fail to type it correctly on the first try. Of course, if I had to unlock my phone, launch my TOTP app and use my keyboard to enter what I see on my phone’s screen, I would quickly disable 2FA.
Err codemadness.org 70 i 40727 To find a balance, I have whitelisted certain IP addresses and users. If I connect from a particular IP address or as a specific user, I don’t want to go through 2FA. For some users, I might not even enable 2FA.
Err codemadness.org 70 i 40728 To sum up, we covered how to create a seed, how to perform a hexadecimal to base32 conversion and how to create a QR code for mobile applications. We configured the login system with login.conf so that ssh authentication uses the TOTP login system, and we told sshd to ask for both the public key and the Time-based One-Time Password. Now you should be all set to use two-factor ssh authentication on OpenBSD!

Err codemadness.org 70 i 40729
Err codemadness.org 70 i 40730 Err codemadness.org 70 i 40731


Err codemadness.org 70 i 40732 Err codemadness.org 70 i 40733

##News Roundup
Err codemadness.org 70 i 40734 ###How ZFS maintains file type information in directories

Err codemadness.org 70 i 40735 Err codemadness.org 70 i 40736
Err codemadness.org 70 i 40737

As an aside in yesterday’s history of file type information being available in Unix directories, I mentioned that it was possible for a filesystem to support this even though its Unix didn’t. By supporting it, I mean that the filesystem maintains this information in its on disk format for directories, even though the rest of the kernel will never ask for it. This is what ZFS does.
Err codemadness.org 70 i 40738 The easiest way to see that ZFS does this is to use zdb to dump a directory. I’m going to do this on an OmniOS machine, to make it more convincing, and it turns out that this has some interesting results. Since this is OmniOS, we don’t have the convenience of just naming a directory in zdb, so let’s find the root directory of a filesystem, starting from dnode 1 (as seen before).

Err codemadness.org 70 i 40739
Err codemadness.org 70 i 40740 Err codemadness.org 70 i 40741

# zdb -dddd fs3-corestaff-01/h/281 1
Err codemadness.org 70 i 40742 Dataset [....]
Err codemadness.org 70 i 40743 [...]
Err codemadness.org 70 i 40744 microzap: 512 bytes, 4 entries
Err codemadness.org 70 i 40745 [...]
Err codemadness.org 70 i 40746 ROOT = 3
Err codemadness.org 70 i 40747
Err codemadness.org 70 i 40748 # zdb -dddd fs3-corestaff-01/h/281 3
Err codemadness.org 70 i 40749 Object lvl iblk dblk dsize lsize %full type
Err codemadness.org 70 i 40750 3 1 16K 1K 8K 1K 100.00 ZFS directory
Err codemadness.org 70 i 40751 [...]
Err codemadness.org 70 i 40752 microzap: 1024 bytes, 8 entries
Err codemadness.org 70 i 40753
Err codemadness.org 70 i 40754 RESTORED = 4396504 (type: Directory)
Err codemadness.org 70 i 40755 ckstst = 12017 (type: not specified)
Err codemadness.org 70 i 40756 ckstst3 = 25069 (type: Directory)
Err codemadness.org 70 i 40757 .demo-file = 5832188 (type: Regular File)
Err codemadness.org 70 i 40758 .peergroup = 12590 (type: not specified)
Err codemadness.org 70 i 40759 cks = 5 (type: not specified)
Err codemadness.org 70 i 40760 cksimap1 = 5247832 (type: Directory)
Err codemadness.org 70 i 40761 .diskuse = 12016 (type: not specified)
Err codemadness.org 70 i 40762 ckstst2 = 12535 (type: not specified)

Err codemadness.org 70 i 40763 Err codemadness.org 70 i 40764
Err codemadness.org 70 i 40765

This is actually an old filesystem (it dates from Solaris 10 and has been transferred around with ‘zfs send | zfs recv’ since then), but various home directories for real and test users have been created in it over time (you can probably guess which one is the oldest one). Sufficiently old directories and files have no file type information, but more recent ones have this information, including .demo-file, which I made just now so this would have an entry that was a regular file with type information.
Err codemadness.org 70 i 40766 Once I dug into it, this turned out to be a change introduced (or activated) in ZFS filesystem version 2, which is described in ‘zfs upgrade -v’ as ‘enhanced directory entries’. As an actual change in (Open)Solaris, it dates from mid 2007, although I’m not sure what Solaris release it made it into. The upshot is that if you made your ZFS filesystem any time in the last decade, you’ll have this file type information in your directories.
Err codemadness.org 70 i 40767 How ZFS stores this file type information is interesting and clever, especially when it comes to backwards compatibility. I’ll start by quoting the comment from zfs_znode.h:

Err codemadness.org 70 i 40768
Err codemadness.org 70 i 40769 Err codemadness.org 70 i 40770

/*
Err codemadness.org 70 i 40771 * The directory entry has the type (currently unused on
Err codemadness.org 70 i 40772 * Solaris) in the top 4 bits, and the object number in
Err codemadness.org 70 i 40773 * the low 48 bits. The "middle" 12 bits are unused.
Err codemadness.org 70 i 40774 */

Err codemadness.org 70 i 40775 Err codemadness.org 70 i 40776
Err codemadness.org 70 i 40777

In yesterday’s entry I said that Unix directory entries need to store at least the filename and the inode number of the file. What ZFS is doing here is reusing the 64 bit field used for the ‘inode’ (the ZFS dnode number) to also store the file type, because it knows that object numbers have only a limited range. This also makes old directory entries compatible, by making type 0 (all 4 bits 0) mean ‘not specified’. Since old directory entries only stored the object number and the object number is 48 bits or less, the higher bits are guaranteed to be all zero.
Err codemadness.org 70 i 40778 The reason this needed a new ZFS filesystem version is now clear. If you tried to read directory entries with file type information on a version of ZFS that didn’t know about them, the old version would likely see crazy (and non-existent) object numbers and nothing would work. In order to even read a ‘file type in directory entries’ filesystem, you need to know to only look at the low 48 bits of the object number field in directory entries.

Err codemadness.org 70 i 40779
Err codemadness.org 70 i 40780 Err codemadness.org 70 i 40781


Err codemadness.org 70 i 40782 Err codemadness.org 70 i 40783

###Everything old is new again

Err codemadness.org 70 i 40784 Err codemadness.org 70 i 40785
Err codemadness.org 70 i 40786

Just because KDE4-era software has been deprecated by the KDE-FreeBSD team in the official ports-repository, doesn’t mean we don’t care for it while we still need to. KDE4 was released on January 11th, 2008 — I still have the T-shirt — which was a very different C++ world than what we now live in. Much of the code pre-dates the availability of C11 — certainly the availability of compilers with C11 support. The language has changed a great deal in those ten years since the original release.
Err codemadness.org 70 i 40787 The platforms we run KDE code on have, too — FreeBSD 12 is a long way from the FreeBSD 6 or 7 that were current at release (although at the time, I was more into OpenSolaris). In particular, since then the FreeBSD world has switched over to Clang, and FreeBSD current is experimenting with Clang 7. So we’re seeing KDE4-era code being built, and running, on FreeBSD 12 with Clang 7. That’s a platform with a very different idea of what constitutes correct code, than what the code was originally written for. (Not quite as big a difference as Helio’s KDE1 efforts, though)
Err codemadness.org 70 i 40788 So, while we’re counting down to removing KDE4 from the FreeBSD ports tree, we’re also going through and fixing it to work with Clang 7, which defaults to a newer C++ standard and which is quite picky about some things. Some time in the distant past, when pointers were integers and NULL was zero, there was some confusion about booleans. So there’s lots of code that does list.contains(element) > 0 … this must have been a trick before booleans were a supported type in all our compilers. In any case it breaks with Clang 7, since contains() returns a QBool which converts to a nullptr (when false) which isn’t comparable to the integer 0. Suffice to say I’ve spent more time reading KDE4-era code this month, than in the past two years.
Err codemadness.org 70 i 40789 However, work is proceeding apace, so if you really really want to, you can still get your old-school kicks on a new platform. Because we care about packaging things right, even when we want to get rid of it.

Err codemadness.org 70 i 40790
Err codemadness.org 70 i 40791 Err codemadness.org 70 i 40792


Err codemadness.org 70 i 40793 Err codemadness.org 70 i 40794

###OpenBSD netcat demystified

Err codemadness.org 70 i 40795 Err codemadness.org 70 i 40796
Err codemadness.org 70 i 40797

Owing to its versatile functionalities, netcat earns the reputation as “TCP/IP Swiss army knife”. For example, you can create a simple chat app using netcat:

Err codemadness.org 70 i 40798
Err codemadness.org 70 i 40799 Err codemadness.org 70 i 40800
    Err codemadness.org 70 i 40801
  • (1) Open a terminal and input following command:
  • Err codemadness.org 70 i 40802
Err codemadness.org 70 i 40803 Err codemadness.org 70 i 40804

# nc -l 3003

Err codemadness.org 70 i 40805 Err codemadness.org 70 i 40806
Err codemadness.org 70 i 40807

This means a netcat process will listen on 3003 port in this machine (the IP address of current machine is 192.168.35.176).

Err codemadness.org 70 i 40808
Err codemadness.org 70 i 40809 Err codemadness.org 70 i 40810
    Err codemadness.org 70 i 40811
  • (2) Connect aforemontioned netcat process in another machine, and send a greeting:
  • Err codemadness.org 70 i 40812
Err codemadness.org 70 i 40813 Err codemadness.org 70 i 40814

# nc 192.168.35.176 3003
Err codemadness.org 70 i 40815 hello

Err codemadness.org 70 i 40816 Err codemadness.org 70 i 40817
Err codemadness.org 70 i 40818

Then in the first machine’s terminal, you will see the “hello” text:

Err codemadness.org 70 i 40819
Err codemadness.org 70 i 40820 Err codemadness.org 70 i 40821

# nc -l 3003
Err codemadness.org 70 i 40822 hello

Err codemadness.org 70 i 40823 Err codemadness.org 70 i 40824
Err codemadness.org 70 i 40825

A primitive chatroom is built successfully. Very cool! Isn’t it? I think many people can’t wait to explore more features of netcatnow. If you are among them, congratulations! This tutorial may be the correct place for you.
Err codemadness.org 70 i 40826 In the following parts, I will delve into OpenBSD’s netcatcode to give a detailed anatomy of it. The reason of picking OpenBSD’s netcat rather than others’ is because its code repository is small (~2000 lines of code) and neat. Furthermore, I also hope this little book can assist you learn more socket programming knowledge not just grasping usage of netcat.
Err codemadness.org 70 i 40827 We’re all set. Let’s go!

Err codemadness.org 70 i 40828
Err codemadness.org 70 i 40829 Err codemadness.org 70 i 40830


Err codemadness.org 70 i 40831 Err codemadness.org 70 i 40832

##Beastie Bits

Err codemadness.org 70 i 40833 Err codemadness.org 70 i 40834 Err codemadness.org 70 i 40842 Err codemadness.org 70 i 40843


Err codemadness.org 70 i 40844 Err codemadness.org 70 i 40845

##Feedback/Questions

Err codemadness.org 70 i 40846 Err codemadness.org 70 i 40847 Err codemadness.org 70 i 40853 Err codemadness.org 70 i 40854


Err codemadness.org 70 i 40855 Err codemadness.org 70 i 40856
    Err codemadness.org 70 i 40857
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 40858
Err codemadness.org 70 i 40859 Err codemadness.org 70 i 40860


]]> Err codemadness.org 70 i 40861
Err codemadness.org 70 i 40862 https://fireside.fm/player/v2/FYhhasNR+tDconsoz Err codemadness.org 70 i 40863 Err codemadness.org 70 i 40864 ]]> Err codemadness.org 70 i 40865 Err codemadness.org 70 i 40866
Err codemadness.org 70 i 40867 Err codemadness.org 70 i 40868 Episode 267: Absolute FreeBSD | BSD Now 267 Err codemadness.org 70 i 40869 https://www.bsdnow.tv/267 Err codemadness.org 70 i 40870 http://feed.jupiter.zone/bsdnow#entry-2689 Err codemadness.org 70 i 40871 Wed, 10 Oct 2018 03:00:00 -0700 Err codemadness.org 70 i 40872 Allan Jude Err codemadness.org 70 i 40873 Err codemadness.org 70 i 40874 full Err codemadness.org 70 i 40875 Allan Jude Err codemadness.org 70 i 40876 We have a long interview with fiction and non-fiction author Michael W. Lucas for you this week as well as questions from the audience. Err codemadness.org 70 i 40877 1:07:38 Err codemadness.org 70 i 40878 no Err codemadness.org 70 i 40879 Err codemadness.org 70 i 40880 We have a long interview with fiction and non-fiction author Michael W. Lucas for you this week as well as questions from the audience. Err codemadness.org 70 i 40881 <p>##Headlines<br> Err codemadness.org 70 i 40882 Interview - Michael W. Lucas - <a href="mailto:mwlucas@michaelwlucas.com">mwlucas@michaelwlucas.com</a> / <a href="https://twitter.com/mwlauthor">@mwlauthor</a></p> Err codemadness.org 70 i 40883 <ul> Err codemadness.org 70 i 40884 <li>BR: [Welcome Back]</li> Err codemadness.org 70 i 40885 <li>AJ: What have you been doing since last we talked to you [ed, ssh, and af3e]</li> Err codemadness.org 70 i 40886 <li>BR: Tell us more about AF3e</li> Err codemadness.org 70 i 40887 <li>AJ: How did the first Absolute FreeBSD come about?</li> Err codemadness.org 70 i 40888 <li>BR: Do you have anything special planned for MeetBSD?</li> Err codemadness.org 70 i 40889 <li>AJ: What are you working on now? [FM:Jails, Git sync Murder]</li> Err codemadness.org 70 i 40890 <li>BR: What are your plans for next year?</li> Err codemadness.org 70 i 40891 <li>AJ: How has SEMIBug been going?</li> Err codemadness.org 70 i 40892 </ul> Err codemadness.org 70 i 40893 <p>Auction at <a href="https://mwl.io">https://mwl.io</a><br> Err codemadness.org 70 i 40894 Patreon Link:</p> Err codemadness.org 70 i 40895 <hr> Err codemadness.org 70 i 40896 <p>##Feedback/Questions</p> Err codemadness.org 70 i 40897 <ul> Err codemadness.org 70 i 40898 <li>Paul - <a href="http://dpaste.com/0Q6C25T#wrap">Recent bhyve related videos (daemon)</a></li> Err codemadness.org 70 i 40899 <li>Michael - <a href="http://dpaste.com/1YTR9FZ">freebsd-update question</a></li> Err codemadness.org 70 i 40900 <li>Sigflup - <a href="http://dpaste.com/3799BBX#wrap">pkg file search</a></li> Err codemadness.org 70 i 40901 </ul> Err codemadness.org 70 i 40902 <hr> Err codemadness.org 70 i 40903 <ul> Err codemadness.org 70 i 40904 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 40905 </ul> Err codemadness.org 70 i 40906 <hr> Err codemadness.org 70 i 40907 Err codemadness.org 70 i 40908 freebsd,openbsd,netbsd,dragonflybsd,trueos,trident,hardenedbsd,tutorial,howto,guide,bsd,interview,netcat,kde yubikey,2fa,ssh,zfs,performance Err codemadness.org 70 i 40909 Err codemadness.org 70 i 40910 We have a long interview with fiction and non-fiction author Michael W. Lucas for you this week as well as questions from the audience.

Err codemadness.org 70 i 40911 Err codemadness.org 70 i 40912

##Headlines
Err codemadness.org 70 i 40913 ##Interview - Michael W. Lucas - mwlucas@michaelwlucas.com / @mwlauthor

Err codemadness.org 70 i 40914 Err codemadness.org 70 i 40915
    Err codemadness.org 70 i 40916
  • BR: [Welcome Back]
  • Err codemadness.org 70 i 40917
  • AJ: What have you been doing since last we talked to you [ed, ssh, and af3e]
  • Err codemadness.org 70 i 40918
  • BR: Tell us more about AF3e
  • Err codemadness.org 70 i 40919
  • AJ: How did the first Absolute FreeBSD come about?
  • Err codemadness.org 70 i 40920
  • BR: Do you have anything special planned for MeetBSD?
  • Err codemadness.org 70 i 40921
  • AJ: What are you working on now? [FM:Jails, Git sync Murder]
  • Err codemadness.org 70 i 40922
  • BR: What are your plans for next year?
  • Err codemadness.org 70 i 40923
  • AJ: How has SEMIBug been going?
  • Err codemadness.org 70 i 40924
Err codemadness.org 70 i 40925 Err codemadness.org 70 i 40926

Auction at https://mwl.io
Err codemadness.org 70 i 40927 Patreon Link:

Err codemadness.org 70 i 40928 Err codemadness.org 70 i 40929


Err codemadness.org 70 i 40930 Err codemadness.org 70 i 40931

##Feedback/Questions

Err codemadness.org 70 i 40932 Err codemadness.org 70 i 40933 Err codemadness.org 70 i 40938 Err codemadness.org 70 i 40939


Err codemadness.org 70 i 40940 Err codemadness.org 70 i 40941
    Err codemadness.org 70 i 40942
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 40943
Err codemadness.org 70 i 40944 Err codemadness.org 70 i 40945


]]> Err codemadness.org 70 i 40946
Err codemadness.org 70 i 40947 Err codemadness.org 70 i 40948 We have a long interview with fiction and non-fiction author Michael W. Lucas for you this week as well as questions from the audience.

Err codemadness.org 70 i 40949 Err codemadness.org 70 i 40950

##Headlines
Err codemadness.org 70 i 40951 ##Interview - Michael W. Lucas - mwlucas@michaelwlucas.com / @mwlauthor

Err codemadness.org 70 i 40952 Err codemadness.org 70 i 40953
    Err codemadness.org 70 i 40954
  • BR: [Welcome Back]
  • Err codemadness.org 70 i 40955
  • AJ: What have you been doing since last we talked to you [ed, ssh, and af3e]
  • Err codemadness.org 70 i 40956
  • BR: Tell us more about AF3e
  • Err codemadness.org 70 i 40957
  • AJ: How did the first Absolute FreeBSD come about?
  • Err codemadness.org 70 i 40958
  • BR: Do you have anything special planned for MeetBSD?
  • Err codemadness.org 70 i 40959
  • AJ: What are you working on now? [FM:Jails, Git sync Murder]
  • Err codemadness.org 70 i 40960
  • BR: What are your plans for next year?
  • Err codemadness.org 70 i 40961
  • AJ: How has SEMIBug been going?
  • Err codemadness.org 70 i 40962
Err codemadness.org 70 i 40963 Err codemadness.org 70 i 40964

Auction at https://mwl.io
Err codemadness.org 70 i 40965 Patreon Link:

Err codemadness.org 70 i 40966 Err codemadness.org 70 i 40967


Err codemadness.org 70 i 40968 Err codemadness.org 70 i 40969

##Feedback/Questions

Err codemadness.org 70 i 40970 Err codemadness.org 70 i 40971 Err codemadness.org 70 i 40976 Err codemadness.org 70 i 40977


Err codemadness.org 70 i 40978 Err codemadness.org 70 i 40979
    Err codemadness.org 70 i 40980
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 40981
Err codemadness.org 70 i 40982 Err codemadness.org 70 i 40983


]]> Err codemadness.org 70 i 40984
Err codemadness.org 70 i 40985 https://fireside.fm/player/v2/FYhhasNR+VV3UYOcT Err codemadness.org 70 i 40986 Err codemadness.org 70 i 40987 ]]> Err codemadness.org 70 i 40988 Err codemadness.org 70 i 40989
Err codemadness.org 70 i 40990 Err codemadness.org 70 i 40991 Episode 266: File Type History | BSD Now 266 Err codemadness.org 70 i 40992 https://www.bsdnow.tv/266 Err codemadness.org 70 i 40993 http://feed.jupiter.zone/bsdnow#entry-2661 Err codemadness.org 70 i 40994 Wed, 03 Oct 2018 10:00:00 -0700 Err codemadness.org 70 i 40995 Allan Jude Err codemadness.org 70 i 40996 Err codemadness.org 70 i 40997 full Err codemadness.org 70 i 40998 Allan Jude Err codemadness.org 70 i 40999 Running OpenBSD/NetBSD on FreeBSD using grub2-bhyve, vermaden’s FreeBSD story, thoughts on OpenBSD on the desktop, history of file type info in Unix dirs, Multiboot a Pinebook KDE neon image, and more. Err codemadness.org 70 i 41000 1:15:00 Err codemadness.org 70 i 41001 no Err codemadness.org 70 i 41002 Err codemadness.org 70 i 41003 Running OpenBSD/NetBSD on FreeBSD using grub2-bhyve, vermaden’s FreeBSD story, thoughts on OpenBSD on the desktop, history of file type info in Unix dirs, Multiboot a Pinebook KDE neon image, and more. Err codemadness.org 70 i 41004 <p>##Headlines<br> Err codemadness.org 70 i 41005 <a href="https://oshogbo.vexillium.org/blog/53/">OpenBSD/NetBSD on FreeBSD using grub2-bhyve</a></p> Err codemadness.org 70 i 41006 <blockquote> Err codemadness.org 70 i 41007 <p>When I was writing a blog post about the process title, I needed a couple of virtual machines with OpenBSD, NetBSD, and Ubuntu. Before that day I mainly used FreeBSD and Windows with bhyve. I spent some time trying to set up an OpenBSD using bhyve and UEFI as described here. I had numerous problems trying to use it, and this was the day I discovered the grub2-bhyve tool, and I love it!<br> Err codemadness.org 70 i 41008 The grub2-bhyve allows you to load a kernel using GRUB bootloader. GRUB supports most of the operating systems with a standard configuration, so exactly the same method can be used to install NetBSD or Ubuntu. First, let’s install grub2-bhyve on our FreeBSD box:</p> Err codemadness.org 70 i 41009 </blockquote> Err codemadness.org 70 i 41010 <p><code># pkg install grub2-bhyve</code></p> Err codemadness.org 70 i 41011 <blockquote> Err codemadness.org 70 i 41012 <p>To run grub2-bhyve we need to provide at least the name of the VM. In bhyve, if the memsize is not specified the default VM is created with 256MB of the memory.</p> Err codemadness.org 70 i 41013 </blockquote> Err codemadness.org 70 i 41014 <p><code># grub-bhyve test</code><br> Err codemadness.org 70 i 41015 <code>GNU GRUB version 2.00</code><br> Err codemadness.org 70 i 41016 <code>Minimal BASH-like line editing is supported. For the first word, TAB lists possible command</code><br> Err codemadness.org 70 i 41017 <code>completions. Anywhere else TAB lists possible device or file completions.</code><br> Err codemadness.org 70 i 41018 <code></code><br> Err codemadness.org 70 i 41019 <code></code><br> Err codemadness.org 70 i 41020 <code>grub&gt;</code></p> Err codemadness.org 70 i 41021 <blockquote> Err codemadness.org 70 i 41022 <p>After running grub-bhyve command we will enter the GRUB loader. If we type the ls command, we will see all the available devices. In the case of the grub2-bhyve there is one additional device called “(host)” that is always available and allows the host filesystem to be accessed. We can list files under that device.</p> Err codemadness.org 70 i 41023 </blockquote> Err codemadness.org 70 i 41024 <p><code>grub&gt; ls</code><br> Err codemadness.org 70 i 41025 <code>(host)</code><br> Err codemadness.org 70 i 41026 <code>grub&gt; ls (host)/</code><br> Err codemadness.org 70 i 41027 <code>libexec/ bin/ usr/ bhyve/ compat/ tank/ etc/ boot/ net/ entropy proc/ lib/ root/ sys/ mnt/ rescue/ tmp/ home/ sbin/ media/ jail/ COPYRIGHT var/ dev/</code><br> Err codemadness.org 70 i 41028 <code>grub&gt;</code></p> Err codemadness.org 70 i 41029 <blockquote> Err codemadness.org 70 i 41030 <p>To exit console simply type ‘reboot’. I would like to install my new operating system under a ZVOL <code>ztank/bhyve/post</code>. On another terminal, we create:</p> Err codemadness.org 70 i 41031 </blockquote> Err codemadness.org 70 i 41032 <p><code># zfs create -V 10G ztank/bhyve/post</code></p> Err codemadness.org 70 i 41033 <blockquote> Err codemadness.org 70 i 41034 <p>If you don’t use ZFS for some crazy reason you can also create a raw blob using the truncate(1) command.</p> Err codemadness.org 70 i 41035 </blockquote> Err codemadness.org 70 i 41036 <p><code># truncate -s 10G post.img</code></p> Err codemadness.org 70 i 41037 <blockquote> Err codemadness.org 70 i 41038 <p>I recommend installing an operating system from the disk image (installXX.fs for OpenBSD and NetBSD-X.X-amd64-install.img for NetBSD). Now we need to create a device map for a GRUB.</p> Err codemadness.org 70 i 41039 </blockquote> Err codemadness.org 70 i 41040 <p><code>cat &gt; /tmp/post.map &lt;&lt; EOF</code><br> Err codemadness.org 70 i 41041 <code>(hd0) /directory/to/disk/image</code><br> Err codemadness.org 70 i 41042 <code>(hd1) /dev/zvol/ztank/bhyve/post</code><br> Err codemadness.org 70 i 41043 <code>EOF</code></p> Err codemadness.org 70 i 41044 <blockquote> Err codemadness.org 70 i 41045 <p>The mapping files describe the names for files in the GRUB. In our case under hd0 we will have an installation image and in hd1 we will have our ZVOL/blob. You can also try to use an ISO image then instead of using hd0 device name use a cd0. When we will run the grub-bhyve command we will see two additional devices.</p> Err codemadness.org 70 i 41046 </blockquote> Err codemadness.org 70 i 41047 <p><code># grub-bhyve -m /tmp/post.map post</code><br> Err codemadness.org 70 i 41048 <code>grub&gt; ls</code><br> Err codemadness.org 70 i 41049 <code>(hd0) (hd0,msdos4) (hd0,msdos1) (hd0,openbsd9) (hd0,openbsd1) (hd1) (host)</code></p> Err codemadness.org 70 i 41050 <blockquote> Err codemadness.org 70 i 41051 <p>The hd0 (in this example OpenBSD image) contains multiple partitions. We can check what is on it.</p> Err codemadness.org 70 i 41052 </blockquote> Err codemadness.org 70 i 41053 <p><code>grub&gt; ls (hd0,msdos4)/</code><br> Err codemadness.org 70 i 41054 <code>boot bsd 6.4/ etc/</code></p> Err codemadness.org 70 i 41055 <blockquote> Err codemadness.org 70 i 41056 <p>And this is the partition that contains a kernel. Now we can set a root device, load an OpenBSD kernel and boot:</p> Err codemadness.org 70 i 41057 </blockquote> Err codemadness.org 70 i 41058 <p><code>grub&gt; set root=(hd0,msdos4)</code><br> Err codemadness.org 70 i 41059 <code>grub&gt; kopenbsd -h com0 -r sd0a /bsd</code><br> Err codemadness.org 70 i 41060 <code>grub&gt; boot</code></p> Err codemadness.org 70 i 41061 <blockquote> Err codemadness.org 70 i 41062 <p>After that, we can run bhyve virtual machine. In my case it is:</p> Err codemadness.org 70 i 41063 </blockquote> Err codemadness.org 70 i 41064 <p><code># bhyve -c 1 -w -u -H \</code><br> Err codemadness.org 70 i 41065 <code>-s 0,amd_hostbridge \</code><br> Err codemadness.org 70 i 41066 <code>-s 3,ahci-hd,/directory/to/disk/image \</code><br> Err codemadness.org 70 i 41067 <code>-s 4,ahci-hd,/dev/zvol/ztank/bhyve/post \</code><br> Err codemadness.org 70 i 41068 <code>-s 31,lpc -l com1,stdio \</code><br> Err codemadness.org 70 i 41069 <code>post</code></p> Err codemadness.org 70 i 41070 <blockquote> Err codemadness.org 70 i 41071 <p>Unfortunately explaining the whole bhyve(8) command line is beyond this article. After installing the operating system remove hd0 from the mapping file and the image from the bhyve(8) command. If you don’t want to type all those GRUB commands, you can simply redirect them to the standard input.</p> Err codemadness.org 70 i 41072 </blockquote> Err codemadness.org 70 i 41073 <p><code>cat &lt;&lt; EOF | grub-bhyve -m /tmp/post.map -M 512 post</code><br> Err codemadness.org 70 i 41074 <code>set root=(hd0,4)</code><br> Err codemadness.org 70 i 41075 <code>kopenbsd -h com0 -r sd0a /bsd</code><br> Err codemadness.org 70 i 41076 <code>boot</code><br> Err codemadness.org 70 i 41077 <code>EOF</code></p> Err codemadness.org 70 i 41078 <hr> Err codemadness.org 70 i 41079 <p>###<a href="https://vermaden.wordpress.com/2018/09/07/my-freebsd-story/">My FreeBSD Story</a></p> Err codemadness.org 70 i 41080 <blockquote> Err codemadness.org 70 i 41081 <p>My first devices/computers/consoles (not at the same time) that I remember were Atari 2600 and Pegasus console which was hardware clone of the Nintendo NES.<br> Err codemadness.org 70 i 41082 Back then I did not even knew that it was Atari 2600 as I referred to it as Video Computer System … and I did not even knew any english by then. It took me about two decades to get to know (by accident) that this Video Computer System was Atari 2600<br> Err codemadness.org 70 i 41083 Then I got AMIGA 600 computer (or should I say my parents bought it for me) which served both for playing computer games and also other activities for the first time. AMIGA is the computer that had the greatest influence on me, as it was the first time I studied the books about Amiga Workbench operating system and learned commands from Amiga Shell terminal. I loved the idea of Ram Disk icon/directory on the desktop that allowed me to transparently put any things in system memory. I still miss that concept on today’s desktop systems … and I still remember how dismal I was when I watched Amiga Deathbed Vigil movie.<br> Err codemadness.org 70 i 41084 At the end of 1998 I got my first PC that of course came with Windows and that computer served both as gaming machine and as well as typical tool. One time I dig into the internals with Windows Registry (which left me disgusted by its concepts and implementation) and its limited command line interface provided by CMD.EXE executable. I remember that the heart of this box was not the CPU or the motherboard but the graphics accelerator – the legendary 3Dfx Voodoo card. This company (3Dfx) – their attitude and philosophy – also left solid fingerprint on my way. Like AMIGA did.<br> Err codemadness.org 70 i 41085 After ‘migration’ from AMIGA to PC it never again ‘felt right’. The games were cool but the Windows system was horrible. Time has passed and different Windows versions and hardware modifications took place. Windows XP felt really heavy at that time, not to mention Windows 2000 for example with even bigger hardware requirements. I also do not understand all the hate about Windows ME. It crashed with the same frequency as Windows 98 or later Windows 98 Second Edition but maybe my hardware was different ??<br> Err codemadness.org 70 i 41086 I do not have any ‘mine’ screenshots from that period as I lost all my 40 GB (huge then) drive of data when I moved/resized the partition with Partition Magic to get some more space from the less filled C: drive. That day I learned hard that “there are people who do backups and people who will do backups”. I never lost data again as I had multiple copies of my data, but the same as Netheril fall the lost data was was gone forever.<br> Err codemadness.org 70 i 41087 I always followed various alternatives which led me to try Linux in 2003, after reading about various distributions philosophies I decided to run Slackware Linux with KDE 3. My buddy used Aurox Linux by then (one of the few Linux distributions from Poland) and encouraged me to do the same – especially in the context of fixing possible problems as he already knew it and also as he recently dumped Windows system. But Slackware sounded like a better idea so I took that path instead. At first I dual booted between Windows XP and Slackware Linux cause I had everything worked out on the Windows world while I often felt helpless in the Linux world, so I would reboot into Windows to play some games or find a solution for Linux problem if that was required. I remember how strange the concept of dual clipboards (PRIMARY and SECONDARY) was for me by then. I was amazed why ‘so much better’ system as Linux (at least marketed that way) needs a system tray program to literally manage the clipboard. On Windows it was obvious, you do [CTRL]+[C] to copy and [CTRL]+[V] to paste things, but on Linux there (no I know its X11 feature) there were two clipboards that were synchronized by this little system tray program from KDE 3. It was also unthinkable for me that I will ‘lost’ contents of last/recent [CTRL]+[C] operation if I close the application from which the copy was made. I settled down a little on Slackware but not for long. I really did not liked manual dependency management for packages for example. Also KDE 3 was really ugly and despite trying all possible options I was not able to tweak it into something nice looking.<br> Err codemadness.org 70 i 41088 After half a year on Slackware I checked the Linux distributions again and decided to try Gentoo Linux. I definitely agree with the image below which visualizes Gentoo Linux experience, especially when You install it for he first time ??<br> Err codemadness.org 70 i 41089 Of course I went with the most hardcore version with self building Stage 1 (compiler and toolchain) which was horrible idea at that time because compilation on slow single core machine took forever … but after many hours I got Gentoo installed. I now have to decide which desktop environment to use. I have read a lot of good news about Fluxbox at that time so this is what I tried. It was very weird experience (to create everything in GUI from scratch) but very pleasant one. That recalled me the times of AMIGA … but Linux came in the way too much often. The more I dig into Gentoo Linux the more I read that lots of Gentoo features are based on FreeBSD solutions. Gentoo Portage is a clone of FreeBSD Ports. That ‘central’ /etc/rc.conf system configuration file concept was taken from FreeBSD as well. So I started to gather information about FreeBSD. The (then) FreeBSD website or FreeBSD Ports site (still) felt little outdated to say the least but that did not discouraged me.<br> Err codemadness.org 70 i 41090 Somewhere in 2005 I installed FreeBSD 5.4 on my computer. The beginnings were hard, like the earlier step with Gentoo but similarly like Gentoo the FreeBSD project came with a lot of great documentation. While Gentoo documentation is concentrated within various Gentoo Wiki sites the FreeBSD project comes with ‘official’ documentation in the form of Handbook and FAQ. I remember my first questions at the now nonexistent <a href="http://BSDForums.org">BSDForums.org</a> site – for example one of the first ones – how to scroll the terminal output in the plain console. I now know that I had to push Scroll Lock button but it was something totally new for me.<br> Err codemadness.org 70 i 41091 Why FreeBSD and not OpenBSD or NetBSD? Probably because Gentoo based most their concepts on the FreeBSD solutions, so that led me to FreeBSD instead of the other BSD operating systems. Currently I still use FreeBSD but I keep an steady eye on the OpenBSD, HardenedBSD and DragonFly BSD solutions and improvements.<br> Err codemadness.org 70 i 41092 As the migration path from Linux to FreeBSD is a lot easier – all configuration files from /home can be just copied – the migration was quite fast easy. I again had the Fluxbox configuration which I used on the Gentoo. Now – on FreeBSD – it started to fell even more like AMIGA times. Everything is/has been well thought and had its place and reason. The documentation was good and the FreeBSD Community was second to none.<br> Err codemadness.org 70 i 41093 After 15 years of using various Windows, UNIX (macOS/AIX/HP-UX/Solaris/OpenSolaris/Illumos/FreeBSD/OpenBSD/NetBSD) and UNIX-like (Linux) systems I always come to conclusion that FreeBSD is the system that sucks least. And sucks least with each release and one day I will write why FreeBSD is such great operating system … if I already haven’t</p> Err codemadness.org 70 i 41094 </blockquote> Err codemadness.org 70 i 41095 <hr> Err codemadness.org 70 i 41096 <p>##News Roundup<br> Err codemadness.org 70 i 41097 <a href="https://blog.gsora.xyz/openbsd-on-the-desktop-some-thoughts/">OpenBSD on the Desktop: some thoughts</a></p> Err codemadness.org 70 i 41098 <blockquote> Err codemadness.org 70 i 41099 <p>I’ve been using OpenBSD on my ThinkPad X230 for some weeks now, and the experience has been peculiar in some ways.<br> Err codemadness.org 70 i 41100 The OS itself in my opinion is not ready for widespread desktop usage, and the development team is not trying to push it in the throat of anybody who wants a Windows or macOS alternative. You need to understand a little bit of how *NIX systems work, because you’ll use CLI more than UI. That’s not necessarily bad, and I’m sure I learned a trick or two that could translate easily to Linux or macOS. Their development process is purely based on developers that love to contribute and hack around, just because it’s fun. Even the mailing list is a cool place to hang on! Code correctness and security are a must, nothing gets committed if it doesn’t get reviewed thoroughly first - nowadays the first two properties should be enforced in every major operating system.<br> Err codemadness.org 70 i 41101 I like the idea of a platform that continually evolves. pledge(2) and unveil(2) are the proof that with a little effort, you can secure existing software better than ever.<br> Err codemadness.org 70 i 41102 I like the “sensible defaults” approach, having an OS ready to be used - UI included if you selected it during the setup process - is great.<br> Err codemadness.org 70 i 41103 Just install a browser and you’re ready to go.<br> Err codemadness.org 70 i 41104 Manual pages on OpenBSD are real manuals, not an extension of the “–help” command found in most CLI softwares. They help you understand inner workings of the operating system, no internet connection needed. There are some trade-offs, too.<br> Err codemadness.org 70 i 41105 Performance is not first-class, mostly because of all the security mitigations and checks done at runtime.<br> Err codemadness.org 70 i 41106 I write Go code in neovim, and sometimes you can feel a slight slowdown when you’re compiling and editing multiple files at the same time, but usually I can’t notice any meaningful difference. Browsers are a different matter though, you can definitely feel something differs from the experience you can have on mainstream operating systems. But again, trade-offs.<br> Err codemadness.org 70 i 41107 To use OpenBSD on the desktop you must be ready to sacrifice some of the goodies of mainstream OSes, but if you’re searching for a zen place to do your computing stuff, it’s the best you can get right now.</p> Err codemadness.org 70 i 41108 </blockquote> Err codemadness.org 70 i 41109 <hr> Err codemadness.org 70 i 41110 <p>###<a href="https://utcc.utoronto.ca/~cks/space/blog/unix/DirectoryDTypeHistory">The history of file type information being available in Unix directories</a></p> Err codemadness.org 70 i 41111 <blockquote> Err codemadness.org 70 i 41112 <p>The two things that Unix directory entries absolutely have to have are the name of the directory entry and its ‘inode’, by which we generically mean some stable kernel identifier for the file that will persist if it gets renamed, linked to other directories, and so on. Unsurprisingly, directory entries have had these since the days when you read the raw bytes of directories with read(), and for a long time that was all they had; if you wanted more than the name and the inode number, you had to stat() the file, not just read the directory. Then, well, I’ll quote myself from an old entry on a find optimization:<br> Err codemadness.org 70 i 41113 […], Unix filesystem developers realized that it was very common for programs reading directories to need to know a bit more about directory entries than just their names, especially their file types (find is the obvious case, but also consider things like ‘ls -F’). Given that the type of an active inode never changes, it’s possible to embed this information straight in the directory entry and then return this to user level, and that’s what developers did; on some systems, readdir(3) will now return directory entries with an additional dtype field that has the directory entry’s type.<br> Err codemadness.org 70 i 41114 On Twitter, I recently grumbled about Illumos not having this dtype field. The ensuing conversation wound up with me curious about exactly where dtype came from and how far back it went. The answer turns out to be a bit surprising due to there being two sides of dtype.<br> Err codemadness.org 70 i 41115 On the kernel side, dtype appears to have shown up in 4.4 BSD. The 4.4 BSD /usr/src/sys/dirent.h has a struct dirent that has a dtype field, but the field isn’t documented in either the comments in the file or in the getdirentries(2) manpage; both of those admit only to the traditional BSD dirent fields. This 4.4 BSD dtype was carried through to things that inherited from 4.4 BSD (Lite), specifically FreeBSD, but it continued to be undocumented for at least a while.<br> Err codemadness.org 70 i 41116 (In FreeBSD, the most convenient history I can find is here, and the dtype field is present in sys/dirent.h as far back as FreeBSD 2.0, which seems to be as far as the repo goes for releases.)<br> Err codemadness.org 70 i 41117 Documentation for dtype appeared in the getdirentries(2) manpage in FreeBSD 2.2.0, where the manpage itself claims to have been updated on May 3rd 1995 (cf). In FreeBSD, this appears to have been part of merging 4.4 BSD ‘Lite2’, which seems to have been done in 1997. I stumbled over a repo of UCB BSD commit history, and in it the documentation appears in this May 3rd 1995 change, which at least has the same date. It appears that FreeBSD 2.2.0 was released some time in 1997, which is when this would have appeared in an official release.<br> Err codemadness.org 70 i 41118 In Linux, it seems that a dirent structure with a dtype member appeared only just before 2.4.0, which was released at the start of 2001. Linux took this long because the dtype field only appeared in the 64-bit ‘large file support’ version of the dirent structure, and so was only return by the new 64-bit getdents64() system call. This would have been a few years after FreeBSD officially documented dtype, and probably many years after it was actually available if you peeked at the structure definition.<br> Err codemadness.org 70 i 41119 As far as I can tell, dtype is present on Linux, FreeBSD, OpenBSD, NetBSD, Dragonfly BSD, and Darwin (aka MacOS or OS X). It’s not present on Solaris and thus Illumos. As far as other commercial Unixes go, you’re on your own; all the links to manpages for things like AIX from my old entry on the remaining Unixes appear to have rotted away.<br> Err codemadness.org 70 i 41120 Sidebar: The filesystem also matters on modern Unixes<br> Err codemadness.org 70 i 41121 Even if your Unix supports dtype in directory entries, it doesn’t mean that it’s supported by the filesystem of any specific directory. As far as I know, every Unix with dtype support has support for it in their normal local filesystems, but it’s not guaranteed to be in all filesystems, especially non-Unix ones like FAT32. Your code should always be prepared to deal with a file type of DTUNKNOWN.<br> Err codemadness.org 70 i 41122 It’s also possible to have things the other way around, where you have a filesystem with support for file type information in directories that’s on a Unix that doesn’t support it. There are a number of plausible reasons for this to happen, but they’re either obvious or beyond the scope of this entry.</p> Err codemadness.org 70 i 41123 </blockquote> Err codemadness.org 70 i 41124 <hr> Err codemadness.org 70 i 41125 <p>###<a href="https://euroquis.nl/bobulate/?p=1979">Multiboot Pinebook KDE neon</a></p> Err codemadness.org 70 i 41126 <blockquote> Err codemadness.org 70 i 41127 <p>Recently a KDE neon image for the Pinebook was announced. There is a new image, with a handful of fixes, which the KDE Plasma team has been working on over the past week and a half.<br> Err codemadness.org 70 i 41128 Here’s a picture of my Pinebook running KDE neon — watching Panic! At the Disco’s High Hopes — sitting in front of my monitor that’s hooked up to one of my openSUSE systems. There are still some errata, and watching video sucks up battery, but for hacking on documentation from my hammock in the garden, or doing IRC meetings it’s a really nice machine.<br> Err codemadness.org 70 i 41129 But one of the neat things about running KDE neon off of an SD card on the Pinebook is that it’s portable — that SD card can move around. So let’s talk about multiboot in the sense of “booting the same OS storage medium in different hardware units” rather than “booting different OS from a medium in a single hardware unit”. On these little ARM boards, u-boot does all the heavy lifting early in the boot process. So to re-use the KDE neon Pinebook image on another ARM board, the u-boot blocks need to be replaced.<br> Err codemadness.org 70 i 41130 I have the u-boot from a Pine64 image (I forget what) lying around, 1015 blocks of 1024 bytes, which I can dd over the u-boot blocks on the SD card, dd bs=1k conv=notrunc,sync if=uboot.img of=/dev/da0 seek=8, and then the same SD card, with the filesystem and data from the Pinebook, will boot on the Pine64 board. Of course, to move the SD card back again, I need to restore the Pinebook u-boot blocks.<br> Err codemadness.org 70 i 41131 Here’s a picture of my Pineboard (the base is a piece of the garden fence, it’s Douglas pine, with 4mm threaded rods acting as the corner posts for my Pine64 mini-rack), with power and network and a serial console attached, along with the serial console output of the same.<br> Err codemadness.org 70 i 41132 The nice thing here is that the same software stack runs on the Pine64 but then has a wired network — which in turn means that if I switch on the other boards in that mini-rack, I’ve got a distcc-capable cluster for fast development, and vast NFS storage (served from ZFS on my FreeBSD machines) for source. I can develop in a high(er) powered environment, and then swap the card around into the Pinebook for testing-on-the-go.<br> Err codemadness.org 70 i 41133 So to sum up: you can multiboot the KDE neon Pinebook image on other Pine64 hardware (i.e. the Pine64 board). To do so, you need to swap around u-boot blocks. The blocks can be picked out of an image built for each board, and then a particular image (e.g. the latest KDE neon Pinebook) can be run on either board.</p> Err codemadness.org 70 i 41134 </blockquote> Err codemadness.org 70 i 41135 <hr> Err codemadness.org 70 i 41136 <p>##Beastie Bits</p> Err codemadness.org 70 i 41137 <ul> Err codemadness.org 70 i 41138 <li><a href="http://lists.dragonflybsd.org/pipermail/users/2018-September/357883.html">Unexpected benefit with Ryzen – reducing power for build server</a></li> Err codemadness.org 70 i 41139 <li><a href="https://mwl.io/archives/3758">Happy #CIDRDay!</a></li> Err codemadness.org 70 i 41140 <li><a href="https://mwl.io/archives/3771">Absolute FreeBSD 3e ship date</a></li> Err codemadness.org 70 i 41141 <li><a href="http://www.mug.org/">MWL FreeBSD talk @ October 9th 2018 - MUG Meeting</a></li> Err codemadness.org 70 i 41142 <li><a href="https://www.ixsystems.com/blog/meetbsd-2018-countdown/">MeetBSD Oct 19-20</a></li> Err codemadness.org 70 i 41143 <li><a href="http://mailman.uk.freebsd.org/pipermail/ukfreebsd/2018-September/014218.html">October’s London *BSD meetup - 9th Oct 2018</a></li> Err codemadness.org 70 i 41144 <li><a href="https://www.bsd.nrw/">NRW BUG Meeting at Trivago Oct. 9</a></li> Err codemadness.org 70 i 41145 <li><a href="https://blog.socruel.nu/misc/eurobsdcon-2018.html">Lars Wittebrood blogs about his visit to EuroBSDCon 2018</a></li> Err codemadness.org 70 i 41146 <li><a href="https://undeadly.org/cgi?action=article;sid=20180925075334">EuroBSDcon 2018 OpenBSD slides available</a></li> Err codemadness.org 70 i 41147 <li><a href="https://2018.eurobsdcon.org/talks-speakers/">EuroBSDCon conference site has most slides as well</a></li> Err codemadness.org 70 i 41148 </ul> Err codemadness.org 70 i 41149 <hr> Err codemadness.org 70 i 41150 <p>##Feedback/Questions</p> Err codemadness.org 70 i 41151 <ul> Err codemadness.org 70 i 41152 <li>Brad - <a href="http://dpaste.com/3T9M2QC#wrap">Unmounted ZFS sends</a></li> Err codemadness.org 70 i 41153 <li>Niclas - <a href="http://dpaste.com/11TKDK2">Report from a Meetup</a></li> Err codemadness.org 70 i 41154 <li>Ghislain - <a href="http://dpaste.com/2790GC6">Bhyve not used?</a></li> Err codemadness.org 70 i 41155 <li>Shane - <a href="http://dpaste.com/1P055SQ">zpool history and snapshots</a></li> Err codemadness.org 70 i 41156 </ul> Err codemadness.org 70 i 41157 <hr> Err codemadness.org 70 i 41158 <ul> Err codemadness.org 70 i 41159 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 41160 </ul> Err codemadness.org 70 i 41161 <hr> Err codemadness.org 70 i 41162 Err codemadness.org 70 i 41163 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, Ryzen, Pinebook, KDE Neon, bhyve, desktop Err codemadness.org 70 i 41164 Err codemadness.org 70 i 41165 Running OpenBSD/NetBSD on FreeBSD using grub2-bhyve, vermaden’s FreeBSD story, thoughts on OpenBSD on the desktop, history of file type info in Unix dirs, Multiboot a Pinebook KDE neon image, and more.

Err codemadness.org 70 i 41166 Err codemadness.org 70 i 41167

##Headlines
Err codemadness.org 70 i 41168 ###OpenBSD/NetBSD on FreeBSD using grub2-bhyve

Err codemadness.org 70 i 41169 Err codemadness.org 70 i 41170
Err codemadness.org 70 i 41171

When I was writing a blog post about the process title, I needed a couple of virtual machines with OpenBSD, NetBSD, and Ubuntu. Before that day I mainly used FreeBSD and Windows with bhyve. I spent some time trying to set up an OpenBSD using bhyve and UEFI as described here. I had numerous problems trying to use it, and this was the day I discovered the grub2-bhyve tool, and I love it!
Err codemadness.org 70 i 41172 The grub2-bhyve allows you to load a kernel using GRUB bootloader. GRUB supports most of the operating systems with a standard configuration, so exactly the same method can be used to install NetBSD or Ubuntu. First, let’s install grub2-bhyve on our FreeBSD box:

Err codemadness.org 70 i 41173
Err codemadness.org 70 i 41174 Err codemadness.org 70 i 41175

# pkg install grub2-bhyve

Err codemadness.org 70 i 41176 Err codemadness.org 70 i 41177
Err codemadness.org 70 i 41178

To run grub2-bhyve we need to provide at least the name of the VM. In bhyve, if the memsize is not specified the default VM is created with 256MB of the memory.

Err codemadness.org 70 i 41179
Err codemadness.org 70 i 41180 Err codemadness.org 70 i 41181

# grub-bhyve test
Err codemadness.org 70 i 41182 GNU GRUB version 2.00
Err codemadness.org 70 i 41183 Minimal BASH-like line editing is supported. For the first word, TAB lists possible command
Err codemadness.org 70 i 41184 completions. Anywhere else TAB lists possible device or file completions.
Err codemadness.org 70 i 41185
Err codemadness.org 70 i 41186
Err codemadness.org 70 i 41187 grub>

Err codemadness.org 70 i 41188 Err codemadness.org 70 i 41189
Err codemadness.org 70 i 41190

After running grub-bhyve command we will enter the GRUB loader. If we type the ls command, we will see all the available devices. In the case of the grub2-bhyve there is one additional device called “(host)” that is always available and allows the host filesystem to be accessed. We can list files under that device.

Err codemadness.org 70 i 41191
Err codemadness.org 70 i 41192 Err codemadness.org 70 i 41193

grub> ls
Err codemadness.org 70 i 41194 (host)
Err codemadness.org 70 i 41195 grub> ls (host)/
Err codemadness.org 70 i 41196 libexec/ bin/ usr/ bhyve/ compat/ tank/ etc/ boot/ net/ entropy proc/ lib/ root/ sys/ mnt/ rescue/ tmp/ home/ sbin/ media/ jail/ COPYRIGHT var/ dev/
Err codemadness.org 70 i 41197 grub>

Err codemadness.org 70 i 41198 Err codemadness.org 70 i 41199
Err codemadness.org 70 i 41200

To exit console simply type ‘reboot’. I would like to install my new operating system under a ZVOL ztank/bhyve/post. On another terminal, we create:

Err codemadness.org 70 i 41201
Err codemadness.org 70 i 41202 Err codemadness.org 70 i 41203

# zfs create -V 10G ztank/bhyve/post

Err codemadness.org 70 i 41204 Err codemadness.org 70 i 41205
Err codemadness.org 70 i 41206

If you don’t use ZFS for some crazy reason you can also create a raw blob using the truncate(1) command.

Err codemadness.org 70 i 41207
Err codemadness.org 70 i 41208 Err codemadness.org 70 i 41209

# truncate -s 10G post.img

Err codemadness.org 70 i 41210 Err codemadness.org 70 i 41211
Err codemadness.org 70 i 41212

I recommend installing an operating system from the disk image (installXX.fs for OpenBSD and NetBSD-X.X-amd64-install.img for NetBSD). Now we need to create a device map for a GRUB.

Err codemadness.org 70 i 41213
Err codemadness.org 70 i 41214 Err codemadness.org 70 i 41215

cat > /tmp/post.map << EOF
Err codemadness.org 70 i 41216 (hd0) /directory/to/disk/image
Err codemadness.org 70 i 41217 (hd1) /dev/zvol/ztank/bhyve/post
Err codemadness.org 70 i 41218 EOF

Err codemadness.org 70 i 41219 Err codemadness.org 70 i 41220
Err codemadness.org 70 i 41221

The mapping files describe the names for files in the GRUB. In our case under hd0 we will have an installation image and in hd1 we will have our ZVOL/blob. You can also try to use an ISO image then instead of using hd0 device name use a cd0. When we will run the grub-bhyve command we will see two additional devices.

Err codemadness.org 70 i 41222
Err codemadness.org 70 i 41223 Err codemadness.org 70 i 41224

# grub-bhyve -m /tmp/post.map post
Err codemadness.org 70 i 41225 grub> ls
Err codemadness.org 70 i 41226 (hd0) (hd0,msdos4) (hd0,msdos1) (hd0,openbsd9) (hd0,openbsd1) (hd1) (host)

Err codemadness.org 70 i 41227 Err codemadness.org 70 i 41228
Err codemadness.org 70 i 41229

The hd0 (in this example OpenBSD image) contains multiple partitions. We can check what is on it.

Err codemadness.org 70 i 41230
Err codemadness.org 70 i 41231 Err codemadness.org 70 i 41232

grub> ls (hd0,msdos4)/
Err codemadness.org 70 i 41233 boot bsd 6.4/ etc/

Err codemadness.org 70 i 41234 Err codemadness.org 70 i 41235
Err codemadness.org 70 i 41236

And this is the partition that contains a kernel. Now we can set a root device, load an OpenBSD kernel and boot:

Err codemadness.org 70 i 41237
Err codemadness.org 70 i 41238 Err codemadness.org 70 i 41239

grub> set root=(hd0,msdos4)
Err codemadness.org 70 i 41240 grub> kopenbsd -h com0 -r sd0a /bsd
Err codemadness.org 70 i 41241 grub> boot

Err codemadness.org 70 i 41242 Err codemadness.org 70 i 41243
Err codemadness.org 70 i 41244

After that, we can run bhyve virtual machine. In my case it is:

Err codemadness.org 70 i 41245
Err codemadness.org 70 i 41246 Err codemadness.org 70 i 41247

# bhyve -c 1 -w -u -H \
Err codemadness.org 70 i 41248 -s 0,amd_hostbridge \
Err codemadness.org 70 i 41249 -s 3,ahci-hd,/directory/to/disk/image \
Err codemadness.org 70 i 41250 -s 4,ahci-hd,/dev/zvol/ztank/bhyve/post \
Err codemadness.org 70 i 41251 -s 31,lpc -l com1,stdio \
Err codemadness.org 70 i 41252 post

Err codemadness.org 70 i 41253 Err codemadness.org 70 i 41254
Err codemadness.org 70 i 41255

Unfortunately explaining the whole bhyve(8) command line is beyond this article. After installing the operating system remove hd0 from the mapping file and the image from the bhyve(8) command. If you don’t want to type all those GRUB commands, you can simply redirect them to the standard input.

Err codemadness.org 70 i 41256
Err codemadness.org 70 i 41257 Err codemadness.org 70 i 41258

cat << EOF | grub-bhyve -m /tmp/post.map -M 512 post
Err codemadness.org 70 i 41259 set root=(hd0,4)
Err codemadness.org 70 i 41260 kopenbsd -h com0 -r sd0a /bsd
Err codemadness.org 70 i 41261 boot
Err codemadness.org 70 i 41262 EOF

Err codemadness.org 70 i 41263 Err codemadness.org 70 i 41264


Err codemadness.org 70 i 41265 Err codemadness.org 70 i 41266

###My FreeBSD Story

Err codemadness.org 70 i 41267 Err codemadness.org 70 i 41268
Err codemadness.org 70 i 41269

My first devices/computers/consoles (not at the same time) that I remember were Atari 2600 and Pegasus console which was hardware clone of the Nintendo NES.
Err codemadness.org 70 i 41270 Back then I did not even knew that it was Atari 2600 as I referred to it as Video Computer System … and I did not even knew any english by then. It took me about two decades to get to know (by accident) that this Video Computer System was Atari 2600
Err codemadness.org 70 i 41271 Then I got AMIGA 600 computer (or should I say my parents bought it for me) which served both for playing computer games and also other activities for the first time. AMIGA is the computer that had the greatest influence on me, as it was the first time I studied the books about Amiga Workbench operating system and learned commands from Amiga Shell terminal. I loved the idea of Ram Disk icon/directory on the desktop that allowed me to transparently put any things in system memory. I still miss that concept on today’s desktop systems … and I still remember how dismal I was when I watched Amiga Deathbed Vigil movie.
Err codemadness.org 70 i 41272 At the end of 1998 I got my first PC that of course came with Windows and that computer served both as gaming machine and as well as typical tool. One time I dig into the internals with Windows Registry (which left me disgusted by its concepts and implementation) and its limited command line interface provided by CMD.EXE executable. I remember that the heart of this box was not the CPU or the motherboard but the graphics accelerator – the legendary 3Dfx Voodoo card. This company (3Dfx) – their attitude and philosophy – also left solid fingerprint on my way. Like AMIGA did.
Err codemadness.org 70 i 41273 After ‘migration’ from AMIGA to PC it never again ‘felt right’. The games were cool but the Windows system was horrible. Time has passed and different Windows versions and hardware modifications took place. Windows XP felt really heavy at that time, not to mention Windows 2000 for example with even bigger hardware requirements. I also do not understand all the hate about Windows ME. It crashed with the same frequency as Windows 98 or later Windows 98 Second Edition but maybe my hardware was different ??
Err codemadness.org 70 i 41274 I do not have any ‘mine’ screenshots from that period as I lost all my 40 GB (huge then) drive of data when I moved/resized the partition with Partition Magic to get some more space from the less filled C: drive. That day I learned hard that “there are people who do backups and people who will do backups”. I never lost data again as I had multiple copies of my data, but the same as Netheril fall the lost data was was gone forever.
Err codemadness.org 70 i 41275 I always followed various alternatives which led me to try Linux in 2003, after reading about various distributions philosophies I decided to run Slackware Linux with KDE 3. My buddy used Aurox Linux by then (one of the few Linux distributions from Poland) and encouraged me to do the same – especially in the context of fixing possible problems as he already knew it and also as he recently dumped Windows system. But Slackware sounded like a better idea so I took that path instead. At first I dual booted between Windows XP and Slackware Linux cause I had everything worked out on the Windows world while I often felt helpless in the Linux world, so I would reboot into Windows to play some games or find a solution for Linux problem if that was required. I remember how strange the concept of dual clipboards (PRIMARY and SECONDARY) was for me by then. I was amazed why ‘so much better’ system as Linux (at least marketed that way) needs a system tray program to literally manage the clipboard. On Windows it was obvious, you do [CTRL]+[C] to copy and [CTRL]+[V] to paste things, but on Linux there (no I know its X11 feature) there were two clipboards that were synchronized by this little system tray program from KDE 3. It was also unthinkable for me that I will ‘lost’ contents of last/recent [CTRL]+[C] operation if I close the application from which the copy was made. I settled down a little on Slackware but not for long. I really did not liked manual dependency management for packages for example. Also KDE 3 was really ugly and despite trying all possible options I was not able to tweak it into something nice looking.
Err codemadness.org 70 i 41276 After half a year on Slackware I checked the Linux distributions again and decided to try Gentoo Linux. I definitely agree with the image below which visualizes Gentoo Linux experience, especially when You install it for he first time ??
Err codemadness.org 70 i 41277 Of course I went with the most hardcore version with self building Stage 1 (compiler and toolchain) which was horrible idea at that time because compilation on slow single core machine took forever … but after many hours I got Gentoo installed. I now have to decide which desktop environment to use. I have read a lot of good news about Fluxbox at that time so this is what I tried. It was very weird experience (to create everything in GUI from scratch) but very pleasant one. That recalled me the times of AMIGA … but Linux came in the way too much often. The more I dig into Gentoo Linux the more I read that lots of Gentoo features are based on FreeBSD solutions. Gentoo Portage is a clone of FreeBSD Ports. That ‘central’ /etc/rc.conf system configuration file concept was taken from FreeBSD as well. So I started to gather information about FreeBSD. The (then) FreeBSD website or FreeBSD Ports site (still) felt little outdated to say the least but that did not discouraged me.
Err codemadness.org 70 i 41278 Somewhere in 2005 I installed FreeBSD 5.4 on my computer. The beginnings were hard, like the earlier step with Gentoo but similarly like Gentoo the FreeBSD project came with a lot of great documentation. While Gentoo documentation is concentrated within various Gentoo Wiki sites the FreeBSD project comes with ‘official’ documentation in the form of Handbook and FAQ. I remember my first questions at the now nonexistent BSDForums.org site – for example one of the first ones – how to scroll the terminal output in the plain console. I now know that I had to push Scroll Lock button but it was something totally new for me.
Err codemadness.org 70 i 41279 Why FreeBSD and not OpenBSD or NetBSD? Probably because Gentoo based most their concepts on the FreeBSD solutions, so that led me to FreeBSD instead of the other BSD operating systems. Currently I still use FreeBSD but I keep an steady eye on the OpenBSD, HardenedBSD and DragonFly BSD solutions and improvements.
Err codemadness.org 70 i 41280 As the migration path from Linux to FreeBSD is a lot easier – all configuration files from /home can be just copied – the migration was quite fast easy. I again had the Fluxbox configuration which I used on the Gentoo. Now – on FreeBSD – it started to fell even more like AMIGA times. Everything is/has been well thought and had its place and reason. The documentation was good and the FreeBSD Community was second to none.
Err codemadness.org 70 i 41281 After 15 years of using various Windows, UNIX (macOS/AIX/HP-UX/Solaris/OpenSolaris/Illumos/FreeBSD/OpenBSD/NetBSD) and UNIX-like (Linux) systems I always come to conclusion that FreeBSD is the system that sucks least. And sucks least with each release and one day I will write why FreeBSD is such great operating system … if I already haven’t

Err codemadness.org 70 i 41282
Err codemadness.org 70 i 41283 Err codemadness.org 70 i 41284


Err codemadness.org 70 i 41285 Err codemadness.org 70 i 41286

##News Roundup
Err codemadness.org 70 i 41287 ###OpenBSD on the Desktop: some thoughts

Err codemadness.org 70 i 41288 Err codemadness.org 70 i 41289
Err codemadness.org 70 i 41290

I’ve been using OpenBSD on my ThinkPad X230 for some weeks now, and the experience has been peculiar in some ways.
Err codemadness.org 70 i 41291 The OS itself in my opinion is not ready for widespread desktop usage, and the development team is not trying to push it in the throat of anybody who wants a Windows or macOS alternative. You need to understand a little bit of how *NIX systems work, because you’ll use CLI more than UI. That’s not necessarily bad, and I’m sure I learned a trick or two that could translate easily to Linux or macOS. Their development process is purely based on developers that love to contribute and hack around, just because it’s fun. Even the mailing list is a cool place to hang on! Code correctness and security are a must, nothing gets committed if it doesn’t get reviewed thoroughly first - nowadays the first two properties should be enforced in every major operating system.
Err codemadness.org 70 i 41292 I like the idea of a platform that continually evolves. pledge(2) and unveil(2) are the proof that with a little effort, you can secure existing software better than ever.
Err codemadness.org 70 i 41293 I like the “sensible defaults” approach, having an OS ready to be used - UI included if you selected it during the setup process - is great.
Err codemadness.org 70 i 41294 Just install a browser and you’re ready to go.
Err codemadness.org 70 i 41295 Manual pages on OpenBSD are real manuals, not an extension of the “–help” command found in most CLI softwares. They help you understand inner workings of the operating system, no internet connection needed. There are some trade-offs, too.
Err codemadness.org 70 i 41296 Performance is not first-class, mostly because of all the security mitigations and checks done at runtime.
Err codemadness.org 70 i 41297 I write Go code in neovim, and sometimes you can feel a slight slowdown when you’re compiling and editing multiple files at the same time, but usually I can’t notice any meaningful difference. Browsers are a different matter though, you can definitely feel something differs from the experience you can have on mainstream operating systems. But again, trade-offs.
Err codemadness.org 70 i 41298 To use OpenBSD on the desktop you must be ready to sacrifice some of the goodies of mainstream OSes, but if you’re searching for a zen place to do your computing stuff, it’s the best you can get right now.

Err codemadness.org 70 i 41299
Err codemadness.org 70 i 41300 Err codemadness.org 70 i 41301


Err codemadness.org 70 i 41302 Err codemadness.org 70 i 41303

###The history of file type information being available in Unix directories

Err codemadness.org 70 i 41304 Err codemadness.org 70 i 41305
Err codemadness.org 70 i 41306

The two things that Unix directory entries absolutely have to have are the name of the directory entry and its ‘inode’, by which we generically mean some stable kernel identifier for the file that will persist if it gets renamed, linked to other directories, and so on. Unsurprisingly, directory entries have had these since the days when you read the raw bytes of directories with read(), and for a long time that was all they had; if you wanted more than the name and the inode number, you had to stat() the file, not just read the directory. Then, well, I’ll quote myself from an old entry on a find optimization:
Err codemadness.org 70 i 41307 […], Unix filesystem developers realized that it was very common for programs reading directories to need to know a bit more about directory entries than just their names, especially their file types (find is the obvious case, but also consider things like ‘ls -F’). Given that the type of an active inode never changes, it’s possible to embed this information straight in the directory entry and then return this to user level, and that’s what developers did; on some systems, readdir(3) will now return directory entries with an additional d_type field that has the directory entry’s type.
Err codemadness.org 70 i 41308 On Twitter, I recently grumbled about Illumos not having this d_type field. The ensuing conversation wound up with me curious about exactly where d_type came from and how far back it went. The answer turns out to be a bit surprising due to there being two sides of d_type.
Err codemadness.org 70 i 41309 On the kernel side, d_type appears to have shown up in 4.4 BSD. The 4.4 BSD /usr/src/sys/dirent.h has a struct dirent that has a d_type field, but the field isn’t documented in either the comments in the file or in the getdirentries(2) manpage; both of those admit only to the traditional BSD dirent fields. This 4.4 BSD d_type was carried through to things that inherited from 4.4 BSD (Lite), specifically FreeBSD, but it continued to be undocumented for at least a while.
Err codemadness.org 70 i 41310 (In FreeBSD, the most convenient history I can find is here, and the d_type field is present in sys/dirent.h as far back as FreeBSD 2.0, which seems to be as far as the repo goes for releases.)
Err codemadness.org 70 i 41311 Documentation for d_type appeared in the getdirentries(2) manpage in FreeBSD 2.2.0, where the manpage itself claims to have been updated on May 3rd 1995 (cf). In FreeBSD, this appears to have been part of merging 4.4 BSD ‘Lite2’, which seems to have been done in 1997. I stumbled over a repo of UCB BSD commit history, and in it the documentation appears in this May 3rd 1995 change, which at least has the same date. It appears that FreeBSD 2.2.0 was released some time in 1997, which is when this would have appeared in an official release.
Err codemadness.org 70 i 41312 In Linux, it seems that a dirent structure with a d_type member appeared only just before 2.4.0, which was released at the start of 2001. Linux took this long because the d_type field only appeared in the 64-bit ‘large file support’ version of the dirent structure, and so was only return by the new 64-bit getdents64() system call. This would have been a few years after FreeBSD officially documented d_type, and probably many years after it was actually available if you peeked at the structure definition.
Err codemadness.org 70 i 41313 As far as I can tell, d_type is present on Linux, FreeBSD, OpenBSD, NetBSD, Dragonfly BSD, and Darwin (aka MacOS or OS X). It’s not present on Solaris and thus Illumos. As far as other commercial Unixes go, you’re on your own; all the links to manpages for things like AIX from my old entry on the remaining Unixes appear to have rotted away.
Err codemadness.org 70 i 41314 Sidebar: The filesystem also matters on modern Unixes
Err codemadness.org 70 i 41315 Even if your Unix supports d_type in directory entries, it doesn’t mean that it’s supported by the filesystem of any specific directory. As far as I know, every Unix with d_type support has support for it in their normal local filesystems, but it’s not guaranteed to be in all filesystems, especially non-Unix ones like FAT32. Your code should always be prepared to deal with a file type of DT_UNKNOWN.
Err codemadness.org 70 i 41316 It’s also possible to have things the other way around, where you have a filesystem with support for file type information in directories that’s on a Unix that doesn’t support it. There are a number of plausible reasons for this to happen, but they’re either obvious or beyond the scope of this entry.

Err codemadness.org 70 i 41317
Err codemadness.org 70 i 41318 Err codemadness.org 70 i 41319


Err codemadness.org 70 i 41320 Err codemadness.org 70 i 41321

###Multiboot Pinebook KDE neon

Err codemadness.org 70 i 41322 Err codemadness.org 70 i 41323
Err codemadness.org 70 i 41324

Recently a KDE neon image for the Pinebook was announced. There is a new image, with a handful of fixes, which the KDE Plasma team has been working on over the past week and a half.
Err codemadness.org 70 i 41325 Here’s a picture of my Pinebook running KDE neon — watching Panic! At the Disco’s High Hopes — sitting in front of my monitor that’s hooked up to one of my openSUSE systems. There are still some errata, and watching video sucks up battery, but for hacking on documentation from my hammock in the garden, or doing IRC meetings it’s a really nice machine.
Err codemadness.org 70 i 41326 But one of the neat things about running KDE neon off of an SD card on the Pinebook is that it’s portable — that SD card can move around. So let’s talk about multiboot in the sense of “booting the same OS storage medium in different hardware units” rather than “booting different OS from a medium in a single hardware unit”. On these little ARM boards, u-boot does all the heavy lifting early in the boot process. So to re-use the KDE neon Pinebook image on another ARM board, the u-boot blocks need to be replaced.
Err codemadness.org 70 i 41327 I have the u-boot from a Pine64 image (I forget what) lying around, 1015 blocks of 1024 bytes, which I can dd over the u-boot blocks on the SD card, dd bs=1k conv=notrunc,sync if=uboot.img of=/dev/da0 seek=8, and then the same SD card, with the filesystem and data from the Pinebook, will boot on the Pine64 board. Of course, to move the SD card back again, I need to restore the Pinebook u-boot blocks.
Err codemadness.org 70 i 41328 Here’s a picture of my Pineboard (the base is a piece of the garden fence, it’s Douglas pine, with 4mm threaded rods acting as the corner posts for my Pine64 mini-rack), with power and network and a serial console attached, along with the serial console output of the same.
Err codemadness.org 70 i 41329 The nice thing here is that the same software stack runs on the Pine64 but then has a wired network — which in turn means that if I switch on the other boards in that mini-rack, I’ve got a distcc-capable cluster for fast development, and vast NFS storage (served from ZFS on my FreeBSD machines) for source. I can develop in a high(er) powered environment, and then swap the card around into the Pinebook for testing-on-the-go.
Err codemadness.org 70 i 41330 So to sum up: you can multiboot the KDE neon Pinebook image on other Pine64 hardware (i.e. the Pine64 board). To do so, you need to swap around u-boot blocks. The blocks can be picked out of an image built for each board, and then a particular image (e.g. the latest KDE neon Pinebook) can be run on either board.

Err codemadness.org 70 i 41331
Err codemadness.org 70 i 41332 Err codemadness.org 70 i 41333


Err codemadness.org 70 i 41334 Err codemadness.org 70 i 41335

##Beastie Bits

Err codemadness.org 70 i 41336 Err codemadness.org 70 i 41337 Err codemadness.org 70 i 41349 Err codemadness.org 70 i 41350


Err codemadness.org 70 i 41351 Err codemadness.org 70 i 41352

##Feedback/Questions

Err codemadness.org 70 i 41353 Err codemadness.org 70 i 41354 Err codemadness.org 70 i 41360 Err codemadness.org 70 i 41361


Err codemadness.org 70 i 41362 Err codemadness.org 70 i 41363
    Err codemadness.org 70 i 41364
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 41365
Err codemadness.org 70 i 41366 Err codemadness.org 70 i 41367


]]> Err codemadness.org 70 i 41368
Err codemadness.org 70 i 41369 Err codemadness.org 70 i 41370 Running OpenBSD/NetBSD on FreeBSD using grub2-bhyve, vermaden’s FreeBSD story, thoughts on OpenBSD on the desktop, history of file type info in Unix dirs, Multiboot a Pinebook KDE neon image, and more.

Err codemadness.org 70 i 41371 Err codemadness.org 70 i 41372

##Headlines
Err codemadness.org 70 i 41373 ###OpenBSD/NetBSD on FreeBSD using grub2-bhyve

Err codemadness.org 70 i 41374 Err codemadness.org 70 i 41375
Err codemadness.org 70 i 41376

When I was writing a blog post about the process title, I needed a couple of virtual machines with OpenBSD, NetBSD, and Ubuntu. Before that day I mainly used FreeBSD and Windows with bhyve. I spent some time trying to set up an OpenBSD using bhyve and UEFI as described here. I had numerous problems trying to use it, and this was the day I discovered the grub2-bhyve tool, and I love it!
Err codemadness.org 70 i 41377 The grub2-bhyve allows you to load a kernel using GRUB bootloader. GRUB supports most of the operating systems with a standard configuration, so exactly the same method can be used to install NetBSD or Ubuntu. First, let’s install grub2-bhyve on our FreeBSD box:

Err codemadness.org 70 i 41378
Err codemadness.org 70 i 41379 Err codemadness.org 70 i 41380

# pkg install grub2-bhyve

Err codemadness.org 70 i 41381 Err codemadness.org 70 i 41382
Err codemadness.org 70 i 41383

To run grub2-bhyve we need to provide at least the name of the VM. In bhyve, if the memsize is not specified the default VM is created with 256MB of the memory.

Err codemadness.org 70 i 41384
Err codemadness.org 70 i 41385 Err codemadness.org 70 i 41386

# grub-bhyve test
Err codemadness.org 70 i 41387 GNU GRUB version 2.00
Err codemadness.org 70 i 41388 Minimal BASH-like line editing is supported. For the first word, TAB lists possible command
Err codemadness.org 70 i 41389 completions. Anywhere else TAB lists possible device or file completions.
Err codemadness.org 70 i 41390
Err codemadness.org 70 i 41391
Err codemadness.org 70 i 41392 grub>

Err codemadness.org 70 i 41393 Err codemadness.org 70 i 41394
Err codemadness.org 70 i 41395

After running grub-bhyve command we will enter the GRUB loader. If we type the ls command, we will see all the available devices. In the case of the grub2-bhyve there is one additional device called “(host)” that is always available and allows the host filesystem to be accessed. We can list files under that device.

Err codemadness.org 70 i 41396
Err codemadness.org 70 i 41397 Err codemadness.org 70 i 41398

grub> ls
Err codemadness.org 70 i 41399 (host)
Err codemadness.org 70 i 41400 grub> ls (host)/
Err codemadness.org 70 i 41401 libexec/ bin/ usr/ bhyve/ compat/ tank/ etc/ boot/ net/ entropy proc/ lib/ root/ sys/ mnt/ rescue/ tmp/ home/ sbin/ media/ jail/ COPYRIGHT var/ dev/
Err codemadness.org 70 i 41402 grub>

Err codemadness.org 70 i 41403 Err codemadness.org 70 i 41404
Err codemadness.org 70 i 41405

To exit console simply type ‘reboot’. I would like to install my new operating system under a ZVOL ztank/bhyve/post. On another terminal, we create:

Err codemadness.org 70 i 41406
Err codemadness.org 70 i 41407 Err codemadness.org 70 i 41408

# zfs create -V 10G ztank/bhyve/post

Err codemadness.org 70 i 41409 Err codemadness.org 70 i 41410
Err codemadness.org 70 i 41411

If you don’t use ZFS for some crazy reason you can also create a raw blob using the truncate(1) command.

Err codemadness.org 70 i 41412
Err codemadness.org 70 i 41413 Err codemadness.org 70 i 41414

# truncate -s 10G post.img

Err codemadness.org 70 i 41415 Err codemadness.org 70 i 41416
Err codemadness.org 70 i 41417

I recommend installing an operating system from the disk image (installXX.fs for OpenBSD and NetBSD-X.X-amd64-install.img for NetBSD). Now we need to create a device map for a GRUB.

Err codemadness.org 70 i 41418
Err codemadness.org 70 i 41419 Err codemadness.org 70 i 41420

cat > /tmp/post.map << EOF
Err codemadness.org 70 i 41421 (hd0) /directory/to/disk/image
Err codemadness.org 70 i 41422 (hd1) /dev/zvol/ztank/bhyve/post
Err codemadness.org 70 i 41423 EOF

Err codemadness.org 70 i 41424 Err codemadness.org 70 i 41425
Err codemadness.org 70 i 41426

The mapping files describe the names for files in the GRUB. In our case under hd0 we will have an installation image and in hd1 we will have our ZVOL/blob. You can also try to use an ISO image then instead of using hd0 device name use a cd0. When we will run the grub-bhyve command we will see two additional devices.

Err codemadness.org 70 i 41427
Err codemadness.org 70 i 41428 Err codemadness.org 70 i 41429

# grub-bhyve -m /tmp/post.map post
Err codemadness.org 70 i 41430 grub> ls
Err codemadness.org 70 i 41431 (hd0) (hd0,msdos4) (hd0,msdos1) (hd0,openbsd9) (hd0,openbsd1) (hd1) (host)

Err codemadness.org 70 i 41432 Err codemadness.org 70 i 41433
Err codemadness.org 70 i 41434

The hd0 (in this example OpenBSD image) contains multiple partitions. We can check what is on it.

Err codemadness.org 70 i 41435
Err codemadness.org 70 i 41436 Err codemadness.org 70 i 41437

grub> ls (hd0,msdos4)/
Err codemadness.org 70 i 41438 boot bsd 6.4/ etc/

Err codemadness.org 70 i 41439 Err codemadness.org 70 i 41440
Err codemadness.org 70 i 41441

And this is the partition that contains a kernel. Now we can set a root device, load an OpenBSD kernel and boot:

Err codemadness.org 70 i 41442
Err codemadness.org 70 i 41443 Err codemadness.org 70 i 41444

grub> set root=(hd0,msdos4)
Err codemadness.org 70 i 41445 grub> kopenbsd -h com0 -r sd0a /bsd
Err codemadness.org 70 i 41446 grub> boot

Err codemadness.org 70 i 41447 Err codemadness.org 70 i 41448
Err codemadness.org 70 i 41449

After that, we can run bhyve virtual machine. In my case it is:

Err codemadness.org 70 i 41450
Err codemadness.org 70 i 41451 Err codemadness.org 70 i 41452

# bhyve -c 1 -w -u -H \
Err codemadness.org 70 i 41453 -s 0,amd_hostbridge \
Err codemadness.org 70 i 41454 -s 3,ahci-hd,/directory/to/disk/image \
Err codemadness.org 70 i 41455 -s 4,ahci-hd,/dev/zvol/ztank/bhyve/post \
Err codemadness.org 70 i 41456 -s 31,lpc -l com1,stdio \
Err codemadness.org 70 i 41457 post

Err codemadness.org 70 i 41458 Err codemadness.org 70 i 41459
Err codemadness.org 70 i 41460

Unfortunately explaining the whole bhyve(8) command line is beyond this article. After installing the operating system remove hd0 from the mapping file and the image from the bhyve(8) command. If you don’t want to type all those GRUB commands, you can simply redirect them to the standard input.

Err codemadness.org 70 i 41461
Err codemadness.org 70 i 41462 Err codemadness.org 70 i 41463

cat << EOF | grub-bhyve -m /tmp/post.map -M 512 post
Err codemadness.org 70 i 41464 set root=(hd0,4)
Err codemadness.org 70 i 41465 kopenbsd -h com0 -r sd0a /bsd
Err codemadness.org 70 i 41466 boot
Err codemadness.org 70 i 41467 EOF

Err codemadness.org 70 i 41468 Err codemadness.org 70 i 41469


Err codemadness.org 70 i 41470 Err codemadness.org 70 i 41471

###My FreeBSD Story

Err codemadness.org 70 i 41472 Err codemadness.org 70 i 41473
Err codemadness.org 70 i 41474

My first devices/computers/consoles (not at the same time) that I remember were Atari 2600 and Pegasus console which was hardware clone of the Nintendo NES.
Err codemadness.org 70 i 41475 Back then I did not even knew that it was Atari 2600 as I referred to it as Video Computer System … and I did not even knew any english by then. It took me about two decades to get to know (by accident) that this Video Computer System was Atari 2600
Err codemadness.org 70 i 41476 Then I got AMIGA 600 computer (or should I say my parents bought it for me) which served both for playing computer games and also other activities for the first time. AMIGA is the computer that had the greatest influence on me, as it was the first time I studied the books about Amiga Workbench operating system and learned commands from Amiga Shell terminal. I loved the idea of Ram Disk icon/directory on the desktop that allowed me to transparently put any things in system memory. I still miss that concept on today’s desktop systems … and I still remember how dismal I was when I watched Amiga Deathbed Vigil movie.
Err codemadness.org 70 i 41477 At the end of 1998 I got my first PC that of course came with Windows and that computer served both as gaming machine and as well as typical tool. One time I dig into the internals with Windows Registry (which left me disgusted by its concepts and implementation) and its limited command line interface provided by CMD.EXE executable. I remember that the heart of this box was not the CPU or the motherboard but the graphics accelerator – the legendary 3Dfx Voodoo card. This company (3Dfx) – their attitude and philosophy – also left solid fingerprint on my way. Like AMIGA did.
Err codemadness.org 70 i 41478 After ‘migration’ from AMIGA to PC it never again ‘felt right’. The games were cool but the Windows system was horrible. Time has passed and different Windows versions and hardware modifications took place. Windows XP felt really heavy at that time, not to mention Windows 2000 for example with even bigger hardware requirements. I also do not understand all the hate about Windows ME. It crashed with the same frequency as Windows 98 or later Windows 98 Second Edition but maybe my hardware was different ??
Err codemadness.org 70 i 41479 I do not have any ‘mine’ screenshots from that period as I lost all my 40 GB (huge then) drive of data when I moved/resized the partition with Partition Magic to get some more space from the less filled C: drive. That day I learned hard that “there are people who do backups and people who will do backups”. I never lost data again as I had multiple copies of my data, but the same as Netheril fall the lost data was was gone forever.
Err codemadness.org 70 i 41480 I always followed various alternatives which led me to try Linux in 2003, after reading about various distributions philosophies I decided to run Slackware Linux with KDE 3. My buddy used Aurox Linux by then (one of the few Linux distributions from Poland) and encouraged me to do the same – especially in the context of fixing possible problems as he already knew it and also as he recently dumped Windows system. But Slackware sounded like a better idea so I took that path instead. At first I dual booted between Windows XP and Slackware Linux cause I had everything worked out on the Windows world while I often felt helpless in the Linux world, so I would reboot into Windows to play some games or find a solution for Linux problem if that was required. I remember how strange the concept of dual clipboards (PRIMARY and SECONDARY) was for me by then. I was amazed why ‘so much better’ system as Linux (at least marketed that way) needs a system tray program to literally manage the clipboard. On Windows it was obvious, you do [CTRL]+[C] to copy and [CTRL]+[V] to paste things, but on Linux there (no I know its X11 feature) there were two clipboards that were synchronized by this little system tray program from KDE 3. It was also unthinkable for me that I will ‘lost’ contents of last/recent [CTRL]+[C] operation if I close the application from which the copy was made. I settled down a little on Slackware but not for long. I really did not liked manual dependency management for packages for example. Also KDE 3 was really ugly and despite trying all possible options I was not able to tweak it into something nice looking.
Err codemadness.org 70 i 41481 After half a year on Slackware I checked the Linux distributions again and decided to try Gentoo Linux. I definitely agree with the image below which visualizes Gentoo Linux experience, especially when You install it for he first time ??
Err codemadness.org 70 i 41482 Of course I went with the most hardcore version with self building Stage 1 (compiler and toolchain) which was horrible idea at that time because compilation on slow single core machine took forever … but after many hours I got Gentoo installed. I now have to decide which desktop environment to use. I have read a lot of good news about Fluxbox at that time so this is what I tried. It was very weird experience (to create everything in GUI from scratch) but very pleasant one. That recalled me the times of AMIGA … but Linux came in the way too much often. The more I dig into Gentoo Linux the more I read that lots of Gentoo features are based on FreeBSD solutions. Gentoo Portage is a clone of FreeBSD Ports. That ‘central’ /etc/rc.conf system configuration file concept was taken from FreeBSD as well. So I started to gather information about FreeBSD. The (then) FreeBSD website or FreeBSD Ports site (still) felt little outdated to say the least but that did not discouraged me.
Err codemadness.org 70 i 41483 Somewhere in 2005 I installed FreeBSD 5.4 on my computer. The beginnings were hard, like the earlier step with Gentoo but similarly like Gentoo the FreeBSD project came with a lot of great documentation. While Gentoo documentation is concentrated within various Gentoo Wiki sites the FreeBSD project comes with ‘official’ documentation in the form of Handbook and FAQ. I remember my first questions at the now nonexistent BSDForums.org site – for example one of the first ones – how to scroll the terminal output in the plain console. I now know that I had to push Scroll Lock button but it was something totally new for me.
Err codemadness.org 70 i 41484 Why FreeBSD and not OpenBSD or NetBSD? Probably because Gentoo based most their concepts on the FreeBSD solutions, so that led me to FreeBSD instead of the other BSD operating systems. Currently I still use FreeBSD but I keep an steady eye on the OpenBSD, HardenedBSD and DragonFly BSD solutions and improvements.
Err codemadness.org 70 i 41485 As the migration path from Linux to FreeBSD is a lot easier – all configuration files from /home can be just copied – the migration was quite fast easy. I again had the Fluxbox configuration which I used on the Gentoo. Now – on FreeBSD – it started to fell even more like AMIGA times. Everything is/has been well thought and had its place and reason. The documentation was good and the FreeBSD Community was second to none.
Err codemadness.org 70 i 41486 After 15 years of using various Windows, UNIX (macOS/AIX/HP-UX/Solaris/OpenSolaris/Illumos/FreeBSD/OpenBSD/NetBSD) and UNIX-like (Linux) systems I always come to conclusion that FreeBSD is the system that sucks least. And sucks least with each release and one day I will write why FreeBSD is such great operating system … if I already haven’t

Err codemadness.org 70 i 41487
Err codemadness.org 70 i 41488 Err codemadness.org 70 i 41489


Err codemadness.org 70 i 41490 Err codemadness.org 70 i 41491

##News Roundup
Err codemadness.org 70 i 41492 ###OpenBSD on the Desktop: some thoughts

Err codemadness.org 70 i 41493 Err codemadness.org 70 i 41494
Err codemadness.org 70 i 41495

I’ve been using OpenBSD on my ThinkPad X230 for some weeks now, and the experience has been peculiar in some ways.
Err codemadness.org 70 i 41496 The OS itself in my opinion is not ready for widespread desktop usage, and the development team is not trying to push it in the throat of anybody who wants a Windows or macOS alternative. You need to understand a little bit of how *NIX systems work, because you’ll use CLI more than UI. That’s not necessarily bad, and I’m sure I learned a trick or two that could translate easily to Linux or macOS. Their development process is purely based on developers that love to contribute and hack around, just because it’s fun. Even the mailing list is a cool place to hang on! Code correctness and security are a must, nothing gets committed if it doesn’t get reviewed thoroughly first - nowadays the first two properties should be enforced in every major operating system.
Err codemadness.org 70 i 41497 I like the idea of a platform that continually evolves. pledge(2) and unveil(2) are the proof that with a little effort, you can secure existing software better than ever.
Err codemadness.org 70 i 41498 I like the “sensible defaults” approach, having an OS ready to be used - UI included if you selected it during the setup process - is great.
Err codemadness.org 70 i 41499 Just install a browser and you’re ready to go.
Err codemadness.org 70 i 41500 Manual pages on OpenBSD are real manuals, not an extension of the “–help” command found in most CLI softwares. They help you understand inner workings of the operating system, no internet connection needed. There are some trade-offs, too.
Err codemadness.org 70 i 41501 Performance is not first-class, mostly because of all the security mitigations and checks done at runtime.
Err codemadness.org 70 i 41502 I write Go code in neovim, and sometimes you can feel a slight slowdown when you’re compiling and editing multiple files at the same time, but usually I can’t notice any meaningful difference. Browsers are a different matter though, you can definitely feel something differs from the experience you can have on mainstream operating systems. But again, trade-offs.
Err codemadness.org 70 i 41503 To use OpenBSD on the desktop you must be ready to sacrifice some of the goodies of mainstream OSes, but if you’re searching for a zen place to do your computing stuff, it’s the best you can get right now.

Err codemadness.org 70 i 41504
Err codemadness.org 70 i 41505 Err codemadness.org 70 i 41506


Err codemadness.org 70 i 41507 Err codemadness.org 70 i 41508

###The history of file type information being available in Unix directories

Err codemadness.org 70 i 41509 Err codemadness.org 70 i 41510
Err codemadness.org 70 i 41511

The two things that Unix directory entries absolutely have to have are the name of the directory entry and its ‘inode’, by which we generically mean some stable kernel identifier for the file that will persist if it gets renamed, linked to other directories, and so on. Unsurprisingly, directory entries have had these since the days when you read the raw bytes of directories with read(), and for a long time that was all they had; if you wanted more than the name and the inode number, you had to stat() the file, not just read the directory. Then, well, I’ll quote myself from an old entry on a find optimization:
Err codemadness.org 70 i 41512 […], Unix filesystem developers realized that it was very common for programs reading directories to need to know a bit more about directory entries than just their names, especially their file types (find is the obvious case, but also consider things like ‘ls -F’). Given that the type of an active inode never changes, it’s possible to embed this information straight in the directory entry and then return this to user level, and that’s what developers did; on some systems, readdir(3) will now return directory entries with an additional d_type field that has the directory entry’s type.
Err codemadness.org 70 i 41513 On Twitter, I recently grumbled about Illumos not having this d_type field. The ensuing conversation wound up with me curious about exactly where d_type came from and how far back it went. The answer turns out to be a bit surprising due to there being two sides of d_type.
Err codemadness.org 70 i 41514 On the kernel side, d_type appears to have shown up in 4.4 BSD. The 4.4 BSD /usr/src/sys/dirent.h has a struct dirent that has a d_type field, but the field isn’t documented in either the comments in the file or in the getdirentries(2) manpage; both of those admit only to the traditional BSD dirent fields. This 4.4 BSD d_type was carried through to things that inherited from 4.4 BSD (Lite), specifically FreeBSD, but it continued to be undocumented for at least a while.
Err codemadness.org 70 i 41515 (In FreeBSD, the most convenient history I can find is here, and the d_type field is present in sys/dirent.h as far back as FreeBSD 2.0, which seems to be as far as the repo goes for releases.)
Err codemadness.org 70 i 41516 Documentation for d_type appeared in the getdirentries(2) manpage in FreeBSD 2.2.0, where the manpage itself claims to have been updated on May 3rd 1995 (cf). In FreeBSD, this appears to have been part of merging 4.4 BSD ‘Lite2’, which seems to have been done in 1997. I stumbled over a repo of UCB BSD commit history, and in it the documentation appears in this May 3rd 1995 change, which at least has the same date. It appears that FreeBSD 2.2.0 was released some time in 1997, which is when this would have appeared in an official release.
Err codemadness.org 70 i 41517 In Linux, it seems that a dirent structure with a d_type member appeared only just before 2.4.0, which was released at the start of 2001. Linux took this long because the d_type field only appeared in the 64-bit ‘large file support’ version of the dirent structure, and so was only return by the new 64-bit getdents64() system call. This would have been a few years after FreeBSD officially documented d_type, and probably many years after it was actually available if you peeked at the structure definition.
Err codemadness.org 70 i 41518 As far as I can tell, d_type is present on Linux, FreeBSD, OpenBSD, NetBSD, Dragonfly BSD, and Darwin (aka MacOS or OS X). It’s not present on Solaris and thus Illumos. As far as other commercial Unixes go, you’re on your own; all the links to manpages for things like AIX from my old entry on the remaining Unixes appear to have rotted away.
Err codemadness.org 70 i 41519 Sidebar: The filesystem also matters on modern Unixes
Err codemadness.org 70 i 41520 Even if your Unix supports d_type in directory entries, it doesn’t mean that it’s supported by the filesystem of any specific directory. As far as I know, every Unix with d_type support has support for it in their normal local filesystems, but it’s not guaranteed to be in all filesystems, especially non-Unix ones like FAT32. Your code should always be prepared to deal with a file type of DT_UNKNOWN.
Err codemadness.org 70 i 41521 It’s also possible to have things the other way around, where you have a filesystem with support for file type information in directories that’s on a Unix that doesn’t support it. There are a number of plausible reasons for this to happen, but they’re either obvious or beyond the scope of this entry.

Err codemadness.org 70 i 41522
Err codemadness.org 70 i 41523 Err codemadness.org 70 i 41524


Err codemadness.org 70 i 41525 Err codemadness.org 70 i 41526

###Multiboot Pinebook KDE neon

Err codemadness.org 70 i 41527 Err codemadness.org 70 i 41528
Err codemadness.org 70 i 41529

Recently a KDE neon image for the Pinebook was announced. There is a new image, with a handful of fixes, which the KDE Plasma team has been working on over the past week and a half.
Err codemadness.org 70 i 41530 Here’s a picture of my Pinebook running KDE neon — watching Panic! At the Disco’s High Hopes — sitting in front of my monitor that’s hooked up to one of my openSUSE systems. There are still some errata, and watching video sucks up battery, but for hacking on documentation from my hammock in the garden, or doing IRC meetings it’s a really nice machine.
Err codemadness.org 70 i 41531 But one of the neat things about running KDE neon off of an SD card on the Pinebook is that it’s portable — that SD card can move around. So let’s talk about multiboot in the sense of “booting the same OS storage medium in different hardware units” rather than “booting different OS from a medium in a single hardware unit”. On these little ARM boards, u-boot does all the heavy lifting early in the boot process. So to re-use the KDE neon Pinebook image on another ARM board, the u-boot blocks need to be replaced.
Err codemadness.org 70 i 41532 I have the u-boot from a Pine64 image (I forget what) lying around, 1015 blocks of 1024 bytes, which I can dd over the u-boot blocks on the SD card, dd bs=1k conv=notrunc,sync if=uboot.img of=/dev/da0 seek=8, and then the same SD card, with the filesystem and data from the Pinebook, will boot on the Pine64 board. Of course, to move the SD card back again, I need to restore the Pinebook u-boot blocks.
Err codemadness.org 70 i 41533 Here’s a picture of my Pineboard (the base is a piece of the garden fence, it’s Douglas pine, with 4mm threaded rods acting as the corner posts for my Pine64 mini-rack), with power and network and a serial console attached, along with the serial console output of the same.
Err codemadness.org 70 i 41534 The nice thing here is that the same software stack runs on the Pine64 but then has a wired network — which in turn means that if I switch on the other boards in that mini-rack, I’ve got a distcc-capable cluster for fast development, and vast NFS storage (served from ZFS on my FreeBSD machines) for source. I can develop in a high(er) powered environment, and then swap the card around into the Pinebook for testing-on-the-go.
Err codemadness.org 70 i 41535 So to sum up: you can multiboot the KDE neon Pinebook image on other Pine64 hardware (i.e. the Pine64 board). To do so, you need to swap around u-boot blocks. The blocks can be picked out of an image built for each board, and then a particular image (e.g. the latest KDE neon Pinebook) can be run on either board.

Err codemadness.org 70 i 41536
Err codemadness.org 70 i 41537 Err codemadness.org 70 i 41538


Err codemadness.org 70 i 41539 Err codemadness.org 70 i 41540

##Beastie Bits

Err codemadness.org 70 i 41541 Err codemadness.org 70 i 41542 Err codemadness.org 70 i 41554 Err codemadness.org 70 i 41555


Err codemadness.org 70 i 41556 Err codemadness.org 70 i 41557

##Feedback/Questions

Err codemadness.org 70 i 41558 Err codemadness.org 70 i 41559 Err codemadness.org 70 i 41565 Err codemadness.org 70 i 41566


Err codemadness.org 70 i 41567 Err codemadness.org 70 i 41568
    Err codemadness.org 70 i 41569
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 41570
Err codemadness.org 70 i 41571 Err codemadness.org 70 i 41572


]]> Err codemadness.org 70 i 41573
Err codemadness.org 70 i 41574 https://fireside.fm/player/v2/FYhhasNR+arq3hCX1 Err codemadness.org 70 i 41575 Err codemadness.org 70 i 41576 ]]> Err codemadness.org 70 i 41577 Err codemadness.org 70 i 41578
Err codemadness.org 70 i 41579 Err codemadness.org 70 i 41580 Episode 265: Software Disenchantment | BSD Now 265 Err codemadness.org 70 i 41581 https://www.bsdnow.tv/265 Err codemadness.org 70 i 41582 http://feed.jupiter.zone/bsdnow#entry-2631 Err codemadness.org 70 i 41583 Thu, 27 Sep 2018 01:00:00 -0700 Err codemadness.org 70 i 41584 Allan Jude Err codemadness.org 70 i 41585 Err codemadness.org 70 i 41586 full Err codemadness.org 70 i 41587 Allan Jude Err codemadness.org 70 i 41588 We report from our experiences at EuroBSDcon, disenchant software, LLVM 7.0.0 has been released, Thinkpad BIOS update options, HardenedBSD Foundation announced, and ZFS send vs. rsync. Err codemadness.org 70 i 41589 1:41:55 Err codemadness.org 70 i 41590 no Err codemadness.org 70 i 41591 Err codemadness.org 70 i 41592 We report from our experiences at EuroBSDcon, disenchant software, LLVM 7.0.0 has been released, Thinkpad BIOS update options, HardenedBSD Foundation announced, and ZFS send vs. rsync. Err codemadness.org 70 i 41593 <p>##Headlines</p> Err codemadness.org 70 i 41594 <p>###[FreeBSD DevSummit &amp; EuroBSDcon 2018 in Romania]</p> Err codemadness.org 70 i 41595 <ul> Err codemadness.org 70 i 41596 <li>Your hosts are back from EuroBSDcon 2018 held in Bucharest, Romania this year. The first two days of the conference are used for tutorials and devsummits (FreeBSD and NetBSD), while the last two are for talks.</li> Err codemadness.org 70 i 41597 <li>Although Benedict organized the devsummit in large parts, he did not attend it this year. He held his Ansible tutorial in the morning of the first day, followed by Niclas Zeising’s new ports and poudriere tutorial (which had a record attendance). It was intended for beginners that had never used poudriere before and those who wanted to create their first port. The tutorial was well received and Niclas already has ideas for extending it for future conferences.</li> Err codemadness.org 70 i 41598 <li>On the second day, Benedict took Kirk McKusick’s “An Introduction to the FreeBSD Open-Source Operating System” tutorial, held as a one full day class this year. Although it was reduced in content, it went into enough depth of many areas of the kernel and operating system to spark many questions from attendees. Clearly, this is a good start into kernel programming as Kirk provides enough material and backstories to understand why certain things are implemented as they are.</li> Err codemadness.org 70 i 41599 <li>Olivier Robert took <a href="https://www.talegraph.com/tales/l2o9ltrvsE">https://www.talegraph.com/tales/l2o9ltrvsE</a> (pictures from the devsummit) and created a nice gallery out of it.</li> Err codemadness.org 70 i 41600 <li>Devsummit evenings saw dinners at two restaurants that allowed developers to spend some time talking over food and drinks.</li> Err codemadness.org 70 i 41601 <li>The conference opened on the next day with the opening session held by Mihai Carabas. He introduced the first keynote speaker, a colleague of his who presented “Lightweight virtualization with LightVM and Unikraft”.</li> Err codemadness.org 70 i 41602 <li>Benedict helped out at the FreeBSD Foundation sponsor table and talked to people. He saw the following talks in between:</li> Err codemadness.org 70 i 41603 </ul> Err codemadness.org 70 i 41604 <blockquote> Err codemadness.org 70 i 41605 <p>Selfhosting as an alternative to the public cloud (by Albert Dengg)<br> Err codemadness.org 70 i 41606 Using Boot Environments at Scale (by Allan Jude)<br> Err codemadness.org 70 i 41607 Livepatching FreeBSD kernel (by Maciej Grochowski)<br> Err codemadness.org 70 i 41608 FreeBSD: What to (Not) Monitor (by Andrew Fengler)<br> Err codemadness.org 70 i 41609 FreeBSD Graphics (by Niclas Zeising)</p> Err codemadness.org 70 i 41610 </blockquote> Err codemadness.org 70 i 41611 <ul> Err codemadness.org 70 i 41612 <li>Allan spent a lot of time talking to people and helping track down issues they were having, in addition to attending many talks: Err codemadness.org 70 i 41613 <blockquote> Err codemadness.org 70 i 41614 <p>Hacking together a FreeBSD presentation streaming box – For as little as possible (by Tom Jones)<br> Err codemadness.org 70 i 41615 Introduction of FreeBSD in new environments (by Baptiste Daroussin)<br> Err codemadness.org 70 i 41616 Keynote: Some computing and networking historical perspectives (by Ron Broersma)<br> Err codemadness.org 70 i 41617 Livepatching FreeBSD kernel (by Maciej Grochowski)<br> Err codemadness.org 70 i 41618 FreeBSD: What to (Not) Monitor (by Andrew Fengler)<br> Err codemadness.org 70 i 41619 Being a BSD user (by Roller Angel)<br> Err codemadness.org 70 i 41620 From “Hello World” to the VFS Layer: building a beadm for DragonFly BSD (by Michael Voight)</p> Err codemadness.org 70 i 41621 </blockquote> Err codemadness.org 70 i 41622 </li> Err codemadness.org 70 i 41623 <li>We also met the winner of our Power Bagel raffle from <a href="http://www.bsdnow.tv/episodes/2018_07_25-2_8_because_computers">Episode 2^8</a>. He received the item in the meantime and had it with him at the conference, providing a power outlet to charge other people’s devices.</li> Err codemadness.org 70 i 41624 <li>During the closing session, <a href="https://twitter.com/groffthebsdgoat">GroffTheBSDGoat</a> was handed over to Deb Goodkin, who will bring the little guy to the <a href="https://ghc.anitab.org/">Grace Hopper Celebration of Women in Computing conference</a> and then to <a href="http://meetbsd.com">MeetBSD</a> later this year. It was also revealed that next year’s EuroBSDcon will be held in Lillehammer, Norway.</li> Err codemadness.org 70 i 41625 <li>Thanks to all the speakers, helpers, sponsors, organizers, and attendees for making it a successful conferences. There were no talks recorded this year, but the slides will be uploaded to the <a href="http://eurobsdcon.org">EuroBSDcon website</a> in a couple of weeks. The <a href="https://www.openbsd.org/events.html#eurobsdcon2018">OpenBSD talks</a> are already available, so check them out.</li> Err codemadness.org 70 i 41626 </ul> Err codemadness.org 70 i 41627 <p>###<a href="http://tonsky.me/blog/disenchantment/">Software disenchantment</a></p> Err codemadness.org 70 i 41628 <blockquote> Err codemadness.org 70 i 41629 <p>I’ve been programming for 15 years now. Recently our industry’s lack of care for efficiency, simplicity, and excellence started really getting to me, to the point of me getting depressed by my own career and the IT in general.<br> Err codemadness.org 70 i 41630 Modern cars work, let’s say for the sake of argument, at 98% of what’s physically possible with the current engine design. Modern buildings use just enough material to fulfill their function and stay safe under the given conditions. All planes converged to the optimal size/form/load and basically look the same.<br> Err codemadness.org 70 i 41631 Only in software, it’s fine if a program runs at 1% or even 0.01% of the possible performance. Everybody just seems to be ok with it. People are often even proud about how much inefficient it is, as in “why should we worry, computers are fast enough”:<br> Err codemadness.org 70 i 41632 @tveastman: I have a Python program I run every day, it takes 1.5 seconds. I spent six hours re-writing it in rust, now it takes 0.06 seconds. That efficiency improvement means I’ll make my time back in 41 years, 24 days :-)<br> Err codemadness.org 70 i 41633 You’ve probably heard this mantra: “programmer time is more expensive than computer time”. What it means basically is that we’re wasting computers at an unprecedented scale. Would you buy a car if it eats 100 liters per 100 kilometers? How about 1000 liters? With computers, we do that all the time.</p> Err codemadness.org 70 i 41634 </blockquote> Err codemadness.org 70 i 41635 <ul> Err codemadness.org 70 i 41636 <li>Everything is unbearably slow</li> Err codemadness.org 70 i 41637 </ul> Err codemadness.org 70 i 41638 <blockquote> Err codemadness.org 70 i 41639 <p>Look around: our portable computers are thousands of times more powerful than the ones that brought man to the moon. Yet every other webpage struggles to maintain a smooth 60fps scroll on the latest top-of-the-line MacBook Pro. I can comfortably play games, watch 4K videos but not scroll web pages? How is it ok?<br> Err codemadness.org 70 i 41640 Google Inbox, a web app written by Google, running in Chrome browser also by Google, takes 13 seconds to open moderately-sized emails:<br> Err codemadness.org 70 i 41641 It also animates empty white boxes instead of showing their content because it’s the only way anything can be animated on a webpage with decent performance. No, decent doesn’t mean 60fps, it’s rather “as fast as this web page could possibly go”. I’m dying to see web community answer when 120Hz displays become mainstream. Shit barely hits 60Hz already.<br> Err codemadness.org 70 i 41642 Windows 10 takes 30 minutes to update. What could it possibly be doing for that long? That much time is enough to fully format my SSD drive, download a fresh build and install it like 5 times in a row.<br> Err codemadness.org 70 i 41643 Pavel Fatin: Typing in editor is a relatively simple process, so even 286 PCs were able to provide a rather fluid typing experience.<br> Err codemadness.org 70 i 41644 Modern text editors have higher latency than 42-year-old Emacs. Text editors! What can be simpler? On each keystroke, all you have to do is update tiny rectangular region and modern text editors can’t do that in 16ms. It’s a lot of time. A LOT. A 3D game can fill the whole screen with hundreds of thousands (!!!) of polygons in the same 16ms and also process input, recalculate the world and dynamically load/unload resources. How come?<br> Err codemadness.org 70 i 41645 As a general trend, we’re not getting faster software with more features. We’re getting faster hardware that runs slower software with the same features. Everything works way below the possible speed. Ever wonder why your phone needs 30 to 60 seconds to boot? Why can’t it boot, say, in one second? There are no physical limitations to that. I would love to see that. I would love to see limits reached and explored, utilizing every last bit of performance we can get for something meaningful in a meaningful way.</p> Err codemadness.org 70 i 41646 </blockquote> Err codemadness.org 70 i 41647 <ul> Err codemadness.org 70 i 41648 <li>Everything is HUUUUGE</li> Err codemadness.org 70 i 41649 </ul> Err codemadness.org 70 i 41650 <blockquote> Err codemadness.org 70 i 41651 <p>And then there’s bloat. Web apps could open up to 10× faster if you just simply block all ads. Google begs everyone to stop shooting themselves in their feet with AMP initiative—a technology solution to a problem that doesn’t need any technology, just a little bit of common sense. If you remove bloat, the web becomes crazy fast. How smart do you have to be to understand that?<br> Err codemadness.org 70 i 41652 Android system with no apps takes almost 6 Gb. Just think for a second how obscenely HUGE that number is. What’s in there, HD movies? I guess it’s basically code: kernel, drivers. Some string and resources too, sure, but those can’t be big. So, how many drivers do you need for a phone?<br> Err codemadness.org 70 i 41653 Windows 95 was 30Mb. Today we have web pages heavier than that! Windows 10 is 4Gb, which is 133 times as big. But is it 133 times as superior? I mean, functionally they are basically the same. Yes, we have Cortana, but I doubt it takes 3970 Mb. But whatever Windows 10 is, is Android really 150% of that?<br> Err codemadness.org 70 i 41654 Google keyboard app routinely eats 150 Mb. Is an app that draws 30 keys on a screen really five times more complex than the whole Windows 95? Google app, which is basically just a package for Google Web Search, is 350 Mb! Google Play Services, which I do not use (I don’t buy books, music or videos there)—300 Mb that just sit there and which I’m unable to delete.<br> Err codemadness.org 70 i 41655 All that leaves me around 1 Gb for my photos after I install all the essential (social, chats, maps, taxi, banks etc) apps. And that’s with no games and no music at all! Remember times when an OS, apps and all your data fit on a floppy?<br> Err codemadness.org 70 i 41656 Your desktop todo app is probably written in Electron and thus has userland driver for Xbox 360 controller in it, can render 3d graphics and play audio and take photos with your web camera.<br> Err codemadness.org 70 i 41657 A simple text chat is notorious for its load speed and memory consumption. Yes, you really have to count Slack in as a resource-heavy application. I mean, chatroom and barebones text editor, those are supposed to be two of the less demanding apps in the whole world. Welcome to 2018.<br> Err codemadness.org 70 i 41658 At least it works, you might say. Well, bigger doesn’t imply better. Bigger means someone has lost control. Bigger means we don’t know what’s going on. Bigger means complexity tax, performance tax, reliability tax. This is not the norm and should not become the norm. Overweight apps should mean a red flag. They should mean run away scared.</p> Err codemadness.org 70 i 41659 </blockquote> Err codemadness.org 70 i 41660 <ul> Err codemadness.org 70 i 41661 <li>Better world manifesto</li> Err codemadness.org 70 i 41662 </ul> Err codemadness.org 70 i 41663 <blockquote> Err codemadness.org 70 i 41664 <p>I want to see progress. I want change. I want state-of-the-art in software engineering to improve, not just stand still. I don’t want to reinvent the same stuff over and over, less performant and more bloated each time. I want something to believe in, a worthy end goal, a future better than what we have today, and I want a community of engineers who share that vision.<br> Err codemadness.org 70 i 41665 What we have today is not progress. We barely meet business goals with poor tools applied over the top. We’re stuck in local optima and nobody wants to move out. It’s not even a good place, it’s bloated and inefficient. We just somehow got used to it.<br> Err codemadness.org 70 i 41666 So I want to call it out: where we are today is bullshit. As engineers, we can, and should, and will do better. We can have better tools, we can build better apps, faster, more predictable, more reliable, using fewer resources (orders of magnitude fewer!). We need to understand deeply what are we doing and why. We need to deliver: reliably, predictably, with topmost quality. We can—and should–take pride in our work. Not just “given what we had…”—no buts!<br> Err codemadness.org 70 i 41667 I hope I’m not alone at this. I hope there are people out there who want to do the same. I’d appreciate if we at least start talking about how absurdly bad our current situation in the software industry is. And then we maybe figure out how to get out.</p> Err codemadness.org 70 i 41668 </blockquote> Err codemadness.org 70 i 41669 <hr> Err codemadness.org 70 i 41670 <p>##News Roundup<br> Err codemadness.org 70 i 41671 <a href="https://lists.llvm.org/pipermail/llvm-announce/2018-September/000080.html">[llvm-announce] LLVM 7.0.0 Release</a></p> Err codemadness.org 70 i 41672 <pre><code>I am pleased to announce that LLVM 7 is now available. Err codemadness.org 70 i 41673 Err codemadness.org 70 i 41674 Get it here: https://llvm.org/releases/download.html#7.0.0 Err codemadness.org 70 i 41675 Err codemadness.org 70 i 41676 The release contains the work on trunk up to SVN revision 338536 plus Err codemadness.org 70 i 41677 work on the release branch. It is the result of the community's work Err codemadness.org 70 i 41678 over the past six months, including: function multiversioning in Clang Err codemadness.org 70 i 41679 with the 'target' attribute for ELF-based x86/x86_64 targets, improved Err codemadness.org 70 i 41680 PCH support in clang-cl, preliminary DWARF v5 support, basic support Err codemadness.org 70 i 41681 for OpenMP 4.5 offloading to NVPTX, OpenCL C++ support, MSan, X-Ray Err codemadness.org 70 i 41682 and libFuzzer support for FreeBSD, early UBSan, X-Ray and libFuzzer Err codemadness.org 70 i 41683 support for OpenBSD, UBSan checks for implicit conversions, many Err codemadness.org 70 i 41684 long-tail compatibility issues fixed in lld which is now production Err codemadness.org 70 i 41685 ready for ELF, COFF and MinGW, new tools llvm-exegesis, llvm-mca and Err codemadness.org 70 i 41686 diagtool. And as usual, many optimizations, improved diagnostics, and Err codemadness.org 70 i 41687 bug fixes. Err codemadness.org 70 i 41688 Err codemadness.org 70 i 41689 For more details, see the release notes: Err codemadness.org 70 i 41690 https://llvm.org/releases/7.0.0/docs/ReleaseNotes.html Err codemadness.org 70 i 41691 https://llvm.org/releases/7.0.0/tools/clang/docs/ReleaseNotes.html Err codemadness.org 70 i 41692 https://llvm.org/releases/7.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html Err codemadness.org 70 i 41693 https://llvm.org/releases/7.0.0/tools/lld/docs/ReleaseNotes.html Err codemadness.org 70 i 41694 Err codemadness.org 70 i 41695 Thanks to everyone who helped with filing, fixing, and code reviewing Err codemadness.org 70 i 41696 for the release-blocking bugs! Err codemadness.org 70 i 41697 Err codemadness.org 70 i 41698 Special thanks to the release testers and packagers: Bero Err codemadness.org 70 i 41699 Rosenkränzer, Brian Cain, Dimitry Andric, Jonas Hahnfeld, Lei Huang Err codemadness.org 70 i 41700 Michał Górny, Sylvestre Ledru, Takumi Nakamura, and Vedant Kumar. Err codemadness.org 70 i 41701 Err codemadness.org 70 i 41702 For questions or comments about the release, please contact the Err codemadness.org 70 i 41703 community on the mailing lists. Onwards to LLVM 8! Err codemadness.org 70 i 41704 Err codemadness.org 70 i 41705 Cheers, Err codemadness.org 70 i 41706 Hans Err codemadness.org 70 i 41707 </code></pre> Err codemadness.org 70 i 41708 <hr> Err codemadness.org 70 i 41709 <p>###<a href="https://blog.raveland.org/post/thinkpad_update_bios/">Update your Thinkpad’s bios with Linux or OpenBSD</a></p> Err codemadness.org 70 i 41710 <ul> Err codemadness.org 70 i 41711 <li>Get your new bios</li> Err codemadness.org 70 i 41712 </ul> Err codemadness.org 70 i 41713 <blockquote> Err codemadness.org 70 i 41714 <p>At first, go to the Lenovo website and download your new bios:</p> Err codemadness.org 70 i 41715 </blockquote> Err codemadness.org 70 i 41716 <ul> Err codemadness.org 70 i 41717 <li>Go to lenovo support</li> Err codemadness.org 70 i 41718 <li>Use the search bar to find your product (example for me, x270)</li> Err codemadness.org 70 i 41719 <li>Choose the right product (if necessary) and click search</li> Err codemadness.org 70 i 41720 <li>On the right side, click on Update Your System</li> Err codemadness.org 70 i 41721 <li>Click on BIOS/UEFI</li> Err codemadness.org 70 i 41722 <li>Choose *BIOS Update (Bootable CD) for Windows *</li> Err codemadness.org 70 i 41723 <li>Download</li> Err codemadness.org 70 i 41724 </ul> Err codemadness.org 70 i 41725 <blockquote> Err codemadness.org 70 i 41726 <p>For me the file is called like this : r0iuj25wd.iso</p> Err codemadness.org 70 i 41727 </blockquote> Err codemadness.org 70 i 41728 <ul> Err codemadness.org 70 i 41729 <li>Extract bios update</li> Err codemadness.org 70 i 41730 </ul> Err codemadness.org 70 i 41731 <blockquote> Err codemadness.org 70 i 41732 <p>Now you will need to install geteltorito.</p> Err codemadness.org 70 i 41733 </blockquote> Err codemadness.org 70 i 41734 <ul> Err codemadness.org 70 i 41735 <li>With OpenBSD:</li> Err codemadness.org 70 i 41736 </ul> Err codemadness.org 70 i 41737 <p><code>$ doas pkgadd geteltorito</code><br> Err codemadness.org 70 i 41738 <code>quirks-3.7 signed on 2018-09-09T13:15:19Z</code><br> Err codemadness.org 70 i 41739 <code>geteltorito-0.6: ok</code></p> Err codemadness.org 70 i 41740 <ul> Err codemadness.org 70 i 41741 <li>With Debian:</li> Err codemadness.org 70 i 41742 </ul> Err codemadness.org 70 i 41743 <p><code>$ sudo apt-get install genisoimage</code></p> Err codemadness.org 70 i 41744 <ul> Err codemadness.org 70 i 41745 <li>Now we will extract the bios update :</li> Err codemadness.org 70 i 41746 </ul> Err codemadness.org 70 i 41747 <p><code>$ geteltorito -o biosupdate.img r0iuj25wd.iso</code><br> Err codemadness.org 70 i 41748 <code>Booting catalog starts at sector: 20</code><br> Err codemadness.org 70 i 41749 <code>Manufacturer of CD: NERO BURNING ROM VER 12</code><br> Err codemadness.org 70 i 41750 <code>Image architecture: x86</code><br> Err codemadness.org 70 i 41751 <code>Boot media type is: harddisk</code><br> Err codemadness.org 70 i 41752 <code>El Torito image starts at sector 27 and has 43008 sector(s) of 512 Bytes</code><br> Err codemadness.org 70 i 41753 <code></code><br> Err codemadness.org 70 i 41754 <code>Image has been written to file &quot;biosupdate.img&quot;.</code><br> Err codemadness.org 70 i 41755 <code>This will create a file called biosupdate.img.</code></p> Err codemadness.org 70 i 41756 <ul> Err codemadness.org 70 i 41757 <li>Put the image on an USB key</li> Err codemadness.org 70 i 41758 <li>CAREFULL : on my computer, my USB key is sda1 on Linux and sd1 on OpenBSD.</li> Err codemadness.org 70 i 41759 </ul> Err codemadness.org 70 i 41760 <blockquote> Err codemadness.org 70 i 41761 <p>Please check twice on your computer the name of your USB key.</p> Err codemadness.org 70 i 41762 </blockquote> Err codemadness.org 70 i 41763 <ul> Err codemadness.org 70 i 41764 <li>With OpenBSD :</li> Err codemadness.org 70 i 41765 </ul> Err codemadness.org 70 i 41766 <p><code>$ doas dd if=biosupdate.img of=/dev/rsd1c</code></p> Err codemadness.org 70 i 41767 <ul> Err codemadness.org 70 i 41768 <li>With Linux :</li> Err codemadness.org 70 i 41769 </ul> Err codemadness.org 70 i 41770 <p><code>$ sudo dd if=biosupdate.img of=/dev/sda</code></p> Err codemadness.org 70 i 41771 <blockquote> Err codemadness.org 70 i 41772 <p>Now all you need is to reboot, to boot on your USB key and follow the instructions. Enjoy &#x1f609;</p> Err codemadness.org 70 i 41773 </blockquote> Err codemadness.org 70 i 41774 <hr> Err codemadness.org 70 i 41775 <p>###<a href="https://hardenedbsd.org/article/shawn-webb/2018-09-17/announcing-hardenedbsd-foundation">Announcing The HardenedBSD Foundation</a></p> Err codemadness.org 70 i 41776 <blockquote> Err codemadness.org 70 i 41777 <p>In June of 2018, we announced our intent to become a not-for-profit, tax-exempt 501©(3) organization in the United States. It took a dedicated team months of work behind-the-scenes to make that happen. On 06 September 2018, HardenedBSD Foundation Corp was granted 501©(3) status, from which point all US-based persons making donations can deduct the donation from their taxes.<br> Err codemadness.org 70 i 41778 We are grateful for those who contribute to HardenedBSD in whatever way they can. Thank you for making HardenedBSD possible. We look forward to a bright future, driven by a helpful and positive community.</p> Err codemadness.org 70 i 41779 </blockquote> Err codemadness.org 70 i 41780 <hr> Err codemadness.org 70 i 41781 <p>###<a href="https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSSendRecvVsRsync">How you migrate ZFS filesystems matters</a></p> Err codemadness.org 70 i 41782 <blockquote> Err codemadness.org 70 i 41783 <p>If you want to move a ZFS filesystem around from one host to another, you have two general approaches; you can use ‘zfs send’ and ‘zfs receive’, or you can use a user level copying tool such as rsync (or ‘tar -cf | tar -xf’, or any number of similar options). Until recently, I had considered these two approaches to be more or less equivalent apart from their convenience and speed (which generally tilted in favour of ‘zfs send’). It turns out that this is not necessarily the case and there are situations where you will want one instead of the other.<br> Err codemadness.org 70 i 41784 We have had two generations of ZFS fileservers so far, the Solaris ones and the OmniOS ones. When we moved from the first generation to the second generation, we migrated filesystems across using ‘zfs send’, including the filesystem with my home directory in it (we did this for various reasons). Recently I discovered that some old things in my filesystem didn’t have file type information in their directory entries. ZFS has been adding file type information to directories for a long time, but not quite as long as my home directory has been on ZFS.<br> Err codemadness.org 70 i 41785 This illustrates an important difference between the ‘zfs send’ approach and the rsync approach, which is that zfs send doesn’t update or change at least some ZFS on-disk data structures, in the way that re-writing them from scratch from user level does. There are both positives and negatives to this, and a certain amount of rewriting does happen even in the ‘zfs send’ case (for example, all of the block pointers get changed, and ZFS will re-compress your data as applicable).<br> Err codemadness.org 70 i 41786 I knew that in theory you had to copy things at the user level if you wanted to make sure that your ZFS filesystem and everything in it was fully up to date with the latest ZFS features. But I didn’t expect to hit a situation where it mattered in practice until, well, I did. Now I suspect that old files on our old filesystems may be partially missing a number of things, and I’m wondering how much of the various changes in ‘zfs upgrade -v’ apply even to old data.<br> Err codemadness.org 70 i 41787 (I’d run into this sort of general thing before when I looked into ext3 to ext4 conversion on Linux.)<br> Err codemadness.org 70 i 41788 With all that said, I doubt this will change our plans for migrating our ZFS filesystems in the future (to our third generation fileservers). ZFS sending and receiving is just too convenient, too fast and too reliable to give up. Rsync isn’t bad, but it’s not the same, and so we only use it when we have to (when we’re moving only some of the people in a filesystem instead of all of them, for example).<br> Err codemadness.org 70 i 41789 PS: I was going to try to say something about what ‘zfs send’ did and didn’t update, but having looked briefly at the code I’ve concluded that I need to do more research before running my keyboard off. In the mean time, you can read the OpenZFS wiki page on ZFS send and receive, which has plenty of juicy technical details.<br> Err codemadness.org 70 i 41790 PPS: Since eliminating all-zero blocks is a form of compression, you can turn zero-filled files into sparse files through a ZFS send/receive if the destination has compression enabled. As far as I know, genuine sparse files on the source will stay sparse through a ZFS send/receive even if they’re sent to a destination with compression off.</p> Err codemadness.org 70 i 41791 </blockquote> Err codemadness.org 70 i 41792 <hr> Err codemadness.org 70 i 41793 <p>##Beastie Bits</p> Err codemadness.org 70 i 41794 <ul> Err codemadness.org 70 i 41795 <li><a href="https://www.meetup.com/BSD-Users-Stockholm/events/254235663/">BSD Users Stockholm Meetup #4: Tuesday, November 13, 2018 at 18:00</a></li> Err codemadness.org 70 i 41796 <li><a href="https://bsd-pl.org/en">BSD Poland User Group: Next Meeting: October 11, 2018, 18:15 - 21:15 at Warsaw University of Technology</a></li> Err codemadness.org 70 i 41797 <li><a href="https://undeadly.org/cgi?action=article;sid=20180915112028">n2k18 Hackathon report: Ken Westerback (krw@) on disklabel(8) work, dhclient(8) progress</a></li> Err codemadness.org 70 i 41798 <li><a href="https://lists.xenproject.org/archives/html/mirageos-devel/2018-09/msg00013.html">Running MirageOS Unikernels on OpenBSD in vmm (Now Works)</a></li> Err codemadness.org 70 i 41799 <li><a href="https://undeadly.org/cgi?action=article;sid=20180910070407">vmm(4) gets support for qcow2</a></li> Err codemadness.org 70 i 41800 <li><a href="https://oshogbo.vexillium.org/blog/52/">MeetBSD and SecurityBsides</a></li> Err codemadness.org 70 i 41801 <li><a href="https://twitter.com/cperciva/status/1041433506453155840">Colin Percival reduced FreeBSD startup time from 10627ms (11.2) to 4738ms (12.0)</a></li> Err codemadness.org 70 i 41802 <li><a href="https://lists.freebsd.org/pipermail/freebsd-announce/2018-September/001842.html">FreeBSD 11.1 end-of-life</a></li> Err codemadness.org 70 i 41803 <li><a href="https://www.meetup.com/KnoxBUG-BSD-Linux-and-FOSS-Users-Unite/events/254759084">KnoxBug: Monday, October 1, 2018 at 18:00: Real-world Performance Advantages of NVDIMM and NVMe: Case Study with OpenZFS</a></li> Err codemadness.org 70 i 41804 </ul> Err codemadness.org 70 i 41805 <hr> Err codemadness.org 70 i 41806 <p>##Feedback/Questions</p> Err codemadness.org 70 i 41807 <ul> Err codemadness.org 70 i 41808 <li>Todd - <a href="http://dpaste.com/2QZEZPA">2 Nics, 1 bhyve and a jail cell</a></li> Err codemadness.org 70 i 41809 <li>Thomas - <a href="http://dpaste.com/3SFM1YP#wrap">Deep Dive</a></li> Err codemadness.org 70 i 41810 <li>Morgan - <a href="http://dpaste.com/07EK4RK#wrap">Send/Receive to Manage Fragmentation?</a></li> Err codemadness.org 70 i 41811 <li>Dominik - <a href="http://dpaste.com/0SZJ0V4#wrap">hierarchical jails -&gt; networking</a></li> Err codemadness.org 70 i 41812 </ul> Err codemadness.org 70 i 41813 <hr> Err codemadness.org 70 i 41814 <ul> Err codemadness.org 70 i 41815 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 41816 </ul> Err codemadness.org 70 i 41817 <hr> Err codemadness.org 70 i 41818 Err codemadness.org 70 i 41819 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, ZFS rsync, Thinkpad, BIOS, LLVM, eurobsdcon, trip report, conference, bsd conference Err codemadness.org 70 i 41820 Err codemadness.org 70 i 41821 We report from our experiences at EuroBSDcon, disenchant software, LLVM 7.0.0 has been released, Thinkpad BIOS update options, HardenedBSD Foundation announced, and ZFS send vs. rsync.

Err codemadness.org 70 i 41822 Err codemadness.org 70 i 41823

##Headlines

Err codemadness.org 70 i 41824 Err codemadness.org 70 i 41825

###[FreeBSD DevSummit & EuroBSDcon 2018 in Romania]

Err codemadness.org 70 i 41826 Err codemadness.org 70 i 41827
    Err codemadness.org 70 i 41828
  • Your hosts are back from EuroBSDcon 2018 held in Bucharest, Romania this year. The first two days of the conference are used for tutorials and devsummits (FreeBSD and NetBSD), while the last two are for talks.
  • Err codemadness.org 70 i 41829
  • Although Benedict organized the devsummit in large parts, he did not attend it this year. He held his Ansible tutorial in the morning of the first day, followed by Niclas Zeising’s new ports and poudriere tutorial (which had a record attendance). It was intended for beginners that had never used poudriere before and those who wanted to create their first port. The tutorial was well received and Niclas already has ideas for extending it for future conferences.
  • Err codemadness.org 70 i 41830
  • On the second day, Benedict took Kirk McKusick’s “An Introduction to the FreeBSD Open-Source Operating System” tutorial, held as a one full day class this year. Although it was reduced in content, it went into enough depth of many areas of the kernel and operating system to spark many questions from attendees. Clearly, this is a good start into kernel programming as Kirk provides enough material and backstories to understand why certain things are implemented as they are.
  • Err codemadness.org 70 i 41831
  • Olivier Robert took [https://www.talegraph.com/tales/l2o9ltrvsE](pictures from the devsummit) and created a nice gallery out of it.
  • Err codemadness.org 70 i 41832
  • Devsummit evenings saw dinners at two restaurants that allowed developers to spend some time talking over food and drinks.
  • Err codemadness.org 70 i 41833
  • The conference opened on the next day with the opening session held by Mihai Carabas. He introduced the first keynote speaker, a colleague of his who presented “Lightweight virtualization with LightVM and Unikraft”.
  • Err codemadness.org 70 i 41834
  • Benedict helped out at the FreeBSD Foundation sponsor table and talked to people. He saw the following talks in between:
  • Err codemadness.org 70 i 41835
Err codemadness.org 70 i 41836 Err codemadness.org 70 i 41837
Err codemadness.org 70 i 41838

Selfhosting as an alternative to the public cloud (by Albert Dengg)
Err codemadness.org 70 i 41839 Using Boot Environments at Scale (by Allan Jude)
Err codemadness.org 70 i 41840 Livepatching FreeBSD kernel (by Maciej Grochowski)
Err codemadness.org 70 i 41841 FreeBSD: What to (Not) Monitor (by Andrew Fengler)
Err codemadness.org 70 i 41842 FreeBSD Graphics (by Niclas Zeising)

Err codemadness.org 70 i 41843
Err codemadness.org 70 i 41844 Err codemadness.org 70 i 41845
    Err codemadness.org 70 i 41846
  • Allan spent a lot of time talking to people and helping track down issues they were having, in addition to attending many talks: Err codemadness.org 70 i 41847
    Err codemadness.org 70 i 41848

    Hacking together a FreeBSD presentation streaming box – For as little as possible (by Tom Jones)
    Err codemadness.org 70 i 41849 Introduction of FreeBSD in new environments (by Baptiste Daroussin)
    Err codemadness.org 70 i 41850 Keynote: Some computing and networking historical perspectives (by Ron Broersma)
    Err codemadness.org 70 i 41851 Livepatching FreeBSD kernel (by Maciej Grochowski)
    Err codemadness.org 70 i 41852 FreeBSD: What to (Not) Monitor (by Andrew Fengler)
    Err codemadness.org 70 i 41853 Being a BSD user (by Roller Angel)
    Err codemadness.org 70 i 41854 From “Hello World” to the VFS Layer: building a beadm for DragonFly BSD (by Michael Voight)

    Err codemadness.org 70 i 41855
    Err codemadness.org 70 i 41856
  • Err codemadness.org 70 i 41857
  • We also met the winner of our Power Bagel raffle from Episode 2^8. He received the item in the meantime and had it with him at the conference, providing a power outlet to charge other people’s devices.
  • Err codemadness.org 70 i 41858
  • During the closing session, GroffTheBSDGoat was handed over to Deb Goodkin, who will bring the little guy to the Grace Hopper Celebration of Women in Computing conference and then to MeetBSD later this year. It was also revealed that next year’s EuroBSDcon will be held in Lillehammer, Norway.
  • Err codemadness.org 70 i 41859
  • Thanks to all the speakers, helpers, sponsors, organizers, and attendees for making it a successful conferences. There were no talks recorded this year, but the slides will be uploaded to the EuroBSDcon website in a couple of weeks. The OpenBSD talks are already available, so check them out.
  • Err codemadness.org 70 i 41860
Err codemadness.org 70 i 41861 Err codemadness.org 70 i 41862

###Software disenchantment

Err codemadness.org 70 i 41863 Err codemadness.org 70 i 41864
Err codemadness.org 70 i 41865

I’ve been programming for 15 years now. Recently our industry’s lack of care for efficiency, simplicity, and excellence started really getting to me, to the point of me getting depressed by my own career and the IT in general.
Err codemadness.org 70 i 41866 Modern cars work, let’s say for the sake of argument, at 98% of what’s physically possible with the current engine design. Modern buildings use just enough material to fulfill their function and stay safe under the given conditions. All planes converged to the optimal size/form/load and basically look the same.
Err codemadness.org 70 i 41867 Only in software, it’s fine if a program runs at 1% or even 0.01% of the possible performance. Everybody just seems to be ok with it. People are often even proud about how much inefficient it is, as in “why should we worry, computers are fast enough”:
Err codemadness.org 70 i 41868 @tveastman: I have a Python program I run every day, it takes 1.5 seconds. I spent six hours re-writing it in rust, now it takes 0.06 seconds. That efficiency improvement means I’ll make my time back in 41 years, 24 days :-)
Err codemadness.org 70 i 41869 You’ve probably heard this mantra: “programmer time is more expensive than computer time”. What it means basically is that we’re wasting computers at an unprecedented scale. Would you buy a car if it eats 100 liters per 100 kilometers? How about 1000 liters? With computers, we do that all the time.

Err codemadness.org 70 i 41870
Err codemadness.org 70 i 41871 Err codemadness.org 70 i 41872
    Err codemadness.org 70 i 41873
  • Everything is unbearably slow
  • Err codemadness.org 70 i 41874
Err codemadness.org 70 i 41875 Err codemadness.org 70 i 41876
Err codemadness.org 70 i 41877

Look around: our portable computers are thousands of times more powerful than the ones that brought man to the moon. Yet every other webpage struggles to maintain a smooth 60fps scroll on the latest top-of-the-line MacBook Pro. I can comfortably play games, watch 4K videos but not scroll web pages? How is it ok?
Err codemadness.org 70 i 41878 Google Inbox, a web app written by Google, running in Chrome browser also by Google, takes 13 seconds to open moderately-sized emails:
Err codemadness.org 70 i 41879 It also animates empty white boxes instead of showing their content because it’s the only way anything can be animated on a webpage with decent performance. No, decent doesn’t mean 60fps, it’s rather “as fast as this web page could possibly go”. I’m dying to see web community answer when 120Hz displays become mainstream. Shit barely hits 60Hz already.
Err codemadness.org 70 i 41880 Windows 10 takes 30 minutes to update. What could it possibly be doing for that long? That much time is enough to fully format my SSD drive, download a fresh build and install it like 5 times in a row.
Err codemadness.org 70 i 41881 Pavel Fatin: Typing in editor is a relatively simple process, so even 286 PCs were able to provide a rather fluid typing experience.
Err codemadness.org 70 i 41882 Modern text editors have higher latency than 42-year-old Emacs. Text editors! What can be simpler? On each keystroke, all you have to do is update tiny rectangular region and modern text editors can’t do that in 16ms. It’s a lot of time. A LOT. A 3D game can fill the whole screen with hundreds of thousands (!!!) of polygons in the same 16ms and also process input, recalculate the world and dynamically load/unload resources. How come?
Err codemadness.org 70 i 41883 As a general trend, we’re not getting faster software with more features. We’re getting faster hardware that runs slower software with the same features. Everything works way below the possible speed. Ever wonder why your phone needs 30 to 60 seconds to boot? Why can’t it boot, say, in one second? There are no physical limitations to that. I would love to see that. I would love to see limits reached and explored, utilizing every last bit of performance we can get for something meaningful in a meaningful way.

Err codemadness.org 70 i 41884
Err codemadness.org 70 i 41885 Err codemadness.org 70 i 41886
    Err codemadness.org 70 i 41887
  • Everything is HUUUUGE
  • Err codemadness.org 70 i 41888
Err codemadness.org 70 i 41889 Err codemadness.org 70 i 41890
Err codemadness.org 70 i 41891

And then there’s bloat. Web apps could open up to 10× faster if you just simply block all ads. Google begs everyone to stop shooting themselves in their feet with AMP initiative—a technology solution to a problem that doesn’t need any technology, just a little bit of common sense. If you remove bloat, the web becomes crazy fast. How smart do you have to be to understand that?
Err codemadness.org 70 i 41892 Android system with no apps takes almost 6 Gb. Just think for a second how obscenely HUGE that number is. What’s in there, HD movies? I guess it’s basically code: kernel, drivers. Some string and resources too, sure, but those can’t be big. So, how many drivers do you need for a phone?
Err codemadness.org 70 i 41893 Windows 95 was 30Mb. Today we have web pages heavier than that! Windows 10 is 4Gb, which is 133 times as big. But is it 133 times as superior? I mean, functionally they are basically the same. Yes, we have Cortana, but I doubt it takes 3970 Mb. But whatever Windows 10 is, is Android really 150% of that?
Err codemadness.org 70 i 41894 Google keyboard app routinely eats 150 Mb. Is an app that draws 30 keys on a screen really five times more complex than the whole Windows 95? Google app, which is basically just a package for Google Web Search, is 350 Mb! Google Play Services, which I do not use (I don’t buy books, music or videos there)—300 Mb that just sit there and which I’m unable to delete.
Err codemadness.org 70 i 41895 All that leaves me around 1 Gb for my photos after I install all the essential (social, chats, maps, taxi, banks etc) apps. And that’s with no games and no music at all! Remember times when an OS, apps and all your data fit on a floppy?
Err codemadness.org 70 i 41896 Your desktop todo app is probably written in Electron and thus has userland driver for Xbox 360 controller in it, can render 3d graphics and play audio and take photos with your web camera.
Err codemadness.org 70 i 41897 A simple text chat is notorious for its load speed and memory consumption. Yes, you really have to count Slack in as a resource-heavy application. I mean, chatroom and barebones text editor, those are supposed to be two of the less demanding apps in the whole world. Welcome to 2018.
Err codemadness.org 70 i 41898 At least it works, you might say. Well, bigger doesn’t imply better. Bigger means someone has lost control. Bigger means we don’t know what’s going on. Bigger means complexity tax, performance tax, reliability tax. This is not the norm and should not become the norm. Overweight apps should mean a red flag. They should mean run away scared.

Err codemadness.org 70 i 41899
Err codemadness.org 70 i 41900 Err codemadness.org 70 i 41901
    Err codemadness.org 70 i 41902
  • Better world manifesto
  • Err codemadness.org 70 i 41903
Err codemadness.org 70 i 41904 Err codemadness.org 70 i 41905
Err codemadness.org 70 i 41906

I want to see progress. I want change. I want state-of-the-art in software engineering to improve, not just stand still. I don’t want to reinvent the same stuff over and over, less performant and more bloated each time. I want something to believe in, a worthy end goal, a future better than what we have today, and I want a community of engineers who share that vision.
Err codemadness.org 70 i 41907 What we have today is not progress. We barely meet business goals with poor tools applied over the top. We’re stuck in local optima and nobody wants to move out. It’s not even a good place, it’s bloated and inefficient. We just somehow got used to it.
Err codemadness.org 70 i 41908 So I want to call it out: where we are today is bullshit. As engineers, we can, and should, and will do better. We can have better tools, we can build better apps, faster, more predictable, more reliable, using fewer resources (orders of magnitude fewer!). We need to understand deeply what are we doing and why. We need to deliver: reliably, predictably, with topmost quality. We can—and should–take pride in our work. Not just “given what we had…”—no buts!
Err codemadness.org 70 i 41909 I hope I’m not alone at this. I hope there are people out there who want to do the same. I’d appreciate if we at least start talking about how absurdly bad our current situation in the software industry is. And then we maybe figure out how to get out.

Err codemadness.org 70 i 41910
Err codemadness.org 70 i 41911 Err codemadness.org 70 i 41912


Err codemadness.org 70 i 41913 Err codemadness.org 70 i 41914

##News Roundup
Err codemadness.org 70 i 41915 ###[llvm-announce] LLVM 7.0.0 Release

Err codemadness.org 70 i 41916 Err codemadness.org 70 i 41917
I am pleased to announce that LLVM 7 is now available.	Err	codemadness.org	70
i 41918 	Err	codemadness.org	70
i 41919 Get it here: https://llvm.org/releases/download.html#7.0.0	Err	codemadness.org	70
i 41920 	Err	codemadness.org	70
i 41921 The release contains the work on trunk up to SVN revision 338536 plus	Err	codemadness.org	70
i 41922 work on the release branch. It is the result of the community's work	Err	codemadness.org	70
i 41923 over the past six months, including: function multiversioning in Clang	Err	codemadness.org	70
i 41924 with the 'target' attribute for ELF-based x86/x86_64 targets, improved	Err	codemadness.org	70
i 41925 PCH support in clang-cl, preliminary DWARF v5 support, basic support	Err	codemadness.org	70
i 41926 for OpenMP 4.5 offloading to NVPTX, OpenCL C++ support, MSan, X-Ray	Err	codemadness.org	70
i 41927 and libFuzzer support for FreeBSD, early UBSan, X-Ray and libFuzzer	Err	codemadness.org	70
i 41928 support for OpenBSD, UBSan checks for implicit conversions, many	Err	codemadness.org	70
i 41929 long-tail compatibility issues fixed in lld which is now production	Err	codemadness.org	70
i 41930 ready for ELF, COFF and MinGW, new tools llvm-exegesis, llvm-mca and	Err	codemadness.org	70
i 41931 diagtool. And as usual, many optimizations, improved diagnostics, and	Err	codemadness.org	70
i 41932 bug fixes.	Err	codemadness.org	70
i 41933 	Err	codemadness.org	70
i 41934 For more details, see the release notes:	Err	codemadness.org	70
i 41935 https://llvm.org/releases/7.0.0/docs/ReleaseNotes.html	Err	codemadness.org	70
i 41936 https://llvm.org/releases/7.0.0/tools/clang/docs/ReleaseNotes.html	Err	codemadness.org	70
i 41937 https://llvm.org/releases/7.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html	Err	codemadness.org	70
i 41938 https://llvm.org/releases/7.0.0/tools/lld/docs/ReleaseNotes.html	Err	codemadness.org	70
i 41939 	Err	codemadness.org	70
i 41940 Thanks to everyone who helped with filing, fixing, and code reviewing	Err	codemadness.org	70
i 41941 for the release-blocking bugs!	Err	codemadness.org	70
i 41942 	Err	codemadness.org	70
i 41943 Special thanks to the release testers and packagers: Bero	Err	codemadness.org	70
i 41944 Rosenkränzer, Brian Cain, Dimitry Andric, Jonas Hahnfeld, Lei Huang	Err	codemadness.org	70
i 41945 Michał Górny, Sylvestre Ledru, Takumi Nakamura, and Vedant Kumar.	Err	codemadness.org	70
i 41946 	Err	codemadness.org	70
i 41947 For questions or comments about the release, please contact the	Err	codemadness.org	70
i 41948 community on the mailing lists. Onwards to LLVM 8!	Err	codemadness.org	70
i 41949 	Err	codemadness.org	70
i 41950 Cheers,	Err	codemadness.org	70
i 41951 Hans	Err	codemadness.org	70
i 41952 
Err codemadness.org 70 i 41953 Err codemadness.org 70 i 41954


Err codemadness.org 70 i 41955 Err codemadness.org 70 i 41956

###Update your Thinkpad’s bios with Linux or OpenBSD

Err codemadness.org 70 i 41957 Err codemadness.org 70 i 41958
    Err codemadness.org 70 i 41959
  • Get your new bios
  • Err codemadness.org 70 i 41960
Err codemadness.org 70 i 41961 Err codemadness.org 70 i 41962
Err codemadness.org 70 i 41963

At first, go to the Lenovo website and download your new bios:

Err codemadness.org 70 i 41964
Err codemadness.org 70 i 41965 Err codemadness.org 70 i 41966
    Err codemadness.org 70 i 41967
  • Go to lenovo support
  • Err codemadness.org 70 i 41968
  • Use the search bar to find your product (example for me, x270)
  • Err codemadness.org 70 i 41969
  • Choose the right product (if necessary) and click search
  • Err codemadness.org 70 i 41970
  • On the right side, click on Update Your System
  • Err codemadness.org 70 i 41971
  • Click on BIOS/UEFI
  • Err codemadness.org 70 i 41972
  • Choose *BIOS Update (Bootable CD) for Windows *
  • Err codemadness.org 70 i 41973
  • Download
  • Err codemadness.org 70 i 41974
Err codemadness.org 70 i 41975 Err codemadness.org 70 i 41976
Err codemadness.org 70 i 41977

For me the file is called like this : r0iuj25wd.iso

Err codemadness.org 70 i 41978
Err codemadness.org 70 i 41979 Err codemadness.org 70 i 41980
    Err codemadness.org 70 i 41981
  • Extract bios update
  • Err codemadness.org 70 i 41982
Err codemadness.org 70 i 41983 Err codemadness.org 70 i 41984
Err codemadness.org 70 i 41985

Now you will need to install geteltorito.

Err codemadness.org 70 i 41986
Err codemadness.org 70 i 41987 Err codemadness.org 70 i 41988
    Err codemadness.org 70 i 41989
  • With OpenBSD:
  • Err codemadness.org 70 i 41990
Err codemadness.org 70 i 41991 Err codemadness.org 70 i 41992

$ doas pkg_add geteltorito
Err codemadness.org 70 i 41993 quirks-3.7 signed on 2018-09-09T13:15:19Z
Err codemadness.org 70 i 41994 geteltorito-0.6: ok

Err codemadness.org 70 i 41995 Err codemadness.org 70 i 41996
    Err codemadness.org 70 i 41997
  • With Debian:
  • Err codemadness.org 70 i 41998
Err codemadness.org 70 i 41999 Err codemadness.org 70 i 42000

$ sudo apt-get install genisoimage

Err codemadness.org 70 i 42001 Err codemadness.org 70 i 42002
    Err codemadness.org 70 i 42003
  • Now we will extract the bios update :
  • Err codemadness.org 70 i 42004
Err codemadness.org 70 i 42005 Err codemadness.org 70 i 42006

$ geteltorito -o bios_update.img r0iuj25wd.iso
Err codemadness.org 70 i 42007 Booting catalog starts at sector: 20
Err codemadness.org 70 i 42008 Manufacturer of CD: NERO BURNING ROM VER 12
Err codemadness.org 70 i 42009 Image architecture: x86
Err codemadness.org 70 i 42010 Boot media type is: harddisk
Err codemadness.org 70 i 42011 El Torito image starts at sector 27 and has 43008 sector(s) of 512 Bytes
Err codemadness.org 70 i 42012
Err codemadness.org 70 i 42013 Image has been written to file "bios_update.img".
Err codemadness.org 70 i 42014 This will create a file called bios_update.img.

Err codemadness.org 70 i 42015 Err codemadness.org 70 i 42016
    Err codemadness.org 70 i 42017
  • Put the image on an USB key
  • Err codemadness.org 70 i 42018
  • CAREFULL : on my computer, my USB key is sda1 on Linux and sd1 on OpenBSD.
  • Err codemadness.org 70 i 42019
Err codemadness.org 70 i 42020 Err codemadness.org 70 i 42021
Err codemadness.org 70 i 42022

Please check twice on your computer the name of your USB key.

Err codemadness.org 70 i 42023
Err codemadness.org 70 i 42024 Err codemadness.org 70 i 42025
    Err codemadness.org 70 i 42026
  • With OpenBSD :
  • Err codemadness.org 70 i 42027
Err codemadness.org 70 i 42028 Err codemadness.org 70 i 42029

$ doas dd if=bios_update.img of=/dev/rsd1c

Err codemadness.org 70 i 42030 Err codemadness.org 70 i 42031
    Err codemadness.org 70 i 42032
  • With Linux :
  • Err codemadness.org 70 i 42033
Err codemadness.org 70 i 42034 Err codemadness.org 70 i 42035

$ sudo dd if=bios_update.img of=/dev/sda

Err codemadness.org 70 i 42036 Err codemadness.org 70 i 42037
Err codemadness.org 70 i 42038

Now all you need is to reboot, to boot on your USB key and follow the instructions. Enjoy 😉

Err codemadness.org 70 i 42039
Err codemadness.org 70 i 42040 Err codemadness.org 70 i 42041


Err codemadness.org 70 i 42042 Err codemadness.org 70 i 42043

###Announcing The HardenedBSD Foundation

Err codemadness.org 70 i 42044 Err codemadness.org 70 i 42045
Err codemadness.org 70 i 42046

In June of 2018, we announced our intent to become a not-for-profit, tax-exempt 501©(3) organization in the United States. It took a dedicated team months of work behind-the-scenes to make that happen. On 06 September 2018, HardenedBSD Foundation Corp was granted 501©(3) status, from which point all US-based persons making donations can deduct the donation from their taxes.
Err codemadness.org 70 i 42047 We are grateful for those who contribute to HardenedBSD in whatever way they can. Thank you for making HardenedBSD possible. We look forward to a bright future, driven by a helpful and positive community.

Err codemadness.org 70 i 42048
Err codemadness.org 70 i 42049 Err codemadness.org 70 i 42050


Err codemadness.org 70 i 42051 Err codemadness.org 70 i 42052

###How you migrate ZFS filesystems matters

Err codemadness.org 70 i 42053 Err codemadness.org 70 i 42054
Err codemadness.org 70 i 42055

If you want to move a ZFS filesystem around from one host to another, you have two general approaches; you can use ‘zfs send’ and ‘zfs receive’, or you can use a user level copying tool such as rsync (or ‘tar -cf | tar -xf’, or any number of similar options). Until recently, I had considered these two approaches to be more or less equivalent apart from their convenience and speed (which generally tilted in favour of ‘zfs send’). It turns out that this is not necessarily the case and there are situations where you will want one instead of the other.
Err codemadness.org 70 i 42056 We have had two generations of ZFS fileservers so far, the Solaris ones and the OmniOS ones. When we moved from the first generation to the second generation, we migrated filesystems across using ‘zfs send’, including the filesystem with my home directory in it (we did this for various reasons). Recently I discovered that some old things in my filesystem didn’t have file type information in their directory entries. ZFS has been adding file type information to directories for a long time, but not quite as long as my home directory has been on ZFS.
Err codemadness.org 70 i 42057 This illustrates an important difference between the ‘zfs send’ approach and the rsync approach, which is that zfs send doesn’t update or change at least some ZFS on-disk data structures, in the way that re-writing them from scratch from user level does. There are both positives and negatives to this, and a certain amount of rewriting does happen even in the ‘zfs send’ case (for example, all of the block pointers get changed, and ZFS will re-compress your data as applicable).
Err codemadness.org 70 i 42058 I knew that in theory you had to copy things at the user level if you wanted to make sure that your ZFS filesystem and everything in it was fully up to date with the latest ZFS features. But I didn’t expect to hit a situation where it mattered in practice until, well, I did. Now I suspect that old files on our old filesystems may be partially missing a number of things, and I’m wondering how much of the various changes in ‘zfs upgrade -v’ apply even to old data.
Err codemadness.org 70 i 42059 (I’d run into this sort of general thing before when I looked into ext3 to ext4 conversion on Linux.)
Err codemadness.org 70 i 42060 With all that said, I doubt this will change our plans for migrating our ZFS filesystems in the future (to our third generation fileservers). ZFS sending and receiving is just too convenient, too fast and too reliable to give up. Rsync isn’t bad, but it’s not the same, and so we only use it when we have to (when we’re moving only some of the people in a filesystem instead of all of them, for example).
Err codemadness.org 70 i 42061 PS: I was going to try to say something about what ‘zfs send’ did and didn’t update, but having looked briefly at the code I’ve concluded that I need to do more research before running my keyboard off. In the mean time, you can read the OpenZFS wiki page on ZFS send and receive, which has plenty of juicy technical details.
Err codemadness.org 70 i 42062 PPS: Since eliminating all-zero blocks is a form of compression, you can turn zero-filled files into sparse files through a ZFS send/receive if the destination has compression enabled. As far as I know, genuine sparse files on the source will stay sparse through a ZFS send/receive even if they’re sent to a destination with compression off.

Err codemadness.org 70 i 42063
Err codemadness.org 70 i 42064 Err codemadness.org 70 i 42065


Err codemadness.org 70 i 42066 Err codemadness.org 70 i 42067

##Beastie Bits

Err codemadness.org 70 i 42068 Err codemadness.org 70 i 42069 Err codemadness.org 70 i 42080 Err codemadness.org 70 i 42081


Err codemadness.org 70 i 42082 Err codemadness.org 70 i 42083

##Feedback/Questions

Err codemadness.org 70 i 42084 Err codemadness.org 70 i 42085 Err codemadness.org 70 i 42091 Err codemadness.org 70 i 42092


Err codemadness.org 70 i 42093 Err codemadness.org 70 i 42094
    Err codemadness.org 70 i 42095
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 42096
Err codemadness.org 70 i 42097 Err codemadness.org 70 i 42098


]]> Err codemadness.org 70 i 42099
Err codemadness.org 70 i 42100 Err codemadness.org 70 i 42101 We report from our experiences at EuroBSDcon, disenchant software, LLVM 7.0.0 has been released, Thinkpad BIOS update options, HardenedBSD Foundation announced, and ZFS send vs. rsync.

Err codemadness.org 70 i 42102 Err codemadness.org 70 i 42103

##Headlines

Err codemadness.org 70 i 42104 Err codemadness.org 70 i 42105

###[FreeBSD DevSummit & EuroBSDcon 2018 in Romania]

Err codemadness.org 70 i 42106 Err codemadness.org 70 i 42107
    Err codemadness.org 70 i 42108
  • Your hosts are back from EuroBSDcon 2018 held in Bucharest, Romania this year. The first two days of the conference are used for tutorials and devsummits (FreeBSD and NetBSD), while the last two are for talks.
  • Err codemadness.org 70 i 42109
  • Although Benedict organized the devsummit in large parts, he did not attend it this year. He held his Ansible tutorial in the morning of the first day, followed by Niclas Zeising’s new ports and poudriere tutorial (which had a record attendance). It was intended for beginners that had never used poudriere before and those who wanted to create their first port. The tutorial was well received and Niclas already has ideas for extending it for future conferences.
  • Err codemadness.org 70 i 42110
  • On the second day, Benedict took Kirk McKusick’s “An Introduction to the FreeBSD Open-Source Operating System” tutorial, held as a one full day class this year. Although it was reduced in content, it went into enough depth of many areas of the kernel and operating system to spark many questions from attendees. Clearly, this is a good start into kernel programming as Kirk provides enough material and backstories to understand why certain things are implemented as they are.
  • Err codemadness.org 70 i 42111
  • Olivier Robert took [https://www.talegraph.com/tales/l2o9ltrvsE](pictures from the devsummit) and created a nice gallery out of it.
  • Err codemadness.org 70 i 42112
  • Devsummit evenings saw dinners at two restaurants that allowed developers to spend some time talking over food and drinks.
  • Err codemadness.org 70 i 42113
  • The conference opened on the next day with the opening session held by Mihai Carabas. He introduced the first keynote speaker, a colleague of his who presented “Lightweight virtualization with LightVM and Unikraft”.
  • Err codemadness.org 70 i 42114
  • Benedict helped out at the FreeBSD Foundation sponsor table and talked to people. He saw the following talks in between:
  • Err codemadness.org 70 i 42115
Err codemadness.org 70 i 42116 Err codemadness.org 70 i 42117
Err codemadness.org 70 i 42118

Selfhosting as an alternative to the public cloud (by Albert Dengg)
Err codemadness.org 70 i 42119 Using Boot Environments at Scale (by Allan Jude)
Err codemadness.org 70 i 42120 Livepatching FreeBSD kernel (by Maciej Grochowski)
Err codemadness.org 70 i 42121 FreeBSD: What to (Not) Monitor (by Andrew Fengler)
Err codemadness.org 70 i 42122 FreeBSD Graphics (by Niclas Zeising)

Err codemadness.org 70 i 42123
Err codemadness.org 70 i 42124 Err codemadness.org 70 i 42125
    Err codemadness.org 70 i 42126
  • Allan spent a lot of time talking to people and helping track down issues they were having, in addition to attending many talks: Err codemadness.org 70 i 42127
    Err codemadness.org 70 i 42128

    Hacking together a FreeBSD presentation streaming box – For as little as possible (by Tom Jones)
    Err codemadness.org 70 i 42129 Introduction of FreeBSD in new environments (by Baptiste Daroussin)
    Err codemadness.org 70 i 42130 Keynote: Some computing and networking historical perspectives (by Ron Broersma)
    Err codemadness.org 70 i 42131 Livepatching FreeBSD kernel (by Maciej Grochowski)
    Err codemadness.org 70 i 42132 FreeBSD: What to (Not) Monitor (by Andrew Fengler)
    Err codemadness.org 70 i 42133 Being a BSD user (by Roller Angel)
    Err codemadness.org 70 i 42134 From “Hello World” to the VFS Layer: building a beadm for DragonFly BSD (by Michael Voight)

    Err codemadness.org 70 i 42135
    Err codemadness.org 70 i 42136
  • Err codemadness.org 70 i 42137
  • We also met the winner of our Power Bagel raffle from Episode 2^8. He received the item in the meantime and had it with him at the conference, providing a power outlet to charge other people’s devices.
  • Err codemadness.org 70 i 42138
  • During the closing session, GroffTheBSDGoat was handed over to Deb Goodkin, who will bring the little guy to the Grace Hopper Celebration of Women in Computing conference and then to MeetBSD later this year. It was also revealed that next year’s EuroBSDcon will be held in Lillehammer, Norway.
  • Err codemadness.org 70 i 42139
  • Thanks to all the speakers, helpers, sponsors, organizers, and attendees for making it a successful conferences. There were no talks recorded this year, but the slides will be uploaded to the EuroBSDcon website in a couple of weeks. The OpenBSD talks are already available, so check them out.
  • Err codemadness.org 70 i 42140
Err codemadness.org 70 i 42141 Err codemadness.org 70 i 42142

###Software disenchantment

Err codemadness.org 70 i 42143 Err codemadness.org 70 i 42144
Err codemadness.org 70 i 42145

I’ve been programming for 15 years now. Recently our industry’s lack of care for efficiency, simplicity, and excellence started really getting to me, to the point of me getting depressed by my own career and the IT in general.
Err codemadness.org 70 i 42146 Modern cars work, let’s say for the sake of argument, at 98% of what’s physically possible with the current engine design. Modern buildings use just enough material to fulfill their function and stay safe under the given conditions. All planes converged to the optimal size/form/load and basically look the same.
Err codemadness.org 70 i 42147 Only in software, it’s fine if a program runs at 1% or even 0.01% of the possible performance. Everybody just seems to be ok with it. People are often even proud about how much inefficient it is, as in “why should we worry, computers are fast enough”:
Err codemadness.org 70 i 42148 @tveastman: I have a Python program I run every day, it takes 1.5 seconds. I spent six hours re-writing it in rust, now it takes 0.06 seconds. That efficiency improvement means I’ll make my time back in 41 years, 24 days :-)
Err codemadness.org 70 i 42149 You’ve probably heard this mantra: “programmer time is more expensive than computer time”. What it means basically is that we’re wasting computers at an unprecedented scale. Would you buy a car if it eats 100 liters per 100 kilometers? How about 1000 liters? With computers, we do that all the time.

Err codemadness.org 70 i 42150
Err codemadness.org 70 i 42151 Err codemadness.org 70 i 42152
    Err codemadness.org 70 i 42153
  • Everything is unbearably slow
  • Err codemadness.org 70 i 42154
Err codemadness.org 70 i 42155 Err codemadness.org 70 i 42156
Err codemadness.org 70 i 42157

Look around: our portable computers are thousands of times more powerful than the ones that brought man to the moon. Yet every other webpage struggles to maintain a smooth 60fps scroll on the latest top-of-the-line MacBook Pro. I can comfortably play games, watch 4K videos but not scroll web pages? How is it ok?
Err codemadness.org 70 i 42158 Google Inbox, a web app written by Google, running in Chrome browser also by Google, takes 13 seconds to open moderately-sized emails:
Err codemadness.org 70 i 42159 It also animates empty white boxes instead of showing their content because it’s the only way anything can be animated on a webpage with decent performance. No, decent doesn’t mean 60fps, it’s rather “as fast as this web page could possibly go”. I’m dying to see web community answer when 120Hz displays become mainstream. Shit barely hits 60Hz already.
Err codemadness.org 70 i 42160 Windows 10 takes 30 minutes to update. What could it possibly be doing for that long? That much time is enough to fully format my SSD drive, download a fresh build and install it like 5 times in a row.
Err codemadness.org 70 i 42161 Pavel Fatin: Typing in editor is a relatively simple process, so even 286 PCs were able to provide a rather fluid typing experience.
Err codemadness.org 70 i 42162 Modern text editors have higher latency than 42-year-old Emacs. Text editors! What can be simpler? On each keystroke, all you have to do is update tiny rectangular region and modern text editors can’t do that in 16ms. It’s a lot of time. A LOT. A 3D game can fill the whole screen with hundreds of thousands (!!!) of polygons in the same 16ms and also process input, recalculate the world and dynamically load/unload resources. How come?
Err codemadness.org 70 i 42163 As a general trend, we’re not getting faster software with more features. We’re getting faster hardware that runs slower software with the same features. Everything works way below the possible speed. Ever wonder why your phone needs 30 to 60 seconds to boot? Why can’t it boot, say, in one second? There are no physical limitations to that. I would love to see that. I would love to see limits reached and explored, utilizing every last bit of performance we can get for something meaningful in a meaningful way.

Err codemadness.org 70 i 42164
Err codemadness.org 70 i 42165 Err codemadness.org 70 i 42166
    Err codemadness.org 70 i 42167
  • Everything is HUUUUGE
  • Err codemadness.org 70 i 42168
Err codemadness.org 70 i 42169 Err codemadness.org 70 i 42170
Err codemadness.org 70 i 42171

And then there’s bloat. Web apps could open up to 10× faster if you just simply block all ads. Google begs everyone to stop shooting themselves in their feet with AMP initiative—a technology solution to a problem that doesn’t need any technology, just a little bit of common sense. If you remove bloat, the web becomes crazy fast. How smart do you have to be to understand that?
Err codemadness.org 70 i 42172 Android system with no apps takes almost 6 Gb. Just think for a second how obscenely HUGE that number is. What’s in there, HD movies? I guess it’s basically code: kernel, drivers. Some string and resources too, sure, but those can’t be big. So, how many drivers do you need for a phone?
Err codemadness.org 70 i 42173 Windows 95 was 30Mb. Today we have web pages heavier than that! Windows 10 is 4Gb, which is 133 times as big. But is it 133 times as superior? I mean, functionally they are basically the same. Yes, we have Cortana, but I doubt it takes 3970 Mb. But whatever Windows 10 is, is Android really 150% of that?
Err codemadness.org 70 i 42174 Google keyboard app routinely eats 150 Mb. Is an app that draws 30 keys on a screen really five times more complex than the whole Windows 95? Google app, which is basically just a package for Google Web Search, is 350 Mb! Google Play Services, which I do not use (I don’t buy books, music or videos there)—300 Mb that just sit there and which I’m unable to delete.
Err codemadness.org 70 i 42175 All that leaves me around 1 Gb for my photos after I install all the essential (social, chats, maps, taxi, banks etc) apps. And that’s with no games and no music at all! Remember times when an OS, apps and all your data fit on a floppy?
Err codemadness.org 70 i 42176 Your desktop todo app is probably written in Electron and thus has userland driver for Xbox 360 controller in it, can render 3d graphics and play audio and take photos with your web camera.
Err codemadness.org 70 i 42177 A simple text chat is notorious for its load speed and memory consumption. Yes, you really have to count Slack in as a resource-heavy application. I mean, chatroom and barebones text editor, those are supposed to be two of the less demanding apps in the whole world. Welcome to 2018.
Err codemadness.org 70 i 42178 At least it works, you might say. Well, bigger doesn’t imply better. Bigger means someone has lost control. Bigger means we don’t know what’s going on. Bigger means complexity tax, performance tax, reliability tax. This is not the norm and should not become the norm. Overweight apps should mean a red flag. They should mean run away scared.

Err codemadness.org 70 i 42179
Err codemadness.org 70 i 42180 Err codemadness.org 70 i 42181
    Err codemadness.org 70 i 42182
  • Better world manifesto
  • Err codemadness.org 70 i 42183
Err codemadness.org 70 i 42184 Err codemadness.org 70 i 42185
Err codemadness.org 70 i 42186

I want to see progress. I want change. I want state-of-the-art in software engineering to improve, not just stand still. I don’t want to reinvent the same stuff over and over, less performant and more bloated each time. I want something to believe in, a worthy end goal, a future better than what we have today, and I want a community of engineers who share that vision.
Err codemadness.org 70 i 42187 What we have today is not progress. We barely meet business goals with poor tools applied over the top. We’re stuck in local optima and nobody wants to move out. It’s not even a good place, it’s bloated and inefficient. We just somehow got used to it.
Err codemadness.org 70 i 42188 So I want to call it out: where we are today is bullshit. As engineers, we can, and should, and will do better. We can have better tools, we can build better apps, faster, more predictable, more reliable, using fewer resources (orders of magnitude fewer!). We need to understand deeply what are we doing and why. We need to deliver: reliably, predictably, with topmost quality. We can—and should–take pride in our work. Not just “given what we had…”—no buts!
Err codemadness.org 70 i 42189 I hope I’m not alone at this. I hope there are people out there who want to do the same. I’d appreciate if we at least start talking about how absurdly bad our current situation in the software industry is. And then we maybe figure out how to get out.

Err codemadness.org 70 i 42190
Err codemadness.org 70 i 42191 Err codemadness.org 70 i 42192


Err codemadness.org 70 i 42193 Err codemadness.org 70 i 42194

##News Roundup
Err codemadness.org 70 i 42195 ###[llvm-announce] LLVM 7.0.0 Release

Err codemadness.org 70 i 42196 Err codemadness.org 70 i 42197
I am pleased to announce that LLVM 7 is now available.	Err	codemadness.org	70
i 42198 	Err	codemadness.org	70
i 42199 Get it here: https://llvm.org/releases/download.html#7.0.0	Err	codemadness.org	70
i 42200 	Err	codemadness.org	70
i 42201 The release contains the work on trunk up to SVN revision 338536 plus	Err	codemadness.org	70
i 42202 work on the release branch. It is the result of the community's work	Err	codemadness.org	70
i 42203 over the past six months, including: function multiversioning in Clang	Err	codemadness.org	70
i 42204 with the 'target' attribute for ELF-based x86/x86_64 targets, improved	Err	codemadness.org	70
i 42205 PCH support in clang-cl, preliminary DWARF v5 support, basic support	Err	codemadness.org	70
i 42206 for OpenMP 4.5 offloading to NVPTX, OpenCL C++ support, MSan, X-Ray	Err	codemadness.org	70
i 42207 and libFuzzer support for FreeBSD, early UBSan, X-Ray and libFuzzer	Err	codemadness.org	70
i 42208 support for OpenBSD, UBSan checks for implicit conversions, many	Err	codemadness.org	70
i 42209 long-tail compatibility issues fixed in lld which is now production	Err	codemadness.org	70
i 42210 ready for ELF, COFF and MinGW, new tools llvm-exegesis, llvm-mca and	Err	codemadness.org	70
i 42211 diagtool. And as usual, many optimizations, improved diagnostics, and	Err	codemadness.org	70
i 42212 bug fixes.	Err	codemadness.org	70
i 42213 	Err	codemadness.org	70
i 42214 For more details, see the release notes:	Err	codemadness.org	70
i 42215 https://llvm.org/releases/7.0.0/docs/ReleaseNotes.html	Err	codemadness.org	70
i 42216 https://llvm.org/releases/7.0.0/tools/clang/docs/ReleaseNotes.html	Err	codemadness.org	70
i 42217 https://llvm.org/releases/7.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html	Err	codemadness.org	70
i 42218 https://llvm.org/releases/7.0.0/tools/lld/docs/ReleaseNotes.html	Err	codemadness.org	70
i 42219 	Err	codemadness.org	70
i 42220 Thanks to everyone who helped with filing, fixing, and code reviewing	Err	codemadness.org	70
i 42221 for the release-blocking bugs!	Err	codemadness.org	70
i 42222 	Err	codemadness.org	70
i 42223 Special thanks to the release testers and packagers: Bero	Err	codemadness.org	70
i 42224 Rosenkränzer, Brian Cain, Dimitry Andric, Jonas Hahnfeld, Lei Huang	Err	codemadness.org	70
i 42225 Michał Górny, Sylvestre Ledru, Takumi Nakamura, and Vedant Kumar.	Err	codemadness.org	70
i 42226 	Err	codemadness.org	70
i 42227 For questions or comments about the release, please contact the	Err	codemadness.org	70
i 42228 community on the mailing lists. Onwards to LLVM 8!	Err	codemadness.org	70
i 42229 	Err	codemadness.org	70
i 42230 Cheers,	Err	codemadness.org	70
i 42231 Hans	Err	codemadness.org	70
i 42232 
Err codemadness.org 70 i 42233 Err codemadness.org 70 i 42234


Err codemadness.org 70 i 42235 Err codemadness.org 70 i 42236

###Update your Thinkpad’s bios with Linux or OpenBSD

Err codemadness.org 70 i 42237 Err codemadness.org 70 i 42238
    Err codemadness.org 70 i 42239
  • Get your new bios
  • Err codemadness.org 70 i 42240
Err codemadness.org 70 i 42241 Err codemadness.org 70 i 42242
Err codemadness.org 70 i 42243

At first, go to the Lenovo website and download your new bios:

Err codemadness.org 70 i 42244
Err codemadness.org 70 i 42245 Err codemadness.org 70 i 42246
    Err codemadness.org 70 i 42247
  • Go to lenovo support
  • Err codemadness.org 70 i 42248
  • Use the search bar to find your product (example for me, x270)
  • Err codemadness.org 70 i 42249
  • Choose the right product (if necessary) and click search
  • Err codemadness.org 70 i 42250
  • On the right side, click on Update Your System
  • Err codemadness.org 70 i 42251
  • Click on BIOS/UEFI
  • Err codemadness.org 70 i 42252
  • Choose *BIOS Update (Bootable CD) for Windows *
  • Err codemadness.org 70 i 42253
  • Download
  • Err codemadness.org 70 i 42254
Err codemadness.org 70 i 42255 Err codemadness.org 70 i 42256
Err codemadness.org 70 i 42257

For me the file is called like this : r0iuj25wd.iso

Err codemadness.org 70 i 42258
Err codemadness.org 70 i 42259 Err codemadness.org 70 i 42260
    Err codemadness.org 70 i 42261
  • Extract bios update
  • Err codemadness.org 70 i 42262
Err codemadness.org 70 i 42263 Err codemadness.org 70 i 42264
Err codemadness.org 70 i 42265

Now you will need to install geteltorito.

Err codemadness.org 70 i 42266
Err codemadness.org 70 i 42267 Err codemadness.org 70 i 42268
    Err codemadness.org 70 i 42269
  • With OpenBSD:
  • Err codemadness.org 70 i 42270
Err codemadness.org 70 i 42271 Err codemadness.org 70 i 42272

$ doas pkg_add geteltorito
Err codemadness.org 70 i 42273 quirks-3.7 signed on 2018-09-09T13:15:19Z
Err codemadness.org 70 i 42274 geteltorito-0.6: ok

Err codemadness.org 70 i 42275 Err codemadness.org 70 i 42276
    Err codemadness.org 70 i 42277
  • With Debian:
  • Err codemadness.org 70 i 42278
Err codemadness.org 70 i 42279 Err codemadness.org 70 i 42280

$ sudo apt-get install genisoimage

Err codemadness.org 70 i 42281 Err codemadness.org 70 i 42282
    Err codemadness.org 70 i 42283
  • Now we will extract the bios update :
  • Err codemadness.org 70 i 42284
Err codemadness.org 70 i 42285 Err codemadness.org 70 i 42286

$ geteltorito -o bios_update.img r0iuj25wd.iso
Err codemadness.org 70 i 42287 Booting catalog starts at sector: 20
Err codemadness.org 70 i 42288 Manufacturer of CD: NERO BURNING ROM VER 12
Err codemadness.org 70 i 42289 Image architecture: x86
Err codemadness.org 70 i 42290 Boot media type is: harddisk
Err codemadness.org 70 i 42291 El Torito image starts at sector 27 and has 43008 sector(s) of 512 Bytes
Err codemadness.org 70 i 42292
Err codemadness.org 70 i 42293 Image has been written to file "bios_update.img".
Err codemadness.org 70 i 42294 This will create a file called bios_update.img.

Err codemadness.org 70 i 42295 Err codemadness.org 70 i 42296
    Err codemadness.org 70 i 42297
  • Put the image on an USB key
  • Err codemadness.org 70 i 42298
  • CAREFULL : on my computer, my USB key is sda1 on Linux and sd1 on OpenBSD.
  • Err codemadness.org 70 i 42299
Err codemadness.org 70 i 42300 Err codemadness.org 70 i 42301
Err codemadness.org 70 i 42302

Please check twice on your computer the name of your USB key.

Err codemadness.org 70 i 42303
Err codemadness.org 70 i 42304 Err codemadness.org 70 i 42305
    Err codemadness.org 70 i 42306
  • With OpenBSD :
  • Err codemadness.org 70 i 42307
Err codemadness.org 70 i 42308 Err codemadness.org 70 i 42309

$ doas dd if=bios_update.img of=/dev/rsd1c

Err codemadness.org 70 i 42310 Err codemadness.org 70 i 42311
    Err codemadness.org 70 i 42312
  • With Linux :
  • Err codemadness.org 70 i 42313
Err codemadness.org 70 i 42314 Err codemadness.org 70 i 42315

$ sudo dd if=bios_update.img of=/dev/sda

Err codemadness.org 70 i 42316 Err codemadness.org 70 i 42317
Err codemadness.org 70 i 42318

Now all you need is to reboot, to boot on your USB key and follow the instructions. Enjoy 😉

Err codemadness.org 70 i 42319
Err codemadness.org 70 i 42320 Err codemadness.org 70 i 42321


Err codemadness.org 70 i 42322 Err codemadness.org 70 i 42323

###Announcing The HardenedBSD Foundation

Err codemadness.org 70 i 42324 Err codemadness.org 70 i 42325
Err codemadness.org 70 i 42326

In June of 2018, we announced our intent to become a not-for-profit, tax-exempt 501©(3) organization in the United States. It took a dedicated team months of work behind-the-scenes to make that happen. On 06 September 2018, HardenedBSD Foundation Corp was granted 501©(3) status, from which point all US-based persons making donations can deduct the donation from their taxes.
Err codemadness.org 70 i 42327 We are grateful for those who contribute to HardenedBSD in whatever way they can. Thank you for making HardenedBSD possible. We look forward to a bright future, driven by a helpful and positive community.

Err codemadness.org 70 i 42328
Err codemadness.org 70 i 42329 Err codemadness.org 70 i 42330


Err codemadness.org 70 i 42331 Err codemadness.org 70 i 42332

###How you migrate ZFS filesystems matters

Err codemadness.org 70 i 42333 Err codemadness.org 70 i 42334
Err codemadness.org 70 i 42335

If you want to move a ZFS filesystem around from one host to another, you have two general approaches; you can use ‘zfs send’ and ‘zfs receive’, or you can use a user level copying tool such as rsync (or ‘tar -cf | tar -xf’, or any number of similar options). Until recently, I had considered these two approaches to be more or less equivalent apart from their convenience and speed (which generally tilted in favour of ‘zfs send’). It turns out that this is not necessarily the case and there are situations where you will want one instead of the other.
Err codemadness.org 70 i 42336 We have had two generations of ZFS fileservers so far, the Solaris ones and the OmniOS ones. When we moved from the first generation to the second generation, we migrated filesystems across using ‘zfs send’, including the filesystem with my home directory in it (we did this for various reasons). Recently I discovered that some old things in my filesystem didn’t have file type information in their directory entries. ZFS has been adding file type information to directories for a long time, but not quite as long as my home directory has been on ZFS.
Err codemadness.org 70 i 42337 This illustrates an important difference between the ‘zfs send’ approach and the rsync approach, which is that zfs send doesn’t update or change at least some ZFS on-disk data structures, in the way that re-writing them from scratch from user level does. There are both positives and negatives to this, and a certain amount of rewriting does happen even in the ‘zfs send’ case (for example, all of the block pointers get changed, and ZFS will re-compress your data as applicable).
Err codemadness.org 70 i 42338 I knew that in theory you had to copy things at the user level if you wanted to make sure that your ZFS filesystem and everything in it was fully up to date with the latest ZFS features. But I didn’t expect to hit a situation where it mattered in practice until, well, I did. Now I suspect that old files on our old filesystems may be partially missing a number of things, and I’m wondering how much of the various changes in ‘zfs upgrade -v’ apply even to old data.
Err codemadness.org 70 i 42339 (I’d run into this sort of general thing before when I looked into ext3 to ext4 conversion on Linux.)
Err codemadness.org 70 i 42340 With all that said, I doubt this will change our plans for migrating our ZFS filesystems in the future (to our third generation fileservers). ZFS sending and receiving is just too convenient, too fast and too reliable to give up. Rsync isn’t bad, but it’s not the same, and so we only use it when we have to (when we’re moving only some of the people in a filesystem instead of all of them, for example).
Err codemadness.org 70 i 42341 PS: I was going to try to say something about what ‘zfs send’ did and didn’t update, but having looked briefly at the code I’ve concluded that I need to do more research before running my keyboard off. In the mean time, you can read the OpenZFS wiki page on ZFS send and receive, which has plenty of juicy technical details.
Err codemadness.org 70 i 42342 PPS: Since eliminating all-zero blocks is a form of compression, you can turn zero-filled files into sparse files through a ZFS send/receive if the destination has compression enabled. As far as I know, genuine sparse files on the source will stay sparse through a ZFS send/receive even if they’re sent to a destination with compression off.

Err codemadness.org 70 i 42343
Err codemadness.org 70 i 42344 Err codemadness.org 70 i 42345


Err codemadness.org 70 i 42346 Err codemadness.org 70 i 42347

##Beastie Bits

Err codemadness.org 70 i 42348 Err codemadness.org 70 i 42349 Err codemadness.org 70 i 42360 Err codemadness.org 70 i 42361


Err codemadness.org 70 i 42362 Err codemadness.org 70 i 42363

##Feedback/Questions

Err codemadness.org 70 i 42364 Err codemadness.org 70 i 42365 Err codemadness.org 70 i 42371 Err codemadness.org 70 i 42372


Err codemadness.org 70 i 42373 Err codemadness.org 70 i 42374
    Err codemadness.org 70 i 42375
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 42376
Err codemadness.org 70 i 42377 Err codemadness.org 70 i 42378


]]> Err codemadness.org 70 i 42379
Err codemadness.org 70 i 42380 https://fireside.fm/player/v2/FYhhasNR+_ZKTIDUu Err codemadness.org 70 i 42381 Err codemadness.org 70 i 42382 ]]> Err codemadness.org 70 i 42383 Err codemadness.org 70 i 42384
Err codemadness.org 70 i 42385 Err codemadness.org 70 i 42386 Episode 264: Optimized-out | BSD Now 264 Err codemadness.org 70 i 42387 https://www.bsdnow.tv/264 Err codemadness.org 70 i 42388 http://feed.jupiter.zone/bsdnow#entry-2594 Err codemadness.org 70 i 42389 Wed, 19 Sep 2018 22:00:00 -0700 Err codemadness.org 70 i 42390 Allan Jude Err codemadness.org 70 i 42391 Err codemadness.org 70 i 42392 full Err codemadness.org 70 i 42393 Allan Jude Err codemadness.org 70 i 42394 FreeBSD and DragonflyBSD benchmarks on AMD’s Threadripper, NetBSD 7.2 has been released, optimized out DTrace kernel symbols, stuck UEFI bootloaders, why ed is not a good editor today, tell your BSD story, and more. Err codemadness.org 70 i 42395 1:11:58 Err codemadness.org 70 i 42396 no Err codemadness.org 70 i 42397 Err codemadness.org 70 i 42398 FreeBSD and DragonflyBSD benchmarks on AMD’s Threadripper, NetBSD 7.2 has been released, optimized out DTrace kernel symbols, stuck UEFI bootloaders, why ed is not a good editor today, tell your BSD story, and more. Err codemadness.org 70 i 42399 <p>##Headlines<br> Err codemadness.org 70 i 42400 <a href="https://www.phoronix.com/scan.php?page=article&amp;item=bsd-threadripper-2990wx&amp;num=1">FreeBSD &amp; DragonFlyBSD Put Up A Strong Fight On AMD’s Threadripper 2990WX, Benchmarks Against Linux</a></p> Err codemadness.org 70 i 42401 <blockquote> Err codemadness.org 70 i 42402 <p>The past two weeks I have been delivering a great deal of AMD Threadripper 2990WX benchmarks on Linux as well as some against Windows and Windows Server. But recently I got around to trying out some of the BSD operating systems on this 32-core / 64-thread processor to see how they would run and to see whether they would have similar scaling issues or not like we’ve seen on the Windows side against Linux. In this article are FreeBSD and DragonFlyBSD benchmarks with the X399 + 2990WX compared to a few Linux distributions.<br> Err codemadness.org 70 i 42403 The BSDs I focused my testing on were FreeBSD 11.2-STABLE and 12.0-CURRENT/ALPHA1 (the version in development) as well as iX System’s TrueOS that is tracking FreeBSD 12.0-CURRENT. Also included were DragonFlyBSD, with FreeBSD and DragonFlyBSD being tied as my favorite operating systems when it comes to the BSDs. When it came to FreeBSD 11.2-STABLE and 12.0-ALPHA1 on the Threadripper 2990WX, it worked out surprisingly well. I encountered no real issues during my two days of benchmarking on FreeBSD (and TrueOS). It was a great experience and FreeBSD was happy to exploit the 64 threads on the system.<br> Err codemadness.org 70 i 42404 DragonFlyBSD was a bit of a different story… Last week when I started this BSD testing I tried DragonFly 5.2.2 as the latest stable release as well as a DragonFlyBSD 5.3 development snapshot from last week: both failed to boot in either BIOS or UEFI modes.<br> Err codemadness.org 70 i 42405 But then a few days ago DragonFlyBSD lead developer Matthew Dillon bought himself a 2990WX platform. He made the necessary changes to get DragonFlyBSD 5.3 working and he ended up finding really great performance and potential out of the platform. So I tried the latest DragonFlyBSD 5.3 daily ISO on 22 August and indeed it now booted successfully and we were off to the races. Thus there are some DragonFlyBSD 5.3 benchmarks included in this article too.<br> Err codemadness.org 70 i 42406 Just hours ago, Matthew Dillon landed some 2990WX topology and scheduler enhancements but that fell out of the scope of when DragonFly was installed on this system. But over the weekend or so I plan to re-test DragonFlyBSD 5.3 and see how those optimizations affect the overall 2990WX performance now on that BSD. DragonFlyBSD 5.4 stable should certainly be an interesting release on several fronts!<br> Err codemadness.org 70 i 42407 With FreeBSD 11.2-STABLE and 12.0-ALPHA1 I ran benchmarks when using their stock compiler (LLVM Clang 6.0) as well as GCC 7.3 obtained via GCC 7.3. That was done to rule out compiler differences in benchmarking against the GCC-based Linux distributions. On DragonFlyBSD 5.3 it defaults to the GCC 5.4.1 but via pkg I also did a secondary run when upgraded to GCC 7.3.<br> Err codemadness.org 70 i 42408 The hardware and BIOS/UEFI settings were maintained the same throughout the entire benchmarking process. The system was made up of the AMD Ryzen Threadripper 2990WX at stock speeds, the ASUS ROG ZENITH EXTREME motherboard, 4 x 8GB DDR4-3200MHz memory, Samsung 970 EVO 500GB NVMe SSD, and Radeon RX Vega 56 graphics card.<br> Err codemadness.org 70 i 42409 All of these Linux vs. BSD benchmarks were carried out in a fully-automated and reproducible manner using the open-source Phoronix Test Suite benchmarking framework.<br> Err codemadness.org 70 i 42410 While for the last of today’s BSD vs. Linux benchmarking on the Threadripper 2990WX, the Linux distributions came out slightly ahead of FreeBSD and DragonFlyBSD with GCC (another test having issues with Clang 6.0 on the BSDs).<br> Err codemadness.org 70 i 42411 Overall, I was quite taken away by the BSD performance on the Threadripper 2990WX – particularly FreeBSD. In a surprising number of benchmarks, the BSDs were outperforming the tested Linux distributions though often by incredibly thin margins. Still, quite an accomplishment for these BSD operating systems and considering how much better Linux is already doing than Windows 10 / Windows Server on this 32-core / 64-thread processor. Then again, the BSDs like Linux have a long history of running on high core/thread-count systems, super computers, and other HPC environments.<br> Err codemadness.org 70 i 42412 It will be interesting to see how much faster DragonFlyBSD can run given today’s commit to its kernel with scheduler and topology improvements for the 2990WX. Those additional DragonFlyBSD benchmarks will be published in the coming days once they are completed.</p> Err codemadness.org 70 i 42413 </blockquote> Err codemadness.org 70 i 42414 <hr> Err codemadness.org 70 i 42415 <p>###<a href="https://www.netbsd.org/releases/formal-7/NetBSD-7.2.html">NetBSD 7.2 released</a></p> Err codemadness.org 70 i 42416 <blockquote> Err codemadness.org 70 i 42417 <p>The NetBSD Project is pleased to announce NetBSD 7.2, the second feature update of the NetBSD 7 release branch. It represents a selected subset of fixes deemed important for security or stability reasons, as well as new features and enhancements.</p> Err codemadness.org 70 i 42418 </blockquote> Err codemadness.org 70 i 42419 <ul> Err codemadness.org 70 i 42420 <li>General Security Note</li> Err codemadness.org 70 i 42421 </ul> Err codemadness.org 70 i 42422 <p><code>The NetBSD 7.2 release is a maintenance release of the netbsd-7 branch, which had it's first major release, NetBSD 7.0 in September 2015. A lot of security features have been added to later NetBSD versions, and for new installations we highly recommend using our latest release, NetBSD 8.0 instead.</code></p> Err codemadness.org 70 i 42423 <ul> Err codemadness.org 70 i 42424 <li>Some highlights of the 7.2 release are:</li> Err codemadness.org 70 i 42425 <li>Support for USB 3.0.</li> Err codemadness.org 70 i 42426 <li>Enhancements to the Linux emulation subsystem.</li> Err codemadness.org 70 i 42427 <li>Fixes in binary compatibility for ancient NetBSD executables.</li> Err codemadness.org 70 i 42428 <li>iwm(4) driver for Intel Wireless 726x, 316x, 826x and 416x series added.</li> Err codemadness.org 70 i 42429 <li>Support for Raspberry Pi 3 added.</li> Err codemadness.org 70 i 42430 <li>Fix interrupt setup on Hyper-V VMs with Legacy Network Adapter.</li> Err codemadness.org 70 i 42431 <li>SVR4 and IBCS2 compatibility subsystems have been disabled by default (besides IBCS2 on VAX). These subsystems also do not auto-load their modules any more.</li> Err codemadness.org 70 i 42432 <li>Various USB stability enhancements.</li> Err codemadness.org 70 i 42433 <li>Numerous bug fixes and stability improvements.</li> Err codemadness.org 70 i 42434 </ul> Err codemadness.org 70 i 42435 <blockquote> Err codemadness.org 70 i 42436 <p>Complete source and binaries for NetBSD 7.2 are available for download at many sites around the world. A list of download sites providing FTP, AnonCVS, SUP, and other services may be found at <a href="https://www.NetBSD.org/mirrors/">https://www.NetBSD.org/mirrors/</a>. We encourage users who wish to install via ISO or USB disk images to download via BitTorrent by using the torrent files supplied in the images area. A list of hashes for the NetBSD 7.2 distribution has been signed with the well-connected PGP key for the NetBSD Security Officer: <a href="https://cdn.NetBSD.org/pub/NetBSD/security/hashes/NetBSD-7.2_hashes.asc">https://cdn.NetBSD.org/pub/NetBSD/security/hashes/NetBSD-7.2_hashes.asc</a><br> Err codemadness.org 70 i 42437 NetBSD is free. All of the code is under non-restrictive licenses, and may be used without paying royalties to anyone. Free support services are available via our mailing lists and website. Commercial support is available from a variety of sources. More extensive information on NetBSD is available from our website:</p> Err codemadness.org 70 i 42438 </blockquote> Err codemadness.org 70 i 42439 <hr> Err codemadness.org 70 i 42440 <p>##News Roundup<br> Err codemadness.org 70 i 42441 <a href="https://farhan.codes/2018/08/16/including-optimized-out-kernel-symbols-in-dtrace-on-freebsd/">Including optimized-out kernel symbols in dtrace on FreeBSD</a></p> Err codemadness.org 70 i 42442 <blockquote> Err codemadness.org 70 i 42443 <p>Have you ever had dtrace(1) on FreeBSD fail to list a probe that should exist in the kernel? This is because Clang will optimize-out some functions. The result is ctfconvert(1) will not generate debugging symbols that dtrace(1) uses to identify probes. I have a quick solution to getting those probes visible to dtrace(1).</p> Err codemadness.org 70 i 42444 </blockquote> Err codemadness.org 70 i 42445 <blockquote> Err codemadness.org 70 i 42446 <p>In my case, I was trying to instrument on ieee80211_ioctl_get80211, whose sister function ieee80211_ioctl_set80211 has a dtrace(1) probe in the generic FreeBSD 11 and 12 kernels. Both functions are located in /usr/src/sys/net80211/ieee80211_ioctl.c.</p> Err codemadness.org 70 i 42447 </blockquote> Err codemadness.org 70 i 42448 <blockquote> Err codemadness.org 70 i 42449 <p>My first attempt was to add to /etc/make.conf as follows and recompile the kernel.</p> Err codemadness.org 70 i 42450 </blockquote> Err codemadness.org 70 i 42451 <p><code>CFLAGS+=-O0 and -fno-inline-functions</code></p> Err codemadness.org 70 i 42452 <blockquote> Err codemadness.org 70 i 42453 <p>This failed to produce the dtrace(1) probe. Several other attempts failed and I was getting inconsistent compilation results (Is it me or is ieee80211_ioctl.c compiled with different flags if NO_CLEAN=1 is set?). When I manually compiled the object file by copying the compilation line for the object file and adding -O0 -fno-inline-functions, nm(1) on both the object file and kernel demonstrated that the symbol was present. I installed the kernel, rebooted and it was listed as a dtrace probe. Great!</p> Err codemadness.org 70 i 42454 </blockquote> Err codemadness.org 70 i 42455 <blockquote> Err codemadness.org 70 i 42456 <p>But as I continued to debug my WiFi driver (oh yeah, I’m very slowly extending rtwn(4)), I found myself rebuilding the kernel several times and frequently rebooting. Why not do this across the entire kernel?</p> Err codemadness.org 70 i 42457 </blockquote> Err codemadness.org 70 i 42458 <blockquote> Err codemadness.org 70 i 42459 <p>After hacking around, my solution was to modify the build scripts. My solution was to edit /usr/src/sys/conf/kern.pre.mk and modify all optimization level 2 to optimization level 0. The following is my diff(1) on FreeBSD 12.0-CURRENT.</p> Err codemadness.org 70 i 42460 </blockquote> Err codemadness.org 70 i 42461 <ul> Err codemadness.org 70 i 42462 <li>A few thoughts:</li> Err codemadness.org 70 i 42463 </ul> Err codemadness.org 70 i 42464 <blockquote> Err codemadness.org 70 i 42465 <p>This seems like a hack rather than a long-term solution. Either the problem is with the hard-coded optimization flags, or the inability to overwrite them in all places in make.conf.<br> Err codemadness.org 70 i 42466 Removing optimizations is only something I would do in a non-production kernel, so its as if I have to choose between optimizations for a production kernel or having dtrace probes. But dtrace explicitly markets itself as not impactful on production.<br> Err codemadness.org 70 i 42467 Using the dtrace pony as your featured image on WordPress does not render properly and must be rotated and modified. Blame Bryan Cantrill.<br> Err codemadness.org 70 i 42468 If you have a better solution, please let me know and I will update the article, but this works for me!</p> Err codemadness.org 70 i 42469 </blockquote> Err codemadness.org 70 i 42470 <hr> Err codemadness.org 70 i 42471 <p>###<a href="https://www.neelc.org/freebsd-uefi-on-asus-motherboards/">FreeBSD: UEFI Bootloader stuck on BootCurrent/BootOrder/BootInfo on Asus Motherboards (and fix!)</a></p> Err codemadness.org 70 i 42472 <blockquote> Err codemadness.org 70 i 42473 <p>Starting with FreeBSD CURRENT from about a few weeks of posting date, but including FreeBSD 12 alpha releases (not related to DEC Alpha), I noticed one thing: When I boot FreeBSD from UEFI on a homebuilt desktop with a Asus H87M-E motherboard, and have Root on ZFS, the bootloader gets stuck on lines like BootCurrent, BootOrder, and BootInfo. This issue occurs when I try to boot directly to efi\boot\bootx64.efi.</p> Err codemadness.org 70 i 42474 </blockquote> Err codemadness.org 70 i 42475 <blockquote> Err codemadness.org 70 i 42476 <p>One person had a similar issue on a Asus H87I-PLUS motherboard. This issue may or may not exist on other Asus motherboards, desktops, or laptops. This may be specific to Asus motherboards for Intel’s Haswell, but may also exist on newer systems (e.g. Skylake) or older (e.g. Ivy Bridge) with Asus motherboards, as well as Asus desktops or laptops.</p> Err codemadness.org 70 i 42477 </blockquote> Err codemadness.org 70 i 42478 <ul> Err codemadness.org 70 i 42479 <li>There are two solutions to this problem:</li> Err codemadness.org 70 i 42480 <li>Use Legacy BIOS mode instead of UEFI mode</li> Err codemadness.org 70 i 42481 <li>Install a FreeBSD UEFI Boot entry</li> Err codemadness.org 70 i 42482 </ul> Err codemadness.org 70 i 42483 <blockquote> Err codemadness.org 70 i 42484 <p>Keep in mind that I am not going to talk about this issue and third-party UEFI boot managers such as rEFInd here.<br> Err codemadness.org 70 i 42485 The first option is rather straightforward: you need to make sure your computer has “Secure Boot” disabled and “Legacy Boot” or “CSM” enabled. Then, you need to make sure FreeBSD is installed in BIOS mode. However, this solution is (in my opinion) suboptimal. Why? Because:<br> Err codemadness.org 70 i 42486 You won’t be able to use hard drives bigger than 2TB<br> Err codemadness.org 70 i 42487 You are limited to MBR Partitioning on Asus motherboards with UEFI as Asus motherboards refuse to boot GPT partitioned disks in BIOS mode<br> Err codemadness.org 70 i 42488 Legacy BIOS mode may not exist on future computers or motherboards (although those systems may not have this issue, and this issue may get fixed by then)<br> Err codemadness.org 70 i 42489 The second option, however, is less straightforward, but will let you keep UEFI. Many UEFI systems, including affected Asus motherboards described here, include a boot manager built into the UEFI. FreeBSD includes a tool called efibootmgr to manage this, similar to the similarly-named tool in Linux, but with a different syntax.</p> Err codemadness.org 70 i 42490 </blockquote> Err codemadness.org 70 i 42491 <hr> Err codemadness.org 70 i 42492 <p>###<a href="https://utcc.utoronto.ca/~cks/space/blog/unix/EdNoLongerGoodEditor">Why ed(1) is not a good editor today</a></p> Err codemadness.org 70 i 42493 <blockquote> Err codemadness.org 70 i 42494 <p>I’ll start with my tweet:</p> Err codemadness.org 70 i 42495 </blockquote> Err codemadness.org 70 i 42496 <p><code>Heretical Unix opinion time: ed(1) may be the 'standard Unix editor', but it is not a particularly good editor outside of a limited environment that almost never applies today.</code></p> Err codemadness.org 70 i 42497 <blockquote> Err codemadness.org 70 i 42498 <p>There is a certain portion of Unixdom that really likes ed(1), the ‘standard Unix editor’. Having actually used ed for a not insignificant amount of time (although it was the friendlier ‘UofT ed’ variant), I have some reactions to what I feel is sometimes overzealous praise of it. One of these is what I tweeted.<br> Err codemadness.org 70 i 42499 The fundamental limitation of ed is that it is what I call an indirect manipulation interface, in contrast to the explicit manipulation interfaces of screen editors like vi and graphical editors like sam (which are generally lumped together as ‘visual’ editors, so called because they actually show you the text you’re editing). When you edit text in ed, you have some problems that you don’t have in visual editors; you have to maintain in your head the context of what the text looks like (and where you are in it), you have to figure out how to address portions of that text in order to modify them, and finally you have to think about how your edit commands will change the context. Copious use of ed’s p command can help with the first problem, but nothing really deals with the other two. In order to use ed, you basically have to simulate parts of ed in your head.<br> Err codemadness.org 70 i 42500 Ed is a great editor in situations where the editor explicitly presenting this context is a very expensive or outright impossible operation. Ed works great on real teletypes, for example, or over extremely slow links where you want to send and receive as little data as possible (and on real teletypes you have some amount of context in the form of an actual printout that you can look back at). Back in the old days of Unix, this described a fairly large number of situations; you had actual teletypes, you had slow dialup links (and later slow, high latency network links), and you had slow and heavily overloaded systems.<br> Err codemadness.org 70 i 42501 However, that’s no longer the situation today (at least almost all of the time). Modern systems and links can easily support visual editors that continually show you the context of the text and generally let you more or less directly manipulate it (whether that is through cursoring around it or using a mouse). Such editors are easier and faster to use, and they leave you with more brainpower free to think about things like the program you’re writing (which is the important thing).<br> Err codemadness.org 70 i 42502 If you can use a visual editor, ed is not a particularly good editor to use instead; you will probably spend a lot of effort (and some amount of time) on doing by hand something that the visual editor will do for you. If you are very practiced at ed, maybe this partly goes away, but I maintain that you are still working harder than you need to be.<br> Err codemadness.org 70 i 42503 The people who say that ed is a quite powerful editor are correct; ed is quite capable (although sadly limited by only editing a single file). It’s just that it’s also a pain to use.<br> Err codemadness.org 70 i 42504 (They’re also correct that ed is the foundation of many other things in Unix, including sed and vi. But that doesn’t mean that the best way to learn or understand those things is to learn and use ed.)<br> Err codemadness.org 70 i 42505 This doesn’t make ed a useless, vestigial thing on modern Unix, though. There are uses for ed in non-interactive editing, for example. But on modern Unix, ed is a specialized tool, much like dc. It’s worth knowing that ed is there and roughly what it can do, but it’s probably not worth learning how to use it before you need it. And you’re unlikely to ever be in a situation where it’s the best choice for interactive editing (and if you are, something has generally gone wrong).<br> Err codemadness.org 70 i 42506 (But if you enjoy exploring the obscure corners of Unix, sure, go for it. Learn dc too, because it’s interesting in its own way and, like ed, it’s one of those classical old Unix programs.)</p> Err codemadness.org 70 i 42507 </blockquote> Err codemadness.org 70 i 42508 <hr> Err codemadness.org 70 i 42509 <p>##Beastie Bits</p> Err codemadness.org 70 i 42510 <ul> Err codemadness.org 70 i 42511 <li><a href="https://twitter.com/DavieDavieDave/status/1040359656864903169">Is there any interest in a #BSD user group in #Montreal?</a></li> Err codemadness.org 70 i 42512 <li><a href="https://www.bsdjobs.com/people/hi.html">Tell your BSD story</a></li> Err codemadness.org 70 i 42513 <li><a href="https://blog.netbsd.org/tnf/entry/finishing_leftover_tasks_from_google">Finishing leftover tasks from Google Summer of Code</a></li> Err codemadness.org 70 i 42514 <li><a href="https://undeadly.org/cgi?action=article;sid=20180906072459">Fuzzing the OpenBSD Kernel</a></li> Err codemadness.org 70 i 42515 <li><a href="http://lists.nycbug.org/pipermail/talk/2018-August/017692.html">ARM - any Tier-1 *BSD options?</a></li> Err codemadness.org 70 i 42516 </ul> Err codemadness.org 70 i 42517 <hr> Err codemadness.org 70 i 42518 <p>##Feedback/Questions</p> Err codemadness.org 70 i 42519 <ul> Err codemadness.org 70 i 42520 <li>Chris - <a href="http://dpaste.com/2Y6XBYN">byhve question</a></li> Err codemadness.org 70 i 42521 <li>Paulo - <a href="http://dpaste.com/1A88F2W">Topic suggestion</a></li> Err codemadness.org 70 i 42522 <li>Bostjan - <a href="http://dpaste.com/140ZHZD#wrap">How data gets to disk</a></li> Err codemadness.org 70 i 42523 </ul> Err codemadness.org 70 i 42524 <hr> Err codemadness.org 70 i 42525 <ul> Err codemadness.org 70 i 42526 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 42527 </ul> Err codemadness.org 70 i 42528 <hr> Err codemadness.org 70 i 42529 Err codemadness.org 70 i 42530 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 42531 Err codemadness.org 70 i 42532 FreeBSD and DragonflyBSD benchmarks on AMD’s Threadripper, NetBSD 7.2 has been released, optimized out DTrace kernel symbols, stuck UEFI bootloaders, why ed is not a good editor today, tell your BSD story, and more.

Err codemadness.org 70 i 42533 Err codemadness.org 70 i 42534

##Headlines
Err codemadness.org 70 i 42535 ###FreeBSD & DragonFlyBSD Put Up A Strong Fight On AMD’s Threadripper 2990WX, Benchmarks Against Linux

Err codemadness.org 70 i 42536 Err codemadness.org 70 i 42537
Err codemadness.org 70 i 42538

The past two weeks I have been delivering a great deal of AMD Threadripper 2990WX benchmarks on Linux as well as some against Windows and Windows Server. But recently I got around to trying out some of the BSD operating systems on this 32-core / 64-thread processor to see how they would run and to see whether they would have similar scaling issues or not like we’ve seen on the Windows side against Linux. In this article are FreeBSD and DragonFlyBSD benchmarks with the X399 + 2990WX compared to a few Linux distributions.
Err codemadness.org 70 i 42539 The BSDs I focused my testing on were FreeBSD 11.2-STABLE and 12.0-CURRENT/ALPHA1 (the version in development) as well as iX System’s TrueOS that is tracking FreeBSD 12.0-CURRENT. Also included were DragonFlyBSD, with FreeBSD and DragonFlyBSD being tied as my favorite operating systems when it comes to the BSDs. When it came to FreeBSD 11.2-STABLE and 12.0-ALPHA1 on the Threadripper 2990WX, it worked out surprisingly well. I encountered no real issues during my two days of benchmarking on FreeBSD (and TrueOS). It was a great experience and FreeBSD was happy to exploit the 64 threads on the system.
Err codemadness.org 70 i 42540 DragonFlyBSD was a bit of a different story… Last week when I started this BSD testing I tried DragonFly 5.2.2 as the latest stable release as well as a DragonFlyBSD 5.3 development snapshot from last week: both failed to boot in either BIOS or UEFI modes.
Err codemadness.org 70 i 42541 But then a few days ago DragonFlyBSD lead developer Matthew Dillon bought himself a 2990WX platform. He made the necessary changes to get DragonFlyBSD 5.3 working and he ended up finding really great performance and potential out of the platform. So I tried the latest DragonFlyBSD 5.3 daily ISO on 22 August and indeed it now booted successfully and we were off to the races. Thus there are some DragonFlyBSD 5.3 benchmarks included in this article too.
Err codemadness.org 70 i 42542 Just hours ago, Matthew Dillon landed some 2990WX topology and scheduler enhancements but that fell out of the scope of when DragonFly was installed on this system. But over the weekend or so I plan to re-test DragonFlyBSD 5.3 and see how those optimizations affect the overall 2990WX performance now on that BSD. DragonFlyBSD 5.4 stable should certainly be an interesting release on several fronts!
Err codemadness.org 70 i 42543 With FreeBSD 11.2-STABLE and 12.0-ALPHA1 I ran benchmarks when using their stock compiler (LLVM Clang 6.0) as well as GCC 7.3 obtained via GCC 7.3. That was done to rule out compiler differences in benchmarking against the GCC-based Linux distributions. On DragonFlyBSD 5.3 it defaults to the GCC 5.4.1 but via pkg I also did a secondary run when upgraded to GCC 7.3.
Err codemadness.org 70 i 42544 The hardware and BIOS/UEFI settings were maintained the same throughout the entire benchmarking process. The system was made up of the AMD Ryzen Threadripper 2990WX at stock speeds, the ASUS ROG ZENITH EXTREME motherboard, 4 x 8GB DDR4-3200MHz memory, Samsung 970 EVO 500GB NVMe SSD, and Radeon RX Vega 56 graphics card.
Err codemadness.org 70 i 42545 All of these Linux vs. BSD benchmarks were carried out in a fully-automated and reproducible manner using the open-source Phoronix Test Suite benchmarking framework.
Err codemadness.org 70 i 42546 While for the last of today’s BSD vs. Linux benchmarking on the Threadripper 2990WX, the Linux distributions came out slightly ahead of FreeBSD and DragonFlyBSD with GCC (another test having issues with Clang 6.0 on the BSDs).
Err codemadness.org 70 i 42547 Overall, I was quite taken away by the BSD performance on the Threadripper 2990WX – particularly FreeBSD. In a surprising number of benchmarks, the BSDs were outperforming the tested Linux distributions though often by incredibly thin margins. Still, quite an accomplishment for these BSD operating systems and considering how much better Linux is already doing than Windows 10 / Windows Server on this 32-core / 64-thread processor. Then again, the BSDs like Linux have a long history of running on high core/thread-count systems, super computers, and other HPC environments.
Err codemadness.org 70 i 42548 It will be interesting to see how much faster DragonFlyBSD can run given today’s commit to its kernel with scheduler and topology improvements for the 2990WX. Those additional DragonFlyBSD benchmarks will be published in the coming days once they are completed.

Err codemadness.org 70 i 42549
Err codemadness.org 70 i 42550 Err codemadness.org 70 i 42551


Err codemadness.org 70 i 42552 Err codemadness.org 70 i 42553

###NetBSD 7.2 released

Err codemadness.org 70 i 42554 Err codemadness.org 70 i 42555
Err codemadness.org 70 i 42556

The NetBSD Project is pleased to announce NetBSD 7.2, the second feature update of the NetBSD 7 release branch. It represents a selected subset of fixes deemed important for security or stability reasons, as well as new features and enhancements.

Err codemadness.org 70 i 42557
Err codemadness.org 70 i 42558 Err codemadness.org 70 i 42559
    Err codemadness.org 70 i 42560
  • General Security Note
  • Err codemadness.org 70 i 42561
Err codemadness.org 70 i 42562 Err codemadness.org 70 i 42563

The NetBSD 7.2 release is a maintenance release of the netbsd-7 branch, which had it's first major release, NetBSD 7.0 in September 2015. A lot of security features have been added to later NetBSD versions, and for new installations we highly recommend using our latest release, NetBSD 8.0 instead.

Err codemadness.org 70 i 42564 Err codemadness.org 70 i 42565
    Err codemadness.org 70 i 42566
  • Some highlights of the 7.2 release are:
  • Err codemadness.org 70 i 42567
  • Support for USB 3.0.
  • Err codemadness.org 70 i 42568
  • Enhancements to the Linux emulation subsystem.
  • Err codemadness.org 70 i 42569
  • Fixes in binary compatibility for ancient NetBSD executables.
  • Err codemadness.org 70 i 42570
  • iwm(4) driver for Intel Wireless 726x, 316x, 826x and 416x series added.
  • Err codemadness.org 70 i 42571
  • Support for Raspberry Pi 3 added.
  • Err codemadness.org 70 i 42572
  • Fix interrupt setup on Hyper-V VMs with Legacy Network Adapter.
  • Err codemadness.org 70 i 42573
  • SVR4 and IBCS2 compatibility subsystems have been disabled by default (besides IBCS2 on VAX). These subsystems also do not auto-load their modules any more.
  • Err codemadness.org 70 i 42574
  • Various USB stability enhancements.
  • Err codemadness.org 70 i 42575
  • Numerous bug fixes and stability improvements.
  • Err codemadness.org 70 i 42576
Err codemadness.org 70 i 42577 Err codemadness.org 70 i 42578
Err codemadness.org 70 i 42579

Complete source and binaries for NetBSD 7.2 are available for download at many sites around the world. A list of download sites providing FTP, AnonCVS, SUP, and other services may be found at https://www.NetBSD.org/mirrors/. We encourage users who wish to install via ISO or USB disk images to download via BitTorrent by using the torrent files supplied in the images area. A list of hashes for the NetBSD 7.2 distribution has been signed with the well-connected PGP key for the NetBSD Security Officer: https://cdn.NetBSD.org/pub/NetBSD/security/hashes/NetBSD-7.2_hashes.asc
Err codemadness.org 70 i 42580 NetBSD is free. All of the code is under non-restrictive licenses, and may be used without paying royalties to anyone. Free support services are available via our mailing lists and website. Commercial support is available from a variety of sources. More extensive information on NetBSD is available from our website:

Err codemadness.org 70 i 42581
Err codemadness.org 70 i 42582 Err codemadness.org 70 i 42583


Err codemadness.org 70 i 42584 Err codemadness.org 70 i 42585

##News Roundup
Err codemadness.org 70 i 42586 ###Including optimized-out kernel symbols in dtrace on FreeBSD

Err codemadness.org 70 i 42587 Err codemadness.org 70 i 42588
Err codemadness.org 70 i 42589

Have you ever had dtrace(1) on FreeBSD fail to list a probe that should exist in the kernel? This is because Clang will optimize-out some functions. The result is ctfconvert(1) will not generate debugging symbols that dtrace(1) uses to identify probes. I have a quick solution to getting those probes visible to dtrace(1).

Err codemadness.org 70 i 42590
Err codemadness.org 70 i 42591 Err codemadness.org 70 i 42592
Err codemadness.org 70 i 42593

In my case, I was trying to instrument on ieee80211_ioctl_get80211, whose sister function ieee80211_ioctl_set80211 has a dtrace(1) probe in the generic FreeBSD 11 and 12 kernels. Both functions are located in /usr/src/sys/net80211/ieee80211_ioctl.c.

Err codemadness.org 70 i 42594
Err codemadness.org 70 i 42595 Err codemadness.org 70 i 42596
Err codemadness.org 70 i 42597

My first attempt was to add to /etc/make.conf as follows and recompile the kernel.

Err codemadness.org 70 i 42598
Err codemadness.org 70 i 42599 Err codemadness.org 70 i 42600

CFLAGS+=-O0 and -fno-inline-functions

Err codemadness.org 70 i 42601 Err codemadness.org 70 i 42602
Err codemadness.org 70 i 42603

This failed to produce the dtrace(1) probe. Several other attempts failed and I was getting inconsistent compilation results (Is it me or is ieee80211_ioctl.c compiled with different flags if NO_CLEAN=1 is set?). When I manually compiled the object file by copying the compilation line for the object file and adding -O0 -fno-inline-functions, nm(1) on both the object file and kernel demonstrated that the symbol was present. I installed the kernel, rebooted and it was listed as a dtrace probe. Great!

Err codemadness.org 70 i 42604
Err codemadness.org 70 i 42605 Err codemadness.org 70 i 42606
Err codemadness.org 70 i 42607

But as I continued to debug my WiFi driver (oh yeah, I’m very slowly extending rtwn(4)), I found myself rebuilding the kernel several times and frequently rebooting. Why not do this across the entire kernel?

Err codemadness.org 70 i 42608
Err codemadness.org 70 i 42609 Err codemadness.org 70 i 42610
Err codemadness.org 70 i 42611

After hacking around, my solution was to modify the build scripts. My solution was to edit /usr/src/sys/conf/kern.pre.mk and modify all optimization level 2 to optimization level 0. The following is my diff(1) on FreeBSD 12.0-CURRENT.

Err codemadness.org 70 i 42612
Err codemadness.org 70 i 42613 Err codemadness.org 70 i 42614
    Err codemadness.org 70 i 42615
  • A few thoughts:
  • Err codemadness.org 70 i 42616
Err codemadness.org 70 i 42617 Err codemadness.org 70 i 42618
Err codemadness.org 70 i 42619

This seems like a hack rather than a long-term solution. Either the problem is with the hard-coded optimization flags, or the inability to overwrite them in all places in make.conf.
Err codemadness.org 70 i 42620 Removing optimizations is only something I would do in a non-production kernel, so its as if I have to choose between optimizations for a production kernel or having dtrace probes. But dtrace explicitly markets itself as not impactful on production.
Err codemadness.org 70 i 42621 Using the dtrace pony as your featured image on WordPress does not render properly and must be rotated and modified. Blame Bryan Cantrill.
Err codemadness.org 70 i 42622 If you have a better solution, please let me know and I will update the article, but this works for me!

Err codemadness.org 70 i 42623
Err codemadness.org 70 i 42624 Err codemadness.org 70 i 42625


Err codemadness.org 70 i 42626 Err codemadness.org 70 i 42627

###FreeBSD: UEFI Bootloader stuck on BootCurrent/BootOrder/BootInfo on Asus Motherboards (and fix!)

Err codemadness.org 70 i 42628 Err codemadness.org 70 i 42629
Err codemadness.org 70 i 42630

Starting with FreeBSD CURRENT from about a few weeks of posting date, but including FreeBSD 12 alpha releases (not related to DEC Alpha), I noticed one thing: When I boot FreeBSD from UEFI on a homebuilt desktop with a Asus H87M-E motherboard, and have Root on ZFS, the bootloader gets stuck on lines like BootCurrent, BootOrder, and BootInfo. This issue occurs when I try to boot directly to efi\boot\bootx64.efi.

Err codemadness.org 70 i 42631
Err codemadness.org 70 i 42632 Err codemadness.org 70 i 42633
Err codemadness.org 70 i 42634

One person had a similar issue on a Asus H87I-PLUS motherboard. This issue may or may not exist on other Asus motherboards, desktops, or laptops. This may be specific to Asus motherboards for Intel’s Haswell, but may also exist on newer systems (e.g. Skylake) or older (e.g. Ivy Bridge) with Asus motherboards, as well as Asus desktops or laptops.

Err codemadness.org 70 i 42635
Err codemadness.org 70 i 42636 Err codemadness.org 70 i 42637
    Err codemadness.org 70 i 42638
  • There are two solutions to this problem:
  • Err codemadness.org 70 i 42639
  • Use Legacy BIOS mode instead of UEFI mode
  • Err codemadness.org 70 i 42640
  • Install a FreeBSD UEFI Boot entry
  • Err codemadness.org 70 i 42641
Err codemadness.org 70 i 42642 Err codemadness.org 70 i 42643
Err codemadness.org 70 i 42644

Keep in mind that I am not going to talk about this issue and third-party UEFI boot managers such as rEFInd here.
Err codemadness.org 70 i 42645 The first option is rather straightforward: you need to make sure your computer has “Secure Boot” disabled and “Legacy Boot” or “CSM” enabled. Then, you need to make sure FreeBSD is installed in BIOS mode. However, this solution is (in my opinion) suboptimal. Why? Because:
Err codemadness.org 70 i 42646 You won’t be able to use hard drives bigger than 2TB
Err codemadness.org 70 i 42647 You are limited to MBR Partitioning on Asus motherboards with UEFI as Asus motherboards refuse to boot GPT partitioned disks in BIOS mode
Err codemadness.org 70 i 42648 Legacy BIOS mode may not exist on future computers or motherboards (although those systems may not have this issue, and this issue may get fixed by then)
Err codemadness.org 70 i 42649 The second option, however, is less straightforward, but will let you keep UEFI. Many UEFI systems, including affected Asus motherboards described here, include a boot manager built into the UEFI. FreeBSD includes a tool called efibootmgr to manage this, similar to the similarly-named tool in Linux, but with a different syntax.

Err codemadness.org 70 i 42650
Err codemadness.org 70 i 42651 Err codemadness.org 70 i 42652


Err codemadness.org 70 i 42653 Err codemadness.org 70 i 42654

###Why ed(1) is not a good editor today

Err codemadness.org 70 i 42655 Err codemadness.org 70 i 42656
Err codemadness.org 70 i 42657

I’ll start with my tweet:

Err codemadness.org 70 i 42658
Err codemadness.org 70 i 42659 Err codemadness.org 70 i 42660

Heretical Unix opinion time: ed(1) may be the 'standard Unix editor', but it is not a particularly good editor outside of a limited environment that almost never applies today.

Err codemadness.org 70 i 42661 Err codemadness.org 70 i 42662
Err codemadness.org 70 i 42663

There is a certain portion of Unixdom that really likes ed(1), the ‘standard Unix editor’. Having actually used ed for a not insignificant amount of time (although it was the friendlier ‘UofT ed’ variant), I have some reactions to what I feel is sometimes overzealous praise of it. One of these is what I tweeted.
Err codemadness.org 70 i 42664 The fundamental limitation of ed is that it is what I call an indirect manipulation interface, in contrast to the explicit manipulation interfaces of screen editors like vi and graphical editors like sam (which are generally lumped together as ‘visual’ editors, so called because they actually show you the text you’re editing). When you edit text in ed, you have some problems that you don’t have in visual editors; you have to maintain in your head the context of what the text looks like (and where you are in it), you have to figure out how to address portions of that text in order to modify them, and finally you have to think about how your edit commands will change the context. Copious use of ed’s p command can help with the first problem, but nothing really deals with the other two. In order to use ed, you basically have to simulate parts of ed in your head.
Err codemadness.org 70 i 42665 Ed is a great editor in situations where the editor explicitly presenting this context is a very expensive or outright impossible operation. Ed works great on real teletypes, for example, or over extremely slow links where you want to send and receive as little data as possible (and on real teletypes you have some amount of context in the form of an actual printout that you can look back at). Back in the old days of Unix, this described a fairly large number of situations; you had actual teletypes, you had slow dialup links (and later slow, high latency network links), and you had slow and heavily overloaded systems.
Err codemadness.org 70 i 42666 However, that’s no longer the situation today (at least almost all of the time). Modern systems and links can easily support visual editors that continually show you the context of the text and generally let you more or less directly manipulate it (whether that is through cursoring around it or using a mouse). Such editors are easier and faster to use, and they leave you with more brainpower free to think about things like the program you’re writing (which is the important thing).
Err codemadness.org 70 i 42667 If you can use a visual editor, ed is not a particularly good editor to use instead; you will probably spend a lot of effort (and some amount of time) on doing by hand something that the visual editor will do for you. If you are very practiced at ed, maybe this partly goes away, but I maintain that you are still working harder than you need to be.
Err codemadness.org 70 i 42668 The people who say that ed is a quite powerful editor are correct; ed is quite capable (although sadly limited by only editing a single file). It’s just that it’s also a pain to use.
Err codemadness.org 70 i 42669 (They’re also correct that ed is the foundation of many other things in Unix, including sed and vi. But that doesn’t mean that the best way to learn or understand those things is to learn and use ed.)
Err codemadness.org 70 i 42670 This doesn’t make ed a useless, vestigial thing on modern Unix, though. There are uses for ed in non-interactive editing, for example. But on modern Unix, ed is a specialized tool, much like dc. It’s worth knowing that ed is there and roughly what it can do, but it’s probably not worth learning how to use it before you need it. And you’re unlikely to ever be in a situation where it’s the best choice for interactive editing (and if you are, something has generally gone wrong).
Err codemadness.org 70 i 42671 (But if you enjoy exploring the obscure corners of Unix, sure, go for it. Learn dc too, because it’s interesting in its own way and, like ed, it’s one of those classical old Unix programs.)

Err codemadness.org 70 i 42672
Err codemadness.org 70 i 42673 Err codemadness.org 70 i 42674


Err codemadness.org 70 i 42675 Err codemadness.org 70 i 42676

##Beastie Bits

Err codemadness.org 70 i 42677 Err codemadness.org 70 i 42678 Err codemadness.org 70 i 42685 Err codemadness.org 70 i 42686


Err codemadness.org 70 i 42687 Err codemadness.org 70 i 42688

##Feedback/Questions

Err codemadness.org 70 i 42689 Err codemadness.org 70 i 42690 Err codemadness.org 70 i 42695 Err codemadness.org 70 i 42696


Err codemadness.org 70 i 42697 Err codemadness.org 70 i 42698
    Err codemadness.org 70 i 42699
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 42700
Err codemadness.org 70 i 42701 Err codemadness.org 70 i 42702


]]> Err codemadness.org 70 i 42703
Err codemadness.org 70 i 42704 Err codemadness.org 70 i 42705 FreeBSD and DragonflyBSD benchmarks on AMD’s Threadripper, NetBSD 7.2 has been released, optimized out DTrace kernel symbols, stuck UEFI bootloaders, why ed is not a good editor today, tell your BSD story, and more.

Err codemadness.org 70 i 42706 Err codemadness.org 70 i 42707

##Headlines
Err codemadness.org 70 i 42708 ###FreeBSD & DragonFlyBSD Put Up A Strong Fight On AMD’s Threadripper 2990WX, Benchmarks Against Linux

Err codemadness.org 70 i 42709 Err codemadness.org 70 i 42710
Err codemadness.org 70 i 42711

The past two weeks I have been delivering a great deal of AMD Threadripper 2990WX benchmarks on Linux as well as some against Windows and Windows Server. But recently I got around to trying out some of the BSD operating systems on this 32-core / 64-thread processor to see how they would run and to see whether they would have similar scaling issues or not like we’ve seen on the Windows side against Linux. In this article are FreeBSD and DragonFlyBSD benchmarks with the X399 + 2990WX compared to a few Linux distributions.
Err codemadness.org 70 i 42712 The BSDs I focused my testing on were FreeBSD 11.2-STABLE and 12.0-CURRENT/ALPHA1 (the version in development) as well as iX System’s TrueOS that is tracking FreeBSD 12.0-CURRENT. Also included were DragonFlyBSD, with FreeBSD and DragonFlyBSD being tied as my favorite operating systems when it comes to the BSDs. When it came to FreeBSD 11.2-STABLE and 12.0-ALPHA1 on the Threadripper 2990WX, it worked out surprisingly well. I encountered no real issues during my two days of benchmarking on FreeBSD (and TrueOS). It was a great experience and FreeBSD was happy to exploit the 64 threads on the system.
Err codemadness.org 70 i 42713 DragonFlyBSD was a bit of a different story… Last week when I started this BSD testing I tried DragonFly 5.2.2 as the latest stable release as well as a DragonFlyBSD 5.3 development snapshot from last week: both failed to boot in either BIOS or UEFI modes.
Err codemadness.org 70 i 42714 But then a few days ago DragonFlyBSD lead developer Matthew Dillon bought himself a 2990WX platform. He made the necessary changes to get DragonFlyBSD 5.3 working and he ended up finding really great performance and potential out of the platform. So I tried the latest DragonFlyBSD 5.3 daily ISO on 22 August and indeed it now booted successfully and we were off to the races. Thus there are some DragonFlyBSD 5.3 benchmarks included in this article too.
Err codemadness.org 70 i 42715 Just hours ago, Matthew Dillon landed some 2990WX topology and scheduler enhancements but that fell out of the scope of when DragonFly was installed on this system. But over the weekend or so I plan to re-test DragonFlyBSD 5.3 and see how those optimizations affect the overall 2990WX performance now on that BSD. DragonFlyBSD 5.4 stable should certainly be an interesting release on several fronts!
Err codemadness.org 70 i 42716 With FreeBSD 11.2-STABLE and 12.0-ALPHA1 I ran benchmarks when using their stock compiler (LLVM Clang 6.0) as well as GCC 7.3 obtained via GCC 7.3. That was done to rule out compiler differences in benchmarking against the GCC-based Linux distributions. On DragonFlyBSD 5.3 it defaults to the GCC 5.4.1 but via pkg I also did a secondary run when upgraded to GCC 7.3.
Err codemadness.org 70 i 42717 The hardware and BIOS/UEFI settings were maintained the same throughout the entire benchmarking process. The system was made up of the AMD Ryzen Threadripper 2990WX at stock speeds, the ASUS ROG ZENITH EXTREME motherboard, 4 x 8GB DDR4-3200MHz memory, Samsung 970 EVO 500GB NVMe SSD, and Radeon RX Vega 56 graphics card.
Err codemadness.org 70 i 42718 All of these Linux vs. BSD benchmarks were carried out in a fully-automated and reproducible manner using the open-source Phoronix Test Suite benchmarking framework.
Err codemadness.org 70 i 42719 While for the last of today’s BSD vs. Linux benchmarking on the Threadripper 2990WX, the Linux distributions came out slightly ahead of FreeBSD and DragonFlyBSD with GCC (another test having issues with Clang 6.0 on the BSDs).
Err codemadness.org 70 i 42720 Overall, I was quite taken away by the BSD performance on the Threadripper 2990WX – particularly FreeBSD. In a surprising number of benchmarks, the BSDs were outperforming the tested Linux distributions though often by incredibly thin margins. Still, quite an accomplishment for these BSD operating systems and considering how much better Linux is already doing than Windows 10 / Windows Server on this 32-core / 64-thread processor. Then again, the BSDs like Linux have a long history of running on high core/thread-count systems, super computers, and other HPC environments.
Err codemadness.org 70 i 42721 It will be interesting to see how much faster DragonFlyBSD can run given today’s commit to its kernel with scheduler and topology improvements for the 2990WX. Those additional DragonFlyBSD benchmarks will be published in the coming days once they are completed.

Err codemadness.org 70 i 42722
Err codemadness.org 70 i 42723 Err codemadness.org 70 i 42724


Err codemadness.org 70 i 42725 Err codemadness.org 70 i 42726

###NetBSD 7.2 released

Err codemadness.org 70 i 42727 Err codemadness.org 70 i 42728
Err codemadness.org 70 i 42729

The NetBSD Project is pleased to announce NetBSD 7.2, the second feature update of the NetBSD 7 release branch. It represents a selected subset of fixes deemed important for security or stability reasons, as well as new features and enhancements.

Err codemadness.org 70 i 42730
Err codemadness.org 70 i 42731 Err codemadness.org 70 i 42732
    Err codemadness.org 70 i 42733
  • General Security Note
  • Err codemadness.org 70 i 42734
Err codemadness.org 70 i 42735 Err codemadness.org 70 i 42736

The NetBSD 7.2 release is a maintenance release of the netbsd-7 branch, which had it's first major release, NetBSD 7.0 in September 2015. A lot of security features have been added to later NetBSD versions, and for new installations we highly recommend using our latest release, NetBSD 8.0 instead.

Err codemadness.org 70 i 42737 Err codemadness.org 70 i 42738
    Err codemadness.org 70 i 42739
  • Some highlights of the 7.2 release are:
  • Err codemadness.org 70 i 42740
  • Support for USB 3.0.
  • Err codemadness.org 70 i 42741
  • Enhancements to the Linux emulation subsystem.
  • Err codemadness.org 70 i 42742
  • Fixes in binary compatibility for ancient NetBSD executables.
  • Err codemadness.org 70 i 42743
  • iwm(4) driver for Intel Wireless 726x, 316x, 826x and 416x series added.
  • Err codemadness.org 70 i 42744
  • Support for Raspberry Pi 3 added.
  • Err codemadness.org 70 i 42745
  • Fix interrupt setup on Hyper-V VMs with Legacy Network Adapter.
  • Err codemadness.org 70 i 42746
  • SVR4 and IBCS2 compatibility subsystems have been disabled by default (besides IBCS2 on VAX). These subsystems also do not auto-load their modules any more.
  • Err codemadness.org 70 i 42747
  • Various USB stability enhancements.
  • Err codemadness.org 70 i 42748
  • Numerous bug fixes and stability improvements.
  • Err codemadness.org 70 i 42749
Err codemadness.org 70 i 42750 Err codemadness.org 70 i 42751
Err codemadness.org 70 i 42752

Complete source and binaries for NetBSD 7.2 are available for download at many sites around the world. A list of download sites providing FTP, AnonCVS, SUP, and other services may be found at https://www.NetBSD.org/mirrors/. We encourage users who wish to install via ISO or USB disk images to download via BitTorrent by using the torrent files supplied in the images area. A list of hashes for the NetBSD 7.2 distribution has been signed with the well-connected PGP key for the NetBSD Security Officer: https://cdn.NetBSD.org/pub/NetBSD/security/hashes/NetBSD-7.2_hashes.asc
Err codemadness.org 70 i 42753 NetBSD is free. All of the code is under non-restrictive licenses, and may be used without paying royalties to anyone. Free support services are available via our mailing lists and website. Commercial support is available from a variety of sources. More extensive information on NetBSD is available from our website:

Err codemadness.org 70 i 42754
Err codemadness.org 70 i 42755 Err codemadness.org 70 i 42756


Err codemadness.org 70 i 42757 Err codemadness.org 70 i 42758

##News Roundup
Err codemadness.org 70 i 42759 ###Including optimized-out kernel symbols in dtrace on FreeBSD

Err codemadness.org 70 i 42760 Err codemadness.org 70 i 42761
Err codemadness.org 70 i 42762

Have you ever had dtrace(1) on FreeBSD fail to list a probe that should exist in the kernel? This is because Clang will optimize-out some functions. The result is ctfconvert(1) will not generate debugging symbols that dtrace(1) uses to identify probes. I have a quick solution to getting those probes visible to dtrace(1).

Err codemadness.org 70 i 42763
Err codemadness.org 70 i 42764 Err codemadness.org 70 i 42765
Err codemadness.org 70 i 42766

In my case, I was trying to instrument on ieee80211_ioctl_get80211, whose sister function ieee80211_ioctl_set80211 has a dtrace(1) probe in the generic FreeBSD 11 and 12 kernels. Both functions are located in /usr/src/sys/net80211/ieee80211_ioctl.c.

Err codemadness.org 70 i 42767
Err codemadness.org 70 i 42768 Err codemadness.org 70 i 42769
Err codemadness.org 70 i 42770

My first attempt was to add to /etc/make.conf as follows and recompile the kernel.

Err codemadness.org 70 i 42771
Err codemadness.org 70 i 42772 Err codemadness.org 70 i 42773

CFLAGS+=-O0 and -fno-inline-functions

Err codemadness.org 70 i 42774 Err codemadness.org 70 i 42775
Err codemadness.org 70 i 42776

This failed to produce the dtrace(1) probe. Several other attempts failed and I was getting inconsistent compilation results (Is it me or is ieee80211_ioctl.c compiled with different flags if NO_CLEAN=1 is set?). When I manually compiled the object file by copying the compilation line for the object file and adding -O0 -fno-inline-functions, nm(1) on both the object file and kernel demonstrated that the symbol was present. I installed the kernel, rebooted and it was listed as a dtrace probe. Great!

Err codemadness.org 70 i 42777
Err codemadness.org 70 i 42778 Err codemadness.org 70 i 42779
Err codemadness.org 70 i 42780

But as I continued to debug my WiFi driver (oh yeah, I’m very slowly extending rtwn(4)), I found myself rebuilding the kernel several times and frequently rebooting. Why not do this across the entire kernel?

Err codemadness.org 70 i 42781
Err codemadness.org 70 i 42782 Err codemadness.org 70 i 42783
Err codemadness.org 70 i 42784

After hacking around, my solution was to modify the build scripts. My solution was to edit /usr/src/sys/conf/kern.pre.mk and modify all optimization level 2 to optimization level 0. The following is my diff(1) on FreeBSD 12.0-CURRENT.

Err codemadness.org 70 i 42785
Err codemadness.org 70 i 42786 Err codemadness.org 70 i 42787
    Err codemadness.org 70 i 42788
  • A few thoughts:
  • Err codemadness.org 70 i 42789
Err codemadness.org 70 i 42790 Err codemadness.org 70 i 42791
Err codemadness.org 70 i 42792

This seems like a hack rather than a long-term solution. Either the problem is with the hard-coded optimization flags, or the inability to overwrite them in all places in make.conf.
Err codemadness.org 70 i 42793 Removing optimizations is only something I would do in a non-production kernel, so its as if I have to choose between optimizations for a production kernel or having dtrace probes. But dtrace explicitly markets itself as not impactful on production.
Err codemadness.org 70 i 42794 Using the dtrace pony as your featured image on WordPress does not render properly and must be rotated and modified. Blame Bryan Cantrill.
Err codemadness.org 70 i 42795 If you have a better solution, please let me know and I will update the article, but this works for me!

Err codemadness.org 70 i 42796
Err codemadness.org 70 i 42797 Err codemadness.org 70 i 42798


Err codemadness.org 70 i 42799 Err codemadness.org 70 i 42800

###FreeBSD: UEFI Bootloader stuck on BootCurrent/BootOrder/BootInfo on Asus Motherboards (and fix!)

Err codemadness.org 70 i 42801 Err codemadness.org 70 i 42802
Err codemadness.org 70 i 42803

Starting with FreeBSD CURRENT from about a few weeks of posting date, but including FreeBSD 12 alpha releases (not related to DEC Alpha), I noticed one thing: When I boot FreeBSD from UEFI on a homebuilt desktop with a Asus H87M-E motherboard, and have Root on ZFS, the bootloader gets stuck on lines like BootCurrent, BootOrder, and BootInfo. This issue occurs when I try to boot directly to efi\boot\bootx64.efi.

Err codemadness.org 70 i 42804
Err codemadness.org 70 i 42805 Err codemadness.org 70 i 42806
Err codemadness.org 70 i 42807

One person had a similar issue on a Asus H87I-PLUS motherboard. This issue may or may not exist on other Asus motherboards, desktops, or laptops. This may be specific to Asus motherboards for Intel’s Haswell, but may also exist on newer systems (e.g. Skylake) or older (e.g. Ivy Bridge) with Asus motherboards, as well as Asus desktops or laptops.

Err codemadness.org 70 i 42808
Err codemadness.org 70 i 42809 Err codemadness.org 70 i 42810
    Err codemadness.org 70 i 42811
  • There are two solutions to this problem:
  • Err codemadness.org 70 i 42812
  • Use Legacy BIOS mode instead of UEFI mode
  • Err codemadness.org 70 i 42813
  • Install a FreeBSD UEFI Boot entry
  • Err codemadness.org 70 i 42814
Err codemadness.org 70 i 42815 Err codemadness.org 70 i 42816
Err codemadness.org 70 i 42817

Keep in mind that I am not going to talk about this issue and third-party UEFI boot managers such as rEFInd here.
Err codemadness.org 70 i 42818 The first option is rather straightforward: you need to make sure your computer has “Secure Boot” disabled and “Legacy Boot” or “CSM” enabled. Then, you need to make sure FreeBSD is installed in BIOS mode. However, this solution is (in my opinion) suboptimal. Why? Because:
Err codemadness.org 70 i 42819 You won’t be able to use hard drives bigger than 2TB
Err codemadness.org 70 i 42820 You are limited to MBR Partitioning on Asus motherboards with UEFI as Asus motherboards refuse to boot GPT partitioned disks in BIOS mode
Err codemadness.org 70 i 42821 Legacy BIOS mode may not exist on future computers or motherboards (although those systems may not have this issue, and this issue may get fixed by then)
Err codemadness.org 70 i 42822 The second option, however, is less straightforward, but will let you keep UEFI. Many UEFI systems, including affected Asus motherboards described here, include a boot manager built into the UEFI. FreeBSD includes a tool called efibootmgr to manage this, similar to the similarly-named tool in Linux, but with a different syntax.

Err codemadness.org 70 i 42823
Err codemadness.org 70 i 42824 Err codemadness.org 70 i 42825


Err codemadness.org 70 i 42826 Err codemadness.org 70 i 42827

###Why ed(1) is not a good editor today

Err codemadness.org 70 i 42828 Err codemadness.org 70 i 42829
Err codemadness.org 70 i 42830

I’ll start with my tweet:

Err codemadness.org 70 i 42831
Err codemadness.org 70 i 42832 Err codemadness.org 70 i 42833

Heretical Unix opinion time: ed(1) may be the 'standard Unix editor', but it is not a particularly good editor outside of a limited environment that almost never applies today.

Err codemadness.org 70 i 42834 Err codemadness.org 70 i 42835
Err codemadness.org 70 i 42836

There is a certain portion of Unixdom that really likes ed(1), the ‘standard Unix editor’. Having actually used ed for a not insignificant amount of time (although it was the friendlier ‘UofT ed’ variant), I have some reactions to what I feel is sometimes overzealous praise of it. One of these is what I tweeted.
Err codemadness.org 70 i 42837 The fundamental limitation of ed is that it is what I call an indirect manipulation interface, in contrast to the explicit manipulation interfaces of screen editors like vi and graphical editors like sam (which are generally lumped together as ‘visual’ editors, so called because they actually show you the text you’re editing). When you edit text in ed, you have some problems that you don’t have in visual editors; you have to maintain in your head the context of what the text looks like (and where you are in it), you have to figure out how to address portions of that text in order to modify them, and finally you have to think about how your edit commands will change the context. Copious use of ed’s p command can help with the first problem, but nothing really deals with the other two. In order to use ed, you basically have to simulate parts of ed in your head.
Err codemadness.org 70 i 42838 Ed is a great editor in situations where the editor explicitly presenting this context is a very expensive or outright impossible operation. Ed works great on real teletypes, for example, or over extremely slow links where you want to send and receive as little data as possible (and on real teletypes you have some amount of context in the form of an actual printout that you can look back at). Back in the old days of Unix, this described a fairly large number of situations; you had actual teletypes, you had slow dialup links (and later slow, high latency network links), and you had slow and heavily overloaded systems.
Err codemadness.org 70 i 42839 However, that’s no longer the situation today (at least almost all of the time). Modern systems and links can easily support visual editors that continually show you the context of the text and generally let you more or less directly manipulate it (whether that is through cursoring around it or using a mouse). Such editors are easier and faster to use, and they leave you with more brainpower free to think about things like the program you’re writing (which is the important thing).
Err codemadness.org 70 i 42840 If you can use a visual editor, ed is not a particularly good editor to use instead; you will probably spend a lot of effort (and some amount of time) on doing by hand something that the visual editor will do for you. If you are very practiced at ed, maybe this partly goes away, but I maintain that you are still working harder than you need to be.
Err codemadness.org 70 i 42841 The people who say that ed is a quite powerful editor are correct; ed is quite capable (although sadly limited by only editing a single file). It’s just that it’s also a pain to use.
Err codemadness.org 70 i 42842 (They’re also correct that ed is the foundation of many other things in Unix, including sed and vi. But that doesn’t mean that the best way to learn or understand those things is to learn and use ed.)
Err codemadness.org 70 i 42843 This doesn’t make ed a useless, vestigial thing on modern Unix, though. There are uses for ed in non-interactive editing, for example. But on modern Unix, ed is a specialized tool, much like dc. It’s worth knowing that ed is there and roughly what it can do, but it’s probably not worth learning how to use it before you need it. And you’re unlikely to ever be in a situation where it’s the best choice for interactive editing (and if you are, something has generally gone wrong).
Err codemadness.org 70 i 42844 (But if you enjoy exploring the obscure corners of Unix, sure, go for it. Learn dc too, because it’s interesting in its own way and, like ed, it’s one of those classical old Unix programs.)

Err codemadness.org 70 i 42845
Err codemadness.org 70 i 42846 Err codemadness.org 70 i 42847


Err codemadness.org 70 i 42848 Err codemadness.org 70 i 42849

##Beastie Bits

Err codemadness.org 70 i 42850 Err codemadness.org 70 i 42851 Err codemadness.org 70 i 42858 Err codemadness.org 70 i 42859


Err codemadness.org 70 i 42860 Err codemadness.org 70 i 42861

##Feedback/Questions

Err codemadness.org 70 i 42862 Err codemadness.org 70 i 42863 Err codemadness.org 70 i 42868 Err codemadness.org 70 i 42869


Err codemadness.org 70 i 42870 Err codemadness.org 70 i 42871
    Err codemadness.org 70 i 42872
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 42873
Err codemadness.org 70 i 42874 Err codemadness.org 70 i 42875


]]> Err codemadness.org 70 i 42876
Err codemadness.org 70 i 42877 https://fireside.fm/player/v2/FYhhasNR+C2nfDNgj Err codemadness.org 70 i 42878 Err codemadness.org 70 i 42879 ]]> Err codemadness.org 70 i 42880 Err codemadness.org 70 i 42881
Err codemadness.org 70 i 42882 Err codemadness.org 70 i 42883 Episode 263: Encrypt That Pool | BSD Now 263 Err codemadness.org 70 i 42884 https://www.bsdnow.tv/263 Err codemadness.org 70 i 42885 http://feed.jupiter.zone/bsdnow#entry-2528 Err codemadness.org 70 i 42886 Fri, 07 Sep 2018 11:00:00 -0700 Err codemadness.org 70 i 42887 Allan Jude Err codemadness.org 70 i 42888 Err codemadness.org 70 i 42889 full Err codemadness.org 70 i 42890 Allan Jude Err codemadness.org 70 i 42891 Mitigating Spectre/Meltdown on HP Proliant servers, omniOS installation setup, debugging a memory corruption issue on OpenBSD, CfT for OpenZFS native encryption, Asigra TrueNAS backup appliance shown at VMworld, NetBSD 6 EoL, and more. Err codemadness.org 70 i 42892 1:03:45 Err codemadness.org 70 i 42893 no Err codemadness.org 70 i 42894 Err codemadness.org 70 i 42895 Mitigating Spectre/Meltdown on HP Proliant servers, omniOS installation setup, debugging a memory corruption issue on OpenBSD, CfT for OpenZFS native encryption, Asigra TrueNAS backup appliance shown at VMworld, NetBSD 6 EoL, and more. Err codemadness.org 70 i 42896 <hr> Err codemadness.org 70 i 42897 <p>##Headlines<br> Err codemadness.org 70 i 42898 <a href="https://www.adminbyaccident.com/freebsd/how-to-freebsd/how-to-mitigate-spectre-and-meltdown-on-an-hp-proliant-server-with-freebsd/">How to mitigate Spectre and Meltdown on an HP Proliant server with FreeBSD</a></p> Err codemadness.org 70 i 42899 <blockquote> Err codemadness.org 70 i 42900 <p>As recently announced in a previous article I wanted to write a couple of guides on how to mitigate Spectre and Meltdown vulnerabilities in GNU/Linux and UNIX environments. It is always a good and I hope a standard practice to have your systems patched and if they aren’t for whatever the reason (that legacy thing you’re carrying on for ages) you may take the necessary extra steps to protect your environment. I never planned to do any article on patching anything. Nowadays it’s a no brainer and operating systems have provided the necessary tools for this to be easy and as smooth as possible. So why this article?<br> Err codemadness.org 70 i 42901 Spectre and Meltdown are both hardware vulnerabilities. Major ones. They are meaningful for several reasons among them the world wide impact since they affect Intel and AMD systems which are ubiquitous. And second because patching hardware is not as easy, for the manufacturer and for the users or administrators in charge of the systems. There is still no known exploit around left out in the open hitting servers or desktops anywhere. The question is not if it will ever happen. The question is when will it happen. And it may be sooner than later. This is why big companies, governments and people in charge of big deployments are patching or have already patched their systems. But have you done it to your system? I know you have a firewall. Have you thought about CVE-2018-3639? This particular one could make your browser being a vector to get into your system. So, no, there is no reason to skip this.<br> Err codemadness.org 70 i 42902 Patching these set of vulnerabilities implies some more steps and concerns than updating the operating system. If you are a regular Windows user I find rare you to be here and many of the things you will read may be foreign to you. I am not planning to do a guide on Windows systems since I believe someone else has or will do it and will do it better than me since I am not a pro Windows user. However there is one basic and common thing for all OS’s when dealing with Spectre and Meltdown and that is a microcode update is necessary for the OS patches to effectively work.<br> Err codemadness.org 70 i 42903 What is microcode? You can read the Wikipedia article but in short it is basically a layer of code that allows chip manufacturers to deal with modifications on the hardware they’ve produced and the operating systems that will manage that hardware. Since there’s been some issues (namely Spectre and Meltdown) Intel and AMD respectively have released a series of microcode updates to address those problems. First series did come with serious problems and some regressions, to the point GNU/Linux producers stopped releasing the microcode updates through their release channels for updates and placed the ball on Intel’s roof. Patching fast does always include risks, specially when dealing with hardware. OS vendors have resumed their microcode update releases so all seems to be fine now.<br> Err codemadness.org 70 i 42904 In order to update the microcode we’re faced with two options. Download the most recent BIOS release from our vendor, provided it patches the Spectre and Meltdown vulnerabilities, or patch it from the OS. If your hardware vendor has decided not to provide support on your hardware you are forced to use the latter solution. Yes, you can still keep your hardware. They usually come accompanied with a “release notes” file where there are some explanatory notes on what is fixed, what is new, etc. To make the search easy for you a news site collected the vendors list and linked the right support pages for anyone to look. In some scenarios it would be desirable not to replace the whole BIOS but just update the microcode from the OS side. In my case I should update an HP Proliant ML110 G7 box and the download link for that would be this.<br> Err codemadness.org 70 i 42905 Instead of using the full blown BIOS update path we’ll use the inner utilities to patch Spectre and Meltdown on FreeBSD. So let’s put our hands on it</p> Err codemadness.org 70 i 42906 </blockquote> Err codemadness.org 70 i 42907 <ul> Err codemadness.org 70 i 42908 <li>See the article for the technical breakdown</li> Err codemadness.org 70 i 42909 </ul> Err codemadness.org 70 i 42910 <hr> Err codemadness.org 70 i 42911 <p>###<a href="https://eerielinux.wordpress.com/2018/08/25/a-look-beyond-the-bsd-teacup-omnios-installation/">A look beyond the BSD teacup: OmniOS installation</a></p> Err codemadness.org 70 i 42912 <blockquote> Err codemadness.org 70 i 42913 <p>Five years ago I wrote a post about taking a look beyond the Linux teacup. I was an Arch Linux user back then and since there were projects like ArchBSD (called PacBSD today) and Arch Hurd, I decided to take a look at and write about them. Things have changed. Today I’m a happy FreeBSD user, but it’s time again to take a look beyond the teacup of operating systems that I’m familiar with.</p> Err codemadness.org 70 i 42914 </blockquote> Err codemadness.org 70 i 42915 <ul> Err codemadness.org 70 i 42916 <li>Why Illumos / OmniOS?</li> Err codemadness.org 70 i 42917 </ul> Err codemadness.org 70 i 42918 <blockquote> Err codemadness.org 70 i 42919 <p>There are a couple of reasons. The Solaris derivatives are the other big community in the *nix family besides Linux and the BSDs and we hadn’t met so far. Working with ZFS on FreeBSD, I now and then I read messages that contain a reference to Illumos which certainly helps to keep up the awareness. Of course there has also been a bit of curiosity – what might the OS be like that grew ZFS?<br> Err codemadness.org 70 i 42920 Also the Ravenports project that I participate in planned to support Solaris/Illumos right from the beginning. I wanted to at least be somewhat “prepared” when support for that platform would finally land. So I did a little research on the various derivatives available and settled on the one that I had heard a talk about at last year’s conference of the German Unix Users Group: “OmniOS – Solaris for the Rest of Us”. I would have chosen SmartOS as I admire what Bryan Cantrill does but for getting to know Illumos I prefer a traditional installation over a run-from-RAM system.<br> Err codemadness.org 70 i 42921 Of course FreeBSD is not run by corporations, especially when compared to the state of Linux. And when it comes to sponsoring, OpenBSD also takes the money… When it comes to FreeBSD developers, there’s probably some truth to the claim that some of them are using macOS as their desktop systems while OpenBSD devs are more likely to develop on their OS of choice. But then there’s the statement that “every innovation in the past decade comes from Solaris”. Bhyve alone proves this wrong. But let’s be honest: Two of the major technologies that make FreeBSD a great platform today – ZFS and DTrace – actually do come from Solaris. PAM originates there and a more modern way of managing services as well. Also you hear good things about their zones and a lot of small utilities in general.<br> Err codemadness.org 70 i 42922 In the end it was a lack of time that made me cheat and go down the easiest road: Create a Vagrantfile and just pull a VM image of the net that someone else had prepared… This worked to just make sure that the Raven packages work on OmniOS. I was determined to return, though – someday. You know how things go: “someday” is a pretty common alias for “probably never, actually.”<br> Err codemadness.org 70 i 42923 But then I heard about a forum post on the BSDNow! podcast. The title “Initial OmniOS impressions by a BSD user” caught my attention. I read that it was written by somebody who had used FreeBSD for years but loathed the new Code of Conduct enough to leave. I also oppose the Conduct and have made that pretty clear in my February post [ ! -z ${COC} ] &amp;&amp; exit 1. As stated there, I have stayed with my favorite OS and continue to advocate it. I decided to stop reading the post and try things out on my own instead. Now I’ve finally found the time to do so.</p> Err codemadness.org 70 i 42924 </blockquote> Err codemadness.org 70 i 42925 <ul> Err codemadness.org 70 i 42926 <li>What’s next?</li> Err codemadness.org 70 i 42927 </ul> Err codemadness.org 70 i 42928 <blockquote> Err codemadness.org 70 i 42929 <p>That’s it for part one. In part two I’ll try to make the system useful. So far I have run into a problem that I haven’t been able to solve. But I have some time now to figure things out for the next post. Let’s see if I manage to get it working or if I have to report failure!</p> Err codemadness.org 70 i 42930 </blockquote> Err codemadness.org 70 i 42931 <hr> Err codemadness.org 70 i 42932 <p>###<a href="https://wiki.freebsd.org/Memory">What are all these types of memory in top(1)?</a></p> Err codemadness.org 70 i 42933 <ul> Err codemadness.org 70 i 42934 <li>Earlier this week I convinced Mark Johnston, one of the FreeBSD VM experts to update a page on the FreeBSD wiki that I saw was being referenced on stackoverflow and similar sites</li> Err codemadness.org 70 i 42935 <li>Mark updated the explanations to be more correct, and to include more technical detail for inquiring minds</li> Err codemadness.org 70 i 42936 <li>He also added the new type that appeared in FreeBSD somewhat recently</li> Err codemadness.org 70 i 42937 </ul> Err codemadness.org 70 i 42938 <blockquote> Err codemadness.org 70 i 42939 <p>Active - Contains memory “actively” (recently) being used by applications<br> Err codemadness.org 70 i 42940 Inactive - Contains memory that has not been touched recently, or was released from the Buffer Cache<br> Err codemadness.org 70 i 42941 Laundry - Contains memory that Inactive but still potentially contains useful data that needs to be stored before this memory can be used again<br> Err codemadness.org 70 i 42942 Wired - Memory that cannot be swapped out, including the kernel, network stack, and the ZFS ARC<br> Err codemadness.org 70 i 42943 Buf - Buffer Cache, used my UFS and most filesystems except ZFS (which uses the ARC)<br> Err codemadness.org 70 i 42944 Free - Memory that is immediately available for use by the rest of the system</p> Err codemadness.org 70 i 42945 </blockquote> Err codemadness.org 70 i 42946 <hr> Err codemadness.org 70 i 42947 <p>##News Roundup<br> Err codemadness.org 70 i 42948 <a href="https://nanxiao.me/en/openbsd-saves-me-again-debug-a-memory-corruption-issue/">OpenBSD saves me again! — Debug a memory corruption issue</a></p> Err codemadness.org 70 i 42949 <blockquote> Err codemadness.org 70 i 42950 <p>Yesterday, I came across a third-part library issue, which crashes at allocating memory:</p> Err codemadness.org 70 i 42951 </blockquote> Err codemadness.org 70 i 42952 <p><code>Program terminated with signal SIGSEGV, Segmentation fault.</code><br> Err codemadness.org 70 i 42953 <code>#0 0x00007f594a5a9b6b in _int_malloc () from /usr/lib/libc.so.6</code><br> Err codemadness.org 70 i 42954 <code>(gdb) bt</code><br> Err codemadness.org 70 i 42955 <code>#0 0x00007f594a5a9b6b in _int_malloc () from /usr/lib/libc.so.6</code><br> Err codemadness.org 70 i 42956 <code>#1 0x00007f594a5ab503 in malloc () from /usr/lib/libc.so.6</code><br> Err codemadness.org 70 i 42957 <code>#2 0x00007f594b13f159 in operator new (sz=5767168) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/new_op.cc:50</code></p> Err codemadness.org 70 i 42958 <blockquote> Err codemadness.org 70 i 42959 <p>It is obvious that the memory tags are corrupted, but who is the murder? Since the library involves a lot of maths computation, it is not an easy task to grasp the code quickly. So I need to find another way:<br> Err codemadness.org 70 i 42960 (1) Open all warnings during compilation: -Wall. Nothing found.<br> Err codemadness.org 70 i 42961 (2) Use valgrind, but unfortunately, valgrind crashes itself:</p> Err codemadness.org 70 i 42962 </blockquote> Err codemadness.org 70 i 42963 <p><code>valgrind: the 'impossible' happened:</code><br> Err codemadness.org 70 i 42964 <code>Killed by fatal signal</code><br> Err codemadness.org 70 i 42965 <code></code><br> Err codemadness.org 70 i 42966 <code>host stacktrace:</code><br> Err codemadness.org 70 i 42967 <code>==43326== at 0x58053139: get_bszB_as_is (m_mallocfree.c:303)</code><br> Err codemadness.org 70 i 42968 <code>==43326== by 0x58053139: get_bszB (m_mallocfree.c:315)</code><br> Err codemadness.org 70 i 42969 <code>==43326== by 0x58053139: vgPlain_arena_malloc (m_mallocfree.c:1799)</code><br> Err codemadness.org 70 i 42970 <code>==43326== by 0x5800BA84: vgMemCheck_new_block (mc_malloc_wrappers.c:372)</code><br> Err codemadness.org 70 i 42971 <code>==43326== by 0x5800BD39: vgMemCheck___builtin_vec_new (mc_malloc_wrappers.c:427)</code><br> Err codemadness.org 70 i 42972 <code>==43326== by 0x5809F785: do_client_request (scheduler.c:1866)</code><br> Err codemadness.org 70 i 42973 <code>==43326== by 0x5809F785: vgPlain_scheduler (scheduler.c:1433)</code><br> Err codemadness.org 70 i 42974 <code>==43326== by 0x580AED50: thread_wrapper (syswrap-linux.c:103)</code><br> Err codemadness.org 70 i 42975 <code>==43326== by 0x580AED50: run_a_thread_NORETURN (syswrap-linux.c:156)</code><br> Err codemadness.org 70 i 42976 <code></code><br> Err codemadness.org 70 i 42977 <code>sched status:</code><br> Err codemadness.org 70 i 42978 <code>running_tid=1</code></p> Err codemadness.org 70 i 42979 <blockquote> Err codemadness.org 70 i 42980 <p>(3) Change compiler, use clang instead of gcc, and hope it can give me some clues. Still no effect.<br> Err codemadness.org 70 i 42981 (4) Switch Operating System from Linux to OpenBSD, the program crashes again. But this time, it tells me where the memory corruption occurs:</p> Err codemadness.org 70 i 42982 </blockquote> Err codemadness.org 70 i 42983 <p><code>Program terminated with signal SIGSEGV, Segmentation fault.</code><br> Err codemadness.org 70 i 42984 <code>#0 0x000014b07f01e52d in addMod (r=&lt;error reading variable&gt;, a=4693443247995522, b=28622907746665631,</code></p> Err codemadness.org 70 i 42985 <blockquote> Err codemadness.org 70 i 42986 <p>I figure out the issue quickly, and not bother to understand the whole code. OpenBSD saves me again, thanks!</p> Err codemadness.org 70 i 42987 </blockquote> Err codemadness.org 70 i 42988 <hr> Err codemadness.org 70 i 42989 <p>###<a href="https://lists.freebsd.org/pipermail/freebsd-current/2018-August/070832.html">Native Encryption for ZFS on FreeBSD (Call for Testing)</a></p> Err codemadness.org 70 i 42990 <blockquote> Err codemadness.org 70 i 42991 <p>To anyone with an interest in native encryption in ZFS please test the projects/zfs-crypto-merge-0820 branch in my freebsd repo: <a href="https://github.com/mattmacy/networking.git">https://github.com/mattmacy/networking.git</a></p> Err codemadness.org 70 i 42992 </blockquote> Err codemadness.org 70 i 42993 <p><code>git clone https://github.com/mattmacy/networking.git -b projects/zfs-crypto-merge-0820</code></p> Err codemadness.org 70 i 42994 <blockquote> Err codemadness.org 70 i 42995 <p>The UI is quite close to the Oracle Solaris ZFS crypto with minor differences for specifying key location.<br> Err codemadness.org 70 i 42996 Please note that once a feature is enabled on a pool it can’t be disabled. This means that if you enable encryption support on a pool you will never be able to import it in to a ZFS without encryption support. For this reason I would strongly advise against using this on any pool that can’t be easily replaced until this change has made its way in to HEAD after the freeze has been lifted.<br> Err codemadness.org 70 i 42997 By way of background the original ZoL commit can be found at:</p> Err codemadness.org 70 i 42998 </blockquote> Err codemadness.org 70 i 42999 <ul> Err codemadness.org 70 i 43000 <li><a href="https://github.com/zfsonlinux/zfs/pull/5769/commits/5aef9bedc801830264428c64cd2242d1b786fd49">https://github.com/zfsonlinux/zfs/pull/5769/commits/5aef9bedc801830264428c64cd2242d1b786fd49</a></li> Err codemadness.org 70 i 43001 </ul> Err codemadness.org 70 i 43002 <hr> Err codemadness.org 70 i 43003 <p>###<a href="https://www.ixsystems.com/blog/vmworld2018/">VMworld 2018: Showcasing Hybrid Cloud, Persistent Memory and the Asigra TrueNAS Backup Appliance</a></p> Err codemadness.org 70 i 43004 <blockquote> Err codemadness.org 70 i 43005 <p>During its last year in Las Vegas before moving back to San Francisco, VMworld was abuzz with all the popular buzzwords, but the key focus was on supporting a more agile approach to hybrid cloud.<br> Err codemadness.org 70 i 43006 Surveys of IT stakeholders and analysts agree that most businesses have multiple clouds spanning both public cloud providers and private data centers. While the exact numbers vary, well over half of businesses have a hybrid cloud strategy consisting of at least three different clouds.<br> Err codemadness.org 70 i 43007 This focus on hybrid cloud provided the perfect timing for our announcement that iXsystems and Asigra are partnering to deliver the Asigra TrueNAS Backup Appliance, which combines Asigra Cloud Backup software backed by TrueNAS storage. Asigra TrueNAS Backup Appliances provide a self-healing and ransomware-resistent OpenZFS backup repository in your private cloud. The appliance can simultaneously be used as general-purpose file, block, and object storage. How does this tie in with the hybrid cloud? The Asigra Cloud Backup software can backup data from public cloud repositories – G Suite, Office 365, Salesforce, etc. – as well as intelligently move backed-up data to the public cloud for long-term retention.<br> Err codemadness.org 70 i 43008 Another major theme at the technical sessions was persistent memory, as vSphere 6.7 added support for persistent memory – either as a storage tier or virtualized and presented to a guest OS. As detailed in our blog post from SNIA’s Persistent Memory Summit 2018, persistent memory is rapidly becoming mainstream. Persistent memory bridges the gap between memory and flash storage – providing near-memory latency storage that persists across reboots or power loss. vSphere allows both legacy and persistent memory-aware applications to leverage this ultra-fast storage tier. We were excited to show off our newly-introduced TrueNAS M-Series at VMworld, as all TrueNAS M40 and M50 models leverage NVDIMM persistent memory technology to provide a super-fast write cache, or SLOG, without any of the limitations of Flash technology.<br> Err codemadness.org 70 i 43009 The iXsystems booth’s theme was “Enterprise Storage, Open Source Economics”. iXsystems leverages the power of Open Source software, combined with our enterprise-class hardware and support, to provide incredibly low TCO storage for virtualization environments. Our TrueNAS unified storage and server offerings are an ideal solution for your organization’s private cloud infrastructure. Combined with VMware NSX Hybrid Connect – formerly known as VMware Hybrid Cloud Extension – you can seamlessly shift running systems into a public cloud environment for a true hybrid cloud solution.<br> Err codemadness.org 70 i 43010 Another special treat at this year’s booth was iXsystems Vice President of Engineering Kris Moore giving demos of an early version of “Project TrueView”, a single-pane of glass management solution for administration of multiple FreeNAS and TrueNAS systems. In addition to simplified administration and enhanced monitoring, Project TrueView will also provide Role-Based Access Control for finer-grained permissions management. A beta version of Project TrueView is expected to be available at the end of this year.<br> Err codemadness.org 70 i 43011 Overall, we had a great week at VMworld 2018 with lots of good conversations with customers, press, analysts, and future customers about TrueNAS, the Asigra TrueNAS Backup Appliance, iXsystems servers, Project TrueView, and more – our booth was more popular than ever!</p> Err codemadness.org 70 i 43012 </blockquote> Err codemadness.org 70 i 43013 <hr> Err codemadness.org 70 i 43014 <p>###<a href="https://blog.netbsd.org/tnf/entry/end_of_life_for_netbsd1">End of life for NetBSD 6.x</a></p> Err codemadness.org 70 i 43015 <blockquote> Err codemadness.org 70 i 43016 <p>In keeping with NetBSD’s policy of supporting only the latest (8.x) and next most recent (7.x) major branches, the recent release of NetBSD 8.0 marks the end of life for NetBSD 6.x. As in the past, a month of overlapping support has been provided in order to ease the migration to newer releases.</p> Err codemadness.org 70 i 43017 </blockquote> Err codemadness.org 70 i 43018 <ul> Err codemadness.org 70 i 43019 <li> Err codemadness.org 70 i 43020 <p>As of now, the following branches are no longer maintained:</p> Err codemadness.org 70 i 43021 </li> Err codemadness.org 70 i 43022 <li> Err codemadness.org 70 i 43023 <p>netbsd-6-1</p> Err codemadness.org 70 i 43024 </li> Err codemadness.org 70 i 43025 <li> Err codemadness.org 70 i 43026 <p>netbsd-6-0</p> Err codemadness.org 70 i 43027 </li> Err codemadness.org 70 i 43028 <li> Err codemadness.org 70 i 43029 <p>netbsd-6</p> Err codemadness.org 70 i 43030 </li> Err codemadness.org 70 i 43031 <li> Err codemadness.org 70 i 43032 <p>This means:</p> Err codemadness.org 70 i 43033 </li> Err codemadness.org 70 i 43034 <li> Err codemadness.org 70 i 43035 <p>There will be no more pullups to those branches (even for security issues)</p> Err codemadness.org 70 i 43036 </li> Err codemadness.org 70 i 43037 <li> Err codemadness.org 70 i 43038 <p>There will be no security advisories made for any those branches</p> Err codemadness.org 70 i 43039 </li> Err codemadness.org 70 i 43040 <li> Err codemadness.org 70 i 43041 <p>The existing 6.x releases on <a href="http://ftp.NetBSD.org">ftp.NetBSD.org</a> will be moved into /pub/NetBSD-archive/</p> Err codemadness.org 70 i 43042 </li> Err codemadness.org 70 i 43043 <li> Err codemadness.org 70 i 43044 <p>May NetBSD 8.0 serve you well! (And if it doesn’t, please submit a PR!)</p> Err codemadness.org 70 i 43045 </li> Err codemadness.org 70 i 43046 </ul> Err codemadness.org 70 i 43047 <hr> Err codemadness.org 70 i 43048 <p>##Beastie Bits</p> Err codemadness.org 70 i 43049 <ul> Err codemadness.org 70 i 43050 <li><a href="https://imgur.com/a/fkzTwYm">Blast from the past: OpenBSD 3.7 CD artwork</a></li> Err codemadness.org 70 i 43051 <li><a href="https://twitter.com/romanzolotarev/status/1030345831751270400">People are asking about scale of BSD projects. Let’s figure it out…</a></li> Err codemadness.org 70 i 43052 <li><a href="https://mwl.io/archives/3642">Tuesday, 21 August 18: me, on ed(1), at SemiBUG</a></li> Err codemadness.org 70 i 43053 <li><a href="https://undeadly.org/cgi?action=article;sid=20180813133939">arm64 gains RETGUARD</a></li> Err codemadness.org 70 i 43054 <li><a href="https://fosdem.org/2019/news/2018-08-10-call-for-participation/">Call for participation</a></li> Err codemadness.org 70 i 43055 <li><a href="https://github.com/FreeBSD-UPB/bhyvearm64-utils">FreeBSD-UPB/bhyvearm64-utils</a></li> Err codemadness.org 70 i 43056 </ul> Err codemadness.org 70 i 43057 <hr> Err codemadness.org 70 i 43058 <p>##Feedback/Questions</p> Err codemadness.org 70 i 43059 <ul> Err codemadness.org 70 i 43060 <li>Eric - <a href="http://dpaste.com/2GY2S6T#wrap">FreeNAS for Vacation</a></li> Err codemadness.org 70 i 43061 <li>Patrick - <a href="http://dpaste.com/347WCR3">Long Live Unix</a></li> Err codemadness.org 70 i 43062 <li>Jason - <a href="http://dpaste.com/1B7E8F5#wrap">Jason - Full MP3 Recordings</a></li> Err codemadness.org 70 i 43063 <li>Bostjan - <a href="http://dpaste.com/34AQNSE#wrap">Question about jails and kernel</a></li> Err codemadness.org 70 i 43064 </ul> Err codemadness.org 70 i 43065 <hr> Err codemadness.org 70 i 43066 <ul> Err codemadness.org 70 i 43067 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 43068 </ul> Err codemadness.org 70 i 43069 <hr> Err codemadness.org 70 i 43070 Err codemadness.org 70 i 43071 freebsd,openbsd,netbsd,dragonflybsd,trueos,trident,hardenedbsd,tutorial,howto,guide,bsd,interview,vmworld,spectre,asigra Err codemadness.org 70 i 43072 Err codemadness.org 70 i 43073 Mitigating Spectre/Meltdown on HP Proliant servers, omniOS installation setup, debugging a memory corruption issue on OpenBSD, CfT for OpenZFS native encryption, Asigra TrueNAS backup appliance shown at VMworld, NetBSD 6 EoL, and more.
Err codemadness.org 70 i 43074

Err codemadness.org 70 i 43075 Err codemadness.org 70 i 43076

##Headlines
Err codemadness.org 70 i 43077 ###How to mitigate Spectre and Meltdown on an HP Proliant server with FreeBSD

Err codemadness.org 70 i 43078 Err codemadness.org 70 i 43079
Err codemadness.org 70 i 43080

As recently announced in a previous article I wanted to write a couple of guides on how to mitigate Spectre and Meltdown vulnerabilities in GNU/Linux and UNIX environments. It is always a good and I hope a standard practice to have your systems patched and if they aren’t for whatever the reason (that legacy thing you’re carrying on for ages) you may take the necessary extra steps to protect your environment. I never planned to do any article on patching anything. Nowadays it’s a no brainer and operating systems have provided the necessary tools for this to be easy and as smooth as possible. So why this article?
Err codemadness.org 70 i 43081 Spectre and Meltdown are both hardware vulnerabilities. Major ones. They are meaningful for several reasons among them the world wide impact since they affect Intel and AMD systems which are ubiquitous. And second because patching hardware is not as easy, for the manufacturer and for the users or administrators in charge of the systems. There is still no known exploit around left out in the open hitting servers or desktops anywhere. The question is not if it will ever happen. The question is when will it happen. And it may be sooner than later. This is why big companies, governments and people in charge of big deployments are patching or have already patched their systems. But have you done it to your system? I know you have a firewall. Have you thought about CVE-2018-3639? This particular one could make your browser being a vector to get into your system. So, no, there is no reason to skip this.
Err codemadness.org 70 i 43082 Patching these set of vulnerabilities implies some more steps and concerns than updating the operating system. If you are a regular Windows user I find rare you to be here and many of the things you will read may be foreign to you. I am not planning to do a guide on Windows systems since I believe someone else has or will do it and will do it better than me since I am not a pro Windows user. However there is one basic and common thing for all OS’s when dealing with Spectre and Meltdown and that is a microcode update is necessary for the OS patches to effectively work.
Err codemadness.org 70 i 43083 What is microcode? You can read the Wikipedia article but in short it is basically a layer of code that allows chip manufacturers to deal with modifications on the hardware they’ve produced and the operating systems that will manage that hardware. Since there’s been some issues (namely Spectre and Meltdown) Intel and AMD respectively have released a series of microcode updates to address those problems. First series did come with serious problems and some regressions, to the point GNU/Linux producers stopped releasing the microcode updates through their release channels for updates and placed the ball on Intel’s roof. Patching fast does always include risks, specially when dealing with hardware. OS vendors have resumed their microcode update releases so all seems to be fine now.
Err codemadness.org 70 i 43084 In order to update the microcode we’re faced with two options. Download the most recent BIOS release from our vendor, provided it patches the Spectre and Meltdown vulnerabilities, or patch it from the OS. If your hardware vendor has decided not to provide support on your hardware you are forced to use the latter solution. Yes, you can still keep your hardware. They usually come accompanied with a “release notes” file where there are some explanatory notes on what is fixed, what is new, etc. To make the search easy for you a news site collected the vendors list and linked the right support pages for anyone to look. In some scenarios it would be desirable not to replace the whole BIOS but just update the microcode from the OS side. In my case I should update an HP Proliant ML110 G7 box and the download link for that would be this.
Err codemadness.org 70 i 43085 Instead of using the full blown BIOS update path we’ll use the inner utilities to patch Spectre and Meltdown on FreeBSD. So let’s put our hands on it

Err codemadness.org 70 i 43086
Err codemadness.org 70 i 43087 Err codemadness.org 70 i 43088
    Err codemadness.org 70 i 43089
  • See the article for the technical breakdown
  • Err codemadness.org 70 i 43090
Err codemadness.org 70 i 43091 Err codemadness.org 70 i 43092


Err codemadness.org 70 i 43093 Err codemadness.org 70 i 43094

###A look beyond the BSD teacup: OmniOS installation

Err codemadness.org 70 i 43095 Err codemadness.org 70 i 43096
Err codemadness.org 70 i 43097

Five years ago I wrote a post about taking a look beyond the Linux teacup. I was an Arch Linux user back then and since there were projects like ArchBSD (called PacBSD today) and Arch Hurd, I decided to take a look at and write about them. Things have changed. Today I’m a happy FreeBSD user, but it’s time again to take a look beyond the teacup of operating systems that I’m familiar with.

Err codemadness.org 70 i 43098
Err codemadness.org 70 i 43099 Err codemadness.org 70 i 43100
    Err codemadness.org 70 i 43101
  • Why Illumos / OmniOS?
  • Err codemadness.org 70 i 43102
Err codemadness.org 70 i 43103 Err codemadness.org 70 i 43104
Err codemadness.org 70 i 43105

There are a couple of reasons. The Solaris derivatives are the other big community in the *nix family besides Linux and the BSDs and we hadn’t met so far. Working with ZFS on FreeBSD, I now and then I read messages that contain a reference to Illumos which certainly helps to keep up the awareness. Of course there has also been a bit of curiosity – what might the OS be like that grew ZFS?
Err codemadness.org 70 i 43106 Also the Ravenports project that I participate in planned to support Solaris/Illumos right from the beginning. I wanted to at least be somewhat “prepared” when support for that platform would finally land. So I did a little research on the various derivatives available and settled on the one that I had heard a talk about at last year’s conference of the German Unix Users Group: “OmniOS – Solaris for the Rest of Us”. I would have chosen SmartOS as I admire what Bryan Cantrill does but for getting to know Illumos I prefer a traditional installation over a run-from-RAM system.
Err codemadness.org 70 i 43107 Of course FreeBSD is not run by corporations, especially when compared to the state of Linux. And when it comes to sponsoring, OpenBSD also takes the money… When it comes to FreeBSD developers, there’s probably some truth to the claim that some of them are using macOS as their desktop systems while OpenBSD devs are more likely to develop on their OS of choice. But then there’s the statement that “every innovation in the past decade comes from Solaris”. Bhyve alone proves this wrong. But let’s be honest: Two of the major technologies that make FreeBSD a great platform today – ZFS and DTrace – actually do come from Solaris. PAM originates there and a more modern way of managing services as well. Also you hear good things about their zones and a lot of small utilities in general.
Err codemadness.org 70 i 43108 In the end it was a lack of time that made me cheat and go down the easiest road: Create a Vagrantfile and just pull a VM image of the net that someone else had prepared… This worked to just make sure that the Raven packages work on OmniOS. I was determined to return, though – someday. You know how things go: “someday” is a pretty common alias for “probably never, actually.”
Err codemadness.org 70 i 43109 But then I heard about a forum post on the BSDNow! podcast. The title “Initial OmniOS impressions by a BSD user” caught my attention. I read that it was written by somebody who had used FreeBSD for years but loathed the new Code of Conduct enough to leave. I also oppose the Conduct and have made that pretty clear in my February post [ ! -z ${COC} ] && exit 1. As stated there, I have stayed with my favorite OS and continue to advocate it. I decided to stop reading the post and try things out on my own instead. Now I’ve finally found the time to do so.

Err codemadness.org 70 i 43110
Err codemadness.org 70 i 43111 Err codemadness.org 70 i 43112
    Err codemadness.org 70 i 43113
  • What’s next?
  • Err codemadness.org 70 i 43114
Err codemadness.org 70 i 43115 Err codemadness.org 70 i 43116
Err codemadness.org 70 i 43117

That’s it for part one. In part two I’ll try to make the system useful. So far I have run into a problem that I haven’t been able to solve. But I have some time now to figure things out for the next post. Let’s see if I manage to get it working or if I have to report failure!

Err codemadness.org 70 i 43118
Err codemadness.org 70 i 43119 Err codemadness.org 70 i 43120


Err codemadness.org 70 i 43121 Err codemadness.org 70 i 43122

###What are all these types of memory in top(1)?

Err codemadness.org 70 i 43123 Err codemadness.org 70 i 43124
    Err codemadness.org 70 i 43125
  • Earlier this week I convinced Mark Johnston, one of the FreeBSD VM experts to update a page on the FreeBSD wiki that I saw was being referenced on stackoverflow and similar sites
  • Err codemadness.org 70 i 43126
  • Mark updated the explanations to be more correct, and to include more technical detail for inquiring minds
  • Err codemadness.org 70 i 43127
  • He also added the new type that appeared in FreeBSD somewhat recently
  • Err codemadness.org 70 i 43128
Err codemadness.org 70 i 43129 Err codemadness.org 70 i 43130
Err codemadness.org 70 i 43131

Active - Contains memory “actively” (recently) being used by applications
Err codemadness.org 70 i 43132 Inactive - Contains memory that has not been touched recently, or was released from the Buffer Cache
Err codemadness.org 70 i 43133 Laundry - Contains memory that Inactive but still potentially contains useful data that needs to be stored before this memory can be used again
Err codemadness.org 70 i 43134 Wired - Memory that cannot be swapped out, including the kernel, network stack, and the ZFS ARC
Err codemadness.org 70 i 43135 Buf - Buffer Cache, used my UFS and most filesystems except ZFS (which uses the ARC)
Err codemadness.org 70 i 43136 Free - Memory that is immediately available for use by the rest of the system

Err codemadness.org 70 i 43137
Err codemadness.org 70 i 43138 Err codemadness.org 70 i 43139


Err codemadness.org 70 i 43140 Err codemadness.org 70 i 43141

##News Roundup
Err codemadness.org 70 i 43142 ###OpenBSD saves me again! — Debug a memory corruption issue

Err codemadness.org 70 i 43143 Err codemadness.org 70 i 43144
Err codemadness.org 70 i 43145

Yesterday, I came across a third-part library issue, which crashes at allocating memory:

Err codemadness.org 70 i 43146
Err codemadness.org 70 i 43147 Err codemadness.org 70 i 43148

Program terminated with signal SIGSEGV, Segmentation fault.
Err codemadness.org 70 i 43149 #0 0x00007f594a5a9b6b in _int_malloc () from /usr/lib/libc.so.6
Err codemadness.org 70 i 43150 (gdb) bt
Err codemadness.org 70 i 43151 #0 0x00007f594a5a9b6b in _int_malloc () from /usr/lib/libc.so.6
Err codemadness.org 70 i 43152 #1 0x00007f594a5ab503 in malloc () from /usr/lib/libc.so.6
Err codemadness.org 70 i 43153 #2 0x00007f594b13f159 in operator new (sz=5767168) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/new_op.cc:50

Err codemadness.org 70 i 43154 Err codemadness.org 70 i 43155
Err codemadness.org 70 i 43156

It is obvious that the memory tags are corrupted, but who is the murder? Since the library involves a lot of maths computation, it is not an easy task to grasp the code quickly. So I need to find another way:
Err codemadness.org 70 i 43157 (1) Open all warnings during compilation: -Wall. Nothing found.
Err codemadness.org 70 i 43158 (2) Use valgrind, but unfortunately, valgrind crashes itself:

Err codemadness.org 70 i 43159
Err codemadness.org 70 i 43160 Err codemadness.org 70 i 43161

valgrind: the 'impossible' happened:
Err codemadness.org 70 i 43162 Killed by fatal signal
Err codemadness.org 70 i 43163
Err codemadness.org 70 i 43164 host stacktrace:
Err codemadness.org 70 i 43165 ==43326== at 0x58053139: get_bszB_as_is (m_mallocfree.c:303)
Err codemadness.org 70 i 43166 ==43326== by 0x58053139: get_bszB (m_mallocfree.c:315)
Err codemadness.org 70 i 43167 ==43326== by 0x58053139: vgPlain_arena_malloc (m_mallocfree.c:1799)
Err codemadness.org 70 i 43168 ==43326== by 0x5800BA84: vgMemCheck_new_block (mc_malloc_wrappers.c:372)
Err codemadness.org 70 i 43169 ==43326== by 0x5800BD39: vgMemCheck___builtin_vec_new (mc_malloc_wrappers.c:427)
Err codemadness.org 70 i 43170 ==43326== by 0x5809F785: do_client_request (scheduler.c:1866)
Err codemadness.org 70 i 43171 ==43326== by 0x5809F785: vgPlain_scheduler (scheduler.c:1433)
Err codemadness.org 70 i 43172 ==43326== by 0x580AED50: thread_wrapper (syswrap-linux.c:103)
Err codemadness.org 70 i 43173 ==43326== by 0x580AED50: run_a_thread_NORETURN (syswrap-linux.c:156)
Err codemadness.org 70 i 43174
Err codemadness.org 70 i 43175 sched status:
Err codemadness.org 70 i 43176 running_tid=1

Err codemadness.org 70 i 43177 Err codemadness.org 70 i 43178
Err codemadness.org 70 i 43179

(3) Change compiler, use clang instead of gcc, and hope it can give me some clues. Still no effect.
Err codemadness.org 70 i 43180 (4) Switch Operating System from Linux to OpenBSD, the program crashes again. But this time, it tells me where the memory corruption occurs:

Err codemadness.org 70 i 43181
Err codemadness.org 70 i 43182 Err codemadness.org 70 i 43183

Program terminated with signal SIGSEGV, Segmentation fault.
Err codemadness.org 70 i 43184 #0 0x000014b07f01e52d in addMod (r=<error reading variable>, a=4693443247995522, b=28622907746665631,

Err codemadness.org 70 i 43185 Err codemadness.org 70 i 43186
Err codemadness.org 70 i 43187

I figure out the issue quickly, and not bother to understand the whole code. OpenBSD saves me again, thanks!

Err codemadness.org 70 i 43188
Err codemadness.org 70 i 43189 Err codemadness.org 70 i 43190


Err codemadness.org 70 i 43191 Err codemadness.org 70 i 43192

###Native Encryption for ZFS on FreeBSD (Call for Testing)

Err codemadness.org 70 i 43193 Err codemadness.org 70 i 43194
Err codemadness.org 70 i 43195

To anyone with an interest in native encryption in ZFS please test the projects/zfs-crypto-merge-0820 branch in my freebsd repo: https://github.com/mattmacy/networking.git

Err codemadness.org 70 i 43196
Err codemadness.org 70 i 43197 Err codemadness.org 70 i 43198

git clone https://github.com/mattmacy/networking.git -b projects/zfs-crypto-merge-0820

Err codemadness.org 70 i 43199 Err codemadness.org 70 i 43200
Err codemadness.org 70 i 43201

The UI is quite close to the Oracle Solaris ZFS crypto with minor differences for specifying key location.
Err codemadness.org 70 i 43202 Please note that once a feature is enabled on a pool it can’t be disabled. This means that if you enable encryption support on a pool you will never be able to import it in to a ZFS without encryption support. For this reason I would strongly advise against using this on any pool that can’t be easily replaced until this change has made its way in to HEAD after the freeze has been lifted.
Err codemadness.org 70 i 43203 By way of background the original ZoL commit can be found at:

Err codemadness.org 70 i 43204
Err codemadness.org 70 i 43205 Err codemadness.org 70 i 43206 Err codemadness.org 70 i 43209 Err codemadness.org 70 i 43210


Err codemadness.org 70 i 43211 Err codemadness.org 70 i 43212

###VMworld 2018: Showcasing Hybrid Cloud, Persistent Memory and the Asigra TrueNAS Backup Appliance

Err codemadness.org 70 i 43213 Err codemadness.org 70 i 43214
Err codemadness.org 70 i 43215

During its last year in Las Vegas before moving back to San Francisco, VMworld was abuzz with all the popular buzzwords, but the key focus was on supporting a more agile approach to hybrid cloud.
Err codemadness.org 70 i 43216 Surveys of IT stakeholders and analysts agree that most businesses have multiple clouds spanning both public cloud providers and private data centers. While the exact numbers vary, well over half of businesses have a hybrid cloud strategy consisting of at least three different clouds.
Err codemadness.org 70 i 43217 This focus on hybrid cloud provided the perfect timing for our announcement that iXsystems and Asigra are partnering to deliver the Asigra TrueNAS Backup Appliance, which combines Asigra Cloud Backup software backed by TrueNAS storage. Asigra TrueNAS Backup Appliances provide a self-healing and ransomware-resistent OpenZFS backup repository in your private cloud. The appliance can simultaneously be used as general-purpose file, block, and object storage. How does this tie in with the hybrid cloud? The Asigra Cloud Backup software can backup data from public cloud repositories – G Suite, Office 365, Salesforce, etc. – as well as intelligently move backed-up data to the public cloud for long-term retention.
Err codemadness.org 70 i 43218 Another major theme at the technical sessions was persistent memory, as vSphere 6.7 added support for persistent memory – either as a storage tier or virtualized and presented to a guest OS. As detailed in our blog post from SNIA’s Persistent Memory Summit 2018, persistent memory is rapidly becoming mainstream. Persistent memory bridges the gap between memory and flash storage – providing near-memory latency storage that persists across reboots or power loss. vSphere allows both legacy and persistent memory-aware applications to leverage this ultra-fast storage tier. We were excited to show off our newly-introduced TrueNAS M-Series at VMworld, as all TrueNAS M40 and M50 models leverage NVDIMM persistent memory technology to provide a super-fast write cache, or SLOG, without any of the limitations of Flash technology.
Err codemadness.org 70 i 43219 The iXsystems booth’s theme was “Enterprise Storage, Open Source Economics”. iXsystems leverages the power of Open Source software, combined with our enterprise-class hardware and support, to provide incredibly low TCO storage for virtualization environments. Our TrueNAS unified storage and server offerings are an ideal solution for your organization’s private cloud infrastructure. Combined with VMware NSX Hybrid Connect – formerly known as VMware Hybrid Cloud Extension – you can seamlessly shift running systems into a public cloud environment for a true hybrid cloud solution.
Err codemadness.org 70 i 43220 Another special treat at this year’s booth was iXsystems Vice President of Engineering Kris Moore giving demos of an early version of “Project TrueView”, a single-pane of glass management solution for administration of multiple FreeNAS and TrueNAS systems. In addition to simplified administration and enhanced monitoring, Project TrueView will also provide Role-Based Access Control for finer-grained permissions management. A beta version of Project TrueView is expected to be available at the end of this year.
Err codemadness.org 70 i 43221 Overall, we had a great week at VMworld 2018 with lots of good conversations with customers, press, analysts, and future customers about TrueNAS, the Asigra TrueNAS Backup Appliance, iXsystems servers, Project TrueView, and more – our booth was more popular than ever!

Err codemadness.org 70 i 43222
Err codemadness.org 70 i 43223 Err codemadness.org 70 i 43224


Err codemadness.org 70 i 43225 Err codemadness.org 70 i 43226

###End of life for NetBSD 6.x

Err codemadness.org 70 i 43227 Err codemadness.org 70 i 43228
Err codemadness.org 70 i 43229

In keeping with NetBSD’s policy of supporting only the latest (8.x) and next most recent (7.x) major branches, the recent release of NetBSD 8.0 marks the end of life for NetBSD 6.x. As in the past, a month of overlapping support has been provided in order to ease the migration to newer releases.

Err codemadness.org 70 i 43230
Err codemadness.org 70 i 43231 Err codemadness.org 70 i 43232
    Err codemadness.org 70 i 43233
  • Err codemadness.org 70 i 43234

    As of now, the following branches are no longer maintained:

    Err codemadness.org 70 i 43235
  • Err codemadness.org 70 i 43236
  • Err codemadness.org 70 i 43237

    netbsd-6-1

    Err codemadness.org 70 i 43238
  • Err codemadness.org 70 i 43239
  • Err codemadness.org 70 i 43240

    netbsd-6-0

    Err codemadness.org 70 i 43241
  • Err codemadness.org 70 i 43242
  • Err codemadness.org 70 i 43243

    netbsd-6

    Err codemadness.org 70 i 43244
  • Err codemadness.org 70 i 43245
  • Err codemadness.org 70 i 43246

    This means:

    Err codemadness.org 70 i 43247
  • Err codemadness.org 70 i 43248
  • Err codemadness.org 70 i 43249

    There will be no more pullups to those branches (even for security issues)

    Err codemadness.org 70 i 43250
  • Err codemadness.org 70 i 43251
  • Err codemadness.org 70 i 43252

    There will be no security advisories made for any those branches

    Err codemadness.org 70 i 43253
  • Err codemadness.org 70 i 43254
  • Err codemadness.org 70 i 43255

    The existing 6.x releases on ftp.NetBSD.org will be moved into /pub/NetBSD-archive/

    Err codemadness.org 70 i 43256
  • Err codemadness.org 70 i 43257
  • Err codemadness.org 70 i 43258

    May NetBSD 8.0 serve you well! (And if it doesn’t, please submit a PR!)

    Err codemadness.org 70 i 43259
  • Err codemadness.org 70 i 43260
Err codemadness.org 70 i 43261 Err codemadness.org 70 i 43262


Err codemadness.org 70 i 43263 Err codemadness.org 70 i 43264

##Beastie Bits

Err codemadness.org 70 i 43265 Err codemadness.org 70 i 43266 Err codemadness.org 70 i 43274 Err codemadness.org 70 i 43275


Err codemadness.org 70 i 43276 Err codemadness.org 70 i 43277

##Feedback/Questions

Err codemadness.org 70 i 43278 Err codemadness.org 70 i 43279 Err codemadness.org 70 i 43285 Err codemadness.org 70 i 43286


Err codemadness.org 70 i 43287 Err codemadness.org 70 i 43288
    Err codemadness.org 70 i 43289
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 43290
Err codemadness.org 70 i 43291 Err codemadness.org 70 i 43292


]]> Err codemadness.org 70 i 43293
Err codemadness.org 70 i 43294 Err codemadness.org 70 i 43295 Mitigating Spectre/Meltdown on HP Proliant servers, omniOS installation setup, debugging a memory corruption issue on OpenBSD, CfT for OpenZFS native encryption, Asigra TrueNAS backup appliance shown at VMworld, NetBSD 6 EoL, and more.
Err codemadness.org 70 i 43296

Err codemadness.org 70 i 43297 Err codemadness.org 70 i 43298

##Headlines
Err codemadness.org 70 i 43299 ###How to mitigate Spectre and Meltdown on an HP Proliant server with FreeBSD

Err codemadness.org 70 i 43300 Err codemadness.org 70 i 43301
Err codemadness.org 70 i 43302

As recently announced in a previous article I wanted to write a couple of guides on how to mitigate Spectre and Meltdown vulnerabilities in GNU/Linux and UNIX environments. It is always a good and I hope a standard practice to have your systems patched and if they aren’t for whatever the reason (that legacy thing you’re carrying on for ages) you may take the necessary extra steps to protect your environment. I never planned to do any article on patching anything. Nowadays it’s a no brainer and operating systems have provided the necessary tools for this to be easy and as smooth as possible. So why this article?
Err codemadness.org 70 i 43303 Spectre and Meltdown are both hardware vulnerabilities. Major ones. They are meaningful for several reasons among them the world wide impact since they affect Intel and AMD systems which are ubiquitous. And second because patching hardware is not as easy, for the manufacturer and for the users or administrators in charge of the systems. There is still no known exploit around left out in the open hitting servers or desktops anywhere. The question is not if it will ever happen. The question is when will it happen. And it may be sooner than later. This is why big companies, governments and people in charge of big deployments are patching or have already patched their systems. But have you done it to your system? I know you have a firewall. Have you thought about CVE-2018-3639? This particular one could make your browser being a vector to get into your system. So, no, there is no reason to skip this.
Err codemadness.org 70 i 43304 Patching these set of vulnerabilities implies some more steps and concerns than updating the operating system. If you are a regular Windows user I find rare you to be here and many of the things you will read may be foreign to you. I am not planning to do a guide on Windows systems since I believe someone else has or will do it and will do it better than me since I am not a pro Windows user. However there is one basic and common thing for all OS’s when dealing with Spectre and Meltdown and that is a microcode update is necessary for the OS patches to effectively work.
Err codemadness.org 70 i 43305 What is microcode? You can read the Wikipedia article but in short it is basically a layer of code that allows chip manufacturers to deal with modifications on the hardware they’ve produced and the operating systems that will manage that hardware. Since there’s been some issues (namely Spectre and Meltdown) Intel and AMD respectively have released a series of microcode updates to address those problems. First series did come with serious problems and some regressions, to the point GNU/Linux producers stopped releasing the microcode updates through their release channels for updates and placed the ball on Intel’s roof. Patching fast does always include risks, specially when dealing with hardware. OS vendors have resumed their microcode update releases so all seems to be fine now.
Err codemadness.org 70 i 43306 In order to update the microcode we’re faced with two options. Download the most recent BIOS release from our vendor, provided it patches the Spectre and Meltdown vulnerabilities, or patch it from the OS. If your hardware vendor has decided not to provide support on your hardware you are forced to use the latter solution. Yes, you can still keep your hardware. They usually come accompanied with a “release notes” file where there are some explanatory notes on what is fixed, what is new, etc. To make the search easy for you a news site collected the vendors list and linked the right support pages for anyone to look. In some scenarios it would be desirable not to replace the whole BIOS but just update the microcode from the OS side. In my case I should update an HP Proliant ML110 G7 box and the download link for that would be this.
Err codemadness.org 70 i 43307 Instead of using the full blown BIOS update path we’ll use the inner utilities to patch Spectre and Meltdown on FreeBSD. So let’s put our hands on it

Err codemadness.org 70 i 43308
Err codemadness.org 70 i 43309 Err codemadness.org 70 i 43310
    Err codemadness.org 70 i 43311
  • See the article for the technical breakdown
  • Err codemadness.org 70 i 43312
Err codemadness.org 70 i 43313 Err codemadness.org 70 i 43314


Err codemadness.org 70 i 43315 Err codemadness.org 70 i 43316

###A look beyond the BSD teacup: OmniOS installation

Err codemadness.org 70 i 43317 Err codemadness.org 70 i 43318
Err codemadness.org 70 i 43319

Five years ago I wrote a post about taking a look beyond the Linux teacup. I was an Arch Linux user back then and since there were projects like ArchBSD (called PacBSD today) and Arch Hurd, I decided to take a look at and write about them. Things have changed. Today I’m a happy FreeBSD user, but it’s time again to take a look beyond the teacup of operating systems that I’m familiar with.

Err codemadness.org 70 i 43320
Err codemadness.org 70 i 43321 Err codemadness.org 70 i 43322
    Err codemadness.org 70 i 43323
  • Why Illumos / OmniOS?
  • Err codemadness.org 70 i 43324
Err codemadness.org 70 i 43325 Err codemadness.org 70 i 43326
Err codemadness.org 70 i 43327

There are a couple of reasons. The Solaris derivatives are the other big community in the *nix family besides Linux and the BSDs and we hadn’t met so far. Working with ZFS on FreeBSD, I now and then I read messages that contain a reference to Illumos which certainly helps to keep up the awareness. Of course there has also been a bit of curiosity – what might the OS be like that grew ZFS?
Err codemadness.org 70 i 43328 Also the Ravenports project that I participate in planned to support Solaris/Illumos right from the beginning. I wanted to at least be somewhat “prepared” when support for that platform would finally land. So I did a little research on the various derivatives available and settled on the one that I had heard a talk about at last year’s conference of the German Unix Users Group: “OmniOS – Solaris for the Rest of Us”. I would have chosen SmartOS as I admire what Bryan Cantrill does but for getting to know Illumos I prefer a traditional installation over a run-from-RAM system.
Err codemadness.org 70 i 43329 Of course FreeBSD is not run by corporations, especially when compared to the state of Linux. And when it comes to sponsoring, OpenBSD also takes the money… When it comes to FreeBSD developers, there’s probably some truth to the claim that some of them are using macOS as their desktop systems while OpenBSD devs are more likely to develop on their OS of choice. But then there’s the statement that “every innovation in the past decade comes from Solaris”. Bhyve alone proves this wrong. But let’s be honest: Two of the major technologies that make FreeBSD a great platform today – ZFS and DTrace – actually do come from Solaris. PAM originates there and a more modern way of managing services as well. Also you hear good things about their zones and a lot of small utilities in general.
Err codemadness.org 70 i 43330 In the end it was a lack of time that made me cheat and go down the easiest road: Create a Vagrantfile and just pull a VM image of the net that someone else had prepared… This worked to just make sure that the Raven packages work on OmniOS. I was determined to return, though – someday. You know how things go: “someday” is a pretty common alias for “probably never, actually.”
Err codemadness.org 70 i 43331 But then I heard about a forum post on the BSDNow! podcast. The title “Initial OmniOS impressions by a BSD user” caught my attention. I read that it was written by somebody who had used FreeBSD for years but loathed the new Code of Conduct enough to leave. I also oppose the Conduct and have made that pretty clear in my February post [ ! -z ${COC} ] && exit 1. As stated there, I have stayed with my favorite OS and continue to advocate it. I decided to stop reading the post and try things out on my own instead. Now I’ve finally found the time to do so.

Err codemadness.org 70 i 43332
Err codemadness.org 70 i 43333 Err codemadness.org 70 i 43334
    Err codemadness.org 70 i 43335
  • What’s next?
  • Err codemadness.org 70 i 43336
Err codemadness.org 70 i 43337 Err codemadness.org 70 i 43338
Err codemadness.org 70 i 43339

That’s it for part one. In part two I’ll try to make the system useful. So far I have run into a problem that I haven’t been able to solve. But I have some time now to figure things out for the next post. Let’s see if I manage to get it working or if I have to report failure!

Err codemadness.org 70 i 43340
Err codemadness.org 70 i 43341 Err codemadness.org 70 i 43342


Err codemadness.org 70 i 43343 Err codemadness.org 70 i 43344

###What are all these types of memory in top(1)?

Err codemadness.org 70 i 43345 Err codemadness.org 70 i 43346
    Err codemadness.org 70 i 43347
  • Earlier this week I convinced Mark Johnston, one of the FreeBSD VM experts to update a page on the FreeBSD wiki that I saw was being referenced on stackoverflow and similar sites
  • Err codemadness.org 70 i 43348
  • Mark updated the explanations to be more correct, and to include more technical detail for inquiring minds
  • Err codemadness.org 70 i 43349
  • He also added the new type that appeared in FreeBSD somewhat recently
  • Err codemadness.org 70 i 43350
Err codemadness.org 70 i 43351 Err codemadness.org 70 i 43352
Err codemadness.org 70 i 43353

Active - Contains memory “actively” (recently) being used by applications
Err codemadness.org 70 i 43354 Inactive - Contains memory that has not been touched recently, or was released from the Buffer Cache
Err codemadness.org 70 i 43355 Laundry - Contains memory that Inactive but still potentially contains useful data that needs to be stored before this memory can be used again
Err codemadness.org 70 i 43356 Wired - Memory that cannot be swapped out, including the kernel, network stack, and the ZFS ARC
Err codemadness.org 70 i 43357 Buf - Buffer Cache, used my UFS and most filesystems except ZFS (which uses the ARC)
Err codemadness.org 70 i 43358 Free - Memory that is immediately available for use by the rest of the system

Err codemadness.org 70 i 43359
Err codemadness.org 70 i 43360 Err codemadness.org 70 i 43361


Err codemadness.org 70 i 43362 Err codemadness.org 70 i 43363

##News Roundup
Err codemadness.org 70 i 43364 ###OpenBSD saves me again! — Debug a memory corruption issue

Err codemadness.org 70 i 43365 Err codemadness.org 70 i 43366
Err codemadness.org 70 i 43367

Yesterday, I came across a third-part library issue, which crashes at allocating memory:

Err codemadness.org 70 i 43368
Err codemadness.org 70 i 43369 Err codemadness.org 70 i 43370

Program terminated with signal SIGSEGV, Segmentation fault.
Err codemadness.org 70 i 43371 #0 0x00007f594a5a9b6b in _int_malloc () from /usr/lib/libc.so.6
Err codemadness.org 70 i 43372 (gdb) bt
Err codemadness.org 70 i 43373 #0 0x00007f594a5a9b6b in _int_malloc () from /usr/lib/libc.so.6
Err codemadness.org 70 i 43374 #1 0x00007f594a5ab503 in malloc () from /usr/lib/libc.so.6
Err codemadness.org 70 i 43375 #2 0x00007f594b13f159 in operator new (sz=5767168) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/new_op.cc:50

Err codemadness.org 70 i 43376 Err codemadness.org 70 i 43377
Err codemadness.org 70 i 43378

It is obvious that the memory tags are corrupted, but who is the murder? Since the library involves a lot of maths computation, it is not an easy task to grasp the code quickly. So I need to find another way:
Err codemadness.org 70 i 43379 (1) Open all warnings during compilation: -Wall. Nothing found.
Err codemadness.org 70 i 43380 (2) Use valgrind, but unfortunately, valgrind crashes itself:

Err codemadness.org 70 i 43381
Err codemadness.org 70 i 43382 Err codemadness.org 70 i 43383

valgrind: the 'impossible' happened:
Err codemadness.org 70 i 43384 Killed by fatal signal
Err codemadness.org 70 i 43385
Err codemadness.org 70 i 43386 host stacktrace:
Err codemadness.org 70 i 43387 ==43326== at 0x58053139: get_bszB_as_is (m_mallocfree.c:303)
Err codemadness.org 70 i 43388 ==43326== by 0x58053139: get_bszB (m_mallocfree.c:315)
Err codemadness.org 70 i 43389 ==43326== by 0x58053139: vgPlain_arena_malloc (m_mallocfree.c:1799)
Err codemadness.org 70 i 43390 ==43326== by 0x5800BA84: vgMemCheck_new_block (mc_malloc_wrappers.c:372)
Err codemadness.org 70 i 43391 ==43326== by 0x5800BD39: vgMemCheck___builtin_vec_new (mc_malloc_wrappers.c:427)
Err codemadness.org 70 i 43392 ==43326== by 0x5809F785: do_client_request (scheduler.c:1866)
Err codemadness.org 70 i 43393 ==43326== by 0x5809F785: vgPlain_scheduler (scheduler.c:1433)
Err codemadness.org 70 i 43394 ==43326== by 0x580AED50: thread_wrapper (syswrap-linux.c:103)
Err codemadness.org 70 i 43395 ==43326== by 0x580AED50: run_a_thread_NORETURN (syswrap-linux.c:156)
Err codemadness.org 70 i 43396
Err codemadness.org 70 i 43397 sched status:
Err codemadness.org 70 i 43398 running_tid=1

Err codemadness.org 70 i 43399 Err codemadness.org 70 i 43400
Err codemadness.org 70 i 43401

(3) Change compiler, use clang instead of gcc, and hope it can give me some clues. Still no effect.
Err codemadness.org 70 i 43402 (4) Switch Operating System from Linux to OpenBSD, the program crashes again. But this time, it tells me where the memory corruption occurs:

Err codemadness.org 70 i 43403
Err codemadness.org 70 i 43404 Err codemadness.org 70 i 43405

Program terminated with signal SIGSEGV, Segmentation fault.
Err codemadness.org 70 i 43406 #0 0x000014b07f01e52d in addMod (r=<error reading variable>, a=4693443247995522, b=28622907746665631,

Err codemadness.org 70 i 43407 Err codemadness.org 70 i 43408
Err codemadness.org 70 i 43409

I figure out the issue quickly, and not bother to understand the whole code. OpenBSD saves me again, thanks!

Err codemadness.org 70 i 43410
Err codemadness.org 70 i 43411 Err codemadness.org 70 i 43412


Err codemadness.org 70 i 43413 Err codemadness.org 70 i 43414

###Native Encryption for ZFS on FreeBSD (Call for Testing)

Err codemadness.org 70 i 43415 Err codemadness.org 70 i 43416
Err codemadness.org 70 i 43417

To anyone with an interest in native encryption in ZFS please test the projects/zfs-crypto-merge-0820 branch in my freebsd repo: https://github.com/mattmacy/networking.git

Err codemadness.org 70 i 43418
Err codemadness.org 70 i 43419 Err codemadness.org 70 i 43420

git clone https://github.com/mattmacy/networking.git -b projects/zfs-crypto-merge-0820

Err codemadness.org 70 i 43421 Err codemadness.org 70 i 43422
Err codemadness.org 70 i 43423

The UI is quite close to the Oracle Solaris ZFS crypto with minor differences for specifying key location.
Err codemadness.org 70 i 43424 Please note that once a feature is enabled on a pool it can’t be disabled. This means that if you enable encryption support on a pool you will never be able to import it in to a ZFS without encryption support. For this reason I would strongly advise against using this on any pool that can’t be easily replaced until this change has made its way in to HEAD after the freeze has been lifted.
Err codemadness.org 70 i 43425 By way of background the original ZoL commit can be found at:

Err codemadness.org 70 i 43426
Err codemadness.org 70 i 43427 Err codemadness.org 70 i 43428 Err codemadness.org 70 i 43431 Err codemadness.org 70 i 43432


Err codemadness.org 70 i 43433 Err codemadness.org 70 i 43434

###VMworld 2018: Showcasing Hybrid Cloud, Persistent Memory and the Asigra TrueNAS Backup Appliance

Err codemadness.org 70 i 43435 Err codemadness.org 70 i 43436
Err codemadness.org 70 i 43437

During its last year in Las Vegas before moving back to San Francisco, VMworld was abuzz with all the popular buzzwords, but the key focus was on supporting a more agile approach to hybrid cloud.
Err codemadness.org 70 i 43438 Surveys of IT stakeholders and analysts agree that most businesses have multiple clouds spanning both public cloud providers and private data centers. While the exact numbers vary, well over half of businesses have a hybrid cloud strategy consisting of at least three different clouds.
Err codemadness.org 70 i 43439 This focus on hybrid cloud provided the perfect timing for our announcement that iXsystems and Asigra are partnering to deliver the Asigra TrueNAS Backup Appliance, which combines Asigra Cloud Backup software backed by TrueNAS storage. Asigra TrueNAS Backup Appliances provide a self-healing and ransomware-resistent OpenZFS backup repository in your private cloud. The appliance can simultaneously be used as general-purpose file, block, and object storage. How does this tie in with the hybrid cloud? The Asigra Cloud Backup software can backup data from public cloud repositories – G Suite, Office 365, Salesforce, etc. – as well as intelligently move backed-up data to the public cloud for long-term retention.
Err codemadness.org 70 i 43440 Another major theme at the technical sessions was persistent memory, as vSphere 6.7 added support for persistent memory – either as a storage tier or virtualized and presented to a guest OS. As detailed in our blog post from SNIA’s Persistent Memory Summit 2018, persistent memory is rapidly becoming mainstream. Persistent memory bridges the gap between memory and flash storage – providing near-memory latency storage that persists across reboots or power loss. vSphere allows both legacy and persistent memory-aware applications to leverage this ultra-fast storage tier. We were excited to show off our newly-introduced TrueNAS M-Series at VMworld, as all TrueNAS M40 and M50 models leverage NVDIMM persistent memory technology to provide a super-fast write cache, or SLOG, without any of the limitations of Flash technology.
Err codemadness.org 70 i 43441 The iXsystems booth’s theme was “Enterprise Storage, Open Source Economics”. iXsystems leverages the power of Open Source software, combined with our enterprise-class hardware and support, to provide incredibly low TCO storage for virtualization environments. Our TrueNAS unified storage and server offerings are an ideal solution for your organization’s private cloud infrastructure. Combined with VMware NSX Hybrid Connect – formerly known as VMware Hybrid Cloud Extension – you can seamlessly shift running systems into a public cloud environment for a true hybrid cloud solution.
Err codemadness.org 70 i 43442 Another special treat at this year’s booth was iXsystems Vice President of Engineering Kris Moore giving demos of an early version of “Project TrueView”, a single-pane of glass management solution for administration of multiple FreeNAS and TrueNAS systems. In addition to simplified administration and enhanced monitoring, Project TrueView will also provide Role-Based Access Control for finer-grained permissions management. A beta version of Project TrueView is expected to be available at the end of this year.
Err codemadness.org 70 i 43443 Overall, we had a great week at VMworld 2018 with lots of good conversations with customers, press, analysts, and future customers about TrueNAS, the Asigra TrueNAS Backup Appliance, iXsystems servers, Project TrueView, and more – our booth was more popular than ever!

Err codemadness.org 70 i 43444
Err codemadness.org 70 i 43445 Err codemadness.org 70 i 43446


Err codemadness.org 70 i 43447 Err codemadness.org 70 i 43448

###End of life for NetBSD 6.x

Err codemadness.org 70 i 43449 Err codemadness.org 70 i 43450
Err codemadness.org 70 i 43451

In keeping with NetBSD’s policy of supporting only the latest (8.x) and next most recent (7.x) major branches, the recent release of NetBSD 8.0 marks the end of life for NetBSD 6.x. As in the past, a month of overlapping support has been provided in order to ease the migration to newer releases.

Err codemadness.org 70 i 43452
Err codemadness.org 70 i 43453 Err codemadness.org 70 i 43454
    Err codemadness.org 70 i 43455
  • Err codemadness.org 70 i 43456

    As of now, the following branches are no longer maintained:

    Err codemadness.org 70 i 43457
  • Err codemadness.org 70 i 43458
  • Err codemadness.org 70 i 43459

    netbsd-6-1

    Err codemadness.org 70 i 43460
  • Err codemadness.org 70 i 43461
  • Err codemadness.org 70 i 43462

    netbsd-6-0

    Err codemadness.org 70 i 43463
  • Err codemadness.org 70 i 43464
  • Err codemadness.org 70 i 43465

    netbsd-6

    Err codemadness.org 70 i 43466
  • Err codemadness.org 70 i 43467
  • Err codemadness.org 70 i 43468

    This means:

    Err codemadness.org 70 i 43469
  • Err codemadness.org 70 i 43470
  • Err codemadness.org 70 i 43471

    There will be no more pullups to those branches (even for security issues)

    Err codemadness.org 70 i 43472
  • Err codemadness.org 70 i 43473
  • Err codemadness.org 70 i 43474

    There will be no security advisories made for any those branches

    Err codemadness.org 70 i 43475
  • Err codemadness.org 70 i 43476
  • Err codemadness.org 70 i 43477

    The existing 6.x releases on ftp.NetBSD.org will be moved into /pub/NetBSD-archive/

    Err codemadness.org 70 i 43478
  • Err codemadness.org 70 i 43479
  • Err codemadness.org 70 i 43480

    May NetBSD 8.0 serve you well! (And if it doesn’t, please submit a PR!)

    Err codemadness.org 70 i 43481
  • Err codemadness.org 70 i 43482
Err codemadness.org 70 i 43483 Err codemadness.org 70 i 43484


Err codemadness.org 70 i 43485 Err codemadness.org 70 i 43486

##Beastie Bits

Err codemadness.org 70 i 43487 Err codemadness.org 70 i 43488 Err codemadness.org 70 i 43496 Err codemadness.org 70 i 43497


Err codemadness.org 70 i 43498 Err codemadness.org 70 i 43499

##Feedback/Questions

Err codemadness.org 70 i 43500 Err codemadness.org 70 i 43501 Err codemadness.org 70 i 43507 Err codemadness.org 70 i 43508


Err codemadness.org 70 i 43509 Err codemadness.org 70 i 43510
    Err codemadness.org 70 i 43511
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 43512
Err codemadness.org 70 i 43513 Err codemadness.org 70 i 43514


]]> Err codemadness.org 70 i 43515
Err codemadness.org 70 i 43516 https://fireside.fm/player/v2/FYhhasNR+L-HizJqO Err codemadness.org 70 i 43517 Err codemadness.org 70 i 43518 ]]> Err codemadness.org 70 i 43519 Err codemadness.org 70 i 43520
Err codemadness.org 70 i 43521 Err codemadness.org 70 i 43522 Episode 262: OpenBSD Surfacing | BSD Now 262 Err codemadness.org 70 i 43523 https://www.bsdnow.tv/262 Err codemadness.org 70 i 43524 http://feed.jupiter.zone/bsdnow#entry-2521 Err codemadness.org 70 i 43525 Thu, 06 Sep 2018 02:00:00 -0700 Err codemadness.org 70 i 43526 Allan Jude Err codemadness.org 70 i 43527 Err codemadness.org 70 i 43528 full Err codemadness.org 70 i 43529 Allan Jude Err codemadness.org 70 i 43530 OpenBSD on Microsoft Surface Go, FreeBSD Foundation August Update, What’s taking so long with Project Trident, pkgsrc config file versioning, and MacOS remnants in ZFS code. Err codemadness.org 70 i 43531 1:13:20 Err codemadness.org 70 i 43532 no Err codemadness.org 70 i 43533 Err codemadness.org 70 i 43534 OpenBSD on Microsoft Surface Go, FreeBSD Foundation August Update, What’s taking so long with Project Trident, pkgsrc config file versioning, and MacOS remnants in ZFS code. Err codemadness.org 70 i 43535 <p>##Headlines<br> Err codemadness.org 70 i 43536 <a href="https://jcs.org/2018/08/31/surface_go">OpenBSD on the Microsoft Surface Go</a></p> Err codemadness.org 70 i 43537 <blockquote> Err codemadness.org 70 i 43538 <p>For some reason I like small laptops and the constraints they place on me (as long as they’re still usable). I used a Dell Mini 9 for a long time back in the netbook days and was recently using an 11&quot; MacBook Air as my primary development machine for many years. Recently Microsoft announced a smaller, cheaper version of its Surface tablets called Surface Go which piqued my interest.</p> Err codemadness.org 70 i 43539 </blockquote> Err codemadness.org 70 i 43540 <ul> Err codemadness.org 70 i 43541 <li>Hardware</li> Err codemadness.org 70 i 43542 </ul> Err codemadness.org 70 i 43543 <blockquote> Err codemadness.org 70 i 43544 <p>The Surface Go is available in two hardware configurations: one with 4Gb of RAM and a 64Gb eMMC, and another with 8Gb of RAM with a 128Gb NVMe SSD. (I went with the latter.) Both ship with an Intel Pentium Gold 4415Y processor which is not very fast, but it’s certainly usable.<br> Err codemadness.org 70 i 43545 The tablet measures 9.65&quot; across, 6.9&quot; tall, and 0.3&quot; thick. Its 10&quot; diagonal 3:2 touchscreen is covered with Gorilla Glass and has a resolution of 1800x1200. The bezel is quite large, especially for such a small screen, but it makes sense on a device that is meant to be held, to avoid accidental screen touches.<br> Err codemadness.org 70 i 43546 The keyboard and touchpad are located on a separate, removable slab called the Surface Go Signature Type Cover which is sold separately. I opted for the “cobalt blue” cover which has a soft, cloth-like alcantara material. The cover attaches magnetically along the bottom edge of the device and presents USB-attached keyboard and touchpad devices. When the cover is folded up against the screen, it sends an ACPI sleep signal and is held to the screen magnetically. During normal use, the cover can be positioned flat on a surface or slightly raised up about 3/4&quot; near the screen for better ergonomics. When using the device as a tablet, the cover can be rotated behind the screen which causes it to automatically stop sending keyboard and touchpad events until it is rotated back around.<br> Err codemadness.org 70 i 43547 The keyboard has a decent amount of key travel and a good layout, with Home/End/Page Up/Page Down being accessible via Fn+Left/Right/Up/Down but also dedicated Home/End/Page Up/Page Down keys on the F9-F12 keys which I find quite useful since the keyboard layout is somewhat small. By default, the F1-F12 keys do not send F1-F12 key codes and Fn must be used, either held down temporarily or Fn pressed by itself to enable Fn-lock which annoyingly keeps the bright Fn LED illuminated. The keys are backlit with three levels of adjustment, handled by the keyboard itself with the F7 key.<br> Err codemadness.org 70 i 43548 The touchpad on the Type Cover is a Windows Precision Touchpad connected via USB HID. It has a decent click feel but when the cover is angled up instead of flat on a surface, it sounds a bit hollow and cheap.</p> Err codemadness.org 70 i 43549 </blockquote> Err codemadness.org 70 i 43550 <ul> Err codemadness.org 70 i 43551 <li>Surface Go Pen</li> Err codemadness.org 70 i 43552 </ul> Err codemadness.org 70 i 43553 <blockquote> Err codemadness.org 70 i 43554 <p>The touchscreen is powered by an Elantech chip connected via HID-over-i2c, which also supports pen input. A Surface Pen digitizer is available separately from Microsoft and comes in the same colors as the Type Covers. The pen works without any pairing necessary, though the top button on it works over Bluetooth so it requires pairing to use. Either way, the pen requires an AAAA battery inside it to operate. The Surface Pen can attach magnetically to the left side of the screen when not in use.<br> Err codemadness.org 70 i 43555 A kickstand can swing out behind the display to use the tablet in a laptop form factor, which can adjust to any angle up to about 170 degrees. The kickstand stays firmly in place wherever it is positioned, which also means it requires a bit of force to pull it out when initially placing the Surface Go on a desk.<br> Err codemadness.org 70 i 43556 Along the top of the display are a power button and physical volume rocker buttons. Along the right side are the 3.5mm headphone jack, USB-C port, power port, and microSD card slot located behind the kickstand.<br> Err codemadness.org 70 i 43557 Charging can be done via USB-C or the dedicated charge port, which accommodates a magnetically-attached, thin barrel similar to Apple’s first generation MagSafe adapter. The charging cable has a white LED that glows when connected, which is kind of annoying since it’s near the mid-line of the screen rather than down by the keyboard. Unlike Apple’s MagSafe, the indicator light does not indicate whether the battery is charged or not. The barrel charger plug can be placed up or down, but in either direction I find it puts an awkward strain on the power cable coming out of it due to the vertical position of the port.<br> Err codemadness.org 70 i 43558 Wireless connectivity is provided by a Qualcomm Atheros QCA6174 802.11ac chip which also provides Bluetooth connectivity.<br> Err codemadness.org 70 i 43559 Most of the sensors on the device such as the gyroscope and ambient light sensor are connected behind an Intel Sensor Hub PCI device, which provides some power savings as the host CPU doesn’t have to poll the sensors all the time.</p> Err codemadness.org 70 i 43560 </blockquote> Err codemadness.org 70 i 43561 <ul> Err codemadness.org 70 i 43562 <li>Firmware</li> Err codemadness.org 70 i 43563 </ul> Err codemadness.org 70 i 43564 <blockquote> Err codemadness.org 70 i 43565 <p>The Surface Go’s BIOS/firmware menu can be entered by holding down the Volume Up button, then pressing and releasing the Power button, and releasing Volume Up when the menu appears. Secure Boot as well as various hardware components can be disabled in this menu. Boot order can also be adjusted. A temporary boot menu can be brought up the same way but using Volume Down instead.</p> Err codemadness.org 70 i 43566 </blockquote> Err codemadness.org 70 i 43567 <hr> Err codemadness.org 70 i 43568 <p>###<a href="https://www.freebsdfoundation.org/news-and-events/newsletter/freebsd-foundation-update-august-2018/">FreeBSD Foundation Update, August 2018</a></p> Err codemadness.org 70 i 43569 <ul> Err codemadness.org 70 i 43570 <li>MESSAGE FROM THE EXECUTIVE DIRECTOR</li> Err codemadness.org 70 i 43571 </ul> Err codemadness.org 70 i 43572 <blockquote> Err codemadness.org 70 i 43573 <p>Dear FreeBSD Community Member,<br> Err codemadness.org 70 i 43574 It’s been a busy summer for the Foundation. From traveling around the globe spreading the word about FreeBSD to bringing on new team members to improve the Project’s Continuous Integration work, we’re very excited about what we’ve accomplished. Take a minute to check out the latest updates within our Foundation sponsored projects; read more about our advocacy efforts in Bangladesh and community building in Cambridge; don’t miss upcoming Travel Grant deadlines, and new Developer Summits; and be sure to find out how your support will ensure our progress continues into 2019.<br> Err codemadness.org 70 i 43575 We can’t do this without you! Happy reading!! Deb</p> Err codemadness.org 70 i 43576 </blockquote> Err codemadness.org 70 i 43577 <ul> Err codemadness.org 70 i 43578 <li>August 2018 Development Projects Update</li> Err codemadness.org 70 i 43579 <li>Fundraising Update: Supporting the Project</li> Err codemadness.org 70 i 43580 <li>August 2018 Release Engineering Update</li> Err codemadness.org 70 i 43581 <li>BSDCam 2018 Recap</li> Err codemadness.org 70 i 43582 <li>October 2018 FreeBSD Developer Summit Call for Participation</li> Err codemadness.org 70 i 43583 <li>SANOG32 and COSCUP 2018 Recap</li> Err codemadness.org 70 i 43584 <li>MeetBSD 2018 Travel Grant Application Deadline: September 7</li> Err codemadness.org 70 i 43585 </ul> Err codemadness.org 70 i 43586 <hr> Err codemadness.org 70 i 43587 <p>##News Roundup<br> Err codemadness.org 70 i 43588 <a href="http://project-trident.org/post/2018-09-04_what_is_taking_so_long/">Project Trident: What’s taking so long?</a></p> Err codemadness.org 70 i 43589 <ul> Err codemadness.org 70 i 43590 <li>What is taking so long?</li> Err codemadness.org 70 i 43591 </ul> Err codemadness.org 70 i 43592 <blockquote> Err codemadness.org 70 i 43593 <p>The short answer is that it’s complicated.<br> Err codemadness.org 70 i 43594 Project Trident is quite literally a test of the new TrueOS build system. As expected, there have been quite a few bugs, undocumented features, and other optional bits that we discovered we needed that were not initially present. All of these things have to be addressed and retested in a constant back and forth process.<br> Err codemadness.org 70 i 43595 While Ken and JT are both experienced developers, neither has done this kind of release engineering before. JT has done some release engineering back in his Linux days, but the TrueOS and FreeBSD build system is very different. Both Ken and JT are learning a completely new way of building a FreeBSD/TrueOS distribution. Please keep in mind that no one has used this new TrueOS build system before, so Ken and JT want to not only provide a good Trident release, but also provide a model or template for other potential TrueOS distributions too!</p> Err codemadness.org 70 i 43596 </blockquote> Err codemadness.org 70 i 43597 <ul> Err codemadness.org 70 i 43598 <li>Where are we now?</li> Err codemadness.org 70 i 43599 </ul> Err codemadness.org 70 i 43600 <blockquote> Err codemadness.org 70 i 43601 <p>Through perseverance, trial and error, and a lot of head-scratching we have reached the point of having successful builds. It took a while to get there, but now we are simply working out a few bugs with the new installer that Ken wrote as well as finding and fixing all the new Xorg configuration options which recently landed in FreeBSD. We also found that a number of services have been removed or replaced between TrueOS 18.03 and 18.06 so we are needing to adjust what we consider the “base” services for the desktop. All of these issues are being resolved and we are continually rebuilding and pulling in new patches from TrueOS as soon as they are committed.<br> Err codemadness.org 70 i 43602 In the meantime we have made an early BETA release of Trident available to the users in our Telegram Channel for those who want to help out in testing these early versions.</p> Err codemadness.org 70 i 43603 </blockquote> Err codemadness.org 70 i 43604 <ul> Err codemadness.org 70 i 43605 <li>Do you foresee any other delays?</li> Err codemadness.org 70 i 43606 </ul> Err codemadness.org 70 i 43607 <blockquote> Err codemadness.org 70 i 43608 <p>At the moment we are doing many iterations of testing and tweaking the install ISO and package configurations in order to ensure that all the critical functionality works out-of-box (networking, sound, video, basic apps, etc). While we do not foresee any other major delays, sometimes things happen that our outside of our control. For an example, one of the recent delays that hit recently was completely unexpected: we had a hard drive failure on our build server. Up until recently, The aptly named “Poseidon” build server was running a Micron m500dc drive, but that drive is now constantly reporting errors. Despite ordering a replacement Western Digital Blue SSD several weeks ago, we just received it this past week. The drive is now installed with the builder back to full functionality, but we did lose many precious days with the delay.<br> Err codemadness.org 70 i 43609 The build server for Project Trident is very similar to the one that JT donated to the TrueOS project. JT had another DL580 G7, so he donated one to the Trident Project for their build server. Poseidon also has 256GB RAM (64 x 4GB sticks) which is a smidge higher than what the TrueOS builder has.<br> Err codemadness.org 70 i 43610 Since we are talking about hardware, we probably should address another question we get often, “What Hardware are the devs testing on?” So let’s go ahead and answer that one now.</p> Err codemadness.org 70 i 43611 </blockquote> Err codemadness.org 70 i 43612 <ul> Err codemadness.org 70 i 43613 <li> Err codemadness.org 70 i 43614 <p>Developer Hardware</p> Err codemadness.org 70 i 43615 </li> Err codemadness.org 70 i 43616 <li> Err codemadness.org 70 i 43617 <p>JT: His main test box is a custom-built Intel i7 7700K system running 32GB RAM, dual Intel Optane 900P drives, and an Nvidia 1070 GTX with four 4K Acer Monitors. He also uses a Lenovo x250 ThinkPad alongside a desk full of x230t and x220 ThinkPads. One of which he gave away at SouthEast LinuxFest this year, which you can read about here. However it’s not done there, being a complete hardware hoarder, JT also tests on several Intel NUCs and his second laptop a Fujitsu t904, not to mention a Plethora of HP DL580 servers, a DL980 server, and a stack of BL485c, BL460c, and BL490c Blades in his HP c7000 and c3000 Bladecenter chassis. (Maybe it’s time for an intervention for his hardware collecting habits)</p> Err codemadness.org 70 i 43618 </li> Err codemadness.org 70 i 43619 <li> Err codemadness.org 70 i 43620 <p>Ken: For a laptop, he primarily uses a 3rd generation X1 Carbon, but also has an old Eee PC T101MT Netbook (dual core 1GHz, 2GB of memory) which he uses for verifying how well Trident works on low-end hardware. As far as workstations go, his office computer is an Intel i7 with an NVIDIA Geforce GTX 960 running three 4K monitors and he has a couple other custom-built workstations (1 AMD, 1 Intel+NVIDIA) at his home. Generally he assembled random workstations based on hardware that was given to him or that he could acquire cheap.</p> Err codemadness.org 70 i 43621 </li> Err codemadness.org 70 i 43622 <li> Err codemadness.org 70 i 43623 <p>Tim: is using a third gen X1 Carbon and a custom built desktop with an Intel Core i5-4440 CPU, 16 GiB RAM, Nvidia GeForce GTX 750 Ti, and a RealTek 8168 / 8111 network card.</p> Err codemadness.org 70 i 43624 </li> Err codemadness.org 70 i 43625 <li> Err codemadness.org 70 i 43626 <p>Rod: Rod uses… No one knows what Rod uses, It’s kinda like how many licks does it take to get to the center of a Tootsie-Roll Tootsie-Pop… the world may just never know.</p> Err codemadness.org 70 i 43627 </li> Err codemadness.org 70 i 43628 </ul> Err codemadness.org 70 i 43629 <hr> Err codemadness.org 70 i 43630 <p>###NetBSD GSoC: pkgsrc config file versioning</p> Err codemadness.org 70 i 43631 <ul> Err codemadness.org 70 i 43632 <li>A series of reports from the course of the summer on this Google Summer of Code project</li> Err codemadness.org 70 i 43633 <li>The goal of the project is to integrate with a VCS (Version Control System) to make managing local changes to config files for packages easier</li> Err codemadness.org 70 i 43634 <li><a href="https://blog.netbsd.org/tnf/entry/gsoc_2018_reports_configuration_files">GSoC 2018 Reports: Configuration files versioning in pkgsrc, Part 1</a></li> Err codemadness.org 70 i 43635 </ul> Err codemadness.org 70 i 43636 <blockquote> Err codemadness.org 70 i 43637 <p>Packages may install code (both machine executable code and interpreted programs), documentation and manual pages, source headers, shared libraries and other resources such as graphic elements, sounds, fonts, document templates, translations and configuration files, or a combination of them.<br> Err codemadness.org 70 i 43638 Configuration files are usually the means through which the behaviour of software without a user interface is specified. This covers parts of the operating systems, network daemons and programs in general that don’t come with an interactive graphical or textual interface as the principal mean for setting options.<br> Err codemadness.org 70 i 43639 System wide configuration for operating system software tends to be kept under /etc, while configuration for software installed via pkgsrc ends up under LOCALBASE/etc (e.g., /usr/pkg/etc).<br> Err codemadness.org 70 i 43640 Software packaged as part of pkgsrc provides example configuration files, if any, which usually get extracted to LOCALBASE/share/examples/PKGBASE/.<br> Err codemadness.org 70 i 43641 Don’t worry: automatic merging is disabled by default, set $VCSAUTOMERGE to enable it.<br> Err codemadness.org 70 i 43642 In order to avoid breakage, installed configuration is backed up first in the VCS, separating user-modified files from files that have been already automatically merged in the past, in order to allow the administrator to easily restore the last manually edited file in case of breakage.<br> Err codemadness.org 70 i 43643 VCS functionality only applies to configuration files, not to rc.d scripts, and only if the environment variable $NOVCS is unset.<br> Err codemadness.org 70 i 43644 The version control system to be used as a backend can be set through $VCS. It default to RCS, the Revision Control System, which works only locally and doesn’t support atomic transactions.<br> Err codemadness.org 70 i 43645 Other backends such as CVS are supported and more will come; these, being used at the explicit request of the administrator, need to be already installed and placed in a directory part of $PATH.</p> Err codemadness.org 70 i 43646 </blockquote> Err codemadness.org 70 i 43647 <ul> Err codemadness.org 70 i 43648 <li><a href="https://blog.netbsd.org/tnf/entry/gsoc_2018_reports_configuration_files1">GSoC 2018 Reports: Configuration files versioning in pkgsrc, part 2: remote repositories (git and CVS)</a></li> Err codemadness.org 70 i 43649 </ul> Err codemadness.org 70 i 43650 <blockquote> Err codemadness.org 70 i 43651 <p>pkgsrc is now able to deploy configuration from packages being installed from a remote, site-specific vcs repository.<br> Err codemadness.org 70 i 43652 User modified files are always tracked even if automerge functionality is not enabled, and a new tool, pkgconftrack(1), exists to manually store user changes made outside of package upgrade time.<br> Err codemadness.org 70 i 43653 Version Control software is executed as the same user running pkgadd or make install, unless the user is “root”. In this case, a separate, unprivileged user, pkgvcsconf, gets created with its own home directory and a working login shell (but no password). The home directory is not strictly necessary, it exists to facilitate migrations betweens repositories and vcs changes; it also serves to store keys used to access remote repositories.<br> Err codemadness.org 70 i 43654 Using git instead of rcs is simply done by setting VCS=git in pkginstall.conf</p> Err codemadness.org 70 i 43655 </blockquote> Err codemadness.org 70 i 43656 <ul> Err codemadness.org 70 i 43657 <li><a href="https://blog.netbsd.org/tnf/entry/gsoc_2018_reports_configuration_files2">GSoC 2018 Reports: Configuration files versioning in pkgsrc, part 3: remote repositories (SVN and Mercurial)</a></li> Err codemadness.org 70 i 43658 <li><a href="https://blog.netbsd.org/tnf/entry/gsoc_2018_reports_configuration_files3">GSoC 2018 Reports: Configuration files versioning in pkgsrc, part 4: configuration deployment, pkgtools and future improvements</a></li> Err codemadness.org 70 i 43659 </ul> Err codemadness.org 70 i 43660 <blockquote> Err codemadness.org 70 i 43661 <p>Support for configuration tracking is in scripts, pkginstall scripts, that get built into binary packages and are run by pkgadd upon installation. The idea behind the proposal suggested that users of the new feature should be able to store revisions of their installed configuration files, and of package-provided default, both in local or remote repositories. With this capability in place, it doesn’t take much to make the scripts “pull” configuration from a VCS repository at installation time.<br> Err codemadness.org 70 i 43662 That’s what setting VCSCONFPULL=yes in pkginstall.conf after having enabled VCSTRACKCONF does: You are free to use official, third party prebuilt packages that have no customization in them, enable these options, and point pkgsrc to a private conf repository. If it contains custom configuration for the software you are installing, an attempt will be made to use it and install it on your system. If it fails, pkginstall will fall back to using the defaults that come inside the package. RC scripts are always deployed from the binary package, if existing and PKGRCDSCRIPTS=yes in pkginstall.conf or the environment.<br> Err codemadness.org 70 i 43663 This will be part of packages, not a separate solution like configuration management tools. It doesn’t support running scripts on the target system to customize the installation, it doesn’t come with its domain-specific language, it won’t run as a daemon or require remote logins to work. It’s quite limited in scope, but you can define a ROLE for your system in pkginstall.conf or in the environment, and pkgsrc will look for configuration you or your organization crafted for such a role (e.g., public, standalone webserver vs reverse proxy or node in a database cluster)</p> Err codemadness.org 70 i 43664 </blockquote> Err codemadness.org 70 i 43665 <hr> Err codemadness.org 70 i 43666 <p>###<a href="https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSDTypeAndMacOS">A little bit of the one-time MacOS version still lingers in ZFS</a></p> Err codemadness.org 70 i 43667 <blockquote> Err codemadness.org 70 i 43668 <p>Once upon a time, Apple came very close to releasing ZFS as part of MacOS. Apple did this work in its own copy of the ZFS source base (as far as I know), but the people in Sun knew about it and it turns out that even today there is one little lingering sign of this hoped-for and perhaps prepared-for ZFS port in the ZFS source code. Well, sort of, because it’s not quite in code.<br> Err codemadness.org 70 i 43669 Lurking in the function that reads ZFS directories to turn (ZFS) directory entries into the filesystem independent format that the kernel wants is the following comment:</p> Err codemadness.org 70 i 43670 </blockquote> Err codemadness.org 70 i 43671 <p><code>objnum = ZFSDIRENTOBJ(zap.zafirstinteger);</code><br> Err codemadness.org 70 i 43672 <code>/</code><br> Err codemadness.org 70 i 43673 <code> MacOS X can extract the object type here such as:</code><br> Err codemadness.org 70 i 43674 <code>* uint8t type = ZFSDIRENTTYPE(zap.zafirstinteger);</code><br> Err codemadness.org 70 i 43675 <code>*/</code></p> Err codemadness.org 70 i 43676 <ul> Err codemadness.org 70 i 43677 <li>Specifically, this is in zfsreaddir in zfsvnops.c .</li> Err codemadness.org 70 i 43678 </ul> Err codemadness.org 70 i 43679 <blockquote> Err codemadness.org 70 i 43680 <p>ZFS maintains file type information in directories. This information can’t be used on Solaris (and thus Illumos), where the overall kernel doesn’t have this in its filesystem independent directory entry format, but it could have been on MacOS (‘Darwin’), because MacOS is among the Unixes that support d_type. The comment itself dates all the way back to this 2007 commit, which includes the change ‘reserve bits in directory entry for file type’, which created the whole setup for this.<br> Err codemadness.org 70 i 43681 I don’t know if this file type support was added specifically to help out Apple’s MacOS X port of ZFS, but it’s certainly possible, and in 2007 it seems likely that this port was at least on the minds of ZFS developers. It’s interesting but understandable that FreeBSD didn’t seem to have influenced them in the same way, at least as far as comments in the source code go; this file type support is equally useful for FreeBSD, and the FreeBSD ZFS port dates to 2007 too (per this announcement).<br> Err codemadness.org 70 i 43682 Regardless of the exact reason that ZFS picked up maintaining file type information in directory entries, it’s quite useful for people on both FreeBSD and Linux that it does so. File type information is useful for any number of things and ZFS filesystems can (and do) provide this information on those Unixes, which helps make ZFS feel like a truly first class filesystem, one that supports all of the expected general system features.</p> Err codemadness.org 70 i 43683 </blockquote> Err codemadness.org 70 i 43684 <hr> Err codemadness.org 70 i 43685 <p>##Beastie Bits</p> Err codemadness.org 70 i 43686 <ul> Err codemadness.org 70 i 43687 <li><a href="http://trafyx.com/?p=2551">Mac-like FreeBSD Laptop</a></li> Err codemadness.org 70 i 43688 <li><a href="https://vermaden.wordpress.com/2018/08/21/syncthing-on-freebsd/">Syncthing on FreeBSD</a></li> Err codemadness.org 70 i 43689 <li><a href="https://vermaden.wordpress.com/2018/08/24/new-zfs-boot-environments-tool/">New ZFS Boot Environments Tool</a></li> Err codemadness.org 70 i 43690 <li><a href="http://anadoxin.org/blog/my-systems-time-was-so-wrong-that-even-ntpd-didnt-work.html">My system’s time was so wrong, that even ntpd didn’t work</a></li> Err codemadness.org 70 i 43691 <li><a href="https://www.openssh.com/releasenotes.html#7.8">OpenSSH 7.8/7.8p1 (2018-08-24)</a></li> Err codemadness.org 70 i 43692 <li><a href="https://2018.eurobsdcon.org/registration/">EuroBSD (Sept 20-23rd) registration Early Bird Period is coming to an end</a></li> Err codemadness.org 70 i 43693 <li><a href="https://www.meetbsd.com/">MeetBSD (Oct 18-20th) is coming up fast, hurry up and register!</a></li> Err codemadness.org 70 i 43694 <li><a href="https://2019.asiabsdcon.org/">AsiaBSDcon 2019 Dates</a></li> Err codemadness.org 70 i 43695 </ul> Err codemadness.org 70 i 43696 <hr> Err codemadness.org 70 i 43697 <p>##Feedback/Questions</p> Err codemadness.org 70 i 43698 <ul> Err codemadness.org 70 i 43699 <li>Will - <a href="http://dpaste.com/2EQMHXV">Kudos and a Question</a></li> Err codemadness.org 70 i 43700 <li>Peter - <a href="http://dpaste.com/2N6DC6P#wrap">Fanless Computers</a></li> Err codemadness.org 70 i 43701 <li>Ron - <a href="http://dpaste.com/0MRG11V#wrap">ZFS disk clone or replace or something</a></li> Err codemadness.org 70 i 43702 <li>Bostjan - <a href="http://dpaste.com/16B1WDB">ZFS Record Size</a></li> Err codemadness.org 70 i 43703 </ul> Err codemadness.org 70 i 43704 <hr> Err codemadness.org 70 i 43705 <ul> Err codemadness.org 70 i 43706 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 43707 </ul> Err codemadness.org 70 i 43708 <hr> Err codemadness.org 70 i 43709 Err codemadness.org 70 i 43710 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 43711 Err codemadness.org 70 i 43712 OpenBSD on Microsoft Surface Go, FreeBSD Foundation August Update, What’s taking so long with Project Trident, pkgsrc config file versioning, and MacOS remnants in ZFS code.

Err codemadness.org 70 i 43713 Err codemadness.org 70 i 43714

##Headlines
Err codemadness.org 70 i 43715 ###OpenBSD on the Microsoft Surface Go

Err codemadness.org 70 i 43716 Err codemadness.org 70 i 43717
Err codemadness.org 70 i 43718

For some reason I like small laptops and the constraints they place on me (as long as they’re still usable). I used a Dell Mini 9 for a long time back in the netbook days and was recently using an 11" MacBook Air as my primary development machine for many years. Recently Microsoft announced a smaller, cheaper version of its Surface tablets called Surface Go which piqued my interest.

Err codemadness.org 70 i 43719
Err codemadness.org 70 i 43720 Err codemadness.org 70 i 43721
    Err codemadness.org 70 i 43722
  • Hardware
  • Err codemadness.org 70 i 43723
Err codemadness.org 70 i 43724 Err codemadness.org 70 i 43725
Err codemadness.org 70 i 43726

The Surface Go is available in two hardware configurations: one with 4Gb of RAM and a 64Gb eMMC, and another with 8Gb of RAM with a 128Gb NVMe SSD. (I went with the latter.) Both ship with an Intel Pentium Gold 4415Y processor which is not very fast, but it’s certainly usable.
Err codemadness.org 70 i 43727 The tablet measures 9.65" across, 6.9" tall, and 0.3" thick. Its 10" diagonal 3:2 touchscreen is covered with Gorilla Glass and has a resolution of 1800x1200. The bezel is quite large, especially for such a small screen, but it makes sense on a device that is meant to be held, to avoid accidental screen touches.
Err codemadness.org 70 i 43728 The keyboard and touchpad are located on a separate, removable slab called the Surface Go Signature Type Cover which is sold separately. I opted for the “cobalt blue” cover which has a soft, cloth-like alcantara material. The cover attaches magnetically along the bottom edge of the device and presents USB-attached keyboard and touchpad devices. When the cover is folded up against the screen, it sends an ACPI sleep signal and is held to the screen magnetically. During normal use, the cover can be positioned flat on a surface or slightly raised up about 3/4" near the screen for better ergonomics. When using the device as a tablet, the cover can be rotated behind the screen which causes it to automatically stop sending keyboard and touchpad events until it is rotated back around.
Err codemadness.org 70 i 43729 The keyboard has a decent amount of key travel and a good layout, with Home/End/Page Up/Page Down being accessible via Fn+Left/Right/Up/Down but also dedicated Home/End/Page Up/Page Down keys on the F9-F12 keys which I find quite useful since the keyboard layout is somewhat small. By default, the F1-F12 keys do not send F1-F12 key codes and Fn must be used, either held down temporarily or Fn pressed by itself to enable Fn-lock which annoyingly keeps the bright Fn LED illuminated. The keys are backlit with three levels of adjustment, handled by the keyboard itself with the F7 key.
Err codemadness.org 70 i 43730 The touchpad on the Type Cover is a Windows Precision Touchpad connected via USB HID. It has a decent click feel but when the cover is angled up instead of flat on a surface, it sounds a bit hollow and cheap.

Err codemadness.org 70 i 43731
Err codemadness.org 70 i 43732 Err codemadness.org 70 i 43733
    Err codemadness.org 70 i 43734
  • Surface Go Pen
  • Err codemadness.org 70 i 43735
Err codemadness.org 70 i 43736 Err codemadness.org 70 i 43737
Err codemadness.org 70 i 43738

The touchscreen is powered by an Elantech chip connected via HID-over-i2c, which also supports pen input. A Surface Pen digitizer is available separately from Microsoft and comes in the same colors as the Type Covers. The pen works without any pairing necessary, though the top button on it works over Bluetooth so it requires pairing to use. Either way, the pen requires an AAAA battery inside it to operate. The Surface Pen can attach magnetically to the left side of the screen when not in use.
Err codemadness.org 70 i 43739 A kickstand can swing out behind the display to use the tablet in a laptop form factor, which can adjust to any angle up to about 170 degrees. The kickstand stays firmly in place wherever it is positioned, which also means it requires a bit of force to pull it out when initially placing the Surface Go on a desk.
Err codemadness.org 70 i 43740 Along the top of the display are a power button and physical volume rocker buttons. Along the right side are the 3.5mm headphone jack, USB-C port, power port, and microSD card slot located behind the kickstand.
Err codemadness.org 70 i 43741 Charging can be done via USB-C or the dedicated charge port, which accommodates a magnetically-attached, thin barrel similar to Apple’s first generation MagSafe adapter. The charging cable has a white LED that glows when connected, which is kind of annoying since it’s near the mid-line of the screen rather than down by the keyboard. Unlike Apple’s MagSafe, the indicator light does not indicate whether the battery is charged or not. The barrel charger plug can be placed up or down, but in either direction I find it puts an awkward strain on the power cable coming out of it due to the vertical position of the port.
Err codemadness.org 70 i 43742 Wireless connectivity is provided by a Qualcomm Atheros QCA6174 802.11ac chip which also provides Bluetooth connectivity.
Err codemadness.org 70 i 43743 Most of the sensors on the device such as the gyroscope and ambient light sensor are connected behind an Intel Sensor Hub PCI device, which provides some power savings as the host CPU doesn’t have to poll the sensors all the time.

Err codemadness.org 70 i 43744
Err codemadness.org 70 i 43745 Err codemadness.org 70 i 43746
    Err codemadness.org 70 i 43747
  • Firmware
  • Err codemadness.org 70 i 43748
Err codemadness.org 70 i 43749 Err codemadness.org 70 i 43750
Err codemadness.org 70 i 43751

The Surface Go’s BIOS/firmware menu can be entered by holding down the Volume Up button, then pressing and releasing the Power button, and releasing Volume Up when the menu appears. Secure Boot as well as various hardware components can be disabled in this menu. Boot order can also be adjusted. A temporary boot menu can be brought up the same way but using Volume Down instead.

Err codemadness.org 70 i 43752
Err codemadness.org 70 i 43753 Err codemadness.org 70 i 43754


Err codemadness.org 70 i 43755 Err codemadness.org 70 i 43756

###FreeBSD Foundation Update, August 2018

Err codemadness.org 70 i 43757 Err codemadness.org 70 i 43758
    Err codemadness.org 70 i 43759
  • MESSAGE FROM THE EXECUTIVE DIRECTOR
  • Err codemadness.org 70 i 43760
Err codemadness.org 70 i 43761 Err codemadness.org 70 i 43762
Err codemadness.org 70 i 43763

Dear FreeBSD Community Member,
Err codemadness.org 70 i 43764 It’s been a busy summer for the Foundation. From traveling around the globe spreading the word about FreeBSD to bringing on new team members to improve the Project’s Continuous Integration work, we’re very excited about what we’ve accomplished. Take a minute to check out the latest updates within our Foundation sponsored projects; read more about our advocacy efforts in Bangladesh and community building in Cambridge; don’t miss upcoming Travel Grant deadlines, and new Developer Summits; and be sure to find out how your support will ensure our progress continues into 2019.
Err codemadness.org 70 i 43765 We can’t do this without you! Happy reading!! Deb

Err codemadness.org 70 i 43766
Err codemadness.org 70 i 43767 Err codemadness.org 70 i 43768
    Err codemadness.org 70 i 43769
  • August 2018 Development Projects Update
  • Err codemadness.org 70 i 43770
  • Fundraising Update: Supporting the Project
  • Err codemadness.org 70 i 43771
  • August 2018 Release Engineering Update
  • Err codemadness.org 70 i 43772
  • BSDCam 2018 Recap
  • Err codemadness.org 70 i 43773
  • October 2018 FreeBSD Developer Summit Call for Participation
  • Err codemadness.org 70 i 43774
  • SANOG32 and COSCUP 2018 Recap
  • Err codemadness.org 70 i 43775
  • MeetBSD 2018 Travel Grant Application Deadline: September 7
  • Err codemadness.org 70 i 43776
Err codemadness.org 70 i 43777 Err codemadness.org 70 i 43778


Err codemadness.org 70 i 43779 Err codemadness.org 70 i 43780

##News Roundup
Err codemadness.org 70 i 43781 ###Project Trident: What’s taking so long?

Err codemadness.org 70 i 43782 Err codemadness.org 70 i 43783
    Err codemadness.org 70 i 43784
  • What is taking so long?
  • Err codemadness.org 70 i 43785
Err codemadness.org 70 i 43786 Err codemadness.org 70 i 43787
Err codemadness.org 70 i 43788

The short answer is that it’s complicated.
Err codemadness.org 70 i 43789 Project Trident is quite literally a test of the new TrueOS build system. As expected, there have been quite a few bugs, undocumented features, and other optional bits that we discovered we needed that were not initially present. All of these things have to be addressed and retested in a constant back and forth process.
Err codemadness.org 70 i 43790 While Ken and JT are both experienced developers, neither has done this kind of release engineering before. JT has done some release engineering back in his Linux days, but the TrueOS and FreeBSD build system is very different. Both Ken and JT are learning a completely new way of building a FreeBSD/TrueOS distribution. Please keep in mind that no one has used this new TrueOS build system before, so Ken and JT want to not only provide a good Trident release, but also provide a model or template for other potential TrueOS distributions too!

Err codemadness.org 70 i 43791
Err codemadness.org 70 i 43792 Err codemadness.org 70 i 43793
    Err codemadness.org 70 i 43794
  • Where are we now?
  • Err codemadness.org 70 i 43795
Err codemadness.org 70 i 43796 Err codemadness.org 70 i 43797
Err codemadness.org 70 i 43798

Through perseverance, trial and error, and a lot of head-scratching we have reached the point of having successful builds. It took a while to get there, but now we are simply working out a few bugs with the new installer that Ken wrote as well as finding and fixing all the new Xorg configuration options which recently landed in FreeBSD. We also found that a number of services have been removed or replaced between TrueOS 18.03 and 18.06 so we are needing to adjust what we consider the “base” services for the desktop. All of these issues are being resolved and we are continually rebuilding and pulling in new patches from TrueOS as soon as they are committed.
Err codemadness.org 70 i 43799 In the meantime we have made an early BETA release of Trident available to the users in our Telegram Channel for those who want to help out in testing these early versions.

Err codemadness.org 70 i 43800
Err codemadness.org 70 i 43801 Err codemadness.org 70 i 43802
    Err codemadness.org 70 i 43803
  • Do you foresee any other delays?
  • Err codemadness.org 70 i 43804
Err codemadness.org 70 i 43805 Err codemadness.org 70 i 43806
Err codemadness.org 70 i 43807

At the moment we are doing many iterations of testing and tweaking the install ISO and package configurations in order to ensure that all the critical functionality works out-of-box (networking, sound, video, basic apps, etc). While we do not foresee any other major delays, sometimes things happen that our outside of our control. For an example, one of the recent delays that hit recently was completely unexpected: we had a hard drive failure on our build server. Up until recently, The aptly named “Poseidon” build server was running a Micron m500dc drive, but that drive is now constantly reporting errors. Despite ordering a replacement Western Digital Blue SSD several weeks ago, we just received it this past week. The drive is now installed with the builder back to full functionality, but we did lose many precious days with the delay.
Err codemadness.org 70 i 43808 The build server for Project Trident is very similar to the one that JT donated to the TrueOS project. JT had another DL580 G7, so he donated one to the Trident Project for their build server. Poseidon also has 256GB RAM (64 x 4GB sticks) which is a smidge higher than what the TrueOS builder has.
Err codemadness.org 70 i 43809 Since we are talking about hardware, we probably should address another question we get often, “What Hardware are the devs testing on?” So let’s go ahead and answer that one now.

Err codemadness.org 70 i 43810
Err codemadness.org 70 i 43811 Err codemadness.org 70 i 43812
    Err codemadness.org 70 i 43813
  • Err codemadness.org 70 i 43814

    Developer Hardware

    Err codemadness.org 70 i 43815
  • Err codemadness.org 70 i 43816
  • Err codemadness.org 70 i 43817

    JT: His main test box is a custom-built Intel i7 7700K system running 32GB RAM, dual Intel Optane 900P drives, and an Nvidia 1070 GTX with four 4K Acer Monitors. He also uses a Lenovo x250 ThinkPad alongside a desk full of x230t and x220 ThinkPads. One of which he gave away at SouthEast LinuxFest this year, which you can read about here. However it’s not done there, being a complete hardware hoarder, JT also tests on several Intel NUCs and his second laptop a Fujitsu t904, not to mention a Plethora of HP DL580 servers, a DL980 server, and a stack of BL485c, BL460c, and BL490c Blades in his HP c7000 and c3000 Bladecenter chassis. (Maybe it’s time for an intervention for his hardware collecting habits)

    Err codemadness.org 70 i 43818
  • Err codemadness.org 70 i 43819
  • Err codemadness.org 70 i 43820

    Ken: For a laptop, he primarily uses a 3rd generation X1 Carbon, but also has an old Eee PC T101MT Netbook (dual core 1GHz, 2GB of memory) which he uses for verifying how well Trident works on low-end hardware. As far as workstations go, his office computer is an Intel i7 with an NVIDIA Geforce GTX 960 running three 4K monitors and he has a couple other custom-built workstations (1 AMD, 1 Intel+NVIDIA) at his home. Generally he assembled random workstations based on hardware that was given to him or that he could acquire cheap.

    Err codemadness.org 70 i 43821
  • Err codemadness.org 70 i 43822
  • Err codemadness.org 70 i 43823

    Tim: is using a third gen X1 Carbon and a custom built desktop with an Intel Core i5-4440 CPU, 16 GiB RAM, Nvidia GeForce GTX 750 Ti, and a RealTek 8168 / 8111 network card.

    Err codemadness.org 70 i 43824
  • Err codemadness.org 70 i 43825
  • Err codemadness.org 70 i 43826

    Rod: Rod uses… No one knows what Rod uses, It’s kinda like how many licks does it take to get to the center of a Tootsie-Roll Tootsie-Pop… the world may just never know.

    Err codemadness.org 70 i 43827
  • Err codemadness.org 70 i 43828
Err codemadness.org 70 i 43829 Err codemadness.org 70 i 43830


Err codemadness.org 70 i 43831 Err codemadness.org 70 i 43832

###NetBSD GSoC: pkgsrc config file versioning

Err codemadness.org 70 i 43833 Err codemadness.org 70 i 43834
    Err codemadness.org 70 i 43835
  • A series of reports from the course of the summer on this Google Summer of Code project
  • Err codemadness.org 70 i 43836
  • The goal of the project is to integrate with a VCS (Version Control System) to make managing local changes to config files for packages easier
  • Err codemadness.org 70 i 43837
  • GSoC 2018 Reports: Configuration files versioning in pkgsrc, Part 1
  • Err codemadness.org 70 i 43838
Err codemadness.org 70 i 43839 Err codemadness.org 70 i 43840
Err codemadness.org 70 i 43841

Packages may install code (both machine executable code and interpreted programs), documentation and manual pages, source headers, shared libraries and other resources such as graphic elements, sounds, fonts, document templates, translations and configuration files, or a combination of them.
Err codemadness.org 70 i 43842 Configuration files are usually the means through which the behaviour of software without a user interface is specified. This covers parts of the operating systems, network daemons and programs in general that don’t come with an interactive graphical or textual interface as the principal mean for setting options.
Err codemadness.org 70 i 43843 System wide configuration for operating system software tends to be kept under /etc, while configuration for software installed via pkgsrc ends up under LOCALBASE/etc (e.g., /usr/pkg/etc).
Err codemadness.org 70 i 43844 Software packaged as part of pkgsrc provides example configuration files, if any, which usually get extracted to LOCALBASE/share/examples/PKGBASE/.
Err codemadness.org 70 i 43845 Don’t worry: automatic merging is disabled by default, set $VCSAUTOMERGE to enable it.
Err codemadness.org 70 i 43846 In order to avoid breakage, installed configuration is backed up first in the VCS, separating user-modified files from files that have been already automatically merged in the past, in order to allow the administrator to easily restore the last manually edited file in case of breakage.
Err codemadness.org 70 i 43847 VCS functionality only applies to configuration files, not to rc.d scripts, and only if the environment variable $NOVCS is unset.
Err codemadness.org 70 i 43848 The version control system to be used as a backend can be set through $VCS. It default to RCS, the Revision Control System, which works only locally and doesn’t support atomic transactions.
Err codemadness.org 70 i 43849 Other backends such as CVS are supported and more will come; these, being used at the explicit request of the administrator, need to be already installed and placed in a directory part of $PATH.

Err codemadness.org 70 i 43850
Err codemadness.org 70 i 43851 Err codemadness.org 70 i 43852 Err codemadness.org 70 i 43855 Err codemadness.org 70 i 43856
Err codemadness.org 70 i 43857

pkgsrc is now able to deploy configuration from packages being installed from a remote, site-specific vcs repository.
Err codemadness.org 70 i 43858 User modified files are always tracked even if automerge functionality is not enabled, and a new tool, pkgconftrack(1), exists to manually store user changes made outside of package upgrade time.
Err codemadness.org 70 i 43859 Version Control software is executed as the same user running pkg_add or make install, unless the user is “root”. In this case, a separate, unprivileged user, pkgvcsconf, gets created with its own home directory and a working login shell (but no password). The home directory is not strictly necessary, it exists to facilitate migrations betweens repositories and vcs changes; it also serves to store keys used to access remote repositories.
Err codemadness.org 70 i 43860 Using git instead of rcs is simply done by setting VCS=git in pkg_install.conf

Err codemadness.org 70 i 43861
Err codemadness.org 70 i 43862 Err codemadness.org 70 i 43863 Err codemadness.org 70 i 43867 Err codemadness.org 70 i 43868
Err codemadness.org 70 i 43869

Support for configuration tracking is in scripts, pkginstall scripts, that get built into binary packages and are run by pkg_add upon installation. The idea behind the proposal suggested that users of the new feature should be able to store revisions of their installed configuration files, and of package-provided default, both in local or remote repositories. With this capability in place, it doesn’t take much to make the scripts “pull” configuration from a VCS repository at installation time.
Err codemadness.org 70 i 43870 That’s what setting VCSCONFPULL=yes in pkg_install.conf after having enabled VCSTRACK_CONF does: You are free to use official, third party prebuilt packages that have no customization in them, enable these options, and point pkgsrc to a private conf repository. If it contains custom configuration for the software you are installing, an attempt will be made to use it and install it on your system. If it fails, pkginstall will fall back to using the defaults that come inside the package. RC scripts are always deployed from the binary package, if existing and PKG_RCD_SCRIPTS=yes in pkg_install.conf or the environment.
Err codemadness.org 70 i 43871 This will be part of packages, not a separate solution like configuration management tools. It doesn’t support running scripts on the target system to customize the installation, it doesn’t come with its domain-specific language, it won’t run as a daemon or require remote logins to work. It’s quite limited in scope, but you can define a ROLE for your system in pkg_install.conf or in the environment, and pkgsrc will look for configuration you or your organization crafted for such a role (e.g., public, standalone webserver vs reverse proxy or node in a database cluster)

Err codemadness.org 70 i 43872
Err codemadness.org 70 i 43873 Err codemadness.org 70 i 43874


Err codemadness.org 70 i 43875 Err codemadness.org 70 i 43876

###A little bit of the one-time MacOS version still lingers in ZFS

Err codemadness.org 70 i 43877 Err codemadness.org 70 i 43878
Err codemadness.org 70 i 43879

Once upon a time, Apple came very close to releasing ZFS as part of MacOS. Apple did this work in its own copy of the ZFS source base (as far as I know), but the people in Sun knew about it and it turns out that even today there is one little lingering sign of this hoped-for and perhaps prepared-for ZFS port in the ZFS source code. Well, sort of, because it’s not quite in code.
Err codemadness.org 70 i 43880 Lurking in the function that reads ZFS directories to turn (ZFS) directory entries into the filesystem independent format that the kernel wants is the following comment:

Err codemadness.org 70 i 43881
Err codemadness.org 70 i 43882 Err codemadness.org 70 i 43883

objnum = ZFS_DIRENT_OBJ(zap.za_first_integer);
Err codemadness.org 70 i 43884 /*
Err codemadness.org 70 i 43885 * MacOS X can extract the object type here such as:
Err codemadness.org 70 i 43886 * uint8_t type = ZFS_DIRENT_TYPE(zap.za_first_integer);
Err codemadness.org 70 i 43887 */

Err codemadness.org 70 i 43888 Err codemadness.org 70 i 43889
    Err codemadness.org 70 i 43890
  • Specifically, this is in zfs_readdir in zfs_vnops.c .
  • Err codemadness.org 70 i 43891
Err codemadness.org 70 i 43892 Err codemadness.org 70 i 43893
Err codemadness.org 70 i 43894

ZFS maintains file type information in directories. This information can’t be used on Solaris (and thus Illumos), where the overall kernel doesn’t have this in its filesystem independent directory entry format, but it could have been on MacOS (‘Darwin’), because MacOS is among the Unixes that support d_type. The comment itself dates all the way back to this 2007 commit, which includes the change ‘reserve bits in directory entry for file type’, which created the whole setup for this.
Err codemadness.org 70 i 43895 I don’t know if this file type support was added specifically to help out Apple’s MacOS X port of ZFS, but it’s certainly possible, and in 2007 it seems likely that this port was at least on the minds of ZFS developers. It’s interesting but understandable that FreeBSD didn’t seem to have influenced them in the same way, at least as far as comments in the source code go; this file type support is equally useful for FreeBSD, and the FreeBSD ZFS port dates to 2007 too (per this announcement).
Err codemadness.org 70 i 43896 Regardless of the exact reason that ZFS picked up maintaining file type information in directory entries, it’s quite useful for people on both FreeBSD and Linux that it does so. File type information is useful for any number of things and ZFS filesystems can (and do) provide this information on those Unixes, which helps make ZFS feel like a truly first class filesystem, one that supports all of the expected general system features.

Err codemadness.org 70 i 43897
Err codemadness.org 70 i 43898 Err codemadness.org 70 i 43899


Err codemadness.org 70 i 43900 Err codemadness.org 70 i 43901

##Beastie Bits

Err codemadness.org 70 i 43902 Err codemadness.org 70 i 43903 Err codemadness.org 70 i 43913 Err codemadness.org 70 i 43914


Err codemadness.org 70 i 43915 Err codemadness.org 70 i 43916

##Feedback/Questions

Err codemadness.org 70 i 43917 Err codemadness.org 70 i 43918 Err codemadness.org 70 i 43924 Err codemadness.org 70 i 43925


Err codemadness.org 70 i 43926 Err codemadness.org 70 i 43927
    Err codemadness.org 70 i 43928
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 43929
Err codemadness.org 70 i 43930 Err codemadness.org 70 i 43931


]]> Err codemadness.org 70 i 43932
Err codemadness.org 70 i 43933 Err codemadness.org 70 i 43934 OpenBSD on Microsoft Surface Go, FreeBSD Foundation August Update, What’s taking so long with Project Trident, pkgsrc config file versioning, and MacOS remnants in ZFS code.

Err codemadness.org 70 i 43935 Err codemadness.org 70 i 43936

##Headlines
Err codemadness.org 70 i 43937 ###OpenBSD on the Microsoft Surface Go

Err codemadness.org 70 i 43938 Err codemadness.org 70 i 43939
Err codemadness.org 70 i 43940

For some reason I like small laptops and the constraints they place on me (as long as they’re still usable). I used a Dell Mini 9 for a long time back in the netbook days and was recently using an 11" MacBook Air as my primary development machine for many years. Recently Microsoft announced a smaller, cheaper version of its Surface tablets called Surface Go which piqued my interest.

Err codemadness.org 70 i 43941
Err codemadness.org 70 i 43942 Err codemadness.org 70 i 43943
    Err codemadness.org 70 i 43944
  • Hardware
  • Err codemadness.org 70 i 43945
Err codemadness.org 70 i 43946 Err codemadness.org 70 i 43947
Err codemadness.org 70 i 43948

The Surface Go is available in two hardware configurations: one with 4Gb of RAM and a 64Gb eMMC, and another with 8Gb of RAM with a 128Gb NVMe SSD. (I went with the latter.) Both ship with an Intel Pentium Gold 4415Y processor which is not very fast, but it’s certainly usable.
Err codemadness.org 70 i 43949 The tablet measures 9.65" across, 6.9" tall, and 0.3" thick. Its 10" diagonal 3:2 touchscreen is covered with Gorilla Glass and has a resolution of 1800x1200. The bezel is quite large, especially for such a small screen, but it makes sense on a device that is meant to be held, to avoid accidental screen touches.
Err codemadness.org 70 i 43950 The keyboard and touchpad are located on a separate, removable slab called the Surface Go Signature Type Cover which is sold separately. I opted for the “cobalt blue” cover which has a soft, cloth-like alcantara material. The cover attaches magnetically along the bottom edge of the device and presents USB-attached keyboard and touchpad devices. When the cover is folded up against the screen, it sends an ACPI sleep signal and is held to the screen magnetically. During normal use, the cover can be positioned flat on a surface or slightly raised up about 3/4" near the screen for better ergonomics. When using the device as a tablet, the cover can be rotated behind the screen which causes it to automatically stop sending keyboard and touchpad events until it is rotated back around.
Err codemadness.org 70 i 43951 The keyboard has a decent amount of key travel and a good layout, with Home/End/Page Up/Page Down being accessible via Fn+Left/Right/Up/Down but also dedicated Home/End/Page Up/Page Down keys on the F9-F12 keys which I find quite useful since the keyboard layout is somewhat small. By default, the F1-F12 keys do not send F1-F12 key codes and Fn must be used, either held down temporarily or Fn pressed by itself to enable Fn-lock which annoyingly keeps the bright Fn LED illuminated. The keys are backlit with three levels of adjustment, handled by the keyboard itself with the F7 key.
Err codemadness.org 70 i 43952 The touchpad on the Type Cover is a Windows Precision Touchpad connected via USB HID. It has a decent click feel but when the cover is angled up instead of flat on a surface, it sounds a bit hollow and cheap.

Err codemadness.org 70 i 43953
Err codemadness.org 70 i 43954 Err codemadness.org 70 i 43955
    Err codemadness.org 70 i 43956
  • Surface Go Pen
  • Err codemadness.org 70 i 43957
Err codemadness.org 70 i 43958 Err codemadness.org 70 i 43959
Err codemadness.org 70 i 43960

The touchscreen is powered by an Elantech chip connected via HID-over-i2c, which also supports pen input. A Surface Pen digitizer is available separately from Microsoft and comes in the same colors as the Type Covers. The pen works without any pairing necessary, though the top button on it works over Bluetooth so it requires pairing to use. Either way, the pen requires an AAAA battery inside it to operate. The Surface Pen can attach magnetically to the left side of the screen when not in use.
Err codemadness.org 70 i 43961 A kickstand can swing out behind the display to use the tablet in a laptop form factor, which can adjust to any angle up to about 170 degrees. The kickstand stays firmly in place wherever it is positioned, which also means it requires a bit of force to pull it out when initially placing the Surface Go on a desk.
Err codemadness.org 70 i 43962 Along the top of the display are a power button and physical volume rocker buttons. Along the right side are the 3.5mm headphone jack, USB-C port, power port, and microSD card slot located behind the kickstand.
Err codemadness.org 70 i 43963 Charging can be done via USB-C or the dedicated charge port, which accommodates a magnetically-attached, thin barrel similar to Apple’s first generation MagSafe adapter. The charging cable has a white LED that glows when connected, which is kind of annoying since it’s near the mid-line of the screen rather than down by the keyboard. Unlike Apple’s MagSafe, the indicator light does not indicate whether the battery is charged or not. The barrel charger plug can be placed up or down, but in either direction I find it puts an awkward strain on the power cable coming out of it due to the vertical position of the port.
Err codemadness.org 70 i 43964 Wireless connectivity is provided by a Qualcomm Atheros QCA6174 802.11ac chip which also provides Bluetooth connectivity.
Err codemadness.org 70 i 43965 Most of the sensors on the device such as the gyroscope and ambient light sensor are connected behind an Intel Sensor Hub PCI device, which provides some power savings as the host CPU doesn’t have to poll the sensors all the time.

Err codemadness.org 70 i 43966
Err codemadness.org 70 i 43967 Err codemadness.org 70 i 43968
    Err codemadness.org 70 i 43969
  • Firmware
  • Err codemadness.org 70 i 43970
Err codemadness.org 70 i 43971 Err codemadness.org 70 i 43972
Err codemadness.org 70 i 43973

The Surface Go’s BIOS/firmware menu can be entered by holding down the Volume Up button, then pressing and releasing the Power button, and releasing Volume Up when the menu appears. Secure Boot as well as various hardware components can be disabled in this menu. Boot order can also be adjusted. A temporary boot menu can be brought up the same way but using Volume Down instead.

Err codemadness.org 70 i 43974
Err codemadness.org 70 i 43975 Err codemadness.org 70 i 43976


Err codemadness.org 70 i 43977 Err codemadness.org 70 i 43978

###FreeBSD Foundation Update, August 2018

Err codemadness.org 70 i 43979 Err codemadness.org 70 i 43980
    Err codemadness.org 70 i 43981
  • MESSAGE FROM THE EXECUTIVE DIRECTOR
  • Err codemadness.org 70 i 43982
Err codemadness.org 70 i 43983 Err codemadness.org 70 i 43984
Err codemadness.org 70 i 43985

Dear FreeBSD Community Member,
Err codemadness.org 70 i 43986 It’s been a busy summer for the Foundation. From traveling around the globe spreading the word about FreeBSD to bringing on new team members to improve the Project’s Continuous Integration work, we’re very excited about what we’ve accomplished. Take a minute to check out the latest updates within our Foundation sponsored projects; read more about our advocacy efforts in Bangladesh and community building in Cambridge; don’t miss upcoming Travel Grant deadlines, and new Developer Summits; and be sure to find out how your support will ensure our progress continues into 2019.
Err codemadness.org 70 i 43987 We can’t do this without you! Happy reading!! Deb

Err codemadness.org 70 i 43988
Err codemadness.org 70 i 43989 Err codemadness.org 70 i 43990
    Err codemadness.org 70 i 43991
  • August 2018 Development Projects Update
  • Err codemadness.org 70 i 43992
  • Fundraising Update: Supporting the Project
  • Err codemadness.org 70 i 43993
  • August 2018 Release Engineering Update
  • Err codemadness.org 70 i 43994
  • BSDCam 2018 Recap
  • Err codemadness.org 70 i 43995
  • October 2018 FreeBSD Developer Summit Call for Participation
  • Err codemadness.org 70 i 43996
  • SANOG32 and COSCUP 2018 Recap
  • Err codemadness.org 70 i 43997
  • MeetBSD 2018 Travel Grant Application Deadline: September 7
  • Err codemadness.org 70 i 43998
Err codemadness.org 70 i 43999 Err codemadness.org 70 i 44000


Err codemadness.org 70 i 44001 Err codemadness.org 70 i 44002

##News Roundup
Err codemadness.org 70 i 44003 ###Project Trident: What’s taking so long?

Err codemadness.org 70 i 44004 Err codemadness.org 70 i 44005
    Err codemadness.org 70 i 44006
  • What is taking so long?
  • Err codemadness.org 70 i 44007
Err codemadness.org 70 i 44008 Err codemadness.org 70 i 44009
Err codemadness.org 70 i 44010

The short answer is that it’s complicated.
Err codemadness.org 70 i 44011 Project Trident is quite literally a test of the new TrueOS build system. As expected, there have been quite a few bugs, undocumented features, and other optional bits that we discovered we needed that were not initially present. All of these things have to be addressed and retested in a constant back and forth process.
Err codemadness.org 70 i 44012 While Ken and JT are both experienced developers, neither has done this kind of release engineering before. JT has done some release engineering back in his Linux days, but the TrueOS and FreeBSD build system is very different. Both Ken and JT are learning a completely new way of building a FreeBSD/TrueOS distribution. Please keep in mind that no one has used this new TrueOS build system before, so Ken and JT want to not only provide a good Trident release, but also provide a model or template for other potential TrueOS distributions too!

Err codemadness.org 70 i 44013
Err codemadness.org 70 i 44014 Err codemadness.org 70 i 44015
    Err codemadness.org 70 i 44016
  • Where are we now?
  • Err codemadness.org 70 i 44017
Err codemadness.org 70 i 44018 Err codemadness.org 70 i 44019
Err codemadness.org 70 i 44020

Through perseverance, trial and error, and a lot of head-scratching we have reached the point of having successful builds. It took a while to get there, but now we are simply working out a few bugs with the new installer that Ken wrote as well as finding and fixing all the new Xorg configuration options which recently landed in FreeBSD. We also found that a number of services have been removed or replaced between TrueOS 18.03 and 18.06 so we are needing to adjust what we consider the “base” services for the desktop. All of these issues are being resolved and we are continually rebuilding and pulling in new patches from TrueOS as soon as they are committed.
Err codemadness.org 70 i 44021 In the meantime we have made an early BETA release of Trident available to the users in our Telegram Channel for those who want to help out in testing these early versions.

Err codemadness.org 70 i 44022
Err codemadness.org 70 i 44023 Err codemadness.org 70 i 44024
    Err codemadness.org 70 i 44025
  • Do you foresee any other delays?
  • Err codemadness.org 70 i 44026
Err codemadness.org 70 i 44027 Err codemadness.org 70 i 44028
Err codemadness.org 70 i 44029

At the moment we are doing many iterations of testing and tweaking the install ISO and package configurations in order to ensure that all the critical functionality works out-of-box (networking, sound, video, basic apps, etc). While we do not foresee any other major delays, sometimes things happen that our outside of our control. For an example, one of the recent delays that hit recently was completely unexpected: we had a hard drive failure on our build server. Up until recently, The aptly named “Poseidon” build server was running a Micron m500dc drive, but that drive is now constantly reporting errors. Despite ordering a replacement Western Digital Blue SSD several weeks ago, we just received it this past week. The drive is now installed with the builder back to full functionality, but we did lose many precious days with the delay.
Err codemadness.org 70 i 44030 The build server for Project Trident is very similar to the one that JT donated to the TrueOS project. JT had another DL580 G7, so he donated one to the Trident Project for their build server. Poseidon also has 256GB RAM (64 x 4GB sticks) which is a smidge higher than what the TrueOS builder has.
Err codemadness.org 70 i 44031 Since we are talking about hardware, we probably should address another question we get often, “What Hardware are the devs testing on?” So let’s go ahead and answer that one now.

Err codemadness.org 70 i 44032
Err codemadness.org 70 i 44033 Err codemadness.org 70 i 44034
    Err codemadness.org 70 i 44035
  • Err codemadness.org 70 i 44036

    Developer Hardware

    Err codemadness.org 70 i 44037
  • Err codemadness.org 70 i 44038
  • Err codemadness.org 70 i 44039

    JT: His main test box is a custom-built Intel i7 7700K system running 32GB RAM, dual Intel Optane 900P drives, and an Nvidia 1070 GTX with four 4K Acer Monitors. He also uses a Lenovo x250 ThinkPad alongside a desk full of x230t and x220 ThinkPads. One of which he gave away at SouthEast LinuxFest this year, which you can read about here. However it’s not done there, being a complete hardware hoarder, JT also tests on several Intel NUCs and his second laptop a Fujitsu t904, not to mention a Plethora of HP DL580 servers, a DL980 server, and a stack of BL485c, BL460c, and BL490c Blades in his HP c7000 and c3000 Bladecenter chassis. (Maybe it’s time for an intervention for his hardware collecting habits)

    Err codemadness.org 70 i 44040
  • Err codemadness.org 70 i 44041
  • Err codemadness.org 70 i 44042

    Ken: For a laptop, he primarily uses a 3rd generation X1 Carbon, but also has an old Eee PC T101MT Netbook (dual core 1GHz, 2GB of memory) which he uses for verifying how well Trident works on low-end hardware. As far as workstations go, his office computer is an Intel i7 with an NVIDIA Geforce GTX 960 running three 4K monitors and he has a couple other custom-built workstations (1 AMD, 1 Intel+NVIDIA) at his home. Generally he assembled random workstations based on hardware that was given to him or that he could acquire cheap.

    Err codemadness.org 70 i 44043
  • Err codemadness.org 70 i 44044
  • Err codemadness.org 70 i 44045

    Tim: is using a third gen X1 Carbon and a custom built desktop with an Intel Core i5-4440 CPU, 16 GiB RAM, Nvidia GeForce GTX 750 Ti, and a RealTek 8168 / 8111 network card.

    Err codemadness.org 70 i 44046
  • Err codemadness.org 70 i 44047
  • Err codemadness.org 70 i 44048

    Rod: Rod uses… No one knows what Rod uses, It’s kinda like how many licks does it take to get to the center of a Tootsie-Roll Tootsie-Pop… the world may just never know.

    Err codemadness.org 70 i 44049
  • Err codemadness.org 70 i 44050
Err codemadness.org 70 i 44051 Err codemadness.org 70 i 44052


Err codemadness.org 70 i 44053 Err codemadness.org 70 i 44054

###NetBSD GSoC: pkgsrc config file versioning

Err codemadness.org 70 i 44055 Err codemadness.org 70 i 44056
    Err codemadness.org 70 i 44057
  • A series of reports from the course of the summer on this Google Summer of Code project
  • Err codemadness.org 70 i 44058
  • The goal of the project is to integrate with a VCS (Version Control System) to make managing local changes to config files for packages easier
  • Err codemadness.org 70 i 44059
  • GSoC 2018 Reports: Configuration files versioning in pkgsrc, Part 1
  • Err codemadness.org 70 i 44060
Err codemadness.org 70 i 44061 Err codemadness.org 70 i 44062
Err codemadness.org 70 i 44063

Packages may install code (both machine executable code and interpreted programs), documentation and manual pages, source headers, shared libraries and other resources such as graphic elements, sounds, fonts, document templates, translations and configuration files, or a combination of them.
Err codemadness.org 70 i 44064 Configuration files are usually the means through which the behaviour of software without a user interface is specified. This covers parts of the operating systems, network daemons and programs in general that don’t come with an interactive graphical or textual interface as the principal mean for setting options.
Err codemadness.org 70 i 44065 System wide configuration for operating system software tends to be kept under /etc, while configuration for software installed via pkgsrc ends up under LOCALBASE/etc (e.g., /usr/pkg/etc).
Err codemadness.org 70 i 44066 Software packaged as part of pkgsrc provides example configuration files, if any, which usually get extracted to LOCALBASE/share/examples/PKGBASE/.
Err codemadness.org 70 i 44067 Don’t worry: automatic merging is disabled by default, set $VCSAUTOMERGE to enable it.
Err codemadness.org 70 i 44068 In order to avoid breakage, installed configuration is backed up first in the VCS, separating user-modified files from files that have been already automatically merged in the past, in order to allow the administrator to easily restore the last manually edited file in case of breakage.
Err codemadness.org 70 i 44069 VCS functionality only applies to configuration files, not to rc.d scripts, and only if the environment variable $NOVCS is unset.
Err codemadness.org 70 i 44070 The version control system to be used as a backend can be set through $VCS. It default to RCS, the Revision Control System, which works only locally and doesn’t support atomic transactions.
Err codemadness.org 70 i 44071 Other backends such as CVS are supported and more will come; these, being used at the explicit request of the administrator, need to be already installed and placed in a directory part of $PATH.

Err codemadness.org 70 i 44072
Err codemadness.org 70 i 44073 Err codemadness.org 70 i 44074 Err codemadness.org 70 i 44077 Err codemadness.org 70 i 44078
Err codemadness.org 70 i 44079

pkgsrc is now able to deploy configuration from packages being installed from a remote, site-specific vcs repository.
Err codemadness.org 70 i 44080 User modified files are always tracked even if automerge functionality is not enabled, and a new tool, pkgconftrack(1), exists to manually store user changes made outside of package upgrade time.
Err codemadness.org 70 i 44081 Version Control software is executed as the same user running pkg_add or make install, unless the user is “root”. In this case, a separate, unprivileged user, pkgvcsconf, gets created with its own home directory and a working login shell (but no password). The home directory is not strictly necessary, it exists to facilitate migrations betweens repositories and vcs changes; it also serves to store keys used to access remote repositories.
Err codemadness.org 70 i 44082 Using git instead of rcs is simply done by setting VCS=git in pkg_install.conf

Err codemadness.org 70 i 44083
Err codemadness.org 70 i 44084 Err codemadness.org 70 i 44085 Err codemadness.org 70 i 44089 Err codemadness.org 70 i 44090
Err codemadness.org 70 i 44091

Support for configuration tracking is in scripts, pkginstall scripts, that get built into binary packages and are run by pkg_add upon installation. The idea behind the proposal suggested that users of the new feature should be able to store revisions of their installed configuration files, and of package-provided default, both in local or remote repositories. With this capability in place, it doesn’t take much to make the scripts “pull” configuration from a VCS repository at installation time.
Err codemadness.org 70 i 44092 That’s what setting VCSCONFPULL=yes in pkg_install.conf after having enabled VCSTRACK_CONF does: You are free to use official, third party prebuilt packages that have no customization in them, enable these options, and point pkgsrc to a private conf repository. If it contains custom configuration for the software you are installing, an attempt will be made to use it and install it on your system. If it fails, pkginstall will fall back to using the defaults that come inside the package. RC scripts are always deployed from the binary package, if existing and PKG_RCD_SCRIPTS=yes in pkg_install.conf or the environment.
Err codemadness.org 70 i 44093 This will be part of packages, not a separate solution like configuration management tools. It doesn’t support running scripts on the target system to customize the installation, it doesn’t come with its domain-specific language, it won’t run as a daemon or require remote logins to work. It’s quite limited in scope, but you can define a ROLE for your system in pkg_install.conf or in the environment, and pkgsrc will look for configuration you or your organization crafted for such a role (e.g., public, standalone webserver vs reverse proxy or node in a database cluster)

Err codemadness.org 70 i 44094
Err codemadness.org 70 i 44095 Err codemadness.org 70 i 44096


Err codemadness.org 70 i 44097 Err codemadness.org 70 i 44098

###A little bit of the one-time MacOS version still lingers in ZFS

Err codemadness.org 70 i 44099 Err codemadness.org 70 i 44100
Err codemadness.org 70 i 44101

Once upon a time, Apple came very close to releasing ZFS as part of MacOS. Apple did this work in its own copy of the ZFS source base (as far as I know), but the people in Sun knew about it and it turns out that even today there is one little lingering sign of this hoped-for and perhaps prepared-for ZFS port in the ZFS source code. Well, sort of, because it’s not quite in code.
Err codemadness.org 70 i 44102 Lurking in the function that reads ZFS directories to turn (ZFS) directory entries into the filesystem independent format that the kernel wants is the following comment:

Err codemadness.org 70 i 44103
Err codemadness.org 70 i 44104 Err codemadness.org 70 i 44105

objnum = ZFS_DIRENT_OBJ(zap.za_first_integer);
Err codemadness.org 70 i 44106 /*
Err codemadness.org 70 i 44107 * MacOS X can extract the object type here such as:
Err codemadness.org 70 i 44108 * uint8_t type = ZFS_DIRENT_TYPE(zap.za_first_integer);
Err codemadness.org 70 i 44109 */

Err codemadness.org 70 i 44110 Err codemadness.org 70 i 44111
    Err codemadness.org 70 i 44112
  • Specifically, this is in zfs_readdir in zfs_vnops.c .
  • Err codemadness.org 70 i 44113
Err codemadness.org 70 i 44114 Err codemadness.org 70 i 44115
Err codemadness.org 70 i 44116

ZFS maintains file type information in directories. This information can’t be used on Solaris (and thus Illumos), where the overall kernel doesn’t have this in its filesystem independent directory entry format, but it could have been on MacOS (‘Darwin’), because MacOS is among the Unixes that support d_type. The comment itself dates all the way back to this 2007 commit, which includes the change ‘reserve bits in directory entry for file type’, which created the whole setup for this.
Err codemadness.org 70 i 44117 I don’t know if this file type support was added specifically to help out Apple’s MacOS X port of ZFS, but it’s certainly possible, and in 2007 it seems likely that this port was at least on the minds of ZFS developers. It’s interesting but understandable that FreeBSD didn’t seem to have influenced them in the same way, at least as far as comments in the source code go; this file type support is equally useful for FreeBSD, and the FreeBSD ZFS port dates to 2007 too (per this announcement).
Err codemadness.org 70 i 44118 Regardless of the exact reason that ZFS picked up maintaining file type information in directory entries, it’s quite useful for people on both FreeBSD and Linux that it does so. File type information is useful for any number of things and ZFS filesystems can (and do) provide this information on those Unixes, which helps make ZFS feel like a truly first class filesystem, one that supports all of the expected general system features.

Err codemadness.org 70 i 44119
Err codemadness.org 70 i 44120 Err codemadness.org 70 i 44121


Err codemadness.org 70 i 44122 Err codemadness.org 70 i 44123

##Beastie Bits

Err codemadness.org 70 i 44124 Err codemadness.org 70 i 44125 Err codemadness.org 70 i 44135 Err codemadness.org 70 i 44136


Err codemadness.org 70 i 44137 Err codemadness.org 70 i 44138

##Feedback/Questions

Err codemadness.org 70 i 44139 Err codemadness.org 70 i 44140 Err codemadness.org 70 i 44146 Err codemadness.org 70 i 44147


Err codemadness.org 70 i 44148 Err codemadness.org 70 i 44149
    Err codemadness.org 70 i 44150
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 44151
Err codemadness.org 70 i 44152 Err codemadness.org 70 i 44153


]]> Err codemadness.org 70 i 44154
Err codemadness.org 70 i 44155 https://fireside.fm/player/v2/FYhhasNR+engQNeDX Err codemadness.org 70 i 44156 Err codemadness.org 70 i 44157 ]]> Err codemadness.org 70 i 44158 Err codemadness.org 70 i 44159
Err codemadness.org 70 i 44160 Err codemadness.org 70 i 44161 Episode 261: FreeBSDcon Flashback | BSD Now 261 Err codemadness.org 70 i 44162 https://www.bsdnow.tv/261 Err codemadness.org 70 i 44163 http://feed.jupiter.zone/bsdnow#entry-2488 Err codemadness.org 70 i 44164 Thu, 30 Aug 2018 00:00:00 -0700 Err codemadness.org 70 i 44165 Allan Jude Err codemadness.org 70 i 44166 Err codemadness.org 70 i 44167 full Err codemadness.org 70 i 44168 Allan Jude Err codemadness.org 70 i 44169 Insight into TrueOS and Trident, stop evildoers with pf-badhost, Flashback to FreeBSDcon ‘99, OpenBSD’s measures against TLBleed, play Morrowind on OpenBSD in 5 steps, DragonflyBSD developers shocked at Threadripper performance, and more. Err codemadness.org 70 i 44170 1:49:13 Err codemadness.org 70 i 44171 no Err codemadness.org 70 i 44172 Err codemadness.org 70 i 44173 Insight into TrueOS and Trident, stop evildoers with pf-badhost, Flashback to FreeBSDcon ‘99, OpenBSD’s measures against TLBleed, play Morrowind on OpenBSD in 5 steps, DragonflyBSD developers shocked at Threadripper performance, and more. Err codemadness.org 70 i 44174 <p>##Headlines<br> Err codemadness.org 70 i 44175 <a href="https://itsfoss.com/project-trident-interview/">An Insight into the Future of TrueOS BSD and Project Trident</a></p> Err codemadness.org 70 i 44176 <blockquote> Err codemadness.org 70 i 44177 <p>Last month, TrueOS announced that they would be spinning off their desktop offering. The team behind the new project, named Project Trident, have been working furiously towards their first release. They did take a few minutes to answer some of our question about Project Trident and TrueOS. I would like to thank JT and Ken for taking the time to compile these answers.</p> Err codemadness.org 70 i 44178 </blockquote> Err codemadness.org 70 i 44179 <ul> Err codemadness.org 70 i 44180 <li>It’s FOSS: What is Project Trident?</li> Err codemadness.org 70 i 44181 </ul> Err codemadness.org 70 i 44182 <blockquote> Err codemadness.org 70 i 44183 <p>Project Trident: Project Trident is the continuation of the TrueOS Desktop. Essentially, it is the continuation of the primary “TrueOS software” that people have been using for the past 2 years. The continuing evolution of the entire TrueOS project has reached a stage where it became necessary to reorganize the project. To understand this change, it is important to know the history of the TrueOS project.</p> Err codemadness.org 70 i 44184 </blockquote> Err codemadness.org 70 i 44185 <blockquote> Err codemadness.org 70 i 44186 <p>Originally, Kris Moore created PC-BSD. This was a Desktop release of FreeBSD focused on providing a simple and user-friendly graphical experience for FreeBSD. PC-BSD grew and matured over many years. During the evolution of PC-BSD, many users began asking for a server focused version of the software. Kris agreed, and TrueOS was born as a scaled down server version of PC-BSD. In late 2016, more contributors and growth resulted in significant changes to the PC-BSD codebase. Because the new development was so markedly different from the original PC-BSD design, it was decided to rebrand the project.</p> Err codemadness.org 70 i 44187 </blockquote> Err codemadness.org 70 i 44188 <blockquote> Err codemadness.org 70 i 44189 <p>TrueOS was chosen as the name for this new direction for PC-BSD as the project had grown beyond providing only a graphical front to FreeBSD and was beginning to make fundamental changes to the FreeBSD operating system. One of these changes was moving PC-BSD from being based on each FreeBSD Release to TrueOS being based on the active and less outdated FreeBSD Current. Other major changes are using OpenRC for service management and being more aggressive about addressing long-standing issues with the FreeBSD release process. TrueOS moved toward a rolling release cycle, twice a year, which tested and merged FreeBSD changes directly from the developer instead of waiting months or even years for the FreeBSD review process to finish. TrueOS also deprecated and removed obsolete technology much more regularly.</p> Err codemadness.org 70 i 44190 </blockquote> Err codemadness.org 70 i 44191 <blockquote> Err codemadness.org 70 i 44192 <p>As the TrueOS Project grew, the developers found these changes were needed by other FreeBSD-based projects. These projects began expressing interest in using TrueOS rather than FreeBSD as the base for their project. This demonstrated that TrueOS needed to again evolve into a distribution framework for any BSD project to use. This allows port maintainers and source developers from any BSD project to pool their resources and use the same source repositories while allowing every distribution to still customize, build, and release their own self-contained project. The result is a natural split of the traditional TrueOS team. There were now naturally two teams in the TrueOS project: those working on the build infrastructure and FreeBSD enhancements – the “core” part of the project, and those working on end-user experience and utility – the “desktop” part of the project.</p> Err codemadness.org 70 i 44193 </blockquote> Err codemadness.org 70 i 44194 <blockquote> Err codemadness.org 70 i 44195 <p>When the decision was made to formally split the projects, the obvious question that arose was what to call the “Desktop” project. As TrueOS was already positioned to be a BSD distribution platform, the developers agreed the desktop side should pick a new name. There were other considerations too, one notable being that we were concerned that if we continued to call the desktop project “TrueOS Desktop”, it would prevent people from considering TrueOS as the basis for their distribution because of misconceptions that TrueOS was a desktop-focused OS. It also helps to “level the playing field” for other desktop distributions like GhostBSD so that TrueOS is not viewed as having a single “blessed” desktop version.</p> Err codemadness.org 70 i 44196 </blockquote> Err codemadness.org 70 i 44197 <ul> Err codemadness.org 70 i 44198 <li>It’s FOSS: What features will TrueOS add to the FreeBSD base?</li> Err codemadness.org 70 i 44199 </ul> Err codemadness.org 70 i 44200 <blockquote> Err codemadness.org 70 i 44201 <p>Project Trident: TrueOS has already added a number of features to FreeBSD:<br> Err codemadness.org 70 i 44202 OpenRC replaces rc.d for service management<br> Err codemadness.org 70 i 44203 LibreSSL in base<br> Err codemadness.org 70 i 44204 Root NSS certificates out-of-box<br> Err codemadness.org 70 i 44205 Scriptable installations (pc-sysinstall)<br> Err codemadness.org 70 i 44206 The full list of changes can be seen on the TrueOS repository (<a href="https://github.com/trueos/trueos/blob/trueos-master/README.md">https://github.com/trueos/trueos/blob/trueos-master/README.md</a>). This list does change quite regularly as FreeBSD development itself changes.</p> Err codemadness.org 70 i 44207 </blockquote> Err codemadness.org 70 i 44208 <ul> Err codemadness.org 70 i 44209 <li>It’s FOSS: I understand that TrueOS will have a new feature that will make creating a desktop spin of TrueOS very easy. Could you explain that new feature?</li> Err codemadness.org 70 i 44210 </ul> Err codemadness.org 70 i 44211 <blockquote> Err codemadness.org 70 i 44212 <p>Project Trident: Historically, one of the biggest hurdles for creating a desktop version of FreeBSD is that the build options for packages are tuned for servers rather than desktops. This means a desktop distribution cannot use the pre-built packages from FreeBSD and must build, use, and maintain a custom package repository. Maintaining a fork of the FreeBSD ports tree is no trivial task. TrueOS has created a full distribution framework so now all it takes to create a custom build of FreeBSD is a single JSON manifest file. There is now a single “source of truth” for the source and ports repositories that is maintained by the TrueOS team and regularly tagged with “stable” build markers. All projects can use this framework, which makes updates trivial.</p> Err codemadness.org 70 i 44213 </blockquote> Err codemadness.org 70 i 44214 <ul> Err codemadness.org 70 i 44215 <li>It’s FOSS: Do you think that the new focus of TrueOS will lead to the creation of more desktop-centered BSDs?</li> Err codemadness.org 70 i 44216 </ul> Err codemadness.org 70 i 44217 <blockquote> Err codemadness.org 70 i 44218 <p>Project Trident: That is the hope. Historically, creating a desktop-centered BSD has required a lot of specialized knowledge. Not only do most people not have this knowledge, but many do not even know what they need to learn until they start troubleshooting. TrueOS is trying to drastically simplify this process to enable the wider Open Source community to experiment, contribute, and enjoy BSD-based projects.</p> Err codemadness.org 70 i 44219 </blockquote> Err codemadness.org 70 i 44220 <ul> Err codemadness.org 70 i 44221 <li>It’s FOSS: What is going to happen to TrueOS Pico? Will Project Trident have ARM support?</li> Err codemadness.org 70 i 44222 </ul> Err codemadness.org 70 i 44223 <blockquote> Err codemadness.org 70 i 44224 <p>Project Trident: Project Trident will be dependent on TrueOS for ARM support. The developers have talked about the possibility of supporting ARM64 and RISC-V architectures, but it is not possible at the current time. If more Open Source contributors want to help develop ARM and RISC-V support, the TrueOS project is definitely willing to help test and integrate that code.</p> Err codemadness.org 70 i 44225 </blockquote> Err codemadness.org 70 i 44226 <ul> Err codemadness.org 70 i 44227 <li>It’s FOSS: What does this change (splitting Trus OS into Project Trident) mean for the Lumina desktop environment?</li> Err codemadness.org 70 i 44228 </ul> Err codemadness.org 70 i 44229 <blockquote> Err codemadness.org 70 i 44230 <p>Project Trident: Long-term, almost nothing. Lumina is still the desktop environment for Project Trident and will continue to be developed and enhanced alongside Project Trident just as it was for TrueOS. Short-term, we will be delaying the release of Lumina 2.0 and will release an updated version of the 1.x branch (1.5.0) instead. This is simply due to all the extra overhead to get Project Trident up and running. When things settle down into a rhythm, the development of Lumina will pick up once again.</p> Err codemadness.org 70 i 44231 </blockquote> Err codemadness.org 70 i 44232 <ul> Err codemadness.org 70 i 44233 <li>It’s FOSS: Are you planning on including any desktop environments besides Lumina?</li> Err codemadness.org 70 i 44234 </ul> Err codemadness.org 70 i 44235 <blockquote> Err codemadness.org 70 i 44236 <p>Project Trident: While Lumina is included by default, all of the other popular desktop environments will be available in the package repo exactly as they had been before.</p> Err codemadness.org 70 i 44237 </blockquote> Err codemadness.org 70 i 44238 <ul> Err codemadness.org 70 i 44239 <li>It’s FOSS: Any plans to include Steam to increase the userbase?</li> Err codemadness.org 70 i 44240 </ul> Err codemadness.org 70 i 44241 <blockquote> Err codemadness.org 70 i 44242 <p>Project Trident: Steam is still unavailable natively on FreeBSD, so we do not have any plans to ship it out of the box currently. In the meantime, we highly recommend installing the Windows version of Steam through the PlayOnBSD utility.</p> Err codemadness.org 70 i 44243 </blockquote> Err codemadness.org 70 i 44244 <ul> Err codemadness.org 70 i 44245 <li>It’s FOSS: What will happen to the AppCafe?</li> Err codemadness.org 70 i 44246 </ul> Err codemadness.org 70 i 44247 <blockquote> Err codemadness.org 70 i 44248 <p>Project Trident: The AppCafe is the name of the graphical interface for the “pkg” utility integrated into the SysAdm client created by TrueOS. This hasn’t changed. SysAdm, the graphical client, and by extension AppCafe are still available for all TrueOS-based distributions to use.</p> Err codemadness.org 70 i 44249 </blockquote> Err codemadness.org 70 i 44250 <ul> Err codemadness.org 70 i 44251 <li>It’s FOSS: Does Project Trident have any corporate sponsors lined up? If not, would you be open to it or would you prefer that it be community supported?</li> Err codemadness.org 70 i 44252 </ul> Err codemadness.org 70 i 44253 <blockquote> Err codemadness.org 70 i 44254 <p>Project Trident: iXsystems is the first corporate sponsor of Project Trident and we are always open to other sponsorships as well. We would prefer smaller individual contributions from the community, but we understand that larger project needs or special-purpose goals are much more difficult to achieve without allowing larger corporate sponsorships as well. In either case, Project Trident is always looking out for the best interests of the community and will not allow intrusive or harmful code to enter the project even if a company or individual tries to make that code part of a sponsorship deal.</p> Err codemadness.org 70 i 44255 </blockquote> Err codemadness.org 70 i 44256 <ul> Err codemadness.org 70 i 44257 <li>It’s FOSS: BSD always seems to be lagging in terms of support for newer devices. Will TrueOS be able to remedy that with a quicker release cycle?</li> Err codemadness.org 70 i 44258 </ul> Err codemadness.org 70 i 44259 <blockquote> Err codemadness.org 70 i 44260 <p>Project Trident: Yes! That was a primary reason for TrueOS to start tracking the CURRENT branch of FreeBSD in 2016. This allows for the changes that FreeBSD developers are making, including new hardware support, to be available much sooner than if we followed the FreeBSD release cycle.</p> Err codemadness.org 70 i 44261 </blockquote> Err codemadness.org 70 i 44262 <ul> Err codemadness.org 70 i 44263 <li>It’s FOSS: Do you have any idea when Project Trident will have its first release?</li> Err codemadness.org 70 i 44264 </ul> Err codemadness.org 70 i 44265 <blockquote> Err codemadness.org 70 i 44266 <p>Project Trident: Right now we are targeting a late August release date. This is because Project Trident is “kicking the wheels” on the new TrueOS distribution system. We want to ensure everything is working smoothly before we release. Going forward, we plan on having regular package updates every week or two for the end-user packages and a new release of Trident with an updated OS version every 6 months. This will follow the TrueOS release schedule with a small time offset.</p> Err codemadness.org 70 i 44267 </blockquote> Err codemadness.org 70 i 44268 <hr> Err codemadness.org 70 i 44269 <p>###<a href="https://www.geoghegan.ca/pfbadhost.html">pf-badhost: Stop the evil doers in their tracks!</a></p> Err codemadness.org 70 i 44270 <blockquote> Err codemadness.org 70 i 44271 <p>pf-badhost is a simple, easy to use badhost blocker that uses the power of the pf firewall to block many of the internet’s biggest irritants. Annoyances such as ssh bruteforcers are largely eliminated. Shodan scans and bots looking for webservers to abuse are stopped dead in their tracks. When used to filter outbound traffic, pf-badhost blocks many seedy, spooky malware containing and/or compromised webhosts.<br> Err codemadness.org 70 i 44272 Filtering performance is exceptional, as the badhost list is stored in a pf table. To quote the OpenBSD FAQ page regarding tables: “the lookup time on a table holding 50,000 addresses is only slightly more than for one holding 50 addresses.”<br> Err codemadness.org 70 i 44273 pf-badhost is simple and powerful. The blocklists are pulled from quality, trusted sources. The ‘Firehol’, ‘Emerging Threats’ and ‘Binary Defense’ block lists are used as they are popular, regularly updated lists of the internet’s most egregious offenders. The <a href="http://pf-badhost.sh">pf-badhost.sh</a> script can easily be expanded to use additional or alternate blocklists.<br> Err codemadness.org 70 i 44274 pf-badhost works best when used in conjunction with unbound-adblock for the ultimate badhost blocking.</p> Err codemadness.org 70 i 44275 </blockquote> Err codemadness.org 70 i 44276 <ul> Err codemadness.org 70 i 44277 <li>Notes:</li> Err codemadness.org 70 i 44278 <li>If you are trying to run pf-badhost on a LAN or are using NAT, you will want to add a rule to your pf.conf appearing BEFORE the pf-badhost rules allowing traffic to and from your local subnet so that you can still access your gateway and any DNS servers.</li> Err codemadness.org 70 i 44279 <li>Conversely, adding a line to <a href="http://pf-badhost.sh">pf-badhost.sh</a> that removes your subnet range from the &lt;pfbadhost&gt; table should also work. Just make sure you choose a subnet range / CIDR block that is actually in the list. 192.168.0.0/16, 172.16.0.0/12 and 10.0.0.0/8 are the most common home/office subnet ranges.</li> Err codemadness.org 70 i 44280 </ul> Err codemadness.org 70 i 44281 <hr> Err codemadness.org 70 i 44282 <p><strong>DigitalOcean</strong><br> Err codemadness.org 70 i 44283 <a href="https://do.co/bsdnow">https://do.co/bsdnow</a></p> Err codemadness.org 70 i 44284 <p>###<a href="http://edition.cnn.com/TECH/computing/9911/01/freebsd.con99.idg/">FLASHBACK: FreeBSDCon’99: Fans of Linux’s lesser-known sibling gather for the first time</a></p> Err codemadness.org 70 i 44285 <blockquote> Err codemadness.org 70 i 44286 <p>FreeBSD, a port of BSD Unix to Intel, has been around almost as long as Linux has – but without the media hype. Its developer and user community recently got a chance to get together for the first time, and they did it in the city where BSD – the Berkeley Software Distribution – was born some 25 years ago.<br> Err codemadness.org 70 i 44287 October 17, 1999 marked a milestone in the history of FreeBSD – the first FreeBSD conference was held in the city where it all began, Berkeley, CA. Over 300 developers, users, and interested parties attended from around the globe.<br> Err codemadness.org 70 i 44288 This was easily 50 percent more people than the conference organizers had expected. This first conference was meant to be a gathering mostly for developers and FreeBSD advocates. The turnout was surprisingly (and gratifyingly) large.<br> Err codemadness.org 70 i 44289 In fact, attendance exceeded expectations so much that, for instance, Kirk McKusick had to add a second, identical tutorial on FreeBSD internals, because it was impossible for everyone to attend the first!<br> Err codemadness.org 70 i 44290 But for a first-ever conference, I was impressed by how smoothly everything seemed to go. Sessions started on time, and the sessions I attended were well-run; nothing seemed to be too cold, dark, loud, late, or off-center.<br> Err codemadness.org 70 i 44291 Of course, the best part about a conference such as this one is the opportunity to meet with other people who share similar interests. Lunches and breaks were a good time to meet people, as was the Tuesday night beer bash.<br> Err codemadness.org 70 i 44292 The Wednesday night reception was of a type unusual for the technical conferences I usually attend – a three-hour Hornblower dinner cruise on San Francisco Bay. Not only did we all enjoy excellent food and company, but we all got to go up on deck and watch the lights of San Francisco and Berkeley as we drifted by. Although it’s nice when a conference attracts thousands of attendees, there are some things that can only be done with smaller groups of people; this was one of them.<br> Err codemadness.org 70 i 44293 In short, this was a tiny conference, but a well-run one.</p> Err codemadness.org 70 i 44294 </blockquote> Err codemadness.org 70 i 44295 <ul> Err codemadness.org 70 i 44296 <li>Sessions</li> Err codemadness.org 70 i 44297 </ul> Err codemadness.org 70 i 44298 <blockquote> Err codemadness.org 70 i 44299 <p>Although it was a relatively small conference, the number and quality of the sessions belied the size. Each of the three days of the conference featured a different keynote speaker. In addition to Jordan Hubbard, Jeremy Allison spoke on “Samba Futures” on day two, and Brian Behlendorf gave a talk on “FreeBSD and Apache: A Perfect Combo” to start off the third day.<br> Err codemadness.org 70 i 44300 The conference sessions themselves were divided into six tracks: advocacy, business, development, networking, security, and panels. The panels track featured three different panels, made up of three different slices of the community: the FreeBSD core team, a press panel, and a prominent user panel with representatives from such prominent commercial users as Yahoo! and USWest.<br> Err codemadness.org 70 i 44301 I was especially interested in Apple Computer’s talk in the development track. Wilfredo Sanchez, technical lead for open source projects at Apple (no, that’s not an oxymoron!) spoke about Apple’s Darwin project, the company’s operating system road map, and the role of BSD (and, specifically, FreeBSD) in Apple’s plans.<br> Err codemadness.org 70 i 44302 Apple and Unix have had a long and uneasy history, from the Lisa through the A/UX project to today. Personally, I’m very optimistic about the chances for the Darwin project to succeed. Apple’s core OS kernel team has chosen FreeBSD as its reference platform. I’m looking forward to what this partnership will bring to both sides.<br> Err codemadness.org 70 i 44303 Other development track sessions included in-depth tutorials on writing device drivers, basics of the Vinum Volume Manager, Fibre Channel, development models (the open repository model), and the FreeBSD Documentation Project (FDP). If you’re interested in contributing to the FreeBSD project, the FDP is a good place to start.<br> Err codemadness.org 70 i 44304 Advocacy sessions included “How One Person Can Make a Difference” (a timeless topic that would find a home at any technical conference!) and “Starting and Managing A User Group” (trials and tribulations as well as rewards).<br> Err codemadness.org 70 i 44305 The business track featured speakers from three commercial users of FreeBSD: Cybernet, USWest, and Applix. Applix presented its port of Applixware Office for FreeBSD and explained how Applix has taken the core services of Applixware into open source.<br> Err codemadness.org 70 i 44306 Commercial applications and open source were once a rare combination; we can only hope the trend away from that state of affairs will continue.</p> Err codemadness.org 70 i 44307 </blockquote> Err codemadness.org 70 i 44308 <ul> Err codemadness.org 70 i 44309 <li>Commercial use of FreeBSD</li> Err codemadness.org 70 i 44310 </ul> Err codemadness.org 70 i 44311 <blockquote> Err codemadness.org 70 i 44312 <p>The use of FreeBSD in embedded applications is increasing as well – and it is increasing at the same rate that hardware power is. These days, even inexpensive systems are able to run a BSD kernel.<br> Err codemadness.org 70 i 44313 The BSD license and the solid TCP/IP stack prove significant enticements to this market as well. (Unlike the GNU Public License, the BSD license does not require that vendors make derivative works open source.)<br> Err codemadness.org 70 i 44314 Companies such as USWest and Verio use FreeBSD for a wide variety of different Internet services.<br> Err codemadness.org 70 i 44315 Yahoo! and Hotmail are examples of companies that use FreeBSD extensively for more specific purposes. Yahoo!, for example, has many hundreds of FreeBSD boxes, and Hotmail has almost 2000 FreeBSD machines at its data center in the San Francisco Bay area.<br> Err codemadness.org 70 i 44316 Hotmail is owned by Microsoft, so the fact that it runs FreeBSD is a secret. Don’t tell anyone…<br> Err codemadness.org 70 i 44317 When asked to comment on the increasing commercial interest in BSD, Hubbard said that FreeBSD is learning the Red Hat lesson. “Walnut Creek and others with business interests in FreeBSD have learned a few things from the Red Hat IPO,” he said, “and nobody is just sitting around now, content with business as usual. It’s clearly business as unusual in the open source world today.”<br> Err codemadness.org 70 i 44318 Hubbard had also singled out some of BSD’s commercial partners, such as Whistle Communications, for praise in his opening day keynote. These partners play a key role in moving the project forward, he said, by contributing various enhancements and major new systems, such as Netgraph, as well as by contributing paid employee time spent on FreeBSD.<br> Err codemadness.org 70 i 44319 Even short FreeBSD-related contacts can yield good results, Hubbard said. An example of this is the new jail() security code introduced in FreeBSD 3.x and 4.0, which was contributed by R &amp; D Associates. A number of ISPs are also now donating the hardware and bandwidth that allows the project to provide more resource mirrors and experimental development sites.</p> Err codemadness.org 70 i 44320 </blockquote> Err codemadness.org 70 i 44321 <ul> Err codemadness.org 70 i 44322 <li>See you next year</li> Err codemadness.org 70 i 44323 </ul> Err codemadness.org 70 i 44324 <blockquote> Err codemadness.org 70 i 44325 <p>And speaking of corporate sponsors, thanks go to Walnut Creek for sponsoring the conference, and to Yahoo! for covering all the expenses involved in bringing the entire FreeBSD core team to Berkeley.<br> Err codemadness.org 70 i 44326 As a fan of FreeBSD, I’m happy to see that the project has finally produced a conference. It was time: many of the 16 core team members had been working together on a regular basis for nearly seven years without actually meeting face to face.<br> Err codemadness.org 70 i 44327 It’s been an interesting year for open source projects. I’m looking forward to the next year – and the next BSD conference – to be even better.</p> Err codemadness.org 70 i 44328 </blockquote> Err codemadness.org 70 i 44329 <hr> Err codemadness.org 70 i 44330 <p>##News Roundup<br> Err codemadness.org 70 i 44331 <a href="https://marc.info/?l=openbsd-tech&amp;m=153504937925732&amp;w=2">OpenBSD Recommends: Disable SMT/Hyperthreading in all Intel BIOSes</a></p> Err codemadness.org 70 i 44332 <pre><code>Two recently disclosed hardware bugs affected Intel cpus: Err codemadness.org 70 i 44333 Err codemadness.org 70 i 44334 - TLBleed Err codemadness.org 70 i 44335 Err codemadness.org 70 i 44336 - T1TF (the name &quot;Foreshadow&quot; refers to 1 of 3 aspects of this Err codemadness.org 70 i 44337 bug, more aspects are surely on the way) Err codemadness.org 70 i 44338 Err codemadness.org 70 i 44339 Solving these bugs requires new cpu microcode, a coding workaround, Err codemadness.org 70 i 44340 *AND* the disabling of SMT / Hyperthreading. Err codemadness.org 70 i 44341 Err codemadness.org 70 i 44342 SMT is fundamentally broken because it shares resources between the two Err codemadness.org 70 i 44343 cpu instances and those shared resources lack security differentiators. Err codemadness.org 70 i 44344 Some of these side channel attacks aren't trivial, but we can expect Err codemadness.org 70 i 44345 most of them to eventually work and leak kernel or cross-VM memory in Err codemadness.org 70 i 44346 common usage circumstances, even such as javascript directly in a Err codemadness.org 70 i 44347 browser. Err codemadness.org 70 i 44348 Err codemadness.org 70 i 44349 There will be more hardware bugs and artifacts disclosed. Due to the Err codemadness.org 70 i 44350 way SMT interacts with speculative execution on Intel cpus, I expect SMT Err codemadness.org 70 i 44351 to exacerbate most of the future problems. Err codemadness.org 70 i 44352 Err codemadness.org 70 i 44353 A few months back, I urged people to disable hyperthreading on all Err codemadness.org 70 i 44354 Intel cpus. I need to repeat that: Err codemadness.org 70 i 44355 Err codemadness.org 70 i 44356 DISABLE HYPERTHREADING ON ALL YOUR INTEL MACHINES IN THE BIOS. Err codemadness.org 70 i 44357 Err codemadness.org 70 i 44358 Also, update your BIOS firmware, if you can. Err codemadness.org 70 i 44359 Err codemadness.org 70 i 44360 OpenBSD -current (and therefore 6.4) will not use hyperthreading if it Err codemadness.org 70 i 44361 is enabled, and will update the cpu microcode if possible. Err codemadness.org 70 i 44362 Err codemadness.org 70 i 44363 But what about 6.2 and 6.3? Err codemadness.org 70 i 44364 Err codemadness.org 70 i 44365 The situation is very complex, continually evolving, and is taking too Err codemadness.org 70 i 44366 much manpower away from other tasks. Furthermore, Intel isn't telling Err codemadness.org 70 i 44367 us what is coming next, and are doing a terrible job by not publically Err codemadness.org 70 i 44368 documenting what operating systems must do to resolve the problems. We Err codemadness.org 70 i 44369 are having to do research by reading other operating systems. There is Err codemadness.org 70 i 44370 no time left to backport the changes -- we will not be issuing a Err codemadness.org 70 i 44371 complete set of errata and syspatches against 6.2 and 6.3 because it is Err codemadness.org 70 i 44372 turning into a distraction. Err codemadness.org 70 i 44373 Err codemadness.org 70 i 44374 Rather than working on every required patch for 6.2/6.3, we will Err codemadness.org 70 i 44375 re-focus manpower and make sure 6.4 contains the best solutions Err codemadness.org 70 i 44376 possible. Err codemadness.org 70 i 44377 Err codemadness.org 70 i 44378 So please try take responsibility for your own machines: Disable SMT in Err codemadness.org 70 i 44379 the BIOS menu, and upgrade your BIOS if you can. Err codemadness.org 70 i 44380 Err codemadness.org 70 i 44381 I'm going to spend my money at a more trustworthy vendor in the future. Err codemadness.org 70 i 44382 </code></pre> Err codemadness.org 70 i 44383 <hr> Err codemadness.org 70 i 44384 <p>###<a href="https://medium.com/@enzuru/get-morrowind-running-on-openbsd-in-5-simple-steps-b65e20f3f0c">Get Morrowind running on OpenBSD in 5 simple steps</a></p> Err codemadness.org 70 i 44385 <blockquote> Err codemadness.org 70 i 44386 <p>This article contains brief instructions on how to get one of the greatest Western RPGs of all time, The Elder Scrolls III: Morrowind, running on OpenBSD using the OpenMW open source engine recreation. These instructions were tested on a ThinkPad X1 Carbon Gen 3. The information was adapted from this OpenMW forum thread: <a href="https://forum.openmw.org/viewtopic.php?t=3510">https://forum.openmw.org/viewtopic.php?t=3510</a></p> Err codemadness.org 70 i 44387 </blockquote> Err codemadness.org 70 i 44388 <ul> Err codemadness.org 70 i 44389 <li> Err codemadness.org 70 i 44390 <ol> Err codemadness.org 70 i 44391 <li>Purchase and download the DRM-free version from GOG (also considered the best version due to the high quality PDF guide that it comes with): <a href="https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition">https://www.gog.com/game/theelderscrollsiiimorrowindgotyedition</a></li> Err codemadness.org 70 i 44392 </ol> Err codemadness.org 70 i 44393 </li> Err codemadness.org 70 i 44394 <li> Err codemadness.org 70 i 44395 <ol start="2"> Err codemadness.org 70 i 44396 <li>Install the required packages built from the ports tree as root. openmw is the recreated game engine, and innoextract is how we will get the game data files out of the win32 executable.</li> Err codemadness.org 70 i 44397 </ol> Err codemadness.org 70 i 44398 </li> Err codemadness.org 70 i 44399 </ul> Err codemadness.org 70 i 44400 <p><code>pkgadd openmw innoextract</code></p> Err codemadness.org 70 i 44401 <ul> Err codemadness.org 70 i 44402 <li> Err codemadness.org 70 i 44403 <ol start="3"> Err codemadness.org 70 i 44404 <li>Move the file from GOG setuptesmorrowindgoty2.0.0.7.exe into its own directory morrowind/ due to innoextract’s default behaviour of extracting into the current directory. Then type:</li> Err codemadness.org 70 i 44405 </ol> Err codemadness.org 70 i 44406 </li> Err codemadness.org 70 i 44407 </ul> Err codemadness.org 70 i 44408 <p><code>innoextract setuptesmorrowindgoty2.0.0.7.exe</code></p> Err codemadness.org 70 i 44409 <ul> Err codemadness.org 70 i 44410 <li> Err codemadness.org 70 i 44411 <ol start="4"> Err codemadness.org 70 i 44412 <li>Type openmw-wizard and follow the straightforward instructions. Note that you have a pre-existing installation, and select the morrowind/app/Data Files folder that innoextract extracted.</li> Err codemadness.org 70 i 44413 </ol> Err codemadness.org 70 i 44414 </li> Err codemadness.org 70 i 44415 <li> Err codemadness.org 70 i 44416 <ol start="5"> Err codemadness.org 70 i 44417 <li>Type in openmw-launcher, toggle the settings to your preferences, and then hit play!</li> Err codemadness.org 70 i 44418 </ol> Err codemadness.org 70 i 44419 </li> Err codemadness.org 70 i 44420 </ul> Err codemadness.org 70 i 44421 <hr> Err codemadness.org 70 i 44422 <p><strong>iXsystems</strong><br> Err codemadness.org 70 i 44423 <a href="https://twitter.com/allanjude/status/1034647571124367360">https://twitter.com/allanjude/status/1034647571124367360</a></p> Err codemadness.org 70 i 44424 <p>###<a href="https://euroquis.nl/bobulate/?p=1937">My First Clang Bug</a></p> Err codemadness.org 70 i 44425 <blockquote> Err codemadness.org 70 i 44426 <p>Part of the role of being a packager is compiling lots (and lots) of packages. That means compiling lots of code from interesting places and in a variety of styles. In my opinion, being a good packager also means providing feedback to upstream when things are bad. That means filing upstream bugs when possible, and upstreaming patches.<br> Err codemadness.org 70 i 44427 One of the “exciting” moments in packaging is when tools change. So each and every major CMake update is an exercise in recompiling 2400 or more packages and adjusting bits and pieces. When a software project was last released in 2013, adjusting it to modern tools can become quite a chore (e.g. Squid Report Generator). CMake is excellent for maintaining backwards compatibility, generally accommodating old software with new policies. The most recent 3.12 release candidate had three issues filed from the FreeBSD side, all from fallout with older software. I consider the hours put into good bug reports, part of being a good citizen of the Free Software world.<br> Err codemadness.org 70 i 44428 My most interesting bug this week, though, came from one line of code somewhere in Kleopatra: QUNUSED(gpgagentdata);<br> Err codemadness.org 70 i 44429 That one line triggered a really peculiar link error in KDE’s FreeBSD CI system. Yup … telling the compiler something is unused made it fall over. Commenting out that line got rid of the link error, but introduced a warning about an unused function. Working with KDE-PIM’s Volker Krause, we whittled the problem down to a six-line example program — two lines if you don’t care much for coding style. I’m glad, at that point, that I could throw it over the hedge to the LLVM team with some explanatory text. Watching the process on their side reminds me ever-so-strongly of how things work in KDE (or FreeBSD for that matter): Bugzilla, Phabricator, and git combine to be an effective workflow for developers (perhaps less so for end-users).<br> Err codemadness.org 70 i 44430 Today I got a note saying that the issue had been resolved. So brief a time for a bug. Live fast. Get squashed young.</p> Err codemadness.org 70 i 44431 </blockquote> Err codemadness.org 70 i 44432 <hr> Err codemadness.org 70 i 44433 <p>###<a href="https://www.phoronix.com/scan.php?page=newsitem&amp;px=Threadripper-2990WX-DragonFly">DragonFlyBSD Now Runs On The Threadripper 2990WX, Developer Shocked At Performance</a></p> Err codemadness.org 70 i 44434 <blockquote> Err codemadness.org 70 i 44435 <p>Last week I carried out some tests of BSD vs. Linux on the new 32-core / 64-thread Threadripper 2990WX. I tested FreeBSD 11, FreeBSD 12, and TrueOS – those benchmarks will be published in the next few days. I tried DragonFlyBSD, but at the time it wouldn’t boot with this AMD HEDT processor. But now the latest DragonFlyBSD development kernel can handle the 2990WX and the lead DragonFly developer calls this new processor “a real beast” and is stunned by its performance potential.</p> Err codemadness.org 70 i 44436 </blockquote> Err codemadness.org 70 i 44437 <blockquote> Err codemadness.org 70 i 44438 <p>When I tried last week, the DragonFlyBSD 5.2.2 stable release nor DragonFlyBSD 5.3 daily snapshot would boot on the 2990WX. But it turns out Matthew Dillon, the lead developer of DragonFlyBSD, picked up a rig and has it running now. So in time for the next 5.4 stable release or those using the daily snapshots can have this 32-core / 64-thread Zen+ CPU running on this operating system long ago forked from FreeBSD.</p> Err codemadness.org 70 i 44439 </blockquote> Err codemadness.org 70 i 44440 <blockquote> Err codemadness.org 70 i 44441 <p>In announcing his success in bringing up the 2990WX under DragonFlyBSD, which required a few minor changes, he shared his performance thoughts and hopes for the rig. “The cpu is a real beast, packing 32 cores and 64 threads. It blows away our dual-core Xeon to the tune of being +50% faster in concurrent compile tests, and it also blows away our older 4-socket Opteron (which we call ‘Monster’) by about the same margin. It’s an impressive CPU. For now the new beast is going to be used to help us improve I/O performance through the filesystem, further SMP work (but DFly scales pretty well to 64 threads already), and perhaps some driver to work to support the 10gbe on the mobo.”</p> Err codemadness.org 70 i 44442 </blockquote> Err codemadness.org 70 i 44443 <blockquote> Err codemadness.org 70 i 44444 <p>Dillon shared some results on the system as well. &quot; The Threadripper 2990WX is a beast. It is at <em>least</em> 50% faster than both the quad socket opteron and the dual socket Xeon system I tested against. The primary limitation for the 2990WX is likely its 4 channels of DDR4 memory, and like all Zen and Zen+ CPUs, memory performance matters more than CPU frequency (and costs almost no power to pump up the performance). That said, it still blow away a dual-socket Xeon with 3x the number of memory channels. That is impressive!&quot;</p> Err codemadness.org 70 i 44445 </blockquote> Err codemadness.org 70 i 44446 <blockquote> Err codemadness.org 70 i 44447 <p>The well known BSD developer also added, “This puts the 2990WX at par efficiency vs a dual-socket Xeon system, and better than the dual-socket Xeon with slower memory and a power cap. This is VERY impressive. I should note that the 2990WX is more specialized with its asymetric NUMA architecture and 32 cores. I think the sweet spot in terms of CPU pricing and efficiency is likely going to be with the 2950X (16-cores/32-threads). It is clear that the 2990WX (32-cores/64-threads) will max out 4-channel memory bandwidth for many workloads, making it a more specialized part. But still awesome…This thing is an incredible beast, I’m glad I got it.”</p> Err codemadness.org 70 i 44448 </blockquote> Err codemadness.org 70 i 44449 <blockquote> Err codemadness.org 70 i 44450 <p>While I have the FreeBSD vs. Linux benchmarks from a few days ago, it looks like now on my ever growing TODO list will be re-trying out the newest DragonFlyBSD daily snapshot for seeing how the performance compares in the mix. Stay tuned for the numbers that should be in the next day or two.</p> Err codemadness.org 70 i 44451 </blockquote> Err codemadness.org 70 i 44452 <hr> Err codemadness.org 70 i 44453 <p>##Beastie Bits</p> Err codemadness.org 70 i 44454 <ul> Err codemadness.org 70 i 44455 <li><a href="https://undeadly.org/cgi?action=article;sid=20180810075449">X11 on really small devices</a></li> Err codemadness.org 70 i 44456 <li><a href="https://undeadly.org/cgi?action=article;sid=20180810131231">mandoc-1.14.4 released</a></li> Err codemadness.org 70 i 44457 <li><a href="https://www.netgate.com/blog/pfSense-book-available-to-everyone.html">The pfSense Book is now available to everyone</a></li> Err codemadness.org 70 i 44458 <li><a href="https://mwl.io/archives/3619">MWL: Burn it down! Burn it all down!</a></li> Err codemadness.org 70 i 44459 <li><a href="https://github.com/begriffs/obsd">Configuring OpenBSD: System and user config files for a more pleasant laptop</a></li> Err codemadness.org 70 i 44460 <li><a href="https://www.freebsd.org/security/advisories/FreeBSD-SA-18:08.tcp.asc">FreeBSD Security Advisory: Resource exhaustion in TCP reassembly</a></li> Err codemadness.org 70 i 44461 <li><a href="https://discoverbsd.com/p/92d80d1497">OpenBSD Foundation gets first 2018 Iridium donation</a></li> Err codemadness.org 70 i 44462 <li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=337653">New ZFS commit solves issue a few users reported in the feedback segment</a></li> Err codemadness.org 70 i 44463 <li><a href="https://twitter.com/TridentProject/status/1034620476553867264">Project Trident should have a beta release by the end of next week</a></li> Err codemadness.org 70 i 44464 <li><a href="https://www.meetup.com/BSD-Users-Stockholm/events/253447019/">Reminder about Stockholm BUG: September 5, 17:30-22:00</a></li> Err codemadness.org 70 i 44465 <li><a href="https://bsd-pl.org/en">BSD-PL User Group: September 13, 18:30-21:00</a></li> Err codemadness.org 70 i 44466 </ul> Err codemadness.org 70 i 44467 <hr> Err codemadness.org 70 i 44468 <p><strong>Tarsnap</strong></p> Err codemadness.org 70 i 44469 <p>##Feedback/Questions</p> Err codemadness.org 70 i 44470 <ul> Err codemadness.org 70 i 44471 <li>Malcom - <a href="http://dpaste.com/15VVVCP">Having different routes per interface</a></li> Err codemadness.org 70 i 44472 <li>Bostjan - <a href="http://dpaste.com/1Q14C6H#wrap">ZFS and integrity of data</a></li> Err codemadness.org 70 i 44473 <li>Michael - <a href="http://dpaste.com/2JD17BP#wrap">Suggestion for Monitoring</a></li> Err codemadness.org 70 i 44474 <li>Barry - <a href="http://dpaste.com/2GJ3RMG#wrap">Feedback</a></li> Err codemadness.org 70 i 44475 </ul> Err codemadness.org 70 i 44476 <hr> Err codemadness.org 70 i 44477 <ul> Err codemadness.org 70 i 44478 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 44479 </ul> Err codemadness.org 70 i 44480 Err codemadness.org 70 i 44481 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, Hyperthreading, TLBleed, T1TF, Foreshadow, pf-badhost, Threadripper, X11 Err codemadness.org 70 i 44482 Err codemadness.org 70 i 44483 Insight into TrueOS and Trident, stop evildoers with pf-badhost, Flashback to FreeBSDcon ‘99, OpenBSD’s measures against TLBleed, play Morrowind on OpenBSD in 5 steps, DragonflyBSD developers shocked at Threadripper performance, and more.

Err codemadness.org 70 i 44484 Err codemadness.org 70 i 44485

##Headlines
Err codemadness.org 70 i 44486 ###An Insight into the Future of TrueOS BSD and Project Trident

Err codemadness.org 70 i 44487 Err codemadness.org 70 i 44488
Err codemadness.org 70 i 44489

Last month, TrueOS announced that they would be spinning off their desktop offering. The team behind the new project, named Project Trident, have been working furiously towards their first release. They did take a few minutes to answer some of our question about Project Trident and TrueOS. I would like to thank JT and Ken for taking the time to compile these answers.

Err codemadness.org 70 i 44490
Err codemadness.org 70 i 44491 Err codemadness.org 70 i 44492
    Err codemadness.org 70 i 44493
  • It’s FOSS: What is Project Trident?
  • Err codemadness.org 70 i 44494
Err codemadness.org 70 i 44495 Err codemadness.org 70 i 44496
Err codemadness.org 70 i 44497

Project Trident: Project Trident is the continuation of the TrueOS Desktop. Essentially, it is the continuation of the primary “TrueOS software” that people have been using for the past 2 years. The continuing evolution of the entire TrueOS project has reached a stage where it became necessary to reorganize the project. To understand this change, it is important to know the history of the TrueOS project.

Err codemadness.org 70 i 44498
Err codemadness.org 70 i 44499 Err codemadness.org 70 i 44500
Err codemadness.org 70 i 44501

Originally, Kris Moore created PC-BSD. This was a Desktop release of FreeBSD focused on providing a simple and user-friendly graphical experience for FreeBSD. PC-BSD grew and matured over many years. During the evolution of PC-BSD, many users began asking for a server focused version of the software. Kris agreed, and TrueOS was born as a scaled down server version of PC-BSD. In late 2016, more contributors and growth resulted in significant changes to the PC-BSD codebase. Because the new development was so markedly different from the original PC-BSD design, it was decided to rebrand the project.

Err codemadness.org 70 i 44502
Err codemadness.org 70 i 44503 Err codemadness.org 70 i 44504
Err codemadness.org 70 i 44505

TrueOS was chosen as the name for this new direction for PC-BSD as the project had grown beyond providing only a graphical front to FreeBSD and was beginning to make fundamental changes to the FreeBSD operating system. One of these changes was moving PC-BSD from being based on each FreeBSD Release to TrueOS being based on the active and less outdated FreeBSD Current. Other major changes are using OpenRC for service management and being more aggressive about addressing long-standing issues with the FreeBSD release process. TrueOS moved toward a rolling release cycle, twice a year, which tested and merged FreeBSD changes directly from the developer instead of waiting months or even years for the FreeBSD review process to finish. TrueOS also deprecated and removed obsolete technology much more regularly.

Err codemadness.org 70 i 44506
Err codemadness.org 70 i 44507 Err codemadness.org 70 i 44508
Err codemadness.org 70 i 44509

As the TrueOS Project grew, the developers found these changes were needed by other FreeBSD-based projects. These projects began expressing interest in using TrueOS rather than FreeBSD as the base for their project. This demonstrated that TrueOS needed to again evolve into a distribution framework for any BSD project to use. This allows port maintainers and source developers from any BSD project to pool their resources and use the same source repositories while allowing every distribution to still customize, build, and release their own self-contained project. The result is a natural split of the traditional TrueOS team. There were now naturally two teams in the TrueOS project: those working on the build infrastructure and FreeBSD enhancements – the “core” part of the project, and those working on end-user experience and utility – the “desktop” part of the project.

Err codemadness.org 70 i 44510
Err codemadness.org 70 i 44511 Err codemadness.org 70 i 44512
Err codemadness.org 70 i 44513

When the decision was made to formally split the projects, the obvious question that arose was what to call the “Desktop” project. As TrueOS was already positioned to be a BSD distribution platform, the developers agreed the desktop side should pick a new name. There were other considerations too, one notable being that we were concerned that if we continued to call the desktop project “TrueOS Desktop”, it would prevent people from considering TrueOS as the basis for their distribution because of misconceptions that TrueOS was a desktop-focused OS. It also helps to “level the playing field” for other desktop distributions like GhostBSD so that TrueOS is not viewed as having a single “blessed” desktop version.

Err codemadness.org 70 i 44514
Err codemadness.org 70 i 44515 Err codemadness.org 70 i 44516
    Err codemadness.org 70 i 44517
  • It’s FOSS: What features will TrueOS add to the FreeBSD base?
  • Err codemadness.org 70 i 44518
Err codemadness.org 70 i 44519 Err codemadness.org 70 i 44520
Err codemadness.org 70 i 44521

Project Trident: TrueOS has already added a number of features to FreeBSD:
Err codemadness.org 70 i 44522 OpenRC replaces rc.d for service management
Err codemadness.org 70 i 44523 LibreSSL in base
Err codemadness.org 70 i 44524 Root NSS certificates out-of-box
Err codemadness.org 70 i 44525 Scriptable installations (pc-sysinstall)
Err codemadness.org 70 i 44526 The full list of changes can be seen on the TrueOS repository (https://github.com/trueos/trueos/blob/trueos-master/README.md). This list does change quite regularly as FreeBSD development itself changes.

Err codemadness.org 70 i 44527
Err codemadness.org 70 i 44528 Err codemadness.org 70 i 44529
    Err codemadness.org 70 i 44530
  • It’s FOSS: I understand that TrueOS will have a new feature that will make creating a desktop spin of TrueOS very easy. Could you explain that new feature?
  • Err codemadness.org 70 i 44531
Err codemadness.org 70 i 44532 Err codemadness.org 70 i 44533
Err codemadness.org 70 i 44534

Project Trident: Historically, one of the biggest hurdles for creating a desktop version of FreeBSD is that the build options for packages are tuned for servers rather than desktops. This means a desktop distribution cannot use the pre-built packages from FreeBSD and must build, use, and maintain a custom package repository. Maintaining a fork of the FreeBSD ports tree is no trivial task. TrueOS has created a full distribution framework so now all it takes to create a custom build of FreeBSD is a single JSON manifest file. There is now a single “source of truth” for the source and ports repositories that is maintained by the TrueOS team and regularly tagged with “stable” build markers. All projects can use this framework, which makes updates trivial.

Err codemadness.org 70 i 44535
Err codemadness.org 70 i 44536 Err codemadness.org 70 i 44537
    Err codemadness.org 70 i 44538
  • It’s FOSS: Do you think that the new focus of TrueOS will lead to the creation of more desktop-centered BSDs?
  • Err codemadness.org 70 i 44539
Err codemadness.org 70 i 44540 Err codemadness.org 70 i 44541
Err codemadness.org 70 i 44542

Project Trident: That is the hope. Historically, creating a desktop-centered BSD has required a lot of specialized knowledge. Not only do most people not have this knowledge, but many do not even know what they need to learn until they start troubleshooting. TrueOS is trying to drastically simplify this process to enable the wider Open Source community to experiment, contribute, and enjoy BSD-based projects.

Err codemadness.org 70 i 44543
Err codemadness.org 70 i 44544 Err codemadness.org 70 i 44545
    Err codemadness.org 70 i 44546
  • It’s FOSS: What is going to happen to TrueOS Pico? Will Project Trident have ARM support?
  • Err codemadness.org 70 i 44547
Err codemadness.org 70 i 44548 Err codemadness.org 70 i 44549
Err codemadness.org 70 i 44550

Project Trident: Project Trident will be dependent on TrueOS for ARM support. The developers have talked about the possibility of supporting ARM64 and RISC-V architectures, but it is not possible at the current time. If more Open Source contributors want to help develop ARM and RISC-V support, the TrueOS project is definitely willing to help test and integrate that code.

Err codemadness.org 70 i 44551
Err codemadness.org 70 i 44552 Err codemadness.org 70 i 44553
    Err codemadness.org 70 i 44554
  • It’s FOSS: What does this change (splitting Trus OS into Project Trident) mean for the Lumina desktop environment?
  • Err codemadness.org 70 i 44555
Err codemadness.org 70 i 44556 Err codemadness.org 70 i 44557
Err codemadness.org 70 i 44558

Project Trident: Long-term, almost nothing. Lumina is still the desktop environment for Project Trident and will continue to be developed and enhanced alongside Project Trident just as it was for TrueOS. Short-term, we will be delaying the release of Lumina 2.0 and will release an updated version of the 1.x branch (1.5.0) instead. This is simply due to all the extra overhead to get Project Trident up and running. When things settle down into a rhythm, the development of Lumina will pick up once again.

Err codemadness.org 70 i 44559
Err codemadness.org 70 i 44560 Err codemadness.org 70 i 44561
    Err codemadness.org 70 i 44562
  • It’s FOSS: Are you planning on including any desktop environments besides Lumina?
  • Err codemadness.org 70 i 44563
Err codemadness.org 70 i 44564 Err codemadness.org 70 i 44565
Err codemadness.org 70 i 44566

Project Trident: While Lumina is included by default, all of the other popular desktop environments will be available in the package repo exactly as they had been before.

Err codemadness.org 70 i 44567
Err codemadness.org 70 i 44568 Err codemadness.org 70 i 44569
    Err codemadness.org 70 i 44570
  • It’s FOSS: Any plans to include Steam to increase the userbase?
  • Err codemadness.org 70 i 44571
Err codemadness.org 70 i 44572 Err codemadness.org 70 i 44573
Err codemadness.org 70 i 44574

Project Trident: Steam is still unavailable natively on FreeBSD, so we do not have any plans to ship it out of the box currently. In the meantime, we highly recommend installing the Windows version of Steam through the PlayOnBSD utility.

Err codemadness.org 70 i 44575
Err codemadness.org 70 i 44576 Err codemadness.org 70 i 44577
    Err codemadness.org 70 i 44578
  • It’s FOSS: What will happen to the AppCafe?
  • Err codemadness.org 70 i 44579
Err codemadness.org 70 i 44580 Err codemadness.org 70 i 44581
Err codemadness.org 70 i 44582

Project Trident: The AppCafe is the name of the graphical interface for the “pkg” utility integrated into the SysAdm client created by TrueOS. This hasn’t changed. SysAdm, the graphical client, and by extension AppCafe are still available for all TrueOS-based distributions to use.

Err codemadness.org 70 i 44583
Err codemadness.org 70 i 44584 Err codemadness.org 70 i 44585
    Err codemadness.org 70 i 44586
  • It’s FOSS: Does Project Trident have any corporate sponsors lined up? If not, would you be open to it or would you prefer that it be community supported?
  • Err codemadness.org 70 i 44587
Err codemadness.org 70 i 44588 Err codemadness.org 70 i 44589
Err codemadness.org 70 i 44590

Project Trident: iXsystems is the first corporate sponsor of Project Trident and we are always open to other sponsorships as well. We would prefer smaller individual contributions from the community, but we understand that larger project needs or special-purpose goals are much more difficult to achieve without allowing larger corporate sponsorships as well. In either case, Project Trident is always looking out for the best interests of the community and will not allow intrusive or harmful code to enter the project even if a company or individual tries to make that code part of a sponsorship deal.

Err codemadness.org 70 i 44591
Err codemadness.org 70 i 44592 Err codemadness.org 70 i 44593
    Err codemadness.org 70 i 44594
  • It’s FOSS: BSD always seems to be lagging in terms of support for newer devices. Will TrueOS be able to remedy that with a quicker release cycle?
  • Err codemadness.org 70 i 44595
Err codemadness.org 70 i 44596 Err codemadness.org 70 i 44597
Err codemadness.org 70 i 44598

Project Trident: Yes! That was a primary reason for TrueOS to start tracking the CURRENT branch of FreeBSD in 2016. This allows for the changes that FreeBSD developers are making, including new hardware support, to be available much sooner than if we followed the FreeBSD release cycle.

Err codemadness.org 70 i 44599
Err codemadness.org 70 i 44600 Err codemadness.org 70 i 44601
    Err codemadness.org 70 i 44602
  • It’s FOSS: Do you have any idea when Project Trident will have its first release?
  • Err codemadness.org 70 i 44603
Err codemadness.org 70 i 44604 Err codemadness.org 70 i 44605
Err codemadness.org 70 i 44606

Project Trident: Right now we are targeting a late August release date. This is because Project Trident is “kicking the wheels” on the new TrueOS distribution system. We want to ensure everything is working smoothly before we release. Going forward, we plan on having regular package updates every week or two for the end-user packages and a new release of Trident with an updated OS version every 6 months. This will follow the TrueOS release schedule with a small time offset.

Err codemadness.org 70 i 44607
Err codemadness.org 70 i 44608 Err codemadness.org 70 i 44609


Err codemadness.org 70 i 44610 Err codemadness.org 70 i 44611

###pf-badhost: Stop the evil doers in their tracks!

Err codemadness.org 70 i 44612 Err codemadness.org 70 i 44613
Err codemadness.org 70 i 44614

pf-badhost is a simple, easy to use badhost blocker that uses the power of the pf firewall to block many of the internet’s biggest irritants. Annoyances such as ssh bruteforcers are largely eliminated. Shodan scans and bots looking for webservers to abuse are stopped dead in their tracks. When used to filter outbound traffic, pf-badhost blocks many seedy, spooky malware containing and/or compromised webhosts.
Err codemadness.org 70 i 44615 Filtering performance is exceptional, as the badhost list is stored in a pf table. To quote the OpenBSD FAQ page regarding tables: “the lookup time on a table holding 50,000 addresses is only slightly more than for one holding 50 addresses.”
Err codemadness.org 70 i 44616 pf-badhost is simple and powerful. The blocklists are pulled from quality, trusted sources. The ‘Firehol’, ‘Emerging Threats’ and ‘Binary Defense’ block lists are used as they are popular, regularly updated lists of the internet’s most egregious offenders. The pf-badhost.sh script can easily be expanded to use additional or alternate blocklists.
Err codemadness.org 70 i 44617 pf-badhost works best when used in conjunction with unbound-adblock for the ultimate badhost blocking.

Err codemadness.org 70 i 44618
Err codemadness.org 70 i 44619 Err codemadness.org 70 i 44620
    Err codemadness.org 70 i 44621
  • Notes:
  • Err codemadness.org 70 i 44622
  • If you are trying to run pf-badhost on a LAN or are using NAT, you will want to add a rule to your pf.conf appearing BEFORE the pf-badhost rules allowing traffic to and from your local subnet so that you can still access your gateway and any DNS servers.
  • Err codemadness.org 70 i 44623
  • Conversely, adding a line to pf-badhost.sh that removes your subnet range from the <pfbadhost> table should also work. Just make sure you choose a subnet range / CIDR block that is actually in the list. 192.168.0.0/16, 172.16.0.0/12 and 10.0.0.0/8 are the most common home/office subnet ranges.
  • Err codemadness.org 70 i 44624
Err codemadness.org 70 i 44625 Err codemadness.org 70 i 44626


Err codemadness.org 70 i 44627 Err codemadness.org 70 i 44628

DigitalOcean
Err codemadness.org 70 i 44629 https://do.co/bsdnow

Err codemadness.org 70 i 44630 Err codemadness.org 70 i 44631

###FLASHBACK: FreeBSDCon’99: Fans of Linux’s lesser-known sibling gather for the first time

Err codemadness.org 70 i 44632 Err codemadness.org 70 i 44633
Err codemadness.org 70 i 44634

FreeBSD, a port of BSD Unix to Intel, has been around almost as long as Linux has – but without the media hype. Its developer and user community recently got a chance to get together for the first time, and they did it in the city where BSD – the Berkeley Software Distribution – was born some 25 years ago.
Err codemadness.org 70 i 44635 October 17, 1999 marked a milestone in the history of FreeBSD – the first FreeBSD conference was held in the city where it all began, Berkeley, CA. Over 300 developers, users, and interested parties attended from around the globe.
Err codemadness.org 70 i 44636 This was easily 50 percent more people than the conference organizers had expected. This first conference was meant to be a gathering mostly for developers and FreeBSD advocates. The turnout was surprisingly (and gratifyingly) large.
Err codemadness.org 70 i 44637 In fact, attendance exceeded expectations so much that, for instance, Kirk McKusick had to add a second, identical tutorial on FreeBSD internals, because it was impossible for everyone to attend the first!
Err codemadness.org 70 i 44638 But for a first-ever conference, I was impressed by how smoothly everything seemed to go. Sessions started on time, and the sessions I attended were well-run; nothing seemed to be too cold, dark, loud, late, or off-center.
Err codemadness.org 70 i 44639 Of course, the best part about a conference such as this one is the opportunity to meet with other people who share similar interests. Lunches and breaks were a good time to meet people, as was the Tuesday night beer bash.
Err codemadness.org 70 i 44640 The Wednesday night reception was of a type unusual for the technical conferences I usually attend – a three-hour Hornblower dinner cruise on San Francisco Bay. Not only did we all enjoy excellent food and company, but we all got to go up on deck and watch the lights of San Francisco and Berkeley as we drifted by. Although it’s nice when a conference attracts thousands of attendees, there are some things that can only be done with smaller groups of people; this was one of them.
Err codemadness.org 70 i 44641 In short, this was a tiny conference, but a well-run one.

Err codemadness.org 70 i 44642
Err codemadness.org 70 i 44643 Err codemadness.org 70 i 44644
    Err codemadness.org 70 i 44645
  • Sessions
  • Err codemadness.org 70 i 44646
Err codemadness.org 70 i 44647 Err codemadness.org 70 i 44648
Err codemadness.org 70 i 44649

Although it was a relatively small conference, the number and quality of the sessions belied the size. Each of the three days of the conference featured a different keynote speaker. In addition to Jordan Hubbard, Jeremy Allison spoke on “Samba Futures” on day two, and Brian Behlendorf gave a talk on “FreeBSD and Apache: A Perfect Combo” to start off the third day.
Err codemadness.org 70 i 44650 The conference sessions themselves were divided into six tracks: advocacy, business, development, networking, security, and panels. The panels track featured three different panels, made up of three different slices of the community: the FreeBSD core team, a press panel, and a prominent user panel with representatives from such prominent commercial users as Yahoo! and USWest.
Err codemadness.org 70 i 44651 I was especially interested in Apple Computer’s talk in the development track. Wilfredo Sanchez, technical lead for open source projects at Apple (no, that’s not an oxymoron!) spoke about Apple’s Darwin project, the company’s operating system road map, and the role of BSD (and, specifically, FreeBSD) in Apple’s plans.
Err codemadness.org 70 i 44652 Apple and Unix have had a long and uneasy history, from the Lisa through the A/UX project to today. Personally, I’m very optimistic about the chances for the Darwin project to succeed. Apple’s core OS kernel team has chosen FreeBSD as its reference platform. I’m looking forward to what this partnership will bring to both sides.
Err codemadness.org 70 i 44653 Other development track sessions included in-depth tutorials on writing device drivers, basics of the Vinum Volume Manager, Fibre Channel, development models (the open repository model), and the FreeBSD Documentation Project (FDP). If you’re interested in contributing to the FreeBSD project, the FDP is a good place to start.
Err codemadness.org 70 i 44654 Advocacy sessions included “How One Person Can Make a Difference” (a timeless topic that would find a home at any technical conference!) and “Starting and Managing A User Group” (trials and tribulations as well as rewards).
Err codemadness.org 70 i 44655 The business track featured speakers from three commercial users of FreeBSD: Cybernet, USWest, and Applix. Applix presented its port of Applixware Office for FreeBSD and explained how Applix has taken the core services of Applixware into open source.
Err codemadness.org 70 i 44656 Commercial applications and open source were once a rare combination; we can only hope the trend away from that state of affairs will continue.

Err codemadness.org 70 i 44657
Err codemadness.org 70 i 44658 Err codemadness.org 70 i 44659
    Err codemadness.org 70 i 44660
  • Commercial use of FreeBSD
  • Err codemadness.org 70 i 44661
Err codemadness.org 70 i 44662 Err codemadness.org 70 i 44663
Err codemadness.org 70 i 44664

The use of FreeBSD in embedded applications is increasing as well – and it is increasing at the same rate that hardware power is. These days, even inexpensive systems are able to run a BSD kernel.
Err codemadness.org 70 i 44665 The BSD license and the solid TCP/IP stack prove significant enticements to this market as well. (Unlike the GNU Public License, the BSD license does not require that vendors make derivative works open source.)
Err codemadness.org 70 i 44666 Companies such as USWest and Verio use FreeBSD for a wide variety of different Internet services.
Err codemadness.org 70 i 44667 Yahoo! and Hotmail are examples of companies that use FreeBSD extensively for more specific purposes. Yahoo!, for example, has many hundreds of FreeBSD boxes, and Hotmail has almost 2000 FreeBSD machines at its data center in the San Francisco Bay area.
Err codemadness.org 70 i 44668 Hotmail is owned by Microsoft, so the fact that it runs FreeBSD is a secret. Don’t tell anyone…
Err codemadness.org 70 i 44669 When asked to comment on the increasing commercial interest in BSD, Hubbard said that FreeBSD is learning the Red Hat lesson. “Walnut Creek and others with business interests in FreeBSD have learned a few things from the Red Hat IPO,” he said, “and nobody is just sitting around now, content with business as usual. It’s clearly business as unusual in the open source world today.”
Err codemadness.org 70 i 44670 Hubbard had also singled out some of BSD’s commercial partners, such as Whistle Communications, for praise in his opening day keynote. These partners play a key role in moving the project forward, he said, by contributing various enhancements and major new systems, such as Netgraph, as well as by contributing paid employee time spent on FreeBSD.
Err codemadness.org 70 i 44671 Even short FreeBSD-related contacts can yield good results, Hubbard said. An example of this is the new jail() security code introduced in FreeBSD 3.x and 4.0, which was contributed by R & D Associates. A number of ISPs are also now donating the hardware and bandwidth that allows the project to provide more resource mirrors and experimental development sites.

Err codemadness.org 70 i 44672
Err codemadness.org 70 i 44673 Err codemadness.org 70 i 44674
    Err codemadness.org 70 i 44675
  • See you next year
  • Err codemadness.org 70 i 44676
Err codemadness.org 70 i 44677 Err codemadness.org 70 i 44678
Err codemadness.org 70 i 44679

And speaking of corporate sponsors, thanks go to Walnut Creek for sponsoring the conference, and to Yahoo! for covering all the expenses involved in bringing the entire FreeBSD core team to Berkeley.
Err codemadness.org 70 i 44680 As a fan of FreeBSD, I’m happy to see that the project has finally produced a conference. It was time: many of the 16 core team members had been working together on a regular basis for nearly seven years without actually meeting face to face.
Err codemadness.org 70 i 44681 It’s been an interesting year for open source projects. I’m looking forward to the next year – and the next BSD conference – to be even better.

Err codemadness.org 70 i 44682
Err codemadness.org 70 i 44683 Err codemadness.org 70 i 44684


Err codemadness.org 70 i 44685 Err codemadness.org 70 i 44686

##News Roundup
Err codemadness.org 70 i 44687 ###OpenBSD Recommends: Disable SMT/Hyperthreading in all Intel BIOSes

Err codemadness.org 70 i 44688 Err codemadness.org 70 i 44689
Two recently disclosed hardware bugs affected Intel cpus:	Err	codemadness.org	70
i 44690 	Err	codemadness.org	70
i 44691      - TLBleed	Err	codemadness.org	70
i 44692 	Err	codemadness.org	70
i 44693      - T1TF (the name "Foreshadow" refers to 1 of 3 aspects of this	Err	codemadness.org	70
i 44694              bug, more aspects are surely on the way)	Err	codemadness.org	70
i 44695 	Err	codemadness.org	70
i 44696 Solving these bugs requires new cpu microcode, a coding workaround,	Err	codemadness.org	70
i 44697 *AND* the disabling of SMT / Hyperthreading.	Err	codemadness.org	70
i 44698 	Err	codemadness.org	70
i 44699 SMT is fundamentally broken because it shares resources between the two	Err	codemadness.org	70
i 44700 cpu instances and those shared resources lack security differentiators.	Err	codemadness.org	70
i 44701 Some of these side channel attacks aren't trivial, but we can expect	Err	codemadness.org	70
i 44702 most of them to eventually work and leak kernel or cross-VM memory in	Err	codemadness.org	70
i 44703 common usage circumstances, even such as javascript directly in a	Err	codemadness.org	70
i 44704 browser.	Err	codemadness.org	70
i 44705 	Err	codemadness.org	70
i 44706 There will be more hardware bugs and artifacts disclosed.  Due to the	Err	codemadness.org	70
i 44707 way SMT interacts with speculative execution on Intel cpus, I expect SMT	Err	codemadness.org	70
i 44708 to exacerbate most of the future problems.	Err	codemadness.org	70
i 44709 	Err	codemadness.org	70
i 44710 A few months back, I urged people to disable hyperthreading on all	Err	codemadness.org	70
i 44711 Intel cpus.  I need to repeat that:	Err	codemadness.org	70
i 44712 	Err	codemadness.org	70
i 44713     DISABLE HYPERTHREADING ON ALL YOUR INTEL MACHINES IN THE BIOS.	Err	codemadness.org	70
i 44714 	Err	codemadness.org	70
i 44715 Also, update your BIOS firmware, if you can.	Err	codemadness.org	70
i 44716 	Err	codemadness.org	70
i 44717 OpenBSD -current (and therefore 6.4) will not use hyperthreading if it	Err	codemadness.org	70
i 44718 is enabled, and will update the cpu microcode if possible.	Err	codemadness.org	70
i 44719 	Err	codemadness.org	70
i 44720 But what about 6.2 and 6.3?	Err	codemadness.org	70
i 44721 	Err	codemadness.org	70
i 44722 The situation is very complex, continually evolving, and is taking too	Err	codemadness.org	70
i 44723 much manpower away from other tasks.  Furthermore, Intel isn't telling	Err	codemadness.org	70
i 44724 us what is coming next, and are doing a terrible job by not publically	Err	codemadness.org	70
i 44725 documenting what operating systems must do to resolve the problems.  We	Err	codemadness.org	70
i 44726 are having to do research by reading other operating systems.  There is	Err	codemadness.org	70
i 44727 no time left to backport the changes -- we will not be issuing a	Err	codemadness.org	70
i 44728 complete set of errata and syspatches against 6.2 and 6.3 because it is	Err	codemadness.org	70
i 44729 turning into a distraction.	Err	codemadness.org	70
i 44730 	Err	codemadness.org	70
i 44731 Rather than working on every required patch for 6.2/6.3, we will	Err	codemadness.org	70
i 44732 re-focus manpower and make sure 6.4 contains the best solutions	Err	codemadness.org	70
i 44733 possible.	Err	codemadness.org	70
i 44734 	Err	codemadness.org	70
i 44735 So please try take responsibility for your own machines: Disable SMT in	Err	codemadness.org	70
i 44736 the BIOS menu, and upgrade your BIOS if you can.	Err	codemadness.org	70
i 44737 	Err	codemadness.org	70
i 44738 I'm going to spend my money at a more trustworthy vendor in the future.	Err	codemadness.org	70
i 44739 
Err codemadness.org 70 i 44740 Err codemadness.org 70 i 44741


Err codemadness.org 70 i 44742 Err codemadness.org 70 i 44743

###Get Morrowind running on OpenBSD in 5 simple steps

Err codemadness.org 70 i 44744 Err codemadness.org 70 i 44745
Err codemadness.org 70 i 44746

This article contains brief instructions on how to get one of the greatest Western RPGs of all time, The Elder Scrolls III: Morrowind, running on OpenBSD using the OpenMW open source engine recreation. These instructions were tested on a ThinkPad X1 Carbon Gen 3. The information was adapted from this OpenMW forum thread: https://forum.openmw.org/viewtopic.php?t=3510

Err codemadness.org 70 i 44747
Err codemadness.org 70 i 44748 Err codemadness.org 70 i 44749
    Err codemadness.org 70 i 44750
  • Err codemadness.org 70 i 44751
      Err codemadness.org 70 i 44752
    1. Purchase and download the DRM-free version from GOG (also considered the best version due to the high quality PDF guide that it comes with): https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition
    2. Err codemadness.org 70 i 44753
    Err codemadness.org 70 i 44754
  • Err codemadness.org 70 i 44755
  • Err codemadness.org 70 i 44756
      Err codemadness.org 70 i 44757
    1. Install the required packages built from the ports tree as root. openmw is the recreated game engine, and innoextract is how we will get the game data files out of the win32 executable.
    2. Err codemadness.org 70 i 44758
    Err codemadness.org 70 i 44759
  • Err codemadness.org 70 i 44760
Err codemadness.org 70 i 44761 Err codemadness.org 70 i 44762

pkg_add openmw innoextract

Err codemadness.org 70 i 44763 Err codemadness.org 70 i 44764
    Err codemadness.org 70 i 44765
  • Err codemadness.org 70 i 44766
      Err codemadness.org 70 i 44767
    1. Move the file from GOG setup_tes_morrowind_goty_2.0.0.7.exe into its own directory morrowind/ due to innoextract’s default behaviour of extracting into the current directory. Then type:
    2. Err codemadness.org 70 i 44768
    Err codemadness.org 70 i 44769
  • Err codemadness.org 70 i 44770
Err codemadness.org 70 i 44771 Err codemadness.org 70 i 44772

innoextract setup_tes_morrowind_goty_2.0.0.7.exe

Err codemadness.org 70 i 44773 Err codemadness.org 70 i 44774
    Err codemadness.org 70 i 44775
  • Err codemadness.org 70 i 44776
      Err codemadness.org 70 i 44777
    1. Type openmw-wizard and follow the straightforward instructions. Note that you have a pre-existing installation, and select the morrowind/app/Data Files folder that innoextract extracted.
    2. Err codemadness.org 70 i 44778
    Err codemadness.org 70 i 44779
  • Err codemadness.org 70 i 44780
  • Err codemadness.org 70 i 44781
      Err codemadness.org 70 i 44782
    1. Type in openmw-launcher, toggle the settings to your preferences, and then hit play!
    2. Err codemadness.org 70 i 44783
    Err codemadness.org 70 i 44784
  • Err codemadness.org 70 i 44785
Err codemadness.org 70 i 44786 Err codemadness.org 70 i 44787


Err codemadness.org 70 i 44788 Err codemadness.org 70 i 44789

iXsystems
Err codemadness.org 70 i 44790 https://twitter.com/allanjude/status/1034647571124367360

Err codemadness.org 70 i 44791 Err codemadness.org 70 i 44792

###My First Clang Bug

Err codemadness.org 70 i 44793 Err codemadness.org 70 i 44794
Err codemadness.org 70 i 44795

Part of the role of being a packager is compiling lots (and lots) of packages. That means compiling lots of code from interesting places and in a variety of styles. In my opinion, being a good packager also means providing feedback to upstream when things are bad. That means filing upstream bugs when possible, and upstreaming patches.
Err codemadness.org 70 i 44796 One of the “exciting” moments in packaging is when tools change. So each and every major CMake update is an exercise in recompiling 2400 or more packages and adjusting bits and pieces. When a software project was last released in 2013, adjusting it to modern tools can become quite a chore (e.g. Squid Report Generator). CMake is excellent for maintaining backwards compatibility, generally accommodating old software with new policies. The most recent 3.12 release candidate had three issues filed from the FreeBSD side, all from fallout with older software. I consider the hours put into good bug reports, part of being a good citizen of the Free Software world.
Err codemadness.org 70 i 44797 My most interesting bug this week, though, came from one line of code somewhere in Kleopatra: Q_UNUSED(gpgagent_data);
Err codemadness.org 70 i 44798 That one line triggered a really peculiar link error in KDE’s FreeBSD CI system. Yup … telling the compiler something is unused made it fall over. Commenting out that line got rid of the link error, but introduced a warning about an unused function. Working with KDE-PIM’s Volker Krause, we whittled the problem down to a six-line example program — two lines if you don’t care much for coding style. I’m glad, at that point, that I could throw it over the hedge to the LLVM team with some explanatory text. Watching the process on their side reminds me ever-so-strongly of how things work in KDE (or FreeBSD for that matter): Bugzilla, Phabricator, and git combine to be an effective workflow for developers (perhaps less so for end-users).
Err codemadness.org 70 i 44799 Today I got a note saying that the issue had been resolved. So brief a time for a bug. Live fast. Get squashed young.

Err codemadness.org 70 i 44800
Err codemadness.org 70 i 44801 Err codemadness.org 70 i 44802


Err codemadness.org 70 i 44803 Err codemadness.org 70 i 44804

###DragonFlyBSD Now Runs On The Threadripper 2990WX, Developer Shocked At Performance

Err codemadness.org 70 i 44805 Err codemadness.org 70 i 44806
Err codemadness.org 70 i 44807

Last week I carried out some tests of BSD vs. Linux on the new 32-core / 64-thread Threadripper 2990WX. I tested FreeBSD 11, FreeBSD 12, and TrueOS – those benchmarks will be published in the next few days. I tried DragonFlyBSD, but at the time it wouldn’t boot with this AMD HEDT processor. But now the latest DragonFlyBSD development kernel can handle the 2990WX and the lead DragonFly developer calls this new processor “a real beast” and is stunned by its performance potential.

Err codemadness.org 70 i 44808
Err codemadness.org 70 i 44809 Err codemadness.org 70 i 44810
Err codemadness.org 70 i 44811

When I tried last week, the DragonFlyBSD 5.2.2 stable release nor DragonFlyBSD 5.3 daily snapshot would boot on the 2990WX. But it turns out Matthew Dillon, the lead developer of DragonFlyBSD, picked up a rig and has it running now. So in time for the next 5.4 stable release or those using the daily snapshots can have this 32-core / 64-thread Zen+ CPU running on this operating system long ago forked from FreeBSD.

Err codemadness.org 70 i 44812
Err codemadness.org 70 i 44813 Err codemadness.org 70 i 44814
Err codemadness.org 70 i 44815

In announcing his success in bringing up the 2990WX under DragonFlyBSD, which required a few minor changes, he shared his performance thoughts and hopes for the rig. “The cpu is a real beast, packing 32 cores and 64 threads. It blows away our dual-core Xeon to the tune of being +50% faster in concurrent compile tests, and it also blows away our older 4-socket Opteron (which we call ‘Monster’) by about the same margin. It’s an impressive CPU. For now the new beast is going to be used to help us improve I/O performance through the filesystem, further SMP work (but DFly scales pretty well to 64 threads already), and perhaps some driver to work to support the 10gbe on the mobo.”

Err codemadness.org 70 i 44816
Err codemadness.org 70 i 44817 Err codemadness.org 70 i 44818
Err codemadness.org 70 i 44819

Dillon shared some results on the system as well. " The Threadripper 2990WX is a beast. It is at least 50% faster than both the quad socket opteron and the dual socket Xeon system I tested against. The primary limitation for the 2990WX is likely its 4 channels of DDR4 memory, and like all Zen and Zen+ CPUs, memory performance matters more than CPU frequency (and costs almost no power to pump up the performance). That said, it still blow away a dual-socket Xeon with 3x the number of memory channels. That is impressive!"

Err codemadness.org 70 i 44820
Err codemadness.org 70 i 44821 Err codemadness.org 70 i 44822
Err codemadness.org 70 i 44823

The well known BSD developer also added, “This puts the 2990WX at par efficiency vs a dual-socket Xeon system, and better than the dual-socket Xeon with slower memory and a power cap. This is VERY impressive. I should note that the 2990WX is more specialized with its asymetric NUMA architecture and 32 cores. I think the sweet spot in terms of CPU pricing and efficiency is likely going to be with the 2950X (16-cores/32-threads). It is clear that the 2990WX (32-cores/64-threads) will max out 4-channel memory bandwidth for many workloads, making it a more specialized part. But still awesome…This thing is an incredible beast, I’m glad I got it.”

Err codemadness.org 70 i 44824
Err codemadness.org 70 i 44825 Err codemadness.org 70 i 44826
Err codemadness.org 70 i 44827

While I have the FreeBSD vs. Linux benchmarks from a few days ago, it looks like now on my ever growing TODO list will be re-trying out the newest DragonFlyBSD daily snapshot for seeing how the performance compares in the mix. Stay tuned for the numbers that should be in the next day or two.

Err codemadness.org 70 i 44828
Err codemadness.org 70 i 44829 Err codemadness.org 70 i 44830


Err codemadness.org 70 i 44831 Err codemadness.org 70 i 44832

##Beastie Bits

Err codemadness.org 70 i 44833 Err codemadness.org 70 i 44834 Err codemadness.org 70 i 44847 Err codemadness.org 70 i 44848


Err codemadness.org 70 i 44849 Err codemadness.org 70 i 44850

Tarsnap

Err codemadness.org 70 i 44851 Err codemadness.org 70 i 44852

##Feedback/Questions

Err codemadness.org 70 i 44853 Err codemadness.org 70 i 44854 Err codemadness.org 70 i 44860 Err codemadness.org 70 i 44861


Err codemadness.org 70 i 44862 Err codemadness.org 70 i 44863
    Err codemadness.org 70 i 44864
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 44865
]]> Err codemadness.org 70 i 44866
Err codemadness.org 70 i 44867 Err codemadness.org 70 i 44868 Insight into TrueOS and Trident, stop evildoers with pf-badhost, Flashback to FreeBSDcon ‘99, OpenBSD’s measures against TLBleed, play Morrowind on OpenBSD in 5 steps, DragonflyBSD developers shocked at Threadripper performance, and more.

Err codemadness.org 70 i 44869 Err codemadness.org 70 i 44870

##Headlines
Err codemadness.org 70 i 44871 ###An Insight into the Future of TrueOS BSD and Project Trident

Err codemadness.org 70 i 44872 Err codemadness.org 70 i 44873
Err codemadness.org 70 i 44874

Last month, TrueOS announced that they would be spinning off their desktop offering. The team behind the new project, named Project Trident, have been working furiously towards their first release. They did take a few minutes to answer some of our question about Project Trident and TrueOS. I would like to thank JT and Ken for taking the time to compile these answers.

Err codemadness.org 70 i 44875
Err codemadness.org 70 i 44876 Err codemadness.org 70 i 44877
    Err codemadness.org 70 i 44878
  • It’s FOSS: What is Project Trident?
  • Err codemadness.org 70 i 44879
Err codemadness.org 70 i 44880 Err codemadness.org 70 i 44881
Err codemadness.org 70 i 44882

Project Trident: Project Trident is the continuation of the TrueOS Desktop. Essentially, it is the continuation of the primary “TrueOS software” that people have been using for the past 2 years. The continuing evolution of the entire TrueOS project has reached a stage where it became necessary to reorganize the project. To understand this change, it is important to know the history of the TrueOS project.

Err codemadness.org 70 i 44883
Err codemadness.org 70 i 44884 Err codemadness.org 70 i 44885
Err codemadness.org 70 i 44886

Originally, Kris Moore created PC-BSD. This was a Desktop release of FreeBSD focused on providing a simple and user-friendly graphical experience for FreeBSD. PC-BSD grew and matured over many years. During the evolution of PC-BSD, many users began asking for a server focused version of the software. Kris agreed, and TrueOS was born as a scaled down server version of PC-BSD. In late 2016, more contributors and growth resulted in significant changes to the PC-BSD codebase. Because the new development was so markedly different from the original PC-BSD design, it was decided to rebrand the project.

Err codemadness.org 70 i 44887
Err codemadness.org 70 i 44888 Err codemadness.org 70 i 44889
Err codemadness.org 70 i 44890

TrueOS was chosen as the name for this new direction for PC-BSD as the project had grown beyond providing only a graphical front to FreeBSD and was beginning to make fundamental changes to the FreeBSD operating system. One of these changes was moving PC-BSD from being based on each FreeBSD Release to TrueOS being based on the active and less outdated FreeBSD Current. Other major changes are using OpenRC for service management and being more aggressive about addressing long-standing issues with the FreeBSD release process. TrueOS moved toward a rolling release cycle, twice a year, which tested and merged FreeBSD changes directly from the developer instead of waiting months or even years for the FreeBSD review process to finish. TrueOS also deprecated and removed obsolete technology much more regularly.

Err codemadness.org 70 i 44891
Err codemadness.org 70 i 44892 Err codemadness.org 70 i 44893
Err codemadness.org 70 i 44894

As the TrueOS Project grew, the developers found these changes were needed by other FreeBSD-based projects. These projects began expressing interest in using TrueOS rather than FreeBSD as the base for their project. This demonstrated that TrueOS needed to again evolve into a distribution framework for any BSD project to use. This allows port maintainers and source developers from any BSD project to pool their resources and use the same source repositories while allowing every distribution to still customize, build, and release their own self-contained project. The result is a natural split of the traditional TrueOS team. There were now naturally two teams in the TrueOS project: those working on the build infrastructure and FreeBSD enhancements – the “core” part of the project, and those working on end-user experience and utility – the “desktop” part of the project.

Err codemadness.org 70 i 44895
Err codemadness.org 70 i 44896 Err codemadness.org 70 i 44897
Err codemadness.org 70 i 44898

When the decision was made to formally split the projects, the obvious question that arose was what to call the “Desktop” project. As TrueOS was already positioned to be a BSD distribution platform, the developers agreed the desktop side should pick a new name. There were other considerations too, one notable being that we were concerned that if we continued to call the desktop project “TrueOS Desktop”, it would prevent people from considering TrueOS as the basis for their distribution because of misconceptions that TrueOS was a desktop-focused OS. It also helps to “level the playing field” for other desktop distributions like GhostBSD so that TrueOS is not viewed as having a single “blessed” desktop version.

Err codemadness.org 70 i 44899
Err codemadness.org 70 i 44900 Err codemadness.org 70 i 44901
    Err codemadness.org 70 i 44902
  • It’s FOSS: What features will TrueOS add to the FreeBSD base?
  • Err codemadness.org 70 i 44903
Err codemadness.org 70 i 44904 Err codemadness.org 70 i 44905
Err codemadness.org 70 i 44906

Project Trident: TrueOS has already added a number of features to FreeBSD:
Err codemadness.org 70 i 44907 OpenRC replaces rc.d for service management
Err codemadness.org 70 i 44908 LibreSSL in base
Err codemadness.org 70 i 44909 Root NSS certificates out-of-box
Err codemadness.org 70 i 44910 Scriptable installations (pc-sysinstall)
Err codemadness.org 70 i 44911 The full list of changes can be seen on the TrueOS repository (https://github.com/trueos/trueos/blob/trueos-master/README.md). This list does change quite regularly as FreeBSD development itself changes.

Err codemadness.org 70 i 44912
Err codemadness.org 70 i 44913 Err codemadness.org 70 i 44914
    Err codemadness.org 70 i 44915
  • It’s FOSS: I understand that TrueOS will have a new feature that will make creating a desktop spin of TrueOS very easy. Could you explain that new feature?
  • Err codemadness.org 70 i 44916
Err codemadness.org 70 i 44917 Err codemadness.org 70 i 44918
Err codemadness.org 70 i 44919

Project Trident: Historically, one of the biggest hurdles for creating a desktop version of FreeBSD is that the build options for packages are tuned for servers rather than desktops. This means a desktop distribution cannot use the pre-built packages from FreeBSD and must build, use, and maintain a custom package repository. Maintaining a fork of the FreeBSD ports tree is no trivial task. TrueOS has created a full distribution framework so now all it takes to create a custom build of FreeBSD is a single JSON manifest file. There is now a single “source of truth” for the source and ports repositories that is maintained by the TrueOS team and regularly tagged with “stable” build markers. All projects can use this framework, which makes updates trivial.

Err codemadness.org 70 i 44920
Err codemadness.org 70 i 44921 Err codemadness.org 70 i 44922
    Err codemadness.org 70 i 44923
  • It’s FOSS: Do you think that the new focus of TrueOS will lead to the creation of more desktop-centered BSDs?
  • Err codemadness.org 70 i 44924
Err codemadness.org 70 i 44925 Err codemadness.org 70 i 44926
Err codemadness.org 70 i 44927

Project Trident: That is the hope. Historically, creating a desktop-centered BSD has required a lot of specialized knowledge. Not only do most people not have this knowledge, but many do not even know what they need to learn until they start troubleshooting. TrueOS is trying to drastically simplify this process to enable the wider Open Source community to experiment, contribute, and enjoy BSD-based projects.

Err codemadness.org 70 i 44928
Err codemadness.org 70 i 44929 Err codemadness.org 70 i 44930
    Err codemadness.org 70 i 44931
  • It’s FOSS: What is going to happen to TrueOS Pico? Will Project Trident have ARM support?
  • Err codemadness.org 70 i 44932
Err codemadness.org 70 i 44933 Err codemadness.org 70 i 44934
Err codemadness.org 70 i 44935

Project Trident: Project Trident will be dependent on TrueOS for ARM support. The developers have talked about the possibility of supporting ARM64 and RISC-V architectures, but it is not possible at the current time. If more Open Source contributors want to help develop ARM and RISC-V support, the TrueOS project is definitely willing to help test and integrate that code.

Err codemadness.org 70 i 44936
Err codemadness.org 70 i 44937 Err codemadness.org 70 i 44938
    Err codemadness.org 70 i 44939
  • It’s FOSS: What does this change (splitting Trus OS into Project Trident) mean for the Lumina desktop environment?
  • Err codemadness.org 70 i 44940
Err codemadness.org 70 i 44941 Err codemadness.org 70 i 44942
Err codemadness.org 70 i 44943

Project Trident: Long-term, almost nothing. Lumina is still the desktop environment for Project Trident and will continue to be developed and enhanced alongside Project Trident just as it was for TrueOS. Short-term, we will be delaying the release of Lumina 2.0 and will release an updated version of the 1.x branch (1.5.0) instead. This is simply due to all the extra overhead to get Project Trident up and running. When things settle down into a rhythm, the development of Lumina will pick up once again.

Err codemadness.org 70 i 44944
Err codemadness.org 70 i 44945 Err codemadness.org 70 i 44946
    Err codemadness.org 70 i 44947
  • It’s FOSS: Are you planning on including any desktop environments besides Lumina?
  • Err codemadness.org 70 i 44948
Err codemadness.org 70 i 44949 Err codemadness.org 70 i 44950
Err codemadness.org 70 i 44951

Project Trident: While Lumina is included by default, all of the other popular desktop environments will be available in the package repo exactly as they had been before.

Err codemadness.org 70 i 44952
Err codemadness.org 70 i 44953 Err codemadness.org 70 i 44954
    Err codemadness.org 70 i 44955
  • It’s FOSS: Any plans to include Steam to increase the userbase?
  • Err codemadness.org 70 i 44956
Err codemadness.org 70 i 44957 Err codemadness.org 70 i 44958
Err codemadness.org 70 i 44959

Project Trident: Steam is still unavailable natively on FreeBSD, so we do not have any plans to ship it out of the box currently. In the meantime, we highly recommend installing the Windows version of Steam through the PlayOnBSD utility.

Err codemadness.org 70 i 44960
Err codemadness.org 70 i 44961 Err codemadness.org 70 i 44962
    Err codemadness.org 70 i 44963
  • It’s FOSS: What will happen to the AppCafe?
  • Err codemadness.org 70 i 44964
Err codemadness.org 70 i 44965 Err codemadness.org 70 i 44966
Err codemadness.org 70 i 44967

Project Trident: The AppCafe is the name of the graphical interface for the “pkg” utility integrated into the SysAdm client created by TrueOS. This hasn’t changed. SysAdm, the graphical client, and by extension AppCafe are still available for all TrueOS-based distributions to use.

Err codemadness.org 70 i 44968
Err codemadness.org 70 i 44969 Err codemadness.org 70 i 44970
    Err codemadness.org 70 i 44971
  • It’s FOSS: Does Project Trident have any corporate sponsors lined up? If not, would you be open to it or would you prefer that it be community supported?
  • Err codemadness.org 70 i 44972
Err codemadness.org 70 i 44973 Err codemadness.org 70 i 44974
Err codemadness.org 70 i 44975

Project Trident: iXsystems is the first corporate sponsor of Project Trident and we are always open to other sponsorships as well. We would prefer smaller individual contributions from the community, but we understand that larger project needs or special-purpose goals are much more difficult to achieve without allowing larger corporate sponsorships as well. In either case, Project Trident is always looking out for the best interests of the community and will not allow intrusive or harmful code to enter the project even if a company or individual tries to make that code part of a sponsorship deal.

Err codemadness.org 70 i 44976
Err codemadness.org 70 i 44977 Err codemadness.org 70 i 44978
    Err codemadness.org 70 i 44979
  • It’s FOSS: BSD always seems to be lagging in terms of support for newer devices. Will TrueOS be able to remedy that with a quicker release cycle?
  • Err codemadness.org 70 i 44980
Err codemadness.org 70 i 44981 Err codemadness.org 70 i 44982
Err codemadness.org 70 i 44983

Project Trident: Yes! That was a primary reason for TrueOS to start tracking the CURRENT branch of FreeBSD in 2016. This allows for the changes that FreeBSD developers are making, including new hardware support, to be available much sooner than if we followed the FreeBSD release cycle.

Err codemadness.org 70 i 44984
Err codemadness.org 70 i 44985 Err codemadness.org 70 i 44986
    Err codemadness.org 70 i 44987
  • It’s FOSS: Do you have any idea when Project Trident will have its first release?
  • Err codemadness.org 70 i 44988
Err codemadness.org 70 i 44989 Err codemadness.org 70 i 44990
Err codemadness.org 70 i 44991

Project Trident: Right now we are targeting a late August release date. This is because Project Trident is “kicking the wheels” on the new TrueOS distribution system. We want to ensure everything is working smoothly before we release. Going forward, we plan on having regular package updates every week or two for the end-user packages and a new release of Trident with an updated OS version every 6 months. This will follow the TrueOS release schedule with a small time offset.

Err codemadness.org 70 i 44992
Err codemadness.org 70 i 44993 Err codemadness.org 70 i 44994


Err codemadness.org 70 i 44995 Err codemadness.org 70 i 44996

###pf-badhost: Stop the evil doers in their tracks!

Err codemadness.org 70 i 44997 Err codemadness.org 70 i 44998
Err codemadness.org 70 i 44999

pf-badhost is a simple, easy to use badhost blocker that uses the power of the pf firewall to block many of the internet’s biggest irritants. Annoyances such as ssh bruteforcers are largely eliminated. Shodan scans and bots looking for webservers to abuse are stopped dead in their tracks. When used to filter outbound traffic, pf-badhost blocks many seedy, spooky malware containing and/or compromised webhosts.
Err codemadness.org 70 i 45000 Filtering performance is exceptional, as the badhost list is stored in a pf table. To quote the OpenBSD FAQ page regarding tables: “the lookup time on a table holding 50,000 addresses is only slightly more than for one holding 50 addresses.”
Err codemadness.org 70 i 45001 pf-badhost is simple and powerful. The blocklists are pulled from quality, trusted sources. The ‘Firehol’, ‘Emerging Threats’ and ‘Binary Defense’ block lists are used as they are popular, regularly updated lists of the internet’s most egregious offenders. The pf-badhost.sh script can easily be expanded to use additional or alternate blocklists.
Err codemadness.org 70 i 45002 pf-badhost works best when used in conjunction with unbound-adblock for the ultimate badhost blocking.

Err codemadness.org 70 i 45003
Err codemadness.org 70 i 45004 Err codemadness.org 70 i 45005
    Err codemadness.org 70 i 45006
  • Notes:
  • Err codemadness.org 70 i 45007
  • If you are trying to run pf-badhost on a LAN or are using NAT, you will want to add a rule to your pf.conf appearing BEFORE the pf-badhost rules allowing traffic to and from your local subnet so that you can still access your gateway and any DNS servers.
  • Err codemadness.org 70 i 45008
  • Conversely, adding a line to pf-badhost.sh that removes your subnet range from the <pfbadhost> table should also work. Just make sure you choose a subnet range / CIDR block that is actually in the list. 192.168.0.0/16, 172.16.0.0/12 and 10.0.0.0/8 are the most common home/office subnet ranges.
  • Err codemadness.org 70 i 45009
Err codemadness.org 70 i 45010 Err codemadness.org 70 i 45011


Err codemadness.org 70 i 45012 Err codemadness.org 70 i 45013

DigitalOcean
Err codemadness.org 70 i 45014 https://do.co/bsdnow

Err codemadness.org 70 i 45015 Err codemadness.org 70 i 45016

###FLASHBACK: FreeBSDCon’99: Fans of Linux’s lesser-known sibling gather for the first time

Err codemadness.org 70 i 45017 Err codemadness.org 70 i 45018
Err codemadness.org 70 i 45019

FreeBSD, a port of BSD Unix to Intel, has been around almost as long as Linux has – but without the media hype. Its developer and user community recently got a chance to get together for the first time, and they did it in the city where BSD – the Berkeley Software Distribution – was born some 25 years ago.
Err codemadness.org 70 i 45020 October 17, 1999 marked a milestone in the history of FreeBSD – the first FreeBSD conference was held in the city where it all began, Berkeley, CA. Over 300 developers, users, and interested parties attended from around the globe.
Err codemadness.org 70 i 45021 This was easily 50 percent more people than the conference organizers had expected. This first conference was meant to be a gathering mostly for developers and FreeBSD advocates. The turnout was surprisingly (and gratifyingly) large.
Err codemadness.org 70 i 45022 In fact, attendance exceeded expectations so much that, for instance, Kirk McKusick had to add a second, identical tutorial on FreeBSD internals, because it was impossible for everyone to attend the first!
Err codemadness.org 70 i 45023 But for a first-ever conference, I was impressed by how smoothly everything seemed to go. Sessions started on time, and the sessions I attended were well-run; nothing seemed to be too cold, dark, loud, late, or off-center.
Err codemadness.org 70 i 45024 Of course, the best part about a conference such as this one is the opportunity to meet with other people who share similar interests. Lunches and breaks were a good time to meet people, as was the Tuesday night beer bash.
Err codemadness.org 70 i 45025 The Wednesday night reception was of a type unusual for the technical conferences I usually attend – a three-hour Hornblower dinner cruise on San Francisco Bay. Not only did we all enjoy excellent food and company, but we all got to go up on deck and watch the lights of San Francisco and Berkeley as we drifted by. Although it’s nice when a conference attracts thousands of attendees, there are some things that can only be done with smaller groups of people; this was one of them.
Err codemadness.org 70 i 45026 In short, this was a tiny conference, but a well-run one.

Err codemadness.org 70 i 45027
Err codemadness.org 70 i 45028 Err codemadness.org 70 i 45029
    Err codemadness.org 70 i 45030
  • Sessions
  • Err codemadness.org 70 i 45031
Err codemadness.org 70 i 45032 Err codemadness.org 70 i 45033
Err codemadness.org 70 i 45034

Although it was a relatively small conference, the number and quality of the sessions belied the size. Each of the three days of the conference featured a different keynote speaker. In addition to Jordan Hubbard, Jeremy Allison spoke on “Samba Futures” on day two, and Brian Behlendorf gave a talk on “FreeBSD and Apache: A Perfect Combo” to start off the third day.
Err codemadness.org 70 i 45035 The conference sessions themselves were divided into six tracks: advocacy, business, development, networking, security, and panels. The panels track featured three different panels, made up of three different slices of the community: the FreeBSD core team, a press panel, and a prominent user panel with representatives from such prominent commercial users as Yahoo! and USWest.
Err codemadness.org 70 i 45036 I was especially interested in Apple Computer’s talk in the development track. Wilfredo Sanchez, technical lead for open source projects at Apple (no, that’s not an oxymoron!) spoke about Apple’s Darwin project, the company’s operating system road map, and the role of BSD (and, specifically, FreeBSD) in Apple’s plans.
Err codemadness.org 70 i 45037 Apple and Unix have had a long and uneasy history, from the Lisa through the A/UX project to today. Personally, I’m very optimistic about the chances for the Darwin project to succeed. Apple’s core OS kernel team has chosen FreeBSD as its reference platform. I’m looking forward to what this partnership will bring to both sides.
Err codemadness.org 70 i 45038 Other development track sessions included in-depth tutorials on writing device drivers, basics of the Vinum Volume Manager, Fibre Channel, development models (the open repository model), and the FreeBSD Documentation Project (FDP). If you’re interested in contributing to the FreeBSD project, the FDP is a good place to start.
Err codemadness.org 70 i 45039 Advocacy sessions included “How One Person Can Make a Difference” (a timeless topic that would find a home at any technical conference!) and “Starting and Managing A User Group” (trials and tribulations as well as rewards).
Err codemadness.org 70 i 45040 The business track featured speakers from three commercial users of FreeBSD: Cybernet, USWest, and Applix. Applix presented its port of Applixware Office for FreeBSD and explained how Applix has taken the core services of Applixware into open source.
Err codemadness.org 70 i 45041 Commercial applications and open source were once a rare combination; we can only hope the trend away from that state of affairs will continue.

Err codemadness.org 70 i 45042
Err codemadness.org 70 i 45043 Err codemadness.org 70 i 45044
    Err codemadness.org 70 i 45045
  • Commercial use of FreeBSD
  • Err codemadness.org 70 i 45046
Err codemadness.org 70 i 45047 Err codemadness.org 70 i 45048
Err codemadness.org 70 i 45049

The use of FreeBSD in embedded applications is increasing as well – and it is increasing at the same rate that hardware power is. These days, even inexpensive systems are able to run a BSD kernel.
Err codemadness.org 70 i 45050 The BSD license and the solid TCP/IP stack prove significant enticements to this market as well. (Unlike the GNU Public License, the BSD license does not require that vendors make derivative works open source.)
Err codemadness.org 70 i 45051 Companies such as USWest and Verio use FreeBSD for a wide variety of different Internet services.
Err codemadness.org 70 i 45052 Yahoo! and Hotmail are examples of companies that use FreeBSD extensively for more specific purposes. Yahoo!, for example, has many hundreds of FreeBSD boxes, and Hotmail has almost 2000 FreeBSD machines at its data center in the San Francisco Bay area.
Err codemadness.org 70 i 45053 Hotmail is owned by Microsoft, so the fact that it runs FreeBSD is a secret. Don’t tell anyone…
Err codemadness.org 70 i 45054 When asked to comment on the increasing commercial interest in BSD, Hubbard said that FreeBSD is learning the Red Hat lesson. “Walnut Creek and others with business interests in FreeBSD have learned a few things from the Red Hat IPO,” he said, “and nobody is just sitting around now, content with business as usual. It’s clearly business as unusual in the open source world today.”
Err codemadness.org 70 i 45055 Hubbard had also singled out some of BSD’s commercial partners, such as Whistle Communications, for praise in his opening day keynote. These partners play a key role in moving the project forward, he said, by contributing various enhancements and major new systems, such as Netgraph, as well as by contributing paid employee time spent on FreeBSD.
Err codemadness.org 70 i 45056 Even short FreeBSD-related contacts can yield good results, Hubbard said. An example of this is the new jail() security code introduced in FreeBSD 3.x and 4.0, which was contributed by R & D Associates. A number of ISPs are also now donating the hardware and bandwidth that allows the project to provide more resource mirrors and experimental development sites.

Err codemadness.org 70 i 45057
Err codemadness.org 70 i 45058 Err codemadness.org 70 i 45059
    Err codemadness.org 70 i 45060
  • See you next year
  • Err codemadness.org 70 i 45061
Err codemadness.org 70 i 45062 Err codemadness.org 70 i 45063
Err codemadness.org 70 i 45064

And speaking of corporate sponsors, thanks go to Walnut Creek for sponsoring the conference, and to Yahoo! for covering all the expenses involved in bringing the entire FreeBSD core team to Berkeley.
Err codemadness.org 70 i 45065 As a fan of FreeBSD, I’m happy to see that the project has finally produced a conference. It was time: many of the 16 core team members had been working together on a regular basis for nearly seven years without actually meeting face to face.
Err codemadness.org 70 i 45066 It’s been an interesting year for open source projects. I’m looking forward to the next year – and the next BSD conference – to be even better.

Err codemadness.org 70 i 45067
Err codemadness.org 70 i 45068 Err codemadness.org 70 i 45069


Err codemadness.org 70 i 45070 Err codemadness.org 70 i 45071

##News Roundup
Err codemadness.org 70 i 45072 ###OpenBSD Recommends: Disable SMT/Hyperthreading in all Intel BIOSes

Err codemadness.org 70 i 45073 Err codemadness.org 70 i 45074
Two recently disclosed hardware bugs affected Intel cpus:	Err	codemadness.org	70
i 45075 	Err	codemadness.org	70
i 45076      - TLBleed	Err	codemadness.org	70
i 45077 	Err	codemadness.org	70
i 45078      - T1TF (the name "Foreshadow" refers to 1 of 3 aspects of this	Err	codemadness.org	70
i 45079              bug, more aspects are surely on the way)	Err	codemadness.org	70
i 45080 	Err	codemadness.org	70
i 45081 Solving these bugs requires new cpu microcode, a coding workaround,	Err	codemadness.org	70
i 45082 *AND* the disabling of SMT / Hyperthreading.	Err	codemadness.org	70
i 45083 	Err	codemadness.org	70
i 45084 SMT is fundamentally broken because it shares resources between the two	Err	codemadness.org	70
i 45085 cpu instances and those shared resources lack security differentiators.	Err	codemadness.org	70
i 45086 Some of these side channel attacks aren't trivial, but we can expect	Err	codemadness.org	70
i 45087 most of them to eventually work and leak kernel or cross-VM memory in	Err	codemadness.org	70
i 45088 common usage circumstances, even such as javascript directly in a	Err	codemadness.org	70
i 45089 browser.	Err	codemadness.org	70
i 45090 	Err	codemadness.org	70
i 45091 There will be more hardware bugs and artifacts disclosed.  Due to the	Err	codemadness.org	70
i 45092 way SMT interacts with speculative execution on Intel cpus, I expect SMT	Err	codemadness.org	70
i 45093 to exacerbate most of the future problems.	Err	codemadness.org	70
i 45094 	Err	codemadness.org	70
i 45095 A few months back, I urged people to disable hyperthreading on all	Err	codemadness.org	70
i 45096 Intel cpus.  I need to repeat that:	Err	codemadness.org	70
i 45097 	Err	codemadness.org	70
i 45098     DISABLE HYPERTHREADING ON ALL YOUR INTEL MACHINES IN THE BIOS.	Err	codemadness.org	70
i 45099 	Err	codemadness.org	70
i 45100 Also, update your BIOS firmware, if you can.	Err	codemadness.org	70
i 45101 	Err	codemadness.org	70
i 45102 OpenBSD -current (and therefore 6.4) will not use hyperthreading if it	Err	codemadness.org	70
i 45103 is enabled, and will update the cpu microcode if possible.	Err	codemadness.org	70
i 45104 	Err	codemadness.org	70
i 45105 But what about 6.2 and 6.3?	Err	codemadness.org	70
i 45106 	Err	codemadness.org	70
i 45107 The situation is very complex, continually evolving, and is taking too	Err	codemadness.org	70
i 45108 much manpower away from other tasks.  Furthermore, Intel isn't telling	Err	codemadness.org	70
i 45109 us what is coming next, and are doing a terrible job by not publically	Err	codemadness.org	70
i 45110 documenting what operating systems must do to resolve the problems.  We	Err	codemadness.org	70
i 45111 are having to do research by reading other operating systems.  There is	Err	codemadness.org	70
i 45112 no time left to backport the changes -- we will not be issuing a	Err	codemadness.org	70
i 45113 complete set of errata and syspatches against 6.2 and 6.3 because it is	Err	codemadness.org	70
i 45114 turning into a distraction.	Err	codemadness.org	70
i 45115 	Err	codemadness.org	70
i 45116 Rather than working on every required patch for 6.2/6.3, we will	Err	codemadness.org	70
i 45117 re-focus manpower and make sure 6.4 contains the best solutions	Err	codemadness.org	70
i 45118 possible.	Err	codemadness.org	70
i 45119 	Err	codemadness.org	70
i 45120 So please try take responsibility for your own machines: Disable SMT in	Err	codemadness.org	70
i 45121 the BIOS menu, and upgrade your BIOS if you can.	Err	codemadness.org	70
i 45122 	Err	codemadness.org	70
i 45123 I'm going to spend my money at a more trustworthy vendor in the future.	Err	codemadness.org	70
i 45124 
Err codemadness.org 70 i 45125 Err codemadness.org 70 i 45126


Err codemadness.org 70 i 45127 Err codemadness.org 70 i 45128

###Get Morrowind running on OpenBSD in 5 simple steps

Err codemadness.org 70 i 45129 Err codemadness.org 70 i 45130
Err codemadness.org 70 i 45131

This article contains brief instructions on how to get one of the greatest Western RPGs of all time, The Elder Scrolls III: Morrowind, running on OpenBSD using the OpenMW open source engine recreation. These instructions were tested on a ThinkPad X1 Carbon Gen 3. The information was adapted from this OpenMW forum thread: https://forum.openmw.org/viewtopic.php?t=3510

Err codemadness.org 70 i 45132
Err codemadness.org 70 i 45133 Err codemadness.org 70 i 45134
    Err codemadness.org 70 i 45135
  • Err codemadness.org 70 i 45136
      Err codemadness.org 70 i 45137
    1. Purchase and download the DRM-free version from GOG (also considered the best version due to the high quality PDF guide that it comes with): https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition
    2. Err codemadness.org 70 i 45138
    Err codemadness.org 70 i 45139
  • Err codemadness.org 70 i 45140
  • Err codemadness.org 70 i 45141
      Err codemadness.org 70 i 45142
    1. Install the required packages built from the ports tree as root. openmw is the recreated game engine, and innoextract is how we will get the game data files out of the win32 executable.
    2. Err codemadness.org 70 i 45143
    Err codemadness.org 70 i 45144
  • Err codemadness.org 70 i 45145
Err codemadness.org 70 i 45146 Err codemadness.org 70 i 45147

pkg_add openmw innoextract

Err codemadness.org 70 i 45148 Err codemadness.org 70 i 45149
    Err codemadness.org 70 i 45150
  • Err codemadness.org 70 i 45151
      Err codemadness.org 70 i 45152
    1. Move the file from GOG setup_tes_morrowind_goty_2.0.0.7.exe into its own directory morrowind/ due to innoextract’s default behaviour of extracting into the current directory. Then type:
    2. Err codemadness.org 70 i 45153
    Err codemadness.org 70 i 45154
  • Err codemadness.org 70 i 45155
Err codemadness.org 70 i 45156 Err codemadness.org 70 i 45157

innoextract setup_tes_morrowind_goty_2.0.0.7.exe

Err codemadness.org 70 i 45158 Err codemadness.org 70 i 45159
    Err codemadness.org 70 i 45160
  • Err codemadness.org 70 i 45161
      Err codemadness.org 70 i 45162
    1. Type openmw-wizard and follow the straightforward instructions. Note that you have a pre-existing installation, and select the morrowind/app/Data Files folder that innoextract extracted.
    2. Err codemadness.org 70 i 45163
    Err codemadness.org 70 i 45164
  • Err codemadness.org 70 i 45165
  • Err codemadness.org 70 i 45166
      Err codemadness.org 70 i 45167
    1. Type in openmw-launcher, toggle the settings to your preferences, and then hit play!
    2. Err codemadness.org 70 i 45168
    Err codemadness.org 70 i 45169
  • Err codemadness.org 70 i 45170
Err codemadness.org 70 i 45171 Err codemadness.org 70 i 45172


Err codemadness.org 70 i 45173 Err codemadness.org 70 i 45174

iXsystems
Err codemadness.org 70 i 45175 https://twitter.com/allanjude/status/1034647571124367360

Err codemadness.org 70 i 45176 Err codemadness.org 70 i 45177

###My First Clang Bug

Err codemadness.org 70 i 45178 Err codemadness.org 70 i 45179
Err codemadness.org 70 i 45180

Part of the role of being a packager is compiling lots (and lots) of packages. That means compiling lots of code from interesting places and in a variety of styles. In my opinion, being a good packager also means providing feedback to upstream when things are bad. That means filing upstream bugs when possible, and upstreaming patches.
Err codemadness.org 70 i 45181 One of the “exciting” moments in packaging is when tools change. So each and every major CMake update is an exercise in recompiling 2400 or more packages and adjusting bits and pieces. When a software project was last released in 2013, adjusting it to modern tools can become quite a chore (e.g. Squid Report Generator). CMake is excellent for maintaining backwards compatibility, generally accommodating old software with new policies. The most recent 3.12 release candidate had three issues filed from the FreeBSD side, all from fallout with older software. I consider the hours put into good bug reports, part of being a good citizen of the Free Software world.
Err codemadness.org 70 i 45182 My most interesting bug this week, though, came from one line of code somewhere in Kleopatra: Q_UNUSED(gpgagent_data);
Err codemadness.org 70 i 45183 That one line triggered a really peculiar link error in KDE’s FreeBSD CI system. Yup … telling the compiler something is unused made it fall over. Commenting out that line got rid of the link error, but introduced a warning about an unused function. Working with KDE-PIM’s Volker Krause, we whittled the problem down to a six-line example program — two lines if you don’t care much for coding style. I’m glad, at that point, that I could throw it over the hedge to the LLVM team with some explanatory text. Watching the process on their side reminds me ever-so-strongly of how things work in KDE (or FreeBSD for that matter): Bugzilla, Phabricator, and git combine to be an effective workflow for developers (perhaps less so for end-users).
Err codemadness.org 70 i 45184 Today I got a note saying that the issue had been resolved. So brief a time for a bug. Live fast. Get squashed young.

Err codemadness.org 70 i 45185
Err codemadness.org 70 i 45186 Err codemadness.org 70 i 45187


Err codemadness.org 70 i 45188 Err codemadness.org 70 i 45189

###DragonFlyBSD Now Runs On The Threadripper 2990WX, Developer Shocked At Performance

Err codemadness.org 70 i 45190 Err codemadness.org 70 i 45191
Err codemadness.org 70 i 45192

Last week I carried out some tests of BSD vs. Linux on the new 32-core / 64-thread Threadripper 2990WX. I tested FreeBSD 11, FreeBSD 12, and TrueOS – those benchmarks will be published in the next few days. I tried DragonFlyBSD, but at the time it wouldn’t boot with this AMD HEDT processor. But now the latest DragonFlyBSD development kernel can handle the 2990WX and the lead DragonFly developer calls this new processor “a real beast” and is stunned by its performance potential.

Err codemadness.org 70 i 45193
Err codemadness.org 70 i 45194 Err codemadness.org 70 i 45195
Err codemadness.org 70 i 45196

When I tried last week, the DragonFlyBSD 5.2.2 stable release nor DragonFlyBSD 5.3 daily snapshot would boot on the 2990WX. But it turns out Matthew Dillon, the lead developer of DragonFlyBSD, picked up a rig and has it running now. So in time for the next 5.4 stable release or those using the daily snapshots can have this 32-core / 64-thread Zen+ CPU running on this operating system long ago forked from FreeBSD.

Err codemadness.org 70 i 45197
Err codemadness.org 70 i 45198 Err codemadness.org 70 i 45199
Err codemadness.org 70 i 45200

In announcing his success in bringing up the 2990WX under DragonFlyBSD, which required a few minor changes, he shared his performance thoughts and hopes for the rig. “The cpu is a real beast, packing 32 cores and 64 threads. It blows away our dual-core Xeon to the tune of being +50% faster in concurrent compile tests, and it also blows away our older 4-socket Opteron (which we call ‘Monster’) by about the same margin. It’s an impressive CPU. For now the new beast is going to be used to help us improve I/O performance through the filesystem, further SMP work (but DFly scales pretty well to 64 threads already), and perhaps some driver to work to support the 10gbe on the mobo.”

Err codemadness.org 70 i 45201
Err codemadness.org 70 i 45202 Err codemadness.org 70 i 45203
Err codemadness.org 70 i 45204

Dillon shared some results on the system as well. " The Threadripper 2990WX is a beast. It is at least 50% faster than both the quad socket opteron and the dual socket Xeon system I tested against. The primary limitation for the 2990WX is likely its 4 channels of DDR4 memory, and like all Zen and Zen+ CPUs, memory performance matters more than CPU frequency (and costs almost no power to pump up the performance). That said, it still blow away a dual-socket Xeon with 3x the number of memory channels. That is impressive!"

Err codemadness.org 70 i 45205
Err codemadness.org 70 i 45206 Err codemadness.org 70 i 45207
Err codemadness.org 70 i 45208

The well known BSD developer also added, “This puts the 2990WX at par efficiency vs a dual-socket Xeon system, and better than the dual-socket Xeon with slower memory and a power cap. This is VERY impressive. I should note that the 2990WX is more specialized with its asymetric NUMA architecture and 32 cores. I think the sweet spot in terms of CPU pricing and efficiency is likely going to be with the 2950X (16-cores/32-threads). It is clear that the 2990WX (32-cores/64-threads) will max out 4-channel memory bandwidth for many workloads, making it a more specialized part. But still awesome…This thing is an incredible beast, I’m glad I got it.”

Err codemadness.org 70 i 45209
Err codemadness.org 70 i 45210 Err codemadness.org 70 i 45211
Err codemadness.org 70 i 45212

While I have the FreeBSD vs. Linux benchmarks from a few days ago, it looks like now on my ever growing TODO list will be re-trying out the newest DragonFlyBSD daily snapshot for seeing how the performance compares in the mix. Stay tuned for the numbers that should be in the next day or two.

Err codemadness.org 70 i 45213
Err codemadness.org 70 i 45214 Err codemadness.org 70 i 45215


Err codemadness.org 70 i 45216 Err codemadness.org 70 i 45217

##Beastie Bits

Err codemadness.org 70 i 45218 Err codemadness.org 70 i 45219 Err codemadness.org 70 i 45232 Err codemadness.org 70 i 45233


Err codemadness.org 70 i 45234 Err codemadness.org 70 i 45235

Tarsnap

Err codemadness.org 70 i 45236 Err codemadness.org 70 i 45237

##Feedback/Questions

Err codemadness.org 70 i 45238 Err codemadness.org 70 i 45239 Err codemadness.org 70 i 45245 Err codemadness.org 70 i 45246


Err codemadness.org 70 i 45247 Err codemadness.org 70 i 45248
    Err codemadness.org 70 i 45249
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 45250
]]> Err codemadness.org 70 i 45251
Err codemadness.org 70 i 45252 https://fireside.fm/player/v2/FYhhasNR+wqDVPHme Err codemadness.org 70 i 45253 Err codemadness.org 70 i 45254 ]]> Err codemadness.org 70 i 45255 Err codemadness.org 70 i 45256
Err codemadness.org 70 i 45257 Err codemadness.org 70 i 45258 Episode 260: Hacking Tour of Europe | BSD Now 260 Err codemadness.org 70 i 45259 https://www.bsdnow.tv/260 Err codemadness.org 70 i 45260 http://feed.jupiter.zone/bsdnow#entry-2463 Err codemadness.org 70 i 45261 Thu, 23 Aug 2018 02:00:00 -0700 Err codemadness.org 70 i 45262 Allan Jude Err codemadness.org 70 i 45263 Err codemadness.org 70 i 45264 full Err codemadness.org 70 i 45265 Allan Jude Err codemadness.org 70 i 45266 Trip reports from the Essen Hackathon and BSDCam, CfT: ZFS native encryption and UFS trim consolidation, ZFS performance benchmarks on a FreeBSD server, how to port your OS to EC2, Vint Cerf about traceability, Remote Access console to an RPi3 running FreeBSD, and more. Err codemadness.org 70 i 45267 1:20:14 Err codemadness.org 70 i 45268 no Err codemadness.org 70 i 45269 Err codemadness.org 70 i 45270 Trip reports from the Essen Hackathon and BSDCam, CfT: ZFS native encryption and UFS trim consolidation, ZFS performance benchmarks on a FreeBSD server, how to port your OS to EC2, Vint Cerf about traceability, Remote Access console to an RPi3 running FreeBSD, and more. Err codemadness.org 70 i 45271 <p>##Headlines<br> Err codemadness.org 70 i 45272 <a href="https://wiki.freebsd.org/DevSummit/201808Hackathon">Essen Hackathon &amp; BSDCam 2018 trip report</a></p> Err codemadness.org 70 i 45273 <ul> Err codemadness.org 70 i 45274 <li>Allan and Benedict met at FRA airport and then headed to the Air Rail terminal for our train to Essen where the Hackathon would happen over the weekend of Aug 10 - 12, 2018. Once there, we did not have to wait long until other early-arrivals would show up and soon we had about 10 people gathered for lunch. After buying some take-out pizzas and bringing it back to the Linuxhotel (there was a training still going on there so we could not get into our rooms yet), we sat in the sunny park and talked. More and more people arrived and soon, people started hacking on their laptops. Some people would not arrive until a few hours before midnight, but we already had a record appearance of 20 people in total.</li> Err codemadness.org 70 i 45275 <li>On Saturday, we gathered everyone in one of the seminar rooms that had rooms and chairs for us. After some organizational infos, we did an introductory round and Benedict wrote down on the whiteboard what people were interested in. It was not long until groups formed to talk about SSL in base, weird ZFS scrubs that would go over 100% completion (fixed now). Other people started working on ports, fixing bugs, or wrote documentation. The day ended in a <a href="https://twitter.com/bsdbcr">BBQ in the Linuxhotel park</a>, which was well received by everyone.</li> Err codemadness.org 70 i 45276 <li>On Sunday, after attendees packed up their luggage and stored it in the seminar room, we continued hacking until lunchtime. After a quick group picture, we headed to a local restaurant for the social event (which was not open on Saturday, otherwise we would have had it then). In the afternoon, most people departed, a good half of them were heading for BSDCam.</li> Err codemadness.org 70 i 45277 <li><a href="http://freshbsd.org/search?q=Essen+hackathon">Commits from the hackathon (the ones from 2018)</a></li> Err codemadness.org 70 i 45278 <li>Overall, the hackathon was well received by attendees and a lot of them liked the fact that it was close to another BSD gathering so they could nicely combine the two. Also, people thought about doing their own hackathon in the future, which is an exciting prospect. Thanks to all who attended, helped out here and there when needed. Special Thanks to <a href="https://www.netzkommune.de/">Netzkommune GmbH</a> for sponsoring the social event and the <a href="http://linuxhotel.de/">Linuxhotel</a> for having us.</li> Err codemadness.org 70 i 45279 <li>Benedict was having a regular work day on Monday after coming back from the hackathon, but flew out to Heathrow on Tuesday. Allan was in London a day earlier and arrived a couple of hours before Benedict in Cambridge. He headed for the Computer Lab even though the main event would not start until Wednesday. Most people gathered at the Maypole pub on Tuesday evening for welcomes, food and drinks.</li> Err codemadness.org 70 i 45280 <li>On Wednesday, a lot of people met in the breakfast room of Churchill College where most people were staying and went to the Computer Lab, which served as the main venue for BSDCam, together. The morning was spend with introductions and collecting what most people were interested in talking. This unconference style has worked well in the past and soon we had 10 main sessions together for the rest of this and the following two days (<a href="https://bsdcam.cl.cam.ac.uk/">full schedule</a>).</li> Err codemadness.org 70 i 45281 <li>Most sessions took notes, which you can find on the <a href="https://wiki.freebsd.org/DevSummit/201808">FreeBSD wiki</a>.</li> Err codemadness.org 70 i 45282 <li>On Thursday evening, we had a nice formal dinner at Trinity Hall.</li> Err codemadness.org 70 i 45283 <li>BSDCam 2018 was a great success with a lot of fruitful discussions and planning sessions. We thank the organizers for BSDCam for making it happen.</li> Err codemadness.org 70 i 45284 <li>A special mentions goes out to Robert Watson and his family. Even though he was not there, he had a good reason to miss it: they had their first child born at the beginning of the week. Congratulations and best wishes to all three of them!</li> Err codemadness.org 70 i 45285 </ul> Err codemadness.org 70 i 45286 <hr> Err codemadness.org 70 i 45287 <p>###<a href="https://lists.freebsd.org/pipermail/freebsd-current/2018-August/070832.html">Call for Testing: ZFS Native Encryption for FreeBSD</a></p> Err codemadness.org 70 i 45288 <ul> Err codemadness.org 70 i 45289 <li>A port of the ZoL (ZFS-on-Linux) feature that provides native crypto support for ZFS is ready for testing on FreeBSD</li> Err codemadness.org 70 i 45290 <li>Most of the porting was done by <a href="mailto:sef@freebsd.org">sef@freebsd.org</a> (Sean Eric Fagan)</li> Err codemadness.org 70 i 45291 <li>The original ZoL commit is here: <a href="https://github.com/zfsonlinux/zfs/pull/5769/commits/5aef9bedc801830264428c64cd2242d1b786fd49">https://github.com/zfsonlinux/zfs/pull/5769/commits/5aef9bedc801830264428c64cd2242d1b786fd49</a></li> Err codemadness.org 70 i 45292 <li>For an overview, see Tom Caputi’s presentation from the OpenZFS Developers Summit in 2016</li> Err codemadness.org 70 i 45293 <li>Video: <a href="https://youtu.be/frnLiXclAMo">https://youtu.be/frnLiXclAMo</a></li> Err codemadness.org 70 i 45294 <li>Slides: <a href="https://drive.google.com/file/d/0B5hUzsxe4cdmU3ZTRXNxa2JIaDQ/view?usp=sharing">https://drive.google.com/file/d/0B5hUzsxe4cdmU3ZTRXNxa2JIaDQ/view?usp=sharing</a></li> Err codemadness.org 70 i 45295 <li>WARNING: test in VMs or with spare disks etc, pools created with this code, or upgraded to this version, will no longer be importable on systems that do not support this feature. The on-disk format or other things may change before the final version, so you will likely have to ‘zfs send | zfs recv’ the data on to a new pool</li> Err codemadness.org 70 i 45296 <li>Thanks for testing to help this feature land in FreeBSD</li> Err codemadness.org 70 i 45297 </ul> Err codemadness.org 70 i 45298 <hr> Err codemadness.org 70 i 45299 <p><strong>iXsystems</strong></p> Err codemadness.org 70 i 45300 <p>###<a href="https://lists.freebsd.org/pipermail/freebsd-current/2018-August/070797.html">Call for Testing: UFS TRIM Consolidation</a></p> Err codemadness.org 70 i 45301 <ul> Err codemadness.org 70 i 45302 <li>Kirk Mckusick posts to the FreeBSD mailing list looking for testers for the new UFS TRIM Consolidation code</li> Err codemadness.org 70 i 45303 </ul> Err codemadness.org 70 i 45304 <blockquote> Err codemadness.org 70 i 45305 <p>When deleting files on filesystems that are stored on flash-memory (solid-state) disk drives, the filesystem notifies the underlying disk of the blocks that it is no longer using. The notification allows the drive to avoid saving these blocks when it needs to flash (zero out) one of its flash pages. These notifications of no-longer-being-used blocks are referred to as TRIM notifications. In FreeBSD these TRIM notifications are sent from the filesystem to the drive using the BIODELETE command.<br> Err codemadness.org 70 i 45306 Until now, the filesystem would send a separate message to the drive for each block of the file that was deleted. Each Gigabyte of file size resulted in over 3000 TRIM messages being sent to the drive. This burst of messages can overwhelm the drive’s task queue causing multiple second delays for read and write requests.<br> Err codemadness.org 70 i 45307 This implementation collects runs of contiguous blocks in the file and then consolodates them into a single BIODELETE command to the drive. The BIODELETE command describes the run of blocks as a single large block being deleted. Each Gigabyte of file size can result in as few as two BIODELETE commands and is typically less than ten. Though these larger BIODELETE commands take longer to run, they do not clog the drive task queue, so read and write commands can intersperse effectively with them.<br> Err codemadness.org 70 i 45308 Though this new feature has been throughly reviewed and tested, it is being added disabled by default so as to minimize the possibility of disrupting the upcoming 12.0 release. It can be enabled by running `sysctl vfs.ffs.dotrimcons=1’’. Users are encouraged to test it. If no problems arise, we will consider requesting that it be enabled by default for 12.0.<br> Err codemadness.org 70 i 45309 This support is off by default, but I am hoping that I can get enough testing to ensure that it (a) works, and (b) is helpful that it will be reasonable to have it turned on by default in 12.0. The cutoff for turning it on by default in 12.0 is September 19th. So I am requesting your testing feedback in the near-term. Please let me know if you have managed to use it successfully (or not) and also if it provided any performance difference (good or bad).</p> Err codemadness.org 70 i 45310 </blockquote> Err codemadness.org 70 i 45311 <ul> Err codemadness.org 70 i 45312 <li>To enable TRIM consolidation usesysctl vfs.ffs.dotrimcons=1’</li> Err codemadness.org 70 i 45313 <li>There is also a diff that adds additional statistics: <a href="https://lists.freebsd.org/pipermail/freebsd-current/2018-August/070798.html">https://lists.freebsd.org/pipermail/freebsd-current/2018-August/070798.html</a></li> Err codemadness.org 70 i 45314 <li>You can also watch the volume and latency of BIODELETE commands by running <code>gstat</code> with the -d flag</li> Err codemadness.org 70 i 45315 </ul> Err codemadness.org 70 i 45316 <hr> Err codemadness.org 70 i 45317 <p>##News Roundup<br> Err codemadness.org 70 i 45318 <a href="https://aravindh.net/post/zfs_performance/">ZFS performance</a></p> Err codemadness.org 70 i 45319 <ul> Err codemadness.org 70 i 45320 <li>Aravindh Sampathkumar, a Performance Engineer and Sysadmin posts some simple benchmarks he did on a new ZFS server</li> Err codemadness.org 70 i 45321 </ul> Err codemadness.org 70 i 45322 <blockquote> Err codemadness.org 70 i 45323 <p>This is NOT an all-in post about ZFS performance. I built a FreeBSD+ZFS file server recently at work to serve as an offsite backup server. I wanted to run a few synthetic workloads on it and look at how it fares from performance perspective. Mostly for curiosity and learning purposes.<br> Err codemadness.org 70 i 45324 As stated in the notes about building this server, performance was not one of the priorities, as this server will never face our active workload. What I care about from this server is its ability to work with rsync and keep the data synchronised with our primary storage server. With that context, I ran a few write tests to see how good our solution is and what to expect from it in terms of performance.</p> Err codemadness.org 70 i 45325 </blockquote> Err codemadness.org 70 i 45326 <ul> Err codemadness.org 70 i 45327 <li>The article then uses FIO to do some benchmarks.</li> Err codemadness.org 70 i 45328 <li>As the author did, make sure you match the FIO block size to the ZFS record size to avoid write amplification. Either tune FIO or adjust the recordsize property in ZFS</li> Err codemadness.org 70 i 45329 <li>You also want to consider compression and cache effects</li> Err codemadness.org 70 i 45330 </ul> Err codemadness.org 70 i 45331 <blockquote> Err codemadness.org 70 i 45332 <p>Write Performance: Incompressible: 1600-2600 MB/s, Compressible: 2500-6600 MB/s<br> Err codemadness.org 70 i 45333 Another over 1200 MB/s is enough to keep your 10 gigabit network saturated</p> Err codemadness.org 70 i 45334 </blockquote> Err codemadness.org 70 i 45335 <ul> Err codemadness.org 70 i 45336 <li>The increased latency that is seen with higher number of writers working, may be the result of the ZFS backpressure system (the write throttle). There is some tuning that can be done there. Specifically, since this machine has 768 GB of ram, you might allow more than 4GB of dirty data, which would mean you’d be able to write larger batches and not have to push back while you wait for a transaction group to flush when dealing with gigabytes/sec of writes</li> Err codemadness.org 70 i 45337 </ul> Err codemadness.org 70 i 45338 <hr> Err codemadness.org 70 i 45339 <p>###<a href="http://www.daemonology.net/blog/2018-07-14-port-OS-to-EC2.html">How to port your OS to EC2</a></p> Err codemadness.org 70 i 45340 <ul> Err codemadness.org 70 i 45341 <li>Colin Percival reflects on his FreeBSD on EC2 maintainership efforts in his blog:</li> Err codemadness.org 70 i 45342 </ul> Err codemadness.org 70 i 45343 <blockquote> Err codemadness.org 70 i 45344 <p>I’ve been the maintainer of the FreeBSD/EC2 platform for about 7.5 years now, and as far as “running things in virtual machines” goes, that remains the only operating system and the only cloud which I work on. That said, from time to time I get questions from people who want to port other operating systems into EC2, and being a member of the open source community, I do my best to help them. I realized a few days ago that rather than replying to emails one by one it would be more efficient to post something publicly; so — for the benefit of the dozen or so people who want to port operating systems to run in EC2, and the curiosity of maybe a thousand more people who use EC2 but will never build AMIs themselves — here’s a rough guide to building EC2 images.<br> Err codemadness.org 70 i 45345 Before we can talk about building images, there are some things you need:<br> Err codemadness.org 70 i 45346 Your OS needs to run on x86 hardware. 64-bit (“amd64”, “x86-64”) is ideal, but I’ve managed to run 32-bit FreeBSD on “64-bit” EC2 instances so at least in some cases that’s not strictly necessary.<br> Err codemadness.org 70 i 45347 You almost certainly want to have drivers for Xen block devices (for all of the pre-Nitro EC2 instances) or for NVMe disks (for the most recent EC2 instances). Theoretically you could make do without these since there’s some ATA emulation available for bootstrapping, but if you want to do any disk I/O after the kernel finishes booting you’ll want to have a disk driver.<br> Err codemadness.org 70 i 45348 Similarly, you need support for the Xen network interface (older instances), Intel 10 GbE SR-IOV networking (some newer but pre-Nitro instances), or Amazon’s “ENA” network adapters (on Nitro instances), unless you plan on having instances which don’t communicate over the network. The ENA driver is probably the hardest thing to port, since as far as I know there’s no way to get your hands on the hardware directly, and it’s very difficult to do any debugging in EC2 without having a working network.<br> Err codemadness.org 70 i 45349 Finally, the obvious: You need to have an AWS account, and appropriate API access keys.<br> Err codemadness.org 70 i 45350 Building a disk image</p> Err codemadness.org 70 i 45351 <p>Building an AMI<br> Err codemadness.org 70 i 45352 I wrote a simple tool for converting disk images into EC2 instances: bsdec2-image-upload. It uploads a disk image to Amazon S3; makes an API call to import that disk image into an EBS volume; creates a snapshot of that volume; then registers an EC2 AMI using that snapshot.<br> Err codemadness.org 70 i 45353 To use bsdec2-image-upload, you’ll first need to create an S3 bucket for it to use as a staging area. You can call it anything you like, but I recommend that you</p> Err codemadness.org 70 i 45354 </blockquote> Err codemadness.org 70 i 45355 <blockquote> Err codemadness.org 70 i 45356 <p>Create it in a “nearby” region (for performance reasons), and<br> Err codemadness.org 70 i 45357 Set an S3 “lifecycle policy” which deletes objects automatically after 1 day (since bsdec2-image-upload doesn’t clean up the S3 bucket, and those objects are useless once you’ve finished creating an AMI).</p> Err codemadness.org 70 i 45358 </blockquote> Err codemadness.org 70 i 45359 <blockquote> Err codemadness.org 70 i 45360 <p>Boot configuration<br> Err codemadness.org 70 i 45361 Odds are that your instance started booting and got as far as the boot loader launching the kernel, but at some point after that things went sideways. Now we start the iterative process of building disk images, turning them into AMIs, launching said AMIs, and seeing where they break. Some things you’ll probably run into here:<br> Err codemadness.org 70 i 45362 EC2 instances have two types of console available to them: A serial console and an VGA console. (Or rather, emulated serial and emulated VGA.) If you can have your kernel output go to both consoles, I recommend doing that. If you have to pick one, the serial console (which shows up as the “System Log” in EC2) is probably more useful than the VGA console (which shows up as “instance screenshot”) since it lets you see more than one screen of logs at once; but there’s a catch: Due to some bizarre breakage in EC2 — which I’ve been complaining about for ten years — the serial console is very “laggy”. If you find that you’re not getting any output, wait five minutes and try again.<br> Err codemadness.org 70 i 45363 You may need to tell your kernel where to find the root filesystem. On FreeBSD we build our disk images using GPT labels, so we simply need to specify in /etc/fstab that the root filesystem is on /dev/gpt/rootfs; but if you can’t do this, you’ll probably need to have different AMIs for Nitro instances vs. non-Nitro instances since Xen block devices will typically show up with different device names from NVMe disks. On FreeBSD, I also needed to set the vfs.root.mountfrom kernel environment variable for a while; this also is no longer needed on FreeBSD but something similar may be needed on other systems.<br> Err codemadness.org 70 i 45364 You’ll need to enable networking, using DHCP. On FreeBSD, this means placing ifconfigDEFAULT=“SYNCDHCP” into /etc/rc.conf; other systems will have other ways of specifying network parameters, and it may be necessary to specify a setting for the Xen network device, Intel SR-IOV network, and the Amazon ENA interface so that you’ll have the necessary configuration across all EC2 instance types. (On FreeBSD, ifconfigDEFAULT takes care of specifying the network settings which should apply for whatever network interface the kernel finds at boot time.)<br> Err codemadness.org 70 i 45365 You’ll almost certainly want to turn on SSH, so that you can connect into newly launched instances and make use of them. Don’t worry about setting a password or creating a user to SSH into yet — we’ll take care of that later.<br> Err codemadness.org 70 i 45366 EC2 configuration<br> Err codemadness.org 70 i 45367 Now it’s time to make the AMI behave like an EC2 instance. To this end, I prepared a set of rc.d scripts for FreeBSD. Most importantly, they<br> Err codemadness.org 70 i 45368 Print the SSH host keys to the console, so that you can veriy that they are correct when you first SSH in. (Remember, Verifying SSH host keys is more important than flossing every day.)<br> Err codemadness.org 70 i 45369 Download the SSH public key you want to use for logging in, and create an account (by default, “ec2-user”) with that key set up for you.<br> Err codemadness.org 70 i 45370 Fetch EC2 user-data and process it via configinit to allow you to configure the system as part of the process of launching it.<br> Err codemadness.org 70 i 45371 If your OS has an rc system derived from NetBSD’s rc.d, you may be able to use these scripts without any changes by simply installing them and enabling them in /etc/rc.conf; otherwise you may need to write your own scripts using mine as a model.<br> Err codemadness.org 70 i 45372 Firstboot scripts<br> Err codemadness.org 70 i 45373 A feature I added to FreeBSD a few years ago is the concept of “firstboot” scripts: These startup scripts are only run the first time a system boots. The aforementioned configinit and SSH key fetching scripts are flagged this way — so if your OS doesn’t support the “firstboot” keyword on rc.d scripts you’ll need to hack around that — but EC2 instances also ship with other scripts set to run on the first boot:<br> Err codemadness.org 70 i 45374 FreeBSD Update will fetch and install security and critical errata updates, and then reboot the system if necessary.<br> Err codemadness.org 70 i 45375 The UFS filesystem on the “boot disk” will be automatically expanded to the full size of the disk — this makes it possible to specify a larger size of disk at EC2 instance launch time.<br> Err codemadness.org 70 i 45376 Third-party packages will be automatically fetched and installed, according to a list in /etc/rc.conf. This is most useful if configinit is used to edit /etc/rc.conf, since it allows you to specify packages to install via the EC2 user-data.<br> Err codemadness.org 70 i 45377 While none of these are strictly necessary, I find them to be extremely useful and highly recommend implementing similar functionality in your systems.<br> Err codemadness.org 70 i 45378 Support my work!<br> Err codemadness.org 70 i 45379 I hope you find this useful, or at very least interesting. Please consider supporting my work in this area; while I’m happy to contribute my time to supporting open source software, it would be nice if I had money coming in which I could use to cover incidental expenses (e.g., conference travel) so that I didn’t end up paying to contribute to FreeBSD.</p> Err codemadness.org 70 i 45380 </blockquote> Err codemadness.org 70 i 45381 <hr> Err codemadness.org 70 i 45382 <p><strong>Digital Ocean</strong><br> Err codemadness.org 70 i 45383 <a href="https://do.co/bsdnow">https://do.co/bsdnow</a></p> Err codemadness.org 70 i 45384 <p>###<a href="https://cacm.acm.org/magazines/2018/8/229771-traceability/fulltext">Traceability, by Vint Cerf</a></p> Err codemadness.org 70 i 45385 <ul> Err codemadness.org 70 i 45386 <li>A recent article from the August issue of the Communications of the ACM, for your contemplation:</li> Err codemadness.org 70 i 45387 </ul> Err codemadness.org 70 i 45388 <blockquote> Err codemadness.org 70 i 45389 <p>At a recent workshop on cybersecurity in the U.K., a primary topic of consideration was how to preserve the freedom and openness of the Internet while protecting against the harmful behaviors that have emerged in this global medium. That this is a significant challenge cannot be overstated. The bad behaviors range from social network bullying and misinformation to email spam, distributed denial of service attacks, direct cyberattacks against infrastructure, malware propagation, identity theft, and a host of other ills requiring a wide range of technical and legal considerations. That these harmful behaviors can and do cross international boundaries only makes it more difficult to fashion effective responses.<br> Err codemadness.org 70 i 45390 In other columns, I have argued for better software development tools to reduce the common mistakes that lead to vulnerabilities that are exploited. Here, I want to focus on another aspect of response related to law enforcement and tracking down perpetrators. Of course, not all harms are (or perhaps are not yet) illegal, but discovering those who cause them may still be warranted. The recent adoption and implementation of the General Data Protection Regulation (GDPR) in the European Union creates an interesting tension because it highlights the importance and value of privacy while those who do direct or indirect harm must be tracked down and their identities discovered.<br> Err codemadness.org 70 i 45391 In passing, I mention that cryptography has sometimes been blamed for protecting the identity or actions of criminals but it is also a tool for protecting privacy. Arguments have been made for “back doors” to cryptographic systems but I am of the opinion that such proposals carry extremely high risk to privacy and safety. It is not my intent to argue this question in this column.<br> Err codemadness.org 70 i 45392 What is of interest to me is a concept to which I was introduced at the Ditchley workshop, specifically, differential traceability. The ability to trace bad actors to bring them to justice seems to me an important goal in a civilized society. The tension with privacy protection leads to the idea that only under appropriate conditions can privacy be violated. By way of example, consider license plates on cars. They are usually arbitrary identifiers and special authority is needed to match them with the car owners (unless, of course, they are vanity plates like mine: “Cerfsup”). This is an example of differential traceability; the police department has the authority to demand ownership information from the Department of Motor Vehicles that issues the license plates. Ordinary citizens do not have this authority.<br> Err codemadness.org 70 i 45393 In the Internet environment there are a variety of identifiers associated with users (including corporate users). Domain names, IP addresses, email addresses, and public cryptography keys are examples among many others. Some of these identifiers are dynamic and thus ambiguous. For example, IP addresses are not always permanent and may change (for example, temporary IP addresses assigned at Wi-Fi hotspots) or may be ambiguous in the case of Network Address Translation. Information about the time of assignment and the party to whom an IP address was assigned may be needed to identify an individual user. There has been considerable debate and even a recent court case regarding requirements to register users in domain name WHOIS databases in the context of the adoption of GDPR. If we are to accomplish the simultaneous objectives of protecting privacy while apprehending those engaged in harmful or criminal behavior on the Internet, we must find some balance between conflicting but desirable outcomes.<br> Err codemadness.org 70 i 45394 This suggests to me that the notion of traceability under (internationally?) agreed circumstances (that is, differential traceability) might be a fruitful concept to explore. In most societies today, it is accepted that we must be identifiable to appropriate authorities under certain conditions (consider border crossings, traffic violation stops as examples). While there are conditions under which apparent anonymity is desirable and even justifiable (whistle-blowing, for example) absolute anonymity is actually quite difficult to achieve (another point made at the Ditchley workshop) and might not be absolutely desirable given the misbehaviors apparent anonymity invites. I expect this is a controversial conclusion and I look forward to subsequent discussion.</p> Err codemadness.org 70 i 45395 </blockquote> Err codemadness.org 70 i 45396 <hr> Err codemadness.org 70 i 45397 <p>###<a href="https://blackdot.be/2018/08/remote-access-console-using-raspberry-pi-3b-and-freebsd/">Remote Access Console using FreeBSD on an RPi3</a></p> Err codemadness.org 70 i 45398 <ul> Err codemadness.org 70 i 45399 <li>Our friend, and FOSDEM Booth Neighbour, Jorge, has posted a tutorial on how he created a remote access console for his SmartOS server and other machines in his homelab</li> Err codemadness.org 70 i 45400 <li>Parts:</li> Err codemadness.org 70 i 45401 <li>Raspberry Pi 3 B+</li> Err codemadness.org 70 i 45402 <li>NavoLabs micro POE Hat</li> Err codemadness.org 70 i 45403 <li>FT4232H based USB-to-RS232 (4x) adapter</li> Err codemadness.org 70 i 45404 <li>Official Raspberry Pi case (optional)</li> Err codemadness.org 70 i 45405 <li>Heat-sink kit (optional)</li> Err codemadness.org 70 i 45406 <li>USB-to-TTL adaptor (optional)</li> Err codemadness.org 70 i 45407 <li>Sandisk 16Gb microSD</li> Err codemadness.org 70 i 45408 </ul> Err codemadness.org 70 i 45409 <blockquote> Err codemadness.org 70 i 45410 <p>For the software I ended up using conserver. Below is a very brief tutorial on how to set everything up. I assume you have basic unix skills.</p> Err codemadness.org 70 i 45411 </blockquote> Err codemadness.org 70 i 45412 <ul> Err codemadness.org 70 i 45413 <li>Get an RPi3 image, make some minor modifications for RPi3+, and write it to the USB stick</li> Err codemadness.org 70 i 45414 <li>Configure FreeBSD on the RPi3 Err codemadness.org 70 i 45415 <ul> Err codemadness.org 70 i 45416 <li>Load the ‘muge’ Ethernet Driver</li> Err codemadness.org 70 i 45417 <li>Load USB serial support</li> Err codemadness.org 70 i 45418 <li>Load the FTDI driver</li> Err codemadness.org 70 i 45419 <li>Enable SSHd and Conserver</li> Err codemadness.org 70 i 45420 <li>Configure Conserver</li> Err codemadness.org 70 i 45421 <li>Setup log rotation</li> Err codemadness.org 70 i 45422 <li>Start Conserver</li> Err codemadness.org 70 i 45423 </ul> Err codemadness.org 70 i 45424 </li> Err codemadness.org 70 i 45425 <li>And you’re good to go</li> Err codemadness.org 70 i 45426 </ul> Err codemadness.org 70 i 45427 <blockquote> Err codemadness.org 70 i 45428 <p>A small bonus script I wrote to turn on the 2nd LED on the rPI once the system is booted, it will then blink the LED if someone is connected to any of the consoles.</p> Err codemadness.org 70 i 45429 </blockquote> Err codemadness.org 70 i 45430 <ul> Err codemadness.org 70 i 45431 <li>There is also a followup post with some additional tips: <a href="https://blackdot.be/2018/08/freebsd-uart-and-raspberry-pi-3-b/">https://blackdot.be/2018/08/freebsd-uart-and-raspberry-pi-3-b/</a></li> Err codemadness.org 70 i 45432 </ul> Err codemadness.org 70 i 45433 <hr> Err codemadness.org 70 i 45434 <p>##Beastie Bits</p> Err codemadness.org 70 i 45435 <ul> Err codemadness.org 70 i 45436 <li><a href="https://twitter.com/ungleich/status/1031501391792156673">Annual Penguin Races</a></li> Err codemadness.org 70 i 45437 <li><a href="http://www.mcternan.me.uk/mscgen/">Mscgen - Message Sequence Chart generator</a></li> Err codemadness.org 70 i 45438 <li><a href="https://reviews.freebsd.org/D16723">This patch makes FreeBSD boot 500 - 800ms faster, please test on your hardware</a></li> Err codemadness.org 70 i 45439 <li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=338059">FreeBSD’s arc4random() replaced with OpenBSD ChaCha20 implementation</a></li> Err codemadness.org 70 i 45440 <li><a href="https://twitter.com/freebsdfndation/status/1031590348768915456">MeetBSD Devsummit open for registrations</a></li> Err codemadness.org 70 i 45441 <li><a href="https://mwl.io/archives/3654">New Podcast interview with Michael W. Lucas</a></li> Err codemadness.org 70 i 45442 </ul> Err codemadness.org 70 i 45443 <hr> Err codemadness.org 70 i 45444 <p><strong>Tarsnap</strong></p> Err codemadness.org 70 i 45445 <p>##Feedback/Questions<br> Err codemadness.org 70 i 45446 We need more feedback emails. Please write to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></p> Err codemadness.org 70 i 45447 <p>Additionally, we are considering a new segment to be added to the end of the show (to make it skippable), where we have a ~15 minute deep dive on a topic. Some initial ideas are on the Virtual Memory subsystem, the Scheduler, Capsicum, and GEOM. What topics would you like to get very detailed explanations of? Many of the explanations may have accompanying graphics, and not be very suitable for audio only listeners, that is why we are planning to put it at the very end of the episode.</p> Err codemadness.org 70 i 45448 <hr> Err codemadness.org 70 i 45449 <ul> Err codemadness.org 70 i 45450 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 45451 </ul> Err codemadness.org 70 i 45452 Err codemadness.org 70 i 45453 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, zfs, performance, encryption, remote access, rpi3, raspberry pi Err codemadness.org 70 i 45454 Err codemadness.org 70 i 45455 Trip reports from the Essen Hackathon and BSDCam, CfT: ZFS native encryption and UFS trim consolidation, ZFS performance benchmarks on a FreeBSD server, how to port your OS to EC2, Vint Cerf about traceability, Remote Access console to an RPi3 running FreeBSD, and more.

Err codemadness.org 70 i 45456 Err codemadness.org 70 i 45457

##Headlines
Err codemadness.org 70 i 45458 ###Essen Hackathon & BSDCam 2018 trip report

Err codemadness.org 70 i 45459 Err codemadness.org 70 i 45460
    Err codemadness.org 70 i 45461
  • Allan and Benedict met at FRA airport and then headed to the Air Rail terminal for our train to Essen where the Hackathon would happen over the weekend of Aug 10 - 12, 2018. Once there, we did not have to wait long until other early-arrivals would show up and soon we had about 10 people gathered for lunch. After buying some take-out pizzas and bringing it back to the Linuxhotel (there was a training still going on there so we could not get into our rooms yet), we sat in the sunny park and talked. More and more people arrived and soon, people started hacking on their laptops. Some people would not arrive until a few hours before midnight, but we already had a record appearance of 20 people in total.
  • Err codemadness.org 70 i 45462
  • On Saturday, we gathered everyone in one of the seminar rooms that had rooms and chairs for us. After some organizational infos, we did an introductory round and Benedict wrote down on the whiteboard what people were interested in. It was not long until groups formed to talk about SSL in base, weird ZFS scrubs that would go over 100% completion (fixed now). Other people started working on ports, fixing bugs, or wrote documentation. The day ended in a BBQ in the Linuxhotel park, which was well received by everyone.
  • Err codemadness.org 70 i 45463
  • On Sunday, after attendees packed up their luggage and stored it in the seminar room, we continued hacking until lunchtime. After a quick group picture, we headed to a local restaurant for the social event (which was not open on Saturday, otherwise we would have had it then). In the afternoon, most people departed, a good half of them were heading for BSDCam.
  • Err codemadness.org 70 i 45464
  • Commits from the hackathon (the ones from 2018)
  • Err codemadness.org 70 i 45465
  • Overall, the hackathon was well received by attendees and a lot of them liked the fact that it was close to another BSD gathering so they could nicely combine the two. Also, people thought about doing their own hackathon in the future, which is an exciting prospect. Thanks to all who attended, helped out here and there when needed. Special Thanks to Netzkommune GmbH for sponsoring the social event and the Linuxhotel for having us.
  • Err codemadness.org 70 i 45466
  • Benedict was having a regular work day on Monday after coming back from the hackathon, but flew out to Heathrow on Tuesday. Allan was in London a day earlier and arrived a couple of hours before Benedict in Cambridge. He headed for the Computer Lab even though the main event would not start until Wednesday. Most people gathered at the Maypole pub on Tuesday evening for welcomes, food and drinks.
  • Err codemadness.org 70 i 45467
  • On Wednesday, a lot of people met in the breakfast room of Churchill College where most people were staying and went to the Computer Lab, which served as the main venue for BSDCam, together. The morning was spend with introductions and collecting what most people were interested in talking. This unconference style has worked well in the past and soon we had 10 main sessions together for the rest of this and the following two days (full schedule).
  • Err codemadness.org 70 i 45468
  • Most sessions took notes, which you can find on the FreeBSD wiki.
  • Err codemadness.org 70 i 45469
  • On Thursday evening, we had a nice formal dinner at Trinity Hall.
  • Err codemadness.org 70 i 45470
  • BSDCam 2018 was a great success with a lot of fruitful discussions and planning sessions. We thank the organizers for BSDCam for making it happen.
  • Err codemadness.org 70 i 45471
  • A special mentions goes out to Robert Watson and his family. Even though he was not there, he had a good reason to miss it: they had their first child born at the beginning of the week. Congratulations and best wishes to all three of them!
  • Err codemadness.org 70 i 45472
Err codemadness.org 70 i 45473 Err codemadness.org 70 i 45474


Err codemadness.org 70 i 45475 Err codemadness.org 70 i 45476

###Call for Testing: ZFS Native Encryption for FreeBSD

Err codemadness.org 70 i 45477 Err codemadness.org 70 i 45478
    Err codemadness.org 70 i 45479
  • A port of the ZoL (ZFS-on-Linux) feature that provides native crypto support for ZFS is ready for testing on FreeBSD
  • Err codemadness.org 70 i 45480
  • Most of the porting was done by sef@freebsd.org (Sean Eric Fagan)
  • Err codemadness.org 70 i 45481
  • The original ZoL commit is here: https://github.com/zfsonlinux/zfs/pull/5769/commits/5aef9bedc801830264428c64cd2242d1b786fd49
  • Err codemadness.org 70 i 45482
  • For an overview, see Tom Caputi’s presentation from the OpenZFS Developers Summit in 2016
  • Err codemadness.org 70 i 45483
  • Video: https://youtu.be/frnLiXclAMo
  • Err codemadness.org 70 i 45484
  • Slides: https://drive.google.com/file/d/0B5hUzsxe4cdmU3ZTRXNxa2JIaDQ/view?usp=sharing
  • Err codemadness.org 70 i 45485
  • WARNING: test in VMs or with spare disks etc, pools created with this code, or upgraded to this version, will no longer be importable on systems that do not support this feature. The on-disk format or other things may change before the final version, so you will likely have to ‘zfs send | zfs recv’ the data on to a new pool
  • Err codemadness.org 70 i 45486
  • Thanks for testing to help this feature land in FreeBSD
  • Err codemadness.org 70 i 45487
Err codemadness.org 70 i 45488 Err codemadness.org 70 i 45489


Err codemadness.org 70 i 45490 Err codemadness.org 70 i 45491

iXsystems

Err codemadness.org 70 i 45492 Err codemadness.org 70 i 45493

###Call for Testing: UFS TRIM Consolidation

Err codemadness.org 70 i 45494 Err codemadness.org 70 i 45495
    Err codemadness.org 70 i 45496
  • Kirk Mckusick posts to the FreeBSD mailing list looking for testers for the new UFS TRIM Consolidation code
  • Err codemadness.org 70 i 45497
Err codemadness.org 70 i 45498 Err codemadness.org 70 i 45499
Err codemadness.org 70 i 45500

When deleting files on filesystems that are stored on flash-memory (solid-state) disk drives, the filesystem notifies the underlying disk of the blocks that it is no longer using. The notification allows the drive to avoid saving these blocks when it needs to flash (zero out) one of its flash pages. These notifications of no-longer-being-used blocks are referred to as TRIM notifications. In FreeBSD these TRIM notifications are sent from the filesystem to the drive using the BIO_DELETE command.
Err codemadness.org 70 i 45501 Until now, the filesystem would send a separate message to the drive for each block of the file that was deleted. Each Gigabyte of file size resulted in over 3000 TRIM messages being sent to the drive. This burst of messages can overwhelm the drive’s task queue causing multiple second delays for read and write requests.
Err codemadness.org 70 i 45502 This implementation collects runs of contiguous blocks in the file and then consolodates them into a single BIO_DELETE command to the drive. The BIO_DELETE command describes the run of blocks as a single large block being deleted. Each Gigabyte of file size can result in as few as two BIO_DELETE commands and is typically less than ten. Though these larger BIO_DELETE commands take longer to run, they do not clog the drive task queue, so read and write commands can intersperse effectively with them.
Err codemadness.org 70 i 45503 Though this new feature has been throughly reviewed and tested, it is being added disabled by default so as to minimize the possibility of disrupting the upcoming 12.0 release. It can be enabled by running ``sysctl vfs.ffs.dotrimcons=1’’. Users are encouraged to test it. If no problems arise, we will consider requesting that it be enabled by default for 12.0.
Err codemadness.org 70 i 45504 This support is off by default, but I am hoping that I can get enough testing to ensure that it (a) works, and (b) is helpful that it will be reasonable to have it turned on by default in 12.0. The cutoff for turning it on by default in 12.0 is September 19th. So I am requesting your testing feedback in the near-term. Please let me know if you have managed to use it successfully (or not) and also if it provided any performance difference (good or bad).

Err codemadness.org 70 i 45505
Err codemadness.org 70 i 45506 Err codemadness.org 70 i 45507
    Err codemadness.org 70 i 45508
  • To enable TRIM consolidation use `sysctl vfs.ffs.dotrimcons=1’
  • Err codemadness.org 70 i 45509
  • There is also a diff that adds additional statistics: https://lists.freebsd.org/pipermail/freebsd-current/2018-August/070798.html
  • Err codemadness.org 70 i 45510
  • You can also watch the volume and latency of BIO_DELETE commands by running gstat with the -d flag
  • Err codemadness.org 70 i 45511
Err codemadness.org 70 i 45512 Err codemadness.org 70 i 45513


Err codemadness.org 70 i 45514 Err codemadness.org 70 i 45515

##News Roundup
Err codemadness.org 70 i 45516 ###ZFS performance

Err codemadness.org 70 i 45517 Err codemadness.org 70 i 45518
    Err codemadness.org 70 i 45519
  • Aravindh Sampathkumar, a Performance Engineer and Sysadmin posts some simple benchmarks he did on a new ZFS server
  • Err codemadness.org 70 i 45520
Err codemadness.org 70 i 45521 Err codemadness.org 70 i 45522
Err codemadness.org 70 i 45523

This is NOT an all-in post about ZFS performance. I built a FreeBSD+ZFS file server recently at work to serve as an offsite backup server. I wanted to run a few synthetic workloads on it and look at how it fares from performance perspective. Mostly for curiosity and learning purposes.
Err codemadness.org 70 i 45524 As stated in the notes about building this server, performance was not one of the priorities, as this server will never face our active workload. What I care about from this server is its ability to work with rsync and keep the data synchronised with our primary storage server. With that context, I ran a few write tests to see how good our solution is and what to expect from it in terms of performance.

Err codemadness.org 70 i 45525
Err codemadness.org 70 i 45526 Err codemadness.org 70 i 45527
    Err codemadness.org 70 i 45528
  • The article then uses FIO to do some benchmarks.
  • Err codemadness.org 70 i 45529
  • As the author did, make sure you match the FIO block size to the ZFS record size to avoid write amplification. Either tune FIO or adjust the recordsize property in ZFS
  • Err codemadness.org 70 i 45530
  • You also want to consider compression and cache effects
  • Err codemadness.org 70 i 45531
Err codemadness.org 70 i 45532 Err codemadness.org 70 i 45533
Err codemadness.org 70 i 45534

Write Performance: Incompressible: 1600-2600 MB/s, Compressible: 2500-6600 MB/s
Err codemadness.org 70 i 45535 Another over 1200 MB/s is enough to keep your 10 gigabit network saturated

Err codemadness.org 70 i 45536
Err codemadness.org 70 i 45537 Err codemadness.org 70 i 45538
    Err codemadness.org 70 i 45539
  • The increased latency that is seen with higher number of writers working, may be the result of the ZFS backpressure system (the write throttle). There is some tuning that can be done there. Specifically, since this machine has 768 GB of ram, you might allow more than 4GB of dirty data, which would mean you’d be able to write larger batches and not have to push back while you wait for a transaction group to flush when dealing with gigabytes/sec of writes
  • Err codemadness.org 70 i 45540
Err codemadness.org 70 i 45541 Err codemadness.org 70 i 45542


Err codemadness.org 70 i 45543 Err codemadness.org 70 i 45544

###How to port your OS to EC2

Err codemadness.org 70 i 45545 Err codemadness.org 70 i 45546
    Err codemadness.org 70 i 45547
  • Colin Percival reflects on his FreeBSD on EC2 maintainership efforts in his blog:
  • Err codemadness.org 70 i 45548
Err codemadness.org 70 i 45549 Err codemadness.org 70 i 45550
Err codemadness.org 70 i 45551

I’ve been the maintainer of the FreeBSD/EC2 platform for about 7.5 years now, and as far as “running things in virtual machines” goes, that remains the only operating system and the only cloud which I work on. That said, from time to time I get questions from people who want to port other operating systems into EC2, and being a member of the open source community, I do my best to help them. I realized a few days ago that rather than replying to emails one by one it would be more efficient to post something publicly; so — for the benefit of the dozen or so people who want to port operating systems to run in EC2, and the curiosity of maybe a thousand more people who use EC2 but will never build AMIs themselves — here’s a rough guide to building EC2 images.
Err codemadness.org 70 i 45552 Before we can talk about building images, there are some things you need:
Err codemadness.org 70 i 45553 Your OS needs to run on x86 hardware. 64-bit (“amd64”, “x86-64”) is ideal, but I’ve managed to run 32-bit FreeBSD on “64-bit” EC2 instances so at least in some cases that’s not strictly necessary.
Err codemadness.org 70 i 45554 You almost certainly want to have drivers for Xen block devices (for all of the pre-Nitro EC2 instances) or for NVMe disks (for the most recent EC2 instances). Theoretically you could make do without these since there’s some ATA emulation available for bootstrapping, but if you want to do any disk I/O after the kernel finishes booting you’ll want to have a disk driver.
Err codemadness.org 70 i 45555 Similarly, you need support for the Xen network interface (older instances), Intel 10 GbE SR-IOV networking (some newer but pre-Nitro instances), or Amazon’s “ENA” network adapters (on Nitro instances), unless you plan on having instances which don’t communicate over the network. The ENA driver is probably the hardest thing to port, since as far as I know there’s no way to get your hands on the hardware directly, and it’s very difficult to do any debugging in EC2 without having a working network.
Err codemadness.org 70 i 45556 Finally, the obvious: You need to have an AWS account, and appropriate API access keys.
Err codemadness.org 70 i 45557 Building a disk image

Err codemadness.org 70 i 45558

Building an AMI
Err codemadness.org 70 i 45559 I wrote a simple tool for converting disk images into EC2 instances: bsdec2-image-upload. It uploads a disk image to Amazon S3; makes an API call to import that disk image into an EBS volume; creates a snapshot of that volume; then registers an EC2 AMI using that snapshot.
Err codemadness.org 70 i 45560 To use bsdec2-image-upload, you’ll first need to create an S3 bucket for it to use as a staging area. You can call it anything you like, but I recommend that you

Err codemadness.org 70 i 45561
Err codemadness.org 70 i 45562 Err codemadness.org 70 i 45563
Err codemadness.org 70 i 45564

Create it in a “nearby” region (for performance reasons), and
Err codemadness.org 70 i 45565 Set an S3 “lifecycle policy” which deletes objects automatically after 1 day (since bsdec2-image-upload doesn’t clean up the S3 bucket, and those objects are useless once you’ve finished creating an AMI).

Err codemadness.org 70 i 45566
Err codemadness.org 70 i 45567 Err codemadness.org 70 i 45568
Err codemadness.org 70 i 45569

Boot configuration
Err codemadness.org 70 i 45570 Odds are that your instance started booting and got as far as the boot loader launching the kernel, but at some point after that things went sideways. Now we start the iterative process of building disk images, turning them into AMIs, launching said AMIs, and seeing where they break. Some things you’ll probably run into here:
Err codemadness.org 70 i 45571 EC2 instances have two types of console available to them: A serial console and an VGA console. (Or rather, emulated serial and emulated VGA.) If you can have your kernel output go to both consoles, I recommend doing that. If you have to pick one, the serial console (which shows up as the “System Log” in EC2) is probably more useful than the VGA console (which shows up as “instance screenshot”) since it lets you see more than one screen of logs at once; but there’s a catch: Due to some bizarre breakage in EC2 — which I’ve been complaining about for ten years — the serial console is very “laggy”. If you find that you’re not getting any output, wait five minutes and try again.
Err codemadness.org 70 i 45572 You may need to tell your kernel where to find the root filesystem. On FreeBSD we build our disk images using GPT labels, so we simply need to specify in /etc/fstab that the root filesystem is on /dev/gpt/rootfs; but if you can’t do this, you’ll probably need to have different AMIs for Nitro instances vs. non-Nitro instances since Xen block devices will typically show up with different device names from NVMe disks. On FreeBSD, I also needed to set the vfs.root.mountfrom kernel environment variable for a while; this also is no longer needed on FreeBSD but something similar may be needed on other systems.
Err codemadness.org 70 i 45573 You’ll need to enable networking, using DHCP. On FreeBSD, this means placing ifconfig_DEFAULT=“SYNCDHCP” into /etc/rc.conf; other systems will have other ways of specifying network parameters, and it may be necessary to specify a setting for the Xen network device, Intel SR-IOV network, and the Amazon ENA interface so that you’ll have the necessary configuration across all EC2 instance types. (On FreeBSD, ifconfig_DEFAULT takes care of specifying the network settings which should apply for whatever network interface the kernel finds at boot time.)
Err codemadness.org 70 i 45574 You’ll almost certainly want to turn on SSH, so that you can connect into newly launched instances and make use of them. Don’t worry about setting a password or creating a user to SSH into yet — we’ll take care of that later.
Err codemadness.org 70 i 45575 EC2 configuration
Err codemadness.org 70 i 45576 Now it’s time to make the AMI behave like an EC2 instance. To this end, I prepared a set of rc.d scripts for FreeBSD. Most importantly, they
Err codemadness.org 70 i 45577 Print the SSH host keys to the console, so that you can veriy that they are correct when you first SSH in. (Remember, Verifying SSH host keys is more important than flossing every day.)
Err codemadness.org 70 i 45578 Download the SSH public key you want to use for logging in, and create an account (by default, “ec2-user”) with that key set up for you.
Err codemadness.org 70 i 45579 Fetch EC2 user-data and process it via configinit to allow you to configure the system as part of the process of launching it.
Err codemadness.org 70 i 45580 If your OS has an rc system derived from NetBSD’s rc.d, you may be able to use these scripts without any changes by simply installing them and enabling them in /etc/rc.conf; otherwise you may need to write your own scripts using mine as a model.
Err codemadness.org 70 i 45581 Firstboot scripts
Err codemadness.org 70 i 45582 A feature I added to FreeBSD a few years ago is the concept of “firstboot” scripts: These startup scripts are only run the first time a system boots. The aforementioned configinit and SSH key fetching scripts are flagged this way — so if your OS doesn’t support the “firstboot” keyword on rc.d scripts you’ll need to hack around that — but EC2 instances also ship with other scripts set to run on the first boot:
Err codemadness.org 70 i 45583 FreeBSD Update will fetch and install security and critical errata updates, and then reboot the system if necessary.
Err codemadness.org 70 i 45584 The UFS filesystem on the “boot disk” will be automatically expanded to the full size of the disk — this makes it possible to specify a larger size of disk at EC2 instance launch time.
Err codemadness.org 70 i 45585 Third-party packages will be automatically fetched and installed, according to a list in /etc/rc.conf. This is most useful if configinit is used to edit /etc/rc.conf, since it allows you to specify packages to install via the EC2 user-data.
Err codemadness.org 70 i 45586 While none of these are strictly necessary, I find them to be extremely useful and highly recommend implementing similar functionality in your systems.
Err codemadness.org 70 i 45587 Support my work!
Err codemadness.org 70 i 45588 I hope you find this useful, or at very least interesting. Please consider supporting my work in this area; while I’m happy to contribute my time to supporting open source software, it would be nice if I had money coming in which I could use to cover incidental expenses (e.g., conference travel) so that I didn’t end up paying to contribute to FreeBSD.

Err codemadness.org 70 i 45589
Err codemadness.org 70 i 45590 Err codemadness.org 70 i 45591


Err codemadness.org 70 i 45592 Err codemadness.org 70 i 45593

Digital Ocean
Err codemadness.org 70 i 45594 https://do.co/bsdnow

Err codemadness.org 70 i 45595 Err codemadness.org 70 i 45596

###Traceability, by Vint Cerf

Err codemadness.org 70 i 45597 Err codemadness.org 70 i 45598
    Err codemadness.org 70 i 45599
  • A recent article from the August issue of the Communications of the ACM, for your contemplation:
  • Err codemadness.org 70 i 45600
Err codemadness.org 70 i 45601 Err codemadness.org 70 i 45602
Err codemadness.org 70 i 45603

At a recent workshop on cybersecurity in the U.K., a primary topic of consideration was how to preserve the freedom and openness of the Internet while protecting against the harmful behaviors that have emerged in this global medium. That this is a significant challenge cannot be overstated. The bad behaviors range from social network bullying and misinformation to email spam, distributed denial of service attacks, direct cyberattacks against infrastructure, malware propagation, identity theft, and a host of other ills requiring a wide range of technical and legal considerations. That these harmful behaviors can and do cross international boundaries only makes it more difficult to fashion effective responses.
Err codemadness.org 70 i 45604 In other columns, I have argued for better software development tools to reduce the common mistakes that lead to vulnerabilities that are exploited. Here, I want to focus on another aspect of response related to law enforcement and tracking down perpetrators. Of course, not all harms are (or perhaps are not yet) illegal, but discovering those who cause them may still be warranted. The recent adoption and implementation of the General Data Protection Regulation (GDPR) in the European Union creates an interesting tension because it highlights the importance and value of privacy while those who do direct or indirect harm must be tracked down and their identities discovered.
Err codemadness.org 70 i 45605 In passing, I mention that cryptography has sometimes been blamed for protecting the identity or actions of criminals but it is also a tool for protecting privacy. Arguments have been made for “back doors” to cryptographic systems but I am of the opinion that such proposals carry extremely high risk to privacy and safety. It is not my intent to argue this question in this column.
Err codemadness.org 70 i 45606 What is of interest to me is a concept to which I was introduced at the Ditchley workshop, specifically, differential traceability. The ability to trace bad actors to bring them to justice seems to me an important goal in a civilized society. The tension with privacy protection leads to the idea that only under appropriate conditions can privacy be violated. By way of example, consider license plates on cars. They are usually arbitrary identifiers and special authority is needed to match them with the car owners (unless, of course, they are vanity plates like mine: “Cerfsup”). This is an example of differential traceability; the police department has the authority to demand ownership information from the Department of Motor Vehicles that issues the license plates. Ordinary citizens do not have this authority.
Err codemadness.org 70 i 45607 In the Internet environment there are a variety of identifiers associated with users (including corporate users). Domain names, IP addresses, email addresses, and public cryptography keys are examples among many others. Some of these identifiers are dynamic and thus ambiguous. For example, IP addresses are not always permanent and may change (for example, temporary IP addresses assigned at Wi-Fi hotspots) or may be ambiguous in the case of Network Address Translation. Information about the time of assignment and the party to whom an IP address was assigned may be needed to identify an individual user. There has been considerable debate and even a recent court case regarding requirements to register users in domain name WHOIS databases in the context of the adoption of GDPR. If we are to accomplish the simultaneous objectives of protecting privacy while apprehending those engaged in harmful or criminal behavior on the Internet, we must find some balance between conflicting but desirable outcomes.
Err codemadness.org 70 i 45608 This suggests to me that the notion of traceability under (internationally?) agreed circumstances (that is, differential traceability) might be a fruitful concept to explore. In most societies today, it is accepted that we must be identifiable to appropriate authorities under certain conditions (consider border crossings, traffic violation stops as examples). While there are conditions under which apparent anonymity is desirable and even justifiable (whistle-blowing, for example) absolute anonymity is actually quite difficult to achieve (another point made at the Ditchley workshop) and might not be absolutely desirable given the misbehaviors apparent anonymity invites. I expect this is a controversial conclusion and I look forward to subsequent discussion.

Err codemadness.org 70 i 45609
Err codemadness.org 70 i 45610 Err codemadness.org 70 i 45611


Err codemadness.org 70 i 45612 Err codemadness.org 70 i 45613

###Remote Access Console using FreeBSD on an RPi3

Err codemadness.org 70 i 45614 Err codemadness.org 70 i 45615
    Err codemadness.org 70 i 45616
  • Our friend, and FOSDEM Booth Neighbour, Jorge, has posted a tutorial on how he created a remote access console for his SmartOS server and other machines in his homelab
  • Err codemadness.org 70 i 45617
  • Parts:
  • Err codemadness.org 70 i 45618
  • Raspberry Pi 3 B+
  • Err codemadness.org 70 i 45619
  • NavoLabs micro POE Hat
  • Err codemadness.org 70 i 45620
  • FT4232H based USB-to-RS232 (4x) adapter
  • Err codemadness.org 70 i 45621
  • Official Raspberry Pi case (optional)
  • Err codemadness.org 70 i 45622
  • Heat-sink kit (optional)
  • Err codemadness.org 70 i 45623
  • USB-to-TTL adaptor (optional)
  • Err codemadness.org 70 i 45624
  • Sandisk 16Gb microSD
  • Err codemadness.org 70 i 45625
Err codemadness.org 70 i 45626 Err codemadness.org 70 i 45627
Err codemadness.org 70 i 45628

For the software I ended up using conserver. Below is a very brief tutorial on how to set everything up. I assume you have basic unix skills.

Err codemadness.org 70 i 45629
Err codemadness.org 70 i 45630 Err codemadness.org 70 i 45631
    Err codemadness.org 70 i 45632
  • Get an RPi3 image, make some minor modifications for RPi3+, and write it to the USB stick
  • Err codemadness.org 70 i 45633
  • Configure FreeBSD on the RPi3 Err codemadness.org 70 i 45634
      Err codemadness.org 70 i 45635
    • Load the ‘muge’ Ethernet Driver
    • Err codemadness.org 70 i 45636
    • Load USB serial support
    • Err codemadness.org 70 i 45637
    • Load the FTDI driver
    • Err codemadness.org 70 i 45638
    • Enable SSHd and Conserver
    • Err codemadness.org 70 i 45639
    • Configure Conserver
    • Err codemadness.org 70 i 45640
    • Setup log rotation
    • Err codemadness.org 70 i 45641
    • Start Conserver
    • Err codemadness.org 70 i 45642
    Err codemadness.org 70 i 45643 Err codemadness.org 70 i 45644


  • Err codemadness.org 70 i 45645
  • And you’re good to go

  • Err codemadness.org 70 i 45646

Err codemadness.org 70 i 45647 Err codemadness.org 70 i 45648
Err codemadness.org 70 i 45649

A small bonus script I wrote to turn on the 2nd LED on the rPI once the system is booted, it will then blink the LED if someone is connected to any of the consoles.

Err codemadness.org 70 i 45650
Err codemadness.org 70 i 45651 Err codemadness.org 70 i 45652 Err codemadness.org 70 i 45655 Err codemadness.org 70 i 45656


Err codemadness.org 70 i 45657 Err codemadness.org 70 i 45658

##Beastie Bits

Err codemadness.org 70 i 45659 Err codemadness.org 70 i 45660 Err codemadness.org 70 i 45668 Err codemadness.org 70 i 45669


Err codemadness.org 70 i 45670 Err codemadness.org 70 i 45671

Tarsnap

Err codemadness.org 70 i 45672 Err codemadness.org 70 i 45673

##Feedback/Questions
Err codemadness.org 70 i 45674 We need more feedback emails. Please write to feedback@bsdnow.tv

Err codemadness.org 70 i 45675 Err codemadness.org 70 i 45676

Additionally, we are considering a new segment to be added to the end of the show (to make it skippable), where we have a ~15 minute deep dive on a topic. Some initial ideas are on the Virtual Memory subsystem, the Scheduler, Capsicum, and GEOM. What topics would you like to get very detailed explanations of? Many of the explanations may have accompanying graphics, and not be very suitable for audio only listeners, that is why we are planning to put it at the very end of the episode.

Err codemadness.org 70 i 45677 Err codemadness.org 70 i 45678


Err codemadness.org 70 i 45679 Err codemadness.org 70 i 45680
    Err codemadness.org 70 i 45681
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 45682
]]> Err codemadness.org 70 i 45683
Err codemadness.org 70 i 45684 Err codemadness.org 70 i 45685 Trip reports from the Essen Hackathon and BSDCam, CfT: ZFS native encryption and UFS trim consolidation, ZFS performance benchmarks on a FreeBSD server, how to port your OS to EC2, Vint Cerf about traceability, Remote Access console to an RPi3 running FreeBSD, and more.

Err codemadness.org 70 i 45686 Err codemadness.org 70 i 45687

##Headlines
Err codemadness.org 70 i 45688 ###Essen Hackathon & BSDCam 2018 trip report

Err codemadness.org 70 i 45689 Err codemadness.org 70 i 45690
    Err codemadness.org 70 i 45691
  • Allan and Benedict met at FRA airport and then headed to the Air Rail terminal for our train to Essen where the Hackathon would happen over the weekend of Aug 10 - 12, 2018. Once there, we did not have to wait long until other early-arrivals would show up and soon we had about 10 people gathered for lunch. After buying some take-out pizzas and bringing it back to the Linuxhotel (there was a training still going on there so we could not get into our rooms yet), we sat in the sunny park and talked. More and more people arrived and soon, people started hacking on their laptops. Some people would not arrive until a few hours before midnight, but we already had a record appearance of 20 people in total.
  • Err codemadness.org 70 i 45692
  • On Saturday, we gathered everyone in one of the seminar rooms that had rooms and chairs for us. After some organizational infos, we did an introductory round and Benedict wrote down on the whiteboard what people were interested in. It was not long until groups formed to talk about SSL in base, weird ZFS scrubs that would go over 100% completion (fixed now). Other people started working on ports, fixing bugs, or wrote documentation. The day ended in a BBQ in the Linuxhotel park, which was well received by everyone.
  • Err codemadness.org 70 i 45693
  • On Sunday, after attendees packed up their luggage and stored it in the seminar room, we continued hacking until lunchtime. After a quick group picture, we headed to a local restaurant for the social event (which was not open on Saturday, otherwise we would have had it then). In the afternoon, most people departed, a good half of them were heading for BSDCam.
  • Err codemadness.org 70 i 45694
  • Commits from the hackathon (the ones from 2018)
  • Err codemadness.org 70 i 45695
  • Overall, the hackathon was well received by attendees and a lot of them liked the fact that it was close to another BSD gathering so they could nicely combine the two. Also, people thought about doing their own hackathon in the future, which is an exciting prospect. Thanks to all who attended, helped out here and there when needed. Special Thanks to Netzkommune GmbH for sponsoring the social event and the Linuxhotel for having us.
  • Err codemadness.org 70 i 45696
  • Benedict was having a regular work day on Monday after coming back from the hackathon, but flew out to Heathrow on Tuesday. Allan was in London a day earlier and arrived a couple of hours before Benedict in Cambridge. He headed for the Computer Lab even though the main event would not start until Wednesday. Most people gathered at the Maypole pub on Tuesday evening for welcomes, food and drinks.
  • Err codemadness.org 70 i 45697
  • On Wednesday, a lot of people met in the breakfast room of Churchill College where most people were staying and went to the Computer Lab, which served as the main venue for BSDCam, together. The morning was spend with introductions and collecting what most people were interested in talking. This unconference style has worked well in the past and soon we had 10 main sessions together for the rest of this and the following two days (full schedule).
  • Err codemadness.org 70 i 45698
  • Most sessions took notes, which you can find on the FreeBSD wiki.
  • Err codemadness.org 70 i 45699
  • On Thursday evening, we had a nice formal dinner at Trinity Hall.
  • Err codemadness.org 70 i 45700
  • BSDCam 2018 was a great success with a lot of fruitful discussions and planning sessions. We thank the organizers for BSDCam for making it happen.
  • Err codemadness.org 70 i 45701
  • A special mentions goes out to Robert Watson and his family. Even though he was not there, he had a good reason to miss it: they had their first child born at the beginning of the week. Congratulations and best wishes to all three of them!
  • Err codemadness.org 70 i 45702
Err codemadness.org 70 i 45703 Err codemadness.org 70 i 45704


Err codemadness.org 70 i 45705 Err codemadness.org 70 i 45706

###Call for Testing: ZFS Native Encryption for FreeBSD

Err codemadness.org 70 i 45707 Err codemadness.org 70 i 45708
    Err codemadness.org 70 i 45709
  • A port of the ZoL (ZFS-on-Linux) feature that provides native crypto support for ZFS is ready for testing on FreeBSD
  • Err codemadness.org 70 i 45710
  • Most of the porting was done by sef@freebsd.org (Sean Eric Fagan)
  • Err codemadness.org 70 i 45711
  • The original ZoL commit is here: https://github.com/zfsonlinux/zfs/pull/5769/commits/5aef9bedc801830264428c64cd2242d1b786fd49
  • Err codemadness.org 70 i 45712
  • For an overview, see Tom Caputi’s presentation from the OpenZFS Developers Summit in 2016
  • Err codemadness.org 70 i 45713
  • Video: https://youtu.be/frnLiXclAMo
  • Err codemadness.org 70 i 45714
  • Slides: https://drive.google.com/file/d/0B5hUzsxe4cdmU3ZTRXNxa2JIaDQ/view?usp=sharing
  • Err codemadness.org 70 i 45715
  • WARNING: test in VMs or with spare disks etc, pools created with this code, or upgraded to this version, will no longer be importable on systems that do not support this feature. The on-disk format or other things may change before the final version, so you will likely have to ‘zfs send | zfs recv’ the data on to a new pool
  • Err codemadness.org 70 i 45716
  • Thanks for testing to help this feature land in FreeBSD
  • Err codemadness.org 70 i 45717
Err codemadness.org 70 i 45718 Err codemadness.org 70 i 45719


Err codemadness.org 70 i 45720 Err codemadness.org 70 i 45721

iXsystems

Err codemadness.org 70 i 45722 Err codemadness.org 70 i 45723

###Call for Testing: UFS TRIM Consolidation

Err codemadness.org 70 i 45724 Err codemadness.org 70 i 45725
    Err codemadness.org 70 i 45726
  • Kirk Mckusick posts to the FreeBSD mailing list looking for testers for the new UFS TRIM Consolidation code
  • Err codemadness.org 70 i 45727
Err codemadness.org 70 i 45728 Err codemadness.org 70 i 45729
Err codemadness.org 70 i 45730

When deleting files on filesystems that are stored on flash-memory (solid-state) disk drives, the filesystem notifies the underlying disk of the blocks that it is no longer using. The notification allows the drive to avoid saving these blocks when it needs to flash (zero out) one of its flash pages. These notifications of no-longer-being-used blocks are referred to as TRIM notifications. In FreeBSD these TRIM notifications are sent from the filesystem to the drive using the BIO_DELETE command.
Err codemadness.org 70 i 45731 Until now, the filesystem would send a separate message to the drive for each block of the file that was deleted. Each Gigabyte of file size resulted in over 3000 TRIM messages being sent to the drive. This burst of messages can overwhelm the drive’s task queue causing multiple second delays for read and write requests.
Err codemadness.org 70 i 45732 This implementation collects runs of contiguous blocks in the file and then consolodates them into a single BIO_DELETE command to the drive. The BIO_DELETE command describes the run of blocks as a single large block being deleted. Each Gigabyte of file size can result in as few as two BIO_DELETE commands and is typically less than ten. Though these larger BIO_DELETE commands take longer to run, they do not clog the drive task queue, so read and write commands can intersperse effectively with them.
Err codemadness.org 70 i 45733 Though this new feature has been throughly reviewed and tested, it is being added disabled by default so as to minimize the possibility of disrupting the upcoming 12.0 release. It can be enabled by running ``sysctl vfs.ffs.dotrimcons=1’’. Users are encouraged to test it. If no problems arise, we will consider requesting that it be enabled by default for 12.0.
Err codemadness.org 70 i 45734 This support is off by default, but I am hoping that I can get enough testing to ensure that it (a) works, and (b) is helpful that it will be reasonable to have it turned on by default in 12.0. The cutoff for turning it on by default in 12.0 is September 19th. So I am requesting your testing feedback in the near-term. Please let me know if you have managed to use it successfully (or not) and also if it provided any performance difference (good or bad).

Err codemadness.org 70 i 45735
Err codemadness.org 70 i 45736 Err codemadness.org 70 i 45737
    Err codemadness.org 70 i 45738
  • To enable TRIM consolidation use `sysctl vfs.ffs.dotrimcons=1’
  • Err codemadness.org 70 i 45739
  • There is also a diff that adds additional statistics: https://lists.freebsd.org/pipermail/freebsd-current/2018-August/070798.html
  • Err codemadness.org 70 i 45740
  • You can also watch the volume and latency of BIO_DELETE commands by running gstat with the -d flag
  • Err codemadness.org 70 i 45741
Err codemadness.org 70 i 45742 Err codemadness.org 70 i 45743


Err codemadness.org 70 i 45744 Err codemadness.org 70 i 45745

##News Roundup
Err codemadness.org 70 i 45746 ###ZFS performance

Err codemadness.org 70 i 45747 Err codemadness.org 70 i 45748
    Err codemadness.org 70 i 45749
  • Aravindh Sampathkumar, a Performance Engineer and Sysadmin posts some simple benchmarks he did on a new ZFS server
  • Err codemadness.org 70 i 45750
Err codemadness.org 70 i 45751 Err codemadness.org 70 i 45752
Err codemadness.org 70 i 45753

This is NOT an all-in post about ZFS performance. I built a FreeBSD+ZFS file server recently at work to serve as an offsite backup server. I wanted to run a few synthetic workloads on it and look at how it fares from performance perspective. Mostly for curiosity and learning purposes.
Err codemadness.org 70 i 45754 As stated in the notes about building this server, performance was not one of the priorities, as this server will never face our active workload. What I care about from this server is its ability to work with rsync and keep the data synchronised with our primary storage server. With that context, I ran a few write tests to see how good our solution is and what to expect from it in terms of performance.

Err codemadness.org 70 i 45755
Err codemadness.org 70 i 45756 Err codemadness.org 70 i 45757
    Err codemadness.org 70 i 45758
  • The article then uses FIO to do some benchmarks.
  • Err codemadness.org 70 i 45759
  • As the author did, make sure you match the FIO block size to the ZFS record size to avoid write amplification. Either tune FIO or adjust the recordsize property in ZFS
  • Err codemadness.org 70 i 45760
  • You also want to consider compression and cache effects
  • Err codemadness.org 70 i 45761
Err codemadness.org 70 i 45762 Err codemadness.org 70 i 45763
Err codemadness.org 70 i 45764

Write Performance: Incompressible: 1600-2600 MB/s, Compressible: 2500-6600 MB/s
Err codemadness.org 70 i 45765 Another over 1200 MB/s is enough to keep your 10 gigabit network saturated

Err codemadness.org 70 i 45766
Err codemadness.org 70 i 45767 Err codemadness.org 70 i 45768
    Err codemadness.org 70 i 45769
  • The increased latency that is seen with higher number of writers working, may be the result of the ZFS backpressure system (the write throttle). There is some tuning that can be done there. Specifically, since this machine has 768 GB of ram, you might allow more than 4GB of dirty data, which would mean you’d be able to write larger batches and not have to push back while you wait for a transaction group to flush when dealing with gigabytes/sec of writes
  • Err codemadness.org 70 i 45770
Err codemadness.org 70 i 45771 Err codemadness.org 70 i 45772


Err codemadness.org 70 i 45773 Err codemadness.org 70 i 45774

###How to port your OS to EC2

Err codemadness.org 70 i 45775 Err codemadness.org 70 i 45776
    Err codemadness.org 70 i 45777
  • Colin Percival reflects on his FreeBSD on EC2 maintainership efforts in his blog:
  • Err codemadness.org 70 i 45778
Err codemadness.org 70 i 45779 Err codemadness.org 70 i 45780
Err codemadness.org 70 i 45781

I’ve been the maintainer of the FreeBSD/EC2 platform for about 7.5 years now, and as far as “running things in virtual machines” goes, that remains the only operating system and the only cloud which I work on. That said, from time to time I get questions from people who want to port other operating systems into EC2, and being a member of the open source community, I do my best to help them. I realized a few days ago that rather than replying to emails one by one it would be more efficient to post something publicly; so — for the benefit of the dozen or so people who want to port operating systems to run in EC2, and the curiosity of maybe a thousand more people who use EC2 but will never build AMIs themselves — here’s a rough guide to building EC2 images.
Err codemadness.org 70 i 45782 Before we can talk about building images, there are some things you need:
Err codemadness.org 70 i 45783 Your OS needs to run on x86 hardware. 64-bit (“amd64”, “x86-64”) is ideal, but I’ve managed to run 32-bit FreeBSD on “64-bit” EC2 instances so at least in some cases that’s not strictly necessary.
Err codemadness.org 70 i 45784 You almost certainly want to have drivers for Xen block devices (for all of the pre-Nitro EC2 instances) or for NVMe disks (for the most recent EC2 instances). Theoretically you could make do without these since there’s some ATA emulation available for bootstrapping, but if you want to do any disk I/O after the kernel finishes booting you’ll want to have a disk driver.
Err codemadness.org 70 i 45785 Similarly, you need support for the Xen network interface (older instances), Intel 10 GbE SR-IOV networking (some newer but pre-Nitro instances), or Amazon’s “ENA” network adapters (on Nitro instances), unless you plan on having instances which don’t communicate over the network. The ENA driver is probably the hardest thing to port, since as far as I know there’s no way to get your hands on the hardware directly, and it’s very difficult to do any debugging in EC2 without having a working network.
Err codemadness.org 70 i 45786 Finally, the obvious: You need to have an AWS account, and appropriate API access keys.
Err codemadness.org 70 i 45787 Building a disk image

Err codemadness.org 70 i 45788

Building an AMI
Err codemadness.org 70 i 45789 I wrote a simple tool for converting disk images into EC2 instances: bsdec2-image-upload. It uploads a disk image to Amazon S3; makes an API call to import that disk image into an EBS volume; creates a snapshot of that volume; then registers an EC2 AMI using that snapshot.
Err codemadness.org 70 i 45790 To use bsdec2-image-upload, you’ll first need to create an S3 bucket for it to use as a staging area. You can call it anything you like, but I recommend that you

Err codemadness.org 70 i 45791
Err codemadness.org 70 i 45792 Err codemadness.org 70 i 45793
Err codemadness.org 70 i 45794

Create it in a “nearby” region (for performance reasons), and
Err codemadness.org 70 i 45795 Set an S3 “lifecycle policy” which deletes objects automatically after 1 day (since bsdec2-image-upload doesn’t clean up the S3 bucket, and those objects are useless once you’ve finished creating an AMI).

Err codemadness.org 70 i 45796
Err codemadness.org 70 i 45797 Err codemadness.org 70 i 45798
Err codemadness.org 70 i 45799

Boot configuration
Err codemadness.org 70 i 45800 Odds are that your instance started booting and got as far as the boot loader launching the kernel, but at some point after that things went sideways. Now we start the iterative process of building disk images, turning them into AMIs, launching said AMIs, and seeing where they break. Some things you’ll probably run into here:
Err codemadness.org 70 i 45801 EC2 instances have two types of console available to them: A serial console and an VGA console. (Or rather, emulated serial and emulated VGA.) If you can have your kernel output go to both consoles, I recommend doing that. If you have to pick one, the serial console (which shows up as the “System Log” in EC2) is probably more useful than the VGA console (which shows up as “instance screenshot”) since it lets you see more than one screen of logs at once; but there’s a catch: Due to some bizarre breakage in EC2 — which I’ve been complaining about for ten years — the serial console is very “laggy”. If you find that you’re not getting any output, wait five minutes and try again.
Err codemadness.org 70 i 45802 You may need to tell your kernel where to find the root filesystem. On FreeBSD we build our disk images using GPT labels, so we simply need to specify in /etc/fstab that the root filesystem is on /dev/gpt/rootfs; but if you can’t do this, you’ll probably need to have different AMIs for Nitro instances vs. non-Nitro instances since Xen block devices will typically show up with different device names from NVMe disks. On FreeBSD, I also needed to set the vfs.root.mountfrom kernel environment variable for a while; this also is no longer needed on FreeBSD but something similar may be needed on other systems.
Err codemadness.org 70 i 45803 You’ll need to enable networking, using DHCP. On FreeBSD, this means placing ifconfig_DEFAULT=“SYNCDHCP” into /etc/rc.conf; other systems will have other ways of specifying network parameters, and it may be necessary to specify a setting for the Xen network device, Intel SR-IOV network, and the Amazon ENA interface so that you’ll have the necessary configuration across all EC2 instance types. (On FreeBSD, ifconfig_DEFAULT takes care of specifying the network settings which should apply for whatever network interface the kernel finds at boot time.)
Err codemadness.org 70 i 45804 You’ll almost certainly want to turn on SSH, so that you can connect into newly launched instances and make use of them. Don’t worry about setting a password or creating a user to SSH into yet — we’ll take care of that later.
Err codemadness.org 70 i 45805 EC2 configuration
Err codemadness.org 70 i 45806 Now it’s time to make the AMI behave like an EC2 instance. To this end, I prepared a set of rc.d scripts for FreeBSD. Most importantly, they
Err codemadness.org 70 i 45807 Print the SSH host keys to the console, so that you can veriy that they are correct when you first SSH in. (Remember, Verifying SSH host keys is more important than flossing every day.)
Err codemadness.org 70 i 45808 Download the SSH public key you want to use for logging in, and create an account (by default, “ec2-user”) with that key set up for you.
Err codemadness.org 70 i 45809 Fetch EC2 user-data and process it via configinit to allow you to configure the system as part of the process of launching it.
Err codemadness.org 70 i 45810 If your OS has an rc system derived from NetBSD’s rc.d, you may be able to use these scripts without any changes by simply installing them and enabling them in /etc/rc.conf; otherwise you may need to write your own scripts using mine as a model.
Err codemadness.org 70 i 45811 Firstboot scripts
Err codemadness.org 70 i 45812 A feature I added to FreeBSD a few years ago is the concept of “firstboot” scripts: These startup scripts are only run the first time a system boots. The aforementioned configinit and SSH key fetching scripts are flagged this way — so if your OS doesn’t support the “firstboot” keyword on rc.d scripts you’ll need to hack around that — but EC2 instances also ship with other scripts set to run on the first boot:
Err codemadness.org 70 i 45813 FreeBSD Update will fetch and install security and critical errata updates, and then reboot the system if necessary.
Err codemadness.org 70 i 45814 The UFS filesystem on the “boot disk” will be automatically expanded to the full size of the disk — this makes it possible to specify a larger size of disk at EC2 instance launch time.
Err codemadness.org 70 i 45815 Third-party packages will be automatically fetched and installed, according to a list in /etc/rc.conf. This is most useful if configinit is used to edit /etc/rc.conf, since it allows you to specify packages to install via the EC2 user-data.
Err codemadness.org 70 i 45816 While none of these are strictly necessary, I find them to be extremely useful and highly recommend implementing similar functionality in your systems.
Err codemadness.org 70 i 45817 Support my work!
Err codemadness.org 70 i 45818 I hope you find this useful, or at very least interesting. Please consider supporting my work in this area; while I’m happy to contribute my time to supporting open source software, it would be nice if I had money coming in which I could use to cover incidental expenses (e.g., conference travel) so that I didn’t end up paying to contribute to FreeBSD.

Err codemadness.org 70 i 45819
Err codemadness.org 70 i 45820 Err codemadness.org 70 i 45821


Err codemadness.org 70 i 45822 Err codemadness.org 70 i 45823

Digital Ocean
Err codemadness.org 70 i 45824 https://do.co/bsdnow

Err codemadness.org 70 i 45825 Err codemadness.org 70 i 45826

###Traceability, by Vint Cerf

Err codemadness.org 70 i 45827 Err codemadness.org 70 i 45828
    Err codemadness.org 70 i 45829
  • A recent article from the August issue of the Communications of the ACM, for your contemplation:
  • Err codemadness.org 70 i 45830
Err codemadness.org 70 i 45831 Err codemadness.org 70 i 45832
Err codemadness.org 70 i 45833

At a recent workshop on cybersecurity in the U.K., a primary topic of consideration was how to preserve the freedom and openness of the Internet while protecting against the harmful behaviors that have emerged in this global medium. That this is a significant challenge cannot be overstated. The bad behaviors range from social network bullying and misinformation to email spam, distributed denial of service attacks, direct cyberattacks against infrastructure, malware propagation, identity theft, and a host of other ills requiring a wide range of technical and legal considerations. That these harmful behaviors can and do cross international boundaries only makes it more difficult to fashion effective responses.
Err codemadness.org 70 i 45834 In other columns, I have argued for better software development tools to reduce the common mistakes that lead to vulnerabilities that are exploited. Here, I want to focus on another aspect of response related to law enforcement and tracking down perpetrators. Of course, not all harms are (or perhaps are not yet) illegal, but discovering those who cause them may still be warranted. The recent adoption and implementation of the General Data Protection Regulation (GDPR) in the European Union creates an interesting tension because it highlights the importance and value of privacy while those who do direct or indirect harm must be tracked down and their identities discovered.
Err codemadness.org 70 i 45835 In passing, I mention that cryptography has sometimes been blamed for protecting the identity or actions of criminals but it is also a tool for protecting privacy. Arguments have been made for “back doors” to cryptographic systems but I am of the opinion that such proposals carry extremely high risk to privacy and safety. It is not my intent to argue this question in this column.
Err codemadness.org 70 i 45836 What is of interest to me is a concept to which I was introduced at the Ditchley workshop, specifically, differential traceability. The ability to trace bad actors to bring them to justice seems to me an important goal in a civilized society. The tension with privacy protection leads to the idea that only under appropriate conditions can privacy be violated. By way of example, consider license plates on cars. They are usually arbitrary identifiers and special authority is needed to match them with the car owners (unless, of course, they are vanity plates like mine: “Cerfsup”). This is an example of differential traceability; the police department has the authority to demand ownership information from the Department of Motor Vehicles that issues the license plates. Ordinary citizens do not have this authority.
Err codemadness.org 70 i 45837 In the Internet environment there are a variety of identifiers associated with users (including corporate users). Domain names, IP addresses, email addresses, and public cryptography keys are examples among many others. Some of these identifiers are dynamic and thus ambiguous. For example, IP addresses are not always permanent and may change (for example, temporary IP addresses assigned at Wi-Fi hotspots) or may be ambiguous in the case of Network Address Translation. Information about the time of assignment and the party to whom an IP address was assigned may be needed to identify an individual user. There has been considerable debate and even a recent court case regarding requirements to register users in domain name WHOIS databases in the context of the adoption of GDPR. If we are to accomplish the simultaneous objectives of protecting privacy while apprehending those engaged in harmful or criminal behavior on the Internet, we must find some balance between conflicting but desirable outcomes.
Err codemadness.org 70 i 45838 This suggests to me that the notion of traceability under (internationally?) agreed circumstances (that is, differential traceability) might be a fruitful concept to explore. In most societies today, it is accepted that we must be identifiable to appropriate authorities under certain conditions (consider border crossings, traffic violation stops as examples). While there are conditions under which apparent anonymity is desirable and even justifiable (whistle-blowing, for example) absolute anonymity is actually quite difficult to achieve (another point made at the Ditchley workshop) and might not be absolutely desirable given the misbehaviors apparent anonymity invites. I expect this is a controversial conclusion and I look forward to subsequent discussion.

Err codemadness.org 70 i 45839
Err codemadness.org 70 i 45840 Err codemadness.org 70 i 45841


Err codemadness.org 70 i 45842 Err codemadness.org 70 i 45843

###Remote Access Console using FreeBSD on an RPi3

Err codemadness.org 70 i 45844 Err codemadness.org 70 i 45845
    Err codemadness.org 70 i 45846
  • Our friend, and FOSDEM Booth Neighbour, Jorge, has posted a tutorial on how he created a remote access console for his SmartOS server and other machines in his homelab
  • Err codemadness.org 70 i 45847
  • Parts:
  • Err codemadness.org 70 i 45848
  • Raspberry Pi 3 B+
  • Err codemadness.org 70 i 45849
  • NavoLabs micro POE Hat
  • Err codemadness.org 70 i 45850
  • FT4232H based USB-to-RS232 (4x) adapter
  • Err codemadness.org 70 i 45851
  • Official Raspberry Pi case (optional)
  • Err codemadness.org 70 i 45852
  • Heat-sink kit (optional)
  • Err codemadness.org 70 i 45853
  • USB-to-TTL adaptor (optional)
  • Err codemadness.org 70 i 45854
  • Sandisk 16Gb microSD
  • Err codemadness.org 70 i 45855
Err codemadness.org 70 i 45856 Err codemadness.org 70 i 45857
Err codemadness.org 70 i 45858

For the software I ended up using conserver. Below is a very brief tutorial on how to set everything up. I assume you have basic unix skills.

Err codemadness.org 70 i 45859
Err codemadness.org 70 i 45860 Err codemadness.org 70 i 45861
    Err codemadness.org 70 i 45862
  • Get an RPi3 image, make some minor modifications for RPi3+, and write it to the USB stick
  • Err codemadness.org 70 i 45863
  • Configure FreeBSD on the RPi3 Err codemadness.org 70 i 45864
      Err codemadness.org 70 i 45865
    • Load the ‘muge’ Ethernet Driver
    • Err codemadness.org 70 i 45866
    • Load USB serial support
    • Err codemadness.org 70 i 45867
    • Load the FTDI driver
    • Err codemadness.org 70 i 45868
    • Enable SSHd and Conserver
    • Err codemadness.org 70 i 45869
    • Configure Conserver
    • Err codemadness.org 70 i 45870
    • Setup log rotation
    • Err codemadness.org 70 i 45871
    • Start Conserver
    • Err codemadness.org 70 i 45872
    Err codemadness.org 70 i 45873 Err codemadness.org 70 i 45874


  • Err codemadness.org 70 i 45875
  • And you’re good to go

  • Err codemadness.org 70 i 45876

Err codemadness.org 70 i 45877 Err codemadness.org 70 i 45878
Err codemadness.org 70 i 45879

A small bonus script I wrote to turn on the 2nd LED on the rPI once the system is booted, it will then blink the LED if someone is connected to any of the consoles.

Err codemadness.org 70 i 45880
Err codemadness.org 70 i 45881 Err codemadness.org 70 i 45882 Err codemadness.org 70 i 45885 Err codemadness.org 70 i 45886


Err codemadness.org 70 i 45887 Err codemadness.org 70 i 45888

##Beastie Bits

Err codemadness.org 70 i 45889 Err codemadness.org 70 i 45890 Err codemadness.org 70 i 45898 Err codemadness.org 70 i 45899


Err codemadness.org 70 i 45900 Err codemadness.org 70 i 45901

Tarsnap

Err codemadness.org 70 i 45902 Err codemadness.org 70 i 45903

##Feedback/Questions
Err codemadness.org 70 i 45904 We need more feedback emails. Please write to feedback@bsdnow.tv

Err codemadness.org 70 i 45905 Err codemadness.org 70 i 45906

Additionally, we are considering a new segment to be added to the end of the show (to make it skippable), where we have a ~15 minute deep dive on a topic. Some initial ideas are on the Virtual Memory subsystem, the Scheduler, Capsicum, and GEOM. What topics would you like to get very detailed explanations of? Many of the explanations may have accompanying graphics, and not be very suitable for audio only listeners, that is why we are planning to put it at the very end of the episode.

Err codemadness.org 70 i 45907 Err codemadness.org 70 i 45908


Err codemadness.org 70 i 45909 Err codemadness.org 70 i 45910
    Err codemadness.org 70 i 45911
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 45912
]]> Err codemadness.org 70 i 45913
Err codemadness.org 70 i 45914 https://fireside.fm/player/v2/FYhhasNR+83R7M4lm Err codemadness.org 70 i 45915 Err codemadness.org 70 i 45916 ]]> Err codemadness.org 70 i 45917 Err codemadness.org 70 i 45918
Err codemadness.org 70 i 45919 Err codemadness.org 70 i 45920 Episode 259: Long Live Unix | BSD Now 259 Err codemadness.org 70 i 45921 https://www.bsdnow.tv/259 Err codemadness.org 70 i 45922 http://feed.jupiter.zone/bsdnow#entry-2433 Err codemadness.org 70 i 45923 Thu, 16 Aug 2018 00:00:00 -0700 Err codemadness.org 70 i 45924 Allan Jude Err codemadness.org 70 i 45925 Err codemadness.org 70 i 45926 full Err codemadness.org 70 i 45927 Allan Jude Err codemadness.org 70 i 45928 The strange birth and long life of Unix, FreeBSD jail with a single public IP, EuroBSDcon 2018 talks and schedule, OpenBSD on G4 iBook, PAM template user, ZFS file server, and reflections on one year of OpenBSD use. Err codemadness.org 70 i 45929 1:47:36 Err codemadness.org 70 i 45930 no Err codemadness.org 70 i 45931 Err codemadness.org 70 i 45932 The strange birth and long life of Unix, FreeBSD jail with a single public IP, EuroBSDcon 2018 talks and schedule, OpenBSD on G4 iBook, PAM template user, ZFS file server, and reflections on one year of OpenBSD use. Err codemadness.org 70 i 45933 <h3><a id="Picking_the_contest_winner_0"></a>Picking the contest winner</h3> Err codemadness.org 70 i 45934 <ol> Err codemadness.org 70 i 45935 <li>Vincent</li> Err codemadness.org 70 i 45936 <li>Bostjan</li> Err codemadness.org 70 i 45937 <li>Andrew</li> Err codemadness.org 70 i 45938 <li>Klaus-Hendrik</li> Err codemadness.org 70 i 45939 <li>Will</li> Err codemadness.org 70 i 45940 <li>Toby</li> Err codemadness.org 70 i 45941 <li>Johnny</li> Err codemadness.org 70 i 45942 <li>David</li> Err codemadness.org 70 i 45943 <li>manfrom</li> Err codemadness.org 70 i 45944 <li>Niclas</li> Err codemadness.org 70 i 45945 <li>Gary</li> Err codemadness.org 70 i 45946 <li>Eddy</li> Err codemadness.org 70 i 45947 <li>Bruce</li> Err codemadness.org 70 i 45948 <li>Lizz</li> Err codemadness.org 70 i 45949 <li>Jim</li> Err codemadness.org 70 i 45950 </ol> Err codemadness.org 70 i 45951 <p><a href="https://www.random.org/integers/?num=1&amp;min=0&amp;max=15&amp;col=1&amp;base=10&amp;format=html&amp;rnd=new">Random number generator</a></p> Err codemadness.org 70 i 45952 <p>##Headlines<br> Err codemadness.org 70 i 45953 ###<a href="https://spectrum.ieee.org/tech-history/cyberspace/the-strange-birth-and-long-life-of-unix">The Strange Birth and Long Life of Unix</a></p> Err codemadness.org 70 i 45954 <blockquote> Err codemadness.org 70 i 45955 <p>They say that when one door closes on you, another opens. People generally offer this bit of wisdom just to lend some solace after a misfortune. But sometimes it’s actually true. It certainly was for Ken Thompson and the late Dennis Ritchie, two of the greats of 20th-century information technology, when they created the Unix operating system, now considered one of the most inspiring and influential pieces of software ever written.<br> Err codemadness.org 70 i 45956 A door had slammed shut for Thompson and Ritchie in March of 1969, when their employer, the American Telephone &amp; Telegraph Co., withdrew from a collaborative project with the Massachusetts Institute of Technology and General Electric to create an interactive time-sharing system called Multics, which stood for “Multiplexed Information and Computing Service.” Time-sharing, a technique that lets multiple people use a single computer simultaneously, had been invented only a decade earlier. Multics was to combine time-sharing with other technological advances of the era, allowing users to phone a computer from remote terminals and then read e-mail, edit documents, run calculations, and so forth. It was to be a great leap forward from the way computers were mostly being used, with people tediously preparing and submitting batch jobs on punch cards to be run one by one.<br> Err codemadness.org 70 i 45957 Over five years, AT&amp;T invested millions in the Multics project, purchasing a GE-645 mainframe computer and dedicating to the effort many of the top researchers at the company’s renowned Bell Telephone Laboratories—­including Thompson and Ritchie, Joseph F. Ossanna, Stuart Feldman, M. Douglas McIlroy, and the late Robert Morris. But the new system was too ambitious, and it fell troublingly behind schedule. In the end, AT&amp;T’s corporate leaders decided to pull the plug.<br> Err codemadness.org 70 i 45958 After AT&amp;T’s departure from the Multics project, managers at Bell Labs, in Murray Hill, N.J., became reluctant to allow any further work on computer operating systems, leaving some researchers there very frustrated. Although Multics hadn’t met many of its objectives, it had, as Ritchie later recalled, provided them with a “convenient interactive computing service, a good environment in which to do programming, [and] a system around which a fellowship could form.” Suddenly, it was gone.<br> Err codemadness.org 70 i 45959 With heavy hearts, the researchers returned to using their old batch system. At such an inauspicious moment, with management dead set against the idea, it surely would have seemed foolhardy to continue designing computer operating systems. But that’s exactly what Thompson, Ritchie, and many of their Bell Labs colleagues did. Now, some 40 years later, we should be thankful that these programmers ignored their bosses and continued their labor of love, which gave the world Unix, one of the greatest computer operating systems of all time.<br> Err codemadness.org 70 i 45960 The rogue project began in earnest when Thompson, Ritchie, and a third Bell Labs colleague, Rudd Canaday, began to sketch out on paper the design for a file system. Thompson then wrote the basics of a new operating system for the lab’s GE-645 mainframe. But with the Multics project ended, so too was the need for the GE-645. Thompson realized that any further programming he did on it was likely to go nowhere, so he dropped the effort.<br> Err codemadness.org 70 i 45961 Thompson had passed some of his time after the demise of Multics writing a computer game called Space Travel, which simulated all the major bodies in the solar system along with a spaceship that could fly around them. Written for the GE-645, Space Travel was clunky to play—and expensive: roughly US $75 a game for the CPU time. Hunting around, Thompson came across a dusty PDP-7, a minicomputer built by Digital Equipment Corp. that some of his Bell Labs colleagues had purchased earlier for a circuit-analysis project. Thompson rewrote Space Travel to run on it.<br> Err codemadness.org 70 i 45962 And with that little programming exercise, a second door cracked ajar. It was to swing wide open during the summer of 1969 when Thompson’s wife, Bonnie, spent a month visiting his parents to show off their newborn son. Thompson took advantage of his temporary bachelor existence to write a good chunk of what would become the Unix operating system for the discarded PDP‑7. The name Unix stems from a joke one of Thompson’s colleagues made: Because the new operating system supported only one user (Thompson), he saw it as an emasculated version of Multics and dubbed it “Un-multiplexed Information and Computing Service,” or Unics. The name later morphed into Unix.<br> Err codemadness.org 70 i 45963 Initially, Thompson used the GE-645 to compose and compile the software, which he then downloaded to the PDP‑7. But he soon weaned himself from the mainframe, and by the end of 1969 he was able to write operating-system code on the PDP-7 itself. That was a step in the right direction. But Thompson and the others helping him knew that the PDP‑7, which was already obsolete, would not be able to sustain their skunkworks for long. They also knew that the lab’s management wasn’t about to allow any more research on operating systems.<br> Err codemadness.org 70 i 45964 So Thompson and Ritchie got crea­tive. They formulated a proposal to their bosses to buy one of DEC’s newer minicomputers, a PDP-11, but couched the request in especially palatable terms. They said they were aiming to create tools for editing and formatting text, what you might call a word-processing system today. The fact that they would also have to write an operating system for the new machine to support the editor and text formatter was almost a footnote.<br> Err codemadness.org 70 i 45965 Management took the bait, and an order for a PDP-11 was placed in May 1970. The machine itself arrived soon after, although the disk drives for it took more than six months to appear. During the interim, Thompson, Ritchie, and others continued to develop Unix on the PDP-7. After the PDP-11’s disks were installed, the researchers moved their increasingly complex operating system over to the new machine. Next they brought over the roff text formatter written by Ossanna and derived from the runoff program, which had been used in an earlier time-sharing system.<br> Err codemadness.org 70 i 45966 Unix was put to its first real-world test within Bell Labs when three typists from AT&amp;T’s patents department began using it to write, edit, and format patent applications. It was a hit. The patent department adopted the system wholeheartedly, which gave the researchers enough credibility to convince management to purchase another machine—a newer and more powerful PDP-11 model—allowing their stealth work on Unix to continue.<br> Err codemadness.org 70 i 45967 During its earliest days, Unix evolved constantly, so the idea of issuing named versions or releases seemed inappropriate. But the researchers did issue new editions of the programmer’s manual periodically, and the early Unix systems were named after each such edition. The first edition of the manual was completed in November 1971.<br> Err codemadness.org 70 i 45968 So what did the first edition of Unix offer that made it so great? For one thing, the system provided a hierarchical file system, which allowed something we all now take for granted: Files could be placed in directories—or equivalently, folders—that in turn could be put within other directories. Each file could contain no more than 64 kilobytes, and its name could be no more than six characters long. These restrictions seem awkwardly limiting now, but at the time they appeared perfectly adequate.<br> Err codemadness.org 70 i 45969 Although Unix was ostensibly created for word processing, the only editor available in 1971 was the line-oriented ed. Today, ed is still the only editor guaranteed to be present on all Unix systems. Apart from the text-processing and general system applications, the first edition of Unix included games such as blackjack, chess, and tic-tac-toe. For the system administrator, there were tools to dump and restore disk images to magnetic tape, to read and write paper tapes, and to create, check, mount, and unmount removable disk packs.<br> Err codemadness.org 70 i 45970 Most important, the system offered an interactive environment that by this time allowed time-sharing, so several people could use a single machine at once. Various programming languages were available to them, including BASIC, Fortran, the scripting of Unix commands, assembly language, and B. The last of these, a descendant of a BCPL (Basic Combined Programming Language), ultimately evolved into the immensely popular C language, which Ritchie created while also working on Unix.<br> Err codemadness.org 70 i 45971 The first edition of Unix let programmers call 34 different low-level routines built into the operating system. It’s a testament to the system’s enduring nature that nearly all of these system calls are still available—and still heavily used—on modern Unix and Linux systems four decades on. For its time, first-­edition Unix provided a remarkably powerful environment for software development. Yet it contained just 4200 lines of code at its heart and occupied a measly 16 KB of main memory when it ran.<br> Err codemadness.org 70 i 45972 Unix’s great influence can be traced in part to its elegant design, simplicity, portability, and serendipitous timing. But perhaps even more important was the devoted user community that soon grew up around it. And that came about only by an accident of its unique history.<br> Err codemadness.org 70 i 45973 The story goes like this: For years Unix remained nothing more than a Bell Labs research project, but by 1973 its authors felt the system was mature enough for them to present a paper on its design and implementation at a symposium of the Association for Computing Machinery. That paper was published in 1974 in the Communications of the ACM. Its appearance brought a flurry of requests for copies of the software.<br> Err codemadness.org 70 i 45974 This put AT&amp;T in a bind. In 1956, AT&amp;T had agreed to a U.S government consent decree that prevented the company from selling products not directly related to telephones and telecommunications, in return for its legal monopoly status in running the country’s long-distance phone service. So Unix could not be sold as a product. Instead, AT&amp;T released the Unix source code under license to anyone who asked, charging only a nominal fee. The critical wrinkle here was that the consent decree prevented AT&amp;T from supporting Unix. Indeed, for many years Bell Labs researchers proudly displayed their Unix policy at conferences with a slide that read, “No advertising, no support, no bug fixes, payment in advance.”<br> Err codemadness.org 70 i 45975 With no other channels of support available to them, early Unix adopters banded together for mutual assistance, forming a loose network of user groups all over the world. They had the source code, which helped. And they didn’t view Unix as a standard software product, because nobody seemed to be looking after it. So these early Unix users themselves set about fixing bugs, writing new tools, and generally improving the system as they saw fit.<br> Err codemadness.org 70 i 45976 The Usenix user group acted as a clearinghouse for the exchange of Unix software in the United States. People could send in magnetic tapes with new software or fixes to the system and get back tapes with the software and fixes that Usenix had received from others. In Australia, the University of New South Wales and the University of Sydney produced a more robust version of Unix, the Australian Unix Share Accounting Method, which could cope with larger numbers of concurrent users and offered better performance.<br> Err codemadness.org 70 i 45977 By the mid-1970s, the environment of sharing that had sprung up around Unix resembled the open-source movement so prevalent today. Users far and wide were enthusiastically enhancing the system, and many of their improvements were being fed back to Bell Labs for incorporation in future releases. But as Unix became more popular, AT&amp;T’s lawyers began looking harder at what various licensees were doing with their systems.<br> Err codemadness.org 70 i 45978 One person who caught their eye was John Lions, a computer scientist then teaching at the University of New South Wales, in Australia. In 1977, he published what was probably the most famous computing book of the time, A Commentary on the Unix Operating System, which contained an annotated listing of the central source code for Unix.<br> Err codemadness.org 70 i 45979 Unix’s licensing conditions allowed for the exchange of source code, and initially, Lions’s book was sold to licensees. But by 1979, AT&amp;T’s lawyers had clamped down on the book’s distribution and use in academic classes. The anti­authoritarian Unix community reacted as you might expect, and samizdat copies of the book spread like wildfire. Many of us have nearly unreadable nth-­generation photocopies of the original book.<br> Err codemadness.org 70 i 45980 End runs around AT&amp;T’s lawyers indeed became the norm—even at Bell Labs. For example, between the release of the sixth edition of Unix in 1975 and the seventh edition in 1979, Thompson collected dozens of important bug fixes to the system, coming both from within and outside of Bell Labs. He wanted these to filter out to the existing Unix user base, but the company’s lawyers felt that this would constitute a form of support and balked at their release. Nevertheless, those bug fixes soon became widely distributed through unofficial channels. For instance, Lou Katz, the founding president of Usenix, received a phone call one day telling him that if he went down to a certain spot on Mountain Avenue (where Bell Labs was located) at 2 p.m., he would find something of interest. Sure enough, Katz found a magnetic tape with the bug fixes, which were rapidly in the hands of countless users.<br> Err codemadness.org 70 i 45981 By the end of the 1970s, Unix, which had started a decade earlier as a reaction against the loss of a comfortable programming environment, was growing like a weed throughout academia and the IT industry. Unix would flower in the early 1980s before reaching the height of its popularity in the early 1990s.<br> Err codemadness.org 70 i 45982 For many reasons, Unix has since given way to other commercial and noncommercial systems. But its legacy, that of an elegant, well-designed, comfortable environment for software development, lives on. In recognition of their accomplishment, Thompson and Ritchie were given the Japan Prize earlier this year, adding to a collection of honors that includes the United States’ National Medal of Technology and Innovation and the Association of Computing Machinery’s Turing Award. Many other, often very personal, tributes to Ritchie and his enormous influence on computing were widely shared after his death this past October.<br> Err codemadness.org 70 i 45983 Unix is indeed one of the most influential operating systems ever invented. Its direct descendants now number in the hundreds. On one side of the family tree are various versions of Unix proper, which began to be commercialized in the 1980s after the Bell System monopoly was broken up, freeing AT&amp;T from the stipulations of the 1956 consent decree. On the other side are various Unix-like operating systems derived from the version of Unix developed at the University of California, Berkeley, including the one Apple uses today on its computers, OS X. I say “Unix-like” because the developers of the Berkeley Software Distribution (BSD) Unix on which these systems were based worked hard to remove all the original AT&amp;T code so that their software and its descendants would be freely distributable.<br> Err codemadness.org 70 i 45984 The effectiveness of those efforts were, however, called into question when the AT&amp;T subsidiary Unix System Laboratories filed suit against Berkeley Software Design and the Regents of the University of California in 1992 over intellectual property rights to this software. The university in turn filed a counterclaim against AT&amp;T for breaches to the license it provided AT&amp;T for the use of code developed at Berkeley. The ensuing legal quagmire slowed the development of free Unix-like clones, including 386BSD, which was designed for the Intel 386 chip, the CPU then found in many IBM PCs.<br> Err codemadness.org 70 i 45985 Had this operating system been available at the time, Linus Torvalds says he probably wouldn’t have created Linux, an open-source Unix-like operating system he developed from scratch for PCs in the early 1990s. Linux has carried the Unix baton forward into the 21st century, powering a wide range of digital gadgets including wireless routers, televisions, desktop PCs, and Android smartphones. It even runs some supercomputers.<br> Err codemadness.org 70 i 45986 Although AT&amp;T quickly settled its legal disputes with Berkeley Software Design and the University of California, legal wrangling over intellectual property claims to various parts of Unix and Linux have continued over the years, often involving byzantine corporate relations. By 2004, no fewer than five major lawsuits had been filed. Just this past August, a software company called the TSG Group (formerly known as the SCO Group), lost a bid in court to claim ownership of Unix copyrights that Novell had acquired when it purchased the Unix System Laboratories from AT&amp;T in 1993.<br> Err codemadness.org 70 i 45987 As a programmer and Unix historian, I can’t help but find all this legal sparring a bit sad. From the very start, the authors and users of Unix worked as best they could to build and share, even if that meant defying authority. That outpouring of selflessness stands in sharp contrast to the greed that has driven subsequent legal battles over the ownership of Unix.<br> Err codemadness.org 70 i 45988 The world of computer hardware and software moves forward startlingly fast. For IT professionals, the rapid pace of change is typically a wonderful thing. But it makes us susceptible to the loss of our own history, including important lessons from the past. To address this issue in a small way, in 1995 I started a mailing list of old-time Unix ­aficionados. That effort morphed into the Unix Heritage Society. Our goal is not only to save the history of Unix but also to collect and curate these old systems and, where possible, bring them back to life. With help from many talented members of this society, I was able to restore much of the old Unix software to working order, including Ritchie’s first C compiler from 1972 and the first Unix system to be written in C, dating from 1973.<br> Err codemadness.org 70 i 45989 One holy grail that eluded us for a long time was the first edition of Unix in any form, electronic or otherwise. Then, in 2006, Al Kossow from the Computer History Museum, in Mountain View, Calif., unearthed a printed study of Unix dated 1972, which not only covered the internal workings of Unix but also included a complete assembly listing of the kernel, the main component of this operating system. This was an amazing find—like discovering an old Ford Model T collecting dust in a corner of a barn. But we didn’t just want to admire the chrome work from afar. We wanted to see the thing run again.<br> Err codemadness.org 70 i 45990 In 2008, Tim Newsham, an independent programmer in Hawaii, and I assembled a team of like-minded Unix enthusiasts and set out to bring this ancient system back from the dead. The work was technically arduous and often frustrating, but in the end, we had a copy of the first edition of Unix running on an emulated PDP-11/20. We sent out messages announcing our success to all those we thought would be interested. Thompson, always succinct, simply replied, “Amazing.” Indeed, his brainchild was amazing, and I’ve been happy to do what I can to make it, and the story behind it, better known.</p> Err codemadness.org 70 i 45991 </blockquote> Err codemadness.org 70 i 45992 <hr> Err codemadness.org 70 i 45993 <p><strong>Digital Ocean</strong><br> Err codemadness.org 70 i 45994 <a href="http://do.co/bsdnow">http://do.co/bsdnow</a></p> Err codemadness.org 70 i 45995 <p>###<a href="https://www.davd.eu/posts-freebsd-jails-with-a-single-public-ip-address/">FreeBSD jails with a single public IP address</a></p> Err codemadness.org 70 i 45996 <blockquote> Err codemadness.org 70 i 45997 <p>Jails in FreeBSD provide a simple yet flexible way to set up a proper server layout. In the most setups the actual server only acts as the host system for the jails while the applications themselves run within those independent containers. Traditionally every jail has it’s own IP for the user to be able to address the individual services. But if you’re still using IPv4 this might get you in trouble as the most hosters don’t offer more than one single public IP address per server.</p> Err codemadness.org 70 i 45998 </blockquote> Err codemadness.org 70 i 45999 <ul> Err codemadness.org 70 i 46000 <li>Create the internal network</li> Err codemadness.org 70 i 46001 </ul> Err codemadness.org 70 i 46002 <blockquote> Err codemadness.org 70 i 46003 <p>In this case NAT (“Network Address Translation”) is a good way to expose services in different jails using the same IP address.<br> Err codemadness.org 70 i 46004 First, let’s create an internal network (“NAT network”) at 192.168.0.0/24. You could generally use any private IPv4 address space as specified in RFC 1918. Here’s an overview: <a href="https://en.wikipedia.org/wiki/Private_network">https://en.wikipedia.org/wiki/Privatenetwork</a>. Using pf, FreeBSD’s firewall, we will map requests on different ports of the same public IP address to our individual jails as well as provide network access to the jails themselves.<br> Err codemadness.org 70 i 46005 First let’s check which network devices are available. In my case there’s em0 which provides connectivity to the internet and lo0, the local loopback device.</p> Err codemadness.org 70 i 46006 </blockquote> Err codemadness.org 70 i 46007 <pre><code class="language-em0:"> options=209b&lt;RXCSUM,TXCSUM,VLANMTU,VLANHWTAGGING,VLANHWCSUM,WOLMAGIC&gt; Err codemadness.org 70 i 46008 [...] Err codemadness.org 70 i 46009 inet 172.31.1.100 netmask 0xffffff00 broadcast 172.31.1.255 Err codemadness.org 70 i 46010 nd6 options=23&lt;PERFORMNUD,ACCEPTRTADV,AUTO_LINKLOCAL&gt; Err codemadness.org 70 i 46011 media: Ethernet autoselect (1000baseT &lt;full-duplex&gt;) Err codemadness.org 70 i 46012 status: active Err codemadness.org 70 i 46013 lo0: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST&gt; metric 0 mtu 16384 Err codemadness.org 70 i 46014 options=600003&lt;RXCSUM,TXCSUM,RXCSUMIPV6,TXCSUMIPV6&gt; Err codemadness.org 70 i 46015 inet6 ::1 prefixlen 128 Err codemadness.org 70 i 46016 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 Err codemadness.org 70 i 46017 inet 127.0.0.1 netmask 0xff000000 Err codemadness.org 70 i 46018 nd6 options=21&lt;PERFORMNUD,AUTO_LINKLOCAL&gt;``` Err codemadness.org 70 i 46019 &gt; For our internal network, we create a cloned loopback device called lo1. Therefore we need to customize the /etc/rc.conf file, adding the following two lines: Err codemadness.org 70 i 46020 cloned_interfaces=&quot;lo1&quot; Err codemadness.org 70 i 46021 ipv4_addrs_lo1=&quot;192.168.0.1-9/29&quot; Err codemadness.org 70 i 46022 &gt; This defines a /29 network, offering IP addresses for a maximum of 6 jails: Err codemadness.org 70 i 46023 ipcalc 192.168.0.1/29 Err codemadness.org 70 i 46024 Address: 192.168.0.1 11000000.10101000.00000000.00000 001 Err codemadness.org 70 i 46025 Netmask: 255.255.255.248 = 29 11111111.11111111.11111111.11111 000 Err codemadness.org 70 i 46026 Wildcard: 0.0.0.7 00000000.00000000.00000000.00000 111 Err codemadness.org 70 i 46027 =&gt; Err codemadness.org 70 i 46028 Network: 192.168.0.0/29 11000000.10101000.00000000.00000 000 Err codemadness.org 70 i 46029 HostMin: 192.168.0.1 11000000.10101000.00000000.00000 001 Err codemadness.org 70 i 46030 HostMax: 192.168.0.6 11000000.10101000.00000000.00000 110 Err codemadness.org 70 i 46031 Broadcast: 192.168.0.7 11000000.10101000.00000000.00000 111 Err codemadness.org 70 i 46032 Hosts/Net: 6 Class C, Private Internet Err codemadness.org 70 i 46033 &gt; Then we need to restart the network. Please be aware of currently active SSH sessions as they might be dropped during restart. It’s a good moment to ensure you have KVM access to that server ;-) Err codemadness.org 70 i 46034 service netif restart Err codemadness.org 70 i 46035 &gt; After reconnecting, our newly created loopback device is active: Err codemadness.org 70 i 46036 lo1: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST&gt; metric 0 mtu 16384 Err codemadness.org 70 i 46037 options=600003&lt;RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6&gt; Err codemadness.org 70 i 46038 inet 192.168.0.1 netmask 0xfffffff8 Err codemadness.org 70 i 46039 inet 192.168.0.2 netmask 0xffffffff Err codemadness.org 70 i 46040 inet 192.168.0.3 netmask 0xffffffff Err codemadness.org 70 i 46041 inet 192.168.0.4 netmask 0xffffffff Err codemadness.org 70 i 46042 inet 192.168.0.5 netmask 0xffffffff Err codemadness.org 70 i 46043 inet 192.168.0.6 netmask 0xffffffff Err codemadness.org 70 i 46044 inet 192.168.0.7 netmask 0xffffffff Err codemadness.org 70 i 46045 inet 192.168.0.8 netmask 0xffffffff Err codemadness.org 70 i 46046 inet 192.168.0.9 netmask 0xffffffff Err codemadness.org 70 i 46047 nd6 options=29&lt;PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL&gt; Err codemadness.org 70 i 46048 Setting up Err codemadness.org 70 i 46049 &gt; pf part of the FreeBSD base system, so we only have to configure and enable it. By this moment you should already have a clue of which services you want to expose. If this is not the case, just fix that file later on. In my example configuration, I have a jail running a webserver and another jail running a mailserver: Err codemadness.org 70 i 46050 Public IP address Err codemadness.org 70 i 46051 IP_PUB=&quot;1.2.3.4&quot; Err codemadness.org 70 i 46052 Packet normalization Err codemadness.org 70 i 46053 scrub in all Err codemadness.org 70 i 46054 Allow outbound connections from within the jails Err codemadness.org 70 i 46055 nat on em0 from lo1:network to any -&gt; (em0) Err codemadness.org 70 i 46056 webserver jail at 192.168.0.2 Err codemadness.org 70 i 46057 rdr on em0 proto tcp from any to $IP_PUB port 443 -&gt; 192.168.0.2 Err codemadness.org 70 i 46058 just an example in case you want to redirect to another port within your jail Err codemadness.org 70 i 46059 rdr on em0 proto tcp from any to $IP_PUB port 80 -&gt; 192.168.0.2 port 8080 Err codemadness.org 70 i 46060 mailserver jail at 192.168.0.3 Err codemadness.org 70 i 46061 rdr on em0 proto tcp from any to $IP_PUB port 25 -&gt; 192.168.0.3 Err codemadness.org 70 i 46062 rdr on em0 proto tcp from any to $IP_PUB port 587 -&gt; 192.168.0.3 Err codemadness.org 70 i 46063 rdr on em0 proto tcp from any to $IP_PUB port 143 -&gt; 192.168.0.3 Err codemadness.org 70 i 46064 rdr on em0 proto tcp from any to $IP_PUB port 993 -&gt; 192.168.0.3 Err codemadness.org 70 i 46065 &gt; Now just enable pf like this (which is the equivalent of adding pf_enable=YES to /etc/rc.conf): Err codemadness.org 70 i 46066 sysrc pf_enable=&quot;YES&quot; Err codemadness.org 70 i 46067 &gt; and start it: Err codemadness.org 70 i 46068 service pf start Err codemadness.org 70 i 46069 Install ezjail Err codemadness.org 70 i 46070 &gt; Ezjail is a collection of scripts by erdgeist that allow you to easily manage your jails. Err codemadness.org 70 i 46071 pkg install ezjail Err codemadness.org 70 i 46072 &gt; As an alternative, you could install ezjail from the ports tree. Now we need to set up the basejail which contains the shared base system for our jails. In fact, every jail that you create get’s will use that basejail to symlink directories related to the base system like /bin and /sbin. This can be accomplished by running Err codemadness.org 70 i 46073 ezjail-admin install Err codemadness.org 70 i 46074 &gt; In the next step, we’ll copy the /etc/resolv.conf file from our host to the newjail, which is the template for newly created jails (the parts that are not provided by basejail), to ensure that domain resolution will work properly within our jails later on: Err codemadness.org 70 i 46075 cp /etc/resolv.conf /usr/jails/newjail/etc/ Err codemadness.org 70 i 46076 &gt; Last but not least, we enable ezjail and start it: Err codemadness.org 70 i 46077 sysrc ezjail_enable=&quot;YES&quot; Err codemadness.org 70 i 46078 service ezjail start Err codemadness.org 70 i 46079 Create a jail Err codemadness.org 70 i 46080 &gt; Creating a jail is as easy as it could probably be: Err codemadness.org 70 i 46081 ezjail-admin create webserver 192.168.0.2 Err codemadness.org 70 i 46082 ezjail-admin start webserver Err codemadness.org 70 i 46083 &gt; Now you can access your jail using: Err codemadness.org 70 i 46084 ezjail-admin console webserver Err codemadness.org 70 i 46085 &gt; Each jail contains a vanilla FreeBSD installation. Err codemadness.org 70 i 46086 Deploy services Err codemadness.org 70 i 46087 &gt; Now you can spin up as many jails as you want to set up your services like web, mail or file shares. You should take care not to enable sshd within your jails, because that would cause problems with the service’s IP bindings. But this is not a problem, just SSH to the host and enter your jail using ezjail-admin console. Err codemadness.org 70 i 46088 EuroBSDcon 2018 Talks &amp; Schedule (https://2018.eurobsdcon.org/talks-schedule/) Err codemadness.org 70 i 46089 News Roundup Err codemadness.org 70 i 46090 OpenBSD on an iBook G4 (https://bobstechsite.com/openbsd-on-an-ibook-g4/) Err codemadness.org 70 i 46091 &gt; I've mentioned on social media and on the BTS podcast a few times that I wanted to try installing OpenBSD onto an old &quot;snow white&quot; iBook G4 I acquired last summer to see if I could make it a useful machine again in the year 2018. This particular eBay purchase came with a 14&quot; 1024x768 TFT screen, 1.07GHz PowerPC G4 processor, 1.5GB RAM, 100GB of HDD space and an ATI Radeon 9200 graphics card with 32 MB of SDRAM. The optical drive, ethernet port, battery &amp; USB slots are also fully-functional. The only thing that doesn't work is the CMOS battery, but that's not unexpected for a device that was originally released in 2004. Err codemadness.org 70 i 46092 Initial experiments Err codemadness.org 70 i 46093 &gt; This iBook originally arrived at my door running Apple Mac OSX Leopard and came with the original install disk, the iLife &amp; iWork suites for 2008, various instruction manuals, a working power cable and a spare keyboard. As you'll see in the pictures I took for this post the characters on the buttons have started to wear away from 14 years of intensive use, but the replacement needs a very good clean before I decide to swap it in! Err codemadness.org 70 i 46094 &gt; After spending some time exploring the last version of OSX to support the IBM PowerPC processor architecture I tried to see if the hardware was capable of modern computing with Linux. Something I knew ahead of trying this was that the WiFi adapter was unlikely to work because it's a highly proprietary component designed by Apple to work specifically with OSX and nothing else, but I figured I could probably use a wireless USB dongle later to get around this limitation. Err codemadness.org 70 i 46095 &gt; Unfortunately I found that no recent versions of mainstream Linux distributions would boot off this machine. Debian has dropped support 32-bit PowerPC architectures and the PowerPC variants of Ubuntu 16.04 LTS (vanilla, MATE and Lubuntu) wouldn't even boot the installer! The only distribution I could reliably install on the hardware was Lubuntu 14.04 LTS. Err codemadness.org 70 i 46096 &gt; Unfortunately I'm not the biggest fan of the LXDE desktop for regular work and a lot of ported applications were old and broken because it clearly wasn't being maintained by people that use the hardware anymore. Ubuntu 14.04 is also approaching the end of its support life in early 2019, so this limited solution also has a limited shelf-life. Err codemadness.org 70 i 46097 Over to BSD Err codemadness.org 70 i 46098 &gt; I discussed this problem with a few people on Mastodon and it was pointed out to me that OSX is built on the Darwin kernel, which happens to be a variant of BSD. NetBSD and OpenBSD fans in particular convinced me that their communities still saw the value of supporting these old pieces of kit and that I should give BSD a try. Err codemadness.org 70 i 46099 &gt; So yesterday evening I finally downloaded the &quot;macppc&quot; version of OpenBSD 6.3 with no idea what to expect. I hoped for the best but feared the worst because my last experience with this operating system was trying out PC-BSD in 2008 and discovering with disappointment that it didn't support any of the hardware on my Toshiba laptop. Err codemadness.org 70 i 46100 &gt; When I initially booted OpenBSD I was a little surprised to find the login screen provided no visual feedback when I typed in my password, but I can understand the security reasons for doing that. The initial desktop environment that was loaded was very basic. All I could see was a console output window, a terminal and a desktop switcher in the X11 environment the system had loaded. Err codemadness.org 70 i 46101 &gt; After a little Googling I found this blog post had some fantastic instructions to follow for the post-installation steps: https://sohcahtoa.org.uk/openbsd.html. I did have to adjust them slightly though because my iBook only has 1.5GB RAM and not every package that page suggests is available on macppc by default. You can see a full list here: https://ftp.openbsd.org/pub/OpenBSD/6.3/packages/powerpc/. Err codemadness.org 70 i 46102 Final thoughts Err codemadness.org 70 i 46103 &gt; I was really impressed with the performance of OpenBSD's &quot;macppc&quot; port. It boots much faster than OSX Leopard on the same hardware and unlike Lubuntu 14.04 it doesn't randomly hang for no reason or crash if you launch something demanding like the GIMP. Err codemadness.org 70 i 46104 &gt; I was pleased to see that the command line tools I'm used to using on Linux have been ported across too. OpenBSD also had no issues with me performing basic desktop tasks on XFCE like browsing the web with NetSurf, playing audio files with VLC and editing images with the GIMP. Limited gaming is also theoretically possible if you're willing to build them (or an emulator) from source with SDL support. Err codemadness.org 70 i 46105 &gt; If I wanted to use this system for heavy duty work then I'd probably be inclined to run key applications like LibreOffice on a Raspberry Pi and then connect my iBook G4 to those using VNC or an SSH connection with X11 forwarding. BSD is UNIX after all, so using my ancient laptop as a dumb terminal should work reasonably well. Err codemadness.org 70 i 46106 &gt; In summary I was impressed with OpenBSD and its ability to breathe new life into this old Apple Mac. I'm genuinely excited about the idea of trying BSD with other devices on my network such as an old Asus Eee PC 900 netbook and at least one of the many Raspberry Pi devices I use. Whether I go the whole hog and replace Fedora on my main production laptop though remains to be seen! Err codemadness.org 70 i 46107 The template user with PAM and login(1) (http://oshogbo.vexillium.org/blog/48) Err codemadness.org 70 i 46108 &gt; When you build a new service (or an appliance) you need your users to be able to configure it from the command line. To accomplish this you can create system accounts for all registered users in your service and assign them a special login shell which provides such limited functionality. This can be painful if you have a dynamic user database. Err codemadness.org 70 i 46109 &gt; Another challenge is authentication via remote services such as RADIUS. How can we implement services when we authenticate through it and log into it as a different user? Furthermore, imagine a scenario when RADIUS decides on which account we have the right to access by sending an additional attribute. Err codemadness.org 70 i 46110 &gt; To address these two problems we can use a &quot;template&quot; user. Any of the PAM modules can set the value of the PAM_USER item. The value of this item will be used to determine which account we want to login. Only the &quot;template&quot; user must exist on the local password database, but the credential check can be omitted by the module. Err codemadness.org 70 i 46111 &gt; This functionality exists in the login(1) used by FreeBSD, HardenedBSD, DragonFlyBSD and illumos. The functionality doesn't exist in the login(1) used in NetBSD, and OpenBSD doesn't support PAM modules at all. In addition what is also noteworthy is that such functionality was also in the OpenSSH but they decided to remove it and call it a security vulnerability (CVE 2015-6563). I can see how some people may have seen it that way, that’s why I recommend reading this article from an OpenPAM author and a FreeBSD security officer at the time. Err codemadness.org 70 i 46112 &gt; Knowing the background let's take a look at an example. Err codemadness.org 70 i 46113 ```PAMEXTERN int Err codemadness.org 70 i 46114 pamsmauthenticate(pamhandlet *pamh, int flags _unused, Err codemadness.org 70 i 46115 int argc _unused, const char *argv[] _unused) Err codemadness.org 70 i 46116 { Err codemadness.org 70 i 46117 const char *user, *password; Err codemadness.org 70 i 46118 int err; Err codemadness.org 70 i 46119 err = pam_get_user(pamh, &amp;user, NULL); Err codemadness.org 70 i 46120 if (err != PAM_SUCCESS) Err codemadness.org 70 i 46121 return (err); Err codemadness.org 70 i 46122 Err codemadness.org 70 i 46123 err = pam_get_authtok(pamh, PAM_AUTHTOK, &amp;password, NULL); Err codemadness.org 70 i 46124 if (err == PAM_CONV_ERR) Err codemadness.org 70 i 46125 return (err); Err codemadness.org 70 i 46126 if (err != PAM_SUCCESS) Err codemadness.org 70 i 46127 return (PAM_AUTH_ERR); Err codemadness.org 70 i 46128 Err codemadness.org 70 i 46129 err = authenticate(user, password); Err codemadness.org 70 i 46130 if (err != PAM_SUCCESS) { Err codemadness.org 70 i 46131 return (err); Err codemadness.org 70 i 46132 } Err codemadness.org 70 i 46133 Err codemadness.org 70 i 46134 return (pam_set_item(pamh, PAM_USER, &quot;template&quot;)); Err codemadness.org 70 i 46135 } Err codemadness.org 70 i 46136 </code></pre> Err codemadness.org 70 i 46137 <blockquote> Err codemadness.org 70 i 46138 <p>In the listing above we have an example of a PAM module. The pamgetuser(3) provides a username. The pamgetauthtok(3) shows us a secret given by the user. Both functions allow us to give an optional prompt which should be shown to the user. The authenticate function is our crafted function which authenticates the user. In our first scenario we wanted to keep all users in an external database. If authentication is successful we then switch to a template user which has a shell set up for a script allowing us to configure the machine. In our second scenario the authenticate function authenticates the user in RADIUS.</p> Err codemadness.org 70 i 46139 </blockquote> Err codemadness.org 70 i 46140 <blockquote> Err codemadness.org 70 i 46141 <p>Another step is to add our PAM module to the /etc/pam.d/system or to the /etc/pam.d/login configuration:</p> Err codemadness.org 70 i 46142 </blockquote> Err codemadness.org 70 i 46143 <p><code>auth sufficient pamtemplate.so nowarn allowlocal</code></p> Err codemadness.org 70 i 46144 <blockquote> Err codemadness.org 70 i 46145 <p>Unfortunately the description of all these options goes beyond this article - if you would like to know more about it you can find them in the PAM manual. The last thing we need to do is to add our template user to the system which you can do by the adduser(8) command or just simply modifying the /etc/master.passwd file and use pwdmkdb(8) program:</p> Err codemadness.org 70 i 46146 </blockquote> Err codemadness.org 70 i 46147 <p><code>$ tail -n /etc/master.passwd</code><br> Err codemadness.org 70 i 46148 <code>template::1000:1000::0:0:User &amp;:/:/usr/local/bin/templatesh</code><br> Err codemadness.org 70 i 46149 <code>$ sudo pwdmkdb /etc/master.passwd</code></p> Err codemadness.org 70 i 46150 <blockquote> Err codemadness.org 70 i 46151 <p>As you can see,the template user can be locked and we still can use it in our PAM module (the * character after login).<br> Err codemadness.org 70 i 46152 I would like to thank Dag-Erling Smørgrav for pointing this functionality out to me when I was looking for it some time ago.</p> Err codemadness.org 70 i 46153 </blockquote> Err codemadness.org 70 i 46154 <hr> Err codemadness.org 70 i 46155 <p><strong>iXsystems</strong><br> Err codemadness.org 70 i 46156 <a href="https://www.ixsystems.com/blog/vmworld2018-countdown/">iXsystems @ VMWorld</a></p> Err codemadness.org 70 i 46157 <p>###<a href="https://aravindh.net/posts/zfsfileserver/">ZFS file server</a></p> Err codemadness.org 70 i 46158 <ul> Err codemadness.org 70 i 46159 <li>What is the need?</li> Err codemadness.org 70 i 46160 </ul> Err codemadness.org 70 i 46161 <blockquote> Err codemadness.org 70 i 46162 <p>At work, we run a compute cluster that uses an Isilon cluster as primary NAS storage. Excluding snapshots, we have about 200TB of research data, some of them in compressed formats, and others not. We needed an offsite backup file server that would constantly mirror our primary NAS and serve as a quick recovery source in case of a data loss in the the primary NAS. This offsite file server would be passive - will never face the wrath of the primary cluster workload.<br> Err codemadness.org 70 i 46163 In addition to the role of a passive backup server, this solution would take on some passive report generation workloads as an ideal way of offloading some work from the primary NAS. The passive work is read-only.<br> Err codemadness.org 70 i 46164 The backup server would keep snapshots in a best effort basis dating back to 10 years. However, this data on this backup server would be archived to tapes periodically.</p> Err codemadness.org 70 i 46165 </blockquote> Err codemadness.org 70 i 46166 <ul> Err codemadness.org 70 i 46167 <li> Err codemadness.org 70 i 46168 <p>A simple guidance of priorities:</p> Err codemadness.org 70 i 46169 </li> Err codemadness.org 70 i 46170 <li> Err codemadness.org 70 i 46171 <p>Data integrity &gt; Cost of solution &gt; Storage capacity &gt; Performance.</p> Err codemadness.org 70 i 46172 </li> Err codemadness.org 70 i 46173 <li> Err codemadness.org 70 i 46174 <p>Why not enterprise NAS? NetApp FAS or EMC Isilon or the like?</p> Err codemadness.org 70 i 46175 </li> Err codemadness.org 70 i 46176 </ul> Err codemadness.org 70 i 46177 <blockquote> Err codemadness.org 70 i 46178 <p>We decided that enterprise grade NAS like NetAPP FAS or EMC Isilon are prohibitively expensive and an overkill for our needs.<br> Err codemadness.org 70 i 46179 An open source &amp; cheaper alternative to enterprise grade filesystem with the level of durability we expect turned up to be ZFS. We’re already spoilt from using snapshots by a clever Copy-on-Write Filesystem(WAFL) by NetApp. ZFS providing snapshots in almost identical way was a big influence in the choice. This is also why we did not consider just a CentOS box with the default XFS filesystem.</p> Err codemadness.org 70 i 46180 </blockquote> Err codemadness.org 70 i 46181 <ul> Err codemadness.org 70 i 46182 <li>FreeBSD vs Debian for ZFS</li> Err codemadness.org 70 i 46183 </ul> Err codemadness.org 70 i 46184 <blockquote> Err codemadness.org 70 i 46185 <p>This is a backup server, a long-term solution. Stability and reliability are key requirements. ZFS on Linux may be popular at this time, but there is a lot of churn around its development, which means there is a higher probability of bugs like this to occur. We’re not looking for cutting edge features here. Perhaps, Linux would be considered in the future.</p> Err codemadness.org 70 i 46186 </blockquote> Err codemadness.org 70 i 46187 <ul> Err codemadness.org 70 i 46188 <li>FreeBSD + ZFS</li> Err codemadness.org 70 i 46189 </ul> Err codemadness.org 70 i 46190 <blockquote> Err codemadness.org 70 i 46191 <p>We already utilize FreeBSD and OpenBSD for infrastructure services and we have nothing but praises for the stability that the BSDs have provided us. We’d gladly use FreeBSD and OpenBSD wherever possible.</p> Err codemadness.org 70 i 46192 </blockquote> Err codemadness.org 70 i 46193 <ul> Err codemadness.org 70 i 46194 <li>Okay, ZFS, but why not FreeNAS?</li> Err codemadness.org 70 i 46195 </ul> Err codemadness.org 70 i 46196 <blockquote> Err codemadness.org 70 i 46197 <p>IMHO, FreeNAS provides a integrated GUI management tool over FreeBSD for a novice user to setup and configure FreeBSD, ZFS, Jails and many other features. But, this user facing abstraction adds an extra layer of complexity to maintain that is just not worth it in simpler use cases like ours. For someone that appreciates the commandline interface, and understands FreeBSD enough to administer it, plain FreeBSD + ZFS is simpler and more robust than FreeNAS.</p> Err codemadness.org 70 i 46198 </blockquote> Err codemadness.org 70 i 46199 <ul> Err codemadness.org 70 i 46200 <li>Specifications</li> Err codemadness.org 70 i 46201 <li>Lenovo SR630 Rackserver</li> Err codemadness.org 70 i 46202 <li>2 X Intel Xeon silver 4110 CPUs</li> Err codemadness.org 70 i 46203 <li>768 GB of DDR4 ECC 2666 MHz RAM</li> Err codemadness.org 70 i 46204 <li>4 port SAS card configured in passthrough mode(JBOD)</li> Err codemadness.org 70 i 46205 <li>Intel network card with 10 Gb SFP+ ports</li> Err codemadness.org 70 i 46206 <li>128GB M.2 SSD for use as boot drive</li> Err codemadness.org 70 i 46207 <li>2 X HGST 4U60 JBOD</li> Err codemadness.org 70 i 46208 <li>120(2 X 60) X 10TB SAS disks</li> Err codemadness.org 70 i 46209 </ul> Err codemadness.org 70 i 46210 <hr> Err codemadness.org 70 i 46211 <p>###<a href="https://nanxiao.me/en/reflection-on-one-year-usage-of-openbsd/">Reflection on one-year usage of OpenBSD</a></p> Err codemadness.org 70 i 46212 <blockquote> Err codemadness.org 70 i 46213 <p>I have used OpenBSD for more than one year, and it is time to give a summary of the experience:</p> Err codemadness.org 70 i 46214 </blockquote> Err codemadness.org 70 i 46215 <ul> Err codemadness.org 70 i 46216 <li>(1) What do I get from OpenBSD?</li> Err codemadness.org 70 i 46217 </ul> Err codemadness.org 70 i 46218 <blockquote> Err codemadness.org 70 i 46219 <p>a) A good UNIX tutorial. When I am curious about some UNIXcommands’ implementation, I will refer to OpenBSD source code, and I actually gain something every time. E.g., refresh socket programming skills from nc; know how to process file efficiently from cat.</p> Err codemadness.org 70 i 46220 </blockquote> Err codemadness.org 70 i 46221 <blockquote> Err codemadness.org 70 i 46222 <p>b) A better test bed. Although my work focus on developing programs on Linux, I will try to compile and run applications on OpenBSD if it is possible. One reason is OpenBSD usually gives more helpful warnings. E.g., hint like this:</p> Err codemadness.org 70 i 46223 </blockquote> Err codemadness.org 70 i 46224 <p><code>......</code><br> Err codemadness.org 70 i 46225 <code>warning: sprintf() is often misused, please use snprintf()</code><br> Err codemadness.org 70 i 46226 <code>......</code></p> Err codemadness.org 70 i 46227 <blockquote> Err codemadness.org 70 i 46228 <p>Or you can refer this post which I wrote before. The other is sometimes program run well on Linux may crash on OpenBSD, and OpenBSD can help you find hidden bugs.</p> Err codemadness.org 70 i 46229 </blockquote> Err codemadness.org 70 i 46230 <blockquote> Err codemadness.org 70 i 46231 <p>c) Some handy tools. E.g. I find tcpbench is useful, so I ported it into Linux for my own usage (project is here).</p> Err codemadness.org 70 i 46232 </blockquote> Err codemadness.org 70 i 46233 <ul> Err codemadness.org 70 i 46234 <li>(2) What I give back to OpenBSD?</li> Err codemadness.org 70 i 46235 </ul> Err codemadness.org 70 i 46236 <blockquote> Err codemadness.org 70 i 46237 <p>a) Patches. Although most of them are trivial modifications, they are still my contributions.</p> Err codemadness.org 70 i 46238 </blockquote> Err codemadness.org 70 i 46239 <blockquote> Err codemadness.org 70 i 46240 <p>b) Write blog posts to share experience about using OpenBSD.</p> Err codemadness.org 70 i 46241 </blockquote> Err codemadness.org 70 i 46242 <blockquote> Err codemadness.org 70 i 46243 <p>c) Develop programs for OpenBSD/BSD: lscpu and free.</p> Err codemadness.org 70 i 46244 </blockquote> Err codemadness.org 70 i 46245 <blockquote> Err codemadness.org 70 i 46246 <p>d) Porting programs into OpenBSD: E.g., I find google/benchmark is a nifty tool, but lacks OpenBSD support, I submitted PR and it is accepted. So you can use google/benchmark on OpenBSD now.</p> Err codemadness.org 70 i 46247 </blockquote> Err codemadness.org 70 i 46248 <ul> Err codemadness.org 70 i 46249 <li>Generally speaking, the time invested on OpenBSD is rewarding. If you are still hesitating, why not give a shot?</li> Err codemadness.org 70 i 46250 </ul> Err codemadness.org 70 i 46251 <hr> Err codemadness.org 70 i 46252 <p>##Beastie Bits</p> Err codemadness.org 70 i 46253 <ul> Err codemadness.org 70 i 46254 <li><a href="https://www.meetup.com/BSD-Users-Stockholm/events/253447019/">BSD Users Stockholm Meetup</a></li> Err codemadness.org 70 i 46255 <li><a href="https://www.youtube.com/playlist?list=PLeF8ZihVdpFfkICtA2HFsZecdC28_mrQh">BSDCan 2018 Playlist</a></li> Err codemadness.org 70 i 46256 <li><a href="https://forum.opnsense.org/index.php?PHPSESSID=hvuv2kg4js2nlfpm73ut5ro8p2&amp;topic=9280.0">OPNsense 18.7 released</a></li> Err codemadness.org 70 i 46257 <li><a href="https://youtu.be/WLgdJwd5zcQ">Testing TrueOS (FreeBSD derivative) on real hardware ThinkPad T410</a></li> Err codemadness.org 70 i 46258 <li><a href="https://lists.freebsd.org/pipermail/freebsd-jobs/2018-July/000946.html">Kernel Hacker Wanted!</a></li> Err codemadness.org 70 i 46259 <li><a href="https://svnweb.freebsd.org/changeset/base/337411">Replace a pair of 8-bit writes to VGA memory with a single 16-bit write</a></li> Err codemadness.org 70 i 46260 <li><a href="https://svnweb.freebsd.org/changeset/base/337229">Reduce taskq and context-switch cost of zio pipe</a></li> Err codemadness.org 70 i 46261 <li><a href="https://reviews.freebsd.org/D16606">Proposed FreeBSD Memory Management change, expected to improve ZFS ARC interactions</a></li> Err codemadness.org 70 i 46262 </ul> Err codemadness.org 70 i 46263 <hr> Err codemadness.org 70 i 46264 <p><strong>Tarsnap</strong></p> Err codemadness.org 70 i 46265 <p>##Feedback/Questions</p> Err codemadness.org 70 i 46266 <ul> Err codemadness.org 70 i 46267 <li>Anian_Z - <a href="http://dpaste.com/093FC8R#wrap">Question</a></li> Err codemadness.org 70 i 46268 <li>Robert - <a href="http://dpaste.com/0GG7Q2A#wrap">Pool question</a></li> Err codemadness.org 70 i 46269 <li>Lain - <a href="http://dpaste.com/2BWPX9C">Congratulations</a></li> Err codemadness.org 70 i 46270 <li>Thomas - <a href="http://dpaste.com/25NGAP3#wrap">L2arc</a></li> Err codemadness.org 70 i 46271 </ul> Err codemadness.org 70 i 46272 <hr> Err codemadness.org 70 i 46273 <ul> Err codemadness.org 70 i 46274 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 46275 </ul> Err codemadness.org 70 i 46276 <hr> Err codemadness.org 70 i 46277 Err codemadness.org 70 i 46278 freebsd,openbsd,netbsd,dragonflybsd,trueos,trident,hardenedbsd,tutorial,howto,guide,bsd,interview,eurobsdcon,pam,zfs Err codemadness.org 70 i 46279 Err codemadness.org 70 i 46280 The strange birth and long life of Unix, FreeBSD jail with a single public IP, EuroBSDcon 2018 talks and schedule, OpenBSD on G4 iBook, PAM template user, ZFS file server, and reflections on one year of OpenBSD use.

Err codemadness.org 70 i 46281 Err codemadness.org 70 i 46282

Picking the contest winner

Err codemadness.org 70 i 46283 Err codemadness.org 70 i 46284
    Err codemadness.org 70 i 46285
  1. Vincent
  2. Err codemadness.org 70 i 46286
  3. Bostjan
  4. Err codemadness.org 70 i 46287
  5. Andrew
  6. Err codemadness.org 70 i 46288
  7. Klaus-Hendrik
  8. Err codemadness.org 70 i 46289
  9. Will
  10. Err codemadness.org 70 i 46290
  11. Toby
  12. Err codemadness.org 70 i 46291
  13. Johnny
  14. Err codemadness.org 70 i 46292
  15. David
  16. Err codemadness.org 70 i 46293
  17. manfrom
  18. Err codemadness.org 70 i 46294
  19. Niclas
  20. Err codemadness.org 70 i 46295
  21. Gary
  22. Err codemadness.org 70 i 46296
  23. Eddy
  24. Err codemadness.org 70 i 46297
  25. Bruce
  26. Err codemadness.org 70 i 46298
  27. Lizz
  28. Err codemadness.org 70 i 46299
  29. Jim
  30. Err codemadness.org 70 i 46300
Err codemadness.org 70 i 46301 Err codemadness.org 70 i 46302

Random number generator

Err codemadness.org 70 i 46303 Err codemadness.org 70 i 46304

##Headlines
Err codemadness.org 70 i 46305 ###The Strange Birth and Long Life of Unix

Err codemadness.org 70 i 46306 Err codemadness.org 70 i 46307
Err codemadness.org 70 i 46308

They say that when one door closes on you, another opens. People generally offer this bit of wisdom just to lend some solace after a misfortune. But sometimes it’s actually true. It certainly was for Ken Thompson and the late Dennis Ritchie, two of the greats of 20th-century information technology, when they created the Unix operating system, now considered one of the most inspiring and influential pieces of software ever written.
Err codemadness.org 70 i 46309 A door had slammed shut for Thompson and Ritchie in March of 1969, when their employer, the American Telephone & Telegraph Co., withdrew from a collaborative project with the Massachusetts Institute of Technology and General Electric to create an interactive time-sharing system called Multics, which stood for “Multiplexed Information and Computing Service.” Time-sharing, a technique that lets multiple people use a single computer simultaneously, had been invented only a decade earlier. Multics was to combine time-sharing with other technological advances of the era, allowing users to phone a computer from remote terminals and then read e-mail, edit documents, run calculations, and so forth. It was to be a great leap forward from the way computers were mostly being used, with people tediously preparing and submitting batch jobs on punch cards to be run one by one.
Err codemadness.org 70 i 46310 Over five years, AT&T invested millions in the Multics project, purchasing a GE-645 mainframe computer and dedicating to the effort many of the top researchers at the company’s renowned Bell Telephone Laboratories—­including Thompson and Ritchie, Joseph F. Ossanna, Stuart Feldman, M. Douglas McIlroy, and the late Robert Morris. But the new system was too ambitious, and it fell troublingly behind schedule. In the end, AT&T’s corporate leaders decided to pull the plug.
Err codemadness.org 70 i 46311 After AT&T’s departure from the Multics project, managers at Bell Labs, in Murray Hill, N.J., became reluctant to allow any further work on computer operating systems, leaving some researchers there very frustrated. Although Multics hadn’t met many of its objectives, it had, as Ritchie later recalled, provided them with a “convenient interactive computing service, a good environment in which to do programming, [and] a system around which a fellowship could form.” Suddenly, it was gone.
Err codemadness.org 70 i 46312 With heavy hearts, the researchers returned to using their old batch system. At such an inauspicious moment, with management dead set against the idea, it surely would have seemed foolhardy to continue designing computer operating systems. But that’s exactly what Thompson, Ritchie, and many of their Bell Labs colleagues did. Now, some 40 years later, we should be thankful that these programmers ignored their bosses and continued their labor of love, which gave the world Unix, one of the greatest computer operating systems of all time.
Err codemadness.org 70 i 46313 The rogue project began in earnest when Thompson, Ritchie, and a third Bell Labs colleague, Rudd Canaday, began to sketch out on paper the design for a file system. Thompson then wrote the basics of a new operating system for the lab’s GE-645 mainframe. But with the Multics project ended, so too was the need for the GE-645. Thompson realized that any further programming he did on it was likely to go nowhere, so he dropped the effort.
Err codemadness.org 70 i 46314 Thompson had passed some of his time after the demise of Multics writing a computer game called Space Travel, which simulated all the major bodies in the solar system along with a spaceship that could fly around them. Written for the GE-645, Space Travel was clunky to play—and expensive: roughly US $75 a game for the CPU time. Hunting around, Thompson came across a dusty PDP-7, a minicomputer built by Digital Equipment Corp. that some of his Bell Labs colleagues had purchased earlier for a circuit-analysis project. Thompson rewrote Space Travel to run on it.
Err codemadness.org 70 i 46315 And with that little programming exercise, a second door cracked ajar. It was to swing wide open during the summer of 1969 when Thompson’s wife, Bonnie, spent a month visiting his parents to show off their newborn son. Thompson took advantage of his temporary bachelor existence to write a good chunk of what would become the Unix operating system for the discarded PDP‑7. The name Unix stems from a joke one of Thompson’s colleagues made: Because the new operating system supported only one user (Thompson), he saw it as an emasculated version of Multics and dubbed it “Un-multiplexed Information and Computing Service,” or Unics. The name later morphed into Unix.
Err codemadness.org 70 i 46316 Initially, Thompson used the GE-645 to compose and compile the software, which he then downloaded to the PDP‑7. But he soon weaned himself from the mainframe, and by the end of 1969 he was able to write operating-system code on the PDP-7 itself. That was a step in the right direction. But Thompson and the others helping him knew that the PDP‑7, which was already obsolete, would not be able to sustain their skunkworks for long. They also knew that the lab’s management wasn’t about to allow any more research on operating systems.
Err codemadness.org 70 i 46317 So Thompson and Ritchie got crea­tive. They formulated a proposal to their bosses to buy one of DEC’s newer minicomputers, a PDP-11, but couched the request in especially palatable terms. They said they were aiming to create tools for editing and formatting text, what you might call a word-processing system today. The fact that they would also have to write an operating system for the new machine to support the editor and text formatter was almost a footnote.
Err codemadness.org 70 i 46318 Management took the bait, and an order for a PDP-11 was placed in May 1970. The machine itself arrived soon after, although the disk drives for it took more than six months to appear. During the interim, Thompson, Ritchie, and others continued to develop Unix on the PDP-7. After the PDP-11’s disks were installed, the researchers moved their increasingly complex operating system over to the new machine. Next they brought over the roff text formatter written by Ossanna and derived from the runoff program, which had been used in an earlier time-sharing system.
Err codemadness.org 70 i 46319 Unix was put to its first real-world test within Bell Labs when three typists from AT&T’s patents department began using it to write, edit, and format patent applications. It was a hit. The patent department adopted the system wholeheartedly, which gave the researchers enough credibility to convince management to purchase another machine—a newer and more powerful PDP-11 model—allowing their stealth work on Unix to continue.
Err codemadness.org 70 i 46320 During its earliest days, Unix evolved constantly, so the idea of issuing named versions or releases seemed inappropriate. But the researchers did issue new editions of the programmer’s manual periodically, and the early Unix systems were named after each such edition. The first edition of the manual was completed in November 1971.
Err codemadness.org 70 i 46321 So what did the first edition of Unix offer that made it so great? For one thing, the system provided a hierarchical file system, which allowed something we all now take for granted: Files could be placed in directories—or equivalently, folders—that in turn could be put within other directories. Each file could contain no more than 64 kilobytes, and its name could be no more than six characters long. These restrictions seem awkwardly limiting now, but at the time they appeared perfectly adequate.
Err codemadness.org 70 i 46322 Although Unix was ostensibly created for word processing, the only editor available in 1971 was the line-oriented ed. Today, ed is still the only editor guaranteed to be present on all Unix systems. Apart from the text-processing and general system applications, the first edition of Unix included games such as blackjack, chess, and tic-tac-toe. For the system administrator, there were tools to dump and restore disk images to magnetic tape, to read and write paper tapes, and to create, check, mount, and unmount removable disk packs.
Err codemadness.org 70 i 46323 Most important, the system offered an interactive environment that by this time allowed time-sharing, so several people could use a single machine at once. Various programming languages were available to them, including BASIC, Fortran, the scripting of Unix commands, assembly language, and B. The last of these, a descendant of a BCPL (Basic Combined Programming Language), ultimately evolved into the immensely popular C language, which Ritchie created while also working on Unix.
Err codemadness.org 70 i 46324 The first edition of Unix let programmers call 34 different low-level routines built into the operating system. It’s a testament to the system’s enduring nature that nearly all of these system calls are still available—and still heavily used—on modern Unix and Linux systems four decades on. For its time, first-­edition Unix provided a remarkably powerful environment for software development. Yet it contained just 4200 lines of code at its heart and occupied a measly 16 KB of main memory when it ran.
Err codemadness.org 70 i 46325 Unix’s great influence can be traced in part to its elegant design, simplicity, portability, and serendipitous timing. But perhaps even more important was the devoted user community that soon grew up around it. And that came about only by an accident of its unique history.
Err codemadness.org 70 i 46326 The story goes like this: For years Unix remained nothing more than a Bell Labs research project, but by 1973 its authors felt the system was mature enough for them to present a paper on its design and implementation at a symposium of the Association for Computing Machinery. That paper was published in 1974 in the Communications of the ACM. Its appearance brought a flurry of requests for copies of the software.
Err codemadness.org 70 i 46327 This put AT&T in a bind. In 1956, AT&T had agreed to a U.S government consent decree that prevented the company from selling products not directly related to telephones and telecommunications, in return for its legal monopoly status in running the country’s long-distance phone service. So Unix could not be sold as a product. Instead, AT&T released the Unix source code under license to anyone who asked, charging only a nominal fee. The critical wrinkle here was that the consent decree prevented AT&T from supporting Unix. Indeed, for many years Bell Labs researchers proudly displayed their Unix policy at conferences with a slide that read, “No advertising, no support, no bug fixes, payment in advance.”
Err codemadness.org 70 i 46328 With no other channels of support available to them, early Unix adopters banded together for mutual assistance, forming a loose network of user groups all over the world. They had the source code, which helped. And they didn’t view Unix as a standard software product, because nobody seemed to be looking after it. So these early Unix users themselves set about fixing bugs, writing new tools, and generally improving the system as they saw fit.
Err codemadness.org 70 i 46329 The Usenix user group acted as a clearinghouse for the exchange of Unix software in the United States. People could send in magnetic tapes with new software or fixes to the system and get back tapes with the software and fixes that Usenix had received from others. In Australia, the University of New South Wales and the University of Sydney produced a more robust version of Unix, the Australian Unix Share Accounting Method, which could cope with larger numbers of concurrent users and offered better performance.
Err codemadness.org 70 i 46330 By the mid-1970s, the environment of sharing that had sprung up around Unix resembled the open-source movement so prevalent today. Users far and wide were enthusiastically enhancing the system, and many of their improvements were being fed back to Bell Labs for incorporation in future releases. But as Unix became more popular, AT&T’s lawyers began looking harder at what various licensees were doing with their systems.
Err codemadness.org 70 i 46331 One person who caught their eye was John Lions, a computer scientist then teaching at the University of New South Wales, in Australia. In 1977, he published what was probably the most famous computing book of the time, A Commentary on the Unix Operating System, which contained an annotated listing of the central source code for Unix.
Err codemadness.org 70 i 46332 Unix’s licensing conditions allowed for the exchange of source code, and initially, Lions’s book was sold to licensees. But by 1979, AT&T’s lawyers had clamped down on the book’s distribution and use in academic classes. The anti­authoritarian Unix community reacted as you might expect, and samizdat copies of the book spread like wildfire. Many of us have nearly unreadable nth-­generation photocopies of the original book.
Err codemadness.org 70 i 46333 End runs around AT&T’s lawyers indeed became the norm—even at Bell Labs. For example, between the release of the sixth edition of Unix in 1975 and the seventh edition in 1979, Thompson collected dozens of important bug fixes to the system, coming both from within and outside of Bell Labs. He wanted these to filter out to the existing Unix user base, but the company’s lawyers felt that this would constitute a form of support and balked at their release. Nevertheless, those bug fixes soon became widely distributed through unofficial channels. For instance, Lou Katz, the founding president of Usenix, received a phone call one day telling him that if he went down to a certain spot on Mountain Avenue (where Bell Labs was located) at 2 p.m., he would find something of interest. Sure enough, Katz found a magnetic tape with the bug fixes, which were rapidly in the hands of countless users.
Err codemadness.org 70 i 46334 By the end of the 1970s, Unix, which had started a decade earlier as a reaction against the loss of a comfortable programming environment, was growing like a weed throughout academia and the IT industry. Unix would flower in the early 1980s before reaching the height of its popularity in the early 1990s.
Err codemadness.org 70 i 46335 For many reasons, Unix has since given way to other commercial and noncommercial systems. But its legacy, that of an elegant, well-designed, comfortable environment for software development, lives on. In recognition of their accomplishment, Thompson and Ritchie were given the Japan Prize earlier this year, adding to a collection of honors that includes the United States’ National Medal of Technology and Innovation and the Association of Computing Machinery’s Turing Award. Many other, often very personal, tributes to Ritchie and his enormous influence on computing were widely shared after his death this past October.
Err codemadness.org 70 i 46336 Unix is indeed one of the most influential operating systems ever invented. Its direct descendants now number in the hundreds. On one side of the family tree are various versions of Unix proper, which began to be commercialized in the 1980s after the Bell System monopoly was broken up, freeing AT&T from the stipulations of the 1956 consent decree. On the other side are various Unix-like operating systems derived from the version of Unix developed at the University of California, Berkeley, including the one Apple uses today on its computers, OS X. I say “Unix-like” because the developers of the Berkeley Software Distribution (BSD) Unix on which these systems were based worked hard to remove all the original AT&T code so that their software and its descendants would be freely distributable.
Err codemadness.org 70 i 46337 The effectiveness of those efforts were, however, called into question when the AT&T subsidiary Unix System Laboratories filed suit against Berkeley Software Design and the Regents of the University of California in 1992 over intellectual property rights to this software. The university in turn filed a counterclaim against AT&T for breaches to the license it provided AT&T for the use of code developed at Berkeley. The ensuing legal quagmire slowed the development of free Unix-like clones, including 386BSD, which was designed for the Intel 386 chip, the CPU then found in many IBM PCs.
Err codemadness.org 70 i 46338 Had this operating system been available at the time, Linus Torvalds says he probably wouldn’t have created Linux, an open-source Unix-like operating system he developed from scratch for PCs in the early 1990s. Linux has carried the Unix baton forward into the 21st century, powering a wide range of digital gadgets including wireless routers, televisions, desktop PCs, and Android smartphones. It even runs some supercomputers.
Err codemadness.org 70 i 46339 Although AT&T quickly settled its legal disputes with Berkeley Software Design and the University of California, legal wrangling over intellectual property claims to various parts of Unix and Linux have continued over the years, often involving byzantine corporate relations. By 2004, no fewer than five major lawsuits had been filed. Just this past August, a software company called the TSG Group (formerly known as the SCO Group), lost a bid in court to claim ownership of Unix copyrights that Novell had acquired when it purchased the Unix System Laboratories from AT&T in 1993.
Err codemadness.org 70 i 46340 As a programmer and Unix historian, I can’t help but find all this legal sparring a bit sad. From the very start, the authors and users of Unix worked as best they could to build and share, even if that meant defying authority. That outpouring of selflessness stands in sharp contrast to the greed that has driven subsequent legal battles over the ownership of Unix.
Err codemadness.org 70 i 46341 The world of computer hardware and software moves forward startlingly fast. For IT professionals, the rapid pace of change is typically a wonderful thing. But it makes us susceptible to the loss of our own history, including important lessons from the past. To address this issue in a small way, in 1995 I started a mailing list of old-time Unix ­aficionados. That effort morphed into the Unix Heritage Society. Our goal is not only to save the history of Unix but also to collect and curate these old systems and, where possible, bring them back to life. With help from many talented members of this society, I was able to restore much of the old Unix software to working order, including Ritchie’s first C compiler from 1972 and the first Unix system to be written in C, dating from 1973.
Err codemadness.org 70 i 46342 One holy grail that eluded us for a long time was the first edition of Unix in any form, electronic or otherwise. Then, in 2006, Al Kossow from the Computer History Museum, in Mountain View, Calif., unearthed a printed study of Unix dated 1972, which not only covered the internal workings of Unix but also included a complete assembly listing of the kernel, the main component of this operating system. This was an amazing find—like discovering an old Ford Model T collecting dust in a corner of a barn. But we didn’t just want to admire the chrome work from afar. We wanted to see the thing run again.
Err codemadness.org 70 i 46343 In 2008, Tim Newsham, an independent programmer in Hawaii, and I assembled a team of like-minded Unix enthusiasts and set out to bring this ancient system back from the dead. The work was technically arduous and often frustrating, but in the end, we had a copy of the first edition of Unix running on an emulated PDP-11/20. We sent out messages announcing our success to all those we thought would be interested. Thompson, always succinct, simply replied, “Amazing.” Indeed, his brainchild was amazing, and I’ve been happy to do what I can to make it, and the story behind it, better known.

Err codemadness.org 70 i 46344
Err codemadness.org 70 i 46345 Err codemadness.org 70 i 46346


Err codemadness.org 70 i 46347 Err codemadness.org 70 i 46348

Digital Ocean
Err codemadness.org 70 i 46349 http://do.co/bsdnow

Err codemadness.org 70 i 46350 Err codemadness.org 70 i 46351

###FreeBSD jails with a single public IP address

Err codemadness.org 70 i 46352 Err codemadness.org 70 i 46353
Err codemadness.org 70 i 46354

Jails in FreeBSD provide a simple yet flexible way to set up a proper server layout. In the most setups the actual server only acts as the host system for the jails while the applications themselves run within those independent containers. Traditionally every jail has it’s own IP for the user to be able to address the individual services. But if you’re still using IPv4 this might get you in trouble as the most hosters don’t offer more than one single public IP address per server.

Err codemadness.org 70 i 46355
Err codemadness.org 70 i 46356 Err codemadness.org 70 i 46357
    Err codemadness.org 70 i 46358
  • Create the internal network
  • Err codemadness.org 70 i 46359
Err codemadness.org 70 i 46360 Err codemadness.org 70 i 46361
Err codemadness.org 70 i 46362

In this case NAT (“Network Address Translation”) is a good way to expose services in different jails using the same IP address.
Err codemadness.org 70 i 46363 First, let’s create an internal network (“NAT network”) at 192.168.0.0/24. You could generally use any private IPv4 address space as specified in RFC 1918. Here’s an overview: https://en.wikipedia.org/wiki/Private_network. Using pf, FreeBSD’s firewall, we will map requests on different ports of the same public IP address to our individual jails as well as provide network access to the jails themselves.
Err codemadness.org 70 i 46364 First let’s check which network devices are available. In my case there’s em0 which provides connectivity to the internet and lo0, the local loopback device.

Err codemadness.org 70 i 46365
Err codemadness.org 70 i 46366 Err codemadness.org 70 i 46367
  options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC>	Err	codemadness.org	70
i 46368   [...]	Err	codemadness.org	70
i 46369   inet 172.31.1.100 netmask 0xffffff00 broadcast 172.31.1.255	Err	codemadness.org	70
i 46370   nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>	Err	codemadness.org	70
i 46371   media: Ethernet autoselect (1000baseT <full-duplex>)	Err	codemadness.org	70
i 46372   status: active	Err	codemadness.org	70
i 46373 	Err	codemadness.org	70
i 46374 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384	Err	codemadness.org	70
i 46375   options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>	Err	codemadness.org	70
i 46376   inet6 ::1 prefixlen 128	Err	codemadness.org	70
i 46377   inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2	Err	codemadness.org	70
i 46378   inet 127.0.0.1 netmask 0xff000000	Err	codemadness.org	70
i 46379   nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>```	Err	codemadness.org	70
i 46380 	Err	codemadness.org	70
i 46381 > For our internal network, we create a cloned loopback device called lo1. Therefore we need to customize the /etc/rc.conf file, adding the following two lines:	Err	codemadness.org	70
i 46382 	Err	codemadness.org	70
i 46383 ```cloned_interfaces="lo1"	Err	codemadness.org	70
i 46384 ipv4_addrs_lo1="192.168.0.1-9/29"```	Err	codemadness.org	70
i 46385 	Err	codemadness.org	70
i 46386 > This defines a /29 network, offering IP addresses for a maximum of 6 jails:	Err	codemadness.org	70
i 46387 	Err	codemadness.org	70
i 46388 ```ipcalc 192.168.0.1/29	Err	codemadness.org	70
i 46389 Address:   192.168.0.1          11000000.10101000.00000000.00000 001	Err	codemadness.org	70
i 46390 Netmask:   255.255.255.248 = 29 11111111.11111111.11111111.11111 000	Err	codemadness.org	70
i 46391 Wildcard:  0.0.0.7              00000000.00000000.00000000.00000 111	Err	codemadness.org	70
i 46392 =>	Err	codemadness.org	70
i 46393 Network:   192.168.0.0/29       11000000.10101000.00000000.00000 000	Err	codemadness.org	70
i 46394 HostMin:   192.168.0.1          11000000.10101000.00000000.00000 001	Err	codemadness.org	70
i 46395 HostMax:   192.168.0.6          11000000.10101000.00000000.00000 110	Err	codemadness.org	70
i 46396 Broadcast: 192.168.0.7          11000000.10101000.00000000.00000 111	Err	codemadness.org	70
i 46397 Hosts/Net: 6                     Class C, Private Internet```	Err	codemadness.org	70
i 46398 	Err	codemadness.org	70
i 46399 > Then we need to restart the network. Please be aware of currently active SSH sessions as they might be dropped during restart. It’s a good moment to ensure you have KVM access to that server ;-)	Err	codemadness.org	70
i 46400 	Err	codemadness.org	70
i 46401 ```service netif restart```	Err	codemadness.org	70
i 46402 	Err	codemadness.org	70
i 46403 > After reconnecting, our newly created loopback device is active:	Err	codemadness.org	70
i 46404 	Err	codemadness.org	70
i 46405 ```lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384	Err	codemadness.org	70
i 46406   options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>	Err	codemadness.org	70
i 46407   inet 192.168.0.1 netmask 0xfffffff8	Err	codemadness.org	70
i 46408   inet 192.168.0.2 netmask 0xffffffff	Err	codemadness.org	70
i 46409   inet 192.168.0.3 netmask 0xffffffff	Err	codemadness.org	70
i 46410   inet 192.168.0.4 netmask 0xffffffff	Err	codemadness.org	70
i 46411   inet 192.168.0.5 netmask 0xffffffff	Err	codemadness.org	70
i 46412   inet 192.168.0.6 netmask 0xffffffff	Err	codemadness.org	70
i 46413   inet 192.168.0.7 netmask 0xffffffff	Err	codemadness.org	70
i 46414   inet 192.168.0.8 netmask 0xffffffff	Err	codemadness.org	70
i 46415   inet 192.168.0.9 netmask 0xffffffff	Err	codemadness.org	70
i 46416   nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>```	Err	codemadness.org	70
i 46417 	Err	codemadness.org	70
i 46418 + Setting up	Err	codemadness.org	70
i 46419 	Err	codemadness.org	70
i 46420 > pf part of the FreeBSD base system, so we only have to configure and enable it. By this moment you should already have a clue of which services you want to expose. If this is not the case, just fix that file later on. In my example configuration, I have a jail running a webserver and another jail running a mailserver:	Err	codemadness.org	70
i 46421 	Err	codemadness.org	70
i 46422  +  Public IP address	Err	codemadness.org	70
i 46423 ```IP_PUB="1.2.3.4"```	Err	codemadness.org	70
i 46424 	Err	codemadness.org	70
i 46425  +  Packet normalization	Err	codemadness.org	70
i 46426 ```scrub in all```	Err	codemadness.org	70
i 46427 	Err	codemadness.org	70
i 46428  +  Allow outbound connections from within the jails	Err	codemadness.org	70
i 46429 ```nat on em0 from lo1:network to any -> (em0)```	Err	codemadness.org	70
i 46430 	Err	codemadness.org	70
i 46431  +  webserver jail at 192.168.0.2	Err	codemadness.org	70
i 46432 ```rdr on em0 proto tcp from any to $IP_PUB port 443 -> 192.168.0.2```	Err	codemadness.org	70
i 46433 	Err	codemadness.org	70
i 46434  + just an example in case you want to redirect to another port within your jail	Err	codemadness.org	70
i 46435 ```rdr on em0 proto tcp from any to $IP_PUB port 80 -> 192.168.0.2 port 8080```	Err	codemadness.org	70
i 46436 	Err	codemadness.org	70
i 46437  + mailserver jail at 192.168.0.3	Err	codemadness.org	70
i 46438 ```rdr on em0 proto tcp from any to $IP_PUB port 25 -> 192.168.0.3```	Err	codemadness.org	70
i 46439 ```rdr on em0 proto tcp from any to $IP_PUB port 587 -> 192.168.0.3```	Err	codemadness.org	70
i 46440 ```rdr on em0 proto tcp from any to $IP_PUB port 143 -> 192.168.0.3```	Err	codemadness.org	70
i 46441 ```rdr on em0 proto tcp from any to $IP_PUB port 993 -> 192.168.0.3```	Err	codemadness.org	70
i 46442 	Err	codemadness.org	70
i 46443 > Now just enable pf like this (which is the equivalent of adding pf_enable=YES to /etc/rc.conf):	Err	codemadness.org	70
i 46444 	Err	codemadness.org	70
i 46445 ```sysrc pf_enable="YES"```	Err	codemadness.org	70
i 46446 	Err	codemadness.org	70
i 46447 > and start it:	Err	codemadness.org	70
i 46448 	Err	codemadness.org	70
i 46449 ```service pf start```	Err	codemadness.org	70
i 46450 	Err	codemadness.org	70
i 46451 + Install ezjail	Err	codemadness.org	70
i 46452 	Err	codemadness.org	70
i 46453 > Ezjail is a collection of scripts by erdgeist that allow you to easily manage your jails.	Err	codemadness.org	70
i 46454 	Err	codemadness.org	70
i 46455 ```pkg install ezjail```	Err	codemadness.org	70
i 46456 	Err	codemadness.org	70
i 46457 > As an alternative, you could install ezjail from the ports tree. Now we need to set up the basejail which contains the shared base system for our jails. In fact, every jail that you create get’s will use that basejail to symlink directories related to the base system like /bin and /sbin. This can be accomplished by running	Err	codemadness.org	70
i 46458 	Err	codemadness.org	70
i 46459 ```ezjail-admin install```	Err	codemadness.org	70
i 46460 	Err	codemadness.org	70
i 46461 > In the next step, we’ll copy the /etc/resolv.conf file from our host to the newjail, which is the template for newly created jails (the parts that are not provided by basejail), to ensure that domain resolution will work properly within our jails later on:	Err	codemadness.org	70
i 46462 	Err	codemadness.org	70
i 46463 ```cp /etc/resolv.conf /usr/jails/newjail/etc/```	Err	codemadness.org	70
i 46464 	Err	codemadness.org	70
i 46465 > Last but not least, we enable ezjail and start it:	Err	codemadness.org	70
i 46466 	Err	codemadness.org	70
i 46467 ```sysrc ezjail_enable="YES"```	Err	codemadness.org	70
i 46468 ```service ezjail start```	Err	codemadness.org	70
i 46469 	Err	codemadness.org	70
i 46470 + Create a jail	Err	codemadness.org	70
i 46471 	Err	codemadness.org	70
i 46472 > Creating a jail is as easy as it could probably be:	Err	codemadness.org	70
i 46473 	Err	codemadness.org	70
i 46474 ```ezjail-admin create webserver 192.168.0.2```	Err	codemadness.org	70
i 46475 ```ezjail-admin start webserver```	Err	codemadness.org	70
i 46476 	Err	codemadness.org	70
i 46477 > Now you can access your jail using:	Err	codemadness.org	70
i 46478 	Err	codemadness.org	70
i 46479 ```ezjail-admin console webserver```	Err	codemadness.org	70
i 46480 	Err	codemadness.org	70
i 46481 > Each jail contains a vanilla FreeBSD installation.	Err	codemadness.org	70
i 46482 	Err	codemadness.org	70
i 46483 + Deploy services	Err	codemadness.org	70
i 46484 	Err	codemadness.org	70
i 46485 > Now you can spin up as many jails as you want to set up your services like web, mail or file shares. You should take care not to enable sshd within your jails, because that would cause problems with the service’s IP bindings. But this is not a problem, just SSH to the host and enter your jail using ezjail-admin console.	Err	codemadness.org	70
i 46486 ***	Err	codemadness.org	70
i 46487 	Err	codemadness.org	70
i 46488 ###[EuroBSDcon 2018 Talks & Schedule](https://2018.eurobsdcon.org/talks-schedule/)	Err	codemadness.org	70
i 46489 ***	Err	codemadness.org	70
i 46490 	Err	codemadness.org	70
i 46491 	Err	codemadness.org	70
i 46492 	Err	codemadness.org	70
i 46493 	Err	codemadness.org	70
i 46494 ##News Roundup	Err	codemadness.org	70
i 46495 ###[OpenBSD on an iBook G4](https://bobstechsite.com/openbsd-on-an-ibook-g4/)	Err	codemadness.org	70
i 46496 > I've mentioned on social media and on the BTS podcast a few times that I wanted to try installing OpenBSD onto an old "snow white" iBook G4 I acquired last summer to see if I could make it a useful machine again in the year 2018.  This particular eBay purchase came with a 14" 1024x768 TFT screen, 1.07GHz PowerPC G4 processor, 1.5GB RAM, 100GB of HDD space and an ATI Radeon 9200 graphics card with 32 MB of SDRAM. The optical drive, ethernet port, battery & USB slots are also fully-functional. The only thing that doesn't work is the CMOS battery, but that's not unexpected for a device that was originally released in 2004.	Err	codemadness.org	70
i 46497 	Err	codemadness.org	70
i 46498 + Initial experiments	Err	codemadness.org	70
i 46499 	Err	codemadness.org	70
i 46500 > This iBook originally arrived at my door running Apple Mac OSX Leopard and came with the original install disk, the iLife & iWork suites for 2008, various instruction manuals, a working power cable and a spare keyboard. As you'll see in the pictures I took for this post the characters on the buttons have started to wear away from 14 years of intensive use, but the replacement needs a very good clean before I decide to swap it in!	Err	codemadness.org	70
i 46501 	Err	codemadness.org	70
i 46502 > After spending some time exploring the last version of OSX to support the IBM PowerPC processor architecture I tried to see if the hardware was capable of modern computing with Linux. Something I knew ahead of trying this was that the WiFi adapter was unlikely to work because it's a highly proprietary component designed by Apple to work specifically with OSX and nothing else, but I figured I could probably use a wireless USB dongle later to get around this limitation.	Err	codemadness.org	70
i 46503 	Err	codemadness.org	70
i 46504 > Unfortunately I found that no recent versions of mainstream Linux distributions would boot off this machine. Debian has dropped support 32-bit PowerPC architectures and the PowerPC variants of Ubuntu 16.04 LTS (vanilla, MATE and Lubuntu) wouldn't even boot the installer! The only distribution I could reliably install on the hardware was Lubuntu 14.04 LTS.	Err	codemadness.org	70
i 46505 	Err	codemadness.org	70
i 46506 > Unfortunately I'm not the biggest fan of the LXDE desktop for regular work and a lot of ported applications were old and broken because it clearly wasn't being maintained by people that use the hardware anymore. Ubuntu 14.04 is also approaching the end of its support life in early 2019, so this limited solution also has a limited shelf-life.	Err	codemadness.org	70
i 46507 	Err	codemadness.org	70
i 46508 + Over to BSD	Err	codemadness.org	70
i 46509 	Err	codemadness.org	70
i 46510 > I discussed this problem with a few people on Mastodon and it was pointed out to me that OSX is built on the Darwin kernel, which happens to be a variant of BSD. NetBSD and OpenBSD fans in particular convinced me that their communities still saw the value of supporting these old pieces of kit and that I should give BSD a try.	Err	codemadness.org	70
i 46511 	Err	codemadness.org	70
i 46512 > So yesterday evening I finally downloaded the "macppc" version of OpenBSD 6.3 with no idea what to expect. I hoped for the best but feared the worst because my last experience with this operating system was trying out PC-BSD in 2008 and discovering with disappointment that it didn't support any of the hardware on my Toshiba laptop.	Err	codemadness.org	70
i 46513 	Err	codemadness.org	70
i 46514 > When I initially booted OpenBSD I was a little surprised to find the login screen provided no visual feedback when I typed in my password, but I can understand the security reasons for doing that. The initial desktop environment that was loaded was very basic. All I could see was a console output window, a terminal and a desktop switcher in the X11 environment the system had loaded.	Err	codemadness.org	70
i 46515 	Err	codemadness.org	70
i 46516 > After a little Googling I found this blog post had some fantastic instructions to follow for the post-installation steps: https://sohcahtoa.org.uk/openbsd.html. I did have to adjust them slightly though because my iBook only has 1.5GB RAM and not every package that page suggests is available on macppc by default. You can see a full list here: https://ftp.openbsd.org/pub/OpenBSD/6.3/packages/powerpc/.	Err	codemadness.org	70
i 46517 	Err	codemadness.org	70
i 46518 + Final thoughts	Err	codemadness.org	70
i 46519 	Err	codemadness.org	70
i 46520 > I was really impressed with the performance of OpenBSD's "macppc" port. It boots much faster than OSX Leopard on the same hardware and unlike Lubuntu 14.04 it doesn't randomly hang for no reason or crash if you launch something demanding like the GIMP.	Err	codemadness.org	70
i 46521 	Err	codemadness.org	70
i 46522 > I was pleased to see that the command line tools I'm used to using on Linux have been ported across too. OpenBSD also had no issues with me performing basic desktop tasks on XFCE like browsing the web with NetSurf, playing audio files with VLC and editing images with the GIMP. Limited gaming is also theoretically possible if you're willing to build them (or an emulator) from source with SDL support.	Err	codemadness.org	70
i 46523 	Err	codemadness.org	70
i 46524 > If I wanted to use this system for heavy duty work then I'd probably be inclined to run key applications like LibreOffice on a Raspberry Pi and then connect my iBook G4 to those using VNC or an SSH connection with X11 forwarding. BSD is UNIX after all, so using my ancient laptop as a dumb terminal should work reasonably well.	Err	codemadness.org	70
i 46525 	Err	codemadness.org	70
i 46526 > In summary I was impressed with OpenBSD and its ability to breathe new life into this old Apple Mac. I'm genuinely excited about the idea of trying BSD with other devices on my network such as an old Asus Eee PC 900 netbook and at least one of the many Raspberry Pi devices I use. Whether I go the whole hog and replace Fedora on my main production laptop though remains to be seen!	Err	codemadness.org	70
i 46527 	Err	codemadness.org	70
i 46528 ***	Err	codemadness.org	70
i 46529 	Err	codemadness.org	70
i 46530 ###[The template user with PAM and login(1)](http://oshogbo.vexillium.org/blog/48)	Err	codemadness.org	70
i 46531 > When you build a new service (or an appliance) you need your users to be able to configure it from the command line. To accomplish this you can create system accounts for all registered users in your service and assign them a special login shell which provides such limited functionality. This can be painful if you have a dynamic user database.	Err	codemadness.org	70
i 46532 > Another challenge is authentication via remote services such as RADIUS. How can we implement  services when we authenticate through it and log into it as a different user? Furthermore, imagine a scenario when RADIUS decides on which account we have the right to access by sending an additional attribute.	Err	codemadness.org	70
i 46533 > To address these two problems we can use a "template" user. Any of the PAM modules can set the value of the PAM_USER item. The value of this item will be used to determine which account we want to login. Only the "template" user must exist on the local password database, but the credential check can be omitted by the module.	Err	codemadness.org	70
i 46534 > This functionality exists in the login(1) used by FreeBSD, HardenedBSD, DragonFlyBSD and illumos. The functionality doesn't exist in the login(1) used in NetBSD, and OpenBSD doesn't support PAM modules at all. In addition what  is also noteworthy is that such functionality was also in the OpenSSH but they decided to remove it and call it a security vulnerability (CVE 2015-6563). I can see how some people may have seen it that way, that’s why I recommend reading this article from an OpenPAM author and a FreeBSD security officer at the time.	Err	codemadness.org	70
i 46535 > Knowing the background let's take a look at an example.	Err	codemadness.org	70
i 46536 	Err	codemadness.org	70
i 46537 ```PAM_EXTERN int	Err	codemadness.org	70
i 46538 pam_sm_authenticate(pam_handle_t *pamh, int flags __unused,	Err	codemadness.org	70
i 46539     int argc __unused, const char *argv[] __unused)	Err	codemadness.org	70
i 46540 {	Err	codemadness.org	70
i 46541         const char *user, *password;	Err	codemadness.org	70
i 46542         int err;	Err	codemadness.org	70
i 46543 	Err	codemadness.org	70
i 46544         err = pam_get_user(pamh, &user, NULL);	Err	codemadness.org	70
i 46545         if (err != PAM_SUCCESS)	Err	codemadness.org	70
i 46546                 return (err);	Err	codemadness.org	70
i 46547 	Err	codemadness.org	70
i 46548         err = pam_get_authtok(pamh, PAM_AUTHTOK, &password, NULL);	Err	codemadness.org	70
i 46549         if (err == PAM_CONV_ERR)	Err	codemadness.org	70
i 46550                 return (err);	Err	codemadness.org	70
i 46551         if (err != PAM_SUCCESS)	Err	codemadness.org	70
i 46552                 return (PAM_AUTH_ERR);	Err	codemadness.org	70
i 46553 	Err	codemadness.org	70
i 46554         err = authenticate(user, password);	Err	codemadness.org	70
i 46555         if (err != PAM_SUCCESS) {	Err	codemadness.org	70
i 46556                 return (err);	Err	codemadness.org	70
i 46557         }	Err	codemadness.org	70
i 46558 	Err	codemadness.org	70
i 46559         return (pam_set_item(pamh, PAM_USER, "template"));	Err	codemadness.org	70
i 46560 }	Err	codemadness.org	70
i 46561 
Err codemadness.org 70 i 46562 Err codemadness.org 70 i 46563
Err codemadness.org 70 i 46564

In the listing above we have an example of a PAM module. The pam_get_user(3) provides a username. The pam_get_authtok(3) shows us a secret given by the user. Both functions allow us to give an optional prompt which should be shown to the user. The authenticate function is our crafted function which authenticates the user. In our first scenario we wanted to keep all users in an external database. If authentication is successful we then switch to a template user which has a shell set up for a script allowing us to configure the machine. In our second scenario the authenticate function authenticates the user in RADIUS.

Err codemadness.org 70 i 46565
Err codemadness.org 70 i 46566 Err codemadness.org 70 i 46567
Err codemadness.org 70 i 46568

Another step is to add our PAM module to the /etc/pam.d/system or to the /etc/pam.d/login configuration:

Err codemadness.org 70 i 46569
Err codemadness.org 70 i 46570 Err codemadness.org 70 i 46571

auth sufficient pam_template.so no_warn allow_local

Err codemadness.org 70 i 46572 Err codemadness.org 70 i 46573
Err codemadness.org 70 i 46574

Unfortunately the description of all these options goes beyond this article - if you would like to know more about it you can find them in the PAM manual. The last thing we need to do is to add our template user to the system which you can do by the adduser(8) command or just simply modifying the /etc/master.passwd file and use pwd_mkdb(8) program:

Err codemadness.org 70 i 46575
Err codemadness.org 70 i 46576 Err codemadness.org 70 i 46577

$ tail -n /etc/master.passwd
Err codemadness.org 70 i 46578 template:*:1000:1000::0:0:User &:/:/usr/local/bin/templatesh
Err codemadness.org 70 i 46579 $ sudo pwd_mkdb /etc/master.passwd

Err codemadness.org 70 i 46580 Err codemadness.org 70 i 46581
Err codemadness.org 70 i 46582

As you can see,the template user can be locked and we still can use it in our PAM module (the * character after login).
Err codemadness.org 70 i 46583 I would like to thank Dag-Erling Smørgrav for pointing this functionality out to me when I was looking for it some time ago.

Err codemadness.org 70 i 46584
Err codemadness.org 70 i 46585 Err codemadness.org 70 i 46586


Err codemadness.org 70 i 46587 Err codemadness.org 70 i 46588

iXsystems
Err codemadness.org 70 i 46589 iXsystems @ VMWorld

Err codemadness.org 70 i 46590 Err codemadness.org 70 i 46591

###ZFS file server

Err codemadness.org 70 i 46592 Err codemadness.org 70 i 46593
    Err codemadness.org 70 i 46594
  • What is the need?
  • Err codemadness.org 70 i 46595
Err codemadness.org 70 i 46596 Err codemadness.org 70 i 46597
Err codemadness.org 70 i 46598

At work, we run a compute cluster that uses an Isilon cluster as primary NAS storage. Excluding snapshots, we have about 200TB of research data, some of them in compressed formats, and others not. We needed an offsite backup file server that would constantly mirror our primary NAS and serve as a quick recovery source in case of a data loss in the the primary NAS. This offsite file server would be passive - will never face the wrath of the primary cluster workload.
Err codemadness.org 70 i 46599 In addition to the role of a passive backup server, this solution would take on some passive report generation workloads as an ideal way of offloading some work from the primary NAS. The passive work is read-only.
Err codemadness.org 70 i 46600 The backup server would keep snapshots in a best effort basis dating back to 10 years. However, this data on this backup server would be archived to tapes periodically.

Err codemadness.org 70 i 46601
Err codemadness.org 70 i 46602 Err codemadness.org 70 i 46603
    Err codemadness.org 70 i 46604
  • Err codemadness.org 70 i 46605

    A simple guidance of priorities:

    Err codemadness.org 70 i 46606
  • Err codemadness.org 70 i 46607
  • Err codemadness.org 70 i 46608

    Data integrity > Cost of solution > Storage capacity > Performance.

    Err codemadness.org 70 i 46609
  • Err codemadness.org 70 i 46610
  • Err codemadness.org 70 i 46611

    Why not enterprise NAS? NetApp FAS or EMC Isilon or the like?

    Err codemadness.org 70 i 46612
  • Err codemadness.org 70 i 46613
Err codemadness.org 70 i 46614 Err codemadness.org 70 i 46615
Err codemadness.org 70 i 46616

We decided that enterprise grade NAS like NetAPP FAS or EMC Isilon are prohibitively expensive and an overkill for our needs.
Err codemadness.org 70 i 46617 An open source & cheaper alternative to enterprise grade filesystem with the level of durability we expect turned up to be ZFS. We’re already spoilt from using snapshots by a clever Copy-on-Write Filesystem(WAFL) by NetApp. ZFS providing snapshots in almost identical way was a big influence in the choice. This is also why we did not consider just a CentOS box with the default XFS filesystem.

Err codemadness.org 70 i 46618
Err codemadness.org 70 i 46619 Err codemadness.org 70 i 46620
    Err codemadness.org 70 i 46621
  • FreeBSD vs Debian for ZFS
  • Err codemadness.org 70 i 46622
Err codemadness.org 70 i 46623 Err codemadness.org 70 i 46624
Err codemadness.org 70 i 46625

This is a backup server, a long-term solution. Stability and reliability are key requirements. ZFS on Linux may be popular at this time, but there is a lot of churn around its development, which means there is a higher probability of bugs like this to occur. We’re not looking for cutting edge features here. Perhaps, Linux would be considered in the future.

Err codemadness.org 70 i 46626
Err codemadness.org 70 i 46627 Err codemadness.org 70 i 46628
    Err codemadness.org 70 i 46629
  • FreeBSD + ZFS
  • Err codemadness.org 70 i 46630
Err codemadness.org 70 i 46631 Err codemadness.org 70 i 46632
Err codemadness.org 70 i 46633

We already utilize FreeBSD and OpenBSD for infrastructure services and we have nothing but praises for the stability that the BSDs have provided us. We’d gladly use FreeBSD and OpenBSD wherever possible.

Err codemadness.org 70 i 46634
Err codemadness.org 70 i 46635 Err codemadness.org 70 i 46636
    Err codemadness.org 70 i 46637
  • Okay, ZFS, but why not FreeNAS?
  • Err codemadness.org 70 i 46638
Err codemadness.org 70 i 46639 Err codemadness.org 70 i 46640
Err codemadness.org 70 i 46641

IMHO, FreeNAS provides a integrated GUI management tool over FreeBSD for a novice user to setup and configure FreeBSD, ZFS, Jails and many other features. But, this user facing abstraction adds an extra layer of complexity to maintain that is just not worth it in simpler use cases like ours. For someone that appreciates the commandline interface, and understands FreeBSD enough to administer it, plain FreeBSD + ZFS is simpler and more robust than FreeNAS.

Err codemadness.org 70 i 46642
Err codemadness.org 70 i 46643 Err codemadness.org 70 i 46644
    Err codemadness.org 70 i 46645
  • Specifications
  • Err codemadness.org 70 i 46646
  • Lenovo SR630 Rackserver
  • Err codemadness.org 70 i 46647
  • 2 X Intel Xeon silver 4110 CPUs
  • Err codemadness.org 70 i 46648
  • 768 GB of DDR4 ECC 2666 MHz RAM
  • Err codemadness.org 70 i 46649
  • 4 port SAS card configured in passthrough mode(JBOD)
  • Err codemadness.org 70 i 46650
  • Intel network card with 10 Gb SFP+ ports
  • Err codemadness.org 70 i 46651
  • 128GB M.2 SSD for use as boot drive
  • Err codemadness.org 70 i 46652
  • 2 X HGST 4U60 JBOD
  • Err codemadness.org 70 i 46653
  • 120(2 X 60) X 10TB SAS disks
  • Err codemadness.org 70 i 46654
Err codemadness.org 70 i 46655 Err codemadness.org 70 i 46656


Err codemadness.org 70 i 46657 Err codemadness.org 70 i 46658

###Reflection on one-year usage of OpenBSD

Err codemadness.org 70 i 46659 Err codemadness.org 70 i 46660
Err codemadness.org 70 i 46661

I have used OpenBSD for more than one year, and it is time to give a summary of the experience:

Err codemadness.org 70 i 46662
Err codemadness.org 70 i 46663 Err codemadness.org 70 i 46664
    Err codemadness.org 70 i 46665
  • (1) What do I get from OpenBSD?
  • Err codemadness.org 70 i 46666
Err codemadness.org 70 i 46667 Err codemadness.org 70 i 46668
Err codemadness.org 70 i 46669

a) A good UNIX tutorial. When I am curious about some UNIXcommands’ implementation, I will refer to OpenBSD source code, and I actually gain something every time. E.g., refresh socket programming skills from nc; know how to process file efficiently from cat.

Err codemadness.org 70 i 46670
Err codemadness.org 70 i 46671 Err codemadness.org 70 i 46672
Err codemadness.org 70 i 46673

b) A better test bed. Although my work focus on developing programs on Linux, I will try to compile and run applications on OpenBSD if it is possible. One reason is OpenBSD usually gives more helpful warnings. E.g., hint like this:

Err codemadness.org 70 i 46674
Err codemadness.org 70 i 46675 Err codemadness.org 70 i 46676

......
Err codemadness.org 70 i 46677 warning: sprintf() is often misused, please use snprintf()
Err codemadness.org 70 i 46678 ......

Err codemadness.org 70 i 46679 Err codemadness.org 70 i 46680
Err codemadness.org 70 i 46681

Or you can refer this post which I wrote before. The other is sometimes program run well on Linux may crash on OpenBSD, and OpenBSD can help you find hidden bugs.

Err codemadness.org 70 i 46682
Err codemadness.org 70 i 46683 Err codemadness.org 70 i 46684
Err codemadness.org 70 i 46685

c) Some handy tools. E.g. I find tcpbench is useful, so I ported it into Linux for my own usage (project is here).

Err codemadness.org 70 i 46686
Err codemadness.org 70 i 46687 Err codemadness.org 70 i 46688
    Err codemadness.org 70 i 46689
  • (2) What I give back to OpenBSD?
  • Err codemadness.org 70 i 46690
Err codemadness.org 70 i 46691 Err codemadness.org 70 i 46692
Err codemadness.org 70 i 46693

a) Patches. Although most of them are trivial modifications, they are still my contributions.

Err codemadness.org 70 i 46694
Err codemadness.org 70 i 46695 Err codemadness.org 70 i 46696
Err codemadness.org 70 i 46697

b) Write blog posts to share experience about using OpenBSD.

Err codemadness.org 70 i 46698
Err codemadness.org 70 i 46699 Err codemadness.org 70 i 46700
Err codemadness.org 70 i 46701

c) Develop programs for OpenBSD/*BSD: lscpu and free.

Err codemadness.org 70 i 46702
Err codemadness.org 70 i 46703 Err codemadness.org 70 i 46704
Err codemadness.org 70 i 46705

d) Porting programs into OpenBSD: E.g., I find google/benchmark is a nifty tool, but lacks OpenBSD support, I submitted PR and it is accepted. So you can use google/benchmark on OpenBSD now.

Err codemadness.org 70 i 46706
Err codemadness.org 70 i 46707 Err codemadness.org 70 i 46708
    Err codemadness.org 70 i 46709
  • Generally speaking, the time invested on OpenBSD is rewarding. If you are still hesitating, why not give a shot?
  • Err codemadness.org 70 i 46710
Err codemadness.org 70 i 46711 Err codemadness.org 70 i 46712


Err codemadness.org 70 i 46713 Err codemadness.org 70 i 46714

##Beastie Bits

Err codemadness.org 70 i 46715 Err codemadness.org 70 i 46716 Err codemadness.org 70 i 46726 Err codemadness.org 70 i 46727


Err codemadness.org 70 i 46728 Err codemadness.org 70 i 46729

Tarsnap

Err codemadness.org 70 i 46730 Err codemadness.org 70 i 46731

##Feedback/Questions

Err codemadness.org 70 i 46732 Err codemadness.org 70 i 46733
    Err codemadness.org 70 i 46734
  • Anian_Z - Question
  • Err codemadness.org 70 i 46735
  • Robert - Pool question
  • Err codemadness.org 70 i 46736
  • Lain - Congratulations
  • Err codemadness.org 70 i 46737
  • Thomas - L2arc
  • Err codemadness.org 70 i 46738
Err codemadness.org 70 i 46739 Err codemadness.org 70 i 46740


Err codemadness.org 70 i 46741 Err codemadness.org 70 i 46742
    Err codemadness.org 70 i 46743
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 46744
Err codemadness.org 70 i 46745 Err codemadness.org 70 i 46746


]]> Err codemadness.org 70 i 46747
Err codemadness.org 70 i 46748 Err codemadness.org 70 i 46749 The strange birth and long life of Unix, FreeBSD jail with a single public IP, EuroBSDcon 2018 talks and schedule, OpenBSD on G4 iBook, PAM template user, ZFS file server, and reflections on one year of OpenBSD use.

Err codemadness.org 70 i 46750 Err codemadness.org 70 i 46751

Picking the contest winner

Err codemadness.org 70 i 46752 Err codemadness.org 70 i 46753
    Err codemadness.org 70 i 46754
  1. Vincent
  2. Err codemadness.org 70 i 46755
  3. Bostjan
  4. Err codemadness.org 70 i 46756
  5. Andrew
  6. Err codemadness.org 70 i 46757
  7. Klaus-Hendrik
  8. Err codemadness.org 70 i 46758
  9. Will
  10. Err codemadness.org 70 i 46759
  11. Toby
  12. Err codemadness.org 70 i 46760
  13. Johnny
  14. Err codemadness.org 70 i 46761
  15. David
  16. Err codemadness.org 70 i 46762
  17. manfrom
  18. Err codemadness.org 70 i 46763
  19. Niclas
  20. Err codemadness.org 70 i 46764
  21. Gary
  22. Err codemadness.org 70 i 46765
  23. Eddy
  24. Err codemadness.org 70 i 46766
  25. Bruce
  26. Err codemadness.org 70 i 46767
  27. Lizz
  28. Err codemadness.org 70 i 46768
  29. Jim
  30. Err codemadness.org 70 i 46769
Err codemadness.org 70 i 46770 Err codemadness.org 70 i 46771

Random number generator

Err codemadness.org 70 i 46772 Err codemadness.org 70 i 46773

##Headlines
Err codemadness.org 70 i 46774 ###The Strange Birth and Long Life of Unix

Err codemadness.org 70 i 46775 Err codemadness.org 70 i 46776
Err codemadness.org 70 i 46777

They say that when one door closes on you, another opens. People generally offer this bit of wisdom just to lend some solace after a misfortune. But sometimes it’s actually true. It certainly was for Ken Thompson and the late Dennis Ritchie, two of the greats of 20th-century information technology, when they created the Unix operating system, now considered one of the most inspiring and influential pieces of software ever written.
Err codemadness.org 70 i 46778 A door had slammed shut for Thompson and Ritchie in March of 1969, when their employer, the American Telephone & Telegraph Co., withdrew from a collaborative project with the Massachusetts Institute of Technology and General Electric to create an interactive time-sharing system called Multics, which stood for “Multiplexed Information and Computing Service.” Time-sharing, a technique that lets multiple people use a single computer simultaneously, had been invented only a decade earlier. Multics was to combine time-sharing with other technological advances of the era, allowing users to phone a computer from remote terminals and then read e-mail, edit documents, run calculations, and so forth. It was to be a great leap forward from the way computers were mostly being used, with people tediously preparing and submitting batch jobs on punch cards to be run one by one.
Err codemadness.org 70 i 46779 Over five years, AT&T invested millions in the Multics project, purchasing a GE-645 mainframe computer and dedicating to the effort many of the top researchers at the company’s renowned Bell Telephone Laboratories—­including Thompson and Ritchie, Joseph F. Ossanna, Stuart Feldman, M. Douglas McIlroy, and the late Robert Morris. But the new system was too ambitious, and it fell troublingly behind schedule. In the end, AT&T’s corporate leaders decided to pull the plug.
Err codemadness.org 70 i 46780 After AT&T’s departure from the Multics project, managers at Bell Labs, in Murray Hill, N.J., became reluctant to allow any further work on computer operating systems, leaving some researchers there very frustrated. Although Multics hadn’t met many of its objectives, it had, as Ritchie later recalled, provided them with a “convenient interactive computing service, a good environment in which to do programming, [and] a system around which a fellowship could form.” Suddenly, it was gone.
Err codemadness.org 70 i 46781 With heavy hearts, the researchers returned to using their old batch system. At such an inauspicious moment, with management dead set against the idea, it surely would have seemed foolhardy to continue designing computer operating systems. But that’s exactly what Thompson, Ritchie, and many of their Bell Labs colleagues did. Now, some 40 years later, we should be thankful that these programmers ignored their bosses and continued their labor of love, which gave the world Unix, one of the greatest computer operating systems of all time.
Err codemadness.org 70 i 46782 The rogue project began in earnest when Thompson, Ritchie, and a third Bell Labs colleague, Rudd Canaday, began to sketch out on paper the design for a file system. Thompson then wrote the basics of a new operating system for the lab’s GE-645 mainframe. But with the Multics project ended, so too was the need for the GE-645. Thompson realized that any further programming he did on it was likely to go nowhere, so he dropped the effort.
Err codemadness.org 70 i 46783 Thompson had passed some of his time after the demise of Multics writing a computer game called Space Travel, which simulated all the major bodies in the solar system along with a spaceship that could fly around them. Written for the GE-645, Space Travel was clunky to play—and expensive: roughly US $75 a game for the CPU time. Hunting around, Thompson came across a dusty PDP-7, a minicomputer built by Digital Equipment Corp. that some of his Bell Labs colleagues had purchased earlier for a circuit-analysis project. Thompson rewrote Space Travel to run on it.
Err codemadness.org 70 i 46784 And with that little programming exercise, a second door cracked ajar. It was to swing wide open during the summer of 1969 when Thompson’s wife, Bonnie, spent a month visiting his parents to show off their newborn son. Thompson took advantage of his temporary bachelor existence to write a good chunk of what would become the Unix operating system for the discarded PDP‑7. The name Unix stems from a joke one of Thompson’s colleagues made: Because the new operating system supported only one user (Thompson), he saw it as an emasculated version of Multics and dubbed it “Un-multiplexed Information and Computing Service,” or Unics. The name later morphed into Unix.
Err codemadness.org 70 i 46785 Initially, Thompson used the GE-645 to compose and compile the software, which he then downloaded to the PDP‑7. But he soon weaned himself from the mainframe, and by the end of 1969 he was able to write operating-system code on the PDP-7 itself. That was a step in the right direction. But Thompson and the others helping him knew that the PDP‑7, which was already obsolete, would not be able to sustain their skunkworks for long. They also knew that the lab’s management wasn’t about to allow any more research on operating systems.
Err codemadness.org 70 i 46786 So Thompson and Ritchie got crea­tive. They formulated a proposal to their bosses to buy one of DEC’s newer minicomputers, a PDP-11, but couched the request in especially palatable terms. They said they were aiming to create tools for editing and formatting text, what you might call a word-processing system today. The fact that they would also have to write an operating system for the new machine to support the editor and text formatter was almost a footnote.
Err codemadness.org 70 i 46787 Management took the bait, and an order for a PDP-11 was placed in May 1970. The machine itself arrived soon after, although the disk drives for it took more than six months to appear. During the interim, Thompson, Ritchie, and others continued to develop Unix on the PDP-7. After the PDP-11’s disks were installed, the researchers moved their increasingly complex operating system over to the new machine. Next they brought over the roff text formatter written by Ossanna and derived from the runoff program, which had been used in an earlier time-sharing system.
Err codemadness.org 70 i 46788 Unix was put to its first real-world test within Bell Labs when three typists from AT&T’s patents department began using it to write, edit, and format patent applications. It was a hit. The patent department adopted the system wholeheartedly, which gave the researchers enough credibility to convince management to purchase another machine—a newer and more powerful PDP-11 model—allowing their stealth work on Unix to continue.
Err codemadness.org 70 i 46789 During its earliest days, Unix evolved constantly, so the idea of issuing named versions or releases seemed inappropriate. But the researchers did issue new editions of the programmer’s manual periodically, and the early Unix systems were named after each such edition. The first edition of the manual was completed in November 1971.
Err codemadness.org 70 i 46790 So what did the first edition of Unix offer that made it so great? For one thing, the system provided a hierarchical file system, which allowed something we all now take for granted: Files could be placed in directories—or equivalently, folders—that in turn could be put within other directories. Each file could contain no more than 64 kilobytes, and its name could be no more than six characters long. These restrictions seem awkwardly limiting now, but at the time they appeared perfectly adequate.
Err codemadness.org 70 i 46791 Although Unix was ostensibly created for word processing, the only editor available in 1971 was the line-oriented ed. Today, ed is still the only editor guaranteed to be present on all Unix systems. Apart from the text-processing and general system applications, the first edition of Unix included games such as blackjack, chess, and tic-tac-toe. For the system administrator, there were tools to dump and restore disk images to magnetic tape, to read and write paper tapes, and to create, check, mount, and unmount removable disk packs.
Err codemadness.org 70 i 46792 Most important, the system offered an interactive environment that by this time allowed time-sharing, so several people could use a single machine at once. Various programming languages were available to them, including BASIC, Fortran, the scripting of Unix commands, assembly language, and B. The last of these, a descendant of a BCPL (Basic Combined Programming Language), ultimately evolved into the immensely popular C language, which Ritchie created while also working on Unix.
Err codemadness.org 70 i 46793 The first edition of Unix let programmers call 34 different low-level routines built into the operating system. It’s a testament to the system’s enduring nature that nearly all of these system calls are still available—and still heavily used—on modern Unix and Linux systems four decades on. For its time, first-­edition Unix provided a remarkably powerful environment for software development. Yet it contained just 4200 lines of code at its heart and occupied a measly 16 KB of main memory when it ran.
Err codemadness.org 70 i 46794 Unix’s great influence can be traced in part to its elegant design, simplicity, portability, and serendipitous timing. But perhaps even more important was the devoted user community that soon grew up around it. And that came about only by an accident of its unique history.
Err codemadness.org 70 i 46795 The story goes like this: For years Unix remained nothing more than a Bell Labs research project, but by 1973 its authors felt the system was mature enough for them to present a paper on its design and implementation at a symposium of the Association for Computing Machinery. That paper was published in 1974 in the Communications of the ACM. Its appearance brought a flurry of requests for copies of the software.
Err codemadness.org 70 i 46796 This put AT&T in a bind. In 1956, AT&T had agreed to a U.S government consent decree that prevented the company from selling products not directly related to telephones and telecommunications, in return for its legal monopoly status in running the country’s long-distance phone service. So Unix could not be sold as a product. Instead, AT&T released the Unix source code under license to anyone who asked, charging only a nominal fee. The critical wrinkle here was that the consent decree prevented AT&T from supporting Unix. Indeed, for many years Bell Labs researchers proudly displayed their Unix policy at conferences with a slide that read, “No advertising, no support, no bug fixes, payment in advance.”
Err codemadness.org 70 i 46797 With no other channels of support available to them, early Unix adopters banded together for mutual assistance, forming a loose network of user groups all over the world. They had the source code, which helped. And they didn’t view Unix as a standard software product, because nobody seemed to be looking after it. So these early Unix users themselves set about fixing bugs, writing new tools, and generally improving the system as they saw fit.
Err codemadness.org 70 i 46798 The Usenix user group acted as a clearinghouse for the exchange of Unix software in the United States. People could send in magnetic tapes with new software or fixes to the system and get back tapes with the software and fixes that Usenix had received from others. In Australia, the University of New South Wales and the University of Sydney produced a more robust version of Unix, the Australian Unix Share Accounting Method, which could cope with larger numbers of concurrent users and offered better performance.
Err codemadness.org 70 i 46799 By the mid-1970s, the environment of sharing that had sprung up around Unix resembled the open-source movement so prevalent today. Users far and wide were enthusiastically enhancing the system, and many of their improvements were being fed back to Bell Labs for incorporation in future releases. But as Unix became more popular, AT&T’s lawyers began looking harder at what various licensees were doing with their systems.
Err codemadness.org 70 i 46800 One person who caught their eye was John Lions, a computer scientist then teaching at the University of New South Wales, in Australia. In 1977, he published what was probably the most famous computing book of the time, A Commentary on the Unix Operating System, which contained an annotated listing of the central source code for Unix.
Err codemadness.org 70 i 46801 Unix’s licensing conditions allowed for the exchange of source code, and initially, Lions’s book was sold to licensees. But by 1979, AT&T’s lawyers had clamped down on the book’s distribution and use in academic classes. The anti­authoritarian Unix community reacted as you might expect, and samizdat copies of the book spread like wildfire. Many of us have nearly unreadable nth-­generation photocopies of the original book.
Err codemadness.org 70 i 46802 End runs around AT&T’s lawyers indeed became the norm—even at Bell Labs. For example, between the release of the sixth edition of Unix in 1975 and the seventh edition in 1979, Thompson collected dozens of important bug fixes to the system, coming both from within and outside of Bell Labs. He wanted these to filter out to the existing Unix user base, but the company’s lawyers felt that this would constitute a form of support and balked at their release. Nevertheless, those bug fixes soon became widely distributed through unofficial channels. For instance, Lou Katz, the founding president of Usenix, received a phone call one day telling him that if he went down to a certain spot on Mountain Avenue (where Bell Labs was located) at 2 p.m., he would find something of interest. Sure enough, Katz found a magnetic tape with the bug fixes, which were rapidly in the hands of countless users.
Err codemadness.org 70 i 46803 By the end of the 1970s, Unix, which had started a decade earlier as a reaction against the loss of a comfortable programming environment, was growing like a weed throughout academia and the IT industry. Unix would flower in the early 1980s before reaching the height of its popularity in the early 1990s.
Err codemadness.org 70 i 46804 For many reasons, Unix has since given way to other commercial and noncommercial systems. But its legacy, that of an elegant, well-designed, comfortable environment for software development, lives on. In recognition of their accomplishment, Thompson and Ritchie were given the Japan Prize earlier this year, adding to a collection of honors that includes the United States’ National Medal of Technology and Innovation and the Association of Computing Machinery’s Turing Award. Many other, often very personal, tributes to Ritchie and his enormous influence on computing were widely shared after his death this past October.
Err codemadness.org 70 i 46805 Unix is indeed one of the most influential operating systems ever invented. Its direct descendants now number in the hundreds. On one side of the family tree are various versions of Unix proper, which began to be commercialized in the 1980s after the Bell System monopoly was broken up, freeing AT&T from the stipulations of the 1956 consent decree. On the other side are various Unix-like operating systems derived from the version of Unix developed at the University of California, Berkeley, including the one Apple uses today on its computers, OS X. I say “Unix-like” because the developers of the Berkeley Software Distribution (BSD) Unix on which these systems were based worked hard to remove all the original AT&T code so that their software and its descendants would be freely distributable.
Err codemadness.org 70 i 46806 The effectiveness of those efforts were, however, called into question when the AT&T subsidiary Unix System Laboratories filed suit against Berkeley Software Design and the Regents of the University of California in 1992 over intellectual property rights to this software. The university in turn filed a counterclaim against AT&T for breaches to the license it provided AT&T for the use of code developed at Berkeley. The ensuing legal quagmire slowed the development of free Unix-like clones, including 386BSD, which was designed for the Intel 386 chip, the CPU then found in many IBM PCs.
Err codemadness.org 70 i 46807 Had this operating system been available at the time, Linus Torvalds says he probably wouldn’t have created Linux, an open-source Unix-like operating system he developed from scratch for PCs in the early 1990s. Linux has carried the Unix baton forward into the 21st century, powering a wide range of digital gadgets including wireless routers, televisions, desktop PCs, and Android smartphones. It even runs some supercomputers.
Err codemadness.org 70 i 46808 Although AT&T quickly settled its legal disputes with Berkeley Software Design and the University of California, legal wrangling over intellectual property claims to various parts of Unix and Linux have continued over the years, often involving byzantine corporate relations. By 2004, no fewer than five major lawsuits had been filed. Just this past August, a software company called the TSG Group (formerly known as the SCO Group), lost a bid in court to claim ownership of Unix copyrights that Novell had acquired when it purchased the Unix System Laboratories from AT&T in 1993.
Err codemadness.org 70 i 46809 As a programmer and Unix historian, I can’t help but find all this legal sparring a bit sad. From the very start, the authors and users of Unix worked as best they could to build and share, even if that meant defying authority. That outpouring of selflessness stands in sharp contrast to the greed that has driven subsequent legal battles over the ownership of Unix.
Err codemadness.org 70 i 46810 The world of computer hardware and software moves forward startlingly fast. For IT professionals, the rapid pace of change is typically a wonderful thing. But it makes us susceptible to the loss of our own history, including important lessons from the past. To address this issue in a small way, in 1995 I started a mailing list of old-time Unix ­aficionados. That effort morphed into the Unix Heritage Society. Our goal is not only to save the history of Unix but also to collect and curate these old systems and, where possible, bring them back to life. With help from many talented members of this society, I was able to restore much of the old Unix software to working order, including Ritchie’s first C compiler from 1972 and the first Unix system to be written in C, dating from 1973.
Err codemadness.org 70 i 46811 One holy grail that eluded us for a long time was the first edition of Unix in any form, electronic or otherwise. Then, in 2006, Al Kossow from the Computer History Museum, in Mountain View, Calif., unearthed a printed study of Unix dated 1972, which not only covered the internal workings of Unix but also included a complete assembly listing of the kernel, the main component of this operating system. This was an amazing find—like discovering an old Ford Model T collecting dust in a corner of a barn. But we didn’t just want to admire the chrome work from afar. We wanted to see the thing run again.
Err codemadness.org 70 i 46812 In 2008, Tim Newsham, an independent programmer in Hawaii, and I assembled a team of like-minded Unix enthusiasts and set out to bring this ancient system back from the dead. The work was technically arduous and often frustrating, but in the end, we had a copy of the first edition of Unix running on an emulated PDP-11/20. We sent out messages announcing our success to all those we thought would be interested. Thompson, always succinct, simply replied, “Amazing.” Indeed, his brainchild was amazing, and I’ve been happy to do what I can to make it, and the story behind it, better known.

Err codemadness.org 70 i 46813
Err codemadness.org 70 i 46814 Err codemadness.org 70 i 46815


Err codemadness.org 70 i 46816 Err codemadness.org 70 i 46817

Digital Ocean
Err codemadness.org 70 i 46818 http://do.co/bsdnow

Err codemadness.org 70 i 46819 Err codemadness.org 70 i 46820

###FreeBSD jails with a single public IP address

Err codemadness.org 70 i 46821 Err codemadness.org 70 i 46822
Err codemadness.org 70 i 46823

Jails in FreeBSD provide a simple yet flexible way to set up a proper server layout. In the most setups the actual server only acts as the host system for the jails while the applications themselves run within those independent containers. Traditionally every jail has it’s own IP for the user to be able to address the individual services. But if you’re still using IPv4 this might get you in trouble as the most hosters don’t offer more than one single public IP address per server.

Err codemadness.org 70 i 46824
Err codemadness.org 70 i 46825 Err codemadness.org 70 i 46826
    Err codemadness.org 70 i 46827
  • Create the internal network
  • Err codemadness.org 70 i 46828
Err codemadness.org 70 i 46829 Err codemadness.org 70 i 46830
Err codemadness.org 70 i 46831

In this case NAT (“Network Address Translation”) is a good way to expose services in different jails using the same IP address.
Err codemadness.org 70 i 46832 First, let’s create an internal network (“NAT network”) at 192.168.0.0/24. You could generally use any private IPv4 address space as specified in RFC 1918. Here’s an overview: https://en.wikipedia.org/wiki/Private_network. Using pf, FreeBSD’s firewall, we will map requests on different ports of the same public IP address to our individual jails as well as provide network access to the jails themselves.
Err codemadness.org 70 i 46833 First let’s check which network devices are available. In my case there’s em0 which provides connectivity to the internet and lo0, the local loopback device.

Err codemadness.org 70 i 46834
Err codemadness.org 70 i 46835 Err codemadness.org 70 i 46836
  options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC>	Err	codemadness.org	70
i 46837   [...]	Err	codemadness.org	70
i 46838   inet 172.31.1.100 netmask 0xffffff00 broadcast 172.31.1.255	Err	codemadness.org	70
i 46839   nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>	Err	codemadness.org	70
i 46840   media: Ethernet autoselect (1000baseT <full-duplex>)	Err	codemadness.org	70
i 46841   status: active	Err	codemadness.org	70
i 46842 	Err	codemadness.org	70
i 46843 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384	Err	codemadness.org	70
i 46844   options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>	Err	codemadness.org	70
i 46845   inet6 ::1 prefixlen 128	Err	codemadness.org	70
i 46846   inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2	Err	codemadness.org	70
i 46847   inet 127.0.0.1 netmask 0xff000000	Err	codemadness.org	70
i 46848   nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>```	Err	codemadness.org	70
i 46849 	Err	codemadness.org	70
i 46850 > For our internal network, we create a cloned loopback device called lo1. Therefore we need to customize the /etc/rc.conf file, adding the following two lines:	Err	codemadness.org	70
i 46851 	Err	codemadness.org	70
i 46852 ```cloned_interfaces="lo1"	Err	codemadness.org	70
i 46853 ipv4_addrs_lo1="192.168.0.1-9/29"```	Err	codemadness.org	70
i 46854 	Err	codemadness.org	70
i 46855 > This defines a /29 network, offering IP addresses for a maximum of 6 jails:	Err	codemadness.org	70
i 46856 	Err	codemadness.org	70
i 46857 ```ipcalc 192.168.0.1/29	Err	codemadness.org	70
i 46858 Address:   192.168.0.1          11000000.10101000.00000000.00000 001	Err	codemadness.org	70
i 46859 Netmask:   255.255.255.248 = 29 11111111.11111111.11111111.11111 000	Err	codemadness.org	70
i 46860 Wildcard:  0.0.0.7              00000000.00000000.00000000.00000 111	Err	codemadness.org	70
i 46861 =>	Err	codemadness.org	70
i 46862 Network:   192.168.0.0/29       11000000.10101000.00000000.00000 000	Err	codemadness.org	70
i 46863 HostMin:   192.168.0.1          11000000.10101000.00000000.00000 001	Err	codemadness.org	70
i 46864 HostMax:   192.168.0.6          11000000.10101000.00000000.00000 110	Err	codemadness.org	70
i 46865 Broadcast: 192.168.0.7          11000000.10101000.00000000.00000 111	Err	codemadness.org	70
i 46866 Hosts/Net: 6                     Class C, Private Internet```	Err	codemadness.org	70
i 46867 	Err	codemadness.org	70
i 46868 > Then we need to restart the network. Please be aware of currently active SSH sessions as they might be dropped during restart. It’s a good moment to ensure you have KVM access to that server ;-)	Err	codemadness.org	70
i 46869 	Err	codemadness.org	70
i 46870 ```service netif restart```	Err	codemadness.org	70
i 46871 	Err	codemadness.org	70
i 46872 > After reconnecting, our newly created loopback device is active:	Err	codemadness.org	70
i 46873 	Err	codemadness.org	70
i 46874 ```lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384	Err	codemadness.org	70
i 46875   options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>	Err	codemadness.org	70
i 46876   inet 192.168.0.1 netmask 0xfffffff8	Err	codemadness.org	70
i 46877   inet 192.168.0.2 netmask 0xffffffff	Err	codemadness.org	70
i 46878   inet 192.168.0.3 netmask 0xffffffff	Err	codemadness.org	70
i 46879   inet 192.168.0.4 netmask 0xffffffff	Err	codemadness.org	70
i 46880   inet 192.168.0.5 netmask 0xffffffff	Err	codemadness.org	70
i 46881   inet 192.168.0.6 netmask 0xffffffff	Err	codemadness.org	70
i 46882   inet 192.168.0.7 netmask 0xffffffff	Err	codemadness.org	70
i 46883   inet 192.168.0.8 netmask 0xffffffff	Err	codemadness.org	70
i 46884   inet 192.168.0.9 netmask 0xffffffff	Err	codemadness.org	70
i 46885   nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>```	Err	codemadness.org	70
i 46886 	Err	codemadness.org	70
i 46887 + Setting up	Err	codemadness.org	70
i 46888 	Err	codemadness.org	70
i 46889 > pf part of the FreeBSD base system, so we only have to configure and enable it. By this moment you should already have a clue of which services you want to expose. If this is not the case, just fix that file later on. In my example configuration, I have a jail running a webserver and another jail running a mailserver:	Err	codemadness.org	70
i 46890 	Err	codemadness.org	70
i 46891  +  Public IP address	Err	codemadness.org	70
i 46892 ```IP_PUB="1.2.3.4"```	Err	codemadness.org	70
i 46893 	Err	codemadness.org	70
i 46894  +  Packet normalization	Err	codemadness.org	70
i 46895 ```scrub in all```	Err	codemadness.org	70
i 46896 	Err	codemadness.org	70
i 46897  +  Allow outbound connections from within the jails	Err	codemadness.org	70
i 46898 ```nat on em0 from lo1:network to any -> (em0)```	Err	codemadness.org	70
i 46899 	Err	codemadness.org	70
i 46900  +  webserver jail at 192.168.0.2	Err	codemadness.org	70
i 46901 ```rdr on em0 proto tcp from any to $IP_PUB port 443 -> 192.168.0.2```	Err	codemadness.org	70
i 46902 	Err	codemadness.org	70
i 46903  + just an example in case you want to redirect to another port within your jail	Err	codemadness.org	70
i 46904 ```rdr on em0 proto tcp from any to $IP_PUB port 80 -> 192.168.0.2 port 8080```	Err	codemadness.org	70
i 46905 	Err	codemadness.org	70
i 46906  + mailserver jail at 192.168.0.3	Err	codemadness.org	70
i 46907 ```rdr on em0 proto tcp from any to $IP_PUB port 25 -> 192.168.0.3```	Err	codemadness.org	70
i 46908 ```rdr on em0 proto tcp from any to $IP_PUB port 587 -> 192.168.0.3```	Err	codemadness.org	70
i 46909 ```rdr on em0 proto tcp from any to $IP_PUB port 143 -> 192.168.0.3```	Err	codemadness.org	70
i 46910 ```rdr on em0 proto tcp from any to $IP_PUB port 993 -> 192.168.0.3```	Err	codemadness.org	70
i 46911 	Err	codemadness.org	70
i 46912 > Now just enable pf like this (which is the equivalent of adding pf_enable=YES to /etc/rc.conf):	Err	codemadness.org	70
i 46913 	Err	codemadness.org	70
i 46914 ```sysrc pf_enable="YES"```	Err	codemadness.org	70
i 46915 	Err	codemadness.org	70
i 46916 > and start it:	Err	codemadness.org	70
i 46917 	Err	codemadness.org	70
i 46918 ```service pf start```	Err	codemadness.org	70
i 46919 	Err	codemadness.org	70
i 46920 + Install ezjail	Err	codemadness.org	70
i 46921 	Err	codemadness.org	70
i 46922 > Ezjail is a collection of scripts by erdgeist that allow you to easily manage your jails.	Err	codemadness.org	70
i 46923 	Err	codemadness.org	70
i 46924 ```pkg install ezjail```	Err	codemadness.org	70
i 46925 	Err	codemadness.org	70
i 46926 > As an alternative, you could install ezjail from the ports tree. Now we need to set up the basejail which contains the shared base system for our jails. In fact, every jail that you create get’s will use that basejail to symlink directories related to the base system like /bin and /sbin. This can be accomplished by running	Err	codemadness.org	70
i 46927 	Err	codemadness.org	70
i 46928 ```ezjail-admin install```	Err	codemadness.org	70
i 46929 	Err	codemadness.org	70
i 46930 > In the next step, we’ll copy the /etc/resolv.conf file from our host to the newjail, which is the template for newly created jails (the parts that are not provided by basejail), to ensure that domain resolution will work properly within our jails later on:	Err	codemadness.org	70
i 46931 	Err	codemadness.org	70
i 46932 ```cp /etc/resolv.conf /usr/jails/newjail/etc/```	Err	codemadness.org	70
i 46933 	Err	codemadness.org	70
i 46934 > Last but not least, we enable ezjail and start it:	Err	codemadness.org	70
i 46935 	Err	codemadness.org	70
i 46936 ```sysrc ezjail_enable="YES"```	Err	codemadness.org	70
i 46937 ```service ezjail start```	Err	codemadness.org	70
i 46938 	Err	codemadness.org	70
i 46939 + Create a jail	Err	codemadness.org	70
i 46940 	Err	codemadness.org	70
i 46941 > Creating a jail is as easy as it could probably be:	Err	codemadness.org	70
i 46942 	Err	codemadness.org	70
i 46943 ```ezjail-admin create webserver 192.168.0.2```	Err	codemadness.org	70
i 46944 ```ezjail-admin start webserver```	Err	codemadness.org	70
i 46945 	Err	codemadness.org	70
i 46946 > Now you can access your jail using:	Err	codemadness.org	70
i 46947 	Err	codemadness.org	70
i 46948 ```ezjail-admin console webserver```	Err	codemadness.org	70
i 46949 	Err	codemadness.org	70
i 46950 > Each jail contains a vanilla FreeBSD installation.	Err	codemadness.org	70
i 46951 	Err	codemadness.org	70
i 46952 + Deploy services	Err	codemadness.org	70
i 46953 	Err	codemadness.org	70
i 46954 > Now you can spin up as many jails as you want to set up your services like web, mail or file shares. You should take care not to enable sshd within your jails, because that would cause problems with the service’s IP bindings. But this is not a problem, just SSH to the host and enter your jail using ezjail-admin console.	Err	codemadness.org	70
i 46955 ***	Err	codemadness.org	70
i 46956 	Err	codemadness.org	70
i 46957 ###[EuroBSDcon 2018 Talks & Schedule](https://2018.eurobsdcon.org/talks-schedule/)	Err	codemadness.org	70
i 46958 ***	Err	codemadness.org	70
i 46959 	Err	codemadness.org	70
i 46960 	Err	codemadness.org	70
i 46961 	Err	codemadness.org	70
i 46962 	Err	codemadness.org	70
i 46963 ##News Roundup	Err	codemadness.org	70
i 46964 ###[OpenBSD on an iBook G4](https://bobstechsite.com/openbsd-on-an-ibook-g4/)	Err	codemadness.org	70
i 46965 > I've mentioned on social media and on the BTS podcast a few times that I wanted to try installing OpenBSD onto an old "snow white" iBook G4 I acquired last summer to see if I could make it a useful machine again in the year 2018.  This particular eBay purchase came with a 14" 1024x768 TFT screen, 1.07GHz PowerPC G4 processor, 1.5GB RAM, 100GB of HDD space and an ATI Radeon 9200 graphics card with 32 MB of SDRAM. The optical drive, ethernet port, battery & USB slots are also fully-functional. The only thing that doesn't work is the CMOS battery, but that's not unexpected for a device that was originally released in 2004.	Err	codemadness.org	70
i 46966 	Err	codemadness.org	70
i 46967 + Initial experiments	Err	codemadness.org	70
i 46968 	Err	codemadness.org	70
i 46969 > This iBook originally arrived at my door running Apple Mac OSX Leopard and came with the original install disk, the iLife & iWork suites for 2008, various instruction manuals, a working power cable and a spare keyboard. As you'll see in the pictures I took for this post the characters on the buttons have started to wear away from 14 years of intensive use, but the replacement needs a very good clean before I decide to swap it in!	Err	codemadness.org	70
i 46970 	Err	codemadness.org	70
i 46971 > After spending some time exploring the last version of OSX to support the IBM PowerPC processor architecture I tried to see if the hardware was capable of modern computing with Linux. Something I knew ahead of trying this was that the WiFi adapter was unlikely to work because it's a highly proprietary component designed by Apple to work specifically with OSX and nothing else, but I figured I could probably use a wireless USB dongle later to get around this limitation.	Err	codemadness.org	70
i 46972 	Err	codemadness.org	70
i 46973 > Unfortunately I found that no recent versions of mainstream Linux distributions would boot off this machine. Debian has dropped support 32-bit PowerPC architectures and the PowerPC variants of Ubuntu 16.04 LTS (vanilla, MATE and Lubuntu) wouldn't even boot the installer! The only distribution I could reliably install on the hardware was Lubuntu 14.04 LTS.	Err	codemadness.org	70
i 46974 	Err	codemadness.org	70
i 46975 > Unfortunately I'm not the biggest fan of the LXDE desktop for regular work and a lot of ported applications were old and broken because it clearly wasn't being maintained by people that use the hardware anymore. Ubuntu 14.04 is also approaching the end of its support life in early 2019, so this limited solution also has a limited shelf-life.	Err	codemadness.org	70
i 46976 	Err	codemadness.org	70
i 46977 + Over to BSD	Err	codemadness.org	70
i 46978 	Err	codemadness.org	70
i 46979 > I discussed this problem with a few people on Mastodon and it was pointed out to me that OSX is built on the Darwin kernel, which happens to be a variant of BSD. NetBSD and OpenBSD fans in particular convinced me that their communities still saw the value of supporting these old pieces of kit and that I should give BSD a try.	Err	codemadness.org	70
i 46980 	Err	codemadness.org	70
i 46981 > So yesterday evening I finally downloaded the "macppc" version of OpenBSD 6.3 with no idea what to expect. I hoped for the best but feared the worst because my last experience with this operating system was trying out PC-BSD in 2008 and discovering with disappointment that it didn't support any of the hardware on my Toshiba laptop.	Err	codemadness.org	70
i 46982 	Err	codemadness.org	70
i 46983 > When I initially booted OpenBSD I was a little surprised to find the login screen provided no visual feedback when I typed in my password, but I can understand the security reasons for doing that. The initial desktop environment that was loaded was very basic. All I could see was a console output window, a terminal and a desktop switcher in the X11 environment the system had loaded.	Err	codemadness.org	70
i 46984 	Err	codemadness.org	70
i 46985 > After a little Googling I found this blog post had some fantastic instructions to follow for the post-installation steps: https://sohcahtoa.org.uk/openbsd.html. I did have to adjust them slightly though because my iBook only has 1.5GB RAM and not every package that page suggests is available on macppc by default. You can see a full list here: https://ftp.openbsd.org/pub/OpenBSD/6.3/packages/powerpc/.	Err	codemadness.org	70
i 46986 	Err	codemadness.org	70
i 46987 + Final thoughts	Err	codemadness.org	70
i 46988 	Err	codemadness.org	70
i 46989 > I was really impressed with the performance of OpenBSD's "macppc" port. It boots much faster than OSX Leopard on the same hardware and unlike Lubuntu 14.04 it doesn't randomly hang for no reason or crash if you launch something demanding like the GIMP.	Err	codemadness.org	70
i 46990 	Err	codemadness.org	70
i 46991 > I was pleased to see that the command line tools I'm used to using on Linux have been ported across too. OpenBSD also had no issues with me performing basic desktop tasks on XFCE like browsing the web with NetSurf, playing audio files with VLC and editing images with the GIMP. Limited gaming is also theoretically possible if you're willing to build them (or an emulator) from source with SDL support.	Err	codemadness.org	70
i 46992 	Err	codemadness.org	70
i 46993 > If I wanted to use this system for heavy duty work then I'd probably be inclined to run key applications like LibreOffice on a Raspberry Pi and then connect my iBook G4 to those using VNC or an SSH connection with X11 forwarding. BSD is UNIX after all, so using my ancient laptop as a dumb terminal should work reasonably well.	Err	codemadness.org	70
i 46994 	Err	codemadness.org	70
i 46995 > In summary I was impressed with OpenBSD and its ability to breathe new life into this old Apple Mac. I'm genuinely excited about the idea of trying BSD with other devices on my network such as an old Asus Eee PC 900 netbook and at least one of the many Raspberry Pi devices I use. Whether I go the whole hog and replace Fedora on my main production laptop though remains to be seen!	Err	codemadness.org	70
i 46996 	Err	codemadness.org	70
i 46997 ***	Err	codemadness.org	70
i 46998 	Err	codemadness.org	70
i 46999 ###[The template user with PAM and login(1)](http://oshogbo.vexillium.org/blog/48)	Err	codemadness.org	70
i 47000 > When you build a new service (or an appliance) you need your users to be able to configure it from the command line. To accomplish this you can create system accounts for all registered users in your service and assign them a special login shell which provides such limited functionality. This can be painful if you have a dynamic user database.	Err	codemadness.org	70
i 47001 > Another challenge is authentication via remote services such as RADIUS. How can we implement  services when we authenticate through it and log into it as a different user? Furthermore, imagine a scenario when RADIUS decides on which account we have the right to access by sending an additional attribute.	Err	codemadness.org	70
i 47002 > To address these two problems we can use a "template" user. Any of the PAM modules can set the value of the PAM_USER item. The value of this item will be used to determine which account we want to login. Only the "template" user must exist on the local password database, but the credential check can be omitted by the module.	Err	codemadness.org	70
i 47003 > This functionality exists in the login(1) used by FreeBSD, HardenedBSD, DragonFlyBSD and illumos. The functionality doesn't exist in the login(1) used in NetBSD, and OpenBSD doesn't support PAM modules at all. In addition what  is also noteworthy is that such functionality was also in the OpenSSH but they decided to remove it and call it a security vulnerability (CVE 2015-6563). I can see how some people may have seen it that way, that’s why I recommend reading this article from an OpenPAM author and a FreeBSD security officer at the time.	Err	codemadness.org	70
i 47004 > Knowing the background let's take a look at an example.	Err	codemadness.org	70
i 47005 	Err	codemadness.org	70
i 47006 ```PAM_EXTERN int	Err	codemadness.org	70
i 47007 pam_sm_authenticate(pam_handle_t *pamh, int flags __unused,	Err	codemadness.org	70
i 47008     int argc __unused, const char *argv[] __unused)	Err	codemadness.org	70
i 47009 {	Err	codemadness.org	70
i 47010         const char *user, *password;	Err	codemadness.org	70
i 47011         int err;	Err	codemadness.org	70
i 47012 	Err	codemadness.org	70
i 47013         err = pam_get_user(pamh, &user, NULL);	Err	codemadness.org	70
i 47014         if (err != PAM_SUCCESS)	Err	codemadness.org	70
i 47015                 return (err);	Err	codemadness.org	70
i 47016 	Err	codemadness.org	70
i 47017         err = pam_get_authtok(pamh, PAM_AUTHTOK, &password, NULL);	Err	codemadness.org	70
i 47018         if (err == PAM_CONV_ERR)	Err	codemadness.org	70
i 47019                 return (err);	Err	codemadness.org	70
i 47020         if (err != PAM_SUCCESS)	Err	codemadness.org	70
i 47021                 return (PAM_AUTH_ERR);	Err	codemadness.org	70
i 47022 	Err	codemadness.org	70
i 47023         err = authenticate(user, password);	Err	codemadness.org	70
i 47024         if (err != PAM_SUCCESS) {	Err	codemadness.org	70
i 47025                 return (err);	Err	codemadness.org	70
i 47026         }	Err	codemadness.org	70
i 47027 	Err	codemadness.org	70
i 47028         return (pam_set_item(pamh, PAM_USER, "template"));	Err	codemadness.org	70
i 47029 }	Err	codemadness.org	70
i 47030 
Err codemadness.org 70 i 47031 Err codemadness.org 70 i 47032
Err codemadness.org 70 i 47033

In the listing above we have an example of a PAM module. The pam_get_user(3) provides a username. The pam_get_authtok(3) shows us a secret given by the user. Both functions allow us to give an optional prompt which should be shown to the user. The authenticate function is our crafted function which authenticates the user. In our first scenario we wanted to keep all users in an external database. If authentication is successful we then switch to a template user which has a shell set up for a script allowing us to configure the machine. In our second scenario the authenticate function authenticates the user in RADIUS.

Err codemadness.org 70 i 47034
Err codemadness.org 70 i 47035 Err codemadness.org 70 i 47036
Err codemadness.org 70 i 47037

Another step is to add our PAM module to the /etc/pam.d/system or to the /etc/pam.d/login configuration:

Err codemadness.org 70 i 47038
Err codemadness.org 70 i 47039 Err codemadness.org 70 i 47040

auth sufficient pam_template.so no_warn allow_local

Err codemadness.org 70 i 47041 Err codemadness.org 70 i 47042
Err codemadness.org 70 i 47043

Unfortunately the description of all these options goes beyond this article - if you would like to know more about it you can find them in the PAM manual. The last thing we need to do is to add our template user to the system which you can do by the adduser(8) command or just simply modifying the /etc/master.passwd file and use pwd_mkdb(8) program:

Err codemadness.org 70 i 47044
Err codemadness.org 70 i 47045 Err codemadness.org 70 i 47046

$ tail -n /etc/master.passwd
Err codemadness.org 70 i 47047 template:*:1000:1000::0:0:User &:/:/usr/local/bin/templatesh
Err codemadness.org 70 i 47048 $ sudo pwd_mkdb /etc/master.passwd

Err codemadness.org 70 i 47049 Err codemadness.org 70 i 47050
Err codemadness.org 70 i 47051

As you can see,the template user can be locked and we still can use it in our PAM module (the * character after login).
Err codemadness.org 70 i 47052 I would like to thank Dag-Erling Smørgrav for pointing this functionality out to me when I was looking for it some time ago.

Err codemadness.org 70 i 47053
Err codemadness.org 70 i 47054 Err codemadness.org 70 i 47055


Err codemadness.org 70 i 47056 Err codemadness.org 70 i 47057

iXsystems
Err codemadness.org 70 i 47058 iXsystems @ VMWorld

Err codemadness.org 70 i 47059 Err codemadness.org 70 i 47060

###ZFS file server

Err codemadness.org 70 i 47061 Err codemadness.org 70 i 47062
    Err codemadness.org 70 i 47063
  • What is the need?
  • Err codemadness.org 70 i 47064
Err codemadness.org 70 i 47065 Err codemadness.org 70 i 47066
Err codemadness.org 70 i 47067

At work, we run a compute cluster that uses an Isilon cluster as primary NAS storage. Excluding snapshots, we have about 200TB of research data, some of them in compressed formats, and others not. We needed an offsite backup file server that would constantly mirror our primary NAS and serve as a quick recovery source in case of a data loss in the the primary NAS. This offsite file server would be passive - will never face the wrath of the primary cluster workload.
Err codemadness.org 70 i 47068 In addition to the role of a passive backup server, this solution would take on some passive report generation workloads as an ideal way of offloading some work from the primary NAS. The passive work is read-only.
Err codemadness.org 70 i 47069 The backup server would keep snapshots in a best effort basis dating back to 10 years. However, this data on this backup server would be archived to tapes periodically.

Err codemadness.org 70 i 47070
Err codemadness.org 70 i 47071 Err codemadness.org 70 i 47072
    Err codemadness.org 70 i 47073
  • Err codemadness.org 70 i 47074

    A simple guidance of priorities:

    Err codemadness.org 70 i 47075
  • Err codemadness.org 70 i 47076
  • Err codemadness.org 70 i 47077

    Data integrity > Cost of solution > Storage capacity > Performance.

    Err codemadness.org 70 i 47078
  • Err codemadness.org 70 i 47079
  • Err codemadness.org 70 i 47080

    Why not enterprise NAS? NetApp FAS or EMC Isilon or the like?

    Err codemadness.org 70 i 47081
  • Err codemadness.org 70 i 47082
Err codemadness.org 70 i 47083 Err codemadness.org 70 i 47084
Err codemadness.org 70 i 47085

We decided that enterprise grade NAS like NetAPP FAS or EMC Isilon are prohibitively expensive and an overkill for our needs.
Err codemadness.org 70 i 47086 An open source & cheaper alternative to enterprise grade filesystem with the level of durability we expect turned up to be ZFS. We’re already spoilt from using snapshots by a clever Copy-on-Write Filesystem(WAFL) by NetApp. ZFS providing snapshots in almost identical way was a big influence in the choice. This is also why we did not consider just a CentOS box with the default XFS filesystem.

Err codemadness.org 70 i 47087
Err codemadness.org 70 i 47088 Err codemadness.org 70 i 47089
    Err codemadness.org 70 i 47090
  • FreeBSD vs Debian for ZFS
  • Err codemadness.org 70 i 47091
Err codemadness.org 70 i 47092 Err codemadness.org 70 i 47093
Err codemadness.org 70 i 47094

This is a backup server, a long-term solution. Stability and reliability are key requirements. ZFS on Linux may be popular at this time, but there is a lot of churn around its development, which means there is a higher probability of bugs like this to occur. We’re not looking for cutting edge features here. Perhaps, Linux would be considered in the future.

Err codemadness.org 70 i 47095
Err codemadness.org 70 i 47096 Err codemadness.org 70 i 47097
    Err codemadness.org 70 i 47098
  • FreeBSD + ZFS
  • Err codemadness.org 70 i 47099
Err codemadness.org 70 i 47100 Err codemadness.org 70 i 47101
Err codemadness.org 70 i 47102

We already utilize FreeBSD and OpenBSD for infrastructure services and we have nothing but praises for the stability that the BSDs have provided us. We’d gladly use FreeBSD and OpenBSD wherever possible.

Err codemadness.org 70 i 47103
Err codemadness.org 70 i 47104 Err codemadness.org 70 i 47105
    Err codemadness.org 70 i 47106
  • Okay, ZFS, but why not FreeNAS?
  • Err codemadness.org 70 i 47107
Err codemadness.org 70 i 47108 Err codemadness.org 70 i 47109
Err codemadness.org 70 i 47110

IMHO, FreeNAS provides a integrated GUI management tool over FreeBSD for a novice user to setup and configure FreeBSD, ZFS, Jails and many other features. But, this user facing abstraction adds an extra layer of complexity to maintain that is just not worth it in simpler use cases like ours. For someone that appreciates the commandline interface, and understands FreeBSD enough to administer it, plain FreeBSD + ZFS is simpler and more robust than FreeNAS.

Err codemadness.org 70 i 47111
Err codemadness.org 70 i 47112 Err codemadness.org 70 i 47113
    Err codemadness.org 70 i 47114
  • Specifications
  • Err codemadness.org 70 i 47115
  • Lenovo SR630 Rackserver
  • Err codemadness.org 70 i 47116
  • 2 X Intel Xeon silver 4110 CPUs
  • Err codemadness.org 70 i 47117
  • 768 GB of DDR4 ECC 2666 MHz RAM
  • Err codemadness.org 70 i 47118
  • 4 port SAS card configured in passthrough mode(JBOD)
  • Err codemadness.org 70 i 47119
  • Intel network card with 10 Gb SFP+ ports
  • Err codemadness.org 70 i 47120
  • 128GB M.2 SSD for use as boot drive
  • Err codemadness.org 70 i 47121
  • 2 X HGST 4U60 JBOD
  • Err codemadness.org 70 i 47122
  • 120(2 X 60) X 10TB SAS disks
  • Err codemadness.org 70 i 47123
Err codemadness.org 70 i 47124 Err codemadness.org 70 i 47125


Err codemadness.org 70 i 47126 Err codemadness.org 70 i 47127

###Reflection on one-year usage of OpenBSD

Err codemadness.org 70 i 47128 Err codemadness.org 70 i 47129
Err codemadness.org 70 i 47130

I have used OpenBSD for more than one year, and it is time to give a summary of the experience:

Err codemadness.org 70 i 47131
Err codemadness.org 70 i 47132 Err codemadness.org 70 i 47133
    Err codemadness.org 70 i 47134
  • (1) What do I get from OpenBSD?
  • Err codemadness.org 70 i 47135
Err codemadness.org 70 i 47136 Err codemadness.org 70 i 47137
Err codemadness.org 70 i 47138

a) A good UNIX tutorial. When I am curious about some UNIXcommands’ implementation, I will refer to OpenBSD source code, and I actually gain something every time. E.g., refresh socket programming skills from nc; know how to process file efficiently from cat.

Err codemadness.org 70 i 47139
Err codemadness.org 70 i 47140 Err codemadness.org 70 i 47141
Err codemadness.org 70 i 47142

b) A better test bed. Although my work focus on developing programs on Linux, I will try to compile and run applications on OpenBSD if it is possible. One reason is OpenBSD usually gives more helpful warnings. E.g., hint like this:

Err codemadness.org 70 i 47143
Err codemadness.org 70 i 47144 Err codemadness.org 70 i 47145

......
Err codemadness.org 70 i 47146 warning: sprintf() is often misused, please use snprintf()
Err codemadness.org 70 i 47147 ......

Err codemadness.org 70 i 47148 Err codemadness.org 70 i 47149
Err codemadness.org 70 i 47150

Or you can refer this post which I wrote before. The other is sometimes program run well on Linux may crash on OpenBSD, and OpenBSD can help you find hidden bugs.

Err codemadness.org 70 i 47151
Err codemadness.org 70 i 47152 Err codemadness.org 70 i 47153
Err codemadness.org 70 i 47154

c) Some handy tools. E.g. I find tcpbench is useful, so I ported it into Linux for my own usage (project is here).

Err codemadness.org 70 i 47155
Err codemadness.org 70 i 47156 Err codemadness.org 70 i 47157
    Err codemadness.org 70 i 47158
  • (2) What I give back to OpenBSD?
  • Err codemadness.org 70 i 47159
Err codemadness.org 70 i 47160 Err codemadness.org 70 i 47161
Err codemadness.org 70 i 47162

a) Patches. Although most of them are trivial modifications, they are still my contributions.

Err codemadness.org 70 i 47163
Err codemadness.org 70 i 47164 Err codemadness.org 70 i 47165
Err codemadness.org 70 i 47166

b) Write blog posts to share experience about using OpenBSD.

Err codemadness.org 70 i 47167
Err codemadness.org 70 i 47168 Err codemadness.org 70 i 47169
Err codemadness.org 70 i 47170

c) Develop programs for OpenBSD/*BSD: lscpu and free.

Err codemadness.org 70 i 47171
Err codemadness.org 70 i 47172 Err codemadness.org 70 i 47173
Err codemadness.org 70 i 47174

d) Porting programs into OpenBSD: E.g., I find google/benchmark is a nifty tool, but lacks OpenBSD support, I submitted PR and it is accepted. So you can use google/benchmark on OpenBSD now.

Err codemadness.org 70 i 47175
Err codemadness.org 70 i 47176 Err codemadness.org 70 i 47177
    Err codemadness.org 70 i 47178
  • Generally speaking, the time invested on OpenBSD is rewarding. If you are still hesitating, why not give a shot?
  • Err codemadness.org 70 i 47179
Err codemadness.org 70 i 47180 Err codemadness.org 70 i 47181


Err codemadness.org 70 i 47182 Err codemadness.org 70 i 47183

##Beastie Bits

Err codemadness.org 70 i 47184 Err codemadness.org 70 i 47185 Err codemadness.org 70 i 47195 Err codemadness.org 70 i 47196


Err codemadness.org 70 i 47197 Err codemadness.org 70 i 47198

Tarsnap

Err codemadness.org 70 i 47199 Err codemadness.org 70 i 47200

##Feedback/Questions

Err codemadness.org 70 i 47201 Err codemadness.org 70 i 47202
    Err codemadness.org 70 i 47203
  • Anian_Z - Question
  • Err codemadness.org 70 i 47204
  • Robert - Pool question
  • Err codemadness.org 70 i 47205
  • Lain - Congratulations
  • Err codemadness.org 70 i 47206
  • Thomas - L2arc
  • Err codemadness.org 70 i 47207
Err codemadness.org 70 i 47208 Err codemadness.org 70 i 47209


Err codemadness.org 70 i 47210 Err codemadness.org 70 i 47211
    Err codemadness.org 70 i 47212
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 47213
Err codemadness.org 70 i 47214 Err codemadness.org 70 i 47215


]]> Err codemadness.org 70 i 47216
Err codemadness.org 70 i 47217 https://fireside.fm/player/v2/FYhhasNR+dhqeLgyb Err codemadness.org 70 i 47218 Err codemadness.org 70 i 47219 ]]> Err codemadness.org 70 i 47220 Err codemadness.org 70 i 47221
Err codemadness.org 70 i 47222 Err codemadness.org 70 i 47223 Episode 258: OS Foundations | BSD Now 258 Err codemadness.org 70 i 47224 https://www.bsdnow.tv/258 Err codemadness.org 70 i 47225 http://feed.jupiter.zone/bsdnow#entry-2390 Err codemadness.org 70 i 47226 Tue, 07 Aug 2018 22:00:00 -0700 Err codemadness.org 70 i 47227 Allan Jude Err codemadness.org 70 i 47228 Err codemadness.org 70 i 47229 full Err codemadness.org 70 i 47230 Allan Jude Err codemadness.org 70 i 47231 FreeBSD Foundation July Newsletter, a bunch of BSDCan trip reports, HardenedBSD Foundation status, FreeBSD and OSPFd, ZFS disk structure overview, and more Spectre mitigations in OpenBSD. Err codemadness.org 70 i 47232 1:27:52 Err codemadness.org 70 i 47233 no Err codemadness.org 70 i 47234 Err codemadness.org 70 i 47235 FreeBSD Foundation July Newsletter, a bunch of BSDCan trip reports, HardenedBSD Foundation status, FreeBSD and OSPFd, ZFS disk structure overview, and more Spectre mitigations in OpenBSD. Err codemadness.org 70 i 47236 <p>##Headlines<br> Err codemadness.org 70 i 47237 <a href="https://www.freebsdfoundation.org/news-and-events/newsletter/freebsd-foundation-update-july-2018/">FreeBSD Foundation Update, July 2018</a></p> Err codemadness.org 70 i 47238 <ul> Err codemadness.org 70 i 47239 <li>MESSAGE FROM THE EXECUTIVE DIRECTOR</li> Err codemadness.org 70 i 47240 </ul> Err codemadness.org 70 i 47241 <blockquote> Err codemadness.org 70 i 47242 <p>We’re in the middle of summer here, in Boulder, CO. While the days are typically hot, they can also be quite unpredictable. Thanks to the Rocky Mountains, waking up to 50-degree (~10 C) foggy weather is not surprising. In spite of the unpredictable weather, many of us took some vacation this month. Whether it was extending the Fourth of July celebration, spending time with family, or relaxing and enjoying the summer weather, we appreciated our time off, while still managing to accomplish a lot!<br> Err codemadness.org 70 i 47243 In this newsletter, Glen Barber enlightens us about the upcoming 12.0 release. I gave a recap of OSCON, that Ed Maste and I attended, and Mark Johnston explains the work on his improved microcode loading project, that we are funding. Finally, Anne Dickison gives us a rundown on upcoming events and information on submitting a talk for MeetBSD.<br> Err codemadness.org 70 i 47244 Your support helps us continue this work. Please consider making a donation today. We can’t do it without you. Happy reading!!</p> Err codemadness.org 70 i 47245 </blockquote> Err codemadness.org 70 i 47246 <ul> Err codemadness.org 70 i 47247 <li>June 2018 Development Projects Update</li> Err codemadness.org 70 i 47248 <li>Fundraising Update: Supporting the Project</li> Err codemadness.org 70 i 47249 <li>July 2018 Release Engineering Update</li> Err codemadness.org 70 i 47250 <li>OSCON 2018 Recap</li> Err codemadness.org 70 i 47251 <li>Submit Your Work: MeetBSD 2018</li> Err codemadness.org 70 i 47252 <li>FreeBSD Discount for 2018 SNIA Developer Conference</li> Err codemadness.org 70 i 47253 <li>EuroBSDcon 2018 Travel Grant Application Deadline: August 2</li> Err codemadness.org 70 i 47254 </ul> Err codemadness.org 70 i 47255 <hr> Err codemadness.org 70 i 47256 <p><strong>iXsystems</strong></p> Err codemadness.org 70 i 47257 <p>###BSDCan Trip Reports</p> Err codemadness.org 70 i 47258 <ul> Err codemadness.org 70 i 47259 <li><a href="https://www.freebsdfoundation.org/blog/bsdcan-2018-trip-report-constantin-stan/">BSDCan 2018 Trip Report: Constantin Stan</a></li> Err codemadness.org 70 i 47260 <li><a href="https://www.freebsdfoundation.org/blog/bsdcan-2018-trip-report-danilo-g-baio/">BSDCan 2018 Trip Report: Danilo G. Baio</a></li> Err codemadness.org 70 i 47261 <li><a href="https://www.freebsdfoundation.org/blog/bsdcan-2018-trip-report-rodrigo-osorio/">BSDCan 2018 Trip Report: Rodrigo Osorio</a></li> Err codemadness.org 70 i 47262 <li><a href="https://www.freebsdfoundation.org/blog/bsdcan-2018-trip-report-dhananjay-balan/">BSDCan 2018 Trip Report: Dhananjay Balan</a></li> Err codemadness.org 70 i 47263 <li><a href="https://www.freebsdfoundation.org/blog/bsdcan-2018-trip-report-kyle-evans/">BSDCan 2018 Trip Report: Kyle Evans</a></li> Err codemadness.org 70 i 47264 </ul> Err codemadness.org 70 i 47265 <hr> Err codemadness.org 70 i 47266 <p>##News Roundup<br> Err codemadness.org 70 i 47267 <a href="https://blog.haraschak.com/freebsd-and-ospfd/">FreeBSD and OSPFd</a></p> Err codemadness.org 70 i 47268 <blockquote> Err codemadness.org 70 i 47269 <p>With FreeBSD jails deployed around the world, static routing was getting a bit out of hand. Plus, when I needed to move a jail from one data center to another, I would have to update routing tables across multiple sites. Not ideal. Enter dynamic routing…</p> Err codemadness.org 70 i 47270 </blockquote> Err codemadness.org 70 i 47271 <blockquote> Err codemadness.org 70 i 47272 <p>OSPF (open shortest path first) is an internal dynamic routing protocol that provides the autonomy that I needed and it’s fairly easy to setup. This article does not cover configuration of VPN links, ZFS, or Freebsd jails, however it’s recommended that you use seperate ZFS datasets per jail so that migration between hosts can be done with zfs send &amp; receive.</p> Err codemadness.org 70 i 47273 </blockquote> Err codemadness.org 70 i 47274 <blockquote> Err codemadness.org 70 i 47275 <p>In this scenario, we have five FreeBSD servers in two different data centers. Each physical server runs anywhere between three to ten jails. When jails are deployed, they are assigned a /32 IP on lo2. From here, pf handles inbound port forwarding and outbound NAT. Links between each server are provided by OpenVPN TAP interfaces. (I used TAP to pass layer 2 traffic. I seem to remember that I needed TAP interfaces due to needing GRE tunnels on top of TUN interfaces to get OSPF to communicate. I’ve heard TAP is slower than TUN so I may revisit this.)</p> Err codemadness.org 70 i 47276 </blockquote> Err codemadness.org 70 i 47277 <blockquote> Err codemadness.org 70 i 47278 <p>In this example, we will use 172.16.2.0/24 as the range for OpenVPN P2P links and 172.16.3.0/24 as the range of IPs available for assignment to each jail. Previously, when deploying a jail, I assigned IPs based on the following groups:</p> Err codemadness.org 70 i 47279 </blockquote> Err codemadness.org 70 i 47280 <p><code>Server 1: 172.16.3.0/28</code><br> Err codemadness.org 70 i 47281 <code>Server 2: 172.16.3.16/28</code><br> Err codemadness.org 70 i 47282 <code>Server 3: 172.16.3.32/28</code><br> Err codemadness.org 70 i 47283 <code>Server 4: 172.16.3.48/28</code><br> Err codemadness.org 70 i 47284 <code>Server 5: 172.16.3.64/28</code></p> Err codemadness.org 70 i 47285 <blockquote> Err codemadness.org 70 i 47286 <p>When statically routing, this made routing tables a bit smaller and easier to manage. However, when I needed to migrate a jail to a new host, I had to add a new /32 to all routing tables. Now, with OSPF, this is no longer an issue, nor is it required.</p> Err codemadness.org 70 i 47287 </blockquote> Err codemadness.org 70 i 47288 <ul> Err codemadness.org 70 i 47289 <li> Err codemadness.org 70 i 47290 <p>To get started, first we install the Quagga package.</p> Err codemadness.org 70 i 47291 </li> Err codemadness.org 70 i 47292 <li> Err codemadness.org 70 i 47293 <p>The two configuration files needed to get OSPFv2 running are /usr/local/etc/quagga/zebra.conf and /usr/local/etc/quagga/ospfd.conf.</p> Err codemadness.org 70 i 47294 </li> Err codemadness.org 70 i 47295 <li> Err codemadness.org 70 i 47296 <p>Starting with zebra.conf, we’ll define the hostname and a management password.</p> Err codemadness.org 70 i 47297 </li> Err codemadness.org 70 i 47298 <li> Err codemadness.org 70 i 47299 <p>Second, we will populate the ospfd.conf file.</p> Err codemadness.org 70 i 47300 </li> Err codemadness.org 70 i 47301 <li> Err codemadness.org 70 i 47302 <p>To break this down:</p> Err codemadness.org 70 i 47303 </li> Err codemadness.org 70 i 47304 <li> Err codemadness.org 70 i 47305 <p>service advanced-vty allows you to skip the en or enable command. Since I’m the only one who uses this service, it’s one less command to type.</p> Err codemadness.org 70 i 47306 </li> Err codemadness.org 70 i 47307 <li> Err codemadness.org 70 i 47308 <p>ip ospf authentication message-digest and ip ospf message-diget-key… ignores non-authenticated OSPF communication. This is useful when communicating over the WAN and to prevent a replay attack. Since I’m using a VPN to communicate, I could exclude these.</p> Err codemadness.org 70 i 47309 </li> Err codemadness.org 70 i 47310 <li> Err codemadness.org 70 i 47311 <p>passive-interface default turns off the active communication of OSPF messages on all interfaces except for the interfaces listed as no passive-interface [interface name]. Since my ospf communication needs to leverage the VPNs, this prevents the servers from trying to send ospf data out the WAN interface (a firewall would work too).</p> Err codemadness.org 70 i 47312 </li> Err codemadness.org 70 i 47313 <li> Err codemadness.org 70 i 47314 <p>network 172.16.2.0/23 area 0.0.0.0 lists a supernet of both 172.16.2.0/24 and 172.16.3.0/24. This ensures routes for the jails are advertised along with the P2P links used by OpenVPN. The OpenVPN links are not required but can provide another IP to access your server if one of the links goes down. (See the suggested tasks below).</p> Err codemadness.org 70 i 47315 </li> Err codemadness.org 70 i 47316 <li> Err codemadness.org 70 i 47317 <p>At this point, we can enable the services in rc.conf.local and start them.</p> Err codemadness.org 70 i 47318 </li> Err codemadness.org 70 i 47319 <li> Err codemadness.org 70 i 47320 <p>We bind the management interface to 127.0.0.1 so that it’s only accessable to local telnet sessions. If you want to access this service remotely, you can bind to a remotely accessable IP. Remember telnet is not secure. If you need remote access, use a VPN.</p> Err codemadness.org 70 i 47321 </li> Err codemadness.org 70 i 47322 <li> Err codemadness.org 70 i 47323 <p>To manage the services, you can telnet to your host’s localhost address.</p> Err codemadness.org 70 i 47324 </li> Err codemadness.org 70 i 47325 <li> Err codemadness.org 70 i 47326 <p>Use 2604 for the ospf service.</p> Err codemadness.org 70 i 47327 </li> Err codemadness.org 70 i 47328 <li> Err codemadness.org 70 i 47329 <p>Remember, this is accessible by non-root users so set a good password.</p> Err codemadness.org 70 i 47330 </li> Err codemadness.org 70 i 47331 </ul> Err codemadness.org 70 i 47332 <hr> Err codemadness.org 70 i 47333 <p>###<a href="https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSBroadDiskStructure">A broad overview of how ZFS is structured on disk</a></p> Err codemadness.org 70 i 47334 <blockquote> Err codemadness.org 70 i 47335 <p>When I wrote yesterday’s entry, it became clear that I didn’t understand as much about how ZFS is structured on disk (and that this matters, since I thought that ZFS copy on write updates updated a lot more than they do). So today I want to write down my new broad understanding of how this works. (All of this can be dug out of the old, draft ZFS on-disk format specification, but that spec is written in a very detailed way and things aren’t always immediately clear from it.)</p> Err codemadness.org 70 i 47336 </blockquote> Err codemadness.org 70 i 47337 <blockquote> Err codemadness.org 70 i 47338 <p>Almost everything in ZFS is in DMU object. All objects are defined by a dnode, and object dnodes are almost always grouped together in an object set. Object sets are themselves DMU objects; they store dnodes as basically a giant array in a ‘file’, which uses data blocks and indirect blocks and so on, just like anything else. Within a single object set, dnodes have an object number, which is the index of their position in the object set’s array of dnodes. (Because an object number is just the index of the object’s dnode in its object set’s array of dnodes, object numbers are basically always going to be duplicated between object sets (and they’re always relative to an object set). For instance, pretty much every object set is going to have an object number ten, although not all object sets may have enough objects that they have an object number ten thousand. One corollary of this is that if you ask zdb to tell you about a given object number, you have to tell zdb what object set you’re talking about. Usually you do this by telling zdb which ZFS filesystem or dataset you mean.)</p> Err codemadness.org 70 i 47339 </blockquote> Err codemadness.org 70 i 47340 <blockquote> Err codemadness.org 70 i 47341 <p>Each ZFS filesystem has its own object set for objects (and thus dnodes) used in the filesystem. As I discovered yesterday, every ZFS filesystem has a directory hierarchy and it may go many levels deep, but all of this directory hierarchy refers to directories and files using their object number.</p> Err codemadness.org 70 i 47342 </blockquote> Err codemadness.org 70 i 47343 <blockquote> Err codemadness.org 70 i 47344 <p>ZFS organizes and keeps track of filesystems, clones, and snapshots through the DSL (Dataset and Snapshot Layer). The DSL has all sorts of things; DSL directories, DSL datasets, and so on, all of which are objects and many of which refer to object sets (for example, every ZFS filesystem must refer to its current object set somehow). All of these DSL objects are themselves stored as dnodes in another object set, the Meta Object Set, which the uberblock points to. To my surprise, object sets are not stored in the MOS (and as a result do not have ‘object numbers’). Object sets are always referred to directly, without indirection, using a block pointer to the object set’s dnode. (I think object sets are referred to directly so that snapshots can freeze their object set very simply.)</p> Err codemadness.org 70 i 47345 </blockquote> Err codemadness.org 70 i 47346 <blockquote> Err codemadness.org 70 i 47347 <p>The DSL directories and datasets for your pool’s set of filesystems form a tree themselves (each filesystem has a DSL directory and at least one DSL dataset). However, just like in ZFS filesystems, all of the objects in this second tree refer to each other indirectly, by their MOS object number. Just as with files in ZFS filesystems, this level of indirection limits the amount of copy on write updates that ZFS had to do when something changes.</p> Err codemadness.org 70 i 47348 </blockquote> Err codemadness.org 70 i 47349 <blockquote> Err codemadness.org 70 i 47350 <p>PS: If you want to examine MOS objects with zdb, I think you do it with something like ‘zdb -vvv -d ssddata 1’, which will get you object number 1 of the MOS, which is the MOS object directory. If you want to ask zdb about an object in the pool’s root filesystem, use ‘zdb -vvv -d ssddata/ 1’. You can tell which one you’re getting depending on what zdb prints out. If it says ‘Dataset mos [META]’ you’re looking at objects from the MOS; if it says ‘Dataset ssddata [ZPL]’, you’re looking at the pool’s root filesystem (where object number 1 is the ZFS master node).</p> Err codemadness.org 70 i 47351 </blockquote> Err codemadness.org 70 i 47352 <blockquote> Err codemadness.org 70 i 47353 <p>PPS: I was going to write up what changed on a filesystem write, but then I realized that I didn’t know how blocks being allocated and freed are reflected in pool structures. So I’ll just say that I think that ignoring free space management, only four DMU objects get updated; the file itself, the filesystem’s object set, the filesystem’s DSL dataset object, and the MOS.</p> Err codemadness.org 70 i 47354 </blockquote> Err codemadness.org 70 i 47355 <ul> Err codemadness.org 70 i 47356 <li>(As usual, doing the research to write this up taught me things that I didn’t know about ZFS.)</li> Err codemadness.org 70 i 47357 </ul> Err codemadness.org 70 i 47358 <hr> Err codemadness.org 70 i 47359 <p><strong>Digital Ocean</strong></p> Err codemadness.org 70 i 47360 <p>###<a href="https://hardenedbsd.org/article/shawn-webb/2018-07-11/mid-july-hardenedbsd-foundation-status">HardenedBSD Foundation Status</a></p> Err codemadness.org 70 i 47361 <blockquote> Err codemadness.org 70 i 47362 <p>On 09 July 2018, the HardenedBSD Foundation Board of Directors held the kick-off meeting to start organizing the Foundation. The following people attended the kick-off meeting:</p> Err codemadness.org 70 i 47363 </blockquote> Err codemadness.org 70 i 47364 <ul> Err codemadness.org 70 i 47365 <li> Err codemadness.org 70 i 47366 <ol> Err codemadness.org 70 i 47367 <li>Shawn Webb (in person)</li> Err codemadness.org 70 i 47368 </ol> Err codemadness.org 70 i 47369 </li> Err codemadness.org 70 i 47370 <li> Err codemadness.org 70 i 47371 <ol start="2"> Err codemadness.org 70 i 47372 <li>George Saylor (in person)</li> Err codemadness.org 70 i 47373 </ol> Err codemadness.org 70 i 47374 </li> Err codemadness.org 70 i 47375 <li> Err codemadness.org 70 i 47376 <ol start="3"> Err codemadness.org 70 i 47377 <li>Ben Welch (in person)</li> Err codemadness.org 70 i 47378 </ol> Err codemadness.org 70 i 47379 </li> Err codemadness.org 70 i 47380 <li> Err codemadness.org 70 i 47381 <ol start="4"> Err codemadness.org 70 i 47382 <li>Virginia Suydan (in person)</li> Err codemadness.org 70 i 47383 </ol> Err codemadness.org 70 i 47384 </li> Err codemadness.org 70 i 47385 <li> Err codemadness.org 70 i 47386 <ol start="5"> Err codemadness.org 70 i 47387 <li>Ben La Monica (phone)</li> Err codemadness.org 70 i 47388 </ol> Err codemadness.org 70 i 47389 </li> Err codemadness.org 70 i 47390 <li> Err codemadness.org 70 i 47391 <ol start="6"> Err codemadness.org 70 i 47392 <li>Dean Freeman (phone)</li> Err codemadness.org 70 i 47393 </ol> Err codemadness.org 70 i 47394 </li> Err codemadness.org 70 i 47395 <li> Err codemadness.org 70 i 47396 <ol start="7"> Err codemadness.org 70 i 47397 <li>Christian Severt (phone)</li> Err codemadness.org 70 i 47398 </ol> Err codemadness.org 70 i 47399 </li> Err codemadness.org 70 i 47400 </ul> Err codemadness.org 70 i 47401 <blockquote> Err codemadness.org 70 i 47402 <p>We discussed the very first steps that need to be taken to organize the HardenedBSD Foundation as a 501©(3) not-for-profit organization in the US. We determined we could file a 1023EZ instead of the full-blown 1023. This will help speed the process up drastically.</p> Err codemadness.org 70 i 47403 </blockquote> Err codemadness.org 70 i 47404 <ul> Err codemadness.org 70 i 47405 <li>The steps are laid out as follows:</li> Err codemadness.org 70 i 47406 <li>Register a Post Office Box (PO Box) (completed on 10 Jul 2018).</li> Err codemadness.org 70 i 47407 <li>Register The HardenedBSD Foundation as a tax-exempt nonstock corporation in the state of Maryland (started on 10 Jul 2018, submitted on 18 Jul 2018, granted 20 Jul 2018).</li> Err codemadness.org 70 i 47408 <li>Obtain a federal tax ID (obtained 20 Jul 2018).</li> Err codemadness.org 70 i 47409 <li>Close the current bank account and create a new one using the federal tax ID (completed on 20 Jul 2018).</li> Err codemadness.org 70 i 47410 <li>File the 1023EZ paperwork with the federal government (started on 20 Jul 2018).</li> Err codemadness.org 70 i 47411 <li>Hire an attorney to help draft the organization bylaws.</li> Err codemadness.org 70 i 47412 <li>Each of the steps must be done serially and in order.</li> Err codemadness.org 70 i 47413 </ul> Err codemadness.org 70 i 47414 <blockquote> Err codemadness.org 70 i 47415 <p>We added Christian Severt, who is on Emerald Onion’s Board of Directors, to the HardenedBSD Foundation Board of Directors as an advisor. He was foundational in getting Emerald Onion their 501©(3) tax-exempt, not-for-profit status and has really good insight. Additionally, he’s going to help HardenedBSD coordinate hosting services, figuring out the best deals for us.</p> Err codemadness.org 70 i 47416 </blockquote> Err codemadness.org 70 i 47417 <blockquote> Err codemadness.org 70 i 47418 <p>We promoted George Saylor to Vice President and changed Shawn Webb’s title to President and Director. This is to help resolve potential concerns both the state and federal agencies might have with an organization having only a single President role.</p> Err codemadness.org 70 i 47419 </blockquote> Err codemadness.org 70 i 47420 <blockquote> Err codemadness.org 70 i 47421 <p>We hope to be granted our 501©(3) status before the end of the year, though that may be subject to change. We are excited for the formation of the HardenedBSD Foundation, which will open up new opportunities not otherwise available to HardenedBSD.</p> Err codemadness.org 70 i 47422 </blockquote> Err codemadness.org 70 i 47423 <hr> Err codemadness.org 70 i 47424 <p>###<a href="https://undeadly.org/cgi?action=article;sid=20180724072257">More mitigations against speculative execution vulnerabilities</a></p> Err codemadness.org 70 i 47425 <blockquote> Err codemadness.org 70 i 47426 <p>Philip Guenther (guenther@) and Bryan Steele (brynet@) have added more mitigations against speculative execution CPU vulnerabilities on the amd64 platform.</p> Err codemadness.org 70 i 47427 </blockquote> Err codemadness.org 70 i 47428 <pre><code class="language-For"> Err codemadness.org 70 i 47429 CVSROOT: /cvs Err codemadness.org 70 i 47430 Module name: src Err codemadness.org 70 i 47431 Changes by: guenther@cvs.openbsd.org 2018/07/23 11:54:04 Err codemadness.org 70 i 47432 Modified files: Err codemadness.org 70 i 47433 sys/arch/amd64/amd64: locore.S Err codemadness.org 70 i 47434 sys/arch/amd64/include: asm.h cpufunc.h frameasm.h Err codemadness.org 70 i 47435 Log message: Err codemadness.org 70 i 47436 Do &quot;Return stack refilling&quot;, based on the &quot;Return stack underflow&quot; discussion Err codemadness.org 70 i 47437 and its associated appendix at https://support.google.com/faqs/answer/7625886 Err codemadness.org 70 i 47438 This should address at least some cases of &quot;SpectreRSB&quot; and earlier Err codemadness.org 70 i 47439 Spectre variants; more commits to follow. Err codemadness.org 70 i 47440 The refilling is done in the enter-kernel-from-userspace and Err codemadness.org 70 i 47441 return-to-userspace-from-kernel paths, making sure to do it before Err codemadness.org 70 i 47442 unblocking interrupts so that a successive interrupt can't get the Err codemadness.org 70 i 47443 CPU to C code without doing this refill. Per the link above, it Err codemadness.org 70 i 47444 also does it immediately after mwait, apparently in case the low-power Err codemadness.org 70 i 47445 CPU states of idle-via-mwait flush the RSB. Err codemadness.org 70 i 47446 ok mlarkin@ deraadt@``` Err codemadness.org 70 i 47447 and: Err codemadness.org 70 i 47448 ```CVSROOT: /cvs Err codemadness.org 70 i 47449 Module name: src Err codemadness.org 70 i 47450 Changes by: guenther@cvs.openbsd.org 2018/07/23 20:42:25 Err codemadness.org 70 i 47451 Modified files: Err codemadness.org 70 i 47452 sys/arch/amd64/amd64: locore.S vector.S vmm_support.S Err codemadness.org 70 i 47453 sys/arch/amd64/include: asm.h cpufunc.h Err codemadness.org 70 i 47454 Log message: Err codemadness.org 70 i 47455 Also do RSB refilling when context switching, after vmexits, and Err codemadness.org 70 i 47456 when vmlaunch or vmresume fails. Err codemadness.org 70 i 47457 Follow the lead of clang and the intel recommendation and do an lfence Err codemadness.org 70 i 47458 after the pause in the speculation-stop path for retpoline, RSB refill, Err codemadness.org 70 i 47459 and meltover ASM bits. Err codemadness.org 70 i 47460 ok kettenis@ deraadt@``` Err codemadness.org 70 i 47461 &quot;Mitigation G-2&quot; for AMD processors: Err codemadness.org 70 i 47462 ```CVSROOT: /cvs Err codemadness.org 70 i 47463 Module name: src Err codemadness.org 70 i 47464 Changes by: brynet@cvs.openbsd.org 2018/07/23 17:25:03 Err codemadness.org 70 i 47465 Modified files: Err codemadness.org 70 i 47466 sys/arch/amd64/amd64: identcpu.c Err codemadness.org 70 i 47467 sys/arch/amd64/include: specialreg.h Err codemadness.org 70 i 47468 Log message: Err codemadness.org 70 i 47469 Add &quot;Mitigation G-2&quot; per AMD's Whitepaper &quot;Software Techniques for Err codemadness.org 70 i 47470 Managing Speculation on AMD Processors&quot; Err codemadness.org 70 i 47471 By setting MSR C001_1029[1]=1, LFENCE becomes a dispatch serializing Err codemadness.org 70 i 47472 instruction. Err codemadness.org 70 i 47473 Tested on AMD FX-4100 &quot;Bulldozer&quot;, and Linux guest in SVM vmd(8) Err codemadness.org 70 i 47474 ok deraadt@ mlarkin@``` Err codemadness.org 70 i 47475 Beastie Bits Err codemadness.org 70 i 47476 HardenedBSD will stop supporting 10-STABLE on 10 August 2018 (https://groups.google.com/a/hardenedbsd.org/forum/#!topic/users/xvU0g-g1l5U) Err codemadness.org 70 i 47477 GSoC 2018 Reports: Integrate libFuzzer with the Basesystem, Part 2 (https://blog.netbsd.org/tnf/entry/gsoc_2018_reports_integrate_libfuzzer1) Err codemadness.org 70 i 47478 ZFS Boot Environments at PBUG (https://vermaden.wordpress.com/2018/07/30/zfs-boot-environments-at-pbug/) Err codemadness.org 70 i 47479 Second Editions versus the Publishing Business (https://blather.michaelwlucas.com/archives/3229) Err codemadness.org 70 i 47480 Theo de Raadt on &quot;unveil(2) usage in base&quot; (https://undeadly.org/cgi?action=article;sid=20180728063716) Err codemadness.org 70 i 47481 rtadvd(8) has been replaced by rad(8) (https://undeadly.org/cgi?action=article;sid=20180724072205) Err codemadness.org 70 i 47482 BSD Users Stockholm Meetup #3 (https://www.meetup.com/BSD-Users-Stockholm/events/253447019/) Err codemadness.org 70 i 47483 Changes to NetBSD release support policy (https://blog.netbsd.org/tnf/entry/changes_to_netbsd_release_support) Err codemadness.org 70 i 47484 The future of HAMMER1 (http://lists.dragonflybsd.org/pipermail/users/2018-July/357832.html) Err codemadness.org 70 i 47485 *** Err codemadness.org 70 i 47486 Tarsnap Err codemadness.org 70 i 47487 Feedback/Questions Err codemadness.org 70 i 47488 Rodriguez - A Question (http://dpaste.com/0Y1B75Q#wrap) Err codemadness.org 70 i 47489 Shane - About ZFS Mostly (http://dpaste.com/32YGNBY#wrap) Err codemadness.org 70 i 47490 Leif - ZFS less than 8gb (http://dpaste.com/2GY6HHC#wrap) Err codemadness.org 70 i 47491 Wayne - ZFS vs EMC (http://dpaste.com/17PSCXC#wrap) Err codemadness.org 70 i 47492 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 47493 </code></pre> Err codemadness.org 70 i 47494 Err codemadness.org 70 i 47495 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, spectre, ospfd, zfs Err codemadness.org 70 i 47496 Err codemadness.org 70 i 47497 FreeBSD Foundation July Newsletter, a bunch of BSDCan trip reports, HardenedBSD Foundation status, FreeBSD and OSPFd, ZFS disk structure overview, and more Spectre mitigations in OpenBSD.

Err codemadness.org 70 i 47498 Err codemadness.org 70 i 47499

##Headlines
Err codemadness.org 70 i 47500 ###FreeBSD Foundation Update, July 2018

Err codemadness.org 70 i 47501 Err codemadness.org 70 i 47502
    Err codemadness.org 70 i 47503
  • MESSAGE FROM THE EXECUTIVE DIRECTOR
  • Err codemadness.org 70 i 47504
Err codemadness.org 70 i 47505 Err codemadness.org 70 i 47506
Err codemadness.org 70 i 47507

We’re in the middle of summer here, in Boulder, CO. While the days are typically hot, they can also be quite unpredictable. Thanks to the Rocky Mountains, waking up to 50-degree (~10 C) foggy weather is not surprising. In spite of the unpredictable weather, many of us took some vacation this month. Whether it was extending the Fourth of July celebration, spending time with family, or relaxing and enjoying the summer weather, we appreciated our time off, while still managing to accomplish a lot!
Err codemadness.org 70 i 47508 In this newsletter, Glen Barber enlightens us about the upcoming 12.0 release. I gave a recap of OSCON, that Ed Maste and I attended, and Mark Johnston explains the work on his improved microcode loading project, that we are funding. Finally, Anne Dickison gives us a rundown on upcoming events and information on submitting a talk for MeetBSD.
Err codemadness.org 70 i 47509 Your support helps us continue this work. Please consider making a donation today. We can’t do it without you. Happy reading!!

Err codemadness.org 70 i 47510
Err codemadness.org 70 i 47511 Err codemadness.org 70 i 47512
    Err codemadness.org 70 i 47513
  • June 2018 Development Projects Update
  • Err codemadness.org 70 i 47514
  • Fundraising Update: Supporting the Project
  • Err codemadness.org 70 i 47515
  • July 2018 Release Engineering Update
  • Err codemadness.org 70 i 47516
  • OSCON 2018 Recap
  • Err codemadness.org 70 i 47517
  • Submit Your Work: MeetBSD 2018
  • Err codemadness.org 70 i 47518
  • FreeBSD Discount for 2018 SNIA Developer Conference
  • Err codemadness.org 70 i 47519
  • EuroBSDcon 2018 Travel Grant Application Deadline: August 2
  • Err codemadness.org 70 i 47520
Err codemadness.org 70 i 47521 Err codemadness.org 70 i 47522


Err codemadness.org 70 i 47523 Err codemadness.org 70 i 47524

iXsystems

Err codemadness.org 70 i 47525 Err codemadness.org 70 i 47526

###BSDCan Trip Reports

Err codemadness.org 70 i 47527 Err codemadness.org 70 i 47528 Err codemadness.org 70 i 47535 Err codemadness.org 70 i 47536


Err codemadness.org 70 i 47537 Err codemadness.org 70 i 47538

##News Roundup
Err codemadness.org 70 i 47539 ###FreeBSD and OSPFd

Err codemadness.org 70 i 47540 Err codemadness.org 70 i 47541
Err codemadness.org 70 i 47542

With FreeBSD jails deployed around the world, static routing was getting a bit out of hand. Plus, when I needed to move a jail from one data center to another, I would have to update routing tables across multiple sites. Not ideal. Enter dynamic routing…

Err codemadness.org 70 i 47543
Err codemadness.org 70 i 47544 Err codemadness.org 70 i 47545
Err codemadness.org 70 i 47546

OSPF (open shortest path first) is an internal dynamic routing protocol that provides the autonomy that I needed and it’s fairly easy to setup. This article does not cover configuration of VPN links, ZFS, or Freebsd jails, however it’s recommended that you use seperate ZFS datasets per jail so that migration between hosts can be done with zfs send & receive.

Err codemadness.org 70 i 47547
Err codemadness.org 70 i 47548 Err codemadness.org 70 i 47549
Err codemadness.org 70 i 47550

In this scenario, we have five FreeBSD servers in two different data centers. Each physical server runs anywhere between three to ten jails. When jails are deployed, they are assigned a /32 IP on lo2. From here, pf handles inbound port forwarding and outbound NAT. Links between each server are provided by OpenVPN TAP interfaces. (I used TAP to pass layer 2 traffic. I seem to remember that I needed TAP interfaces due to needing GRE tunnels on top of TUN interfaces to get OSPF to communicate. I’ve heard TAP is slower than TUN so I may revisit this.)

Err codemadness.org 70 i 47551
Err codemadness.org 70 i 47552 Err codemadness.org 70 i 47553
Err codemadness.org 70 i 47554

In this example, we will use 172.16.2.0/24 as the range for OpenVPN P2P links and 172.16.3.0/24 as the range of IPs available for assignment to each jail. Previously, when deploying a jail, I assigned IPs based on the following groups:

Err codemadness.org 70 i 47555
Err codemadness.org 70 i 47556 Err codemadness.org 70 i 47557

Server 1: 172.16.3.0/28
Err codemadness.org 70 i 47558 Server 2: 172.16.3.16/28
Err codemadness.org 70 i 47559 Server 3: 172.16.3.32/28
Err codemadness.org 70 i 47560 Server 4: 172.16.3.48/28
Err codemadness.org 70 i 47561 Server 5: 172.16.3.64/28

Err codemadness.org 70 i 47562 Err codemadness.org 70 i 47563
Err codemadness.org 70 i 47564

When statically routing, this made routing tables a bit smaller and easier to manage. However, when I needed to migrate a jail to a new host, I had to add a new /32 to all routing tables. Now, with OSPF, this is no longer an issue, nor is it required.

Err codemadness.org 70 i 47565
Err codemadness.org 70 i 47566 Err codemadness.org 70 i 47567
    Err codemadness.org 70 i 47568
  • Err codemadness.org 70 i 47569

    To get started, first we install the Quagga package.

    Err codemadness.org 70 i 47570
  • Err codemadness.org 70 i 47571
  • Err codemadness.org 70 i 47572

    The two configuration files needed to get OSPFv2 running are /usr/local/etc/quagga/zebra.conf and /usr/local/etc/quagga/ospfd.conf.

    Err codemadness.org 70 i 47573
  • Err codemadness.org 70 i 47574
  • Err codemadness.org 70 i 47575

    Starting with zebra.conf, we’ll define the hostname and a management password.

    Err codemadness.org 70 i 47576
  • Err codemadness.org 70 i 47577
  • Err codemadness.org 70 i 47578

    Second, we will populate the ospfd.conf file.

    Err codemadness.org 70 i 47579
  • Err codemadness.org 70 i 47580
  • Err codemadness.org 70 i 47581

    To break this down:

    Err codemadness.org 70 i 47582
  • Err codemadness.org 70 i 47583
  • Err codemadness.org 70 i 47584

    service advanced-vty allows you to skip the en or enable command. Since I’m the only one who uses this service, it’s one less command to type.

    Err codemadness.org 70 i 47585
  • Err codemadness.org 70 i 47586
  • Err codemadness.org 70 i 47587

    ip ospf authentication message-digest and ip ospf message-diget-key… ignores non-authenticated OSPF communication. This is useful when communicating over the WAN and to prevent a replay attack. Since I’m using a VPN to communicate, I could exclude these.

    Err codemadness.org 70 i 47588
  • Err codemadness.org 70 i 47589
  • Err codemadness.org 70 i 47590

    passive-interface default turns off the active communication of OSPF messages on all interfaces except for the interfaces listed as no passive-interface [interface name]. Since my ospf communication needs to leverage the VPNs, this prevents the servers from trying to send ospf data out the WAN interface (a firewall would work too).

    Err codemadness.org 70 i 47591
  • Err codemadness.org 70 i 47592
  • Err codemadness.org 70 i 47593

    network 172.16.2.0/23 area 0.0.0.0 lists a supernet of both 172.16.2.0/24 and 172.16.3.0/24. This ensures routes for the jails are advertised along with the P2P links used by OpenVPN. The OpenVPN links are not required but can provide another IP to access your server if one of the links goes down. (See the suggested tasks below).

    Err codemadness.org 70 i 47594
  • Err codemadness.org 70 i 47595
  • Err codemadness.org 70 i 47596

    At this point, we can enable the services in rc.conf.local and start them.

    Err codemadness.org 70 i 47597
  • Err codemadness.org 70 i 47598
  • Err codemadness.org 70 i 47599

    We bind the management interface to 127.0.0.1 so that it’s only accessable to local telnet sessions. If you want to access this service remotely, you can bind to a remotely accessable IP. Remember telnet is not secure. If you need remote access, use a VPN.

    Err codemadness.org 70 i 47600
  • Err codemadness.org 70 i 47601
  • Err codemadness.org 70 i 47602

    To manage the services, you can telnet to your host’s localhost address.

    Err codemadness.org 70 i 47603
  • Err codemadness.org 70 i 47604
  • Err codemadness.org 70 i 47605

    Use 2604 for the ospf service.

    Err codemadness.org 70 i 47606
  • Err codemadness.org 70 i 47607
  • Err codemadness.org 70 i 47608

    Remember, this is accessible by non-root users so set a good password.

    Err codemadness.org 70 i 47609
  • Err codemadness.org 70 i 47610
Err codemadness.org 70 i 47611 Err codemadness.org 70 i 47612


Err codemadness.org 70 i 47613 Err codemadness.org 70 i 47614

###A broad overview of how ZFS is structured on disk

Err codemadness.org 70 i 47615 Err codemadness.org 70 i 47616
Err codemadness.org 70 i 47617

When I wrote yesterday’s entry, it became clear that I didn’t understand as much about how ZFS is structured on disk (and that this matters, since I thought that ZFS copy on write updates updated a lot more than they do). So today I want to write down my new broad understanding of how this works. (All of this can be dug out of the old, draft ZFS on-disk format specification, but that spec is written in a very detailed way and things aren’t always immediately clear from it.)

Err codemadness.org 70 i 47618
Err codemadness.org 70 i 47619 Err codemadness.org 70 i 47620
Err codemadness.org 70 i 47621

Almost everything in ZFS is in DMU object. All objects are defined by a dnode, and object dnodes are almost always grouped together in an object set. Object sets are themselves DMU objects; they store dnodes as basically a giant array in a ‘file’, which uses data blocks and indirect blocks and so on, just like anything else. Within a single object set, dnodes have an object number, which is the index of their position in the object set’s array of dnodes. (Because an object number is just the index of the object’s dnode in its object set’s array of dnodes, object numbers are basically always going to be duplicated between object sets (and they’re always relative to an object set). For instance, pretty much every object set is going to have an object number ten, although not all object sets may have enough objects that they have an object number ten thousand. One corollary of this is that if you ask zdb to tell you about a given object number, you have to tell zdb what object set you’re talking about. Usually you do this by telling zdb which ZFS filesystem or dataset you mean.)

Err codemadness.org 70 i 47622
Err codemadness.org 70 i 47623 Err codemadness.org 70 i 47624
Err codemadness.org 70 i 47625

Each ZFS filesystem has its own object set for objects (and thus dnodes) used in the filesystem. As I discovered yesterday, every ZFS filesystem has a directory hierarchy and it may go many levels deep, but all of this directory hierarchy refers to directories and files using their object number.

Err codemadness.org 70 i 47626
Err codemadness.org 70 i 47627 Err codemadness.org 70 i 47628
Err codemadness.org 70 i 47629

ZFS organizes and keeps track of filesystems, clones, and snapshots through the DSL (Dataset and Snapshot Layer). The DSL has all sorts of things; DSL directories, DSL datasets, and so on, all of which are objects and many of which refer to object sets (for example, every ZFS filesystem must refer to its current object set somehow). All of these DSL objects are themselves stored as dnodes in another object set, the Meta Object Set, which the uberblock points to. To my surprise, object sets are not stored in the MOS (and as a result do not have ‘object numbers’). Object sets are always referred to directly, without indirection, using a block pointer to the object set’s dnode. (I think object sets are referred to directly so that snapshots can freeze their object set very simply.)

Err codemadness.org 70 i 47630
Err codemadness.org 70 i 47631 Err codemadness.org 70 i 47632
Err codemadness.org 70 i 47633

The DSL directories and datasets for your pool’s set of filesystems form a tree themselves (each filesystem has a DSL directory and at least one DSL dataset). However, just like in ZFS filesystems, all of the objects in this second tree refer to each other indirectly, by their MOS object number. Just as with files in ZFS filesystems, this level of indirection limits the amount of copy on write updates that ZFS had to do when something changes.

Err codemadness.org 70 i 47634
Err codemadness.org 70 i 47635 Err codemadness.org 70 i 47636
Err codemadness.org 70 i 47637

PS: If you want to examine MOS objects with zdb, I think you do it with something like ‘zdb -vvv -d ssddata 1’, which will get you object number 1 of the MOS, which is the MOS object directory. If you want to ask zdb about an object in the pool’s root filesystem, use ‘zdb -vvv -d ssddata/ 1’. You can tell which one you’re getting depending on what zdb prints out. If it says ‘Dataset mos [META]’ you’re looking at objects from the MOS; if it says ‘Dataset ssddata [ZPL]’, you’re looking at the pool’s root filesystem (where object number 1 is the ZFS master node).

Err codemadness.org 70 i 47638
Err codemadness.org 70 i 47639 Err codemadness.org 70 i 47640
Err codemadness.org 70 i 47641

PPS: I was going to write up what changed on a filesystem write, but then I realized that I didn’t know how blocks being allocated and freed are reflected in pool structures. So I’ll just say that I think that ignoring free space management, only four DMU objects get updated; the file itself, the filesystem’s object set, the filesystem’s DSL dataset object, and the MOS.

Err codemadness.org 70 i 47642
Err codemadness.org 70 i 47643 Err codemadness.org 70 i 47644
    Err codemadness.org 70 i 47645
  • (As usual, doing the research to write this up taught me things that I didn’t know about ZFS.)
  • Err codemadness.org 70 i 47646
Err codemadness.org 70 i 47647 Err codemadness.org 70 i 47648


Err codemadness.org 70 i 47649 Err codemadness.org 70 i 47650

Digital Ocean

Err codemadness.org 70 i 47651 Err codemadness.org 70 i 47652

###HardenedBSD Foundation Status

Err codemadness.org 70 i 47653 Err codemadness.org 70 i 47654
Err codemadness.org 70 i 47655

On 09 July 2018, the HardenedBSD Foundation Board of Directors held the kick-off meeting to start organizing the Foundation. The following people attended the kick-off meeting:

Err codemadness.org 70 i 47656
Err codemadness.org 70 i 47657 Err codemadness.org 70 i 47658
    Err codemadness.org 70 i 47659
  • Err codemadness.org 70 i 47660
      Err codemadness.org 70 i 47661
    1. Shawn Webb (in person)
    2. Err codemadness.org 70 i 47662
    Err codemadness.org 70 i 47663
  • Err codemadness.org 70 i 47664
  • Err codemadness.org 70 i 47665
      Err codemadness.org 70 i 47666
    1. George Saylor (in person)
    2. Err codemadness.org 70 i 47667
    Err codemadness.org 70 i 47668
  • Err codemadness.org 70 i 47669
  • Err codemadness.org 70 i 47670
      Err codemadness.org 70 i 47671
    1. Ben Welch (in person)
    2. Err codemadness.org 70 i 47672
    Err codemadness.org 70 i 47673
  • Err codemadness.org 70 i 47674
  • Err codemadness.org 70 i 47675
      Err codemadness.org 70 i 47676
    1. Virginia Suydan (in person)
    2. Err codemadness.org 70 i 47677
    Err codemadness.org 70 i 47678
  • Err codemadness.org 70 i 47679
  • Err codemadness.org 70 i 47680
      Err codemadness.org 70 i 47681
    1. Ben La Monica (phone)
    2. Err codemadness.org 70 i 47682
    Err codemadness.org 70 i 47683
  • Err codemadness.org 70 i 47684
  • Err codemadness.org 70 i 47685
      Err codemadness.org 70 i 47686
    1. Dean Freeman (phone)
    2. Err codemadness.org 70 i 47687
    Err codemadness.org 70 i 47688
  • Err codemadness.org 70 i 47689
  • Err codemadness.org 70 i 47690
      Err codemadness.org 70 i 47691
    1. Christian Severt (phone)
    2. Err codemadness.org 70 i 47692
    Err codemadness.org 70 i 47693
  • Err codemadness.org 70 i 47694
Err codemadness.org 70 i 47695 Err codemadness.org 70 i 47696
Err codemadness.org 70 i 47697

We discussed the very first steps that need to be taken to organize the HardenedBSD Foundation as a 501©(3) not-for-profit organization in the US. We determined we could file a 1023EZ instead of the full-blown 1023. This will help speed the process up drastically.

Err codemadness.org 70 i 47698
Err codemadness.org 70 i 47699 Err codemadness.org 70 i 47700
    Err codemadness.org 70 i 47701
  • The steps are laid out as follows:
  • Err codemadness.org 70 i 47702
  • Register a Post Office Box (PO Box) (completed on 10 Jul 2018).
  • Err codemadness.org 70 i 47703
  • Register The HardenedBSD Foundation as a tax-exempt nonstock corporation in the state of Maryland (started on 10 Jul 2018, submitted on 18 Jul 2018, granted 20 Jul 2018).
  • Err codemadness.org 70 i 47704
  • Obtain a federal tax ID (obtained 20 Jul 2018).
  • Err codemadness.org 70 i 47705
  • Close the current bank account and create a new one using the federal tax ID (completed on 20 Jul 2018).
  • Err codemadness.org 70 i 47706
  • File the 1023EZ paperwork with the federal government (started on 20 Jul 2018).
  • Err codemadness.org 70 i 47707
  • Hire an attorney to help draft the organization bylaws.
  • Err codemadness.org 70 i 47708
  • Each of the steps must be done serially and in order.
  • Err codemadness.org 70 i 47709
Err codemadness.org 70 i 47710 Err codemadness.org 70 i 47711
Err codemadness.org 70 i 47712

We added Christian Severt, who is on Emerald Onion’s Board of Directors, to the HardenedBSD Foundation Board of Directors as an advisor. He was foundational in getting Emerald Onion their 501©(3) tax-exempt, not-for-profit status and has really good insight. Additionally, he’s going to help HardenedBSD coordinate hosting services, figuring out the best deals for us.

Err codemadness.org 70 i 47713
Err codemadness.org 70 i 47714 Err codemadness.org 70 i 47715
Err codemadness.org 70 i 47716

We promoted George Saylor to Vice President and changed Shawn Webb’s title to President and Director. This is to help resolve potential concerns both the state and federal agencies might have with an organization having only a single President role.

Err codemadness.org 70 i 47717
Err codemadness.org 70 i 47718 Err codemadness.org 70 i 47719
Err codemadness.org 70 i 47720

We hope to be granted our 501©(3) status before the end of the year, though that may be subject to change. We are excited for the formation of the HardenedBSD Foundation, which will open up new opportunities not otherwise available to HardenedBSD.

Err codemadness.org 70 i 47721
Err codemadness.org 70 i 47722 Err codemadness.org 70 i 47723


Err codemadness.org 70 i 47724 Err codemadness.org 70 i 47725

###More mitigations against speculative execution vulnerabilities

Err codemadness.org 70 i 47726 Err codemadness.org 70 i 47727
Err codemadness.org 70 i 47728

Philip Guenther (guenther@) and Bryan Steele (brynet@) have added more mitigations against speculative execution CPU vulnerabilities on the amd64 platform.

Err codemadness.org 70 i 47729
Err codemadness.org 70 i 47730 Err codemadness.org 70 i 47731
	Err	codemadness.org	70
i 47732 CVSROOT:    /cvs	Err	codemadness.org	70
i 47733 Module name:    src	Err	codemadness.org	70
i 47734 Changes by: guenther@cvs.openbsd.org    2018/07/23 11:54:04	Err	codemadness.org	70
i 47735 	Err	codemadness.org	70
i 47736 Modified files:	Err	codemadness.org	70
i 47737     sys/arch/amd64/amd64: locore.S 	Err	codemadness.org	70
i 47738     sys/arch/amd64/include: asm.h cpufunc.h frameasm.h 	Err	codemadness.org	70
i 47739 	Err	codemadness.org	70
i 47740 Log message:	Err	codemadness.org	70
i 47741 Do "Return stack refilling", based on the "Return stack underflow" discussion	Err	codemadness.org	70
i 47742 and its associated appendix at https://support.google.com/faqs/answer/7625886	Err	codemadness.org	70
i 47743 This should address at least some cases of "SpectreRSB" and earlier	Err	codemadness.org	70
i 47744 Spectre variants; more commits to follow.	Err	codemadness.org	70
i 47745 	Err	codemadness.org	70
i 47746 The refilling is done in the enter-kernel-from-userspace and	Err	codemadness.org	70
i 47747 return-to-userspace-from-kernel paths, making sure to do it before	Err	codemadness.org	70
i 47748 unblocking interrupts so that a successive interrupt can't get the	Err	codemadness.org	70
i 47749 CPU to C code without doing this refill.  Per the link above, it	Err	codemadness.org	70
i 47750 also does it immediately after mwait, apparently in case the low-power	Err	codemadness.org	70
i 47751 CPU states of idle-via-mwait flush the RSB.	Err	codemadness.org	70
i 47752 	Err	codemadness.org	70
i 47753 ok mlarkin@ deraadt@```	Err	codemadness.org	70
i 47754 	Err	codemadness.org	70
i 47755 + and:	Err	codemadness.org	70
i 47756 	Err	codemadness.org	70
i 47757 ```CVSROOT: /cvs	Err	codemadness.org	70
i 47758 Module name:    src	Err	codemadness.org	70
i 47759 Changes by: guenther@cvs.openbsd.org    2018/07/23 20:42:25	Err	codemadness.org	70
i 47760 	Err	codemadness.org	70
i 47761 Modified files:	Err	codemadness.org	70
i 47762     sys/arch/amd64/amd64: locore.S vector.S vmm_support.S 	Err	codemadness.org	70
i 47763     sys/arch/amd64/include: asm.h cpufunc.h 	Err	codemadness.org	70
i 47764 	Err	codemadness.org	70
i 47765 Log message:	Err	codemadness.org	70
i 47766 Also do RSB refilling when context switching, after vmexits, and	Err	codemadness.org	70
i 47767 when vmlaunch or vmresume fails.	Err	codemadness.org	70
i 47768 	Err	codemadness.org	70
i 47769 Follow the lead of clang and the intel recommendation and do an lfence	Err	codemadness.org	70
i 47770 after the pause in the speculation-stop path for retpoline, RSB refill,	Err	codemadness.org	70
i 47771 and meltover ASM bits.	Err	codemadness.org	70
i 47772 	Err	codemadness.org	70
i 47773 ok kettenis@ deraadt@```	Err	codemadness.org	70
i 47774 	Err	codemadness.org	70
i 47775 + "Mitigation G-2" for AMD processors:	Err	codemadness.org	70
i 47776 	Err	codemadness.org	70
i 47777 ```CVSROOT: /cvs	Err	codemadness.org	70
i 47778 Module name:    src	Err	codemadness.org	70
i 47779 Changes by: brynet@cvs.openbsd.org  2018/07/23 17:25:03	Err	codemadness.org	70
i 47780 	Err	codemadness.org	70
i 47781 Modified files:	Err	codemadness.org	70
i 47782     sys/arch/amd64/amd64: identcpu.c 	Err	codemadness.org	70
i 47783     sys/arch/amd64/include: specialreg.h 	Err	codemadness.org	70
i 47784 	Err	codemadness.org	70
i 47785 Log message:	Err	codemadness.org	70
i 47786 Add "Mitigation G-2" per AMD's Whitepaper "Software Techniques for	Err	codemadness.org	70
i 47787 Managing Speculation on AMD Processors"	Err	codemadness.org	70
i 47788 	Err	codemadness.org	70
i 47789 By setting MSR C001_1029[1]=1, LFENCE becomes a dispatch serializing	Err	codemadness.org	70
i 47790 instruction.	Err	codemadness.org	70
i 47791 	Err	codemadness.org	70
i 47792 Tested on AMD FX-4100 "Bulldozer", and Linux guest in SVM vmd(8)	Err	codemadness.org	70
i 47793 	Err	codemadness.org	70
i 47794 ok deraadt@ mlarkin@```	Err	codemadness.org	70
i 47795 ***	Err	codemadness.org	70
i 47796 	Err	codemadness.org	70
i 47797 	Err	codemadness.org	70
i 47798 ##Beastie Bits	Err	codemadness.org	70
i 47799 + [HardenedBSD will stop supporting 10-STABLE on 10 August 2018](https://groups.google.com/a/hardenedbsd.org/forum/#!topic/users/xvU0g-g1l5U)	Err	codemadness.org	70
i 47800 + [GSoC 2018 Reports: Integrate libFuzzer with the Basesystem, Part 2](https://blog.netbsd.org/tnf/entry/gsoc_2018_reports_integrate_libfuzzer1)	Err	codemadness.org	70
i 47801 + [ZFS Boot Environments at PBUG](https://vermaden.wordpress.com/2018/07/30/zfs-boot-environments-at-pbug/)	Err	codemadness.org	70
i 47802 + [Second Editions versus the Publishing Business](https://blather.michaelwlucas.com/archives/3229)	Err	codemadness.org	70
i 47803 + [Theo de Raadt on "unveil(2) usage in base"](https://undeadly.org/cgi?action=article;sid=20180728063716)	Err	codemadness.org	70
i 47804 + [rtadvd(8) has been replaced by rad(8)](https://undeadly.org/cgi?action=article;sid=20180724072205)	Err	codemadness.org	70
i 47805 + [BSD Users Stockholm Meetup #3](https://www.meetup.com/BSD-Users-Stockholm/events/253447019/)	Err	codemadness.org	70
i 47806 + [Changes to NetBSD release support policy](https://blog.netbsd.org/tnf/entry/changes_to_netbsd_release_support)	Err	codemadness.org	70
i 47807 + [The future of HAMMER1](http://lists.dragonflybsd.org/pipermail/users/2018-July/357832.html)	Err	codemadness.org	70
i 47808 ***	Err	codemadness.org	70
i 47809 	Err	codemadness.org	70
i 47810 **Tarsnap**	Err	codemadness.org	70
i 47811 	Err	codemadness.org	70
i 47812 ##Feedback/Questions	Err	codemadness.org	70
i 47813 + Rodriguez - [A Question](http://dpaste.com/0Y1B75Q#wrap)	Err	codemadness.org	70
i 47814 + Shane - [About ZFS Mostly](http://dpaste.com/32YGNBY#wrap)	Err	codemadness.org	70
i 47815 + Leif - [ZFS less than 8gb](http://dpaste.com/2GY6HHC#wrap)	Err	codemadness.org	70
i 47816 + Wayne - [ZFS vs EMC](http://dpaste.com/17PSCXC#wrap)	Err	codemadness.org	70
i 47817 ***	Err	codemadness.org	70
i 47818 	Err	codemadness.org	70
i 47819 - Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [feedback@bsdnow.tv](mailto:feedback@bsdnow.tv)	Err	codemadness.org	70
i 47820 
]]> Err codemadness.org 70 i 47821
Err codemadness.org 70 i 47822 Err codemadness.org 70 i 47823 FreeBSD Foundation July Newsletter, a bunch of BSDCan trip reports, HardenedBSD Foundation status, FreeBSD and OSPFd, ZFS disk structure overview, and more Spectre mitigations in OpenBSD.

Err codemadness.org 70 i 47824 Err codemadness.org 70 i 47825

##Headlines
Err codemadness.org 70 i 47826 ###FreeBSD Foundation Update, July 2018

Err codemadness.org 70 i 47827 Err codemadness.org 70 i 47828
    Err codemadness.org 70 i 47829
  • MESSAGE FROM THE EXECUTIVE DIRECTOR
  • Err codemadness.org 70 i 47830
Err codemadness.org 70 i 47831 Err codemadness.org 70 i 47832
Err codemadness.org 70 i 47833

We’re in the middle of summer here, in Boulder, CO. While the days are typically hot, they can also be quite unpredictable. Thanks to the Rocky Mountains, waking up to 50-degree (~10 C) foggy weather is not surprising. In spite of the unpredictable weather, many of us took some vacation this month. Whether it was extending the Fourth of July celebration, spending time with family, or relaxing and enjoying the summer weather, we appreciated our time off, while still managing to accomplish a lot!
Err codemadness.org 70 i 47834 In this newsletter, Glen Barber enlightens us about the upcoming 12.0 release. I gave a recap of OSCON, that Ed Maste and I attended, and Mark Johnston explains the work on his improved microcode loading project, that we are funding. Finally, Anne Dickison gives us a rundown on upcoming events and information on submitting a talk for MeetBSD.
Err codemadness.org 70 i 47835 Your support helps us continue this work. Please consider making a donation today. We can’t do it without you. Happy reading!!

Err codemadness.org 70 i 47836
Err codemadness.org 70 i 47837 Err codemadness.org 70 i 47838
    Err codemadness.org 70 i 47839
  • June 2018 Development Projects Update
  • Err codemadness.org 70 i 47840
  • Fundraising Update: Supporting the Project
  • Err codemadness.org 70 i 47841
  • July 2018 Release Engineering Update
  • Err codemadness.org 70 i 47842
  • OSCON 2018 Recap
  • Err codemadness.org 70 i 47843
  • Submit Your Work: MeetBSD 2018
  • Err codemadness.org 70 i 47844
  • FreeBSD Discount for 2018 SNIA Developer Conference
  • Err codemadness.org 70 i 47845
  • EuroBSDcon 2018 Travel Grant Application Deadline: August 2
  • Err codemadness.org 70 i 47846
Err codemadness.org 70 i 47847 Err codemadness.org 70 i 47848


Err codemadness.org 70 i 47849 Err codemadness.org 70 i 47850

iXsystems

Err codemadness.org 70 i 47851 Err codemadness.org 70 i 47852

###BSDCan Trip Reports

Err codemadness.org 70 i 47853 Err codemadness.org 70 i 47854 Err codemadness.org 70 i 47861 Err codemadness.org 70 i 47862


Err codemadness.org 70 i 47863 Err codemadness.org 70 i 47864

##News Roundup
Err codemadness.org 70 i 47865 ###FreeBSD and OSPFd

Err codemadness.org 70 i 47866 Err codemadness.org 70 i 47867
Err codemadness.org 70 i 47868

With FreeBSD jails deployed around the world, static routing was getting a bit out of hand. Plus, when I needed to move a jail from one data center to another, I would have to update routing tables across multiple sites. Not ideal. Enter dynamic routing…

Err codemadness.org 70 i 47869
Err codemadness.org 70 i 47870 Err codemadness.org 70 i 47871
Err codemadness.org 70 i 47872

OSPF (open shortest path first) is an internal dynamic routing protocol that provides the autonomy that I needed and it’s fairly easy to setup. This article does not cover configuration of VPN links, ZFS, or Freebsd jails, however it’s recommended that you use seperate ZFS datasets per jail so that migration between hosts can be done with zfs send & receive.

Err codemadness.org 70 i 47873
Err codemadness.org 70 i 47874 Err codemadness.org 70 i 47875
Err codemadness.org 70 i 47876

In this scenario, we have five FreeBSD servers in two different data centers. Each physical server runs anywhere between three to ten jails. When jails are deployed, they are assigned a /32 IP on lo2. From here, pf handles inbound port forwarding and outbound NAT. Links between each server are provided by OpenVPN TAP interfaces. (I used TAP to pass layer 2 traffic. I seem to remember that I needed TAP interfaces due to needing GRE tunnels on top of TUN interfaces to get OSPF to communicate. I’ve heard TAP is slower than TUN so I may revisit this.)

Err codemadness.org 70 i 47877
Err codemadness.org 70 i 47878 Err codemadness.org 70 i 47879
Err codemadness.org 70 i 47880

In this example, we will use 172.16.2.0/24 as the range for OpenVPN P2P links and 172.16.3.0/24 as the range of IPs available for assignment to each jail. Previously, when deploying a jail, I assigned IPs based on the following groups:

Err codemadness.org 70 i 47881
Err codemadness.org 70 i 47882 Err codemadness.org 70 i 47883

Server 1: 172.16.3.0/28
Err codemadness.org 70 i 47884 Server 2: 172.16.3.16/28
Err codemadness.org 70 i 47885 Server 3: 172.16.3.32/28
Err codemadness.org 70 i 47886 Server 4: 172.16.3.48/28
Err codemadness.org 70 i 47887 Server 5: 172.16.3.64/28

Err codemadness.org 70 i 47888 Err codemadness.org 70 i 47889
Err codemadness.org 70 i 47890

When statically routing, this made routing tables a bit smaller and easier to manage. However, when I needed to migrate a jail to a new host, I had to add a new /32 to all routing tables. Now, with OSPF, this is no longer an issue, nor is it required.

Err codemadness.org 70 i 47891
Err codemadness.org 70 i 47892 Err codemadness.org 70 i 47893
    Err codemadness.org 70 i 47894
  • Err codemadness.org 70 i 47895

    To get started, first we install the Quagga package.

    Err codemadness.org 70 i 47896
  • Err codemadness.org 70 i 47897
  • Err codemadness.org 70 i 47898

    The two configuration files needed to get OSPFv2 running are /usr/local/etc/quagga/zebra.conf and /usr/local/etc/quagga/ospfd.conf.

    Err codemadness.org 70 i 47899
  • Err codemadness.org 70 i 47900
  • Err codemadness.org 70 i 47901

    Starting with zebra.conf, we’ll define the hostname and a management password.

    Err codemadness.org 70 i 47902
  • Err codemadness.org 70 i 47903
  • Err codemadness.org 70 i 47904

    Second, we will populate the ospfd.conf file.

    Err codemadness.org 70 i 47905
  • Err codemadness.org 70 i 47906
  • Err codemadness.org 70 i 47907

    To break this down:

    Err codemadness.org 70 i 47908
  • Err codemadness.org 70 i 47909
  • Err codemadness.org 70 i 47910

    service advanced-vty allows you to skip the en or enable command. Since I’m the only one who uses this service, it’s one less command to type.

    Err codemadness.org 70 i 47911
  • Err codemadness.org 70 i 47912
  • Err codemadness.org 70 i 47913

    ip ospf authentication message-digest and ip ospf message-diget-key… ignores non-authenticated OSPF communication. This is useful when communicating over the WAN and to prevent a replay attack. Since I’m using a VPN to communicate, I could exclude these.

    Err codemadness.org 70 i 47914
  • Err codemadness.org 70 i 47915
  • Err codemadness.org 70 i 47916

    passive-interface default turns off the active communication of OSPF messages on all interfaces except for the interfaces listed as no passive-interface [interface name]. Since my ospf communication needs to leverage the VPNs, this prevents the servers from trying to send ospf data out the WAN interface (a firewall would work too).

    Err codemadness.org 70 i 47917
  • Err codemadness.org 70 i 47918
  • Err codemadness.org 70 i 47919

    network 172.16.2.0/23 area 0.0.0.0 lists a supernet of both 172.16.2.0/24 and 172.16.3.0/24. This ensures routes for the jails are advertised along with the P2P links used by OpenVPN. The OpenVPN links are not required but can provide another IP to access your server if one of the links goes down. (See the suggested tasks below).

    Err codemadness.org 70 i 47920
  • Err codemadness.org 70 i 47921
  • Err codemadness.org 70 i 47922

    At this point, we can enable the services in rc.conf.local and start them.

    Err codemadness.org 70 i 47923
  • Err codemadness.org 70 i 47924
  • Err codemadness.org 70 i 47925

    We bind the management interface to 127.0.0.1 so that it’s only accessable to local telnet sessions. If you want to access this service remotely, you can bind to a remotely accessable IP. Remember telnet is not secure. If you need remote access, use a VPN.

    Err codemadness.org 70 i 47926
  • Err codemadness.org 70 i 47927
  • Err codemadness.org 70 i 47928

    To manage the services, you can telnet to your host’s localhost address.

    Err codemadness.org 70 i 47929
  • Err codemadness.org 70 i 47930
  • Err codemadness.org 70 i 47931

    Use 2604 for the ospf service.

    Err codemadness.org 70 i 47932
  • Err codemadness.org 70 i 47933
  • Err codemadness.org 70 i 47934

    Remember, this is accessible by non-root users so set a good password.

    Err codemadness.org 70 i 47935
  • Err codemadness.org 70 i 47936
Err codemadness.org 70 i 47937 Err codemadness.org 70 i 47938


Err codemadness.org 70 i 47939 Err codemadness.org 70 i 47940

###A broad overview of how ZFS is structured on disk

Err codemadness.org 70 i 47941 Err codemadness.org 70 i 47942
Err codemadness.org 70 i 47943

When I wrote yesterday’s entry, it became clear that I didn’t understand as much about how ZFS is structured on disk (and that this matters, since I thought that ZFS copy on write updates updated a lot more than they do). So today I want to write down my new broad understanding of how this works. (All of this can be dug out of the old, draft ZFS on-disk format specification, but that spec is written in a very detailed way and things aren’t always immediately clear from it.)

Err codemadness.org 70 i 47944
Err codemadness.org 70 i 47945 Err codemadness.org 70 i 47946
Err codemadness.org 70 i 47947

Almost everything in ZFS is in DMU object. All objects are defined by a dnode, and object dnodes are almost always grouped together in an object set. Object sets are themselves DMU objects; they store dnodes as basically a giant array in a ‘file’, which uses data blocks and indirect blocks and so on, just like anything else. Within a single object set, dnodes have an object number, which is the index of their position in the object set’s array of dnodes. (Because an object number is just the index of the object’s dnode in its object set’s array of dnodes, object numbers are basically always going to be duplicated between object sets (and they’re always relative to an object set). For instance, pretty much every object set is going to have an object number ten, although not all object sets may have enough objects that they have an object number ten thousand. One corollary of this is that if you ask zdb to tell you about a given object number, you have to tell zdb what object set you’re talking about. Usually you do this by telling zdb which ZFS filesystem or dataset you mean.)

Err codemadness.org 70 i 47948
Err codemadness.org 70 i 47949 Err codemadness.org 70 i 47950
Err codemadness.org 70 i 47951

Each ZFS filesystem has its own object set for objects (and thus dnodes) used in the filesystem. As I discovered yesterday, every ZFS filesystem has a directory hierarchy and it may go many levels deep, but all of this directory hierarchy refers to directories and files using their object number.

Err codemadness.org 70 i 47952
Err codemadness.org 70 i 47953 Err codemadness.org 70 i 47954
Err codemadness.org 70 i 47955

ZFS organizes and keeps track of filesystems, clones, and snapshots through the DSL (Dataset and Snapshot Layer). The DSL has all sorts of things; DSL directories, DSL datasets, and so on, all of which are objects and many of which refer to object sets (for example, every ZFS filesystem must refer to its current object set somehow). All of these DSL objects are themselves stored as dnodes in another object set, the Meta Object Set, which the uberblock points to. To my surprise, object sets are not stored in the MOS (and as a result do not have ‘object numbers’). Object sets are always referred to directly, without indirection, using a block pointer to the object set’s dnode. (I think object sets are referred to directly so that snapshots can freeze their object set very simply.)

Err codemadness.org 70 i 47956
Err codemadness.org 70 i 47957 Err codemadness.org 70 i 47958
Err codemadness.org 70 i 47959

The DSL directories and datasets for your pool’s set of filesystems form a tree themselves (each filesystem has a DSL directory and at least one DSL dataset). However, just like in ZFS filesystems, all of the objects in this second tree refer to each other indirectly, by their MOS object number. Just as with files in ZFS filesystems, this level of indirection limits the amount of copy on write updates that ZFS had to do when something changes.

Err codemadness.org 70 i 47960
Err codemadness.org 70 i 47961 Err codemadness.org 70 i 47962
Err codemadness.org 70 i 47963

PS: If you want to examine MOS objects with zdb, I think you do it with something like ‘zdb -vvv -d ssddata 1’, which will get you object number 1 of the MOS, which is the MOS object directory. If you want to ask zdb about an object in the pool’s root filesystem, use ‘zdb -vvv -d ssddata/ 1’. You can tell which one you’re getting depending on what zdb prints out. If it says ‘Dataset mos [META]’ you’re looking at objects from the MOS; if it says ‘Dataset ssddata [ZPL]’, you’re looking at the pool’s root filesystem (where object number 1 is the ZFS master node).

Err codemadness.org 70 i 47964
Err codemadness.org 70 i 47965 Err codemadness.org 70 i 47966
Err codemadness.org 70 i 47967

PPS: I was going to write up what changed on a filesystem write, but then I realized that I didn’t know how blocks being allocated and freed are reflected in pool structures. So I’ll just say that I think that ignoring free space management, only four DMU objects get updated; the file itself, the filesystem’s object set, the filesystem’s DSL dataset object, and the MOS.

Err codemadness.org 70 i 47968
Err codemadness.org 70 i 47969 Err codemadness.org 70 i 47970
    Err codemadness.org 70 i 47971
  • (As usual, doing the research to write this up taught me things that I didn’t know about ZFS.)
  • Err codemadness.org 70 i 47972
Err codemadness.org 70 i 47973 Err codemadness.org 70 i 47974


Err codemadness.org 70 i 47975 Err codemadness.org 70 i 47976

Digital Ocean

Err codemadness.org 70 i 47977 Err codemadness.org 70 i 47978

###HardenedBSD Foundation Status

Err codemadness.org 70 i 47979 Err codemadness.org 70 i 47980
Err codemadness.org 70 i 47981

On 09 July 2018, the HardenedBSD Foundation Board of Directors held the kick-off meeting to start organizing the Foundation. The following people attended the kick-off meeting:

Err codemadness.org 70 i 47982
Err codemadness.org 70 i 47983 Err codemadness.org 70 i 47984
    Err codemadness.org 70 i 47985
  • Err codemadness.org 70 i 47986
      Err codemadness.org 70 i 47987
    1. Shawn Webb (in person)
    2. Err codemadness.org 70 i 47988
    Err codemadness.org 70 i 47989
  • Err codemadness.org 70 i 47990
  • Err codemadness.org 70 i 47991
      Err codemadness.org 70 i 47992
    1. George Saylor (in person)
    2. Err codemadness.org 70 i 47993
    Err codemadness.org 70 i 47994
  • Err codemadness.org 70 i 47995
  • Err codemadness.org 70 i 47996
      Err codemadness.org 70 i 47997
    1. Ben Welch (in person)
    2. Err codemadness.org 70 i 47998
    Err codemadness.org 70 i 47999
  • Err codemadness.org 70 i 48000
  • Err codemadness.org 70 i 48001
      Err codemadness.org 70 i 48002
    1. Virginia Suydan (in person)
    2. Err codemadness.org 70 i 48003
    Err codemadness.org 70 i 48004
  • Err codemadness.org 70 i 48005
  • Err codemadness.org 70 i 48006
      Err codemadness.org 70 i 48007
    1. Ben La Monica (phone)
    2. Err codemadness.org 70 i 48008
    Err codemadness.org 70 i 48009
  • Err codemadness.org 70 i 48010
  • Err codemadness.org 70 i 48011
      Err codemadness.org 70 i 48012
    1. Dean Freeman (phone)
    2. Err codemadness.org 70 i 48013
    Err codemadness.org 70 i 48014
  • Err codemadness.org 70 i 48015
  • Err codemadness.org 70 i 48016
      Err codemadness.org 70 i 48017
    1. Christian Severt (phone)
    2. Err codemadness.org 70 i 48018
    Err codemadness.org 70 i 48019
  • Err codemadness.org 70 i 48020
Err codemadness.org 70 i 48021 Err codemadness.org 70 i 48022
Err codemadness.org 70 i 48023

We discussed the very first steps that need to be taken to organize the HardenedBSD Foundation as a 501©(3) not-for-profit organization in the US. We determined we could file a 1023EZ instead of the full-blown 1023. This will help speed the process up drastically.

Err codemadness.org 70 i 48024
Err codemadness.org 70 i 48025 Err codemadness.org 70 i 48026
    Err codemadness.org 70 i 48027
  • The steps are laid out as follows:
  • Err codemadness.org 70 i 48028
  • Register a Post Office Box (PO Box) (completed on 10 Jul 2018).
  • Err codemadness.org 70 i 48029
  • Register The HardenedBSD Foundation as a tax-exempt nonstock corporation in the state of Maryland (started on 10 Jul 2018, submitted on 18 Jul 2018, granted 20 Jul 2018).
  • Err codemadness.org 70 i 48030
  • Obtain a federal tax ID (obtained 20 Jul 2018).
  • Err codemadness.org 70 i 48031
  • Close the current bank account and create a new one using the federal tax ID (completed on 20 Jul 2018).
  • Err codemadness.org 70 i 48032
  • File the 1023EZ paperwork with the federal government (started on 20 Jul 2018).
  • Err codemadness.org 70 i 48033
  • Hire an attorney to help draft the organization bylaws.
  • Err codemadness.org 70 i 48034
  • Each of the steps must be done serially and in order.
  • Err codemadness.org 70 i 48035
Err codemadness.org 70 i 48036 Err codemadness.org 70 i 48037
Err codemadness.org 70 i 48038

We added Christian Severt, who is on Emerald Onion’s Board of Directors, to the HardenedBSD Foundation Board of Directors as an advisor. He was foundational in getting Emerald Onion their 501©(3) tax-exempt, not-for-profit status and has really good insight. Additionally, he’s going to help HardenedBSD coordinate hosting services, figuring out the best deals for us.

Err codemadness.org 70 i 48039
Err codemadness.org 70 i 48040 Err codemadness.org 70 i 48041
Err codemadness.org 70 i 48042

We promoted George Saylor to Vice President and changed Shawn Webb’s title to President and Director. This is to help resolve potential concerns both the state and federal agencies might have with an organization having only a single President role.

Err codemadness.org 70 i 48043
Err codemadness.org 70 i 48044 Err codemadness.org 70 i 48045
Err codemadness.org 70 i 48046

We hope to be granted our 501©(3) status before the end of the year, though that may be subject to change. We are excited for the formation of the HardenedBSD Foundation, which will open up new opportunities not otherwise available to HardenedBSD.

Err codemadness.org 70 i 48047
Err codemadness.org 70 i 48048 Err codemadness.org 70 i 48049


Err codemadness.org 70 i 48050 Err codemadness.org 70 i 48051

###More mitigations against speculative execution vulnerabilities

Err codemadness.org 70 i 48052 Err codemadness.org 70 i 48053
Err codemadness.org 70 i 48054

Philip Guenther (guenther@) and Bryan Steele (brynet@) have added more mitigations against speculative execution CPU vulnerabilities on the amd64 platform.

Err codemadness.org 70 i 48055
Err codemadness.org 70 i 48056 Err codemadness.org 70 i 48057
	Err	codemadness.org	70
i 48058 CVSROOT:    /cvs	Err	codemadness.org	70
i 48059 Module name:    src	Err	codemadness.org	70
i 48060 Changes by: guenther@cvs.openbsd.org    2018/07/23 11:54:04	Err	codemadness.org	70
i 48061 	Err	codemadness.org	70
i 48062 Modified files:	Err	codemadness.org	70
i 48063     sys/arch/amd64/amd64: locore.S 	Err	codemadness.org	70
i 48064     sys/arch/amd64/include: asm.h cpufunc.h frameasm.h 	Err	codemadness.org	70
i 48065 	Err	codemadness.org	70
i 48066 Log message:	Err	codemadness.org	70
i 48067 Do "Return stack refilling", based on the "Return stack underflow" discussion	Err	codemadness.org	70
i 48068 and its associated appendix at https://support.google.com/faqs/answer/7625886	Err	codemadness.org	70
i 48069 This should address at least some cases of "SpectreRSB" and earlier	Err	codemadness.org	70
i 48070 Spectre variants; more commits to follow.	Err	codemadness.org	70
i 48071 	Err	codemadness.org	70
i 48072 The refilling is done in the enter-kernel-from-userspace and	Err	codemadness.org	70
i 48073 return-to-userspace-from-kernel paths, making sure to do it before	Err	codemadness.org	70
i 48074 unblocking interrupts so that a successive interrupt can't get the	Err	codemadness.org	70
i 48075 CPU to C code without doing this refill.  Per the link above, it	Err	codemadness.org	70
i 48076 also does it immediately after mwait, apparently in case the low-power	Err	codemadness.org	70
i 48077 CPU states of idle-via-mwait flush the RSB.	Err	codemadness.org	70
i 48078 	Err	codemadness.org	70
i 48079 ok mlarkin@ deraadt@```	Err	codemadness.org	70
i 48080 	Err	codemadness.org	70
i 48081 + and:	Err	codemadness.org	70
i 48082 	Err	codemadness.org	70
i 48083 ```CVSROOT: /cvs	Err	codemadness.org	70
i 48084 Module name:    src	Err	codemadness.org	70
i 48085 Changes by: guenther@cvs.openbsd.org    2018/07/23 20:42:25	Err	codemadness.org	70
i 48086 	Err	codemadness.org	70
i 48087 Modified files:	Err	codemadness.org	70
i 48088     sys/arch/amd64/amd64: locore.S vector.S vmm_support.S 	Err	codemadness.org	70
i 48089     sys/arch/amd64/include: asm.h cpufunc.h 	Err	codemadness.org	70
i 48090 	Err	codemadness.org	70
i 48091 Log message:	Err	codemadness.org	70
i 48092 Also do RSB refilling when context switching, after vmexits, and	Err	codemadness.org	70
i 48093 when vmlaunch or vmresume fails.	Err	codemadness.org	70
i 48094 	Err	codemadness.org	70
i 48095 Follow the lead of clang and the intel recommendation and do an lfence	Err	codemadness.org	70
i 48096 after the pause in the speculation-stop path for retpoline, RSB refill,	Err	codemadness.org	70
i 48097 and meltover ASM bits.	Err	codemadness.org	70
i 48098 	Err	codemadness.org	70
i 48099 ok kettenis@ deraadt@```	Err	codemadness.org	70
i 48100 	Err	codemadness.org	70
i 48101 + "Mitigation G-2" for AMD processors:	Err	codemadness.org	70
i 48102 	Err	codemadness.org	70
i 48103 ```CVSROOT: /cvs	Err	codemadness.org	70
i 48104 Module name:    src	Err	codemadness.org	70
i 48105 Changes by: brynet@cvs.openbsd.org  2018/07/23 17:25:03	Err	codemadness.org	70
i 48106 	Err	codemadness.org	70
i 48107 Modified files:	Err	codemadness.org	70
i 48108     sys/arch/amd64/amd64: identcpu.c 	Err	codemadness.org	70
i 48109     sys/arch/amd64/include: specialreg.h 	Err	codemadness.org	70
i 48110 	Err	codemadness.org	70
i 48111 Log message:	Err	codemadness.org	70
i 48112 Add "Mitigation G-2" per AMD's Whitepaper "Software Techniques for	Err	codemadness.org	70
i 48113 Managing Speculation on AMD Processors"	Err	codemadness.org	70
i 48114 	Err	codemadness.org	70
i 48115 By setting MSR C001_1029[1]=1, LFENCE becomes a dispatch serializing	Err	codemadness.org	70
i 48116 instruction.	Err	codemadness.org	70
i 48117 	Err	codemadness.org	70
i 48118 Tested on AMD FX-4100 "Bulldozer", and Linux guest in SVM vmd(8)	Err	codemadness.org	70
i 48119 	Err	codemadness.org	70
i 48120 ok deraadt@ mlarkin@```	Err	codemadness.org	70
i 48121 ***	Err	codemadness.org	70
i 48122 	Err	codemadness.org	70
i 48123 	Err	codemadness.org	70
i 48124 ##Beastie Bits	Err	codemadness.org	70
i 48125 + [HardenedBSD will stop supporting 10-STABLE on 10 August 2018](https://groups.google.com/a/hardenedbsd.org/forum/#!topic/users/xvU0g-g1l5U)	Err	codemadness.org	70
i 48126 + [GSoC 2018 Reports: Integrate libFuzzer with the Basesystem, Part 2](https://blog.netbsd.org/tnf/entry/gsoc_2018_reports_integrate_libfuzzer1)	Err	codemadness.org	70
i 48127 + [ZFS Boot Environments at PBUG](https://vermaden.wordpress.com/2018/07/30/zfs-boot-environments-at-pbug/)	Err	codemadness.org	70
i 48128 + [Second Editions versus the Publishing Business](https://blather.michaelwlucas.com/archives/3229)	Err	codemadness.org	70
i 48129 + [Theo de Raadt on "unveil(2) usage in base"](https://undeadly.org/cgi?action=article;sid=20180728063716)	Err	codemadness.org	70
i 48130 + [rtadvd(8) has been replaced by rad(8)](https://undeadly.org/cgi?action=article;sid=20180724072205)	Err	codemadness.org	70
i 48131 + [BSD Users Stockholm Meetup #3](https://www.meetup.com/BSD-Users-Stockholm/events/253447019/)	Err	codemadness.org	70
i 48132 + [Changes to NetBSD release support policy](https://blog.netbsd.org/tnf/entry/changes_to_netbsd_release_support)	Err	codemadness.org	70
i 48133 + [The future of HAMMER1](http://lists.dragonflybsd.org/pipermail/users/2018-July/357832.html)	Err	codemadness.org	70
i 48134 ***	Err	codemadness.org	70
i 48135 	Err	codemadness.org	70
i 48136 **Tarsnap**	Err	codemadness.org	70
i 48137 	Err	codemadness.org	70
i 48138 ##Feedback/Questions	Err	codemadness.org	70
i 48139 + Rodriguez - [A Question](http://dpaste.com/0Y1B75Q#wrap)	Err	codemadness.org	70
i 48140 + Shane - [About ZFS Mostly](http://dpaste.com/32YGNBY#wrap)	Err	codemadness.org	70
i 48141 + Leif - [ZFS less than 8gb](http://dpaste.com/2GY6HHC#wrap)	Err	codemadness.org	70
i 48142 + Wayne - [ZFS vs EMC](http://dpaste.com/17PSCXC#wrap)	Err	codemadness.org	70
i 48143 ***	Err	codemadness.org	70
i 48144 	Err	codemadness.org	70
i 48145 - Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [feedback@bsdnow.tv](mailto:feedback@bsdnow.tv)	Err	codemadness.org	70
i 48146 
]]> Err codemadness.org 70 i 48147
Err codemadness.org 70 i 48148 https://fireside.fm/player/v2/FYhhasNR+gaY1HKEj Err codemadness.org 70 i 48149 Err codemadness.org 70 i 48150 ]]> Err codemadness.org 70 i 48151 Err codemadness.org 70 i 48152
Err codemadness.org 70 i 48153 Err codemadness.org 70 i 48154 Episode 257: Great NetBSD 8 | BSD Now 257 Err codemadness.org 70 i 48155 https://www.bsdnow.tv/257 Err codemadness.org 70 i 48156 http://feed.jupiter.zone/bsdnow#entry-2354 Err codemadness.org 70 i 48157 Thu, 02 Aug 2018 00:00:00 -0700 Err codemadness.org 70 i 48158 Allan Jude Err codemadness.org 70 i 48159 Err codemadness.org 70 i 48160 full Err codemadness.org 70 i 48161 Allan Jude Err codemadness.org 70 i 48162 NetBSD 8.0 available, FreeBSD on Scaleway’s ARM64 VPS, encrypted backups with OpenBSD, Dragonfly server storage upgrade, zpool checkpoints, g2k18 hackathon reports, and more. Err codemadness.org 70 i 48163 1:23:11 Err codemadness.org 70 i 48164 no Err codemadness.org 70 i 48165 Err codemadness.org 70 i 48166 NetBSD 8.0 available, FreeBSD on Scaleway’s ARM64 VPS, encrypted backups with OpenBSD, Dragonfly server storage upgrade, zpool checkpoints, g2k18 hackathon reports, and more. Err codemadness.org 70 i 48167 <hr> Err codemadness.org 70 i 48168 <p>##Headlines<br> Err codemadness.org 70 i 48169 <a href="https://www.netbsd.org/releases/formal-8/NetBSD-8.0.html">NetBSD v8.0 Released</a></p> Err codemadness.org 70 i 48170 <blockquote> Err codemadness.org 70 i 48171 <p>The NetBSD Project is pleased to announce NetBSD 8.0, the sixteenth major release of the NetBSD operating system.</p> Err codemadness.org 70 i 48172 </blockquote> Err codemadness.org 70 i 48173 <blockquote> Err codemadness.org 70 i 48174 <p>This release brings stability improvements, hundreds of bug fixes, and many new features.</p> Err codemadness.org 70 i 48175 </blockquote> Err codemadness.org 70 i 48176 <ul> Err codemadness.org 70 i 48177 <li> Err codemadness.org 70 i 48178 <p>Some highlights of the NetBSD 8.0 release are:</p> Err codemadness.org 70 i 48179 </li> Err codemadness.org 70 i 48180 <li> Err codemadness.org 70 i 48181 <p>USB stack rework, USB3 support added.</p> Err codemadness.org 70 i 48182 </li> Err codemadness.org 70 i 48183 <li> Err codemadness.org 70 i 48184 <p>In-kernel audio mixer (audio_system(9)).</p> Err codemadness.org 70 i 48185 </li> Err codemadness.org 70 i 48186 <li> Err codemadness.org 70 i 48187 <p>Reproducible builds (MKREPRO, see mk.conf(5)).</p> Err codemadness.org 70 i 48188 </li> Err codemadness.org 70 i 48189 <li> Err codemadness.org 70 i 48190 <p>Full userland debug information (MKDEBUG, see mk.conf(5)) available. While most install media do not come with them (for size reasons), the debug and xdebug sets can be downloaded and extracted as needed later. They provide full symbol information for all base system and X binaries and libraries and allow better error reporting and (userland) crash analysis.</p> Err codemadness.org 70 i 48191 </li> Err codemadness.org 70 i 48192 <li> Err codemadness.org 70 i 48193 <p>PaX MPROTECT (W^X) memory protection enforced by default on some architectures with fine-grained memory protection and suitable ELF formats: i386, amd64, evbarm, landisk.</p> Err codemadness.org 70 i 48194 </li> Err codemadness.org 70 i 48195 <li> Err codemadness.org 70 i 48196 <p>PaX ASLR (Address Space Layout Randomization) enabled by default on: i386, amd64, evbarm, landisk, sparc64.</p> Err codemadness.org 70 i 48197 </li> Err codemadness.org 70 i 48198 <li> Err codemadness.org 70 i 48199 <p>Position independent executables by default for userland on: i386, amd64, arm, m68k, mips, sh3, sparc64.</p> Err codemadness.org 70 i 48200 </li> Err codemadness.org 70 i 48201 <li> Err codemadness.org 70 i 48202 <p>A new socket layer can(4) has been added for communication of devices on a CAN bus.</p> Err codemadness.org 70 i 48203 </li> Err codemadness.org 70 i 48204 <li> Err codemadness.org 70 i 48205 <p>A special pseudo interface ipsecif(4) for route-based VPNs has been added.</p> Err codemadness.org 70 i 48206 </li> Err codemadness.org 70 i 48207 <li> Err codemadness.org 70 i 48208 <p>Parts of the network stack have been made MP-safe. The kernel option NET_MPSAFE is required to enable this.</p> Err codemadness.org 70 i 48209 </li> Err codemadness.org 70 i 48210 <li> Err codemadness.org 70 i 48211 <p>Hardening of the network stack in general.</p> Err codemadness.org 70 i 48212 </li> Err codemadness.org 70 i 48213 <li> Err codemadness.org 70 i 48214 <p>Various WAPBL (the NetBSD file system “log” option) stability and performance improvements.</p> Err codemadness.org 70 i 48215 </li> Err codemadness.org 70 i 48216 <li> Err codemadness.org 70 i 48217 <p>Specific to i386 and amd64 CPUs:</p> Err codemadness.org 70 i 48218 </li> Err codemadness.org 70 i 48219 <li> Err codemadness.org 70 i 48220 <p>Meltdown mitigation: SVS (Separate Virtual Space), enabled by default.</p> Err codemadness.org 70 i 48221 </li> Err codemadness.org 70 i 48222 <li> Err codemadness.org 70 i 48223 <p>SpectreV2 mitigation: retpoline (support in gcc), used by default for kernels. Other hardware mitigations are also available.</p> Err codemadness.org 70 i 48224 </li> Err codemadness.org 70 i 48225 <li> Err codemadness.org 70 i 48226 <p>SpectreV4 mitigations available for Intel and AMD.</p> Err codemadness.org 70 i 48227 </li> Err codemadness.org 70 i 48228 <li> Err codemadness.org 70 i 48229 <p>PopSS workaround: user access to debug registers is turned off by default.</p> Err codemadness.org 70 i 48230 </li> Err codemadness.org 70 i 48231 <li> Err codemadness.org 70 i 48232 <p>Lazy FPU saving disabled on vulnerable Intel CPUs (“eagerfpu”).</p> Err codemadness.org 70 i 48233 </li> Err codemadness.org 70 i 48234 <li> Err codemadness.org 70 i 48235 <p>SMAP support.</p> Err codemadness.org 70 i 48236 </li> Err codemadness.org 70 i 48237 <li> Err codemadness.org 70 i 48238 <p>Improvement and hardening of the memory layout: W^X, fewer writable pages, better consistency, better performance.</p> Err codemadness.org 70 i 48239 </li> Err codemadness.org 70 i 48240 <li> Err codemadness.org 70 i 48241 <p>(U)EFI bootloader.</p> Err codemadness.org 70 i 48242 </li> Err codemadness.org 70 i 48243 <li> Err codemadness.org 70 i 48244 <p>Many evbarm kernels now use FDT (flat device tree) information (loadable at boot time from an external file) for device configuration, the number of kernels has decreased but the number of boards has vastly increased.</p> Err codemadness.org 70 i 48245 </li> Err codemadness.org 70 i 48246 <li> Err codemadness.org 70 i 48247 <p>Lots of updates to 3rd party software included:</p> Err codemadness.org 70 i 48248 </li> Err codemadness.org 70 i 48249 <li> Err codemadness.org 70 i 48250 <p>GCC 5.5 with support for Address Sanitizer and Undefined Behavior Sanitizer</p> Err codemadness.org 70 i 48251 </li> Err codemadness.org 70 i 48252 <li> Err codemadness.org 70 i 48253 <p>GDB 7.12</p> Err codemadness.org 70 i 48254 </li> Err codemadness.org 70 i 48255 <li> Err codemadness.org 70 i 48256 <p>GNU binutils 2.27</p> Err codemadness.org 70 i 48257 </li> Err codemadness.org 70 i 48258 <li> Err codemadness.org 70 i 48259 <p>Clang/LLVM 3.8.1</p> Err codemadness.org 70 i 48260 </li> Err codemadness.org 70 i 48261 <li> Err codemadness.org 70 i 48262 <p>OpenSSH 7.6</p> Err codemadness.org 70 i 48263 </li> Err codemadness.org 70 i 48264 <li> Err codemadness.org 70 i 48265 <p>OpenSSL 1.0.2k</p> Err codemadness.org 70 i 48266 </li> Err codemadness.org 70 i 48267 <li> Err codemadness.org 70 i 48268 <p>mdocml 1.14.1</p> Err codemadness.org 70 i 48269 </li> Err codemadness.org 70 i 48270 <li> Err codemadness.org 70 i 48271 <p>acpica 20170303</p> Err codemadness.org 70 i 48272 </li> Err codemadness.org 70 i 48273 <li> Err codemadness.org 70 i 48274 <p>ntp 4.2.8p11-o</p> Err codemadness.org 70 i 48275 </li> Err codemadness.org 70 i 48276 <li> Err codemadness.org 70 i 48277 <p>dhcpcd 7.0.6</p> Err codemadness.org 70 i 48278 </li> Err codemadness.org 70 i 48279 <li> Err codemadness.org 70 i 48280 <p>Lua 5.3.4</p> Err codemadness.org 70 i 48281 </li> Err codemadness.org 70 i 48282 </ul> Err codemadness.org 70 i 48283 <hr> Err codemadness.org 70 i 48284 <p>###<a href="https://community.online.net/t/freebsd-on-arm64/6678">Running FreeBSD on the ARM64 VPS from Scaleway</a></p> Err codemadness.org 70 i 48285 <blockquote> Err codemadness.org 70 i 48286 <p>I’ve been thinking about this 6 since 2017, but only yesterday signed up for an account and played around with the ARM64 offering.<br> Err codemadness.org 70 i 48287 Turns out it’s pretty great! KVM boots into UEFI, there’s a local VirtIO disk attached, no NBD junk required. So we can definitely run FreeBSD.<br> Err codemadness.org 70 i 48288 I managed to “depenguinate” a running instance, the notes are below. Would be great if Scaleway offered an official image instead :wink:<br> Err codemadness.org 70 i 48289 For some reason, unlike on x86 4, mounting additional volumes is not allowed 4 on ARM64 instances. So we’ll have to move the running Linux to a ramdisk using pivotroot and then we can do whatever to our one and only disk.<br> Err codemadness.org 70 i 48290 Spin up an instance with Ubuntu Zesty and ssh in.</p> Err codemadness.org 70 i 48291 </blockquote> Err codemadness.org 70 i 48292 <ul> Err codemadness.org 70 i 48293 <li>Prepare the system and change the root to a tmpfs:</li> Err codemadness.org 70 i 48294 </ul> Err codemadness.org 70 i 48295 <pre><code>apt install gdisk Err codemadness.org 70 i 48296 mount -t tmpfs tmpfs /tmp Err codemadness.org 70 i 48297 cp -r /bin /sbin /etc /dev /root /home /lib /run /usr /var /tmp Err codemadness.org 70 i 48298 mkdir /tmp/proc /tmp/sys /tmp/oldroot Err codemadness.org 70 i 48299 mount /dev/vda /tmp/oldroot Err codemadness.org 70 i 48300 mount --make-rprivate / Err codemadness.org 70 i 48301 pivotroot /tmp /tmp/oldroot Err codemadness.org 70 i 48302 for i in dev proc sys run; do mount --move /oldroot/$i /$i; done Err codemadness.org 70 i 48303 systemctl daemon-reload Err codemadness.org 70 i 48304 systemctl restart sshd Err codemadness.org 70 i 48305 </code></pre> Err codemadness.org 70 i 48306 <blockquote> Err codemadness.org 70 i 48307 <p>Now reconnect to ssh from a second terminal (note: rm the connection file if you use ControlPersist in ssh config), then exit the old session. Kill the old sshd process, restart or stop the rest of the stuff using the old disk:</p> Err codemadness.org 70 i 48308 </blockquote> Err codemadness.org 70 i 48309 <pre><code>pkill -f notty Err codemadness.org 70 i 48310 sed -ibak 's/RefuseManualStart.$//g' /lib/systemd/system/dbus.service Err codemadness.org 70 i 48311 systemctl daemon-reload Err codemadness.org 70 i 48312 systemctl restart dbus Err codemadness.org 70 i 48313 systemctl daemon-reexec Err codemadness.org 70 i 48314 systemctl stop user@0 ntp cron systemd-logind Err codemadness.org 70 i 48315 systemctl restart systemd-journald systemd-udevd Err codemadness.org 70 i 48316 pkill agetty Err codemadness.org 70 i 48317 pkill rsyslogd Err codemadness.org 70 i 48318 </code></pre> Err codemadness.org 70 i 48319 <blockquote> Err codemadness.org 70 i 48320 <p>Check that nothing is touching /oldroot:</p> Err codemadness.org 70 i 48321 </blockquote> Err codemadness.org 70 i 48322 <pre><code>lsof | grep oldroot Err codemadness.org 70 i 48323 </code></pre> Err codemadness.org 70 i 48324 <blockquote> Err codemadness.org 70 i 48325 <p>There will probably be an old dbus-daemon, kill it.<br> Err codemadness.org 70 i 48326 And finally, unmount the old root and overwrite the hard disk with a memstick image:</p> Err codemadness.org 70 i 48327 </blockquote> Err codemadness.org 70 i 48328 <pre><code>umount -R /oldroot Err codemadness.org 70 i 48329 wget https://download.freebsd.org/ftp/snapshots/arm64/aarch64/ISO-IMAGES/12.0/FreeBSD-12.0-CURRENT-arm64-aarch64-20180719-r336479-mini-memstick.img.xz Err codemadness.org 70 i 48330 xzcat FreeBSD-12.0-CURRENT-arm64-aarch64-20180719-r336479-mini-memstick.img.xz | dd if=/dev/stdin of=/dev/vda bs=1M Err codemadness.org 70 i 48331 </code></pre> Err codemadness.org 70 i 48332 <blockquote> Err codemadness.org 70 i 48333 <p>(Look for the newest snapshot, don’t copy paste the July 19 link above if you’re reading this in the future. Actually maybe use a release instead of CURRENT…)<br> Err codemadness.org 70 i 48334 Now, fix the GPT: move the secondary table to the end of the disk and resize the table.<br> Err codemadness.org 70 i 48335 It’s important to resize here, as FreeBSD does not do that and silently creates partitions that won’t persist across reboots</p> Err codemadness.org 70 i 48336 </blockquote> Err codemadness.org 70 i 48337 <pre><code>gdisk /dev/vda Err codemadness.org 70 i 48338 x Err codemadness.org 70 i 48339 e Err codemadness.org 70 i 48340 s Err codemadness.org 70 i 48341 4 Err codemadness.org 70 i 48342 w Err codemadness.org 70 i 48343 y Err codemadness.org 70 i 48344 </code></pre> Err codemadness.org 70 i 48345 <p>And reboot. (You might actually want to hard reboot here: for some reason on the first reboot from Linux, pressing the any-key to enter the prompt in the loader hangs the console for me.)</p> Err codemadness.org 70 i 48346 <p>I didn’t have to go into the ESC menu and choose the local disk in the boot manager, it seems to boot from disk automatically.</p> Err codemadness.org 70 i 48347 <p>Now we’re in the FreeBSD EFI loader.<br> Err codemadness.org 70 i 48348 For some reason, the (recently fixed? 2) serial autodetection from EFI is not working correctly. Or something.<br> Err codemadness.org 70 i 48349 So you don’t get console output by default.<br> Err codemadness.org 70 i 48350 To fix, you have to run these commands in the boot loader command prompt:</p> Err codemadness.org 70 i 48351 <pre><code>set console=comconsole,efi Err codemadness.org 70 i 48352 boot Err codemadness.org 70 i 48353 </code></pre> Err codemadness.org 70 i 48354 <p>Ignore the warning about comconsole not being a valid console.<br> Err codemadness.org 70 i 48355 Since there’s at least one (efi) that the loader thinks is valid, it sets the whole variable.)</p> Err codemadness.org 70 i 48356 <p>(UPD: shouldn’t be necessary in the next snapshot)</p> Err codemadness.org 70 i 48357 <p>Now it’s a regular installation process!<br> Err codemadness.org 70 i 48358 When asked about partitioning, choose Shell, and manually add a partition and set up a root filesystem:</p> Err codemadness.org 70 i 48359 <pre><code>gpart add -t freebsd-zfs -a 4k -l zroot vtbd0 Err codemadness.org 70 i 48360 zpool create -R /mnt -O mountpoint=none -O atime=off zroot /dev/gpt/zroot Err codemadness.org 70 i 48361 zfs create -o canmount=off -o mountpoint=none zroot/ROOT Err codemadness.org 70 i 48362 zfs create -o mountpoint=/ zroot/ROOT/default Err codemadness.org 70 i 48363 zfs create -o mountpoint=/usr zroot/ROOT/default/usr Err codemadness.org 70 i 48364 zfs create -o mountpoint=/var zroot/ROOT/default/var Err codemadness.org 70 i 48365 zfs create -o mountpoint=/var/log zroot/ROOT/default/var/log Err codemadness.org 70 i 48366 zfs create -o mountpoint=/usr/home zroot/home Err codemadness.org 70 i 48367 zpool set bootfs=zroot/ROOT/default zroot Err codemadness.org 70 i 48368 exit Err codemadness.org 70 i 48369 </code></pre> Err codemadness.org 70 i 48370 <p>(In this example, I set up ZFS with a beadm-compatible layout which allows me to use Boot Environments.)</p> Err codemadness.org 70 i 48371 <p>In the post-install chroot shell, fix some configs like so:</p> Err codemadness.org 70 i 48372 <pre><code>echo 'zfsload=&quot;YES&quot;' &gt;&gt; /boot/loader.conf Err codemadness.org 70 i 48373 echo 'console=&quot;comconsole,efi&quot;' &gt;&gt; /boot/loader.conf Err codemadness.org 70 i 48374 echo 'vfs.zfs.arcmax=&quot;512M&quot;' &gt;&gt; /boot/loader.conf Err codemadness.org 70 i 48375 sysrc zfsenable=YES Err codemadness.org 70 i 48376 exit Err codemadness.org 70 i 48377 </code></pre> Err codemadness.org 70 i 48378 <p>(Yeah, for some reason, the loader does not load zfs.ko’s dependency opensolaris.ko automatically here. idk what even. It does on my desktop and laptop.)</p> Err codemadness.org 70 i 48379 <p>Now you can reboot into the installed system!!</p> Err codemadness.org 70 i 48380 <p>Here’s how you can set up IPv6 (and root’s ssh key) auto configuration on boot:</p> Err codemadness.org 70 i 48381 <pre><code>Pkg bootstrap Err codemadness.org 70 i 48382 pkg install curl Err codemadness.org 70 i 48383 curl https://raw.githubusercontent.com/scaleway/image-tools/master/bases/overlay-common/usr/local/bin/scw-metadata &gt; /usr/local/bin/scw-metadata Err codemadness.org 70 i 48384 chmod +x /usr/local/bin/scw-metadata Err codemadness.org 70 i 48385 echo '#!/bin/sh' &gt; /etc/rc.local Err codemadness.org 70 i 48386 echo 'PATH=/usr/local/bin:$PATH' &gt;&gt; /etc/rc.local Err codemadness.org 70 i 48387 echo 'eval $(scw-metadata)' &gt;&gt; /etc/rc.local Err codemadness.org 70 i 48388 echo 'echo $SSHPUBLICKEYS0KEY &gt; /root/.ssh/authorizedkeys' &gt;&gt; /etc/rc.local Err codemadness.org 70 i 48389 echo 'chmod 0400 /root/.ssh/authorizedkeys' &gt;&gt; /etc/rc.local Err codemadness.org 70 i 48390 echo 'ifconfig vtnet0 inet6 $IPV6ADDRESS/$IPV6NETMASK' &gt;&gt; /etc/rc.local Err codemadness.org 70 i 48391 echo 'route -6 add default $IPV6GATEWAY' &gt;&gt; /etc/rc.local Err codemadness.org 70 i 48392 mkdir /run Err codemadness.org 70 i 48393 mkdir /root/.ssh Err codemadness.org 70 i 48394 sh /etc/rc.local Err codemadness.org 70 i 48395 </code></pre> Err codemadness.org 70 i 48396 <blockquote> Err codemadness.org 70 i 48397 <p>And to fix incoming TCP connections, configure the DHCP client to change the broadcast address:</p> Err codemadness.org 70 i 48398 </blockquote> Err codemadness.org 70 i 48399 <p><code>echo 'interface &quot;vtnet0&quot; { supersede broadcast-address 255.255.255.255; }' &gt;&gt; /etc/dhclient.conf</code><br> Err codemadness.org 70 i 48400 <code>killall dhclient</code><br> Err codemadness.org 70 i 48401 <code>dhclient vtnet0</code></p> Err codemadness.org 70 i 48402 <ul> Err codemadness.org 70 i 48403 <li>Other random notes:</li> Err codemadness.org 70 i 48404 <li>keep in mind that -CURRENT snapshots come with a debugging kernel by default, which limits syscall performance by a lot, you might want to build your own 2 with config GENERIC-NODEBUG</li> Err codemadness.org 70 i 48405 <li>also disable heavy malloc debugging features by running ln -s ‘abort:false,junk:false’ /etc/malloc.conf (yes that’s storing config in a symlink)</li> Err codemadness.org 70 i 48406 <li>you can reuse the installer’s partition for swap</li> Err codemadness.org 70 i 48407 </ul> Err codemadness.org 70 i 48408 <hr> Err codemadness.org 70 i 48409 <p>* Digital Ocean **<br> Err codemadness.org 70 i 48410 <a href="http://do.co/bsdnow">http://do.co/bsdnow</a></p> Err codemadness.org 70 i 48411 <p>###<a href="https://dataswamp.org/~solene/2018-06-26-openbsd-easy-backup.html">Easy encrypted backups on OpenBSD with base tools</a></p> Err codemadness.org 70 i 48412 <blockquote> Err codemadness.org 70 i 48413 <p>Today’s topic is “Encrypted backups” using only OpenBSD base tools. I am planning to write a bigger article later about backups but it’s a wide topic with a lot of software to cover and a lot of explanations about the differents uses cases, needs, issues an solutions. Here I will stick on explaining how to make reliable backups for an OpenBSD system (my laptop).<br> Err codemadness.org 70 i 48414 What we need is the dump command (see man 8 dump for its man page). It’s an utility to make a backup for a filesystem, it can only make a backup of one filesystem at a time. On my laptop I only backup /home partition so this solution is suitable for me while still being easy.<br> Err codemadness.org 70 i 48415 Dump can do incremental backups, it means that it will only save what changed since the last backup of lower level. If you do not understand this, please refer to the dump man page.<br> Err codemadness.org 70 i 48416 What is very interesting with dump is that it honors nodump flag which is an extended attribute of a FFS filesystem. One can use the command chflags nodump /home/solene/Downloads to tells dump not do save that folder (under some circumstances). By default, dump will not save thoses files, EXCEPT for a level 0 backup.</p> Err codemadness.org 70 i 48417 </blockquote> Err codemadness.org 70 i 48418 <ul> Err codemadness.org 70 i 48419 <li>Important features of this backup solution:</li> Err codemadness.org 70 i 48420 <li>save files with attributes, permissions and flags</li> Err codemadness.org 70 i 48421 <li>can recreate a partition from a dump, restore files interactively, from a list or from its inode number (useful when you have files in lost+found)</li> Err codemadness.org 70 i 48422 <li>one dump = one file</li> Err codemadness.org 70 i 48423 </ul> Err codemadness.org 70 i 48424 <blockquote> Err codemadness.org 70 i 48425 <p>My process is to make a huge dump of level 0 and keep it on a remote server, then, once a week I make a level 1 backup which will contain everything changed since the last dump of level 0, and everyday I do a level 2 backup of my files. The level 2 will contain latest files and the files changing a lot, which are often the most interesting. The level 1 backup is important because it will offload a lot of changes for the level 2.<br> Err codemadness.org 70 i 48426 Let me explain: let says my full backup is 60 GB, full of pictures, sources files, GUI applications data files etc… A level 1 backup will contain every new picture, new projects, new GUI files etc… since the full backup, which will produce bigger and bigger dump over time, usually it is only 100 MB to 1GB. As I don’t add new pictures everyday or use new software everyday, the level 2 will take care of most littles changes to my data, like source code edited, little works on files etc… The level 2 backup is really small, I try to keep it under 50 MB so I can easily send it on my remote server everyday.<br> Err codemadness.org 70 i 48427 One could you more dump level, up to level 9, but keep in mind that those are incremental. In my case, if I need to restore all my partition, I will need to use level 0, 1 and 2 to get up to latest backup state. If you want to restore a file deleted a few days ago, you need to remember in which level its latest version is.<br> Err codemadness.org 70 i 48428 History note: dump was designed to be used with magnetic tapes.</p> Err codemadness.org 70 i 48429 </blockquote> Err codemadness.org 70 i 48430 <ul> Err codemadness.org 70 i 48431 <li>See the article for the remainder of the article</li> Err codemadness.org 70 i 48432 </ul> Err codemadness.org 70 i 48433 <hr> Err codemadness.org 70 i 48434 <p>##News Roundup<br> Err codemadness.org 70 i 48435 <a href="http://lists.dragonflybsd.org/pipermail/users/2018-July/357809.html">Status of DFly server storage upgrades (Matt Dillon)</a></p> Err codemadness.org 70 i 48436 <blockquote> Err codemadness.org 70 i 48437 <p>Last month we did some storage upgrades, particularly of internet-facing machines for package and OS distribution. Yesterday we did a number of additional upgrades, described below. All using funds generously donated by everyone!</p> Err codemadness.org 70 i 48438 </blockquote> Err codemadness.org 70 i 48439 <blockquote> Err codemadness.org 70 i 48440 <p>The main repository server received a 2TB SSD to replace the HDDs it was using before. This will improve access to a number of things maintained by this server, including the mail archives, and gives the main repo server more breathing room for repository expansion. Space was at a premium before. Now there’s plenty.</p> Err codemadness.org 70 i 48441 </blockquote> Err codemadness.org 70 i 48442 <blockquote> Err codemadness.org 70 i 48443 <p>Monster, the quad socket opteron which we currently use as the database builder and repository that we export to our public grok service (<a href="http://grok.dragonflybsd.org">grok.dragonflybsd.org</a>) received a 512G SSD to add swap space for swapcache, to help cache the grok meta-data. It now has 600GB of swapcache configured. Over the next few weeks we will also be changing the grok updates to ping-pong between the two 4TB data drives it received in the last upgrade so we can do concurrent updates and web accesses without them tripping over each other performance-wise.</p> Err codemadness.org 70 i 48444 </blockquote> Err codemadness.org 70 i 48445 <blockquote> Err codemadness.org 70 i 48446 <p>The main developer box, Leaf, received a 2TB SSD and we are currently in the midst of migrating all the developer accounts in /home and /build from its old HDDs to its new SSD. This machine serves developer repos, developer web stuff, our home page and wiki, etc, so those will become snappier as well.</p> Err codemadness.org 70 i 48447 </blockquote> Err codemadness.org 70 i 48448 <blockquote> Err codemadness.org 70 i 48449 <p>Hard drives are becoming real dinosaurs. We still have a few left from the old days but in terms of active use the only HDDs we feel we really need to keep now are the ones we use for backups and grok data, owing to the amount of storage needed for those functions.</p> Err codemadness.org 70 i 48450 </blockquote> Err codemadness.org 70 i 48451 <blockquote> Err codemadness.org 70 i 48452 <p>Five years ago when we received the blade server that now sits in the colo, we had a small 256G SSD for root on every blade, and everything else used HDDs. To make things operate smoothly, most of that 256G root SSD was assigned to swapcache (200G of it, in fact, in most cases). Even just 2 years ago replacing all those HDDs with SSDs, even just the ones being used to actively serve data and support developers, would have been cost prohibitive. But today it isn’t and the only HDDs we really need anywhere are for backups or certain very large bits of bulk data (aka the grok source repository and index). The way things are going, even the backup drives will probably become SSDs over the next two years.</p> Err codemadness.org 70 i 48453 </blockquote> Err codemadness.org 70 i 48454 <hr> Err codemadness.org 70 i 48455 <p>###iX ad spot<br> Err codemadness.org 70 i 48456 <a href="https://www.ixsystems.com/blog/oscon2018/">OSCON 2018 Recap</a></p> Err codemadness.org 70 i 48457 <hr> Err codemadness.org 70 i 48458 <p>###<a href="http://oshogbo.vexillium.org/blog/46/">zpool checkpoints</a></p> Err codemadness.org 70 i 48459 <blockquote> Err codemadness.org 70 i 48460 <p>In March, to FreeBSD landed a very interesting feature called ‘zpool checkpoints’. Before we jump straight into the topic, let’s take a step back and look at another ZFS feature called ‘snapshot’. Snapshot allows us to create an image of our single file systems. This gives us the option to modify data on the dataset without the fear of losing some data.</p> Err codemadness.org 70 i 48461 </blockquote> Err codemadness.org 70 i 48462 <blockquote> Err codemadness.org 70 i 48463 <p>A very good example of how to use ZFS snapshot is during an upgrade of database schema. Let us consider a situation where we have a few scripts which change our schema. Sometimes we are unable to upgrade in one transaction (for example, when we attempt to alter a table and then update it in single transaction). If our database is on dataset, we can just snapshot it, and if something goes wrong, simply rollback the file system to its previous state.</p> Err codemadness.org 70 i 48464 </blockquote> Err codemadness.org 70 i 48465 <blockquote> Err codemadness.org 70 i 48466 <p>The problem with snapshot is that it works only on a single dataset. If we added some dataset, we wouldn’t then be able to create the snapshot which would rollback that operation. The same with changing the attributes of a dataset. If we change the compression on the dataset, we cannot rollback it. We would need to change that manually.</p> Err codemadness.org 70 i 48467 </blockquote> Err codemadness.org 70 i 48468 <blockquote> Err codemadness.org 70 i 48469 <p>Another interesting problem involves upgrading the whole operating system when we upgrade system with a new ZFS version. What if we start upgrading our dataset and our kernel begins to crash? (If you use FreeBSD, I doubt you will ever have had that experience but still…). If we rollback to the old kernel, there is a chance the dataset will stop working because the new kernel doesn’t know how to use the new features.</p> Err codemadness.org 70 i 48470 </blockquote> Err codemadness.org 70 i 48471 <blockquote> Err codemadness.org 70 i 48472 <p>Zpool checkpoints is the solution to all those problems. Instead of taking a single snapshot of the dataset, we can now take a snapshot of the whole pool. That means we will not only rollback the data but also all the metadata. If we rewind to the checkpoint, all our ZFS properties will be rolled back; the upgrade will be rolledback, and even the creation/deletion of the dataset, and the snapshot, will be rolledback.</p> Err codemadness.org 70 i 48473 </blockquote> Err codemadness.org 70 i 48474 <ul> Err codemadness.org 70 i 48475 <li>Zpool Checkpoint has introduced a few simple functions:</li> Err codemadness.org 70 i 48476 <li>For a creating checkpoint:</li> Err codemadness.org 70 i 48477 </ul> Err codemadness.org 70 i 48478 <p><code>zpool checkpoint &lt;pool&gt;</code></p> Err codemadness.org 70 i 48479 <ul> Err codemadness.org 70 i 48480 <li>Rollbacks state to checkpoint and remove the checkpoint:</li> Err codemadness.org 70 i 48481 </ul> Err codemadness.org 70 i 48482 <p><code>zpool import -- rewind-to-checkpoint &lt;pool&gt;</code></p> Err codemadness.org 70 i 48483 <ul> Err codemadness.org 70 i 48484 <li>Mount the pool read only - this does not rollback the data:</li> Err codemadness.org 70 i 48485 </ul> Err codemadness.org 70 i 48486 <p><code>zpool import --read-only=on --rewind-to-checkpoint</code></p> Err codemadness.org 70 i 48487 <ul> Err codemadness.org 70 i 48488 <li>Remove the checkpoint</li> Err codemadness.org 70 i 48489 </ul> Err codemadness.org 70 i 48490 <p><code>zpool checkpoint --discard &lt;pool&gt; or zpool checkpoint -d &lt;pool&gt;</code></p> Err codemadness.org 70 i 48491 <ul> Err codemadness.org 70 i 48492 <li>With this powerful feature we need to remember some safety rules:</li> Err codemadness.org 70 i 48493 <li>Scrub will work only on data that isn’t in checkpool.</li> Err codemadness.org 70 i 48494 <li>You can’t remove vdev if you have a checkpoint.</li> Err codemadness.org 70 i 48495 <li>You can’t split mirror.</li> Err codemadness.org 70 i 48496 <li>Reguid will not work either.</li> Err codemadness.org 70 i 48497 <li>Create a checkpoint when one of the disks is removed…</li> Err codemadness.org 70 i 48498 </ul> Err codemadness.org 70 i 48499 <blockquote> Err codemadness.org 70 i 48500 <p>For me, this feature is incredibly useful, especially when upgrading an operating system, or when I need to experiment with additional data sets. If you speak Polish, I have some additional information for you. During the first Polish BSD user group meeting, I had the opportunity to give a short talk about this feature. Here you find the video of that talk, and here is the slideshow.</p> Err codemadness.org 70 i 48501 </blockquote> Err codemadness.org 70 i 48502 <blockquote> Err codemadness.org 70 i 48503 <p>I would like to offer my thanks to Serapheim Dimitropoulos for developing this feature, and for being so kind in sharing with me so many of its intricacies. If you are interested in knowing more about the technical details of this feature, you should check out Serapheim’s blog, and his video about checkpoints.</p> Err codemadness.org 70 i 48504 </blockquote> Err codemadness.org 70 i 48505 <hr> Err codemadness.org 70 i 48506 <p>###g2k18 Reports</p> Err codemadness.org 70 i 48507 <ul> Err codemadness.org 70 i 48508 <li><a href="https://undeadly.org/cgi?action=article;sid=20180728110010">g2k18 hackathon report: Ingo Schwarze on sed(1) bugfixing with Martijn van Duren, and about other small userland stuff</a></li> Err codemadness.org 70 i 48509 <li><a href="https://undeadly.org/cgi?action=article;sid=20180726184322">g2k18 hackathon report: Kenneth Westerback on dhcpd(8) fixes, disklabel(8) refactoring and more</a></li> Err codemadness.org 70 i 48510 <li><a href="https://undeadly.org/cgi?action=article;sid=20180716193511">g2k18 Hackathon Report: Marc Espie on ports and packages progress</a></li> Err codemadness.org 70 i 48511 <li><a href="https://undeadly.org/cgi?action=article;sid=20180716202456">g2k18 hackathon report: Antoine Jacoutot on porting</a></li> Err codemadness.org 70 i 48512 <li><a href="https://undeadly.org/cgi?action=article;sid=20180717074543">g2k18 hackathon report: Matthieu Herrb on font caches and xenodm</a></li> Err codemadness.org 70 i 48513 <li><a href="https://undeadly.org/cgi?action=article;sid=20180718060313">g2k18 hackathon report: Florian Obser on rtadvd(8) -&gt; rad(8) progress (actually, rewrite)</a></li> Err codemadness.org 70 i 48514 <li><a href="https://undeadly.org/cgi?action=article;sid=20180719100833">g2k18 Hackathon Report: Klemens Nanni on improvements to route(8), pfctl(8), and mount(2)</a></li> Err codemadness.org 70 i 48515 <li><a href="https://undeadly.org/cgi?action=article;sid=20180721053002">g2k18 hackathon report: Carlos Cardenas on vmm/vmd progress, LACP</a></li> Err codemadness.org 70 i 48516 <li><a href="https://undeadly.org/cgi?action=article;sid=20180721053011">g2k18 hackathon report: Claudio Jeker on OpenBGPD developments</a></li> Err codemadness.org 70 i 48517 <li><a href="https://i.imgur.com/3t3cJF6.jpg">Picture of the last day of the g2k18 hackathon in Ljubljana, Slovenia</a></li> Err codemadness.org 70 i 48518 </ul> Err codemadness.org 70 i 48519 <hr> Err codemadness.org 70 i 48520 <p>##Beastie Bits</p> Err codemadness.org 70 i 48521 <ul> Err codemadness.org 70 i 48522 <li><a href="https://www.geeklan.co.uk/?p=2266">Something blogged (on pkgsrcCon 2018)</a></li> Err codemadness.org 70 i 48523 <li><a href="https://blog.netbsd.org/tnf/entry/gsoc_2018_reports_configuration_files">GSoC 2018 Reports: Configuration files versioning in pkgsrc, Part 1</a></li> Err codemadness.org 70 i 48524 <li><a href="https://bsd.network/@mulander/100390180499807877">There should be a global ‘awareness’ week for developers</a></li> Err codemadness.org 70 i 48525 <li><a href="https://bsd-pl.org/en">Polish BSD User Group – Upcoming Meeting: Aug 9th 2018</a></li> Err codemadness.org 70 i 48526 <li><a href="http://ukopenbsdusers.saneusergroup.org.uk/pipermail/uk-openbsd-users/2018-July/000430.html">London BSD User Group – Upcoming Meeting: Aug 14th 2018</a></li> Err codemadness.org 70 i 48527 <li><a href="http://whyzfsisbetter.com/">Phillip Smith’s collection of reasons why ZFS is better so that he does not have to repeat<br> Err codemadness.org 70 i 48528 himself all the time</a></li> Err codemadness.org 70 i 48529 <li><a href="https://2018.eurobsdcon.org/registration-is-open/">EuroBSDCon 2018: Sept 20-23rd in Romania – Register NOW!</a></li> Err codemadness.org 70 i 48530 <li><a href="https://www.meetbsd.com/call-for-papers/">MeetBSD 2018: Oct 19-20 in Santa Clara, California. Call for Papers closes on Aug 12</a></li> Err codemadness.org 70 i 48531 </ul> Err codemadness.org 70 i 48532 <hr> Err codemadness.org 70 i 48533 <p><strong>Tarsnap</strong></p> Err codemadness.org 70 i 48534 <p>##Feedback/Questions</p> Err codemadness.org 70 i 48535 <ul> Err codemadness.org 70 i 48536 <li>Dale - <a href="http://dpaste.com/1K452Y7#wrap">L2ARC recommendations &amp; drive age question</a></li> Err codemadness.org 70 i 48537 <li>Todd - <a href="http://dpaste.com/0WWHZ3E#wrap">ZFS &amp; S3</a></li> Err codemadness.org 70 i 48538 <li>efraim - <a href="http://dpaste.com/36YP39B#wrap">License Poem</a></li> Err codemadness.org 70 i 48539 <li>Henrick - <a href="http://dpaste.com/21D1KWA#wrap">Yet another ZFS question</a></li> Err codemadness.org 70 i 48540 </ul> Err codemadness.org 70 i 48541 <hr> Err codemadness.org 70 i 48542 <ul> Err codemadness.org 70 i 48543 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 48544 </ul> Err codemadness.org 70 i 48545 <hr> Err codemadness.org 70 i 48546 Err codemadness.org 70 i 48547 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, arm64, encrypted backups, zpool checkpoints, g2k18 reports Err codemadness.org 70 i 48548 Err codemadness.org 70 i 48549 NetBSD 8.0 available, FreeBSD on Scaleway’s ARM64 VPS, encrypted backups with OpenBSD, Dragonfly server storage upgrade, zpool checkpoints, g2k18 hackathon reports, and more.
Err codemadness.org 70 i 48550

Err codemadness.org 70 i 48551 Err codemadness.org 70 i 48552

##Headlines
Err codemadness.org 70 i 48553 ###NetBSD v8.0 Released

Err codemadness.org 70 i 48554 Err codemadness.org 70 i 48555
Err codemadness.org 70 i 48556

The NetBSD Project is pleased to announce NetBSD 8.0, the sixteenth major release of the NetBSD operating system.

Err codemadness.org 70 i 48557
Err codemadness.org 70 i 48558 Err codemadness.org 70 i 48559
Err codemadness.org 70 i 48560

This release brings stability improvements, hundreds of bug fixes, and many new features.

Err codemadness.org 70 i 48561
Err codemadness.org 70 i 48562 Err codemadness.org 70 i 48563
    Err codemadness.org 70 i 48564
  • Err codemadness.org 70 i 48565

    Some highlights of the NetBSD 8.0 release are:

    Err codemadness.org 70 i 48566
  • Err codemadness.org 70 i 48567
  • Err codemadness.org 70 i 48568

    USB stack rework, USB3 support added.

    Err codemadness.org 70 i 48569
  • Err codemadness.org 70 i 48570
  • Err codemadness.org 70 i 48571

    In-kernel audio mixer (audio_system(9)).

    Err codemadness.org 70 i 48572
  • Err codemadness.org 70 i 48573
  • Err codemadness.org 70 i 48574

    Reproducible builds (MKREPRO, see mk.conf(5)).

    Err codemadness.org 70 i 48575
  • Err codemadness.org 70 i 48576
  • Err codemadness.org 70 i 48577

    Full userland debug information (MKDEBUG, see mk.conf(5)) available. While most install media do not come with them (for size reasons), the debug and xdebug sets can be downloaded and extracted as needed later. They provide full symbol information for all base system and X binaries and libraries and allow better error reporting and (userland) crash analysis.

    Err codemadness.org 70 i 48578
  • Err codemadness.org 70 i 48579
  • Err codemadness.org 70 i 48580

    PaX MPROTECT (W^X) memory protection enforced by default on some architectures with fine-grained memory protection and suitable ELF formats: i386, amd64, evbarm, landisk.

    Err codemadness.org 70 i 48581
  • Err codemadness.org 70 i 48582
  • Err codemadness.org 70 i 48583

    PaX ASLR (Address Space Layout Randomization) enabled by default on: i386, amd64, evbarm, landisk, sparc64.

    Err codemadness.org 70 i 48584
  • Err codemadness.org 70 i 48585
  • Err codemadness.org 70 i 48586

    Position independent executables by default for userland on: i386, amd64, arm, m68k, mips, sh3, sparc64.

    Err codemadness.org 70 i 48587
  • Err codemadness.org 70 i 48588
  • Err codemadness.org 70 i 48589

    A new socket layer can(4) has been added for communication of devices on a CAN bus.

    Err codemadness.org 70 i 48590
  • Err codemadness.org 70 i 48591
  • Err codemadness.org 70 i 48592

    A special pseudo interface ipsecif(4) for route-based VPNs has been added.

    Err codemadness.org 70 i 48593
  • Err codemadness.org 70 i 48594
  • Err codemadness.org 70 i 48595

    Parts of the network stack have been made MP-safe. The kernel option NET_MPSAFE is required to enable this.

    Err codemadness.org 70 i 48596
  • Err codemadness.org 70 i 48597
  • Err codemadness.org 70 i 48598

    Hardening of the network stack in general.

    Err codemadness.org 70 i 48599
  • Err codemadness.org 70 i 48600
  • Err codemadness.org 70 i 48601

    Various WAPBL (the NetBSD file system “log” option) stability and performance improvements.

    Err codemadness.org 70 i 48602
  • Err codemadness.org 70 i 48603
  • Err codemadness.org 70 i 48604

    Specific to i386 and amd64 CPUs:

    Err codemadness.org 70 i 48605
  • Err codemadness.org 70 i 48606
  • Err codemadness.org 70 i 48607

    Meltdown mitigation: SVS (Separate Virtual Space), enabled by default.

    Err codemadness.org 70 i 48608
  • Err codemadness.org 70 i 48609
  • Err codemadness.org 70 i 48610

    SpectreV2 mitigation: retpoline (support in gcc), used by default for kernels. Other hardware mitigations are also available.

    Err codemadness.org 70 i 48611
  • Err codemadness.org 70 i 48612
  • Err codemadness.org 70 i 48613

    SpectreV4 mitigations available for Intel and AMD.

    Err codemadness.org 70 i 48614
  • Err codemadness.org 70 i 48615
  • Err codemadness.org 70 i 48616

    PopSS workaround: user access to debug registers is turned off by default.

    Err codemadness.org 70 i 48617
  • Err codemadness.org 70 i 48618
  • Err codemadness.org 70 i 48619

    Lazy FPU saving disabled on vulnerable Intel CPUs (“eagerfpu”).

    Err codemadness.org 70 i 48620
  • Err codemadness.org 70 i 48621
  • Err codemadness.org 70 i 48622

    SMAP support.

    Err codemadness.org 70 i 48623
  • Err codemadness.org 70 i 48624
  • Err codemadness.org 70 i 48625

    Improvement and hardening of the memory layout: W^X, fewer writable pages, better consistency, better performance.

    Err codemadness.org 70 i 48626
  • Err codemadness.org 70 i 48627
  • Err codemadness.org 70 i 48628

    (U)EFI bootloader.

    Err codemadness.org 70 i 48629
  • Err codemadness.org 70 i 48630
  • Err codemadness.org 70 i 48631

    Many evbarm kernels now use FDT (flat device tree) information (loadable at boot time from an external file) for device configuration, the number of kernels has decreased but the number of boards has vastly increased.

    Err codemadness.org 70 i 48632
  • Err codemadness.org 70 i 48633
  • Err codemadness.org 70 i 48634

    Lots of updates to 3rd party software included:

    Err codemadness.org 70 i 48635
  • Err codemadness.org 70 i 48636
  • Err codemadness.org 70 i 48637

    GCC 5.5 with support for Address Sanitizer and Undefined Behavior Sanitizer

    Err codemadness.org 70 i 48638
  • Err codemadness.org 70 i 48639
  • Err codemadness.org 70 i 48640

    GDB 7.12

    Err codemadness.org 70 i 48641
  • Err codemadness.org 70 i 48642
  • Err codemadness.org 70 i 48643

    GNU binutils 2.27

    Err codemadness.org 70 i 48644
  • Err codemadness.org 70 i 48645
  • Err codemadness.org 70 i 48646

    Clang/LLVM 3.8.1

    Err codemadness.org 70 i 48647
  • Err codemadness.org 70 i 48648
  • Err codemadness.org 70 i 48649

    OpenSSH 7.6

    Err codemadness.org 70 i 48650
  • Err codemadness.org 70 i 48651
  • Err codemadness.org 70 i 48652

    OpenSSL 1.0.2k

    Err codemadness.org 70 i 48653
  • Err codemadness.org 70 i 48654
  • Err codemadness.org 70 i 48655

    mdocml 1.14.1

    Err codemadness.org 70 i 48656
  • Err codemadness.org 70 i 48657
  • Err codemadness.org 70 i 48658

    acpica 20170303

    Err codemadness.org 70 i 48659
  • Err codemadness.org 70 i 48660
  • Err codemadness.org 70 i 48661

    ntp 4.2.8p11-o

    Err codemadness.org 70 i 48662
  • Err codemadness.org 70 i 48663
  • Err codemadness.org 70 i 48664

    dhcpcd 7.0.6

    Err codemadness.org 70 i 48665
  • Err codemadness.org 70 i 48666
  • Err codemadness.org 70 i 48667

    Lua 5.3.4

    Err codemadness.org 70 i 48668
  • Err codemadness.org 70 i 48669
Err codemadness.org 70 i 48670 Err codemadness.org 70 i 48671


Err codemadness.org 70 i 48672 Err codemadness.org 70 i 48673

###Running FreeBSD on the ARM64 VPS from Scaleway

Err codemadness.org 70 i 48674 Err codemadness.org 70 i 48675
Err codemadness.org 70 i 48676

I’ve been thinking about this 6 since 2017, but only yesterday signed up for an account and played around with the ARM64 offering.
Err codemadness.org 70 i 48677 Turns out it’s pretty great! KVM boots into UEFI, there’s a local VirtIO disk attached, no NBD junk required. So we can definitely run FreeBSD.
Err codemadness.org 70 i 48678 I managed to “depenguinate” a running instance, the notes are below. Would be great if Scaleway offered an official image instead :wink:
Err codemadness.org 70 i 48679 For some reason, unlike on x86 4, mounting additional volumes is not allowed 4 on ARM64 instances. So we’ll have to move the running Linux to a ramdisk using pivot_root and then we can do whatever to our one and only disk.
Err codemadness.org 70 i 48680 Spin up an instance with Ubuntu Zesty and ssh in.

Err codemadness.org 70 i 48681
Err codemadness.org 70 i 48682 Err codemadness.org 70 i 48683
    Err codemadness.org 70 i 48684
  • Prepare the system and change the root to a tmpfs:
  • Err codemadness.org 70 i 48685
Err codemadness.org 70 i 48686 Err codemadness.org 70 i 48687
apt install gdisk	Err	codemadness.org	70
i 48688 mount -t tmpfs tmpfs /tmp	Err	codemadness.org	70
i 48689 cp -r /bin /sbin /etc /dev /root /home /lib /run /usr /var /tmp	Err	codemadness.org	70
i 48690 mkdir /tmp/proc /tmp/sys /tmp/oldroot	Err	codemadness.org	70
i 48691 mount /dev/vda /tmp/oldroot	Err	codemadness.org	70
i 48692 mount --make-rprivate /	Err	codemadness.org	70
i 48693 pivot_root /tmp /tmp/oldroot	Err	codemadness.org	70
i 48694 for i in dev proc sys run; do mount --move /oldroot/$i /$i; done	Err	codemadness.org	70
i 48695 systemctl daemon-reload	Err	codemadness.org	70
i 48696 systemctl restart sshd	Err	codemadness.org	70
i 48697 
Err codemadness.org 70 i 48698 Err codemadness.org 70 i 48699
Err codemadness.org 70 i 48700

Now reconnect to ssh from a second terminal (note: rm the connection file if you use ControlPersist in ssh config), then exit the old session. Kill the old sshd process, restart or stop the rest of the stuff using the old disk:

Err codemadness.org 70 i 48701
Err codemadness.org 70 i 48702 Err codemadness.org 70 i 48703
pkill -f notty	Err	codemadness.org	70
i 48704 sed -ibak 's/RefuseManualStart.*$//g' /lib/systemd/system/dbus.service	Err	codemadness.org	70
i 48705 systemctl daemon-reload	Err	codemadness.org	70
i 48706 systemctl restart dbus	Err	codemadness.org	70
i 48707 systemctl daemon-reexec	Err	codemadness.org	70
i 48708 systemctl stop user@0 ntp cron systemd-logind	Err	codemadness.org	70
i 48709 systemctl restart systemd-journald systemd-udevd	Err	codemadness.org	70
i 48710 pkill agetty	Err	codemadness.org	70
i 48711 pkill rsyslogd	Err	codemadness.org	70
i 48712 
Err codemadness.org 70 i 48713 Err codemadness.org 70 i 48714
Err codemadness.org 70 i 48715

Check that nothing is touching /oldroot:

Err codemadness.org 70 i 48716
Err codemadness.org 70 i 48717 Err codemadness.org 70 i 48718
lsof | grep oldroot	Err	codemadness.org	70
i 48719 
Err codemadness.org 70 i 48720 Err codemadness.org 70 i 48721
Err codemadness.org 70 i 48722

There will probably be an old dbus-daemon, kill it.
Err codemadness.org 70 i 48723 And finally, unmount the old root and overwrite the hard disk with a memstick image:

Err codemadness.org 70 i 48724
Err codemadness.org 70 i 48725 Err codemadness.org 70 i 48726
umount -R /oldroot	Err	codemadness.org	70
i 48727 wget https://download.freebsd.org/ftp/snapshots/arm64/aarch64/ISO-IMAGES/12.0/FreeBSD-12.0-CURRENT-arm64-aarch64-20180719-r336479-mini-memstick.img.xz	Err	codemadness.org	70
i 48728 xzcat FreeBSD-12.0-CURRENT-arm64-aarch64-20180719-r336479-mini-memstick.img.xz | dd if=/dev/stdin of=/dev/vda bs=1M	Err	codemadness.org	70
i 48729 
Err codemadness.org 70 i 48730 Err codemadness.org 70 i 48731
Err codemadness.org 70 i 48732

(Look for the newest snapshot, don’t copy paste the July 19 link above if you’re reading this in the future. Actually maybe use a release instead of CURRENT…)
Err codemadness.org 70 i 48733 Now, fix the GPT: move the secondary table to the end of the disk and resize the table.
Err codemadness.org 70 i 48734 It’s important to resize here, as FreeBSD does not do that and silently creates partitions that won’t persist across reboots

Err codemadness.org 70 i 48735
Err codemadness.org 70 i 48736 Err codemadness.org 70 i 48737
gdisk /dev/vda	Err	codemadness.org	70
i 48738 x	Err	codemadness.org	70
i 48739 e	Err	codemadness.org	70
i 48740 s	Err	codemadness.org	70
i 48741 4	Err	codemadness.org	70
i 48742 w	Err	codemadness.org	70
i 48743 y	Err	codemadness.org	70
i 48744 
Err codemadness.org 70 i 48745 Err codemadness.org 70 i 48746

And reboot. (You might actually want to hard reboot here: for some reason on the first reboot from Linux, pressing the any-key to enter the prompt in the loader hangs the console for me.)

Err codemadness.org 70 i 48747 Err codemadness.org 70 i 48748

I didn’t have to go into the ESC menu and choose the local disk in the boot manager, it seems to boot from disk automatically.

Err codemadness.org 70 i 48749 Err codemadness.org 70 i 48750

Now we’re in the FreeBSD EFI loader.
Err codemadness.org 70 i 48751 For some reason, the (recently fixed? 2) serial autodetection from EFI is not working correctly. Or something.
Err codemadness.org 70 i 48752 So you don’t get console output by default.
Err codemadness.org 70 i 48753 To fix, you have to run these commands in the boot loader command prompt:

Err codemadness.org 70 i 48754 Err codemadness.org 70 i 48755
set console=comconsole,efi	Err	codemadness.org	70
i 48756 boot	Err	codemadness.org	70
i 48757 
Err codemadness.org 70 i 48758 Err codemadness.org 70 i 48759

Ignore the warning about comconsole not being a valid console.
Err codemadness.org 70 i 48760 Since there’s at least one (efi) that the loader thinks is valid, it sets the whole variable.)

Err codemadness.org 70 i 48761 Err codemadness.org 70 i 48762

(UPD: shouldn’t be necessary in the next snapshot)

Err codemadness.org 70 i 48763 Err codemadness.org 70 i 48764

Now it’s a regular installation process!
Err codemadness.org 70 i 48765 When asked about partitioning, choose Shell, and manually add a partition and set up a root filesystem:

Err codemadness.org 70 i 48766 Err codemadness.org 70 i 48767
gpart add -t freebsd-zfs -a 4k -l zroot vtbd0	Err	codemadness.org	70
i 48768 zpool create -R /mnt -O mountpoint=none -O atime=off zroot /dev/gpt/zroot	Err	codemadness.org	70
i 48769 zfs create -o canmount=off -o mountpoint=none zroot/ROOT	Err	codemadness.org	70
i 48770 zfs create -o mountpoint=/ zroot/ROOT/default	Err	codemadness.org	70
i 48771 zfs create -o mountpoint=/usr zroot/ROOT/default/usr	Err	codemadness.org	70
i 48772 zfs create -o mountpoint=/var zroot/ROOT/default/var	Err	codemadness.org	70
i 48773 zfs create -o mountpoint=/var/log zroot/ROOT/default/var/log	Err	codemadness.org	70
i 48774 zfs create -o mountpoint=/usr/home zroot/home	Err	codemadness.org	70
i 48775 zpool set bootfs=zroot/ROOT/default zroot	Err	codemadness.org	70
i 48776 exit	Err	codemadness.org	70
i 48777 
Err codemadness.org 70 i 48778 Err codemadness.org 70 i 48779

(In this example, I set up ZFS with a beadm-compatible layout which allows me to use Boot Environments.)

Err codemadness.org 70 i 48780 Err codemadness.org 70 i 48781

In the post-install chroot shell, fix some configs like so:

Err codemadness.org 70 i 48782 Err codemadness.org 70 i 48783
echo 'zfs_load="YES"' >> /boot/loader.conf	Err	codemadness.org	70
i 48784 echo 'console="comconsole,efi"' >> /boot/loader.conf	Err	codemadness.org	70
i 48785 echo 'vfs.zfs.arc_max="512M"' >> /boot/loader.conf	Err	codemadness.org	70
i 48786 sysrc zfs_enable=YES	Err	codemadness.org	70
i 48787 exit	Err	codemadness.org	70
i 48788 
Err codemadness.org 70 i 48789 Err codemadness.org 70 i 48790

(Yeah, for some reason, the loader does not load zfs.ko’s dependency opensolaris.ko automatically here. idk what even. It does on my desktop and laptop.)

Err codemadness.org 70 i 48791 Err codemadness.org 70 i 48792

Now you can reboot into the installed system!!

Err codemadness.org 70 i 48793 Err codemadness.org 70 i 48794

Here’s how you can set up IPv6 (and root’s ssh key) auto configuration on boot:

Err codemadness.org 70 i 48795 Err codemadness.org 70 i 48796
Pkg bootstrap	Err	codemadness.org	70
i 48797 pkg install curl	Err	codemadness.org	70
i 48798 curl https://raw.githubusercontent.com/scaleway/image-tools/master/bases/overlay-common/usr/local/bin/scw-metadata > /usr/local/bin/scw-metadata	Err	codemadness.org	70
i 48799 chmod +x /usr/local/bin/scw-metadata	Err	codemadness.org	70
i 48800 echo '#\!/bin/sh' > /etc/rc.local	Err	codemadness.org	70
i 48801 echo 'PATH=/usr/local/bin:$PATH' >> /etc/rc.local	Err	codemadness.org	70
i 48802 echo 'eval $(scw-metadata)' >> /etc/rc.local	Err	codemadness.org	70
i 48803 echo 'echo $SSH_PUBLIC_KEYS_0_KEY > /root/.ssh/authorized_keys' >> /etc/rc.local	Err	codemadness.org	70
i 48804 echo 'chmod 0400 /root/.ssh/authorized_keys' >> /etc/rc.local	Err	codemadness.org	70
i 48805 echo 'ifconfig vtnet0 inet6 $IPV6_ADDRESS/$IPV6_NETMASK' >> /etc/rc.local	Err	codemadness.org	70
i 48806 echo 'route -6 add default $IPV6_GATEWAY' >> /etc/rc.local	Err	codemadness.org	70
i 48807 mkdir /run	Err	codemadness.org	70
i 48808 mkdir /root/.ssh	Err	codemadness.org	70
i 48809 sh /etc/rc.local	Err	codemadness.org	70
i 48810 
Err codemadness.org 70 i 48811 Err codemadness.org 70 i 48812
Err codemadness.org 70 i 48813

And to fix incoming TCP connections, configure the DHCP client to change the broadcast address:

Err codemadness.org 70 i 48814
Err codemadness.org 70 i 48815 Err codemadness.org 70 i 48816

echo 'interface "vtnet0" { supersede broadcast-address 255.255.255.255; }' >> /etc/dhclient.conf
Err codemadness.org 70 i 48817 killall dhclient
Err codemadness.org 70 i 48818 dhclient vtnet0

Err codemadness.org 70 i 48819 Err codemadness.org 70 i 48820
    Err codemadness.org 70 i 48821
  • Other random notes:
  • Err codemadness.org 70 i 48822
  • keep in mind that -CURRENT snapshots come with a debugging kernel by default, which limits syscall performance by a lot, you might want to build your own 2 with config GENERIC-NODEBUG
  • Err codemadness.org 70 i 48823
  • also disable heavy malloc debugging features by running ln -s ‘abort:false,junk:false’ /etc/malloc.conf (yes that’s storing config in a symlink)
  • Err codemadness.org 70 i 48824
  • you can reuse the installer’s partition for swap
  • Err codemadness.org 70 i 48825
Err codemadness.org 70 i 48826 Err codemadness.org 70 i 48827


Err codemadness.org 70 i 48828 Err codemadness.org 70 i 48829

** Digital Ocean **
Err codemadness.org 70 i 48830 http://do.co/bsdnow

Err codemadness.org 70 i 48831 Err codemadness.org 70 i 48832

###Easy encrypted backups on OpenBSD with base tools

Err codemadness.org 70 i 48833 Err codemadness.org 70 i 48834
Err codemadness.org 70 i 48835

Today’s topic is “Encrypted backups” using only OpenBSD base tools. I am planning to write a bigger article later about backups but it’s a wide topic with a lot of software to cover and a lot of explanations about the differents uses cases, needs, issues an solutions. Here I will stick on explaining how to make reliable backups for an OpenBSD system (my laptop).
Err codemadness.org 70 i 48836 What we need is the dump command (see man 8 dump for its man page). It’s an utility to make a backup for a filesystem, it can only make a backup of one filesystem at a time. On my laptop I only backup /home partition so this solution is suitable for me while still being easy.
Err codemadness.org 70 i 48837 Dump can do incremental backups, it means that it will only save what changed since the last backup of lower level. If you do not understand this, please refer to the dump man page.
Err codemadness.org 70 i 48838 What is very interesting with dump is that it honors nodump flag which is an extended attribute of a FFS filesystem. One can use the command chflags nodump /home/solene/Downloads to tells dump not do save that folder (under some circumstances). By default, dump will not save thoses files, EXCEPT for a level 0 backup.

Err codemadness.org 70 i 48839
Err codemadness.org 70 i 48840 Err codemadness.org 70 i 48841
    Err codemadness.org 70 i 48842
  • Important features of this backup solution:
  • Err codemadness.org 70 i 48843
  • save files with attributes, permissions and flags
  • Err codemadness.org 70 i 48844
  • can recreate a partition from a dump, restore files interactively, from a list or from its inode number (useful when you have files in lost+found)
  • Err codemadness.org 70 i 48845
  • one dump = one file
  • Err codemadness.org 70 i 48846
Err codemadness.org 70 i 48847 Err codemadness.org 70 i 48848
Err codemadness.org 70 i 48849

My process is to make a huge dump of level 0 and keep it on a remote server, then, once a week I make a level 1 backup which will contain everything changed since the last dump of level 0, and everyday I do a level 2 backup of my files. The level 2 will contain latest files and the files changing a lot, which are often the most interesting. The level 1 backup is important because it will offload a lot of changes for the level 2.
Err codemadness.org 70 i 48850 Let me explain: let says my full backup is 60 GB, full of pictures, sources files, GUI applications data files etc… A level 1 backup will contain every new picture, new projects, new GUI files etc… since the full backup, which will produce bigger and bigger dump over time, usually it is only 100 MB to 1GB. As I don’t add new pictures everyday or use new software everyday, the level 2 will take care of most littles changes to my data, like source code edited, little works on files etc… The level 2 backup is really small, I try to keep it under 50 MB so I can easily send it on my remote server everyday.
Err codemadness.org 70 i 48851 One could you more dump level, up to level 9, but keep in mind that those are incremental. In my case, if I need to restore all my partition, I will need to use level 0, 1 and 2 to get up to latest backup state. If you want to restore a file deleted a few days ago, you need to remember in which level its latest version is.
Err codemadness.org 70 i 48852 History note: dump was designed to be used with magnetic tapes.

Err codemadness.org 70 i 48853
Err codemadness.org 70 i 48854 Err codemadness.org 70 i 48855
    Err codemadness.org 70 i 48856
  • See the article for the remainder of the article
  • Err codemadness.org 70 i 48857
Err codemadness.org 70 i 48858 Err codemadness.org 70 i 48859


Err codemadness.org 70 i 48860 Err codemadness.org 70 i 48861

##News Roundup
Err codemadness.org 70 i 48862 ###Status of DFly server storage upgrades (Matt Dillon)

Err codemadness.org 70 i 48863 Err codemadness.org 70 i 48864
Err codemadness.org 70 i 48865

Last month we did some storage upgrades, particularly of internet-facing machines for package and OS distribution. Yesterday we did a number of additional upgrades, described below. All using funds generously donated by everyone!

Err codemadness.org 70 i 48866
Err codemadness.org 70 i 48867 Err codemadness.org 70 i 48868
Err codemadness.org 70 i 48869

The main repository server received a 2TB SSD to replace the HDDs it was using before. This will improve access to a number of things maintained by this server, including the mail archives, and gives the main repo server more breathing room for repository expansion. Space was at a premium before. Now there’s plenty.

Err codemadness.org 70 i 48870
Err codemadness.org 70 i 48871 Err codemadness.org 70 i 48872
Err codemadness.org 70 i 48873

Monster, the quad socket opteron which we currently use as the database builder and repository that we export to our public grok service (grok.dragonflybsd.org) received a 512G SSD to add swap space for swapcache, to help cache the grok meta-data. It now has 600GB of swapcache configured. Over the next few weeks we will also be changing the grok updates to ping-pong between the two 4TB data drives it received in the last upgrade so we can do concurrent updates and web accesses without them tripping over each other performance-wise.

Err codemadness.org 70 i 48874
Err codemadness.org 70 i 48875 Err codemadness.org 70 i 48876
Err codemadness.org 70 i 48877

The main developer box, Leaf, received a 2TB SSD and we are currently in the midst of migrating all the developer accounts in /home and /build from its old HDDs to its new SSD. This machine serves developer repos, developer web stuff, our home page and wiki, etc, so those will become snappier as well.

Err codemadness.org 70 i 48878
Err codemadness.org 70 i 48879 Err codemadness.org 70 i 48880
Err codemadness.org 70 i 48881

Hard drives are becoming real dinosaurs. We still have a few left from the old days but in terms of active use the only HDDs we feel we really need to keep now are the ones we use for backups and grok data, owing to the amount of storage needed for those functions.

Err codemadness.org 70 i 48882
Err codemadness.org 70 i 48883 Err codemadness.org 70 i 48884
Err codemadness.org 70 i 48885

Five years ago when we received the blade server that now sits in the colo, we had a small 256G SSD for root on every blade, and everything else used HDDs. To make things operate smoothly, most of that 256G root SSD was assigned to swapcache (200G of it, in fact, in most cases). Even just 2 years ago replacing all those HDDs with SSDs, even just the ones being used to actively serve data and support developers, would have been cost prohibitive. But today it isn’t and the only HDDs we really need anywhere are for backups or certain very large bits of bulk data (aka the grok source repository and index). The way things are going, even the backup drives will probably become SSDs over the next two years.

Err codemadness.org 70 i 48886
Err codemadness.org 70 i 48887 Err codemadness.org 70 i 48888


Err codemadness.org 70 i 48889 Err codemadness.org 70 i 48890

###iX ad spot
Err codemadness.org 70 i 48891 OSCON 2018 Recap

Err codemadness.org 70 i 48892 Err codemadness.org 70 i 48893


Err codemadness.org 70 i 48894 Err codemadness.org 70 i 48895

###zpool checkpoints

Err codemadness.org 70 i 48896 Err codemadness.org 70 i 48897
Err codemadness.org 70 i 48898

In March, to FreeBSD landed a very interesting feature called ‘zpool checkpoints’. Before we jump straight into the topic, let’s take a step back and look at another ZFS feature called ‘snapshot’. Snapshot allows us to create an image of our single file systems. This gives us the option to modify data on the dataset without the fear of losing some data.

Err codemadness.org 70 i 48899
Err codemadness.org 70 i 48900 Err codemadness.org 70 i 48901
Err codemadness.org 70 i 48902

A very good example of how to use ZFS snapshot is during an upgrade of database schema. Let us consider a situation where we have a few scripts which change our schema. Sometimes we are unable to upgrade in one transaction (for example, when we attempt to alter a table and then update it in single transaction). If our database is on dataset, we can just snapshot it, and if something goes wrong, simply rollback the file system to its previous state.

Err codemadness.org 70 i 48903
Err codemadness.org 70 i 48904 Err codemadness.org 70 i 48905
Err codemadness.org 70 i 48906

The problem with snapshot is that it works only on a single dataset. If we added some dataset, we wouldn’t then be able to create the snapshot which would rollback that operation. The same with changing the attributes of a dataset. If we change the compression on the dataset, we cannot rollback it. We would need to change that manually.

Err codemadness.org 70 i 48907
Err codemadness.org 70 i 48908 Err codemadness.org 70 i 48909
Err codemadness.org 70 i 48910

Another interesting problem involves upgrading the whole operating system when we upgrade system with a new ZFS version. What if we start upgrading our dataset and our kernel begins to crash? (If you use FreeBSD, I doubt you will ever have had that experience but still…). If we rollback to the old kernel, there is a chance the dataset will stop working because the new kernel doesn’t know how to use the new features.

Err codemadness.org 70 i 48911
Err codemadness.org 70 i 48912 Err codemadness.org 70 i 48913
Err codemadness.org 70 i 48914

Zpool checkpoints is the solution to all those problems. Instead of taking a single snapshot of the dataset, we can now take a snapshot of the whole pool. That means we will not only rollback the data but also all the metadata. If we rewind to the checkpoint, all our ZFS properties will be rolled back; the upgrade will be rolledback, and even the creation/deletion of the dataset, and the snapshot, will be rolledback.

Err codemadness.org 70 i 48915
Err codemadness.org 70 i 48916 Err codemadness.org 70 i 48917
    Err codemadness.org 70 i 48918
  • Zpool Checkpoint has introduced a few simple functions:
  • Err codemadness.org 70 i 48919
  • For a creating checkpoint:
  • Err codemadness.org 70 i 48920
Err codemadness.org 70 i 48921 Err codemadness.org 70 i 48922

zpool checkpoint <pool>

Err codemadness.org 70 i 48923 Err codemadness.org 70 i 48924
    Err codemadness.org 70 i 48925
  • Rollbacks state to checkpoint and remove the checkpoint:
  • Err codemadness.org 70 i 48926
Err codemadness.org 70 i 48927 Err codemadness.org 70 i 48928

zpool import -- rewind-to-checkpoint <pool>

Err codemadness.org 70 i 48929 Err codemadness.org 70 i 48930
    Err codemadness.org 70 i 48931
  • Mount the pool read only - this does not rollback the data:
  • Err codemadness.org 70 i 48932
Err codemadness.org 70 i 48933 Err codemadness.org 70 i 48934

zpool import --read-only=on --rewind-to-checkpoint

Err codemadness.org 70 i 48935 Err codemadness.org 70 i 48936
    Err codemadness.org 70 i 48937
  • Remove the checkpoint
  • Err codemadness.org 70 i 48938
Err codemadness.org 70 i 48939 Err codemadness.org 70 i 48940

zpool checkpoint --discard <pool> or zpool checkpoint -d <pool>

Err codemadness.org 70 i 48941 Err codemadness.org 70 i 48942
    Err codemadness.org 70 i 48943
  • With this powerful feature we need to remember some safety rules:
  • Err codemadness.org 70 i 48944
  • Scrub will work only on data that isn’t in checkpool.
  • Err codemadness.org 70 i 48945
  • You can’t remove vdev if you have a checkpoint.
  • Err codemadness.org 70 i 48946
  • You can’t split mirror.
  • Err codemadness.org 70 i 48947
  • Reguid will not work either.
  • Err codemadness.org 70 i 48948
  • Create a checkpoint when one of the disks is removed…
  • Err codemadness.org 70 i 48949
Err codemadness.org 70 i 48950 Err codemadness.org 70 i 48951
Err codemadness.org 70 i 48952

For me, this feature is incredibly useful, especially when upgrading an operating system, or when I need to experiment with additional data sets. If you speak Polish, I have some additional information for you. During the first Polish BSD user group meeting, I had the opportunity to give a short talk about this feature. Here you find the video of that talk, and here is the slideshow.

Err codemadness.org 70 i 48953
Err codemadness.org 70 i 48954 Err codemadness.org 70 i 48955
Err codemadness.org 70 i 48956

I would like to offer my thanks to Serapheim Dimitropoulos for developing this feature, and for being so kind in sharing with me so many of its intricacies. If you are interested in knowing more about the technical details of this feature, you should check out Serapheim’s blog, and his video about checkpoints.

Err codemadness.org 70 i 48957
Err codemadness.org 70 i 48958 Err codemadness.org 70 i 48959


Err codemadness.org 70 i 48960 Err codemadness.org 70 i 48961

###g2k18 Reports

Err codemadness.org 70 i 48962 Err codemadness.org 70 i 48963 Err codemadness.org 70 i 48975 Err codemadness.org 70 i 48976


Err codemadness.org 70 i 48977 Err codemadness.org 70 i 48978

##Beastie Bits

Err codemadness.org 70 i 48979 Err codemadness.org 70 i 48980 Err codemadness.org 70 i 48991 Err codemadness.org 70 i 48992


Err codemadness.org 70 i 48993 Err codemadness.org 70 i 48994

Tarsnap

Err codemadness.org 70 i 48995 Err codemadness.org 70 i 48996

##Feedback/Questions

Err codemadness.org 70 i 48997 Err codemadness.org 70 i 48998 Err codemadness.org 70 i 49004 Err codemadness.org 70 i 49005


Err codemadness.org 70 i 49006 Err codemadness.org 70 i 49007
    Err codemadness.org 70 i 49008
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 49009
Err codemadness.org 70 i 49010 Err codemadness.org 70 i 49011


]]> Err codemadness.org 70 i 49012
Err codemadness.org 70 i 49013 Err codemadness.org 70 i 49014 NetBSD 8.0 available, FreeBSD on Scaleway’s ARM64 VPS, encrypted backups with OpenBSD, Dragonfly server storage upgrade, zpool checkpoints, g2k18 hackathon reports, and more.
Err codemadness.org 70 i 49015

Err codemadness.org 70 i 49016 Err codemadness.org 70 i 49017

##Headlines
Err codemadness.org 70 i 49018 ###NetBSD v8.0 Released

Err codemadness.org 70 i 49019 Err codemadness.org 70 i 49020
Err codemadness.org 70 i 49021

The NetBSD Project is pleased to announce NetBSD 8.0, the sixteenth major release of the NetBSD operating system.

Err codemadness.org 70 i 49022
Err codemadness.org 70 i 49023 Err codemadness.org 70 i 49024
Err codemadness.org 70 i 49025

This release brings stability improvements, hundreds of bug fixes, and many new features.

Err codemadness.org 70 i 49026
Err codemadness.org 70 i 49027 Err codemadness.org 70 i 49028
    Err codemadness.org 70 i 49029
  • Err codemadness.org 70 i 49030

    Some highlights of the NetBSD 8.0 release are:

    Err codemadness.org 70 i 49031
  • Err codemadness.org 70 i 49032
  • Err codemadness.org 70 i 49033

    USB stack rework, USB3 support added.

    Err codemadness.org 70 i 49034
  • Err codemadness.org 70 i 49035
  • Err codemadness.org 70 i 49036

    In-kernel audio mixer (audio_system(9)).

    Err codemadness.org 70 i 49037
  • Err codemadness.org 70 i 49038
  • Err codemadness.org 70 i 49039

    Reproducible builds (MKREPRO, see mk.conf(5)).

    Err codemadness.org 70 i 49040
  • Err codemadness.org 70 i 49041
  • Err codemadness.org 70 i 49042

    Full userland debug information (MKDEBUG, see mk.conf(5)) available. While most install media do not come with them (for size reasons), the debug and xdebug sets can be downloaded and extracted as needed later. They provide full symbol information for all base system and X binaries and libraries and allow better error reporting and (userland) crash analysis.

    Err codemadness.org 70 i 49043
  • Err codemadness.org 70 i 49044
  • Err codemadness.org 70 i 49045

    PaX MPROTECT (W^X) memory protection enforced by default on some architectures with fine-grained memory protection and suitable ELF formats: i386, amd64, evbarm, landisk.

    Err codemadness.org 70 i 49046
  • Err codemadness.org 70 i 49047
  • Err codemadness.org 70 i 49048

    PaX ASLR (Address Space Layout Randomization) enabled by default on: i386, amd64, evbarm, landisk, sparc64.

    Err codemadness.org 70 i 49049
  • Err codemadness.org 70 i 49050
  • Err codemadness.org 70 i 49051

    Position independent executables by default for userland on: i386, amd64, arm, m68k, mips, sh3, sparc64.

    Err codemadness.org 70 i 49052
  • Err codemadness.org 70 i 49053
  • Err codemadness.org 70 i 49054

    A new socket layer can(4) has been added for communication of devices on a CAN bus.

    Err codemadness.org 70 i 49055
  • Err codemadness.org 70 i 49056
  • Err codemadness.org 70 i 49057

    A special pseudo interface ipsecif(4) for route-based VPNs has been added.

    Err codemadness.org 70 i 49058
  • Err codemadness.org 70 i 49059
  • Err codemadness.org 70 i 49060

    Parts of the network stack have been made MP-safe. The kernel option NET_MPSAFE is required to enable this.

    Err codemadness.org 70 i 49061
  • Err codemadness.org 70 i 49062
  • Err codemadness.org 70 i 49063

    Hardening of the network stack in general.

    Err codemadness.org 70 i 49064
  • Err codemadness.org 70 i 49065
  • Err codemadness.org 70 i 49066

    Various WAPBL (the NetBSD file system “log” option) stability and performance improvements.

    Err codemadness.org 70 i 49067
  • Err codemadness.org 70 i 49068
  • Err codemadness.org 70 i 49069

    Specific to i386 and amd64 CPUs:

    Err codemadness.org 70 i 49070
  • Err codemadness.org 70 i 49071
  • Err codemadness.org 70 i 49072

    Meltdown mitigation: SVS (Separate Virtual Space), enabled by default.

    Err codemadness.org 70 i 49073
  • Err codemadness.org 70 i 49074
  • Err codemadness.org 70 i 49075

    SpectreV2 mitigation: retpoline (support in gcc), used by default for kernels. Other hardware mitigations are also available.

    Err codemadness.org 70 i 49076
  • Err codemadness.org 70 i 49077
  • Err codemadness.org 70 i 49078

    SpectreV4 mitigations available for Intel and AMD.

    Err codemadness.org 70 i 49079
  • Err codemadness.org 70 i 49080
  • Err codemadness.org 70 i 49081

    PopSS workaround: user access to debug registers is turned off by default.

    Err codemadness.org 70 i 49082
  • Err codemadness.org 70 i 49083
  • Err codemadness.org 70 i 49084

    Lazy FPU saving disabled on vulnerable Intel CPUs (“eagerfpu”).

    Err codemadness.org 70 i 49085
  • Err codemadness.org 70 i 49086
  • Err codemadness.org 70 i 49087

    SMAP support.

    Err codemadness.org 70 i 49088
  • Err codemadness.org 70 i 49089
  • Err codemadness.org 70 i 49090

    Improvement and hardening of the memory layout: W^X, fewer writable pages, better consistency, better performance.

    Err codemadness.org 70 i 49091
  • Err codemadness.org 70 i 49092
  • Err codemadness.org 70 i 49093

    (U)EFI bootloader.

    Err codemadness.org 70 i 49094
  • Err codemadness.org 70 i 49095
  • Err codemadness.org 70 i 49096

    Many evbarm kernels now use FDT (flat device tree) information (loadable at boot time from an external file) for device configuration, the number of kernels has decreased but the number of boards has vastly increased.

    Err codemadness.org 70 i 49097
  • Err codemadness.org 70 i 49098
  • Err codemadness.org 70 i 49099

    Lots of updates to 3rd party software included:

    Err codemadness.org 70 i 49100
  • Err codemadness.org 70 i 49101
  • Err codemadness.org 70 i 49102

    GCC 5.5 with support for Address Sanitizer and Undefined Behavior Sanitizer

    Err codemadness.org 70 i 49103
  • Err codemadness.org 70 i 49104
  • Err codemadness.org 70 i 49105

    GDB 7.12

    Err codemadness.org 70 i 49106
  • Err codemadness.org 70 i 49107
  • Err codemadness.org 70 i 49108

    GNU binutils 2.27

    Err codemadness.org 70 i 49109
  • Err codemadness.org 70 i 49110
  • Err codemadness.org 70 i 49111

    Clang/LLVM 3.8.1

    Err codemadness.org 70 i 49112
  • Err codemadness.org 70 i 49113
  • Err codemadness.org 70 i 49114

    OpenSSH 7.6

    Err codemadness.org 70 i 49115
  • Err codemadness.org 70 i 49116
  • Err codemadness.org 70 i 49117

    OpenSSL 1.0.2k

    Err codemadness.org 70 i 49118
  • Err codemadness.org 70 i 49119
  • Err codemadness.org 70 i 49120

    mdocml 1.14.1

    Err codemadness.org 70 i 49121
  • Err codemadness.org 70 i 49122
  • Err codemadness.org 70 i 49123

    acpica 20170303

    Err codemadness.org 70 i 49124
  • Err codemadness.org 70 i 49125
  • Err codemadness.org 70 i 49126

    ntp 4.2.8p11-o

    Err codemadness.org 70 i 49127
  • Err codemadness.org 70 i 49128
  • Err codemadness.org 70 i 49129

    dhcpcd 7.0.6

    Err codemadness.org 70 i 49130
  • Err codemadness.org 70 i 49131
  • Err codemadness.org 70 i 49132

    Lua 5.3.4

    Err codemadness.org 70 i 49133
  • Err codemadness.org 70 i 49134
Err codemadness.org 70 i 49135 Err codemadness.org 70 i 49136


Err codemadness.org 70 i 49137 Err codemadness.org 70 i 49138

###Running FreeBSD on the ARM64 VPS from Scaleway

Err codemadness.org 70 i 49139 Err codemadness.org 70 i 49140
Err codemadness.org 70 i 49141

I’ve been thinking about this 6 since 2017, but only yesterday signed up for an account and played around with the ARM64 offering.
Err codemadness.org 70 i 49142 Turns out it’s pretty great! KVM boots into UEFI, there’s a local VirtIO disk attached, no NBD junk required. So we can definitely run FreeBSD.
Err codemadness.org 70 i 49143 I managed to “depenguinate” a running instance, the notes are below. Would be great if Scaleway offered an official image instead :wink:
Err codemadness.org 70 i 49144 For some reason, unlike on x86 4, mounting additional volumes is not allowed 4 on ARM64 instances. So we’ll have to move the running Linux to a ramdisk using pivot_root and then we can do whatever to our one and only disk.
Err codemadness.org 70 i 49145 Spin up an instance with Ubuntu Zesty and ssh in.

Err codemadness.org 70 i 49146
Err codemadness.org 70 i 49147 Err codemadness.org 70 i 49148
    Err codemadness.org 70 i 49149
  • Prepare the system and change the root to a tmpfs:
  • Err codemadness.org 70 i 49150
Err codemadness.org 70 i 49151 Err codemadness.org 70 i 49152
apt install gdisk	Err	codemadness.org	70
i 49153 mount -t tmpfs tmpfs /tmp	Err	codemadness.org	70
i 49154 cp -r /bin /sbin /etc /dev /root /home /lib /run /usr /var /tmp	Err	codemadness.org	70
i 49155 mkdir /tmp/proc /tmp/sys /tmp/oldroot	Err	codemadness.org	70
i 49156 mount /dev/vda /tmp/oldroot	Err	codemadness.org	70
i 49157 mount --make-rprivate /	Err	codemadness.org	70
i 49158 pivot_root /tmp /tmp/oldroot	Err	codemadness.org	70
i 49159 for i in dev proc sys run; do mount --move /oldroot/$i /$i; done	Err	codemadness.org	70
i 49160 systemctl daemon-reload	Err	codemadness.org	70
i 49161 systemctl restart sshd	Err	codemadness.org	70
i 49162 
Err codemadness.org 70 i 49163 Err codemadness.org 70 i 49164
Err codemadness.org 70 i 49165

Now reconnect to ssh from a second terminal (note: rm the connection file if you use ControlPersist in ssh config), then exit the old session. Kill the old sshd process, restart or stop the rest of the stuff using the old disk:

Err codemadness.org 70 i 49166
Err codemadness.org 70 i 49167 Err codemadness.org 70 i 49168
pkill -f notty	Err	codemadness.org	70
i 49169 sed -ibak 's/RefuseManualStart.*$//g' /lib/systemd/system/dbus.service	Err	codemadness.org	70
i 49170 systemctl daemon-reload	Err	codemadness.org	70
i 49171 systemctl restart dbus	Err	codemadness.org	70
i 49172 systemctl daemon-reexec	Err	codemadness.org	70
i 49173 systemctl stop user@0 ntp cron systemd-logind	Err	codemadness.org	70
i 49174 systemctl restart systemd-journald systemd-udevd	Err	codemadness.org	70
i 49175 pkill agetty	Err	codemadness.org	70
i 49176 pkill rsyslogd	Err	codemadness.org	70
i 49177 
Err codemadness.org 70 i 49178 Err codemadness.org 70 i 49179
Err codemadness.org 70 i 49180

Check that nothing is touching /oldroot:

Err codemadness.org 70 i 49181
Err codemadness.org 70 i 49182 Err codemadness.org 70 i 49183
lsof | grep oldroot	Err	codemadness.org	70
i 49184 
Err codemadness.org 70 i 49185 Err codemadness.org 70 i 49186
Err codemadness.org 70 i 49187

There will probably be an old dbus-daemon, kill it.
Err codemadness.org 70 i 49188 And finally, unmount the old root and overwrite the hard disk with a memstick image:

Err codemadness.org 70 i 49189
Err codemadness.org 70 i 49190 Err codemadness.org 70 i 49191
umount -R /oldroot	Err	codemadness.org	70
i 49192 wget https://download.freebsd.org/ftp/snapshots/arm64/aarch64/ISO-IMAGES/12.0/FreeBSD-12.0-CURRENT-arm64-aarch64-20180719-r336479-mini-memstick.img.xz	Err	codemadness.org	70
i 49193 xzcat FreeBSD-12.0-CURRENT-arm64-aarch64-20180719-r336479-mini-memstick.img.xz | dd if=/dev/stdin of=/dev/vda bs=1M	Err	codemadness.org	70
i 49194 
Err codemadness.org 70 i 49195 Err codemadness.org 70 i 49196
Err codemadness.org 70 i 49197

(Look for the newest snapshot, don’t copy paste the July 19 link above if you’re reading this in the future. Actually maybe use a release instead of CURRENT…)
Err codemadness.org 70 i 49198 Now, fix the GPT: move the secondary table to the end of the disk and resize the table.
Err codemadness.org 70 i 49199 It’s important to resize here, as FreeBSD does not do that and silently creates partitions that won’t persist across reboots

Err codemadness.org 70 i 49200
Err codemadness.org 70 i 49201 Err codemadness.org 70 i 49202
gdisk /dev/vda	Err	codemadness.org	70
i 49203 x	Err	codemadness.org	70
i 49204 e	Err	codemadness.org	70
i 49205 s	Err	codemadness.org	70
i 49206 4	Err	codemadness.org	70
i 49207 w	Err	codemadness.org	70
i 49208 y	Err	codemadness.org	70
i 49209 
Err codemadness.org 70 i 49210 Err codemadness.org 70 i 49211

And reboot. (You might actually want to hard reboot here: for some reason on the first reboot from Linux, pressing the any-key to enter the prompt in the loader hangs the console for me.)

Err codemadness.org 70 i 49212 Err codemadness.org 70 i 49213

I didn’t have to go into the ESC menu and choose the local disk in the boot manager, it seems to boot from disk automatically.

Err codemadness.org 70 i 49214 Err codemadness.org 70 i 49215

Now we’re in the FreeBSD EFI loader.
Err codemadness.org 70 i 49216 For some reason, the (recently fixed? 2) serial autodetection from EFI is not working correctly. Or something.
Err codemadness.org 70 i 49217 So you don’t get console output by default.
Err codemadness.org 70 i 49218 To fix, you have to run these commands in the boot loader command prompt:

Err codemadness.org 70 i 49219 Err codemadness.org 70 i 49220
set console=comconsole,efi	Err	codemadness.org	70
i 49221 boot	Err	codemadness.org	70
i 49222 
Err codemadness.org 70 i 49223 Err codemadness.org 70 i 49224

Ignore the warning about comconsole not being a valid console.
Err codemadness.org 70 i 49225 Since there’s at least one (efi) that the loader thinks is valid, it sets the whole variable.)

Err codemadness.org 70 i 49226 Err codemadness.org 70 i 49227

(UPD: shouldn’t be necessary in the next snapshot)

Err codemadness.org 70 i 49228 Err codemadness.org 70 i 49229

Now it’s a regular installation process!
Err codemadness.org 70 i 49230 When asked about partitioning, choose Shell, and manually add a partition and set up a root filesystem:

Err codemadness.org 70 i 49231 Err codemadness.org 70 i 49232
gpart add -t freebsd-zfs -a 4k -l zroot vtbd0	Err	codemadness.org	70
i 49233 zpool create -R /mnt -O mountpoint=none -O atime=off zroot /dev/gpt/zroot	Err	codemadness.org	70
i 49234 zfs create -o canmount=off -o mountpoint=none zroot/ROOT	Err	codemadness.org	70
i 49235 zfs create -o mountpoint=/ zroot/ROOT/default	Err	codemadness.org	70
i 49236 zfs create -o mountpoint=/usr zroot/ROOT/default/usr	Err	codemadness.org	70
i 49237 zfs create -o mountpoint=/var zroot/ROOT/default/var	Err	codemadness.org	70
i 49238 zfs create -o mountpoint=/var/log zroot/ROOT/default/var/log	Err	codemadness.org	70
i 49239 zfs create -o mountpoint=/usr/home zroot/home	Err	codemadness.org	70
i 49240 zpool set bootfs=zroot/ROOT/default zroot	Err	codemadness.org	70
i 49241 exit	Err	codemadness.org	70
i 49242 
Err codemadness.org 70 i 49243 Err codemadness.org 70 i 49244

(In this example, I set up ZFS with a beadm-compatible layout which allows me to use Boot Environments.)

Err codemadness.org 70 i 49245 Err codemadness.org 70 i 49246

In the post-install chroot shell, fix some configs like so:

Err codemadness.org 70 i 49247 Err codemadness.org 70 i 49248
echo 'zfs_load="YES"' >> /boot/loader.conf	Err	codemadness.org	70
i 49249 echo 'console="comconsole,efi"' >> /boot/loader.conf	Err	codemadness.org	70
i 49250 echo 'vfs.zfs.arc_max="512M"' >> /boot/loader.conf	Err	codemadness.org	70
i 49251 sysrc zfs_enable=YES	Err	codemadness.org	70
i 49252 exit	Err	codemadness.org	70
i 49253 
Err codemadness.org 70 i 49254 Err codemadness.org 70 i 49255

(Yeah, for some reason, the loader does not load zfs.ko’s dependency opensolaris.ko automatically here. idk what even. It does on my desktop and laptop.)

Err codemadness.org 70 i 49256 Err codemadness.org 70 i 49257

Now you can reboot into the installed system!!

Err codemadness.org 70 i 49258 Err codemadness.org 70 i 49259

Here’s how you can set up IPv6 (and root’s ssh key) auto configuration on boot:

Err codemadness.org 70 i 49260 Err codemadness.org 70 i 49261
Pkg bootstrap	Err	codemadness.org	70
i 49262 pkg install curl	Err	codemadness.org	70
i 49263 curl https://raw.githubusercontent.com/scaleway/image-tools/master/bases/overlay-common/usr/local/bin/scw-metadata > /usr/local/bin/scw-metadata	Err	codemadness.org	70
i 49264 chmod +x /usr/local/bin/scw-metadata	Err	codemadness.org	70
i 49265 echo '#\!/bin/sh' > /etc/rc.local	Err	codemadness.org	70
i 49266 echo 'PATH=/usr/local/bin:$PATH' >> /etc/rc.local	Err	codemadness.org	70
i 49267 echo 'eval $(scw-metadata)' >> /etc/rc.local	Err	codemadness.org	70
i 49268 echo 'echo $SSH_PUBLIC_KEYS_0_KEY > /root/.ssh/authorized_keys' >> /etc/rc.local	Err	codemadness.org	70
i 49269 echo 'chmod 0400 /root/.ssh/authorized_keys' >> /etc/rc.local	Err	codemadness.org	70
i 49270 echo 'ifconfig vtnet0 inet6 $IPV6_ADDRESS/$IPV6_NETMASK' >> /etc/rc.local	Err	codemadness.org	70
i 49271 echo 'route -6 add default $IPV6_GATEWAY' >> /etc/rc.local	Err	codemadness.org	70
i 49272 mkdir /run	Err	codemadness.org	70
i 49273 mkdir /root/.ssh	Err	codemadness.org	70
i 49274 sh /etc/rc.local	Err	codemadness.org	70
i 49275 
Err codemadness.org 70 i 49276 Err codemadness.org 70 i 49277
Err codemadness.org 70 i 49278

And to fix incoming TCP connections, configure the DHCP client to change the broadcast address:

Err codemadness.org 70 i 49279
Err codemadness.org 70 i 49280 Err codemadness.org 70 i 49281

echo 'interface "vtnet0" { supersede broadcast-address 255.255.255.255; }' >> /etc/dhclient.conf
Err codemadness.org 70 i 49282 killall dhclient
Err codemadness.org 70 i 49283 dhclient vtnet0

Err codemadness.org 70 i 49284 Err codemadness.org 70 i 49285
    Err codemadness.org 70 i 49286
  • Other random notes:
  • Err codemadness.org 70 i 49287
  • keep in mind that -CURRENT snapshots come with a debugging kernel by default, which limits syscall performance by a lot, you might want to build your own 2 with config GENERIC-NODEBUG
  • Err codemadness.org 70 i 49288
  • also disable heavy malloc debugging features by running ln -s ‘abort:false,junk:false’ /etc/malloc.conf (yes that’s storing config in a symlink)
  • Err codemadness.org 70 i 49289
  • you can reuse the installer’s partition for swap
  • Err codemadness.org 70 i 49290
Err codemadness.org 70 i 49291 Err codemadness.org 70 i 49292


Err codemadness.org 70 i 49293 Err codemadness.org 70 i 49294

** Digital Ocean **
Err codemadness.org 70 i 49295 http://do.co/bsdnow

Err codemadness.org 70 i 49296 Err codemadness.org 70 i 49297

###Easy encrypted backups on OpenBSD with base tools

Err codemadness.org 70 i 49298 Err codemadness.org 70 i 49299
Err codemadness.org 70 i 49300

Today’s topic is “Encrypted backups” using only OpenBSD base tools. I am planning to write a bigger article later about backups but it’s a wide topic with a lot of software to cover and a lot of explanations about the differents uses cases, needs, issues an solutions. Here I will stick on explaining how to make reliable backups for an OpenBSD system (my laptop).
Err codemadness.org 70 i 49301 What we need is the dump command (see man 8 dump for its man page). It’s an utility to make a backup for a filesystem, it can only make a backup of one filesystem at a time. On my laptop I only backup /home partition so this solution is suitable for me while still being easy.
Err codemadness.org 70 i 49302 Dump can do incremental backups, it means that it will only save what changed since the last backup of lower level. If you do not understand this, please refer to the dump man page.
Err codemadness.org 70 i 49303 What is very interesting with dump is that it honors nodump flag which is an extended attribute of a FFS filesystem. One can use the command chflags nodump /home/solene/Downloads to tells dump not do save that folder (under some circumstances). By default, dump will not save thoses files, EXCEPT for a level 0 backup.

Err codemadness.org 70 i 49304
Err codemadness.org 70 i 49305 Err codemadness.org 70 i 49306
    Err codemadness.org 70 i 49307
  • Important features of this backup solution:
  • Err codemadness.org 70 i 49308
  • save files with attributes, permissions and flags
  • Err codemadness.org 70 i 49309
  • can recreate a partition from a dump, restore files interactively, from a list or from its inode number (useful when you have files in lost+found)
  • Err codemadness.org 70 i 49310
  • one dump = one file
  • Err codemadness.org 70 i 49311
Err codemadness.org 70 i 49312 Err codemadness.org 70 i 49313
Err codemadness.org 70 i 49314

My process is to make a huge dump of level 0 and keep it on a remote server, then, once a week I make a level 1 backup which will contain everything changed since the last dump of level 0, and everyday I do a level 2 backup of my files. The level 2 will contain latest files and the files changing a lot, which are often the most interesting. The level 1 backup is important because it will offload a lot of changes for the level 2.
Err codemadness.org 70 i 49315 Let me explain: let says my full backup is 60 GB, full of pictures, sources files, GUI applications data files etc… A level 1 backup will contain every new picture, new projects, new GUI files etc… since the full backup, which will produce bigger and bigger dump over time, usually it is only 100 MB to 1GB. As I don’t add new pictures everyday or use new software everyday, the level 2 will take care of most littles changes to my data, like source code edited, little works on files etc… The level 2 backup is really small, I try to keep it under 50 MB so I can easily send it on my remote server everyday.
Err codemadness.org 70 i 49316 One could you more dump level, up to level 9, but keep in mind that those are incremental. In my case, if I need to restore all my partition, I will need to use level 0, 1 and 2 to get up to latest backup state. If you want to restore a file deleted a few days ago, you need to remember in which level its latest version is.
Err codemadness.org 70 i 49317 History note: dump was designed to be used with magnetic tapes.

Err codemadness.org 70 i 49318
Err codemadness.org 70 i 49319 Err codemadness.org 70 i 49320
    Err codemadness.org 70 i 49321
  • See the article for the remainder of the article
  • Err codemadness.org 70 i 49322
Err codemadness.org 70 i 49323 Err codemadness.org 70 i 49324


Err codemadness.org 70 i 49325 Err codemadness.org 70 i 49326

##News Roundup
Err codemadness.org 70 i 49327 ###Status of DFly server storage upgrades (Matt Dillon)

Err codemadness.org 70 i 49328 Err codemadness.org 70 i 49329
Err codemadness.org 70 i 49330

Last month we did some storage upgrades, particularly of internet-facing machines for package and OS distribution. Yesterday we did a number of additional upgrades, described below. All using funds generously donated by everyone!

Err codemadness.org 70 i 49331
Err codemadness.org 70 i 49332 Err codemadness.org 70 i 49333
Err codemadness.org 70 i 49334

The main repository server received a 2TB SSD to replace the HDDs it was using before. This will improve access to a number of things maintained by this server, including the mail archives, and gives the main repo server more breathing room for repository expansion. Space was at a premium before. Now there’s plenty.

Err codemadness.org 70 i 49335
Err codemadness.org 70 i 49336 Err codemadness.org 70 i 49337
Err codemadness.org 70 i 49338

Monster, the quad socket opteron which we currently use as the database builder and repository that we export to our public grok service (grok.dragonflybsd.org) received a 512G SSD to add swap space for swapcache, to help cache the grok meta-data. It now has 600GB of swapcache configured. Over the next few weeks we will also be changing the grok updates to ping-pong between the two 4TB data drives it received in the last upgrade so we can do concurrent updates and web accesses without them tripping over each other performance-wise.

Err codemadness.org 70 i 49339
Err codemadness.org 70 i 49340 Err codemadness.org 70 i 49341
Err codemadness.org 70 i 49342

The main developer box, Leaf, received a 2TB SSD and we are currently in the midst of migrating all the developer accounts in /home and /build from its old HDDs to its new SSD. This machine serves developer repos, developer web stuff, our home page and wiki, etc, so those will become snappier as well.

Err codemadness.org 70 i 49343
Err codemadness.org 70 i 49344 Err codemadness.org 70 i 49345
Err codemadness.org 70 i 49346

Hard drives are becoming real dinosaurs. We still have a few left from the old days but in terms of active use the only HDDs we feel we really need to keep now are the ones we use for backups and grok data, owing to the amount of storage needed for those functions.

Err codemadness.org 70 i 49347
Err codemadness.org 70 i 49348 Err codemadness.org 70 i 49349
Err codemadness.org 70 i 49350

Five years ago when we received the blade server that now sits in the colo, we had a small 256G SSD for root on every blade, and everything else used HDDs. To make things operate smoothly, most of that 256G root SSD was assigned to swapcache (200G of it, in fact, in most cases). Even just 2 years ago replacing all those HDDs with SSDs, even just the ones being used to actively serve data and support developers, would have been cost prohibitive. But today it isn’t and the only HDDs we really need anywhere are for backups or certain very large bits of bulk data (aka the grok source repository and index). The way things are going, even the backup drives will probably become SSDs over the next two years.

Err codemadness.org 70 i 49351
Err codemadness.org 70 i 49352 Err codemadness.org 70 i 49353


Err codemadness.org 70 i 49354 Err codemadness.org 70 i 49355

###iX ad spot
Err codemadness.org 70 i 49356 OSCON 2018 Recap

Err codemadness.org 70 i 49357 Err codemadness.org 70 i 49358


Err codemadness.org 70 i 49359 Err codemadness.org 70 i 49360

###zpool checkpoints

Err codemadness.org 70 i 49361 Err codemadness.org 70 i 49362
Err codemadness.org 70 i 49363

In March, to FreeBSD landed a very interesting feature called ‘zpool checkpoints’. Before we jump straight into the topic, let’s take a step back and look at another ZFS feature called ‘snapshot’. Snapshot allows us to create an image of our single file systems. This gives us the option to modify data on the dataset without the fear of losing some data.

Err codemadness.org 70 i 49364
Err codemadness.org 70 i 49365 Err codemadness.org 70 i 49366
Err codemadness.org 70 i 49367

A very good example of how to use ZFS snapshot is during an upgrade of database schema. Let us consider a situation where we have a few scripts which change our schema. Sometimes we are unable to upgrade in one transaction (for example, when we attempt to alter a table and then update it in single transaction). If our database is on dataset, we can just snapshot it, and if something goes wrong, simply rollback the file system to its previous state.

Err codemadness.org 70 i 49368
Err codemadness.org 70 i 49369 Err codemadness.org 70 i 49370
Err codemadness.org 70 i 49371

The problem with snapshot is that it works only on a single dataset. If we added some dataset, we wouldn’t then be able to create the snapshot which would rollback that operation. The same with changing the attributes of a dataset. If we change the compression on the dataset, we cannot rollback it. We would need to change that manually.

Err codemadness.org 70 i 49372
Err codemadness.org 70 i 49373 Err codemadness.org 70 i 49374
Err codemadness.org 70 i 49375

Another interesting problem involves upgrading the whole operating system when we upgrade system with a new ZFS version. What if we start upgrading our dataset and our kernel begins to crash? (If you use FreeBSD, I doubt you will ever have had that experience but still…). If we rollback to the old kernel, there is a chance the dataset will stop working because the new kernel doesn’t know how to use the new features.

Err codemadness.org 70 i 49376
Err codemadness.org 70 i 49377 Err codemadness.org 70 i 49378
Err codemadness.org 70 i 49379

Zpool checkpoints is the solution to all those problems. Instead of taking a single snapshot of the dataset, we can now take a snapshot of the whole pool. That means we will not only rollback the data but also all the metadata. If we rewind to the checkpoint, all our ZFS properties will be rolled back; the upgrade will be rolledback, and even the creation/deletion of the dataset, and the snapshot, will be rolledback.

Err codemadness.org 70 i 49380
Err codemadness.org 70 i 49381 Err codemadness.org 70 i 49382
    Err codemadness.org 70 i 49383
  • Zpool Checkpoint has introduced a few simple functions:
  • Err codemadness.org 70 i 49384
  • For a creating checkpoint:
  • Err codemadness.org 70 i 49385
Err codemadness.org 70 i 49386 Err codemadness.org 70 i 49387

zpool checkpoint <pool>

Err codemadness.org 70 i 49388 Err codemadness.org 70 i 49389
    Err codemadness.org 70 i 49390
  • Rollbacks state to checkpoint and remove the checkpoint:
  • Err codemadness.org 70 i 49391
Err codemadness.org 70 i 49392 Err codemadness.org 70 i 49393

zpool import -- rewind-to-checkpoint <pool>

Err codemadness.org 70 i 49394 Err codemadness.org 70 i 49395
    Err codemadness.org 70 i 49396
  • Mount the pool read only - this does not rollback the data:
  • Err codemadness.org 70 i 49397
Err codemadness.org 70 i 49398 Err codemadness.org 70 i 49399

zpool import --read-only=on --rewind-to-checkpoint

Err codemadness.org 70 i 49400 Err codemadness.org 70 i 49401
    Err codemadness.org 70 i 49402
  • Remove the checkpoint
  • Err codemadness.org 70 i 49403
Err codemadness.org 70 i 49404 Err codemadness.org 70 i 49405

zpool checkpoint --discard <pool> or zpool checkpoint -d <pool>

Err codemadness.org 70 i 49406 Err codemadness.org 70 i 49407
    Err codemadness.org 70 i 49408
  • With this powerful feature we need to remember some safety rules:
  • Err codemadness.org 70 i 49409
  • Scrub will work only on data that isn’t in checkpool.
  • Err codemadness.org 70 i 49410
  • You can’t remove vdev if you have a checkpoint.
  • Err codemadness.org 70 i 49411
  • You can’t split mirror.
  • Err codemadness.org 70 i 49412
  • Reguid will not work either.
  • Err codemadness.org 70 i 49413
  • Create a checkpoint when one of the disks is removed…
  • Err codemadness.org 70 i 49414
Err codemadness.org 70 i 49415 Err codemadness.org 70 i 49416
Err codemadness.org 70 i 49417

For me, this feature is incredibly useful, especially when upgrading an operating system, or when I need to experiment with additional data sets. If you speak Polish, I have some additional information for you. During the first Polish BSD user group meeting, I had the opportunity to give a short talk about this feature. Here you find the video of that talk, and here is the slideshow.

Err codemadness.org 70 i 49418
Err codemadness.org 70 i 49419 Err codemadness.org 70 i 49420
Err codemadness.org 70 i 49421

I would like to offer my thanks to Serapheim Dimitropoulos for developing this feature, and for being so kind in sharing with me so many of its intricacies. If you are interested in knowing more about the technical details of this feature, you should check out Serapheim’s blog, and his video about checkpoints.

Err codemadness.org 70 i 49422
Err codemadness.org 70 i 49423 Err codemadness.org 70 i 49424


Err codemadness.org 70 i 49425 Err codemadness.org 70 i 49426

###g2k18 Reports

Err codemadness.org 70 i 49427 Err codemadness.org 70 i 49428 Err codemadness.org 70 i 49440 Err codemadness.org 70 i 49441


Err codemadness.org 70 i 49442 Err codemadness.org 70 i 49443

##Beastie Bits

Err codemadness.org 70 i 49444 Err codemadness.org 70 i 49445 Err codemadness.org 70 i 49456 Err codemadness.org 70 i 49457


Err codemadness.org 70 i 49458 Err codemadness.org 70 i 49459

Tarsnap

Err codemadness.org 70 i 49460 Err codemadness.org 70 i 49461

##Feedback/Questions

Err codemadness.org 70 i 49462 Err codemadness.org 70 i 49463 Err codemadness.org 70 i 49469 Err codemadness.org 70 i 49470


Err codemadness.org 70 i 49471 Err codemadness.org 70 i 49472
    Err codemadness.org 70 i 49473
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 49474
Err codemadness.org 70 i 49475 Err codemadness.org 70 i 49476


]]> Err codemadness.org 70 i 49477
Err codemadness.org 70 i 49478 https://fireside.fm/player/v2/FYhhasNR+5IrHtRfA Err codemadness.org 70 i 49479 Err codemadness.org 70 i 49480 ]]> Err codemadness.org 70 i 49481 Err codemadness.org 70 i 49482
Err codemadness.org 70 i 49483 Err codemadness.org 70 i 49484 Episode 256: Because Computers | BSD Now 2^8 Err codemadness.org 70 i 49485 https://www.bsdnow.tv/256 Err codemadness.org 70 i 49486 http://feed.jupiter.zone/bsdnow#entry-2304 Err codemadness.org 70 i 49487 Tue, 24 Jul 2018 22:00:00 -0700 Err codemadness.org 70 i 49488 Allan Jude Err codemadness.org 70 i 49489 Err codemadness.org 70 i 49490 full Err codemadness.org 70 i 49491 Allan Jude Err codemadness.org 70 i 49492 FreeBSD ULE vs. Linux CFS, OpenBSD on Tuxedo InfinityBook, how zfs diff reports filenames efficiently, why choose FreeBSD over Linux, PS4 double free exploit, OpenBSD’s wifi autojoin, and FreeBSD jails the hard way. Err codemadness.org 70 i 49493 1:44:42 Err codemadness.org 70 i 49494 no Err codemadness.org 70 i 49495 Err codemadness.org 70 i 49496 FreeBSD ULE vs. Linux CFS, OpenBSD on Tuxedo InfinityBook, how zfs diff reports filenames efficiently, why choose FreeBSD over Linux, PS4 double free exploit, OpenBSD’s wifi autojoin, and FreeBSD jails the hard way. Err codemadness.org 70 i 49497 Win Err codemadness.org 70 i 49498 Celebrate our 256th episode with us. You can win a Mogics Power Bagel (not sponsored). Err codemadness.org 70 i 49499 To enter, go find the 4 episodes we did in December of 2017. In the opening, find the 4 letters in the bookshelf behind me. They spell different words in each of the 4 episodes. Send us these words in order to feedback@bsdnow.tv with the subject “bsdnow256” until August 8th, 2018 18:00 UTC and we’ll randomly draw the winner on the live show. We’ll then contact you to ship the item. Err codemadness.org 70 i 49500 Only one item to win. All decisions are final. Better luck next time. Err codemadness.org 70 i 49501 Headlines Err codemadness.org 70 i 49502 Battle of the Schedulers: FreeBSD ULE vs. Linux CFS Err codemadness.org 70 i 49503 Introduction Err codemadness.org 70 i 49504 This paper analyzes the impact on application performance of the design and implementation choices made in two widely used open-source schedulers: ULE, the default FreeBSD scheduler, and CFS, the default Linux scheduler. We compare ULE and CFS in otherwise identical circumstances. We have ported ULE to Linux, and use it to schedule all threads that are normally scheduled by CFS. We compare the performance of a large suite of applications on the modified kernel running ULE and on the standard Linux kernel running CFS. The observed performance differences are solely the result of scheduling decisions, and do not reflect differences in other subsystems between FreeBSD and Linux. There is no overall winner. On many workloads the two schedulers perform similarly, but for some workloads there are significant and even surprising differences. ULE may cause starvation, even when executing a single application with identical threads, but this starvation may actually lead to better application performance for some workloads. The more complex load balancing mechanism of CFS reacts more quickly to workload changes, but ULE achieves better load balance in the long run. Err codemadness.org 70 i 49505 Operating system kernel schedulers are responsible for maintaining high utilization of hardware resources (CPU cores, memory, I/O devices) while providing fast response time to latency-sensitive applications. They have to react to workload changes, and handle large numbers of cores and threads with minimal overhead [12]. This paper provides a comparison between the default schedulers of two of the most widely deployed open-source operating systems: the Completely Fair Scheduler (CFS) used in Linux, and the ULE scheduler used in FreeBSD. Our goal is not to declare an overall winner. Err codemadness.org 70 i 49506 In fact, we find that for some workloads ULE is better and for others CFS is better. Instead, our goal is to illustrate how differences in the design and the implementation of the two schedulers are reflected in application performance under different workloads. ULE and CFS are both designed to schedule large numbers of threads on large multicore machines. Scalability considerations have led both schedulers to adopt per-core run-queues. On a context switch, a core accesses only its local run-queue to find the next thread to run. Periodically and at select times, e.g., when a thread wakes up, both ULE and CFS perform load balancing, i.e., they try to balance the amount of work waiting in the run-queues of different cores. Err codemadness.org 70 i 49507 ULE and CFS, however, differ greatly in their design and implementation choices. FreeBSD ULE is a simple scheduler (2,950 lines of code in FreeBSD 11.1), while Linux CFS is much more complex (17,900 lines of code in the latest LTS Linux kernel, Linux 4.9). FreeBSD run-queues are FIFO. For load balancing, FreeBSD strives to even out the number of threads per core. In Linux, a core decides which thread to run next based on prior execution time, priority, and perceived cache behavior of the threads in its runqueue. Instead of evening out the number of threads between cores, Linux strives to even out the average amount of pending work. Err codemadness.org 70 i 49508 Performance analysis Err codemadness.org 70 i 49509 We now analyze the impact of the per-core scheduling on the performance of 37 applications. We define “performance” as follows: for database workloads and NAS applications, we compare the number of operations per second, and for the other applications we compare “execution time”. The higher the “performance”, the better a scheduler performs. Figure 5 presents the performance difference between CFS and ULE on a single core, with percentages above 0 meaning that the application executes faster with ULE than CFS. Err codemadness.org 70 i 49510 Overall, the scheduler has little influence on most workloads. Indeed, most applications use threads that all perform the same work, thus both CFS and ULE endup scheduling all of the threads in a round-robin fashion. The average performance difference is 1.5%, in favor of ULE. Still, scimark is 36% slower on ULE than CFS, and apache is 40% faster on ULE than CFS. Scimark is a single-threaded Java application. It launches one compute thread, and the Java runtime executes other Java system threads in the background (for the garbage collector, I/O, etc.). Err codemadness.org 70 i 49511 When the application is executed with ULE, the compute thread can be delayed, because Java system threads are considered interactive and get priority over the computation thread. The apache workload consists of two applications: the main server (httpd) running 100 threads, and ab, a single-threaded load injector. Err codemadness.org 70 i 49512 The performance difference between ULE and CFS is explained by different choices regarding thread preemption. In ULE, full preemption is disabled, while CFS preempts the running thread when the thread that has just been woken up has a vruntime that is much smaller than the vruntime of the currently executing thread (1ms difference in practice). In CFS, ab is preempted 2 million times during the benchmark, while it never preempted with ULE. Err codemadness.org 70 i 49513 This behavior is explained as follows: ab starts by sending 100 requests to the httpd server, and then waits for the server to answer. When ab is woken up, it checks which requests have been processed and sends new requests to the server. Since ab is single-threaded, all requests sent to the server are sent sequentially. In ULE, ab is able to send as many new requests as it has received responses. In CFS, every request sent by ab wakes up a httpd thread, which preempts ab. Err codemadness.org 70 i 49514 Conclusion Err codemadness.org 70 i 49515 Scheduling threads on a multicore machine is hard. In this paper, we perform a fair comparison of the design choices of two widely used schedulers: the ULE scheduler from FreeBSD and CFS from Linux. We show that they behave differently even on simple workloads, and that no scheduler performs better than the other on all workloads. Err codemadness.org 70 i 49516 OpenBSD 6.3 on Tuxedo InfinityBook Err codemadness.org 70 i 49517 Disclaimer: Err codemadness.org 70 i 49518 I came across the Tuxedo Computers InfinityBook last year at the Open! Conference where Tuxedo had a small booth. Previously they came to my attention since they’re a member of the OSB Alliance on whose board I’m a member. Furthermore Tuxedo Computers are a sponsor of the OSBAR which I’m part of the organizational team. Err codemadness.org 70 i 49519 OpenBSD on the Tuxedo InfinityBook Err codemadness.org 70 i 49520 I’ve asked the guys over at Tuxedo Computers whether they would be interested to have some tests with *BSD done and that I could test drive one of their machines and give feedback on what works and what does not - and possibly look into it.+ Err codemadness.org 70 i 49521 Within a few weeks they shipped me a machine and last week the InfinityBook Pro 14” arrived. Awesome. Thanks already to the folks at Tuxedo Computers. The machine arrived accompanied by lot’s of swag :) Err codemadness.org 70 i 49522 The InfinityBook is a very nice machine and allows a wide range of configuration. The configuration that was shipped to me: Err codemadness.org 70 i 49523 Intel Core i7-8550U Err codemadness.org 70 i 49524 1x 16GB RAM 2400Mhz Crucial Ballistix Sport LT Err codemadness.org 70 i 49525 250 GB Samsung 860 EVO (M.2 SATAIII) Err codemadness.org 70 i 49526 I used a USB-stick to boot install63.fs and re-installed the machine with OpenBSD. Full dmesg. Err codemadness.org 70 i 49527 The installation went flawlessly, the needed intel firmware is being installed after installation automatically via fw_update(1). Err codemadness.org 70 i 49528 Out of the box the graphics works and once installed the machine presents the login. Err codemadness.org 70 i 49529 Video Err codemadness.org 70 i 49530 When X starts the display is turned off for some reason. You will need to hit fn+f12 (the key with the moon on it) then the display will go on. Aside from that little nit, X works just fine and presents one the expected resolution. Err codemadness.org 70 i 49531 External video is working just fine as well. Either via hdmi output or via the mini displayport connector. Err codemadness.org 70 i 49532 The buttons for adjusting brightness (fn+f8 and fn+f9) are not working. Instead one has to use wsconsctl(8) to adjust the brightness. Err codemadness.org 70 i 49533 Networking Err codemadness.org 70 i 49534 The infinityBook has built-in ethernet, driven by re(4) And for the wireless interface the iwm(4) driver is being used. Both work as expected. Err codemadness.org 70 i 49535 ACPI Err codemadness.org 70 i 49536 Neither suspend nor hibernate work. Reporting of battery status is bogus as well. Some of the keyboard function keys work: Err codemadness.org 70 i 49537 LCD on/off works (fn+f2) Err codemadness.org 70 i 49538 Keyboard backlight dimming works (fn+f4) Err codemadness.org 70 i 49539 Volume (fn+f5 / fn+f6) works Err codemadness.org 70 i 49540 Sound Err codemadness.org 70 i 49541 The azalia chipset is being used for audio processing. Works as expected, volume can be controlled via buttons (fn+f5, fn+f6) or via mixerctl. Err codemadness.org 70 i 49542 Touchpad Err codemadness.org 70 i 49543 Can be controlled via wsconsctl(8). Err codemadness.org 70 i 49544 So far I must say, that the InfinityBook makes a nice machine - and I’m enjoying working with it. Err codemadness.org 70 i 49545 iXsystems Err codemadness.org 70 i 49546 iXsystems - Its all NAS Err codemadness.org 70 i 49547 How ZFS makes things like ‘zfs diff’ report filenames efficiently Err codemadness.org 70 i 49548 As a copy on write (file)system, ZFS can use the transaction group (txg) numbers that are embedded in ZFS block pointers to efficiently find the differences between two txgs; this is used in, for example, ZFS bookmarks. However, as I noted at the end of my entry on block pointers, this doesn’t give us a filesystem level difference; instead, it essentially gives us a list of inodes (okay, dnodes) that changed. Err codemadness.org 70 i 49549 In theory, turning an inode or dnode number into the path to a file is an expensive operation; you basically have to search the entire filesystem until you find it. In practice, if you’ve ever run ‘zfs diff’, you’ve likely noticed that it runs pretty fast. Nor is this the only place that ZFS quickly turns dnode numbers into full paths, as it comes up in ‘zpool status’ reports about permanent errors. At one level, zfs diff and zpool status do this so rapidly because they ask the ZFS code in the kernel to do it for them. At another level, the question is how the kernel’s ZFS code can be so fast. Err codemadness.org 70 i 49550 The interesting and surprising answer is that ZFS cheats, in a way that makes things very fast when it works and almost always works in normal filesystems and with normal usage patterns. The cheat is that ZFS dnodes record their parent’s object number. Err codemadness.org 70 i 49551 If you’re familiar with the twists and turns of Unix filesystems, you’re now wondering how ZFS deals with hardlinks, which can cause a file to be in several directories at once and so have several parents (and then it can be removed from some of the directories). The answer is that ZFS doesn’t; a dnode only ever tracks a single parent, and ZFS accepts that this parent information can be inaccurate. I’ll quote the comment in zfsobjto_pobj: Err codemadness.org 70 i 49552 When a link is removed [the file’s] parent pointer is not changed and will be invalid. There are two cases where a link is removed but the file stays around, when it goes to the delete queue and when there are additional links. Err codemadness.org 70 i 49553 Before I get into the details, I want to say that I appreciate the brute force elegance of this cheat. The practical reality is that most Unix files today don’t have extra hardlinks, and when they do most hardlinks are done in ways that won’t break ZFS’s parent stuff. The result is that ZFS has picked an efficient implementation that works almost all of the time; in my opinion, the great benefit we get from having it around are more than worth the infrequent cases where it fails or malfunctions. Both zfs diff and having filenames show up in zpool status permanent error reports are very useful (and there may be other cases where this gets used). Err codemadness.org 70 i 49554 The current details are that any time you hardlink a file to somewhere or rename it, ZFS updates the file’s parent to point to the new directory. Often this will wind up with a correct parent even after all of the dust settles; for example, a common pattern is to write a file to an initial location, hardlink it to its final destination, and then remove the initial location version. In this case, the parent will be correct and you’ll get the right name. Err codemadness.org 70 i 49555 News Roundup Err codemadness.org 70 i 49556 What is FreeBSD? Why Should You Choose It Over Linux? Err codemadness.org 70 i 49557 Not too long ago I wondered if and in what situations FreeBSD could be faster than Linux and we received a good amount of informative feedback. So far, Linux rules the desktop space and FreeBSD rules the server space. Err codemadness.org 70 i 49558 In the meantime, though, what exactly is FreeBSD? And at what times should you choose it over a GNU/Linux installation? Let’s tackle these questions. Err codemadness.org 70 i 49559 FreeBSD is a free and open source derivative of BSD (Berkeley Software Distribution) with a focus on speed, stability, security, and consistency, among other features. It has been developed and maintained by a large community ever since its initial release many years ago on November 1, 1993. Err codemadness.org 70 i 49560 BSD is the version of UNIX® that was developed at the University of California in Berkeley. And being a free and open source version, “Free” being a prefix to BSD is a no-brainer. Err codemadness.org 70 i 49561 What’s FreeBSD Good For? Err codemadness.org 70 i 49562 FreeBSD offers a plethora of advanced features and even boasts some not available in some commercial Operating Systems. It makes an excellent Internet and Intranet server thanks to its robust network services that allow it to maximize memory and work with heavy loads to deliver and maintain good response times for thousands of simultaneous user processes. Err codemadness.org 70 i 49563 FreeBSD runs a huge number of applications with ease. At the moment, it has over 32,000 ported applications and libraries with support for desktop, server, and embedded environments. with that being said, let me also add that FreeBSD is excellent for working with advanced embedded platforms. Mail and web appliances, timer servers, routers, MIPS hardware platforms, etc. You name it! Err codemadness.org 70 i 49564 FreeBSD is available to install in several ways and there are directions to follow for any method you want to use; be it via CD-ROM, over a network using NFS or FTP, or DVD. Err codemadness.org 70 i 49565 FreeBSD is easy to contribute to and all you have to do is to locate the section of the FreeBSD code base to modify and carefully do a neat job. Potential contributors are also free to improve on its artwork and documentation, among other project aspects. Err codemadness.org 70 i 49566 FreeBSD is backed by the FreeBSD Foundation, a non-profit organization that you can contribute to financially and all direct contributions are tax deductible. Err codemadness.org 70 i 49567 FreeBSD’s license allows users to incorporate the use of proprietary software which is ideal for companies interested in generating revenues. Netflix, for example, could cite this as one of the reasons for using FreeBSD servers. Err codemadness.org 70 i 49568 Why Should You Choose It over Linux? Err codemadness.org 70 i 49569 From what I’ve gathered about both FreeBSD and Linux, FreeBSD has a better performance on servers than Linux does. Yes, its packaged applications are configured to offer better a performance than Linux and it is usually running fewer services by default, there really isn’t a way to certify which is faster because the answer is dependent on the running hardware and applications and how the system is tuned. Err codemadness.org 70 i 49570 FreeBSD is reportedly more secure than Linux because of the way the whole project is developed and maintained. Err codemadness.org 70 i 49571 Unlike with Linux, the FreeBSD project is controlled by a large community of developers around the world who fall into any of these categories; core team, contributors, and committers. Err codemadness.org 70 i 49572 FreeBSD is much easier to learn and use because there aren’t a thousand and one distros to choose from with different package managers, DEs, etc. Err codemadness.org 70 i 49573 FreeBSD is more convenient to contribute to because it is the entire OS that is preserved and not just the kernel and a repo as is the case with Linux. You can easily access all of its versions since they are sorted by release numbers. Err codemadness.org 70 i 49574 Apart from the many documentations and guides that you can find online, FreeBSD has a single official documentation wherein you can find the solution to virtually any issue you will come across. So, you’re sure to find it resourceful. Err codemadness.org 70 i 49575 FreeBSD has close to no software issues compared to Linux because it has Java, is capable of running Windows programs using Wine, and can run .NET programs using Mono. Err codemadness.org 70 i 49576 FreeBSD’s ports/packages system allows you to compile software with specific configurations, thereby avoiding conflicting dependency and version issues. Err codemadness.org 70 i 49577 Both the FreeBSD and GNU/Linux project are always receiving updates. The platform you decide to go with is largely dependent on what you want to use it for, your technical know-how, willingness to learn new stuff, and ultimately your preference. Err codemadness.org 70 i 49578 What is your take on the topic? For what reasons would you choose FreeBSD over Linux if you would? Let us know what you think about both platforms in the comments section below. Err codemadness.org 70 i 49579 PS4 5.05 BPF Double Free Kernel Exploit Writeup Err codemadness.org 70 i 49580 Introduction Err codemadness.org 70 i 49581 Welcome to the 5.0x kernel exploit write-up. A few months ago, a kernel vulnerability was discovered by qwertyoruiopz and an exploit was released for BPF which involved crafting an out-of-bounds (OOB) write via use-after-free (UAF) due to the lack of proper locking. It was a fun bug, and a very trivial exploit. Sony then removed the write functionality from BPF, so that exploit was patched. However, the core issue still remained (being the lack of locking). A very similar race condition still exists in BPF past 4.55, which we will go into detail below on. The full source of the exploit can be found here. Err codemadness.org 70 i 49582 This bug is no longer accessible however past 5.05 firmware, because the BPF driver has finally been blocked from unprivileged processes - WebKit can no longer open it. Sony also introduced a new security mitigation in 5.0x firmwares to prevent the stack pointer from pointing into user space, however we’ll go more in detail on this a bit further down. Err codemadness.org 70 i 49583 Assumptions Err codemadness.org 70 i 49584 Some assumptions are made of the reader’s knowledge for the writeup. The avid reader should have a basic understanding of how memory allocators work - more specifically, how malloc() and free() allocate and deallocate memory respectively. They should also be aware that devices can be issued commands concurrently, as in, one command could be received while another one is being processed via threading. An understanding of C, x86, and exploitation basics is also very helpful, though not necessarily required. Err codemadness.org 70 i 49585 Background Err codemadness.org 70 i 49586 This section contains some helpful information to those newer to exploitation, or are unfamiliar with device drivers, or various exploit techniques such as heap spraying and race conditions. Feel free to skip to the “A Tale of Two Free()'s” section if you’re already familiar with this material. Err codemadness.org 70 i 49587 What Are Drivers? Err codemadness.org 70 i 49588 There are a few ways that applications can directly communicate with the operating system. One of which is system calls, which there are over 600 of in the PS4 kernel, ~500 of which are FreeBSD - the rest are Sony-implemented. Another method is through something called “Device Drivers”. Drivers are typically used to bridge the gap between software and hardware devices (usb drives, keyboard/mouse, webcams, etc) - though they can also be used just for software purposes. Err codemadness.org 70 i 49589 There are a few operations that a userland application can perform on a driver (if it has sufficient permissions) to interface with it after opening it. In some instances, one can read from it, write to it, or in some cases, issue more complex commands to it via the ioctl() system call. The handlers for these commands are implemented in kernel space - this is important, because any bugs that could be exploited in an ioctl handler can be used as a privilege escalation straight to ring0 - typically the most privileged state. Err codemadness.org 70 i 49590 Drivers are often the more weaker points of an operating system for attackers, because sometimes these drivers are written by developers who don’t understand how the kernel works, or the drivers are older and thus not wise to newer attack methods. Err codemadness.org 70 i 49591 The BPF Device Driver Err codemadness.org 70 i 49592 If we take a look around inside of WebKit’s sandbox, we’ll find a /dev directory. While this may seem like the root device driver path, it’s a lie. Many of the drivers that the PS4 has are not exposed to this directory, but rather only ones that are needed for WebKit’s operation (for the most part). For some reason though, BPF (aka. the “Berkely Packet Filter”) device is not only exposed to WebKit’s sandbox - it also has the privileges to open the device as R/W. This is very odd, because on most systems this driver is root-only (and for good reason). If you want to read more into this, refer to my previous write-up with 4.55FW. Err codemadness.org 70 i 49593 What Are Packet Filters? Err codemadness.org 70 i 49594 Below is an excerpt from the 4.55 bpfwrite writeup. Err codemadness.org 70 i 49595 Since the bug is directly in the filter system, it is important to know the basics of what packet filters are. Filters are essentially sets of pseudo-instructions that are parsed by bpf_filter() (which are ran when packets are received). While the pseudo-instruction set is fairly minimal, it allows you to do things like perform basic arithmetic operations and copy values around inside it’s buffer. Breaking down the BPF VM in it’s entirety is far beyond the scope of this write-up, just know that the code produced by it is ran in kernel mode - this is why read/write access to /dev/bpf should be privileged. Err codemadness.org 70 i 49596 Race Conditions Err codemadness.org 70 i 49597 Race conditions occur when two processes/threads try to access a shared resource at the same time without mutual exclusion. The problem was ultimately solved by introducing concepts such as the “mutex” or “lock”. The idea is when one thread/process tries to access a resource, it will first acquire a lock, access it, then unlock it once it’s finished. If another thread/process tries to access it while the other has the lock, it will wait until the other thread is finished. This works fairly well - when it’s used properly. Err codemadness.org 70 i 49598 Locking is hard to get right, especially when you try to implement fine-grained locking for performance. One single instruction or line of code outside the locking window could introduce a race condition. Not all race conditions are exploitable, but some are (such as this one) - and they can give an attacker very powerful bugs to work with. Err codemadness.org 70 i 49599 Heap Spraying Err codemadness.org 70 i 49600 The process of heap spraying is fairly simple - allocate a bunch of memory and fill it with controlled data in a loop and pray your allocation doesn’t get stolen from underneath you. It’s a very useful technique when exploiting something such as a use-after-free(), as you can use it to get controlled data into your target object’s backing memory. Err codemadness.org 70 i 49601 By extension, it’s useful to do this for a double free() as well, because once we have a stale reference, we can use a heap spray to control the data. Since the object will be marked “free” - the allocator will eventually provide us with control over this memory, even though something else is still using it. That is, unless, something else has already stolen the pointer from you and corrupts it - then you’ll likely get a system crash, and that’s no fun. This is one factor that adds to the variance of exploits, and typically, the smaller the object, the more likely this is to happen. Err codemadness.org 70 i 49602 Follow the link to read more of the article Err codemadness.org 70 i 49603 DigitalOcean Err codemadness.org 70 i 49604 http://do.co/bsdnow Err codemadness.org 70 i 49605 OpenBSD gains Wi-Fi “auto-join” Err codemadness.org 70 i 49606 In a change which is bound to be welcomed widely, -current has gained “auto-join” for Wi-Fi networks. Peter Hessler (phessler@) has been working on this for quite some time and he wrote about it in his p2k18 hackathon report. He has committed the work from the g2k18 hackathon in Ljubljana: Err codemadness.org 70 i 49607 CVSROOT: /cvs Err codemadness.org 70 i 49608 Module name: src Err codemadness.org 70 i 49609 Changes by: phessler@cvs.openbsd.org 2018/07/11 14:18:09 Err codemadness.org 70 i 49610 Modified files: Err codemadness.org 70 i 49611 sbin/ifconfig : ifconfig.8 ifconfig.c Err codemadness.org 70 i 49612 sys/net80211 : ieee80211ioctl.c ieee80211ioctl.h Err codemadness.org 70 i 49613 ieee80211node.c ieee80211node.h Err codemadness.org 70 i 49614 ieee80211_var.h Err codemadness.org 70 i 49615 Log message: Err codemadness.org 70 i 49616 Introduce 'auto-join' to the wifi 802.11 stack. Err codemadness.org 70 i 49617 This allows a system to remember which ESSIDs it wants to connect to, any Err codemadness.org 70 i 49618 relevant security configuration, and switch to it when the network we are Err codemadness.org 70 i 49619 currently connected to is no longer available. Err codemadness.org 70 i 49620 Works when connecting and switching between WPA2/WPA1/WEP/clear encryptions. Err codemadness.org 70 i 49621 example hostname.if: Err codemadness.org 70 i 49622 join home wpakey password Err codemadness.org 70 i 49623 join work wpakey mekmitasdigoat Err codemadness.org 70 i 49624 join open-lounge Err codemadness.org 70 i 49625 join cafe wpakey cafe2018 Err codemadness.org 70 i 49626 join "wepnetwork" nwkey "12345" Err codemadness.org 70 i 49627 dhcp Err codemadness.org 70 i 49628 inet6 autoconf Err codemadness.org 70 i 49629 up Err codemadness.org 70 i 49630 OK stsp@ reyk@ Err codemadness.org 70 i 49631 and enthusiasm from every hackroom I've been in for the last 3 years Err codemadness.org 70 i 49632 The usage should be clear from the commit message, but basically you ‘join’ all the networks you want to auto-join as you would previously use ‘nwid’ to connect to one specific network. Then the kernel will join the network that’s actually in range and do the rest automagically for you. When you move out of range of that network you lose connectivity until you come in range of the original (where things will continue to work as you’ve been used to) or one of the other networks (where you will associate and then get a new lease). Err codemadness.org 70 i 49633 Thanks to Peter for working on this feature - something many a Wi-Fi using OpenBSD user will be able to benefit from. Err codemadness.org 70 i 49634 FreeBSD Jails the hard way Err codemadness.org 70 i 49635 There are many great options for managing FreeBSD Jails. iocage, warden and ez-jail aim to streamline the process and make it quick an easy to get going. But sometimes the tools built right into the OS are overlooked. Err codemadness.org 70 i 49636 This post goes over what is involved in creating and managing jails using only the tools built into FreeBSD. Err codemadness.org 70 i 49637 For this guide, I’m going to be putting my jails in /usr/local/jails. Err codemadness.org 70 i 49638 I’ll start with a very simple, isolated jail. Then I’ll go over how to use ZFS snapshots, and lastly nullfs mounts to share the FreeBSD base files with multiple jails. Err codemadness.org 70 i 49639 I’ll also show some examples of how to use the templating power of jail.conf to apply similar settings to all your jails. Err codemadness.org 70 i 49640 Full Jail Err codemadness.org 70 i 49641 Make a directory for the jail, or a zfs dataset if you prefer. Err codemadness.org 70 i 49642 Download the FreeBSD base files, and any other parts of FreeBSD you want. In this example I’ll include the 32 bit libraries as well. Err codemadness.org 70 i 49643 Update your FreeBSD base install. Err codemadness.org 70 i 49644 Verify your download. We’re downloading these archives over FTP after all, we should confirm that this download is valid and not tampered with. The freebsd-update IDS command verifies the installation using a PGP key which is in your base system, which was presumably installed with an ISO that you verified using the FreeBSD signed checksums. Admittedly this step is a bit of paranoia, but I think it’s prudent. Err codemadness.org 70 i 49645 Make sure you jail has the right timezone and dns servers and a hostname in rc.conf. Err codemadness.org 70 i 49646 Edit jail.conf with the details about your jail. Err codemadness.org 70 i 49647 Start and login to your jail. Err codemadness.org 70 i 49648 11 commands and a config file, but this is the most tedious way to make a jail. With a little bit of templating it can be even easier. So I’ll start by making a template. Making a template is basically the same as steps 1, 2 and 3 above, but with a different destination folder, I’ll condense them here. Err codemadness.org 70 i 49649 Creating a template Err codemadness.org 70 i 49650 Create a template or a ZFS dataset. If you’d like to use the zfs clone method of deploying templates, you’ll need to create a zfs dataset instead of a folder. Err codemadness.org 70 i 49651 Update your template with freebsd-update. Err codemadness.org 70 i 49652 Verify your install Err codemadness.org 70 i 49653 And that’s it, now you have a fully up to date jail template. If you’ve made this template with zfs, you can easily deploy it using zfs snapshots. Err codemadness.org 70 i 49654 Deploying a template with ZFS snapshots Err codemadness.org 70 i 49655 Create a snapshot. My last freebsd-update to my template brought it to patch level 17, so I’ll call my snapshot p10. Err codemadness.org 70 i 49656 Clone the snapshot to a new jail. Err codemadness.org 70 i 49657 Configure the jail hostname. Err codemadness.org 70 i 49658 Add the jail definition to jail.conf, make sure you have the global jail settings from jail.conf listed in the fulljail example. Err codemadness.org 70 i 49659 Start the jail. Err codemadness.org 70 i 49660 The downside with the zfs approach is that each jail is now a fully independent, and if you need to update your jails, you have to update them all individually. By sharing a template using nullfs mounts you can have only one copy of the base system that only needs to be updated once. Err codemadness.org 70 i 49661 Follow the link to see the rest of the article about Err codemadness.org 70 i 49662 Thin jails using NullFS mounts Err codemadness.org 70 i 49663 Simplifying jail.conf Err codemadness.org 70 i 49664 Hopefully this has helped you understand the process of how to create and manage FreeBSD jails without tools that abstract away all the details. Those tools are often quite useful, but there is always benefit in learning to do things the hard way. And in this case, the hard way doesn’t seem to be that hard after all. Err codemadness.org 70 i 49665 Beastie Bits Err codemadness.org 70 i 49666 Meetup in Zurich #4, July edition (July 19) – Which you likely missed, but now you know to look for the August edition! Err codemadness.org 70 i 49667 The next two BSD-PL User group meetings in Warsaw have been scheduled for July 30th and Aug 9th @ 1830 CEST – Submit your topic proposals now Err codemadness.org 70 i 49668 Linux Geek Books - Humble Bundle Err codemadness.org 70 i 49669 Extend loader(8) geli support to all architectures and all disk-like devices Err codemadness.org 70 i 49670 Upgrading from a bootpool to a single encrypted pool – skip the gptzfsboot part, and manually update your EFI partition with loader.efi Err codemadness.org 70 i 49671 The pkgsrc 2018Q2 for Illumos is available with 18500+ binary packages Err codemadness.org 70 i 49672 NetBSD ARM64 Images Available with SMP for RPi3 / NanoPi / Pine64 Boards Err codemadness.org 70 i 49673 Recently released CDE 2.3.0 running on Tribblix (Illumos) Err codemadness.org 70 i 49674 An Interview With Tech & Science Fiction Author Michael W Lucas Err codemadness.org 70 i 49675 A reminder : MeetBSD CFP Err codemadness.org 70 i 49676 EuroBSDCon talk acceptances have gone out, and once the tutorials are confirmed, registration will open. That will likely have happened by time you see this episode, so go register! See you in Romania Err codemadness.org 70 i 49677 Tarsnap Err codemadness.org 70 i 49678 Feedback/Questions Err codemadness.org 70 i 49679 Wilyarti - Adblocked on FreeBSD Continued… Err codemadness.org 70 i 49680 Andrew - A Question and a Story Err codemadness.org 70 i 49681 Matthew - Thanks Err codemadness.org 70 i 49682 Brian - PCI-E Controller Err codemadness.org 70 i 49683 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv Err codemadness.org 70 i 49684 Err codemadness.org 70 i 49685 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, ule, cfs, tuxedo, infinitybook, ps4, jails Err codemadness.org 70 i 49686 Err codemadness.org 70 i 49687 FreeBSD ULE vs. Linux CFS, OpenBSD on Tuxedo InfinityBook, how zfs diff reports filenames efficiently, why choose FreeBSD over Linux, PS4 double free exploit, OpenBSD’s wifi autojoin, and FreeBSD jails the hard way.

Err codemadness.org 70 i 49688 Err codemadness.org 70 i 49689

Win

Err codemadness.org 70 i 49690 Err codemadness.org 70 i 49691

Celebrate our 256th episode with us. You can win a Mogics Power Bagel (not sponsored).

Err codemadness.org 70 i 49692 Err codemadness.org 70 i 49693

To enter, go find the 4 episodes we did in December of 2017. In the opening, find the 4 letters in the bookshelf behind me. They spell different words in each of the 4 episodes. Send us these words in order to feedback@bsdnow.tv with the subject “bsdnow256” until August 8th, 2018 18:00 UTC and we’ll randomly draw the winner on the live show. We’ll then contact you to ship the item.
Err codemadness.org 70 i 49694 Only one item to win. All decisions are final. Better luck next time.

Err codemadness.org 70 i 49695 Err codemadness.org 70 i 49696

Headlines

Err codemadness.org 70 i 49697 Err codemadness.org 70 i 49698

Battle of the Schedulers: FreeBSD ULE vs. Linux CFS

Err codemadness.org 70 i 49699 Err codemadness.org 70 i 49700

Introduction
Err codemadness.org 70 i 49701 This paper analyzes the impact on application performance of the design and implementation choices made in two widely used open-source schedulers: ULE, the default FreeBSD scheduler, and CFS, the default Linux scheduler. We compare ULE and CFS in otherwise identical circumstances. We have ported ULE to Linux, and use it to schedule all threads that are normally scheduled by CFS. We compare the performance of a large suite of applications on the modified kernel running ULE and on the standard Linux kernel running CFS. The observed performance differences are solely the result of scheduling decisions, and do not reflect differences in other subsystems between FreeBSD and Linux. There is no overall winner. On many workloads the two schedulers perform similarly, but for some workloads there are significant and even surprising differences. ULE may cause starvation, even when executing a single application with identical threads, but this starvation may actually lead to better application performance for some workloads. The more complex load balancing mechanism of CFS reacts more quickly to workload changes, but ULE achieves better load balance in the long run.
Err codemadness.org 70 i 49702 Operating system kernel schedulers are responsible for maintaining high utilization of hardware resources (CPU cores, memory, I/O devices) while providing fast response time to latency-sensitive applications. They have to react to workload changes, and handle large numbers of cores and threads with minimal overhead [12]. This paper provides a comparison between the default schedulers of two of the most widely deployed open-source operating systems: the Completely Fair Scheduler (CFS) used in Linux, and the ULE scheduler used in FreeBSD. Our goal is not to declare an overall winner.
Err codemadness.org 70 i 49703 In fact, we find that for some workloads ULE is better and for others CFS is better. Instead, our goal is to illustrate how differences in the design and the implementation of the two schedulers are reflected in application performance under different workloads. ULE and CFS are both designed to schedule large numbers of threads on large multicore machines. Scalability considerations have led both schedulers to adopt per-core run-queues. On a context switch, a core accesses only its local run-queue to find the next thread to run. Periodically and at select times, e.g., when a thread wakes up, both ULE and CFS perform load balancing, i.e., they try to balance the amount of work waiting in the run-queues of different cores.
Err codemadness.org 70 i 49704 ULE and CFS, however, differ greatly in their design and implementation choices. FreeBSD ULE is a simple scheduler (2,950 lines of code in FreeBSD 11.1), while Linux CFS is much more complex (17,900 lines of code in the latest LTS Linux kernel, Linux 4.9). FreeBSD run-queues are FIFO. For load balancing, FreeBSD strives to even out the number of threads per core. In Linux, a core decides which thread to run next based on prior execution time, priority, and perceived cache behavior of the threads in its runqueue. Instead of evening out the number of threads between cores, Linux strives to even out the average amount of pending work.

Err codemadness.org 70 i 49705 Err codemadness.org 70 i 49706

Performance analysis
Err codemadness.org 70 i 49707 We now analyze the impact of the per-core scheduling on the performance of 37 applications. We define “performance” as follows: for database workloads and NAS applications, we compare the number of operations per second, and for the other applications we compare “execution time”. The higher the “performance”, the better a scheduler performs. Figure 5 presents the performance difference between CFS and ULE on a single core, with percentages above 0 meaning that the application executes faster with ULE than CFS.
Err codemadness.org 70 i 49708 Overall, the scheduler has little influence on most workloads. Indeed, most applications use threads that all perform the same work, thus both CFS and ULE endup scheduling all of the threads in a round-robin fashion. The average performance difference is 1.5%, in favor of ULE. Still, scimark is 36% slower on ULE than CFS, and apache is 40% faster on ULE than CFS. Scimark is a single-threaded Java application. It launches one compute thread, and the Java runtime executes other Java system threads in the background (for the garbage collector, I/O, etc.).
Err codemadness.org 70 i 49709 When the application is executed with ULE, the compute thread can be delayed, because Java system threads are considered interactive and get priority over the computation thread. The apache workload consists of two applications: the main server (httpd) running 100 threads, and ab, a single-threaded load injector.
Err codemadness.org 70 i 49710 The performance difference between ULE and CFS is explained by different choices regarding thread preemption. In ULE, full preemption is disabled, while CFS preempts the running thread when the thread that has just been woken up has a vruntime that is much smaller than the vruntime of the currently executing thread (1ms difference in practice). In CFS, ab is preempted 2 million times during the benchmark, while it never preempted with ULE.
Err codemadness.org 70 i 49711 This behavior is explained as follows: ab starts by sending 100 requests to the httpd server, and then waits for the server to answer. When ab is woken up, it checks which requests have been processed and sends new requests to the server. Since ab is single-threaded, all requests sent to the server are sent sequentially. In ULE, ab is able to send as many new requests as it has received responses. In CFS, every request sent by ab wakes up a httpd thread, which preempts ab.

Err codemadness.org 70 i 49712 Err codemadness.org 70 i 49713

Conclusion
Err codemadness.org 70 i 49714 Scheduling threads on a multicore machine is hard. In this paper, we perform a fair comparison of the design choices of two widely used schedulers: the ULE scheduler from FreeBSD and CFS from Linux. We show that they behave differently even on simple workloads, and that no scheduler performs better than the other on all workloads.

Err codemadness.org 70 i 49715 Err codemadness.org 70 i 49716

OpenBSD 6.3 on Tuxedo InfinityBook

Err codemadness.org 70 i 49717 Err codemadness.org 70 i 49718

Disclaimer:
Err codemadness.org 70 i 49719 I came across the Tuxedo Computers InfinityBook last year at the Open! Conference where Tuxedo had a small booth. Previously they came to my attention since they’re a member of the OSB Alliance on whose board I’m a member. Furthermore Tuxedo Computers are a sponsor of the OSBAR which I’m part of the organizational team.

Err codemadness.org 70 i 49720 Err codemadness.org 70 i 49721

OpenBSD on the Tuxedo InfinityBook
Err codemadness.org 70 i 49722 I’ve asked the guys over at Tuxedo Computers whether they would be interested to have some tests with *BSD done and that I could test drive one of their machines and give feedback on what works and what does not - and possibly look into it.+

Err codemadness.org 70 i 49723 Err codemadness.org 70 i 49724

Within a few weeks they shipped me a machine and last week the InfinityBook Pro 14” arrived. Awesome. Thanks already to the folks at Tuxedo Computers. The machine arrived accompanied by lot’s of swag :)

Err codemadness.org 70 i 49725 Err codemadness.org 70 i 49726

The InfinityBook is a very nice machine and allows a wide range of configuration. The configuration that was shipped to me:

Err codemadness.org 70 i 49727 Err codemadness.org 70 i 49728

Intel Core i7-8550U
Err codemadness.org 70 i 49729 1x 16GB RAM 2400Mhz Crucial Ballistix Sport LT
Err codemadness.org 70 i 49730 250 GB Samsung 860 EVO (M.2 SATAIII)

Err codemadness.org 70 i 49731 Err codemadness.org 70 i 49732

I used a USB-stick to boot install63.fs and re-installed the machine with OpenBSD. Full dmesg.

Err codemadness.org 70 i 49733 Err codemadness.org 70 i 49734

The installation went flawlessly, the needed intel firmware is being installed after installation automatically via fw_update(1).

Err codemadness.org 70 i 49735 Err codemadness.org 70 i 49736

Out of the box the graphics works and once installed the machine presents the login.

Err codemadness.org 70 i 49737 Err codemadness.org 70 i 49738

Video
Err codemadness.org 70 i 49739 When X starts the display is turned off for some reason. You will need to hit fn+f12 (the key with the moon on it) then the display will go on. Aside from that little nit, X works just fine and presents one the expected resolution.

Err codemadness.org 70 i 49740 Err codemadness.org 70 i 49741

External video is working just fine as well. Either via hdmi output or via the mini displayport connector.

Err codemadness.org 70 i 49742 Err codemadness.org 70 i 49743

The buttons for adjusting brightness (fn+f8 and fn+f9) are not working. Instead one has to use wsconsctl(8) to adjust the brightness.

Err codemadness.org 70 i 49744 Err codemadness.org 70 i 49745

Networking
Err codemadness.org 70 i 49746 The infinityBook has built-in ethernet, driven by re(4) And for the wireless interface the iwm(4) driver is being used. Both work as expected.

Err codemadness.org 70 i 49747 Err codemadness.org 70 i 49748

ACPI
Err codemadness.org 70 i 49749 Neither suspend nor hibernate work. Reporting of battery status is bogus as well. Some of the keyboard function keys work:

Err codemadness.org 70 i 49750 Err codemadness.org 70 i 49751

LCD on/off works (fn+f2)
Err codemadness.org 70 i 49752 Keyboard backlight dimming works (fn+f4)
Err codemadness.org 70 i 49753 Volume (fn+f5 / fn+f6) works

Err codemadness.org 70 i 49754 Err codemadness.org 70 i 49755

Sound
Err codemadness.org 70 i 49756 The azalia chipset is being used for audio processing. Works as expected, volume can be controlled via buttons (fn+f5, fn+f6) or via mixerctl.

Err codemadness.org 70 i 49757 Err codemadness.org 70 i 49758

Touchpad
Err codemadness.org 70 i 49759 Can be controlled via wsconsctl(8).
Err codemadness.org 70 i 49760 So far I must say, that the InfinityBook makes a nice machine - and I’m enjoying working with it.

Err codemadness.org 70 i 49761 Err codemadness.org 70 i 49762

iXsystems
Err codemadness.org 70 i 49763 iXsystems - Its all NAS

Err codemadness.org 70 i 49764 Err codemadness.org 70 i 49765

How ZFS makes things like ‘zfs diff’ report filenames efficiently

Err codemadness.org 70 i 49766 Err codemadness.org 70 i 49767

As a copy on write (file)system, ZFS can use the transaction group (txg) numbers that are embedded in ZFS block pointers to efficiently find the differences between two txgs; this is used in, for example, ZFS bookmarks. However, as I noted at the end of my entry on block pointers, this doesn’t give us a filesystem level difference; instead, it essentially gives us a list of inodes (okay, dnodes) that changed.
Err codemadness.org 70 i 49768 In theory, turning an inode or dnode number into the path to a file is an expensive operation; you basically have to search the entire filesystem until you find it. In practice, if you’ve ever run ‘zfs diff’, you’ve likely noticed that it runs pretty fast. Nor is this the only place that ZFS quickly turns dnode numbers into full paths, as it comes up in ‘zpool status’ reports about permanent errors. At one level, zfs diff and zpool status do this so rapidly because they ask the ZFS code in the kernel to do it for them. At another level, the question is how the kernel’s ZFS code can be so fast.
Err codemadness.org 70 i 49769 The interesting and surprising answer is that ZFS cheats, in a way that makes things very fast when it works and almost always works in normal filesystems and with normal usage patterns. The cheat is that ZFS dnodes record their parent’s object number.
Err codemadness.org 70 i 49770 If you’re familiar with the twists and turns of Unix filesystems, you’re now wondering how ZFS deals with hardlinks, which can cause a file to be in several directories at once and so have several parents (and then it can be removed from some of the directories). The answer is that ZFS doesn’t; a dnode only ever tracks a single parent, and ZFS accepts that this parent information can be inaccurate. I’ll quote the comment in zfs_obj_to_pobj:
Err codemadness.org 70 i 49771 When a link is removed [the file’s] parent pointer is not changed and will be invalid. There are two cases where a link is removed but the file stays around, when it goes to the delete queue and when there are additional links.
Err codemadness.org 70 i 49772 Before I get into the details, I want to say that I appreciate the brute force elegance of this cheat. The practical reality is that most Unix files today don’t have extra hardlinks, and when they do most hardlinks are done in ways that won’t break ZFS’s parent stuff. The result is that ZFS has picked an efficient implementation that works almost all of the time; in my opinion, the great benefit we get from having it around are more than worth the infrequent cases where it fails or malfunctions. Both zfs diff and having filenames show up in zpool status permanent error reports are very useful (and there may be other cases where this gets used).
Err codemadness.org 70 i 49773 The current details are that any time you hardlink a file to somewhere or rename it, ZFS updates the file’s parent to point to the new directory. Often this will wind up with a correct parent even after all of the dust settles; for example, a common pattern is to write a file to an initial location, hardlink it to its final destination, and then remove the initial location version. In this case, the parent will be correct and you’ll get the right name.

Err codemadness.org 70 i 49774 Err codemadness.org 70 i 49775

News Roundup

Err codemadness.org 70 i 49776 Err codemadness.org 70 i 49777

What is FreeBSD? Why Should You Choose It Over Linux?

Err codemadness.org 70 i 49778 Err codemadness.org 70 i 49779

Not too long ago I wondered if and in what situations FreeBSD could be faster than Linux and we received a good amount of informative feedback. So far, Linux rules the desktop space and FreeBSD rules the server space.

Err codemadness.org 70 i 49780 Err codemadness.org 70 i 49781

In the meantime, though, what exactly is FreeBSD? And at what times should you choose it over a GNU/Linux installation? Let’s tackle these questions.

Err codemadness.org 70 i 49782 Err codemadness.org 70 i 49783

FreeBSD is a free and open source derivative of BSD (Berkeley Software Distribution) with a focus on speed, stability, security, and consistency, among other features. It has been developed and maintained by a large community ever since its initial release many years ago on November 1, 1993.

Err codemadness.org 70 i 49784 Err codemadness.org 70 i 49785

BSD is the version of UNIX® that was developed at the University of California in Berkeley. And being a free and open source version, “Free” being a prefix to BSD is a no-brainer.

Err codemadness.org 70 i 49786 Err codemadness.org 70 i 49787

What’s FreeBSD Good For?

Err codemadness.org 70 i 49788 Err codemadness.org 70 i 49789

FreeBSD offers a plethora of advanced features and even boasts some not available in some commercial Operating Systems. It makes an excellent Internet and Intranet server thanks to its robust network services that allow it to maximize memory and work with heavy loads to deliver and maintain good response times for thousands of simultaneous user processes.

Err codemadness.org 70 i 49790 Err codemadness.org 70 i 49791

FreeBSD runs a huge number of applications with ease. At the moment, it has over 32,000 ported applications and libraries with support for desktop, server, and embedded environments. with that being said, let me also add that FreeBSD is excellent for working with advanced embedded platforms. Mail and web appliances, timer servers, routers, MIPS hardware platforms, etc. You name it!

Err codemadness.org 70 i 49792 Err codemadness.org 70 i 49793

FreeBSD is available to install in several ways and there are directions to follow for any method you want to use; be it via CD-ROM, over a network using NFS or FTP, or DVD.

Err codemadness.org 70 i 49794 Err codemadness.org 70 i 49795

FreeBSD is easy to contribute to and all you have to do is to locate the section of the FreeBSD code base to modify and carefully do a neat job. Potential contributors are also free to improve on its artwork and documentation, among other project aspects.

Err codemadness.org 70 i 49796 Err codemadness.org 70 i 49797

FreeBSD is backed by the FreeBSD Foundation, a non-profit organization that you can contribute to financially and all direct contributions are tax deductible.

Err codemadness.org 70 i 49798 Err codemadness.org 70 i 49799

FreeBSD’s license allows users to incorporate the use of proprietary software which is ideal for companies interested in generating revenues. Netflix, for example, could cite this as one of the reasons for using FreeBSD servers.

Err codemadness.org 70 i 49800 Err codemadness.org 70 i 49801

Why Should You Choose It over Linux?

Err codemadness.org 70 i 49802 Err codemadness.org 70 i 49803

From what I’ve gathered about both FreeBSD and Linux, FreeBSD has a better performance on servers than Linux does. Yes, its packaged applications are configured to offer better a performance than Linux and it is usually running fewer services by default, there really isn’t a way to certify which is faster because the answer is dependent on the running hardware and applications and how the system is tuned.

Err codemadness.org 70 i 49804 Err codemadness.org 70 i 49805

FreeBSD is reportedly more secure than Linux because of the way the whole project is developed and maintained.

Err codemadness.org 70 i 49806 Err codemadness.org 70 i 49807

Unlike with Linux, the FreeBSD project is controlled by a large community of developers around the world who fall into any of these categories; core team, contributors, and committers.

Err codemadness.org 70 i 49808 Err codemadness.org 70 i 49809

FreeBSD is much easier to learn and use because there aren’t a thousand and one distros to choose from with different package managers, DEs, etc.

Err codemadness.org 70 i 49810 Err codemadness.org 70 i 49811

FreeBSD is more convenient to contribute to because it is the entire OS that is preserved and not just the kernel and a repo as is the case with Linux. You can easily access all of its versions since they are sorted by release numbers.

Err codemadness.org 70 i 49812 Err codemadness.org 70 i 49813

Apart from the many documentations and guides that you can find online, FreeBSD has a single official documentation wherein you can find the solution to virtually any issue you will come across. So, you’re sure to find it resourceful.

Err codemadness.org 70 i 49814 Err codemadness.org 70 i 49815

FreeBSD has close to no software issues compared to Linux because it has Java, is capable of running Windows programs using Wine, and can run .NET programs using Mono.

Err codemadness.org 70 i 49816 Err codemadness.org 70 i 49817

FreeBSD’s ports/packages system allows you to compile software with specific configurations, thereby avoiding conflicting dependency and version issues.

Err codemadness.org 70 i 49818 Err codemadness.org 70 i 49819

Both the FreeBSD and GNU/Linux project are always receiving updates. The platform you decide to go with is largely dependent on what you want to use it for, your technical know-how, willingness to learn new stuff, and ultimately your preference.
Err codemadness.org 70 i 49820 What is your take on the topic? For what reasons would you choose FreeBSD over Linux if you would? Let us know what you think about both platforms in the comments section below.

Err codemadness.org 70 i 49821 Err codemadness.org 70 i 49822

PS4 5.05 BPF Double Free Kernel Exploit Writeup

Err codemadness.org 70 i 49823 Err codemadness.org 70 i 49824

Introduction
Err codemadness.org 70 i 49825 Welcome to the 5.0x kernel exploit write-up. A few months ago, a kernel vulnerability was discovered by qwertyoruiopz and an exploit was released for BPF which involved crafting an out-of-bounds (OOB) write via use-after-free (UAF) due to the lack of proper locking. It was a fun bug, and a very trivial exploit. Sony then removed the write functionality from BPF, so that exploit was patched. However, the core issue still remained (being the lack of locking). A very similar race condition still exists in BPF past 4.55, which we will go into detail below on. The full source of the exploit can be found here.
Err codemadness.org 70 i 49826 This bug is no longer accessible however past 5.05 firmware, because the BPF driver has finally been blocked from unprivileged processes - WebKit can no longer open it. Sony also introduced a new security mitigation in 5.0x firmwares to prevent the stack pointer from pointing into user space, however we’ll go more in detail on this a bit further down.

Err codemadness.org 70 i 49827 Err codemadness.org 70 i 49828

Assumptions
Err codemadness.org 70 i 49829 Some assumptions are made of the reader’s knowledge for the writeup. The avid reader should have a basic understanding of how memory allocators work - more specifically, how malloc() and free() allocate and deallocate memory respectively. They should also be aware that devices can be issued commands concurrently, as in, one command could be received while another one is being processed via threading. An understanding of C, x86, and exploitation basics is also very helpful, though not necessarily required.

Err codemadness.org 70 i 49830 Err codemadness.org 70 i 49831

Background
Err codemadness.org 70 i 49832 This section contains some helpful information to those newer to exploitation, or are unfamiliar with device drivers, or various exploit techniques such as heap spraying and race conditions. Feel free to skip to the “A Tale of Two Free()'s” section if you’re already familiar with this material.

Err codemadness.org 70 i 49833 Err codemadness.org 70 i 49834

What Are Drivers?
Err codemadness.org 70 i 49835 There are a few ways that applications can directly communicate with the operating system. One of which is system calls, which there are over 600 of in the PS4 kernel, ~500 of which are FreeBSD - the rest are Sony-implemented. Another method is through something called “Device Drivers”. Drivers are typically used to bridge the gap between software and hardware devices (usb drives, keyboard/mouse, webcams, etc) - though they can also be used just for software purposes.
Err codemadness.org 70 i 49836 There are a few operations that a userland application can perform on a driver (if it has sufficient permissions) to interface with it after opening it. In some instances, one can read from it, write to it, or in some cases, issue more complex commands to it via the ioctl() system call. The handlers for these commands are implemented in kernel space - this is important, because any bugs that could be exploited in an ioctl handler can be used as a privilege escalation straight to ring0 - typically the most privileged state.
Err codemadness.org 70 i 49837 Drivers are often the more weaker points of an operating system for attackers, because sometimes these drivers are written by developers who don’t understand how the kernel works, or the drivers are older and thus not wise to newer attack methods.

Err codemadness.org 70 i 49838 Err codemadness.org 70 i 49839

The BPF Device Driver
Err codemadness.org 70 i 49840 If we take a look around inside of WebKit’s sandbox, we’ll find a /dev directory. While this may seem like the root device driver path, it’s a lie. Many of the drivers that the PS4 has are not exposed to this directory, but rather only ones that are needed for WebKit’s operation (for the most part). For some reason though, BPF (aka. the “Berkely Packet Filter”) device is not only exposed to WebKit’s sandbox - it also has the privileges to open the device as R/W. This is very odd, because on most systems this driver is root-only (and for good reason). If you want to read more into this, refer to my previous write-up with 4.55FW.

Err codemadness.org 70 i 49841 Err codemadness.org 70 i 49842

What Are Packet Filters?
Err codemadness.org 70 i 49843 Below is an excerpt from the 4.55 bpfwrite writeup.
Err codemadness.org 70 i 49844 Since the bug is directly in the filter system, it is important to know the basics of what packet filters are. Filters are essentially sets of pseudo-instructions that are parsed by bpf_filter() (which are ran when packets are received). While the pseudo-instruction set is fairly minimal, it allows you to do things like perform basic arithmetic operations and copy values around inside it’s buffer. Breaking down the BPF VM in it’s entirety is far beyond the scope of this write-up, just know that the code produced by it is ran in kernel mode - this is why read/write access to /dev/bpf should be privileged.

Err codemadness.org 70 i 49845 Err codemadness.org 70 i 49846

Race Conditions
Err codemadness.org 70 i 49847 Race conditions occur when two processes/threads try to access a shared resource at the same time without mutual exclusion. The problem was ultimately solved by introducing concepts such as the “mutex” or “lock”. The idea is when one thread/process tries to access a resource, it will first acquire a lock, access it, then unlock it once it’s finished. If another thread/process tries to access it while the other has the lock, it will wait until the other thread is finished. This works fairly well - when it’s used properly.
Err codemadness.org 70 i 49848 Locking is hard to get right, especially when you try to implement fine-grained locking for performance. One single instruction or line of code outside the locking window could introduce a race condition. Not all race conditions are exploitable, but some are (such as this one) - and they can give an attacker very powerful bugs to work with.

Err codemadness.org 70 i 49849 Err codemadness.org 70 i 49850

Heap Spraying
Err codemadness.org 70 i 49851 The process of heap spraying is fairly simple - allocate a bunch of memory and fill it with controlled data in a loop and pray your allocation doesn’t get stolen from underneath you. It’s a very useful technique when exploiting something such as a use-after-free(), as you can use it to get controlled data into your target object’s backing memory.
Err codemadness.org 70 i 49852 By extension, it’s useful to do this for a double free() as well, because once we have a stale reference, we can use a heap spray to control the data. Since the object will be marked “free” - the allocator will eventually provide us with control over this memory, even though something else is still using it. That is, unless, something else has already stolen the pointer from you and corrupts it - then you’ll likely get a system crash, and that’s no fun. This is one factor that adds to the variance of exploits, and typically, the smaller the object, the more likely this is to happen.

Err codemadness.org 70 i 49853 Err codemadness.org 70 i 49854

Follow the link to read more of the article
Err codemadness.org 70 i 49855 DigitalOcean
Err codemadness.org 70 i 49856 http://do.co/bsdnow

Err codemadness.org 70 i 49857 Err codemadness.org 70 i 49858

OpenBSD gains Wi-Fi “auto-join”

Err codemadness.org 70 i 49859 Err codemadness.org 70 i 49860

In a change which is bound to be welcomed widely, -current has gained “auto-join” for Wi-Fi networks. Peter Hessler (phessler@) has been working on this for quite some time and he wrote about it in his p2k18 hackathon report. He has committed the work from the g2k18 hackathon in Ljubljana:

Err codemadness.org 70 i 49861 Err codemadness.org 70 i 49862

CVSROOT: /cvs
Err codemadness.org 70 i 49863 Module name: src
Err codemadness.org 70 i 49864 Changes by: phessler@cvs.openbsd.org 2018/07/11 14:18:09

Err codemadness.org 70 i 49865 Err codemadness.org 70 i 49866

Modified files:
Err codemadness.org 70 i 49867 sbin/ifconfig : ifconfig.8 ifconfig.c
Err codemadness.org 70 i 49868 sys/net80211 : ieee80211_ioctl.c ieee80211_ioctl.h
Err codemadness.org 70 i 49869 ieee80211_node.c ieee80211_node.h
Err codemadness.org 70 i 49870 ieee80211_var.h

Err codemadness.org 70 i 49871 Err codemadness.org 70 i 49872

Log message:
Err codemadness.org 70 i 49873 Introduce 'auto-join' to the wifi 802.11 stack.

Err codemadness.org 70 i 49874 Err codemadness.org 70 i 49875

This allows a system to remember which ESSIDs it wants to connect to, any
Err codemadness.org 70 i 49876 relevant security configuration, and switch to it when the network we are
Err codemadness.org 70 i 49877 currently connected to is no longer available.
Err codemadness.org 70 i 49878 Works when connecting and switching between WPA2/WPA1/WEP/clear encryptions.

Err codemadness.org 70 i 49879 Err codemadness.org 70 i 49880

example hostname.if:
Err codemadness.org 70 i 49881 join home wpakey password
Err codemadness.org 70 i 49882 join work wpakey mekmitasdigoat
Err codemadness.org 70 i 49883 join open-lounge
Err codemadness.org 70 i 49884 join cafe wpakey cafe2018
Err codemadness.org 70 i 49885 join "wepnetwork" nwkey "12345"
Err codemadness.org 70 i 49886 dhcp
Err codemadness.org 70 i 49887 inet6 autoconf
Err codemadness.org 70 i 49888 up

Err codemadness.org 70 i 49889 Err codemadness.org 70 i 49890

OK stsp@ reyk@
Err codemadness.org 70 i 49891 and enthusiasm from every hackroom I've been in for the last 3 years
Err codemadness.org 70 i 49892 The usage should be clear from the commit message, but basically you ‘join’ all the networks you want to auto-join as you would previously use ‘nwid’ to connect to one specific network. Then the kernel will join the network that’s actually in range and do the rest automagically for you. When you move out of range of that network you lose connectivity until you come in range of the original (where things will continue to work as you’ve been used to) or one of the other networks (where you will associate and then get a new lease).

Err codemadness.org 70 i 49893 Err codemadness.org 70 i 49894

Thanks to Peter for working on this feature - something many a Wi-Fi using OpenBSD user will be able to benefit from.

Err codemadness.org 70 i 49895 Err codemadness.org 70 i 49896

FreeBSD Jails the hard way

Err codemadness.org 70 i 49897 Err codemadness.org 70 i 49898

There are many great options for managing FreeBSD Jails. iocage, warden and ez-jail aim to streamline the process and make it quick an easy to get going. But sometimes the tools built right into the OS are overlooked.

Err codemadness.org 70 i 49899 Err codemadness.org 70 i 49900

This post goes over what is involved in creating and managing jails using only the tools built into FreeBSD.

Err codemadness.org 70 i 49901 Err codemadness.org 70 i 49902

For this guide, I’m going to be putting my jails in /usr/local/jails.

Err codemadness.org 70 i 49903 Err codemadness.org 70 i 49904

I’ll start with a very simple, isolated jail. Then I’ll go over how to use ZFS snapshots, and lastly nullfs mounts to share the FreeBSD base files with multiple jails.

Err codemadness.org 70 i 49905 Err codemadness.org 70 i 49906

I’ll also show some examples of how to use the templating power of jail.conf to apply similar settings to all your jails.

Err codemadness.org 70 i 49907 Err codemadness.org 70 i 49908

Full Jail
Err codemadness.org 70 i 49909 Make a directory for the jail, or a zfs dataset if you prefer.
Err codemadness.org 70 i 49910 Download the FreeBSD base files, and any other parts of FreeBSD you want. In this example I’ll include the 32 bit libraries as well.
Err codemadness.org 70 i 49911 Update your FreeBSD base install.
Err codemadness.org 70 i 49912 Verify your download. We’re downloading these archives over FTP after all, we should confirm that this download is valid and not tampered with. The freebsd-update IDS command verifies the installation using a PGP key which is in your base system, which was presumably installed with an ISO that you verified using the FreeBSD signed checksums. Admittedly this step is a bit of paranoia, but I think it’s prudent.
Err codemadness.org 70 i 49913 Make sure you jail has the right timezone and dns servers and a hostname in rc.conf.
Err codemadness.org 70 i 49914 Edit jail.conf with the details about your jail.
Err codemadness.org 70 i 49915 Start and login to your jail.
Err codemadness.org 70 i 49916 11 commands and a config file, but this is the most tedious way to make a jail. With a little bit of templating it can be even easier. So I’ll start by making a template. Making a template is basically the same as steps 1, 2 and 3 above, but with a different destination folder, I’ll condense them here.

Err codemadness.org 70 i 49917 Err codemadness.org 70 i 49918

Creating a template
Err codemadness.org 70 i 49919 Create a template or a ZFS dataset. If you’d like to use the zfs clone method of deploying templates, you’ll need to create a zfs dataset instead of a folder.
Err codemadness.org 70 i 49920 Update your template with freebsd-update.
Err codemadness.org 70 i 49921 Verify your install
Err codemadness.org 70 i 49922 And that’s it, now you have a fully up to date jail template. If you’ve made this template with zfs, you can easily deploy it using zfs snapshots.

Err codemadness.org 70 i 49923 Err codemadness.org 70 i 49924

Deploying a template with ZFS snapshots
Err codemadness.org 70 i 49925 Create a snapshot. My last freebsd-update to my template brought it to patch level 17, so I’ll call my snapshot p10.
Err codemadness.org 70 i 49926 Clone the snapshot to a new jail.
Err codemadness.org 70 i 49927 Configure the jail hostname.
Err codemadness.org 70 i 49928 Add the jail definition to jail.conf, make sure you have the global jail settings from jail.conf listed in the fulljail example.
Err codemadness.org 70 i 49929 Start the jail.
Err codemadness.org 70 i 49930 The downside with the zfs approach is that each jail is now a fully independent, and if you need to update your jails, you have to update them all individually. By sharing a template using nullfs mounts you can have only one copy of the base system that only needs to be updated once.

Err codemadness.org 70 i 49931 Err codemadness.org 70 i 49932

Follow the link to see the rest of the article about
Err codemadness.org 70 i 49933 Thin jails using NullFS mounts
Err codemadness.org 70 i 49934 Simplifying jail.conf
Err codemadness.org 70 i 49935 Hopefully this has helped you understand the process of how to create and manage FreeBSD jails without tools that abstract away all the details. Those tools are often quite useful, but there is always benefit in learning to do things the hard way. And in this case, the hard way doesn’t seem to be that hard after all.

Err codemadness.org 70 i 49936 Err codemadness.org 70 i 49937

Beastie Bits

Err codemadness.org 70 i 49938 Err codemadness.org 70 i 49939

Meetup in Zurich #4, July edition (July 19) – Which you likely missed, but now you know to look for the August edition!
Err codemadness.org 70 i 49940 The next two BSD-PL User group meetings in Warsaw have been scheduled for July 30th and Aug 9th @ 1830 CEST – Submit your topic proposals now
Err codemadness.org 70 i 49941 Linux Geek Books - Humble Bundle
Err codemadness.org 70 i 49942 Extend loader(8) geli support to all architectures and all disk-like devices
Err codemadness.org 70 i 49943 Upgrading from a bootpool to a single encrypted pool – skip the gptzfsboot part, and manually update your EFI partition with loader.efi
Err codemadness.org 70 i 49944 The pkgsrc 2018Q2 for Illumos is available with 18500+ binary packages
Err codemadness.org 70 i 49945 NetBSD ARM64 Images Available with SMP for RPi3 / NanoPi / Pine64 Boards
Err codemadness.org 70 i 49946 Recently released CDE 2.3.0 running on Tribblix (Illumos)
Err codemadness.org 70 i 49947 An Interview With Tech & Science Fiction Author Michael W Lucas
Err codemadness.org 70 i 49948 A reminder : MeetBSD CFP
Err codemadness.org 70 i 49949 EuroBSDCon talk acceptances have gone out, and once the tutorials are confirmed, registration will open. That will likely have happened by time you see this episode, so go register! See you in Romania
Err codemadness.org 70 i 49950 Tarsnap

Err codemadness.org 70 i 49951 Err codemadness.org 70 i 49952

Feedback/Questions

Err codemadness.org 70 i 49953 Err codemadness.org 70 i 49954

Wilyarti - Adblocked on FreeBSD Continued…
Err codemadness.org 70 i 49955 Andrew - A Question and a Story
Err codemadness.org 70 i 49956 Matthew - Thanks
Err codemadness.org 70 i 49957 Brian - PCI-E Controller
Err codemadness.org 70 i 49958 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

]]> Err codemadness.org 70 i 49959
Err codemadness.org 70 i 49960 Err codemadness.org 70 i 49961 FreeBSD ULE vs. Linux CFS, OpenBSD on Tuxedo InfinityBook, how zfs diff reports filenames efficiently, why choose FreeBSD over Linux, PS4 double free exploit, OpenBSD’s wifi autojoin, and FreeBSD jails the hard way.

Err codemadness.org 70 i 49962 Err codemadness.org 70 i 49963

Win

Err codemadness.org 70 i 49964 Err codemadness.org 70 i 49965

Celebrate our 256th episode with us. You can win a Mogics Power Bagel (not sponsored).

Err codemadness.org 70 i 49966 Err codemadness.org 70 i 49967

To enter, go find the 4 episodes we did in December of 2017. In the opening, find the 4 letters in the bookshelf behind me. They spell different words in each of the 4 episodes. Send us these words in order to feedback@bsdnow.tv with the subject “bsdnow256” until August 8th, 2018 18:00 UTC and we’ll randomly draw the winner on the live show. We’ll then contact you to ship the item.
Err codemadness.org 70 i 49968 Only one item to win. All decisions are final. Better luck next time.

Err codemadness.org 70 i 49969 Err codemadness.org 70 i 49970

Headlines

Err codemadness.org 70 i 49971 Err codemadness.org 70 i 49972

Battle of the Schedulers: FreeBSD ULE vs. Linux CFS

Err codemadness.org 70 i 49973 Err codemadness.org 70 i 49974

Introduction
Err codemadness.org 70 i 49975 This paper analyzes the impact on application performance of the design and implementation choices made in two widely used open-source schedulers: ULE, the default FreeBSD scheduler, and CFS, the default Linux scheduler. We compare ULE and CFS in otherwise identical circumstances. We have ported ULE to Linux, and use it to schedule all threads that are normally scheduled by CFS. We compare the performance of a large suite of applications on the modified kernel running ULE and on the standard Linux kernel running CFS. The observed performance differences are solely the result of scheduling decisions, and do not reflect differences in other subsystems between FreeBSD and Linux. There is no overall winner. On many workloads the two schedulers perform similarly, but for some workloads there are significant and even surprising differences. ULE may cause starvation, even when executing a single application with identical threads, but this starvation may actually lead to better application performance for some workloads. The more complex load balancing mechanism of CFS reacts more quickly to workload changes, but ULE achieves better load balance in the long run.
Err codemadness.org 70 i 49976 Operating system kernel schedulers are responsible for maintaining high utilization of hardware resources (CPU cores, memory, I/O devices) while providing fast response time to latency-sensitive applications. They have to react to workload changes, and handle large numbers of cores and threads with minimal overhead [12]. This paper provides a comparison between the default schedulers of two of the most widely deployed open-source operating systems: the Completely Fair Scheduler (CFS) used in Linux, and the ULE scheduler used in FreeBSD. Our goal is not to declare an overall winner.
Err codemadness.org 70 i 49977 In fact, we find that for some workloads ULE is better and for others CFS is better. Instead, our goal is to illustrate how differences in the design and the implementation of the two schedulers are reflected in application performance under different workloads. ULE and CFS are both designed to schedule large numbers of threads on large multicore machines. Scalability considerations have led both schedulers to adopt per-core run-queues. On a context switch, a core accesses only its local run-queue to find the next thread to run. Periodically and at select times, e.g., when a thread wakes up, both ULE and CFS perform load balancing, i.e., they try to balance the amount of work waiting in the run-queues of different cores.
Err codemadness.org 70 i 49978 ULE and CFS, however, differ greatly in their design and implementation choices. FreeBSD ULE is a simple scheduler (2,950 lines of code in FreeBSD 11.1), while Linux CFS is much more complex (17,900 lines of code in the latest LTS Linux kernel, Linux 4.9). FreeBSD run-queues are FIFO. For load balancing, FreeBSD strives to even out the number of threads per core. In Linux, a core decides which thread to run next based on prior execution time, priority, and perceived cache behavior of the threads in its runqueue. Instead of evening out the number of threads between cores, Linux strives to even out the average amount of pending work.

Err codemadness.org 70 i 49979 Err codemadness.org 70 i 49980

Performance analysis
Err codemadness.org 70 i 49981 We now analyze the impact of the per-core scheduling on the performance of 37 applications. We define “performance” as follows: for database workloads and NAS applications, we compare the number of operations per second, and for the other applications we compare “execution time”. The higher the “performance”, the better a scheduler performs. Figure 5 presents the performance difference between CFS and ULE on a single core, with percentages above 0 meaning that the application executes faster with ULE than CFS.
Err codemadness.org 70 i 49982 Overall, the scheduler has little influence on most workloads. Indeed, most applications use threads that all perform the same work, thus both CFS and ULE endup scheduling all of the threads in a round-robin fashion. The average performance difference is 1.5%, in favor of ULE. Still, scimark is 36% slower on ULE than CFS, and apache is 40% faster on ULE than CFS. Scimark is a single-threaded Java application. It launches one compute thread, and the Java runtime executes other Java system threads in the background (for the garbage collector, I/O, etc.).
Err codemadness.org 70 i 49983 When the application is executed with ULE, the compute thread can be delayed, because Java system threads are considered interactive and get priority over the computation thread. The apache workload consists of two applications: the main server (httpd) running 100 threads, and ab, a single-threaded load injector.
Err codemadness.org 70 i 49984 The performance difference between ULE and CFS is explained by different choices regarding thread preemption. In ULE, full preemption is disabled, while CFS preempts the running thread when the thread that has just been woken up has a vruntime that is much smaller than the vruntime of the currently executing thread (1ms difference in practice). In CFS, ab is preempted 2 million times during the benchmark, while it never preempted with ULE.
Err codemadness.org 70 i 49985 This behavior is explained as follows: ab starts by sending 100 requests to the httpd server, and then waits for the server to answer. When ab is woken up, it checks which requests have been processed and sends new requests to the server. Since ab is single-threaded, all requests sent to the server are sent sequentially. In ULE, ab is able to send as many new requests as it has received responses. In CFS, every request sent by ab wakes up a httpd thread, which preempts ab.

Err codemadness.org 70 i 49986 Err codemadness.org 70 i 49987

Conclusion
Err codemadness.org 70 i 49988 Scheduling threads on a multicore machine is hard. In this paper, we perform a fair comparison of the design choices of two widely used schedulers: the ULE scheduler from FreeBSD and CFS from Linux. We show that they behave differently even on simple workloads, and that no scheduler performs better than the other on all workloads.

Err codemadness.org 70 i 49989 Err codemadness.org 70 i 49990

OpenBSD 6.3 on Tuxedo InfinityBook

Err codemadness.org 70 i 49991 Err codemadness.org 70 i 49992

Disclaimer:
Err codemadness.org 70 i 49993 I came across the Tuxedo Computers InfinityBook last year at the Open! Conference where Tuxedo had a small booth. Previously they came to my attention since they’re a member of the OSB Alliance on whose board I’m a member. Furthermore Tuxedo Computers are a sponsor of the OSBAR which I’m part of the organizational team.

Err codemadness.org 70 i 49994 Err codemadness.org 70 i 49995

OpenBSD on the Tuxedo InfinityBook
Err codemadness.org 70 i 49996 I’ve asked the guys over at Tuxedo Computers whether they would be interested to have some tests with *BSD done and that I could test drive one of their machines and give feedback on what works and what does not - and possibly look into it.+

Err codemadness.org 70 i 49997 Err codemadness.org 70 i 49998

Within a few weeks they shipped me a machine and last week the InfinityBook Pro 14” arrived. Awesome. Thanks already to the folks at Tuxedo Computers. The machine arrived accompanied by lot’s of swag :)

Err codemadness.org 70 i 49999 Err codemadness.org 70 i 50000

The InfinityBook is a very nice machine and allows a wide range of configuration. The configuration that was shipped to me:

Err codemadness.org 70 i 50001 Err codemadness.org 70 i 50002

Intel Core i7-8550U
Err codemadness.org 70 i 50003 1x 16GB RAM 2400Mhz Crucial Ballistix Sport LT
Err codemadness.org 70 i 50004 250 GB Samsung 860 EVO (M.2 SATAIII)

Err codemadness.org 70 i 50005 Err codemadness.org 70 i 50006

I used a USB-stick to boot install63.fs and re-installed the machine with OpenBSD. Full dmesg.

Err codemadness.org 70 i 50007 Err codemadness.org 70 i 50008

The installation went flawlessly, the needed intel firmware is being installed after installation automatically via fw_update(1).

Err codemadness.org 70 i 50009 Err codemadness.org 70 i 50010

Out of the box the graphics works and once installed the machine presents the login.

Err codemadness.org 70 i 50011 Err codemadness.org 70 i 50012

Video
Err codemadness.org 70 i 50013 When X starts the display is turned off for some reason. You will need to hit fn+f12 (the key with the moon on it) then the display will go on. Aside from that little nit, X works just fine and presents one the expected resolution.

Err codemadness.org 70 i 50014 Err codemadness.org 70 i 50015

External video is working just fine as well. Either via hdmi output or via the mini displayport connector.

Err codemadness.org 70 i 50016 Err codemadness.org 70 i 50017

The buttons for adjusting brightness (fn+f8 and fn+f9) are not working. Instead one has to use wsconsctl(8) to adjust the brightness.

Err codemadness.org 70 i 50018 Err codemadness.org 70 i 50019

Networking
Err codemadness.org 70 i 50020 The infinityBook has built-in ethernet, driven by re(4) And for the wireless interface the iwm(4) driver is being used. Both work as expected.

Err codemadness.org 70 i 50021 Err codemadness.org 70 i 50022

ACPI
Err codemadness.org 70 i 50023 Neither suspend nor hibernate work. Reporting of battery status is bogus as well. Some of the keyboard function keys work:

Err codemadness.org 70 i 50024 Err codemadness.org 70 i 50025

LCD on/off works (fn+f2)
Err codemadness.org 70 i 50026 Keyboard backlight dimming works (fn+f4)
Err codemadness.org 70 i 50027 Volume (fn+f5 / fn+f6) works

Err codemadness.org 70 i 50028 Err codemadness.org 70 i 50029

Sound
Err codemadness.org 70 i 50030 The azalia chipset is being used for audio processing. Works as expected, volume can be controlled via buttons (fn+f5, fn+f6) or via mixerctl.

Err codemadness.org 70 i 50031 Err codemadness.org 70 i 50032

Touchpad
Err codemadness.org 70 i 50033 Can be controlled via wsconsctl(8).
Err codemadness.org 70 i 50034 So far I must say, that the InfinityBook makes a nice machine - and I’m enjoying working with it.

Err codemadness.org 70 i 50035 Err codemadness.org 70 i 50036

iXsystems
Err codemadness.org 70 i 50037 iXsystems - Its all NAS

Err codemadness.org 70 i 50038 Err codemadness.org 70 i 50039

How ZFS makes things like ‘zfs diff’ report filenames efficiently

Err codemadness.org 70 i 50040 Err codemadness.org 70 i 50041

As a copy on write (file)system, ZFS can use the transaction group (txg) numbers that are embedded in ZFS block pointers to efficiently find the differences between two txgs; this is used in, for example, ZFS bookmarks. However, as I noted at the end of my entry on block pointers, this doesn’t give us a filesystem level difference; instead, it essentially gives us a list of inodes (okay, dnodes) that changed.
Err codemadness.org 70 i 50042 In theory, turning an inode or dnode number into the path to a file is an expensive operation; you basically have to search the entire filesystem until you find it. In practice, if you’ve ever run ‘zfs diff’, you’ve likely noticed that it runs pretty fast. Nor is this the only place that ZFS quickly turns dnode numbers into full paths, as it comes up in ‘zpool status’ reports about permanent errors. At one level, zfs diff and zpool status do this so rapidly because they ask the ZFS code in the kernel to do it for them. At another level, the question is how the kernel’s ZFS code can be so fast.
Err codemadness.org 70 i 50043 The interesting and surprising answer is that ZFS cheats, in a way that makes things very fast when it works and almost always works in normal filesystems and with normal usage patterns. The cheat is that ZFS dnodes record their parent’s object number.
Err codemadness.org 70 i 50044 If you’re familiar with the twists and turns of Unix filesystems, you’re now wondering how ZFS deals with hardlinks, which can cause a file to be in several directories at once and so have several parents (and then it can be removed from some of the directories). The answer is that ZFS doesn’t; a dnode only ever tracks a single parent, and ZFS accepts that this parent information can be inaccurate. I’ll quote the comment in zfs_obj_to_pobj:
Err codemadness.org 70 i 50045 When a link is removed [the file’s] parent pointer is not changed and will be invalid. There are two cases where a link is removed but the file stays around, when it goes to the delete queue and when there are additional links.
Err codemadness.org 70 i 50046 Before I get into the details, I want to say that I appreciate the brute force elegance of this cheat. The practical reality is that most Unix files today don’t have extra hardlinks, and when they do most hardlinks are done in ways that won’t break ZFS’s parent stuff. The result is that ZFS has picked an efficient implementation that works almost all of the time; in my opinion, the great benefit we get from having it around are more than worth the infrequent cases where it fails or malfunctions. Both zfs diff and having filenames show up in zpool status permanent error reports are very useful (and there may be other cases where this gets used).
Err codemadness.org 70 i 50047 The current details are that any time you hardlink a file to somewhere or rename it, ZFS updates the file’s parent to point to the new directory. Often this will wind up with a correct parent even after all of the dust settles; for example, a common pattern is to write a file to an initial location, hardlink it to its final destination, and then remove the initial location version. In this case, the parent will be correct and you’ll get the right name.

Err codemadness.org 70 i 50048 Err codemadness.org 70 i 50049

News Roundup

Err codemadness.org 70 i 50050 Err codemadness.org 70 i 50051

What is FreeBSD? Why Should You Choose It Over Linux?

Err codemadness.org 70 i 50052 Err codemadness.org 70 i 50053

Not too long ago I wondered if and in what situations FreeBSD could be faster than Linux and we received a good amount of informative feedback. So far, Linux rules the desktop space and FreeBSD rules the server space.

Err codemadness.org 70 i 50054 Err codemadness.org 70 i 50055

In the meantime, though, what exactly is FreeBSD? And at what times should you choose it over a GNU/Linux installation? Let’s tackle these questions.

Err codemadness.org 70 i 50056 Err codemadness.org 70 i 50057

FreeBSD is a free and open source derivative of BSD (Berkeley Software Distribution) with a focus on speed, stability, security, and consistency, among other features. It has been developed and maintained by a large community ever since its initial release many years ago on November 1, 1993.

Err codemadness.org 70 i 50058 Err codemadness.org 70 i 50059

BSD is the version of UNIX® that was developed at the University of California in Berkeley. And being a free and open source version, “Free” being a prefix to BSD is a no-brainer.

Err codemadness.org 70 i 50060 Err codemadness.org 70 i 50061

What’s FreeBSD Good For?

Err codemadness.org 70 i 50062 Err codemadness.org 70 i 50063

FreeBSD offers a plethora of advanced features and even boasts some not available in some commercial Operating Systems. It makes an excellent Internet and Intranet server thanks to its robust network services that allow it to maximize memory and work with heavy loads to deliver and maintain good response times for thousands of simultaneous user processes.

Err codemadness.org 70 i 50064 Err codemadness.org 70 i 50065

FreeBSD runs a huge number of applications with ease. At the moment, it has over 32,000 ported applications and libraries with support for desktop, server, and embedded environments. with that being said, let me also add that FreeBSD is excellent for working with advanced embedded platforms. Mail and web appliances, timer servers, routers, MIPS hardware platforms, etc. You name it!

Err codemadness.org 70 i 50066 Err codemadness.org 70 i 50067

FreeBSD is available to install in several ways and there are directions to follow for any method you want to use; be it via CD-ROM, over a network using NFS or FTP, or DVD.

Err codemadness.org 70 i 50068 Err codemadness.org 70 i 50069

FreeBSD is easy to contribute to and all you have to do is to locate the section of the FreeBSD code base to modify and carefully do a neat job. Potential contributors are also free to improve on its artwork and documentation, among other project aspects.

Err codemadness.org 70 i 50070 Err codemadness.org 70 i 50071

FreeBSD is backed by the FreeBSD Foundation, a non-profit organization that you can contribute to financially and all direct contributions are tax deductible.

Err codemadness.org 70 i 50072 Err codemadness.org 70 i 50073

FreeBSD’s license allows users to incorporate the use of proprietary software which is ideal for companies interested in generating revenues. Netflix, for example, could cite this as one of the reasons for using FreeBSD servers.

Err codemadness.org 70 i 50074 Err codemadness.org 70 i 50075

Why Should You Choose It over Linux?

Err codemadness.org 70 i 50076 Err codemadness.org 70 i 50077

From what I’ve gathered about both FreeBSD and Linux, FreeBSD has a better performance on servers than Linux does. Yes, its packaged applications are configured to offer better a performance than Linux and it is usually running fewer services by default, there really isn’t a way to certify which is faster because the answer is dependent on the running hardware and applications and how the system is tuned.

Err codemadness.org 70 i 50078 Err codemadness.org 70 i 50079

FreeBSD is reportedly more secure than Linux because of the way the whole project is developed and maintained.

Err codemadness.org 70 i 50080 Err codemadness.org 70 i 50081

Unlike with Linux, the FreeBSD project is controlled by a large community of developers around the world who fall into any of these categories; core team, contributors, and committers.

Err codemadness.org 70 i 50082 Err codemadness.org 70 i 50083

FreeBSD is much easier to learn and use because there aren’t a thousand and one distros to choose from with different package managers, DEs, etc.

Err codemadness.org 70 i 50084 Err codemadness.org 70 i 50085

FreeBSD is more convenient to contribute to because it is the entire OS that is preserved and not just the kernel and a repo as is the case with Linux. You can easily access all of its versions since they are sorted by release numbers.

Err codemadness.org 70 i 50086 Err codemadness.org 70 i 50087

Apart from the many documentations and guides that you can find online, FreeBSD has a single official documentation wherein you can find the solution to virtually any issue you will come across. So, you’re sure to find it resourceful.

Err codemadness.org 70 i 50088 Err codemadness.org 70 i 50089

FreeBSD has close to no software issues compared to Linux because it has Java, is capable of running Windows programs using Wine, and can run .NET programs using Mono.

Err codemadness.org 70 i 50090 Err codemadness.org 70 i 50091

FreeBSD’s ports/packages system allows you to compile software with specific configurations, thereby avoiding conflicting dependency and version issues.

Err codemadness.org 70 i 50092 Err codemadness.org 70 i 50093

Both the FreeBSD and GNU/Linux project are always receiving updates. The platform you decide to go with is largely dependent on what you want to use it for, your technical know-how, willingness to learn new stuff, and ultimately your preference.
Err codemadness.org 70 i 50094 What is your take on the topic? For what reasons would you choose FreeBSD over Linux if you would? Let us know what you think about both platforms in the comments section below.

Err codemadness.org 70 i 50095 Err codemadness.org 70 i 50096

PS4 5.05 BPF Double Free Kernel Exploit Writeup

Err codemadness.org 70 i 50097 Err codemadness.org 70 i 50098

Introduction
Err codemadness.org 70 i 50099 Welcome to the 5.0x kernel exploit write-up. A few months ago, a kernel vulnerability was discovered by qwertyoruiopz and an exploit was released for BPF which involved crafting an out-of-bounds (OOB) write via use-after-free (UAF) due to the lack of proper locking. It was a fun bug, and a very trivial exploit. Sony then removed the write functionality from BPF, so that exploit was patched. However, the core issue still remained (being the lack of locking). A very similar race condition still exists in BPF past 4.55, which we will go into detail below on. The full source of the exploit can be found here.
Err codemadness.org 70 i 50100 This bug is no longer accessible however past 5.05 firmware, because the BPF driver has finally been blocked from unprivileged processes - WebKit can no longer open it. Sony also introduced a new security mitigation in 5.0x firmwares to prevent the stack pointer from pointing into user space, however we’ll go more in detail on this a bit further down.

Err codemadness.org 70 i 50101 Err codemadness.org 70 i 50102

Assumptions
Err codemadness.org 70 i 50103 Some assumptions are made of the reader’s knowledge for the writeup. The avid reader should have a basic understanding of how memory allocators work - more specifically, how malloc() and free() allocate and deallocate memory respectively. They should also be aware that devices can be issued commands concurrently, as in, one command could be received while another one is being processed via threading. An understanding of C, x86, and exploitation basics is also very helpful, though not necessarily required.

Err codemadness.org 70 i 50104 Err codemadness.org 70 i 50105

Background
Err codemadness.org 70 i 50106 This section contains some helpful information to those newer to exploitation, or are unfamiliar with device drivers, or various exploit techniques such as heap spraying and race conditions. Feel free to skip to the “A Tale of Two Free()'s” section if you’re already familiar with this material.

Err codemadness.org 70 i 50107 Err codemadness.org 70 i 50108

What Are Drivers?
Err codemadness.org 70 i 50109 There are a few ways that applications can directly communicate with the operating system. One of which is system calls, which there are over 600 of in the PS4 kernel, ~500 of which are FreeBSD - the rest are Sony-implemented. Another method is through something called “Device Drivers”. Drivers are typically used to bridge the gap between software and hardware devices (usb drives, keyboard/mouse, webcams, etc) - though they can also be used just for software purposes.
Err codemadness.org 70 i 50110 There are a few operations that a userland application can perform on a driver (if it has sufficient permissions) to interface with it after opening it. In some instances, one can read from it, write to it, or in some cases, issue more complex commands to it via the ioctl() system call. The handlers for these commands are implemented in kernel space - this is important, because any bugs that could be exploited in an ioctl handler can be used as a privilege escalation straight to ring0 - typically the most privileged state.
Err codemadness.org 70 i 50111 Drivers are often the more weaker points of an operating system for attackers, because sometimes these drivers are written by developers who don’t understand how the kernel works, or the drivers are older and thus not wise to newer attack methods.

Err codemadness.org 70 i 50112 Err codemadness.org 70 i 50113

The BPF Device Driver
Err codemadness.org 70 i 50114 If we take a look around inside of WebKit’s sandbox, we’ll find a /dev directory. While this may seem like the root device driver path, it’s a lie. Many of the drivers that the PS4 has are not exposed to this directory, but rather only ones that are needed for WebKit’s operation (for the most part). For some reason though, BPF (aka. the “Berkely Packet Filter”) device is not only exposed to WebKit’s sandbox - it also has the privileges to open the device as R/W. This is very odd, because on most systems this driver is root-only (and for good reason). If you want to read more into this, refer to my previous write-up with 4.55FW.

Err codemadness.org 70 i 50115 Err codemadness.org 70 i 50116

What Are Packet Filters?
Err codemadness.org 70 i 50117 Below is an excerpt from the 4.55 bpfwrite writeup.
Err codemadness.org 70 i 50118 Since the bug is directly in the filter system, it is important to know the basics of what packet filters are. Filters are essentially sets of pseudo-instructions that are parsed by bpf_filter() (which are ran when packets are received). While the pseudo-instruction set is fairly minimal, it allows you to do things like perform basic arithmetic operations and copy values around inside it’s buffer. Breaking down the BPF VM in it’s entirety is far beyond the scope of this write-up, just know that the code produced by it is ran in kernel mode - this is why read/write access to /dev/bpf should be privileged.

Err codemadness.org 70 i 50119 Err codemadness.org 70 i 50120

Race Conditions
Err codemadness.org 70 i 50121 Race conditions occur when two processes/threads try to access a shared resource at the same time without mutual exclusion. The problem was ultimately solved by introducing concepts such as the “mutex” or “lock”. The idea is when one thread/process tries to access a resource, it will first acquire a lock, access it, then unlock it once it’s finished. If another thread/process tries to access it while the other has the lock, it will wait until the other thread is finished. This works fairly well - when it’s used properly.
Err codemadness.org 70 i 50122 Locking is hard to get right, especially when you try to implement fine-grained locking for performance. One single instruction or line of code outside the locking window could introduce a race condition. Not all race conditions are exploitable, but some are (such as this one) - and they can give an attacker very powerful bugs to work with.

Err codemadness.org 70 i 50123 Err codemadness.org 70 i 50124

Heap Spraying
Err codemadness.org 70 i 50125 The process of heap spraying is fairly simple - allocate a bunch of memory and fill it with controlled data in a loop and pray your allocation doesn’t get stolen from underneath you. It’s a very useful technique when exploiting something such as a use-after-free(), as you can use it to get controlled data into your target object’s backing memory.
Err codemadness.org 70 i 50126 By extension, it’s useful to do this for a double free() as well, because once we have a stale reference, we can use a heap spray to control the data. Since the object will be marked “free” - the allocator will eventually provide us with control over this memory, even though something else is still using it. That is, unless, something else has already stolen the pointer from you and corrupts it - then you’ll likely get a system crash, and that’s no fun. This is one factor that adds to the variance of exploits, and typically, the smaller the object, the more likely this is to happen.

Err codemadness.org 70 i 50127 Err codemadness.org 70 i 50128

Follow the link to read more of the article
Err codemadness.org 70 i 50129 DigitalOcean
Err codemadness.org 70 i 50130 http://do.co/bsdnow

Err codemadness.org 70 i 50131 Err codemadness.org 70 i 50132

OpenBSD gains Wi-Fi “auto-join”

Err codemadness.org 70 i 50133 Err codemadness.org 70 i 50134

In a change which is bound to be welcomed widely, -current has gained “auto-join” for Wi-Fi networks. Peter Hessler (phessler@) has been working on this for quite some time and he wrote about it in his p2k18 hackathon report. He has committed the work from the g2k18 hackathon in Ljubljana:

Err codemadness.org 70 i 50135 Err codemadness.org 70 i 50136

CVSROOT: /cvs
Err codemadness.org 70 i 50137 Module name: src
Err codemadness.org 70 i 50138 Changes by: phessler@cvs.openbsd.org 2018/07/11 14:18:09

Err codemadness.org 70 i 50139 Err codemadness.org 70 i 50140

Modified files:
Err codemadness.org 70 i 50141 sbin/ifconfig : ifconfig.8 ifconfig.c
Err codemadness.org 70 i 50142 sys/net80211 : ieee80211_ioctl.c ieee80211_ioctl.h
Err codemadness.org 70 i 50143 ieee80211_node.c ieee80211_node.h
Err codemadness.org 70 i 50144 ieee80211_var.h

Err codemadness.org 70 i 50145 Err codemadness.org 70 i 50146

Log message:
Err codemadness.org 70 i 50147 Introduce 'auto-join' to the wifi 802.11 stack.

Err codemadness.org 70 i 50148 Err codemadness.org 70 i 50149

This allows a system to remember which ESSIDs it wants to connect to, any
Err codemadness.org 70 i 50150 relevant security configuration, and switch to it when the network we are
Err codemadness.org 70 i 50151 currently connected to is no longer available.
Err codemadness.org 70 i 50152 Works when connecting and switching between WPA2/WPA1/WEP/clear encryptions.

Err codemadness.org 70 i 50153 Err codemadness.org 70 i 50154

example hostname.if:
Err codemadness.org 70 i 50155 join home wpakey password
Err codemadness.org 70 i 50156 join work wpakey mekmitasdigoat
Err codemadness.org 70 i 50157 join open-lounge
Err codemadness.org 70 i 50158 join cafe wpakey cafe2018
Err codemadness.org 70 i 50159 join "wepnetwork" nwkey "12345"
Err codemadness.org 70 i 50160 dhcp
Err codemadness.org 70 i 50161 inet6 autoconf
Err codemadness.org 70 i 50162 up

Err codemadness.org 70 i 50163 Err codemadness.org 70 i 50164

OK stsp@ reyk@
Err codemadness.org 70 i 50165 and enthusiasm from every hackroom I've been in for the last 3 years
Err codemadness.org 70 i 50166 The usage should be clear from the commit message, but basically you ‘join’ all the networks you want to auto-join as you would previously use ‘nwid’ to connect to one specific network. Then the kernel will join the network that’s actually in range and do the rest automagically for you. When you move out of range of that network you lose connectivity until you come in range of the original (where things will continue to work as you’ve been used to) or one of the other networks (where you will associate and then get a new lease).

Err codemadness.org 70 i 50167 Err codemadness.org 70 i 50168

Thanks to Peter for working on this feature - something many a Wi-Fi using OpenBSD user will be able to benefit from.

Err codemadness.org 70 i 50169 Err codemadness.org 70 i 50170

FreeBSD Jails the hard way

Err codemadness.org 70 i 50171 Err codemadness.org 70 i 50172

There are many great options for managing FreeBSD Jails. iocage, warden and ez-jail aim to streamline the process and make it quick an easy to get going. But sometimes the tools built right into the OS are overlooked.

Err codemadness.org 70 i 50173 Err codemadness.org 70 i 50174

This post goes over what is involved in creating and managing jails using only the tools built into FreeBSD.

Err codemadness.org 70 i 50175 Err codemadness.org 70 i 50176

For this guide, I’m going to be putting my jails in /usr/local/jails.

Err codemadness.org 70 i 50177 Err codemadness.org 70 i 50178

I’ll start with a very simple, isolated jail. Then I’ll go over how to use ZFS snapshots, and lastly nullfs mounts to share the FreeBSD base files with multiple jails.

Err codemadness.org 70 i 50179 Err codemadness.org 70 i 50180

I’ll also show some examples of how to use the templating power of jail.conf to apply similar settings to all your jails.

Err codemadness.org 70 i 50181 Err codemadness.org 70 i 50182

Full Jail
Err codemadness.org 70 i 50183 Make a directory for the jail, or a zfs dataset if you prefer.
Err codemadness.org 70 i 50184 Download the FreeBSD base files, and any other parts of FreeBSD you want. In this example I’ll include the 32 bit libraries as well.
Err codemadness.org 70 i 50185 Update your FreeBSD base install.
Err codemadness.org 70 i 50186 Verify your download. We’re downloading these archives over FTP after all, we should confirm that this download is valid and not tampered with. The freebsd-update IDS command verifies the installation using a PGP key which is in your base system, which was presumably installed with an ISO that you verified using the FreeBSD signed checksums. Admittedly this step is a bit of paranoia, but I think it’s prudent.
Err codemadness.org 70 i 50187 Make sure you jail has the right timezone and dns servers and a hostname in rc.conf.
Err codemadness.org 70 i 50188 Edit jail.conf with the details about your jail.
Err codemadness.org 70 i 50189 Start and login to your jail.
Err codemadness.org 70 i 50190 11 commands and a config file, but this is the most tedious way to make a jail. With a little bit of templating it can be even easier. So I’ll start by making a template. Making a template is basically the same as steps 1, 2 and 3 above, but with a different destination folder, I’ll condense them here.

Err codemadness.org 70 i 50191 Err codemadness.org 70 i 50192

Creating a template
Err codemadness.org 70 i 50193 Create a template or a ZFS dataset. If you’d like to use the zfs clone method of deploying templates, you’ll need to create a zfs dataset instead of a folder.
Err codemadness.org 70 i 50194 Update your template with freebsd-update.
Err codemadness.org 70 i 50195 Verify your install
Err codemadness.org 70 i 50196 And that’s it, now you have a fully up to date jail template. If you’ve made this template with zfs, you can easily deploy it using zfs snapshots.

Err codemadness.org 70 i 50197 Err codemadness.org 70 i 50198

Deploying a template with ZFS snapshots
Err codemadness.org 70 i 50199 Create a snapshot. My last freebsd-update to my template brought it to patch level 17, so I’ll call my snapshot p10.
Err codemadness.org 70 i 50200 Clone the snapshot to a new jail.
Err codemadness.org 70 i 50201 Configure the jail hostname.
Err codemadness.org 70 i 50202 Add the jail definition to jail.conf, make sure you have the global jail settings from jail.conf listed in the fulljail example.
Err codemadness.org 70 i 50203 Start the jail.
Err codemadness.org 70 i 50204 The downside with the zfs approach is that each jail is now a fully independent, and if you need to update your jails, you have to update them all individually. By sharing a template using nullfs mounts you can have only one copy of the base system that only needs to be updated once.

Err codemadness.org 70 i 50205 Err codemadness.org 70 i 50206

Follow the link to see the rest of the article about
Err codemadness.org 70 i 50207 Thin jails using NullFS mounts
Err codemadness.org 70 i 50208 Simplifying jail.conf
Err codemadness.org 70 i 50209 Hopefully this has helped you understand the process of how to create and manage FreeBSD jails without tools that abstract away all the details. Those tools are often quite useful, but there is always benefit in learning to do things the hard way. And in this case, the hard way doesn’t seem to be that hard after all.

Err codemadness.org 70 i 50210 Err codemadness.org 70 i 50211

Beastie Bits

Err codemadness.org 70 i 50212 Err codemadness.org 70 i 50213

Meetup in Zurich #4, July edition (July 19) – Which you likely missed, but now you know to look for the August edition!
Err codemadness.org 70 i 50214 The next two BSD-PL User group meetings in Warsaw have been scheduled for July 30th and Aug 9th @ 1830 CEST – Submit your topic proposals now
Err codemadness.org 70 i 50215 Linux Geek Books - Humble Bundle
Err codemadness.org 70 i 50216 Extend loader(8) geli support to all architectures and all disk-like devices
Err codemadness.org 70 i 50217 Upgrading from a bootpool to a single encrypted pool – skip the gptzfsboot part, and manually update your EFI partition with loader.efi
Err codemadness.org 70 i 50218 The pkgsrc 2018Q2 for Illumos is available with 18500+ binary packages
Err codemadness.org 70 i 50219 NetBSD ARM64 Images Available with SMP for RPi3 / NanoPi / Pine64 Boards
Err codemadness.org 70 i 50220 Recently released CDE 2.3.0 running on Tribblix (Illumos)
Err codemadness.org 70 i 50221 An Interview With Tech & Science Fiction Author Michael W Lucas
Err codemadness.org 70 i 50222 A reminder : MeetBSD CFP
Err codemadness.org 70 i 50223 EuroBSDCon talk acceptances have gone out, and once the tutorials are confirmed, registration will open. That will likely have happened by time you see this episode, so go register! See you in Romania
Err codemadness.org 70 i 50224 Tarsnap

Err codemadness.org 70 i 50225 Err codemadness.org 70 i 50226

Feedback/Questions

Err codemadness.org 70 i 50227 Err codemadness.org 70 i 50228

Wilyarti - Adblocked on FreeBSD Continued…
Err codemadness.org 70 i 50229 Andrew - A Question and a Story
Err codemadness.org 70 i 50230 Matthew - Thanks
Err codemadness.org 70 i 50231 Brian - PCI-E Controller
Err codemadness.org 70 i 50232 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

]]> Err codemadness.org 70 i 50233
Err codemadness.org 70 i 50234 https://fireside.fm/player/v2/FYhhasNR+GBE4YxFB Err codemadness.org 70 i 50235 Err codemadness.org 70 i 50236 ]]> Err codemadness.org 70 i 50237 Err codemadness.org 70 i 50238
Err codemadness.org 70 i 50239 Err codemadness.org 70 i 50240 Episode 255: What Are You Pointing At | BSD Now 255 Err codemadness.org 70 i 50241 https://www.bsdnow.tv/255 Err codemadness.org 70 i 50242 http://feed.jupiter.zone/bsdnow#entry-2267 Err codemadness.org 70 i 50243 Wed, 18 Jul 2018 00:00:00 -0700 Err codemadness.org 70 i 50244 Allan Jude Err codemadness.org 70 i 50245 Err codemadness.org 70 i 50246 full Err codemadness.org 70 i 50247 Allan Jude Err codemadness.org 70 i 50248 What ZFS blockpointers are, zero-day rewards offered, KDE on FreeBSD status, new FreeBSD core team, NetBSD WiFi refresh, poor man’s CI, and the power of Ctrl+T. Err codemadness.org 70 i 50249 1:20:27 Err codemadness.org 70 i 50250 no Err codemadness.org 70 i 50251 Err codemadness.org 70 i 50252 What ZFS blockpointers are, zero-day rewards offered, KDE on FreeBSD status, new FreeBSD core team, NetBSD WiFi refresh, poor man’s CI, and the power of Ctrl+T. Err codemadness.org 70 i 50253 <p>##Headlines<br> Err codemadness.org 70 i 50254 <a href="https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSBlockPointers">What ZFS block pointers are and what’s in them</a></p> Err codemadness.org 70 i 50255 <blockquote> Err codemadness.org 70 i 50256 <p>I’ve mentioned ZFS block pointers in the past; for example, when I wrote about some details of ZFS DVAs, I said that DVAs are embedded in block pointers. But I’ve never really looked carefully at what is in block pointers and what that means and implies for ZFS.</p> Err codemadness.org 70 i 50257 </blockquote> Err codemadness.org 70 i 50258 <blockquote> Err codemadness.org 70 i 50259 <p>The very simple way to describe a ZFS block pointer is that it’s what ZFS uses in places where other filesystems would simply put a block number. Just like block numbers but unlike things like ZFS dnodes, a block pointer isn’t a separate on-disk entity; instead it’s an on disk data format and an in memory structure that shows up in other things. To quote from the (draft and old) ZFS on-disk specification (PDF):</p> Err codemadness.org 70 i 50260 </blockquote> Err codemadness.org 70 i 50261 <blockquote> Err codemadness.org 70 i 50262 <p>A block pointer (blkptr_t) is a 128 byte ZFS structure used to physically locate, verify, and describe blocks of data on disk.</p> Err codemadness.org 70 i 50263 </blockquote> Err codemadness.org 70 i 50264 <blockquote> Err codemadness.org 70 i 50265 <p>Block pointers are embedded in any ZFS on disk structure that points directly to other disk blocks, both for data and metadata. For instance, the dnode for a file contains block pointers that refer to either its data blocks (if it’s small enough) or indirect blocks, as I saw in this entry. However, as I discovered when I paid attention, most things in ZFS only point to dnodes indirectly, by giving their object number (either in a ZFS filesystem or in pool-wide metadata).</p> Err codemadness.org 70 i 50266 </blockquote> Err codemadness.org 70 i 50267 <blockquote> Err codemadness.org 70 i 50268 <p>So what’s in a block pointer itself? You can find the technical details for modern ZFS in spa.h, so I’m going to give a sort of summary. A regular block pointer contains:</p> Err codemadness.org 70 i 50269 </blockquote> Err codemadness.org 70 i 50270 <ul> Err codemadness.org 70 i 50271 <li>various metadata and flags about what the block pointer is for and what parts of it mean, including what type of object it points to.</li> Err codemadness.org 70 i 50272 <li>Up to three DVAs that say where to actually find the data on disk. There can be more than one DVA because you may have set the copies property to 2 or 3, or this may be metadata (which normally has two copies and may have more for sufficiently important metadata).</li> Err codemadness.org 70 i 50273 <li>The logical size (size before compression) and ‘physical’ size (the nominal size after compression) of the disk block. The physical size can do odd things and is not necessarily the asize (allocated size) for the DVA(s).</li> Err codemadness.org 70 i 50274 <li>The txgs that the block was born in, both logically and physically (the physical txg is apparently for dva[0]). The physical txg was added with ZFS deduplication but apparently also shows up in vdev removal.</li> Err codemadness.org 70 i 50275 <li>The checksum of the data the block pointer describes. This checksum implicitly covers the entire logical size of the data, and as a result you must read all of the data in order to verify it. This can be an issue on raidz vdevs or if the block had to use gang blocks.</li> Err codemadness.org 70 i 50276 </ul> Err codemadness.org 70 i 50277 <blockquote> Err codemadness.org 70 i 50278 <p>Just like basically everything else in ZFS, block pointers don’t have an explicit checksum of their contents. Instead they’re implicitly covered by the checksum of whatever they’re embedded in; the block pointers in a dnode are covered by the overall checksum of the dnode, for example. Block pointers must include a checksum for the data they point to because such data is ‘out of line’ for the containing object.</p> Err codemadness.org 70 i 50279 </blockquote> Err codemadness.org 70 i 50280 <blockquote> Err codemadness.org 70 i 50281 <p>(The block pointers in a dnode don’t necessarily point straight to data. If there’s more than a bit of data in whatever the dnode covers, the dnode’s block pointers will instead point to some level of indirect block, which itself has some number of block pointers.)</p> Err codemadness.org 70 i 50282 </blockquote> Err codemadness.org 70 i 50283 <blockquote> Err codemadness.org 70 i 50284 <p>There is a special type of block pointer called an embedded block pointer. Embedded block pointers directly contain up to 112 bytes of data; apart from the data, they contain only the metadata fields and a logical birth txg. As with conventional block pointers, this data is implicitly covered by the checksum of the containing object.</p> Err codemadness.org 70 i 50285 </blockquote> Err codemadness.org 70 i 50286 <blockquote> Err codemadness.org 70 i 50287 <p>Since block pointers directly contain the address of things on disk (in the form of DVAs), they have to change any time that address changes, which means any time ZFS does its copy on write thing. This forces a change in whatever contains the block pointer, which in turn ripples up to another block pointer (whatever points to said containing thing), and so on until we eventually reach the Meta Object Set and the uberblock. How this works is a bit complicated, but ZFS is designed to generally make this a relatively shallow change with not many levels of things involved (as I discovered recently).</p> Err codemadness.org 70 i 50288 </blockquote> Err codemadness.org 70 i 50289 <blockquote> Err codemadness.org 70 i 50290 <p>As far as I understand things, the logical birth txg of a block pointer is the transaction group in which the block pointer was allocated. Because of ZFS’s copy on write principle, this means that nothing underneath the block pointer has been updated or changed since that txg; if something changed, it would have been written to a new place on disk, which would have forced a change in at least one DVA and thus a ripple of updates that would update the logical birth txg.</p> Err codemadness.org 70 i 50291 </blockquote> Err codemadness.org 70 i 50292 <blockquote> Err codemadness.org 70 i 50293 <p>However, this doesn’t quite mean what I used to think it meant because of ZFS’s level of indirection. If you change a file by writing data to it, you will change some of the file’s block pointers, updating their logical birth txg, and you will change the file’s dnode. However, you won’t change any block pointers and thus any logical birth txgs for the filesystem directory the file is in (or anything else up the directory tree), because the directory refers to the file through its object number, not by directly pointing to its dnode. You can still use logical birth txgs to efficiently find changes from one txg to another, but you won’t necessarily get a filesystem level view of these changes; instead, as far as I can see, you will basically get a view of what object(s) in a filesystem changed (effectively, what inode numbers changed).</p> Err codemadness.org 70 i 50294 </blockquote> Err codemadness.org 70 i 50295 <blockquote> Err codemadness.org 70 i 50296 <p>(ZFS has an interesting hack to make things like ‘zfs diff’ work far more efficiently than you would expect in light of this, but that’s going to take yet another entry to cover.)</p> Err codemadness.org 70 i 50297 </blockquote> Err codemadness.org 70 i 50298 <hr> Err codemadness.org 70 i 50299 <p>###<a href="https://www.bleepingcomputer.com/news/security/rewards-of-up-to-500-000-offered-for-freebsd-openbsd-netbsd-linux-zero-days/">Rewards of Up to $500,000 Offered for FreeBSD, OpenBSD, NetBSD, Linux Zero-Days</a></p> Err codemadness.org 70 i 50300 <blockquote> Err codemadness.org 70 i 50301 <p>Exploit broker Zerodium is offering rewards of up to $500,000 for zero-days in UNIX-based operating systems like OpenBSD, FreeBSD, NetBSD, but also for Linux distros such as Ubuntu, CentOS, Debian, and Tails.<br> Err codemadness.org 70 i 50302 The offer, first advertised via Twitter earlier this week, is available as part of the company’s latest zero-day acquisition drive. Zerodium is known for buying zero-days and selling them to government agencies and law enforcement.<br> Err codemadness.org 70 i 50303 The company runs a regular zero-day acquisition program through its website, but it often holds special drives with more substantial rewards when it needs zero-days of a specific category.</p> Err codemadness.org 70 i 50304 </blockquote> Err codemadness.org 70 i 50305 <ul> Err codemadness.org 70 i 50306 <li>BSD zero-day rewards will be on par with Linux payouts</li> Err codemadness.org 70 i 50307 </ul> Err codemadness.org 70 i 50308 <blockquote> Err codemadness.org 70 i 50309 <p>The US-based company held a previous drive with increased rewards for Linux zero-days in February, with rewards going as high as $45,000.<br> Err codemadness.org 70 i 50310 In another zero-day acquisition drive announced on Twitter this week, the company said it was looking again for Linux zero-days, but also for exploits targeting BSD systems. This time around, rewards can go up to $500,000, for the right exploit.<br> Err codemadness.org 70 i 50311 Zerodium told Bleeping Computer they’ll be aligning the temporary rewards for BSD systems with their usual payouts for Linux distros.<br> Err codemadness.org 70 i 50312 The company’s usual payouts for Linux privilege escalation exploits can range from $10,000 to $30,000. Local privilege escalation (LPE) rewards can even reach $100,000 for “an exploit with an exceptional quality and coverage,” such as, for example, a Linux kernel exploit affecting all major distributions.<br> Err codemadness.org 70 i 50313 Payouts for Linux remote code execution (RCE) exploits can bring in from $50,000 to $500,000 depending on the targeted software/service and its market share. The highest rewards are usually awarded for LPEs and RCEs affecting CentOS and Ubuntu distros.</p> Err codemadness.org 70 i 50314 </blockquote> Err codemadness.org 70 i 50315 <ul> Err codemadness.org 70 i 50316 <li>Zero-day price varies based on exploitation chain</li> Err codemadness.org 70 i 50317 </ul> Err codemadness.org 70 i 50318 <blockquote> Err codemadness.org 70 i 50319 <p>The acquisition price of a submitted zero-day is directly tied to its requirements in terms of user interaction (no click, one click, two clicks, etc.), Zerodium said.<br> Err codemadness.org 70 i 50320 Other factors include the exploit reliability, its success rate, the number of vulnerabilities chained together for the final exploit to work (more chained bugs means more chances for the exploit to break unexpectedly), and the OS configuration needed for the exploit to work (exploits are valued more if they work against default OS configs).</p> Err codemadness.org 70 i 50321 </blockquote> Err codemadness.org 70 i 50322 <ul> Err codemadness.org 70 i 50323 <li>Zero-days in servers “can reach exceptional amounts”</li> Err codemadness.org 70 i 50324 </ul> Err codemadness.org 70 i 50325 <blockquote> Err codemadness.org 70 i 50326 <p>“Price difference between systems is mostly driven by market shares,” Zerodium founder Chaouki Bekrar told Bleeping Computer via email.<br> Err codemadness.org 70 i 50327 Asked about the logic behind these acquisition drives that pay increased rewards, Bekrar told Bleeping Computer the following:<br> Err codemadness.org 70 i 50328 &quot;Our aim is to always have, at any time, two or more fully functional exploits for every major software, hardware, or operating systems, meaning that from time to time we would promote a specific software/system on our social media to acquire new codes and strengthen our existing capabilities or extend them.”<br> Err codemadness.org 70 i 50329 “We may also react to customers’ requests and their operational needs,” Bekrar said.</p> Err codemadness.org 70 i 50330 </blockquote> Err codemadness.org 70 i 50331 <ul> Err codemadness.org 70 i 50332 <li>It’s becoming a crowded market</li> Err codemadness.org 70 i 50333 </ul> Err codemadness.org 70 i 50334 <blockquote> Err codemadness.org 70 i 50335 <p>Since Zerodium drew everyone’s attention to the exploit brokerage market in 2015, the market has gotten more and more crowded, but also more sleazy, with some companies being accused of selling zero-days to government agencies in countries with oppressive or dictatorial regimes, where they are often used against political oponents, journalists, and dissidents, instead of going after real criminals.<br> Err codemadness.org 70 i 50336 The latest company who broke into the zero-day brokerage market is Crowdfense, who recently launched an acquisition program with prizes of $10 million, of which it already paid $4.5 million to researchers.</p> Err codemadness.org 70 i 50337 </blockquote> Err codemadness.org 70 i 50338 <p><a href="https://twitter.com/Zerodium/status/1012007051466162177">Twitter Announcement</a></p> Err codemadness.org 70 i 50339 <hr> Err codemadness.org 70 i 50340 <p><strong>Digital Ocean</strong><br> Err codemadness.org 70 i 50341 <a href="http://do.co/bsdnow">http://do.co/bsdnow</a></p> Err codemadness.org 70 i 50342 <p>###<a href="https://euroquis.nl/bobulate/?p=1915">KDE on FreeBSD – June 2018</a></p> Err codemadness.org 70 i 50343 <blockquote> Err codemadness.org 70 i 50344 <p>The KDE-FreeBSD team (a half-dozen hardy individuals, with varying backgrounds and varying degrees of involvement depending on how employment is doing) has a status message in the #kde-freebsd channel on freenode. Right now it looks like this:</p> Err codemadness.org 70 i 50345 </blockquote> Err codemadness.org 70 i 50346 <pre><code>http://FreeBSD.kde.org | Bleeding edge Err codemadness.org 70 i 50347 http://FreeBSD.kde.org/area51.php | Released: Qt 5.10.1, KDE SC 4.14.3, KF5 5.46.0, Applications 18.04.1, Plasma-5.12.5, Kdevelop-5.2.1, Digikam-5.9.0 Err codemadness.org 70 i 50348 </code></pre> Err codemadness.org 70 i 50349 <blockquote> Err codemadness.org 70 i 50350 <p>It’s been a while since I wrote about KDE on FreeBSD, what with Calamares and third-party software happening as well. We’re better at keeping the IRC topic up-to-date than a lot of other sources of information (e.g. the FreeBSD quarterly reports, or the f.k.o website, which I’ll just dash off and update after writing this).</p> Err codemadness.org 70 i 50351 </blockquote> Err codemadness.org 70 i 50352 <ul> Err codemadness.org 70 i 50353 <li>In no particular order:</li> Err codemadness.org 70 i 50354 <li>Qt 5.10 is here, in a FrankenEngine incarnation: we still use WebEnging from Qt 5.9 because — like I’ve said before — WebEngine is such a gigantic pain in the butt to update with all the necessary patches to get it to compile.</li> Err codemadness.org 70 i 50355 <li>Our collection of downstream patches to Qt 5.10 is growing, slowly. None of them are upstreamable (e.g. libressl support) though.</li> Err codemadness.org 70 i 50356 <li>KDE Frameworks releases are generally pushed to ports within a week or two of release. Actually, now that there is a bigger stack of KDE software in FreeBSD ports the updates take longer because we have to do exp-runs.</li> Err codemadness.org 70 i 50357 <li>Similarly, Applications and Plasma releases are reasonably up-to-date. We dodged a bullet by not jumping on Plasma 5.13 right away, I see. Tobias is the person doing almost all of the drudge-work of these updates, he deserves a pint of something in Vienna this summer.</li> Err codemadness.org 70 i 50358 <li>The <a href="http://freebsd.kde.org">freebsd.kde.org</a> website has been slightly updated; it was terribly out-of-date.</li> Err codemadness.org 70 i 50359 </ul> Err codemadness.org 70 i 50360 <blockquote> Err codemadness.org 70 i 50361 <p>So we’re mostly-up-to-date, and mostly all packaged up and ready to go. Much of my day is spent in VMs packaged by other people, but it’s good to have a full KDE developer environment outside of them as well. (PS. Gotta hand it to Tomasz for <a href="https://www.angrycane.com.br/wp-content/uploads/2018/06/download_flamingo_and_display.txt">the amazing application for downloading and displaying a flamingo</a> … niche usecases FTW)</p> Err codemadness.org 70 i 50362 </blockquote> Err codemadness.org 70 i 50363 <hr> Err codemadness.org 70 i 50364 <p>##News Roundup<br> Err codemadness.org 70 i 50365 <a href="https://lists.freebsd.org/pipermail/freebsd-announce/2018-July/001836.html">New FreeBSD Core Team Elected</a></p> Err codemadness.org 70 i 50366 <blockquote> Err codemadness.org 70 i 50367 <p>Active committers to the project have elected your tenth FreeBSD Core<br> Err codemadness.org 70 i 50368 Team.</p> Err codemadness.org 70 i 50369 </blockquote> Err codemadness.org 70 i 50370 <ul> Err codemadness.org 70 i 50371 <li>Allan Jude (allanjude)</li> Err codemadness.org 70 i 50372 <li>Benedict Reuschling (bcr)</li> Err codemadness.org 70 i 50373 <li>Brooks Davis (brooks)</li> Err codemadness.org 70 i 50374 <li>Hiroki Sato (hrs)</li> Err codemadness.org 70 i 50375 <li>Jeff Roberson (jeff)</li> Err codemadness.org 70 i 50376 <li>John Baldwin (jhb)</li> Err codemadness.org 70 i 50377 <li>Kris Moore (kmoore)</li> Err codemadness.org 70 i 50378 <li>Sean Chittenden (seanc)</li> Err codemadness.org 70 i 50379 <li>Warner Losh (imp)</li> Err codemadness.org 70 i 50380 </ul> Err codemadness.org 70 i 50381 <blockquote> Err codemadness.org 70 i 50382 <p>Let’s extend our gratitude to the outgoing Core Team members:</p> Err codemadness.org 70 i 50383 </blockquote> Err codemadness.org 70 i 50384 <ul> Err codemadness.org 70 i 50385 <li>Baptiste Daroussin (bapt)</li> Err codemadness.org 70 i 50386 <li>Benno Rice (benno)</li> Err codemadness.org 70 i 50387 <li>Ed Maste (emaste)</li> Err codemadness.org 70 i 50388 <li>George V. Neville-Neil (gnn)</li> Err codemadness.org 70 i 50389 <li>Matthew Seaman (matthew)</li> Err codemadness.org 70 i 50390 </ul> Err codemadness.org 70 i 50391 <blockquote> Err codemadness.org 70 i 50392 <p>Matthew, after having served as the Core Team Secretary for the past<br> Err codemadness.org 70 i 50393 four years, will be stepping down from that role.</p> Err codemadness.org 70 i 50394 </blockquote> Err codemadness.org 70 i 50395 <blockquote> Err codemadness.org 70 i 50396 <p>The Core Team would also like to thank Dag-Erling Smørgrav for running a<br> Err codemadness.org 70 i 50397 flawless election.</p> Err codemadness.org 70 i 50398 </blockquote> Err codemadness.org 70 i 50399 <ul> Err codemadness.org 70 i 50400 <li>To read about the responsibilities of the Core Team, refer to <a href="https://www.freebsd.org/administration.html#t-core">https://www.freebsd.org/administration.html#t-core</a>.</li> Err codemadness.org 70 i 50401 </ul> Err codemadness.org 70 i 50402 <hr> Err codemadness.org 70 i 50403 <p>###<a href="https://mail-index.netbsd.org/tech-net/2018/06/26/msg006943.html">NetBSD WiFi refresh</a></p> Err codemadness.org 70 i 50404 <blockquote> Err codemadness.org 70 i 50405 <p>The NetBSD Foundation is pleased to announce a summer 2018 contract with Philip Nelson (phil%<a href="http://NetBSD.org">NetBSD.org</a>@localhost) to update the IEEE 802.11 stack basing the update on the FreeBSD current code. The goals of the project are:</p> Err codemadness.org 70 i 50406 </blockquote> Err codemadness.org 70 i 50407 <ul> Err codemadness.org 70 i 50408 <li>Minimizing the differences between the FreeBSD and NetBSD IEEE 802.11 stack so future updates are easier.</li> Err codemadness.org 70 i 50409 <li>Adding support for the newer protocols 801.11/N and 802.11/AC.</li> Err codemadness.org 70 i 50410 <li>Improving SMP support in the IEEE 802.11 stack.</li> Err codemadness.org 70 i 50411 <li>Adding Virtual Access Point (VAP) support.</li> Err codemadness.org 70 i 50412 <li>Updating as many NIC drivers as time permits for the updated IEEE 802.11 stack and VAP changes.</li> Err codemadness.org 70 i 50413 </ul> Err codemadness.org 70 i 50414 <blockquote> Err codemadness.org 70 i 50415 <p>Status reports will be posted to tech-net%<a href="http://NetBSD.org">NetBSD.org</a>@localhost every other week<br> Err codemadness.org 70 i 50416 while the contract is active.</p> Err codemadness.org 70 i 50417 </blockquote> Err codemadness.org 70 i 50418 <hr> Err codemadness.org 70 i 50419 <p><strong>iXsystems</strong></p> Err codemadness.org 70 i 50420 <p>###<a href="https://github.com/billziss-gh/pmci">Poor Man’s CI - Hosted CI for BSD with shell scripting and duct tape</a></p> Err codemadness.org 70 i 50421 <blockquote> Err codemadness.org 70 i 50422 <p>Poor Man’s CI (PMCI - Poor Man’s Continuous Integration) is a collection of scripts that taken together work as a simple CI solution that runs on Google Cloud. While there are many advanced hosted CI systems today, and many of them are free for open source projects, none of them seem to offer a solution for the BSD operating systems (FreeBSD, NetBSD, OpenBSD, etc.)</p> Err codemadness.org 70 i 50423 </blockquote> Err codemadness.org 70 i 50424 <blockquote> Err codemadness.org 70 i 50425 <p>The architecture of Poor Man’s CI is system agnostic. However in the implementation provided in this repository the only supported systems are FreeBSD and NetBSD. Support for additional systems is possible.</p> Err codemadness.org 70 i 50426 </blockquote> Err codemadness.org 70 i 50427 <blockquote> Err codemadness.org 70 i 50428 <p>Poor Man’s CI runs on the Google Cloud. It is possible to set it up so that the service fits within the Google Cloud “Always Free” limits. In doing so the provided CI is not only hosted, but is also free! (Disclaimer: I am not affiliated with Google and do not otherwise endorse their products.)</p> Err codemadness.org 70 i 50429 </blockquote> Err codemadness.org 70 i 50430 <ul> Err codemadness.org 70 i 50431 <li>ARCHITECTURE</li> Err codemadness.org 70 i 50432 </ul> Err codemadness.org 70 i 50433 <blockquote> Err codemadness.org 70 i 50434 <p>A CI solution listens for “commit” (or more usually “push”) events, builds the associated repository at the appropriate place in its history and reports the results. Poor Man’s CI implements this very basic CI scenario using a simple architecture, which we present in this section.</p> Err codemadness.org 70 i 50435 </blockquote> Err codemadness.org 70 i 50436 <ul> Err codemadness.org 70 i 50437 <li> Err codemadness.org 70 i 50438 <p>Poor Man’s CI consists of the following components and their interactions:</p> Err codemadness.org 70 i 50439 </li> Err codemadness.org 70 i 50440 <li> Err codemadness.org 70 i 50441 <p>Controller: Controls the overall process of accepting GitHub push events and starting builds. The Controller runs in the Cloud Functions environment and is implemented by the files in the controller source directory. It consists of the following components:</p> Err codemadness.org 70 i 50442 <ul> Err codemadness.org 70 i 50443 <li>Listener: Listens for GitHub push events and posts them as work messages to the workq PubSub.</li> Err codemadness.org 70 i 50444 <li>Dispatcher: Receives work messages from the workq PubSub and a free instance name from the Builder Pool. It instantiates a builder instance named name in the Compute Engine environment and passes it the link of a repository to build.</li> Err codemadness.org 70 i 50445 <li>Collector: Receives done messages from the doneq PubSub and posts the freed instance name back to the Builder Pool.</li> Err codemadness.org 70 i 50446 </ul> Err codemadness.org 70 i 50447 </li> Err codemadness.org 70 i 50448 <li> Err codemadness.org 70 i 50449 <p>PubSub Topics:</p> Err codemadness.org 70 i 50450 <ul> Err codemadness.org 70 i 50451 <li>workq: Transports work messages that contain the link of the repository to build.</li> Err codemadness.org 70 i 50452 <li>poolq: Implements the Builder Pool, which contains the name’s of available builder instances. To acquire a builder name, pull a message from the poolq. To release a builder name, post it back into the poolq.</li> Err codemadness.org 70 i 50453 <li>doneq: Transports done messages (builder instance terminate and delete events). These message contain the name of freed builder instances.</li> Err codemadness.org 70 i 50454 </ul> Err codemadness.org 70 i 50455 </li> Err codemadness.org 70 i 50456 <li> Err codemadness.org 70 i 50457 <p>builder: A builder is a Compute Engine instance that performs a build of a repository and shuts down when the build is complete. A builder is instantiated from a VM image and a startx (startup-exit) script.</p> Err codemadness.org 70 i 50458 </li> Err codemadness.org 70 i 50459 <li> Err codemadness.org 70 i 50460 <p>Build Logs: A Storage bucket that contains the logs of builds performed by builder instances.</p> Err codemadness.org 70 i 50461 </li> Err codemadness.org 70 i 50462 <li> Err codemadness.org 70 i 50463 <p>Logging Sink: A Logging Sink captures builder instance terminate and delete events and posts them into the doneq.</p> Err codemadness.org 70 i 50464 </li> Err codemadness.org 70 i 50465 <li> Err codemadness.org 70 i 50466 <p>BUGS</p> Err codemadness.org 70 i 50467 </li> Err codemadness.org 70 i 50468 </ul> Err codemadness.org 70 i 50469 <blockquote> Err codemadness.org 70 i 50470 <p>The Builder Pool is currently implemented as a PubSub; messages in the PubSub contain the names of available builder instances. Unfortunately a PubSub retains its messages for a maximum of 7 days. It is therefore possible that messages will be discarded and that your PMCI deployment will suddenly find itself out of builder instances. If this happens you can reseed the Builder Pool by running the commands below. However this is a serious BUG that should be fixed. For a related discussion see <a href="https://tinyurl.com/ybkycuub">https://tinyurl.com/ybkycuub</a>.</p> Err codemadness.org 70 i 50471 </blockquote> Err codemadness.org 70 i 50472 <p><code>$ ./pmci queuepost poolq builder0</code><br> Err codemadness.org 70 i 50473 <code># ./pmci queuepost poolq builder1</code><br> Err codemadness.org 70 i 50474 <code># ... repeat for as many builders as you want</code></p> Err codemadness.org 70 i 50475 <blockquote> Err codemadness.org 70 i 50476 <p>The Dispatcher is implemented as a Retry Background Cloud Function. It accepts work messages from the workq and attempts to pull a free name from the poolq. If that fails it returns an error, which instructs the infrastructure to retry. Because the infrastructure does not provide any retry controls, this currently happens immediately and the Dispatcher spins unproductively. This is currently mitigated by a “sleep” (setTimeout), but the Cloud Functions system still counts the Function as running and charges it accordingly. While this fits within the “Always Free” limits, it is something that should eventually be fixed (perhaps by the PubSub team). For a related discussion see <a href="https://tinyurl.com/yb2vbwfd">https://tinyurl.com/yb2vbwfd</a>.</p> Err codemadness.org 70 i 50477 </blockquote> Err codemadness.org 70 i 50478 <hr> Err codemadness.org 70 i 50479 <p>###<a href="https://blog.danielisz.org/2018/06/21/the-power-of-ctrlt/">The Power of Ctrl-T</a></p> Err codemadness.org 70 i 50480 <blockquote> Err codemadness.org 70 i 50481 <p>Did you know that you can check what a process is doing by pressing CTRL+T?<br> Err codemadness.org 70 i 50482 Has it happened to you before that you were waiting for something to be finished that can take a lot of time, but there is no easy way to check the status. Like a dd, cp, mv and many others. All you have to do is press CTRL+T where the process is running. This will output what’s happening and will not interrupt or mess with it in any way. This causes the operating system to output the SIGINFO signal.<br> Err codemadness.org 70 i 50483 On FreeBSD it looks like this:</p> Err codemadness.org 70 i 50484 </blockquote> Err codemadness.org 70 i 50485 <pre><code>ping pingtest.com Err codemadness.org 70 i 50486 PING pingtest.com (5.22.149.135): 56 data bytes Err codemadness.org 70 i 50487 64 bytes from 5.22.149.135: icmpseq=0 ttl=51 time=86.232 ms Err codemadness.org 70 i 50488 64 bytes from 5.22.149.135: icmpseq=1 ttl=51 time=85.477 ms Err codemadness.org 70 i 50489 64 bytes from 5.22.149.135: icmpseq=2 ttl=51 time=85.493 ms Err codemadness.org 70 i 50490 64 bytes from 5.22.149.135: icmpseq=3 ttl=51 time=85.211 ms Err codemadness.org 70 i 50491 64 bytes from 5.22.149.135: icmpseq=4 ttl=51 time=86.002 ms Err codemadness.org 70 i 50492 load: 1.12 cmd: ping 94371 [select] 4.70r 0.00u 0.00s 0% 2500k Err codemadness.org 70 i 50493 5/5 packets received (100.0%) 85.211 min / 85.683 avg / 86.232 max Err codemadness.org 70 i 50494 64 bytes from 5.22.149.135: icmpseq=5 ttl=51 time=85.725 ms Err codemadness.org 70 i 50495 64 bytes from 5.22.149.135: icmp_seq=6 ttl=51 time=85.510 ms Err codemadness.org 70 i 50496 </code></pre> Err codemadness.org 70 i 50497 <blockquote> Err codemadness.org 70 i 50498 <p>As you can see it not only outputs the name of the running command but the following parameters as well:</p> Err codemadness.org 70 i 50499 </blockquote> Err codemadness.org 70 i 50500 <pre><code>94371 – PID Err codemadness.org 70 i 50501 4.70r – since when is the process running Err codemadness.org 70 i 50502 0.00u – user time Err codemadness.org 70 i 50503 0.00s – system time Err codemadness.org 70 i 50504 0% – CPU usage Err codemadness.org 70 i 50505 2500k – resident set size of the process or RSS Err codemadness.org 70 i 50506 `` Err codemadness.org 70 i 50507 &gt; An even better example is with the following cp command: Err codemadness.org 70 i 50508 </code></pre> Err codemadness.org 70 i 50509 <p>cp FreeBSD-11.1-RELEASE-amd64-dvd1.iso /dev/null<br> Err codemadness.org 70 i 50510 load: 0.99 cmd: cp 94412 [runnable] 1.61r 0.00u 0.39s 3% 3100k<br> Err codemadness.org 70 i 50511 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -&gt; /dev/null 15%<br> Err codemadness.org 70 i 50512 load: 0.91 cmd: cp 94412 [runnable] 2.91r 0.00u 0.80s 6% 3104k<br> Err codemadness.org 70 i 50513 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -&gt; /dev/null 32%<br> Err codemadness.org 70 i 50514 load: 0.91 cmd: cp 94412 [runnable] 4.20r 0.00u 1.23s 9% 3104k<br> Err codemadness.org 70 i 50515 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -&gt; /dev/null 49%<br> Err codemadness.org 70 i 50516 load: 0.91 cmd: cp 94412 [runnable] 5.43r 0.00u 1.64s 11% 3104k<br> Err codemadness.org 70 i 50517 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -&gt; /dev/null 64%<br> Err codemadness.org 70 i 50518 load: 1.07 cmd: cp 94412 [runnable] 6.65r 0.00u 2.05s 13% 3104k<br> Err codemadness.org 70 i 50519 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -&gt; /dev/null 79%<br> Err codemadness.org 70 i 50520 load: 1.07 cmd: cp 94412 [runnable] 7.87r 0.00u 2.43s 15% 3104k<br> Err codemadness.org 70 i 50521 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -&gt; /dev/null 95%</p> Err codemadness.org 70 i 50522 <pre><code> Err codemadness.org 70 i 50523 &gt; I prcessed CTRL+T six times. Without that, all the output would have been is the first line. Err codemadness.org 70 i 50524 &gt; Another example how the process is changing states: Err codemadness.org 70 i 50525 </code></pre> Err codemadness.org 70 i 50526 <p>wget <a href="https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-dvd1.iso">https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-dvd1.iso</a><br> Err codemadness.org 70 i 50527 –2018-06-17 18:47:48– <a href="https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-dvd1.iso">https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-dvd1.iso</a><br> Err codemadness.org 70 i 50528 Resolving <a href="http://download.freebsd.org">download.freebsd.org</a> (<a href="http://download.freebsd.org">download.freebsd.org</a>)… 96.47.72.72, 2610:1c1:1:606c::15:0<br> Err codemadness.org 70 i 50529 Connecting to <a href="http://download.freebsd.org">download.freebsd.org</a> (<a href="http://download.freebsd.org">download.freebsd.org</a>)|96.47.72.72|:443… connected.<br> Err codemadness.org 70 i 50530 HTTP request sent, awaiting response… 200 OK<br> Err codemadness.org 70 i 50531 Length: 3348465664 (3.1G) [application/octet-stream]<br> Err codemadness.org 70 i 50532 Saving to: ‘FreeBSD-11.1-RELEASE-amd64-dvd1.iso’</p> Err codemadness.org 70 i 50533 <p>FreeBSD-11.1-RELEASE-amd64-dvd1.iso 1%[&gt; ] 41.04M 527KB/s eta 26m 49sload: 4.95 cmd: wget 10152 waiting 0.48u 0.72s<br> Err codemadness.org 70 i 50534 FreeBSD-11.1-RELEASE-amd64-dvd1.iso 1%[&gt; ] 49.41M 659KB/s eta 25m 29sload: 12.64 cmd: wget 10152 waiting 0.55u 0.85s<br> Err codemadness.org 70 i 50535 FreeBSD-11.1-RELEASE-amd64-dvd1.iso 2%[=&gt; ] 75.58M 6.31MB/s eta 20m 6s load: 11.71 cmd: wget 10152 running 0.73u 1.19s<br> Err codemadness.org 70 i 50536 FreeBSD-11.1-RELEASE-amd64-dvd1.iso 2%[=&gt; ] 85.63M 6.83MB/s eta 18m 58sload: 11.71 cmd: wget 10152 waiting 0.80u 1.32s<br> Err codemadness.org 70 i 50537 FreeBSD-11.1-RELEASE-amd64-dvd1.iso 14%[==============&gt; ] 460.23M 7.01MB/s eta 9m 0s 1</p> Err codemadness.org 70 i 50538 <pre><code> Err codemadness.org 70 i 50539 &gt; The bad news is that CTRl+T doesn’t work with Linux kernel, but you can use it on MacOS/OS-X: Err codemadness.org 70 i 50540 </code></pre> Err codemadness.org 70 i 50541 <p>—&gt; Fetching distfiles for gmp<br> Err codemadness.org 70 i 50542 —&gt; Attempting to fetch gmp-6.1.2.tar.bz2 from <a href="https://distfiles.macports.org/gmp">https://distfiles.macports.org/gmp</a><br> Err codemadness.org 70 i 50543 —&gt; Verifying checksums for gmp<br> Err codemadness.org 70 i 50544 —&gt; Extracting gmp<br> Err codemadness.org 70 i 50545 —&gt; Applying patches to gmp<br> Err codemadness.org 70 i 50546 —&gt; Configuring gmp<br> Err codemadness.org 70 i 50547 load: 2.81 cmd: clang 74287 running 0.31u 0.28s</p> Err codemadness.org 70 i 50548 <pre><code> Err codemadness.org 70 i 50549 &gt; PS: If I recall correctly Feld showed me CTRL+T, thank you! Err codemadness.org 70 i 50550 Beastie Bits Err codemadness.org 70 i 50551 Half billion tries for a HAMMER2 bug (http://lists.dragonflybsd.org/pipermail/commits/2018-May/672263.html) Err codemadness.org 70 i 50552 OpenBSD with various Desktops Err codemadness.org 70 i 50553 OpenBSD 6.3 running twm window manager (https://youtu.be/v6XeC5wU2s4) Err codemadness.org 70 i 50554 OpenBSD 6.3 jwm and rox desktop (https://youtu.be/jlSK2oi7CBc) Err codemadness.org 70 i 50555 OpenBSD 6.3 cwm youtube video (https://youtu.be/mgqNyrP2CPs) Err codemadness.org 70 i 50556 pf: Increase default state table size (https://svnweb.freebsd.org/base?view=revision&amp;revision=336221) Err codemadness.org 70 i 50557 *** Err codemadness.org 70 i 50558 Tarsnap Err codemadness.org 70 i 50559 Feedback/Questions Err codemadness.org 70 i 50560 Ben Sims - Full feed? (http://dpaste.com/3XVH91T#wrap) Err codemadness.org 70 i 50561 Scott - Questions and Comments (http://dpaste.com/08P34YN#wrap) Err codemadness.org 70 i 50562 Troels - Features of FreeBSD 11.2 that deserve a mention (http://dpaste.com/3DDPEC2#wrap) Err codemadness.org 70 i 50563 Fred - Show Ideas (http://dpaste.com/296ZA0P#wrap) Err codemadness.org 70 i 50564 Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 50565 iXsystems It's all NAS (https://www.ixsystems.com/blog/its-all-nas/) Err codemadness.org 70 i 50566 </code></pre> Err codemadness.org 70 i 50567 Err codemadness.org 70 i 50568 freebsd,openbsd,netbsd,dragonflybsd,trueos,trident,hardenedbsd,tutorial,howto,guide,bsd,interview,kde,zfs Err codemadness.org 70 i 50569 Err codemadness.org 70 i 50570 What ZFS blockpointers are, zero-day rewards offered, KDE on FreeBSD status, new FreeBSD core team, NetBSD WiFi refresh, poor man’s CI, and the power of Ctrl+T.

Err codemadness.org 70 i 50571 Err codemadness.org 70 i 50572

##Headlines
Err codemadness.org 70 i 50573 ###What ZFS block pointers are and what’s in them

Err codemadness.org 70 i 50574 Err codemadness.org 70 i 50575
Err codemadness.org 70 i 50576

I’ve mentioned ZFS block pointers in the past; for example, when I wrote about some details of ZFS DVAs, I said that DVAs are embedded in block pointers. But I’ve never really looked carefully at what is in block pointers and what that means and implies for ZFS.

Err codemadness.org 70 i 50577
Err codemadness.org 70 i 50578 Err codemadness.org 70 i 50579
Err codemadness.org 70 i 50580

The very simple way to describe a ZFS block pointer is that it’s what ZFS uses in places where other filesystems would simply put a block number. Just like block numbers but unlike things like ZFS dnodes, a block pointer isn’t a separate on-disk entity; instead it’s an on disk data format and an in memory structure that shows up in other things. To quote from the (draft and old) ZFS on-disk specification (PDF):

Err codemadness.org 70 i 50581
Err codemadness.org 70 i 50582 Err codemadness.org 70 i 50583
Err codemadness.org 70 i 50584

A block pointer (blkptr_t) is a 128 byte ZFS structure used to physically locate, verify, and describe blocks of data on disk.

Err codemadness.org 70 i 50585
Err codemadness.org 70 i 50586 Err codemadness.org 70 i 50587
Err codemadness.org 70 i 50588

Block pointers are embedded in any ZFS on disk structure that points directly to other disk blocks, both for data and metadata. For instance, the dnode for a file contains block pointers that refer to either its data blocks (if it’s small enough) or indirect blocks, as I saw in this entry. However, as I discovered when I paid attention, most things in ZFS only point to dnodes indirectly, by giving their object number (either in a ZFS filesystem or in pool-wide metadata).

Err codemadness.org 70 i 50589
Err codemadness.org 70 i 50590 Err codemadness.org 70 i 50591
Err codemadness.org 70 i 50592

So what’s in a block pointer itself? You can find the technical details for modern ZFS in spa.h, so I’m going to give a sort of summary. A regular block pointer contains:

Err codemadness.org 70 i 50593
Err codemadness.org 70 i 50594 Err codemadness.org 70 i 50595
    Err codemadness.org 70 i 50596
  • various metadata and flags about what the block pointer is for and what parts of it mean, including what type of object it points to.
  • Err codemadness.org 70 i 50597
  • Up to three DVAs that say where to actually find the data on disk. There can be more than one DVA because you may have set the copies property to 2 or 3, or this may be metadata (which normally has two copies and may have more for sufficiently important metadata).
  • Err codemadness.org 70 i 50598
  • The logical size (size before compression) and ‘physical’ size (the nominal size after compression) of the disk block. The physical size can do odd things and is not necessarily the asize (allocated size) for the DVA(s).
  • Err codemadness.org 70 i 50599
  • The txgs that the block was born in, both logically and physically (the physical txg is apparently for dva[0]). The physical txg was added with ZFS deduplication but apparently also shows up in vdev removal.
  • Err codemadness.org 70 i 50600
  • The checksum of the data the block pointer describes. This checksum implicitly covers the entire logical size of the data, and as a result you must read all of the data in order to verify it. This can be an issue on raidz vdevs or if the block had to use gang blocks.
  • Err codemadness.org 70 i 50601
Err codemadness.org 70 i 50602 Err codemadness.org 70 i 50603
Err codemadness.org 70 i 50604

Just like basically everything else in ZFS, block pointers don’t have an explicit checksum of their contents. Instead they’re implicitly covered by the checksum of whatever they’re embedded in; the block pointers in a dnode are covered by the overall checksum of the dnode, for example. Block pointers must include a checksum for the data they point to because such data is ‘out of line’ for the containing object.

Err codemadness.org 70 i 50605
Err codemadness.org 70 i 50606 Err codemadness.org 70 i 50607
Err codemadness.org 70 i 50608

(The block pointers in a dnode don’t necessarily point straight to data. If there’s more than a bit of data in whatever the dnode covers, the dnode’s block pointers will instead point to some level of indirect block, which itself has some number of block pointers.)

Err codemadness.org 70 i 50609
Err codemadness.org 70 i 50610 Err codemadness.org 70 i 50611
Err codemadness.org 70 i 50612

There is a special type of block pointer called an embedded block pointer. Embedded block pointers directly contain up to 112 bytes of data; apart from the data, they contain only the metadata fields and a logical birth txg. As with conventional block pointers, this data is implicitly covered by the checksum of the containing object.

Err codemadness.org 70 i 50613
Err codemadness.org 70 i 50614 Err codemadness.org 70 i 50615
Err codemadness.org 70 i 50616

Since block pointers directly contain the address of things on disk (in the form of DVAs), they have to change any time that address changes, which means any time ZFS does its copy on write thing. This forces a change in whatever contains the block pointer, which in turn ripples up to another block pointer (whatever points to said containing thing), and so on until we eventually reach the Meta Object Set and the uberblock. How this works is a bit complicated, but ZFS is designed to generally make this a relatively shallow change with not many levels of things involved (as I discovered recently).

Err codemadness.org 70 i 50617
Err codemadness.org 70 i 50618 Err codemadness.org 70 i 50619
Err codemadness.org 70 i 50620

As far as I understand things, the logical birth txg of a block pointer is the transaction group in which the block pointer was allocated. Because of ZFS’s copy on write principle, this means that nothing underneath the block pointer has been updated or changed since that txg; if something changed, it would have been written to a new place on disk, which would have forced a change in at least one DVA and thus a ripple of updates that would update the logical birth txg.

Err codemadness.org 70 i 50621
Err codemadness.org 70 i 50622 Err codemadness.org 70 i 50623
Err codemadness.org 70 i 50624

However, this doesn’t quite mean what I used to think it meant because of ZFS’s level of indirection. If you change a file by writing data to it, you will change some of the file’s block pointers, updating their logical birth txg, and you will change the file’s dnode. However, you won’t change any block pointers and thus any logical birth txgs for the filesystem directory the file is in (or anything else up the directory tree), because the directory refers to the file through its object number, not by directly pointing to its dnode. You can still use logical birth txgs to efficiently find changes from one txg to another, but you won’t necessarily get a filesystem level view of these changes; instead, as far as I can see, you will basically get a view of what object(s) in a filesystem changed (effectively, what inode numbers changed).

Err codemadness.org 70 i 50625
Err codemadness.org 70 i 50626 Err codemadness.org 70 i 50627
Err codemadness.org 70 i 50628

(ZFS has an interesting hack to make things like ‘zfs diff’ work far more efficiently than you would expect in light of this, but that’s going to take yet another entry to cover.)

Err codemadness.org 70 i 50629
Err codemadness.org 70 i 50630 Err codemadness.org 70 i 50631


Err codemadness.org 70 i 50632 Err codemadness.org 70 i 50633

###Rewards of Up to $500,000 Offered for FreeBSD, OpenBSD, NetBSD, Linux Zero-Days

Err codemadness.org 70 i 50634 Err codemadness.org 70 i 50635
Err codemadness.org 70 i 50636

Exploit broker Zerodium is offering rewards of up to $500,000 for zero-days in UNIX-based operating systems like OpenBSD, FreeBSD, NetBSD, but also for Linux distros such as Ubuntu, CentOS, Debian, and Tails.
Err codemadness.org 70 i 50637 The offer, first advertised via Twitter earlier this week, is available as part of the company’s latest zero-day acquisition drive. Zerodium is known for buying zero-days and selling them to government agencies and law enforcement.
Err codemadness.org 70 i 50638 The company runs a regular zero-day acquisition program through its website, but it often holds special drives with more substantial rewards when it needs zero-days of a specific category.

Err codemadness.org 70 i 50639
Err codemadness.org 70 i 50640 Err codemadness.org 70 i 50641
    Err codemadness.org 70 i 50642
  • BSD zero-day rewards will be on par with Linux payouts
  • Err codemadness.org 70 i 50643
Err codemadness.org 70 i 50644 Err codemadness.org 70 i 50645
Err codemadness.org 70 i 50646

The US-based company held a previous drive with increased rewards for Linux zero-days in February, with rewards going as high as $45,000.
Err codemadness.org 70 i 50647 In another zero-day acquisition drive announced on Twitter this week, the company said it was looking again for Linux zero-days, but also for exploits targeting BSD systems. This time around, rewards can go up to $500,000, for the right exploit.
Err codemadness.org 70 i 50648 Zerodium told Bleeping Computer they’ll be aligning the temporary rewards for BSD systems with their usual payouts for Linux distros.
Err codemadness.org 70 i 50649 The company’s usual payouts for Linux privilege escalation exploits can range from $10,000 to $30,000. Local privilege escalation (LPE) rewards can even reach $100,000 for “an exploit with an exceptional quality and coverage,” such as, for example, a Linux kernel exploit affecting all major distributions.
Err codemadness.org 70 i 50650 Payouts for Linux remote code execution (RCE) exploits can bring in from $50,000 to $500,000 depending on the targeted software/service and its market share. The highest rewards are usually awarded for LPEs and RCEs affecting CentOS and Ubuntu distros.

Err codemadness.org 70 i 50651
Err codemadness.org 70 i 50652 Err codemadness.org 70 i 50653
    Err codemadness.org 70 i 50654
  • Zero-day price varies based on exploitation chain
  • Err codemadness.org 70 i 50655
Err codemadness.org 70 i 50656 Err codemadness.org 70 i 50657
Err codemadness.org 70 i 50658

The acquisition price of a submitted zero-day is directly tied to its requirements in terms of user interaction (no click, one click, two clicks, etc.), Zerodium said.
Err codemadness.org 70 i 50659 Other factors include the exploit reliability, its success rate, the number of vulnerabilities chained together for the final exploit to work (more chained bugs means more chances for the exploit to break unexpectedly), and the OS configuration needed for the exploit to work (exploits are valued more if they work against default OS configs).

Err codemadness.org 70 i 50660
Err codemadness.org 70 i 50661 Err codemadness.org 70 i 50662
    Err codemadness.org 70 i 50663
  • Zero-days in servers “can reach exceptional amounts”
  • Err codemadness.org 70 i 50664
Err codemadness.org 70 i 50665 Err codemadness.org 70 i 50666
Err codemadness.org 70 i 50667

“Price difference between systems is mostly driven by market shares,” Zerodium founder Chaouki Bekrar told Bleeping Computer via email.
Err codemadness.org 70 i 50668 Asked about the logic behind these acquisition drives that pay increased rewards, Bekrar told Bleeping Computer the following:
Err codemadness.org 70 i 50669 "Our aim is to always have, at any time, two or more fully functional exploits for every major software, hardware, or operating systems, meaning that from time to time we would promote a specific software/system on our social media to acquire new codes and strengthen our existing capabilities or extend them.”
Err codemadness.org 70 i 50670 “We may also react to customers’ requests and their operational needs,” Bekrar said.

Err codemadness.org 70 i 50671
Err codemadness.org 70 i 50672 Err codemadness.org 70 i 50673
    Err codemadness.org 70 i 50674
  • It’s becoming a crowded market
  • Err codemadness.org 70 i 50675
Err codemadness.org 70 i 50676 Err codemadness.org 70 i 50677
Err codemadness.org 70 i 50678

Since Zerodium drew everyone’s attention to the exploit brokerage market in 2015, the market has gotten more and more crowded, but also more sleazy, with some companies being accused of selling zero-days to government agencies in countries with oppressive or dictatorial regimes, where they are often used against political oponents, journalists, and dissidents, instead of going after real criminals.
Err codemadness.org 70 i 50679 The latest company who broke into the zero-day brokerage market is Crowdfense, who recently launched an acquisition program with prizes of $10 million, of which it already paid $4.5 million to researchers.

Err codemadness.org 70 i 50680
Err codemadness.org 70 i 50681 Err codemadness.org 70 i 50682

Twitter Announcement

Err codemadness.org 70 i 50683 Err codemadness.org 70 i 50684


Err codemadness.org 70 i 50685 Err codemadness.org 70 i 50686

Digital Ocean
Err codemadness.org 70 i 50687 http://do.co/bsdnow

Err codemadness.org 70 i 50688 Err codemadness.org 70 i 50689

###KDE on FreeBSD – June 2018

Err codemadness.org 70 i 50690 Err codemadness.org 70 i 50691
Err codemadness.org 70 i 50692

The KDE-FreeBSD team (a half-dozen hardy individuals, with varying backgrounds and varying degrees of involvement depending on how employment is doing) has a status message in the #kde-freebsd channel on freenode. Right now it looks like this:

Err codemadness.org 70 i 50693
Err codemadness.org 70 i 50694 Err codemadness.org 70 i 50695
http://FreeBSD.kde.org | Bleeding edge 	Err	codemadness.org	70
i 50696 http://FreeBSD.kde.org/area51.php | Released: Qt 5.10.1, KDE SC 4.14.3, KF5 5.46.0, Applications 18.04.1, Plasma-5.12.5, Kdevelop-5.2.1, Digikam-5.9.0	Err	codemadness.org	70
i 50697 
Err codemadness.org 70 i 50698 Err codemadness.org 70 i 50699
Err codemadness.org 70 i 50700

It’s been a while since I wrote about KDE on FreeBSD, what with Calamares and third-party software happening as well. We’re better at keeping the IRC topic up-to-date than a lot of other sources of information (e.g. the FreeBSD quarterly reports, or the f.k.o website, which I’ll just dash off and update after writing this).

Err codemadness.org 70 i 50701
Err codemadness.org 70 i 50702 Err codemadness.org 70 i 50703
    Err codemadness.org 70 i 50704
  • In no particular order:
  • Err codemadness.org 70 i 50705
  • Qt 5.10 is here, in a FrankenEngine incarnation: we still use WebEnging from Qt 5.9 because — like I’ve said before — WebEngine is such a gigantic pain in the butt to update with all the necessary patches to get it to compile.
  • Err codemadness.org 70 i 50706
  • Our collection of downstream patches to Qt 5.10 is growing, slowly. None of them are upstreamable (e.g. libressl support) though.
  • Err codemadness.org 70 i 50707
  • KDE Frameworks releases are generally pushed to ports within a week or two of release. Actually, now that there is a bigger stack of KDE software in FreeBSD ports the updates take longer because we have to do exp-runs.
  • Err codemadness.org 70 i 50708
  • Similarly, Applications and Plasma releases are reasonably up-to-date. We dodged a bullet by not jumping on Plasma 5.13 right away, I see. Tobias is the person doing almost all of the drudge-work of these updates, he deserves a pint of something in Vienna this summer.
  • Err codemadness.org 70 i 50709
  • The freebsd.kde.org website has been slightly updated; it was terribly out-of-date.
  • Err codemadness.org 70 i 50710
Err codemadness.org 70 i 50711 Err codemadness.org 70 i 50712
Err codemadness.org 70 i 50713

So we’re mostly-up-to-date, and mostly all packaged up and ready to go. Much of my day is spent in VMs packaged by other people, but it’s good to have a full KDE developer environment outside of them as well. (PS. Gotta hand it to Tomasz for the amazing application for downloading and displaying a flamingo … niche usecases FTW)

Err codemadness.org 70 i 50714
Err codemadness.org 70 i 50715 Err codemadness.org 70 i 50716


Err codemadness.org 70 i 50717 Err codemadness.org 70 i 50718

##News Roundup
Err codemadness.org 70 i 50719 ###New FreeBSD Core Team Elected

Err codemadness.org 70 i 50720 Err codemadness.org 70 i 50721
Err codemadness.org 70 i 50722

Active committers to the project have elected your tenth FreeBSD Core
Err codemadness.org 70 i 50723 Team.

Err codemadness.org 70 i 50724
Err codemadness.org 70 i 50725 Err codemadness.org 70 i 50726
    Err codemadness.org 70 i 50727
  • Allan Jude (allanjude)
  • Err codemadness.org 70 i 50728
  • Benedict Reuschling (bcr)
  • Err codemadness.org 70 i 50729
  • Brooks Davis (brooks)
  • Err codemadness.org 70 i 50730
  • Hiroki Sato (hrs)
  • Err codemadness.org 70 i 50731
  • Jeff Roberson (jeff)
  • Err codemadness.org 70 i 50732
  • John Baldwin (jhb)
  • Err codemadness.org 70 i 50733
  • Kris Moore (kmoore)
  • Err codemadness.org 70 i 50734
  • Sean Chittenden (seanc)
  • Err codemadness.org 70 i 50735
  • Warner Losh (imp)
  • Err codemadness.org 70 i 50736
Err codemadness.org 70 i 50737 Err codemadness.org 70 i 50738
Err codemadness.org 70 i 50739

Let’s extend our gratitude to the outgoing Core Team members:

Err codemadness.org 70 i 50740
Err codemadness.org 70 i 50741 Err codemadness.org 70 i 50742
    Err codemadness.org 70 i 50743
  • Baptiste Daroussin (bapt)
  • Err codemadness.org 70 i 50744
  • Benno Rice (benno)
  • Err codemadness.org 70 i 50745
  • Ed Maste (emaste)
  • Err codemadness.org 70 i 50746
  • George V. Neville-Neil (gnn)
  • Err codemadness.org 70 i 50747
  • Matthew Seaman (matthew)
  • Err codemadness.org 70 i 50748
Err codemadness.org 70 i 50749 Err codemadness.org 70 i 50750
Err codemadness.org 70 i 50751

Matthew, after having served as the Core Team Secretary for the past
Err codemadness.org 70 i 50752 four years, will be stepping down from that role.

Err codemadness.org 70 i 50753
Err codemadness.org 70 i 50754 Err codemadness.org 70 i 50755
Err codemadness.org 70 i 50756

The Core Team would also like to thank Dag-Erling Smørgrav for running a
Err codemadness.org 70 i 50757 flawless election.

Err codemadness.org 70 i 50758
Err codemadness.org 70 i 50759 Err codemadness.org 70 i 50760 Err codemadness.org 70 i 50763 Err codemadness.org 70 i 50764


Err codemadness.org 70 i 50765 Err codemadness.org 70 i 50766

###NetBSD WiFi refresh

Err codemadness.org 70 i 50767 Err codemadness.org 70 i 50768
Err codemadness.org 70 i 50769

The NetBSD Foundation is pleased to announce a summer 2018 contract with Philip Nelson (phil%NetBSD.org@localhost) to update the IEEE 802.11 stack basing the update on the FreeBSD current code. The goals of the project are:

Err codemadness.org 70 i 50770
Err codemadness.org 70 i 50771 Err codemadness.org 70 i 50772
    Err codemadness.org 70 i 50773
  • Minimizing the differences between the FreeBSD and NetBSD IEEE 802.11 stack so future updates are easier.
  • Err codemadness.org 70 i 50774
  • Adding support for the newer protocols 801.11/N and 802.11/AC.
  • Err codemadness.org 70 i 50775
  • Improving SMP support in the IEEE 802.11 stack.
  • Err codemadness.org 70 i 50776
  • Adding Virtual Access Point (VAP) support.
  • Err codemadness.org 70 i 50777
  • Updating as many NIC drivers as time permits for the updated IEEE 802.11 stack and VAP changes.
  • Err codemadness.org 70 i 50778
Err codemadness.org 70 i 50779 Err codemadness.org 70 i 50780
Err codemadness.org 70 i 50781

Status reports will be posted to tech-net%NetBSD.org@localhost every other week
Err codemadness.org 70 i 50782 while the contract is active.

Err codemadness.org 70 i 50783
Err codemadness.org 70 i 50784 Err codemadness.org 70 i 50785


Err codemadness.org 70 i 50786 Err codemadness.org 70 i 50787

iXsystems

Err codemadness.org 70 i 50788 Err codemadness.org 70 i 50789

###Poor Man’s CI - Hosted CI for BSD with shell scripting and duct tape

Err codemadness.org 70 i 50790 Err codemadness.org 70 i 50791
Err codemadness.org 70 i 50792

Poor Man’s CI (PMCI - Poor Man’s Continuous Integration) is a collection of scripts that taken together work as a simple CI solution that runs on Google Cloud. While there are many advanced hosted CI systems today, and many of them are free for open source projects, none of them seem to offer a solution for the BSD operating systems (FreeBSD, NetBSD, OpenBSD, etc.)

Err codemadness.org 70 i 50793
Err codemadness.org 70 i 50794 Err codemadness.org 70 i 50795
Err codemadness.org 70 i 50796

The architecture of Poor Man’s CI is system agnostic. However in the implementation provided in this repository the only supported systems are FreeBSD and NetBSD. Support for additional systems is possible.

Err codemadness.org 70 i 50797
Err codemadness.org 70 i 50798 Err codemadness.org 70 i 50799
Err codemadness.org 70 i 50800

Poor Man’s CI runs on the Google Cloud. It is possible to set it up so that the service fits within the Google Cloud “Always Free” limits. In doing so the provided CI is not only hosted, but is also free! (Disclaimer: I am not affiliated with Google and do not otherwise endorse their products.)

Err codemadness.org 70 i 50801
Err codemadness.org 70 i 50802 Err codemadness.org 70 i 50803
    Err codemadness.org 70 i 50804
  • ARCHITECTURE
  • Err codemadness.org 70 i 50805
Err codemadness.org 70 i 50806 Err codemadness.org 70 i 50807
Err codemadness.org 70 i 50808

A CI solution listens for “commit” (or more usually “push”) events, builds the associated repository at the appropriate place in its history and reports the results. Poor Man’s CI implements this very basic CI scenario using a simple architecture, which we present in this section.

Err codemadness.org 70 i 50809
Err codemadness.org 70 i 50810 Err codemadness.org 70 i 50811
    Err codemadness.org 70 i 50812
  • Err codemadness.org 70 i 50813

    Poor Man’s CI consists of the following components and their interactions:

    Err codemadness.org 70 i 50814
  • Err codemadness.org 70 i 50815
  • Err codemadness.org 70 i 50816

    Controller: Controls the overall process of accepting GitHub push events and starting builds. The Controller runs in the Cloud Functions environment and is implemented by the files in the controller source directory. It consists of the following components:

    Err codemadness.org 70 i 50817
      Err codemadness.org 70 i 50818
    • Listener: Listens for GitHub push events and posts them as work messages to the workq PubSub.
    • Err codemadness.org 70 i 50819
    • Dispatcher: Receives work messages from the workq PubSub and a free instance name from the Builder Pool. It instantiates a builder instance named name in the Compute Engine environment and passes it the link of a repository to build.
    • Err codemadness.org 70 i 50820
    • Collector: Receives done messages from the doneq PubSub and posts the freed instance name back to the Builder Pool.
    • Err codemadness.org 70 i 50821
    Err codemadness.org 70 i 50822 Err codemadness.org 70 i 50823


  • Err codemadness.org 70 i 50824
  • Err codemadness.org 70 i 50825 Err codemadness.org 70 i 50826

    PubSub Topics:

    Err codemadness.org 70 i 50827 Err codemadness.org 70 i 50828
      Err codemadness.org 70 i 50829
    • workq: Transports work messages that contain the link of the repository to build.
    • Err codemadness.org 70 i 50830
    • poolq: Implements the Builder Pool, which contains the name’s of available builder instances. To acquire a builder name, pull a message from the poolq. To release a builder name, post it back into the poolq.
    • Err codemadness.org 70 i 50831
    • doneq: Transports done messages (builder instance terminate and delete events). These message contain the name of freed builder instances.
    • Err codemadness.org 70 i 50832
    Err codemadness.org 70 i 50833 Err codemadness.org 70 i 50834


  • Err codemadness.org 70 i 50835
  • Err codemadness.org 70 i 50836 Err codemadness.org 70 i 50837

    builder: A builder is a Compute Engine instance that performs a build of a repository and shuts down when the build is complete. A builder is instantiated from a VM image and a startx (startup-exit) script.

    Err codemadness.org 70 i 50838 Err codemadness.org 70 i 50839


  • Err codemadness.org 70 i 50840
  • Err codemadness.org 70 i 50841 Err codemadness.org 70 i 50842

    Build Logs: A Storage bucket that contains the logs of builds performed by builder instances.

    Err codemadness.org 70 i 50843 Err codemadness.org 70 i 50844


  • Err codemadness.org 70 i 50845
  • Err codemadness.org 70 i 50846 Err codemadness.org 70 i 50847

    Logging Sink: A Logging Sink captures builder instance terminate and delete events and posts them into the doneq.

    Err codemadness.org 70 i 50848 Err codemadness.org 70 i 50849


  • Err codemadness.org 70 i 50850
  • Err codemadness.org 70 i 50851 Err codemadness.org 70 i 50852

    BUGS

    Err codemadness.org 70 i 50853 Err codemadness.org 70 i 50854


  • Err codemadness.org 70 i 50855

Err codemadness.org 70 i 50856 Err codemadness.org 70 i 50857
Err codemadness.org 70 i 50858

The Builder Pool is currently implemented as a PubSub; messages in the PubSub contain the names of available builder instances. Unfortunately a PubSub retains its messages for a maximum of 7 days. It is therefore possible that messages will be discarded and that your PMCI deployment will suddenly find itself out of builder instances. If this happens you can reseed the Builder Pool by running the commands below. However this is a serious BUG that should be fixed. For a related discussion see https://tinyurl.com/ybkycuub.

Err codemadness.org 70 i 50859
Err codemadness.org 70 i 50860 Err codemadness.org 70 i 50861

$ ./pmci queue_post poolq builder0
Err codemadness.org 70 i 50862 # ./pmci queue_post poolq builder1
Err codemadness.org 70 i 50863 # ... repeat for as many builders as you want

Err codemadness.org 70 i 50864 Err codemadness.org 70 i 50865
Err codemadness.org 70 i 50866

The Dispatcher is implemented as a Retry Background Cloud Function. It accepts work messages from the workq and attempts to pull a free name from the poolq. If that fails it returns an error, which instructs the infrastructure to retry. Because the infrastructure does not provide any retry controls, this currently happens immediately and the Dispatcher spins unproductively. This is currently mitigated by a “sleep” (setTimeout), but the Cloud Functions system still counts the Function as running and charges it accordingly. While this fits within the “Always Free” limits, it is something that should eventually be fixed (perhaps by the PubSub team). For a related discussion see https://tinyurl.com/yb2vbwfd.

Err codemadness.org 70 i 50867
Err codemadness.org 70 i 50868 Err codemadness.org 70 i 50869


Err codemadness.org 70 i 50870 Err codemadness.org 70 i 50871

###The Power of Ctrl-T

Err codemadness.org 70 i 50872 Err codemadness.org 70 i 50873
Err codemadness.org 70 i 50874

Did you know that you can check what a process is doing by pressing CTRL+T?
Err codemadness.org 70 i 50875 Has it happened to you before that you were waiting for something to be finished that can take a lot of time, but there is no easy way to check the status. Like a dd, cp, mv and many others. All you have to do is press CTRL+T where the process is running. This will output what’s happening and will not interrupt or mess with it in any way. This causes the operating system to output the SIGINFO signal.
Err codemadness.org 70 i 50876 On FreeBSD it looks like this:

Err codemadness.org 70 i 50877
Err codemadness.org 70 i 50878 Err codemadness.org 70 i 50879
ping pingtest.com	Err	codemadness.org	70
i 50880 PING pingtest.com (5.22.149.135): 56 data bytes	Err	codemadness.org	70
i 50881 64 bytes from 5.22.149.135: icmp_seq=0 ttl=51 time=86.232 ms	Err	codemadness.org	70
i 50882 64 bytes from 5.22.149.135: icmp_seq=1 ttl=51 time=85.477 ms	Err	codemadness.org	70
i 50883 64 bytes from 5.22.149.135: icmp_seq=2 ttl=51 time=85.493 ms	Err	codemadness.org	70
i 50884 64 bytes from 5.22.149.135: icmp_seq=3 ttl=51 time=85.211 ms	Err	codemadness.org	70
i 50885 64 bytes from 5.22.149.135: icmp_seq=4 ttl=51 time=86.002 ms	Err	codemadness.org	70
i 50886 load: 1.12 cmd: ping 94371 [select] 4.70r 0.00u 0.00s 0% 2500k	Err	codemadness.org	70
i 50887 5/5 packets received (100.0%) 85.211 min / 85.683 avg / 86.232 max	Err	codemadness.org	70
i 50888 64 bytes from 5.22.149.135: icmp_seq=5 ttl=51 time=85.725 ms	Err	codemadness.org	70
i 50889 64 bytes from 5.22.149.135: icmp_seq=6 ttl=51 time=85.510 ms	Err	codemadness.org	70
i 50890 
Err codemadness.org 70 i 50891 Err codemadness.org 70 i 50892
Err codemadness.org 70 i 50893

As you can see it not only outputs the name of the running command but the following parameters as well:

Err codemadness.org 70 i 50894
Err codemadness.org 70 i 50895 Err codemadness.org 70 i 50896
94371 – PID	Err	codemadness.org	70
i 50897 4.70r – since when is the process running	Err	codemadness.org	70
i 50898 0.00u – user time	Err	codemadness.org	70
i 50899 0.00s – system time	Err	codemadness.org	70
i 50900 0% – CPU usage	Err	codemadness.org	70
i 50901 2500k – resident set size of the process or RSS	Err	codemadness.org	70
i 50902 ``	Err	codemadness.org	70
i 50903 	Err	codemadness.org	70
i 50904 > An even better example is with the following cp command:	Err	codemadness.org	70
i 50905 	Err	codemadness.org	70
i 50906 
Err codemadness.org 70 i 50907 Err codemadness.org 70 i 50908

cp FreeBSD-11.1-RELEASE-amd64-dvd1.iso /dev/null
Err codemadness.org 70 i 50909 load: 0.99 cmd: cp 94412 [runnable] 1.61r 0.00u 0.39s 3% 3100k
Err codemadness.org 70 i 50910 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -> /dev/null 15%
Err codemadness.org 70 i 50911 load: 0.91 cmd: cp 94412 [runnable] 2.91r 0.00u 0.80s 6% 3104k
Err codemadness.org 70 i 50912 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -> /dev/null 32%
Err codemadness.org 70 i 50913 load: 0.91 cmd: cp 94412 [runnable] 4.20r 0.00u 1.23s 9% 3104k
Err codemadness.org 70 i 50914 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -> /dev/null 49%
Err codemadness.org 70 i 50915 load: 0.91 cmd: cp 94412 [runnable] 5.43r 0.00u 1.64s 11% 3104k
Err codemadness.org 70 i 50916 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -> /dev/null 64%
Err codemadness.org 70 i 50917 load: 1.07 cmd: cp 94412 [runnable] 6.65r 0.00u 2.05s 13% 3104k
Err codemadness.org 70 i 50918 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -> /dev/null 79%
Err codemadness.org 70 i 50919 load: 1.07 cmd: cp 94412 [runnable] 7.87r 0.00u 2.43s 15% 3104k
Err codemadness.org 70 i 50920 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -> /dev/null 95%

Err codemadness.org 70 i 50921 Err codemadness.org 70 i 50922
	Err	codemadness.org	70
i 50923 > I prcessed CTRL+T six times.  Without that, all the output would have been is the first line.	Err	codemadness.org	70
i 50924 	Err	codemadness.org	70
i 50925 > Another example how the process is changing states:	Err	codemadness.org	70
i 50926 	Err	codemadness.org	70
i 50927 
Err codemadness.org 70 i 50928 Err codemadness.org 70 i 50929

wget https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-dvd1.iso
Err codemadness.org 70 i 50930 –2018-06-17 18:47:48– https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-dvd1.iso
Err codemadness.org 70 i 50931 Resolving download.freebsd.org (download.freebsd.org)… 96.47.72.72, 2610:1c1:1:606c::15:0
Err codemadness.org 70 i 50932 Connecting to download.freebsd.org (download.freebsd.org)|96.47.72.72|:443… connected.
Err codemadness.org 70 i 50933 HTTP request sent, awaiting response… 200 OK
Err codemadness.org 70 i 50934 Length: 3348465664 (3.1G) [application/octet-stream]
Err codemadness.org 70 i 50935 Saving to: ‘FreeBSD-11.1-RELEASE-amd64-dvd1.iso’

Err codemadness.org 70 i 50936 Err codemadness.org 70 i 50937

FreeBSD-11.1-RELEASE-amd64-dvd1.iso 1%[> ] 41.04M 527KB/s eta 26m 49sload: 4.95 cmd: wget 10152 waiting 0.48u 0.72s
Err codemadness.org 70 i 50938 FreeBSD-11.1-RELEASE-amd64-dvd1.iso 1%[> ] 49.41M 659KB/s eta 25m 29sload: 12.64 cmd: wget 10152 waiting 0.55u 0.85s
Err codemadness.org 70 i 50939 FreeBSD-11.1-RELEASE-amd64-dvd1.iso 2%[=> ] 75.58M 6.31MB/s eta 20m 6s load: 11.71 cmd: wget 10152 running 0.73u 1.19s
Err codemadness.org 70 i 50940 FreeBSD-11.1-RELEASE-amd64-dvd1.iso 2%[=> ] 85.63M 6.83MB/s eta 18m 58sload: 11.71 cmd: wget 10152 waiting 0.80u 1.32s
Err codemadness.org 70 i 50941 FreeBSD-11.1-RELEASE-amd64-dvd1.iso 14%[==============> ] 460.23M 7.01MB/s eta 9m 0s 1

Err codemadness.org 70 i 50942 Err codemadness.org 70 i 50943
	Err	codemadness.org	70
i 50944 > The bad news is that CTRl+T doesn’t work with Linux kernel, but you can use it on MacOS/OS-X:	Err	codemadness.org	70
i 50945 	Err	codemadness.org	70
i 50946 
Err codemadness.org 70 i 50947 Err codemadness.org 70 i 50948

—> Fetching distfiles for gmp
Err codemadness.org 70 i 50949 —> Attempting to fetch gmp-6.1.2.tar.bz2 from https://distfiles.macports.org/gmp
Err codemadness.org 70 i 50950 —> Verifying checksums for gmp
Err codemadness.org 70 i 50951 —> Extracting gmp
Err codemadness.org 70 i 50952 —> Applying patches to gmp
Err codemadness.org 70 i 50953 —> Configuring gmp
Err codemadness.org 70 i 50954 load: 2.81 cmd: clang 74287 running 0.31u 0.28s

Err codemadness.org 70 i 50955 Err codemadness.org 70 i 50956
	Err	codemadness.org	70
i 50957 > PS: If I recall correctly Feld showed me CTRL+T, thank you!	Err	codemadness.org	70
i 50958 	Err	codemadness.org	70
i 50959 ***	Err	codemadness.org	70
i 50960 	Err	codemadness.org	70
i 50961 	Err	codemadness.org	70
i 50962 ##Beastie Bits	Err	codemadness.org	70
i 50963 + [Half billion tries for a HAMMER2 bug](http://lists.dragonflybsd.org/pipermail/commits/2018-May/672263.html)	Err	codemadness.org	70
i 50964 + OpenBSD with various Desktops	Err	codemadness.org	70
i 50965  + [OpenBSD 6.3 running twm window manager](https://youtu.be/v6XeC5wU2s4)	Err	codemadness.org	70
i 50966  + [OpenBSD 6.3 jwm and rox desktop](https://youtu.be/jlSK2oi7CBc)	Err	codemadness.org	70
i 50967  + [OpenBSD 6.3 cwm youtube video](https://youtu.be/mgqNyrP2CPs)	Err	codemadness.org	70
i 50968 + [pf: Increase default state table size](https://svnweb.freebsd.org/base?view=revision&revision=336221)	Err	codemadness.org	70
i 50969 ***	Err	codemadness.org	70
i 50970 	Err	codemadness.org	70
i 50971 **Tarsnap**	Err	codemadness.org	70
i 50972 	Err	codemadness.org	70
i 50973 ##Feedback/Questions	Err	codemadness.org	70
i 50974 + Ben Sims - [Full feed?](http://dpaste.com/3XVH91T#wrap)	Err	codemadness.org	70
i 50975 + Scott - [Questions and Comments](http://dpaste.com/08P34YN#wrap)	Err	codemadness.org	70
i 50976 + Troels - [Features of FreeBSD 11.2 that deserve a mention](http://dpaste.com/3DDPEC2#wrap)	Err	codemadness.org	70
i 50977 + [Fred - Show Ideas](http://dpaste.com/296ZA0P#wrap)	Err	codemadness.org	70
i 50978 ***	Err	codemadness.org	70
i 50979 	Err	codemadness.org	70
i 50980 - Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [feedback@bsdnow.tv](mailto:feedback@bsdnow.tv)	Err	codemadness.org	70
i 50981 ***	Err	codemadness.org	70
i 50982 	Err	codemadness.org	70
i 50983 ***	Err	codemadness.org	70
i 50984 	Err	codemadness.org	70
i 50985 iXsystems [It's all NAS](https://www.ixsystems.com/blog/its-all-nas/)	Err	codemadness.org	70
i 50986 
]]> Err codemadness.org 70 i 50987
Err codemadness.org 70 i 50988 Err codemadness.org 70 i 50989 What ZFS blockpointers are, zero-day rewards offered, KDE on FreeBSD status, new FreeBSD core team, NetBSD WiFi refresh, poor man’s CI, and the power of Ctrl+T.

Err codemadness.org 70 i 50990 Err codemadness.org 70 i 50991

##Headlines
Err codemadness.org 70 i 50992 ###What ZFS block pointers are and what’s in them

Err codemadness.org 70 i 50993 Err codemadness.org 70 i 50994
Err codemadness.org 70 i 50995

I’ve mentioned ZFS block pointers in the past; for example, when I wrote about some details of ZFS DVAs, I said that DVAs are embedded in block pointers. But I’ve never really looked carefully at what is in block pointers and what that means and implies for ZFS.

Err codemadness.org 70 i 50996
Err codemadness.org 70 i 50997 Err codemadness.org 70 i 50998
Err codemadness.org 70 i 50999

The very simple way to describe a ZFS block pointer is that it’s what ZFS uses in places where other filesystems would simply put a block number. Just like block numbers but unlike things like ZFS dnodes, a block pointer isn’t a separate on-disk entity; instead it’s an on disk data format and an in memory structure that shows up in other things. To quote from the (draft and old) ZFS on-disk specification (PDF):

Err codemadness.org 70 i 51000
Err codemadness.org 70 i 51001 Err codemadness.org 70 i 51002
Err codemadness.org 70 i 51003

A block pointer (blkptr_t) is a 128 byte ZFS structure used to physically locate, verify, and describe blocks of data on disk.

Err codemadness.org 70 i 51004
Err codemadness.org 70 i 51005 Err codemadness.org 70 i 51006
Err codemadness.org 70 i 51007

Block pointers are embedded in any ZFS on disk structure that points directly to other disk blocks, both for data and metadata. For instance, the dnode for a file contains block pointers that refer to either its data blocks (if it’s small enough) or indirect blocks, as I saw in this entry. However, as I discovered when I paid attention, most things in ZFS only point to dnodes indirectly, by giving their object number (either in a ZFS filesystem or in pool-wide metadata).

Err codemadness.org 70 i 51008
Err codemadness.org 70 i 51009 Err codemadness.org 70 i 51010
Err codemadness.org 70 i 51011

So what’s in a block pointer itself? You can find the technical details for modern ZFS in spa.h, so I’m going to give a sort of summary. A regular block pointer contains:

Err codemadness.org 70 i 51012
Err codemadness.org 70 i 51013 Err codemadness.org 70 i 51014
    Err codemadness.org 70 i 51015
  • various metadata and flags about what the block pointer is for and what parts of it mean, including what type of object it points to.
  • Err codemadness.org 70 i 51016
  • Up to three DVAs that say where to actually find the data on disk. There can be more than one DVA because you may have set the copies property to 2 or 3, or this may be metadata (which normally has two copies and may have more for sufficiently important metadata).
  • Err codemadness.org 70 i 51017
  • The logical size (size before compression) and ‘physical’ size (the nominal size after compression) of the disk block. The physical size can do odd things and is not necessarily the asize (allocated size) for the DVA(s).
  • Err codemadness.org 70 i 51018
  • The txgs that the block was born in, both logically and physically (the physical txg is apparently for dva[0]). The physical txg was added with ZFS deduplication but apparently also shows up in vdev removal.
  • Err codemadness.org 70 i 51019
  • The checksum of the data the block pointer describes. This checksum implicitly covers the entire logical size of the data, and as a result you must read all of the data in order to verify it. This can be an issue on raidz vdevs or if the block had to use gang blocks.
  • Err codemadness.org 70 i 51020
Err codemadness.org 70 i 51021 Err codemadness.org 70 i 51022
Err codemadness.org 70 i 51023

Just like basically everything else in ZFS, block pointers don’t have an explicit checksum of their contents. Instead they’re implicitly covered by the checksum of whatever they’re embedded in; the block pointers in a dnode are covered by the overall checksum of the dnode, for example. Block pointers must include a checksum for the data they point to because such data is ‘out of line’ for the containing object.

Err codemadness.org 70 i 51024
Err codemadness.org 70 i 51025 Err codemadness.org 70 i 51026
Err codemadness.org 70 i 51027

(The block pointers in a dnode don’t necessarily point straight to data. If there’s more than a bit of data in whatever the dnode covers, the dnode’s block pointers will instead point to some level of indirect block, which itself has some number of block pointers.)

Err codemadness.org 70 i 51028
Err codemadness.org 70 i 51029 Err codemadness.org 70 i 51030
Err codemadness.org 70 i 51031

There is a special type of block pointer called an embedded block pointer. Embedded block pointers directly contain up to 112 bytes of data; apart from the data, they contain only the metadata fields and a logical birth txg. As with conventional block pointers, this data is implicitly covered by the checksum of the containing object.

Err codemadness.org 70 i 51032
Err codemadness.org 70 i 51033 Err codemadness.org 70 i 51034
Err codemadness.org 70 i 51035

Since block pointers directly contain the address of things on disk (in the form of DVAs), they have to change any time that address changes, which means any time ZFS does its copy on write thing. This forces a change in whatever contains the block pointer, which in turn ripples up to another block pointer (whatever points to said containing thing), and so on until we eventually reach the Meta Object Set and the uberblock. How this works is a bit complicated, but ZFS is designed to generally make this a relatively shallow change with not many levels of things involved (as I discovered recently).

Err codemadness.org 70 i 51036
Err codemadness.org 70 i 51037 Err codemadness.org 70 i 51038
Err codemadness.org 70 i 51039

As far as I understand things, the logical birth txg of a block pointer is the transaction group in which the block pointer was allocated. Because of ZFS’s copy on write principle, this means that nothing underneath the block pointer has been updated or changed since that txg; if something changed, it would have been written to a new place on disk, which would have forced a change in at least one DVA and thus a ripple of updates that would update the logical birth txg.

Err codemadness.org 70 i 51040
Err codemadness.org 70 i 51041 Err codemadness.org 70 i 51042
Err codemadness.org 70 i 51043

However, this doesn’t quite mean what I used to think it meant because of ZFS’s level of indirection. If you change a file by writing data to it, you will change some of the file’s block pointers, updating their logical birth txg, and you will change the file’s dnode. However, you won’t change any block pointers and thus any logical birth txgs for the filesystem directory the file is in (or anything else up the directory tree), because the directory refers to the file through its object number, not by directly pointing to its dnode. You can still use logical birth txgs to efficiently find changes from one txg to another, but you won’t necessarily get a filesystem level view of these changes; instead, as far as I can see, you will basically get a view of what object(s) in a filesystem changed (effectively, what inode numbers changed).

Err codemadness.org 70 i 51044
Err codemadness.org 70 i 51045 Err codemadness.org 70 i 51046
Err codemadness.org 70 i 51047

(ZFS has an interesting hack to make things like ‘zfs diff’ work far more efficiently than you would expect in light of this, but that’s going to take yet another entry to cover.)

Err codemadness.org 70 i 51048
Err codemadness.org 70 i 51049 Err codemadness.org 70 i 51050


Err codemadness.org 70 i 51051 Err codemadness.org 70 i 51052

###Rewards of Up to $500,000 Offered for FreeBSD, OpenBSD, NetBSD, Linux Zero-Days

Err codemadness.org 70 i 51053 Err codemadness.org 70 i 51054
Err codemadness.org 70 i 51055

Exploit broker Zerodium is offering rewards of up to $500,000 for zero-days in UNIX-based operating systems like OpenBSD, FreeBSD, NetBSD, but also for Linux distros such as Ubuntu, CentOS, Debian, and Tails.
Err codemadness.org 70 i 51056 The offer, first advertised via Twitter earlier this week, is available as part of the company’s latest zero-day acquisition drive. Zerodium is known for buying zero-days and selling them to government agencies and law enforcement.
Err codemadness.org 70 i 51057 The company runs a regular zero-day acquisition program through its website, but it often holds special drives with more substantial rewards when it needs zero-days of a specific category.

Err codemadness.org 70 i 51058
Err codemadness.org 70 i 51059 Err codemadness.org 70 i 51060
    Err codemadness.org 70 i 51061
  • BSD zero-day rewards will be on par with Linux payouts
  • Err codemadness.org 70 i 51062
Err codemadness.org 70 i 51063 Err codemadness.org 70 i 51064
Err codemadness.org 70 i 51065

The US-based company held a previous drive with increased rewards for Linux zero-days in February, with rewards going as high as $45,000.
Err codemadness.org 70 i 51066 In another zero-day acquisition drive announced on Twitter this week, the company said it was looking again for Linux zero-days, but also for exploits targeting BSD systems. This time around, rewards can go up to $500,000, for the right exploit.
Err codemadness.org 70 i 51067 Zerodium told Bleeping Computer they’ll be aligning the temporary rewards for BSD systems with their usual payouts for Linux distros.
Err codemadness.org 70 i 51068 The company’s usual payouts for Linux privilege escalation exploits can range from $10,000 to $30,000. Local privilege escalation (LPE) rewards can even reach $100,000 for “an exploit with an exceptional quality and coverage,” such as, for example, a Linux kernel exploit affecting all major distributions.
Err codemadness.org 70 i 51069 Payouts for Linux remote code execution (RCE) exploits can bring in from $50,000 to $500,000 depending on the targeted software/service and its market share. The highest rewards are usually awarded for LPEs and RCEs affecting CentOS and Ubuntu distros.

Err codemadness.org 70 i 51070
Err codemadness.org 70 i 51071 Err codemadness.org 70 i 51072
    Err codemadness.org 70 i 51073
  • Zero-day price varies based on exploitation chain
  • Err codemadness.org 70 i 51074
Err codemadness.org 70 i 51075 Err codemadness.org 70 i 51076
Err codemadness.org 70 i 51077

The acquisition price of a submitted zero-day is directly tied to its requirements in terms of user interaction (no click, one click, two clicks, etc.), Zerodium said.
Err codemadness.org 70 i 51078 Other factors include the exploit reliability, its success rate, the number of vulnerabilities chained together for the final exploit to work (more chained bugs means more chances for the exploit to break unexpectedly), and the OS configuration needed for the exploit to work (exploits are valued more if they work against default OS configs).

Err codemadness.org 70 i 51079
Err codemadness.org 70 i 51080 Err codemadness.org 70 i 51081
    Err codemadness.org 70 i 51082
  • Zero-days in servers “can reach exceptional amounts”
  • Err codemadness.org 70 i 51083
Err codemadness.org 70 i 51084 Err codemadness.org 70 i 51085
Err codemadness.org 70 i 51086

“Price difference between systems is mostly driven by market shares,” Zerodium founder Chaouki Bekrar told Bleeping Computer via email.
Err codemadness.org 70 i 51087 Asked about the logic behind these acquisition drives that pay increased rewards, Bekrar told Bleeping Computer the following:
Err codemadness.org 70 i 51088 "Our aim is to always have, at any time, two or more fully functional exploits for every major software, hardware, or operating systems, meaning that from time to time we would promote a specific software/system on our social media to acquire new codes and strengthen our existing capabilities or extend them.”
Err codemadness.org 70 i 51089 “We may also react to customers’ requests and their operational needs,” Bekrar said.

Err codemadness.org 70 i 51090
Err codemadness.org 70 i 51091 Err codemadness.org 70 i 51092
    Err codemadness.org 70 i 51093
  • It’s becoming a crowded market
  • Err codemadness.org 70 i 51094
Err codemadness.org 70 i 51095 Err codemadness.org 70 i 51096
Err codemadness.org 70 i 51097

Since Zerodium drew everyone’s attention to the exploit brokerage market in 2015, the market has gotten more and more crowded, but also more sleazy, with some companies being accused of selling zero-days to government agencies in countries with oppressive or dictatorial regimes, where they are often used against political oponents, journalists, and dissidents, instead of going after real criminals.
Err codemadness.org 70 i 51098 The latest company who broke into the zero-day brokerage market is Crowdfense, who recently launched an acquisition program with prizes of $10 million, of which it already paid $4.5 million to researchers.

Err codemadness.org 70 i 51099
Err codemadness.org 70 i 51100 Err codemadness.org 70 i 51101

Twitter Announcement

Err codemadness.org 70 i 51102 Err codemadness.org 70 i 51103


Err codemadness.org 70 i 51104 Err codemadness.org 70 i 51105

Digital Ocean
Err codemadness.org 70 i 51106 http://do.co/bsdnow

Err codemadness.org 70 i 51107 Err codemadness.org 70 i 51108

###KDE on FreeBSD – June 2018

Err codemadness.org 70 i 51109 Err codemadness.org 70 i 51110
Err codemadness.org 70 i 51111

The KDE-FreeBSD team (a half-dozen hardy individuals, with varying backgrounds and varying degrees of involvement depending on how employment is doing) has a status message in the #kde-freebsd channel on freenode. Right now it looks like this:

Err codemadness.org 70 i 51112
Err codemadness.org 70 i 51113 Err codemadness.org 70 i 51114
http://FreeBSD.kde.org | Bleeding edge 	Err	codemadness.org	70
i 51115 http://FreeBSD.kde.org/area51.php | Released: Qt 5.10.1, KDE SC 4.14.3, KF5 5.46.0, Applications 18.04.1, Plasma-5.12.5, Kdevelop-5.2.1, Digikam-5.9.0	Err	codemadness.org	70
i 51116 
Err codemadness.org 70 i 51117 Err codemadness.org 70 i 51118
Err codemadness.org 70 i 51119

It’s been a while since I wrote about KDE on FreeBSD, what with Calamares and third-party software happening as well. We’re better at keeping the IRC topic up-to-date than a lot of other sources of information (e.g. the FreeBSD quarterly reports, or the f.k.o website, which I’ll just dash off and update after writing this).

Err codemadness.org 70 i 51120
Err codemadness.org 70 i 51121 Err codemadness.org 70 i 51122
    Err codemadness.org 70 i 51123
  • In no particular order:
  • Err codemadness.org 70 i 51124
  • Qt 5.10 is here, in a FrankenEngine incarnation: we still use WebEnging from Qt 5.9 because — like I’ve said before — WebEngine is such a gigantic pain in the butt to update with all the necessary patches to get it to compile.
  • Err codemadness.org 70 i 51125
  • Our collection of downstream patches to Qt 5.10 is growing, slowly. None of them are upstreamable (e.g. libressl support) though.
  • Err codemadness.org 70 i 51126
  • KDE Frameworks releases are generally pushed to ports within a week or two of release. Actually, now that there is a bigger stack of KDE software in FreeBSD ports the updates take longer because we have to do exp-runs.
  • Err codemadness.org 70 i 51127
  • Similarly, Applications and Plasma releases are reasonably up-to-date. We dodged a bullet by not jumping on Plasma 5.13 right away, I see. Tobias is the person doing almost all of the drudge-work of these updates, he deserves a pint of something in Vienna this summer.
  • Err codemadness.org 70 i 51128
  • The freebsd.kde.org website has been slightly updated; it was terribly out-of-date.
  • Err codemadness.org 70 i 51129
Err codemadness.org 70 i 51130 Err codemadness.org 70 i 51131
Err codemadness.org 70 i 51132

So we’re mostly-up-to-date, and mostly all packaged up and ready to go. Much of my day is spent in VMs packaged by other people, but it’s good to have a full KDE developer environment outside of them as well. (PS. Gotta hand it to Tomasz for the amazing application for downloading and displaying a flamingo … niche usecases FTW)

Err codemadness.org 70 i 51133
Err codemadness.org 70 i 51134 Err codemadness.org 70 i 51135


Err codemadness.org 70 i 51136 Err codemadness.org 70 i 51137

##News Roundup
Err codemadness.org 70 i 51138 ###New FreeBSD Core Team Elected

Err codemadness.org 70 i 51139 Err codemadness.org 70 i 51140
Err codemadness.org 70 i 51141

Active committers to the project have elected your tenth FreeBSD Core
Err codemadness.org 70 i 51142 Team.

Err codemadness.org 70 i 51143
Err codemadness.org 70 i 51144 Err codemadness.org 70 i 51145
    Err codemadness.org 70 i 51146
  • Allan Jude (allanjude)
  • Err codemadness.org 70 i 51147
  • Benedict Reuschling (bcr)
  • Err codemadness.org 70 i 51148
  • Brooks Davis (brooks)
  • Err codemadness.org 70 i 51149
  • Hiroki Sato (hrs)
  • Err codemadness.org 70 i 51150
  • Jeff Roberson (jeff)
  • Err codemadness.org 70 i 51151
  • John Baldwin (jhb)
  • Err codemadness.org 70 i 51152
  • Kris Moore (kmoore)
  • Err codemadness.org 70 i 51153
  • Sean Chittenden (seanc)
  • Err codemadness.org 70 i 51154
  • Warner Losh (imp)
  • Err codemadness.org 70 i 51155
Err codemadness.org 70 i 51156 Err codemadness.org 70 i 51157
Err codemadness.org 70 i 51158

Let’s extend our gratitude to the outgoing Core Team members:

Err codemadness.org 70 i 51159
Err codemadness.org 70 i 51160 Err codemadness.org 70 i 51161
    Err codemadness.org 70 i 51162
  • Baptiste Daroussin (bapt)
  • Err codemadness.org 70 i 51163
  • Benno Rice (benno)
  • Err codemadness.org 70 i 51164
  • Ed Maste (emaste)
  • Err codemadness.org 70 i 51165
  • George V. Neville-Neil (gnn)
  • Err codemadness.org 70 i 51166
  • Matthew Seaman (matthew)
  • Err codemadness.org 70 i 51167
Err codemadness.org 70 i 51168 Err codemadness.org 70 i 51169
Err codemadness.org 70 i 51170

Matthew, after having served as the Core Team Secretary for the past
Err codemadness.org 70 i 51171 four years, will be stepping down from that role.

Err codemadness.org 70 i 51172
Err codemadness.org 70 i 51173 Err codemadness.org 70 i 51174
Err codemadness.org 70 i 51175

The Core Team would also like to thank Dag-Erling Smørgrav for running a
Err codemadness.org 70 i 51176 flawless election.

Err codemadness.org 70 i 51177
Err codemadness.org 70 i 51178 Err codemadness.org 70 i 51179 Err codemadness.org 70 i 51182 Err codemadness.org 70 i 51183


Err codemadness.org 70 i 51184 Err codemadness.org 70 i 51185

###NetBSD WiFi refresh

Err codemadness.org 70 i 51186 Err codemadness.org 70 i 51187
Err codemadness.org 70 i 51188

The NetBSD Foundation is pleased to announce a summer 2018 contract with Philip Nelson (phil%NetBSD.org@localhost) to update the IEEE 802.11 stack basing the update on the FreeBSD current code. The goals of the project are:

Err codemadness.org 70 i 51189
Err codemadness.org 70 i 51190 Err codemadness.org 70 i 51191
    Err codemadness.org 70 i 51192
  • Minimizing the differences between the FreeBSD and NetBSD IEEE 802.11 stack so future updates are easier.
  • Err codemadness.org 70 i 51193
  • Adding support for the newer protocols 801.11/N and 802.11/AC.
  • Err codemadness.org 70 i 51194
  • Improving SMP support in the IEEE 802.11 stack.
  • Err codemadness.org 70 i 51195
  • Adding Virtual Access Point (VAP) support.
  • Err codemadness.org 70 i 51196
  • Updating as many NIC drivers as time permits for the updated IEEE 802.11 stack and VAP changes.
  • Err codemadness.org 70 i 51197
Err codemadness.org 70 i 51198 Err codemadness.org 70 i 51199
Err codemadness.org 70 i 51200

Status reports will be posted to tech-net%NetBSD.org@localhost every other week
Err codemadness.org 70 i 51201 while the contract is active.

Err codemadness.org 70 i 51202
Err codemadness.org 70 i 51203 Err codemadness.org 70 i 51204


Err codemadness.org 70 i 51205 Err codemadness.org 70 i 51206

iXsystems

Err codemadness.org 70 i 51207 Err codemadness.org 70 i 51208

###Poor Man’s CI - Hosted CI for BSD with shell scripting and duct tape

Err codemadness.org 70 i 51209 Err codemadness.org 70 i 51210
Err codemadness.org 70 i 51211

Poor Man’s CI (PMCI - Poor Man’s Continuous Integration) is a collection of scripts that taken together work as a simple CI solution that runs on Google Cloud. While there are many advanced hosted CI systems today, and many of them are free for open source projects, none of them seem to offer a solution for the BSD operating systems (FreeBSD, NetBSD, OpenBSD, etc.)

Err codemadness.org 70 i 51212
Err codemadness.org 70 i 51213 Err codemadness.org 70 i 51214
Err codemadness.org 70 i 51215

The architecture of Poor Man’s CI is system agnostic. However in the implementation provided in this repository the only supported systems are FreeBSD and NetBSD. Support for additional systems is possible.

Err codemadness.org 70 i 51216
Err codemadness.org 70 i 51217 Err codemadness.org 70 i 51218
Err codemadness.org 70 i 51219

Poor Man’s CI runs on the Google Cloud. It is possible to set it up so that the service fits within the Google Cloud “Always Free” limits. In doing so the provided CI is not only hosted, but is also free! (Disclaimer: I am not affiliated with Google and do not otherwise endorse their products.)

Err codemadness.org 70 i 51220
Err codemadness.org 70 i 51221 Err codemadness.org 70 i 51222
    Err codemadness.org 70 i 51223
  • ARCHITECTURE
  • Err codemadness.org 70 i 51224
Err codemadness.org 70 i 51225 Err codemadness.org 70 i 51226
Err codemadness.org 70 i 51227

A CI solution listens for “commit” (or more usually “push”) events, builds the associated repository at the appropriate place in its history and reports the results. Poor Man’s CI implements this very basic CI scenario using a simple architecture, which we present in this section.

Err codemadness.org 70 i 51228
Err codemadness.org 70 i 51229 Err codemadness.org 70 i 51230
    Err codemadness.org 70 i 51231
  • Err codemadness.org 70 i 51232

    Poor Man’s CI consists of the following components and their interactions:

    Err codemadness.org 70 i 51233
  • Err codemadness.org 70 i 51234
  • Err codemadness.org 70 i 51235

    Controller: Controls the overall process of accepting GitHub push events and starting builds. The Controller runs in the Cloud Functions environment and is implemented by the files in the controller source directory. It consists of the following components:

    Err codemadness.org 70 i 51236
      Err codemadness.org 70 i 51237
    • Listener: Listens for GitHub push events and posts them as work messages to the workq PubSub.
    • Err codemadness.org 70 i 51238
    • Dispatcher: Receives work messages from the workq PubSub and a free instance name from the Builder Pool. It instantiates a builder instance named name in the Compute Engine environment and passes it the link of a repository to build.
    • Err codemadness.org 70 i 51239
    • Collector: Receives done messages from the doneq PubSub and posts the freed instance name back to the Builder Pool.
    • Err codemadness.org 70 i 51240
    Err codemadness.org 70 i 51241 Err codemadness.org 70 i 51242


  • Err codemadness.org 70 i 51243
  • Err codemadness.org 70 i 51244 Err codemadness.org 70 i 51245

    PubSub Topics:

    Err codemadness.org 70 i 51246 Err codemadness.org 70 i 51247
      Err codemadness.org 70 i 51248
    • workq: Transports work messages that contain the link of the repository to build.
    • Err codemadness.org 70 i 51249
    • poolq: Implements the Builder Pool, which contains the name’s of available builder instances. To acquire a builder name, pull a message from the poolq. To release a builder name, post it back into the poolq.
    • Err codemadness.org 70 i 51250
    • doneq: Transports done messages (builder instance terminate and delete events). These message contain the name of freed builder instances.
    • Err codemadness.org 70 i 51251
    Err codemadness.org 70 i 51252 Err codemadness.org 70 i 51253


  • Err codemadness.org 70 i 51254
  • Err codemadness.org 70 i 51255 Err codemadness.org 70 i 51256

    builder: A builder is a Compute Engine instance that performs a build of a repository and shuts down when the build is complete. A builder is instantiated from a VM image and a startx (startup-exit) script.

    Err codemadness.org 70 i 51257 Err codemadness.org 70 i 51258


  • Err codemadness.org 70 i 51259
  • Err codemadness.org 70 i 51260 Err codemadness.org 70 i 51261

    Build Logs: A Storage bucket that contains the logs of builds performed by builder instances.

    Err codemadness.org 70 i 51262 Err codemadness.org 70 i 51263


  • Err codemadness.org 70 i 51264
  • Err codemadness.org 70 i 51265 Err codemadness.org 70 i 51266

    Logging Sink: A Logging Sink captures builder instance terminate and delete events and posts them into the doneq.

    Err codemadness.org 70 i 51267 Err codemadness.org 70 i 51268


  • Err codemadness.org 70 i 51269
  • Err codemadness.org 70 i 51270 Err codemadness.org 70 i 51271

    BUGS

    Err codemadness.org 70 i 51272 Err codemadness.org 70 i 51273


  • Err codemadness.org 70 i 51274

Err codemadness.org 70 i 51275 Err codemadness.org 70 i 51276
Err codemadness.org 70 i 51277

The Builder Pool is currently implemented as a PubSub; messages in the PubSub contain the names of available builder instances. Unfortunately a PubSub retains its messages for a maximum of 7 days. It is therefore possible that messages will be discarded and that your PMCI deployment will suddenly find itself out of builder instances. If this happens you can reseed the Builder Pool by running the commands below. However this is a serious BUG that should be fixed. For a related discussion see https://tinyurl.com/ybkycuub.

Err codemadness.org 70 i 51278
Err codemadness.org 70 i 51279 Err codemadness.org 70 i 51280

$ ./pmci queue_post poolq builder0
Err codemadness.org 70 i 51281 # ./pmci queue_post poolq builder1
Err codemadness.org 70 i 51282 # ... repeat for as many builders as you want

Err codemadness.org 70 i 51283 Err codemadness.org 70 i 51284
Err codemadness.org 70 i 51285

The Dispatcher is implemented as a Retry Background Cloud Function. It accepts work messages from the workq and attempts to pull a free name from the poolq. If that fails it returns an error, which instructs the infrastructure to retry. Because the infrastructure does not provide any retry controls, this currently happens immediately and the Dispatcher spins unproductively. This is currently mitigated by a “sleep” (setTimeout), but the Cloud Functions system still counts the Function as running and charges it accordingly. While this fits within the “Always Free” limits, it is something that should eventually be fixed (perhaps by the PubSub team). For a related discussion see https://tinyurl.com/yb2vbwfd.

Err codemadness.org 70 i 51286
Err codemadness.org 70 i 51287 Err codemadness.org 70 i 51288


Err codemadness.org 70 i 51289 Err codemadness.org 70 i 51290

###The Power of Ctrl-T

Err codemadness.org 70 i 51291 Err codemadness.org 70 i 51292
Err codemadness.org 70 i 51293

Did you know that you can check what a process is doing by pressing CTRL+T?
Err codemadness.org 70 i 51294 Has it happened to you before that you were waiting for something to be finished that can take a lot of time, but there is no easy way to check the status. Like a dd, cp, mv and many others. All you have to do is press CTRL+T where the process is running. This will output what’s happening and will not interrupt or mess with it in any way. This causes the operating system to output the SIGINFO signal.
Err codemadness.org 70 i 51295 On FreeBSD it looks like this:

Err codemadness.org 70 i 51296
Err codemadness.org 70 i 51297 Err codemadness.org 70 i 51298
ping pingtest.com	Err	codemadness.org	70
i 51299 PING pingtest.com (5.22.149.135): 56 data bytes	Err	codemadness.org	70
i 51300 64 bytes from 5.22.149.135: icmp_seq=0 ttl=51 time=86.232 ms	Err	codemadness.org	70
i 51301 64 bytes from 5.22.149.135: icmp_seq=1 ttl=51 time=85.477 ms	Err	codemadness.org	70
i 51302 64 bytes from 5.22.149.135: icmp_seq=2 ttl=51 time=85.493 ms	Err	codemadness.org	70
i 51303 64 bytes from 5.22.149.135: icmp_seq=3 ttl=51 time=85.211 ms	Err	codemadness.org	70
i 51304 64 bytes from 5.22.149.135: icmp_seq=4 ttl=51 time=86.002 ms	Err	codemadness.org	70
i 51305 load: 1.12 cmd: ping 94371 [select] 4.70r 0.00u 0.00s 0% 2500k	Err	codemadness.org	70
i 51306 5/5 packets received (100.0%) 85.211 min / 85.683 avg / 86.232 max	Err	codemadness.org	70
i 51307 64 bytes from 5.22.149.135: icmp_seq=5 ttl=51 time=85.725 ms	Err	codemadness.org	70
i 51308 64 bytes from 5.22.149.135: icmp_seq=6 ttl=51 time=85.510 ms	Err	codemadness.org	70
i 51309 
Err codemadness.org 70 i 51310 Err codemadness.org 70 i 51311
Err codemadness.org 70 i 51312

As you can see it not only outputs the name of the running command but the following parameters as well:

Err codemadness.org 70 i 51313
Err codemadness.org 70 i 51314 Err codemadness.org 70 i 51315
94371 – PID	Err	codemadness.org	70
i 51316 4.70r – since when is the process running	Err	codemadness.org	70
i 51317 0.00u – user time	Err	codemadness.org	70
i 51318 0.00s – system time	Err	codemadness.org	70
i 51319 0% – CPU usage	Err	codemadness.org	70
i 51320 2500k – resident set size of the process or RSS	Err	codemadness.org	70
i 51321 ``	Err	codemadness.org	70
i 51322 	Err	codemadness.org	70
i 51323 > An even better example is with the following cp command:	Err	codemadness.org	70
i 51324 	Err	codemadness.org	70
i 51325 
Err codemadness.org 70 i 51326 Err codemadness.org 70 i 51327

cp FreeBSD-11.1-RELEASE-amd64-dvd1.iso /dev/null
Err codemadness.org 70 i 51328 load: 0.99 cmd: cp 94412 [runnable] 1.61r 0.00u 0.39s 3% 3100k
Err codemadness.org 70 i 51329 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -> /dev/null 15%
Err codemadness.org 70 i 51330 load: 0.91 cmd: cp 94412 [runnable] 2.91r 0.00u 0.80s 6% 3104k
Err codemadness.org 70 i 51331 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -> /dev/null 32%
Err codemadness.org 70 i 51332 load: 0.91 cmd: cp 94412 [runnable] 4.20r 0.00u 1.23s 9% 3104k
Err codemadness.org 70 i 51333 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -> /dev/null 49%
Err codemadness.org 70 i 51334 load: 0.91 cmd: cp 94412 [runnable] 5.43r 0.00u 1.64s 11% 3104k
Err codemadness.org 70 i 51335 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -> /dev/null 64%
Err codemadness.org 70 i 51336 load: 1.07 cmd: cp 94412 [runnable] 6.65r 0.00u 2.05s 13% 3104k
Err codemadness.org 70 i 51337 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -> /dev/null 79%
Err codemadness.org 70 i 51338 load: 1.07 cmd: cp 94412 [runnable] 7.87r 0.00u 2.43s 15% 3104k
Err codemadness.org 70 i 51339 FreeBSD-11.1-RELEASE-amd64-dvd1.iso -> /dev/null 95%

Err codemadness.org 70 i 51340 Err codemadness.org 70 i 51341
	Err	codemadness.org	70
i 51342 > I prcessed CTRL+T six times.  Without that, all the output would have been is the first line.	Err	codemadness.org	70
i 51343 	Err	codemadness.org	70
i 51344 > Another example how the process is changing states:	Err	codemadness.org	70
i 51345 	Err	codemadness.org	70
i 51346 
Err codemadness.org 70 i 51347 Err codemadness.org 70 i 51348

wget https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-dvd1.iso
Err codemadness.org 70 i 51349 –2018-06-17 18:47:48– https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-dvd1.iso
Err codemadness.org 70 i 51350 Resolving download.freebsd.org (download.freebsd.org)… 96.47.72.72, 2610:1c1:1:606c::15:0
Err codemadness.org 70 i 51351 Connecting to download.freebsd.org (download.freebsd.org)|96.47.72.72|:443… connected.
Err codemadness.org 70 i 51352 HTTP request sent, awaiting response… 200 OK
Err codemadness.org 70 i 51353 Length: 3348465664 (3.1G) [application/octet-stream]
Err codemadness.org 70 i 51354 Saving to: ‘FreeBSD-11.1-RELEASE-amd64-dvd1.iso’

Err codemadness.org 70 i 51355 Err codemadness.org 70 i 51356

FreeBSD-11.1-RELEASE-amd64-dvd1.iso 1%[> ] 41.04M 527KB/s eta 26m 49sload: 4.95 cmd: wget 10152 waiting 0.48u 0.72s
Err codemadness.org 70 i 51357 FreeBSD-11.1-RELEASE-amd64-dvd1.iso 1%[> ] 49.41M 659KB/s eta 25m 29sload: 12.64 cmd: wget 10152 waiting 0.55u 0.85s
Err codemadness.org 70 i 51358 FreeBSD-11.1-RELEASE-amd64-dvd1.iso 2%[=> ] 75.58M 6.31MB/s eta 20m 6s load: 11.71 cmd: wget 10152 running 0.73u 1.19s
Err codemadness.org 70 i 51359 FreeBSD-11.1-RELEASE-amd64-dvd1.iso 2%[=> ] 85.63M 6.83MB/s eta 18m 58sload: 11.71 cmd: wget 10152 waiting 0.80u 1.32s
Err codemadness.org 70 i 51360 FreeBSD-11.1-RELEASE-amd64-dvd1.iso 14%[==============> ] 460.23M 7.01MB/s eta 9m 0s 1

Err codemadness.org 70 i 51361 Err codemadness.org 70 i 51362
	Err	codemadness.org	70
i 51363 > The bad news is that CTRl+T doesn’t work with Linux kernel, but you can use it on MacOS/OS-X:	Err	codemadness.org	70
i 51364 	Err	codemadness.org	70
i 51365 
Err codemadness.org 70 i 51366 Err codemadness.org 70 i 51367

—> Fetching distfiles for gmp
Err codemadness.org 70 i 51368 —> Attempting to fetch gmp-6.1.2.tar.bz2 from https://distfiles.macports.org/gmp
Err codemadness.org 70 i 51369 —> Verifying checksums for gmp
Err codemadness.org 70 i 51370 —> Extracting gmp
Err codemadness.org 70 i 51371 —> Applying patches to gmp
Err codemadness.org 70 i 51372 —> Configuring gmp
Err codemadness.org 70 i 51373 load: 2.81 cmd: clang 74287 running 0.31u 0.28s

Err codemadness.org 70 i 51374 Err codemadness.org 70 i 51375
	Err	codemadness.org	70
i 51376 > PS: If I recall correctly Feld showed me CTRL+T, thank you!	Err	codemadness.org	70
i 51377 	Err	codemadness.org	70
i 51378 ***	Err	codemadness.org	70
i 51379 	Err	codemadness.org	70
i 51380 	Err	codemadness.org	70
i 51381 ##Beastie Bits	Err	codemadness.org	70
i 51382 + [Half billion tries for a HAMMER2 bug](http://lists.dragonflybsd.org/pipermail/commits/2018-May/672263.html)	Err	codemadness.org	70
i 51383 + OpenBSD with various Desktops	Err	codemadness.org	70
i 51384  + [OpenBSD 6.3 running twm window manager](https://youtu.be/v6XeC5wU2s4)	Err	codemadness.org	70
i 51385  + [OpenBSD 6.3 jwm and rox desktop](https://youtu.be/jlSK2oi7CBc)	Err	codemadness.org	70
i 51386  + [OpenBSD 6.3 cwm youtube video](https://youtu.be/mgqNyrP2CPs)	Err	codemadness.org	70
i 51387 + [pf: Increase default state table size](https://svnweb.freebsd.org/base?view=revision&revision=336221)	Err	codemadness.org	70
i 51388 ***	Err	codemadness.org	70
i 51389 	Err	codemadness.org	70
i 51390 **Tarsnap**	Err	codemadness.org	70
i 51391 	Err	codemadness.org	70
i 51392 ##Feedback/Questions	Err	codemadness.org	70
i 51393 + Ben Sims - [Full feed?](http://dpaste.com/3XVH91T#wrap)	Err	codemadness.org	70
i 51394 + Scott - [Questions and Comments](http://dpaste.com/08P34YN#wrap)	Err	codemadness.org	70
i 51395 + Troels - [Features of FreeBSD 11.2 that deserve a mention](http://dpaste.com/3DDPEC2#wrap)	Err	codemadness.org	70
i 51396 + [Fred - Show Ideas](http://dpaste.com/296ZA0P#wrap)	Err	codemadness.org	70
i 51397 ***	Err	codemadness.org	70
i 51398 	Err	codemadness.org	70
i 51399 - Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [feedback@bsdnow.tv](mailto:feedback@bsdnow.tv)	Err	codemadness.org	70
i 51400 ***	Err	codemadness.org	70
i 51401 	Err	codemadness.org	70
i 51402 ***	Err	codemadness.org	70
i 51403 	Err	codemadness.org	70
i 51404 iXsystems [It's all NAS](https://www.ixsystems.com/blog/its-all-nas/)	Err	codemadness.org	70
i 51405 
]]> Err codemadness.org 70 i 51406
Err codemadness.org 70 i 51407 https://fireside.fm/player/v2/FYhhasNR+9R-GgbfS Err codemadness.org 70 i 51408 Err codemadness.org 70 i 51409 ]]> Err codemadness.org 70 i 51410 Err codemadness.org 70 i 51411
Err codemadness.org 70 i 51412 Err codemadness.org 70 i 51413 Episode 254: Bare the OS | BSD Now 254 Err codemadness.org 70 i 51414 https://www.bsdnow.tv/254 Err codemadness.org 70 i 51415 http://feed.jupiter.zone/bsdnow#entry-2259 Err codemadness.org 70 i 51416 Thu, 12 Jul 2018 08:00:00 -0700 Err codemadness.org 70 i 51417 Allan Jude Err codemadness.org 70 i 51418 Err codemadness.org 70 i 51419 full Err codemadness.org 70 i 51420 Allan Jude Err codemadness.org 70 i 51421 Control flow integrity with HardenedBSD, fixing bufferbloat with OpenBSD’s pf, Bareos Backup Server on FreeBSD, MeetBSD CfP, crypto simplified interface, twitter gems, interesting BSD commits, and more. Err codemadness.org 70 i 51422 1:31:23 Err codemadness.org 70 i 51423 no Err codemadness.org 70 i 51424 Err codemadness.org 70 i 51425 Control flow integrity with HardenedBSD, fixing bufferbloat with OpenBSD’s pf, Bareos Backup Server on FreeBSD, MeetBSD CfP, crypto simplified interface, twitter gems, interesting BSD commits, and more. Err codemadness.org 70 i 51426 <p>##Headlines<br> Err codemadness.org 70 i 51427 <a href="https://vermaden.wordpress.com/2018/06/07/silent-fanless-freebsd-desktop-server/">Silent Fanless FreeBSD Desktop/Server</a></p> Err codemadness.org 70 i 51428 <blockquote> Err codemadness.org 70 i 51429 <p>Today I will write about silent fanless FreeBSD desktop or server computer … or NAS … or you name it, it can have multa##Headlines<br> Err codemadness.org 70 i 51430 ###<a href="https://github.com/lattera/articles/blob/master/hardenedbsd/2018-05-26_cross-dso-cfi/article.md">Cross-DSO CFI in HardenedBSD</a><br> Err codemadness.org 70 i 51431 Control Flow Integrity, or CFI, raises the bar for attackers aiming to hijack control flow and execute arbitrary code. The llvm compiler toolchain, included and used by default in HardenedBSD 12-CURRENT/amd64, supports forward-edge CFI. Backward-edge CFI support is gained via a tangential feature called SafeStack. Cross-DSO CFI builds upon ASLR and PaX NOEXEC for effectiveness.<br> Err codemadness.org 70 i 51432 HardenedBSD supports non-Cross-DSO CFI in base for 12-CURRENT/amd64 and has it enabled for a few individual ports. The term “non-Cross-DSO CFI” means that CFI is enabled for code within an application’s codebase, but not for the shared libraries it depends on. Supporting non-Cross-DSO CFI is an important initial milestone for supporting Cross-DSO CFI, or CFI applied to both shared libraries and applications.<br> Err codemadness.org 70 i 51433 This article discusses where HardenedBSD stands with regards to Cross-DSO CFI in base. We have made a lot of progress, yet we’re not even half-way there.<br> Err codemadness.org 70 i 51434 Brace yourself: This article is going to be full of references to “Cross-DSO CFI.” Make a drinking game out of it. Or don’t. It’s your call. ;)</p> Err codemadness.org 70 i 51435 </blockquote> Err codemadness.org 70 i 51436 <ul> Err codemadness.org 70 i 51437 <li>Using More llvm Toolchain Components</li> Err codemadness.org 70 i 51438 </ul> Err codemadness.org 70 i 51439 <blockquote> Err codemadness.org 70 i 51440 <p>CFI requires compiling source files with Link-Time Optimization (LTO). I remembered hearing a few years back that llvm developers were able to compile the entirety of FreeBSD’s source code with LTO. Compiling with LTO produces intermediate object files as LLVM IR bitcode instead of ELF objects.<br> Err codemadness.org 70 i 51441 In March of 2017, we started compiling all applications with LTO and non-Cross-DSO CFI. This also enabled ld.lld as the default linker in base since CFI requires lld. Commit f38b51668efcd53b8146789010611a4632cafade made the switch to ld.lld as the default linker while enabling non-Cross-DSO CFI at the same time.<br> Err codemadness.org 70 i 51442 Building libraries in base requires applications like ar, ranlib, nm, and objdump. In FreeBSD 12-CURRENT, ar and ranlib are known as “BSD ar” and “BSD ranlib.” In fact, ar and ranlib are the same applications. One is hardlinked to another and the application changes behavior depending on arvgv[0] ending in “ranlib”. The ar, nm, and objdump used in FreeBSD do not support LLVM IR bitcode object files.<br> Err codemadness.org 70 i 51443 In preparation for Cross-DSO CFI support, commit fe4bb0104fc75c7216a6dafe2d7db0e3f5fe8257 in October 2017 saw HardenedBSD switching ar, ranlib, nm, and objdump to their respective llvm components. The llvm versions due support LLVM IR bitcode object files (surprise!) There has been some fallout in the ports tree and we’ve added LLVM_AR_UNSAFE and friends to help transition those ports that dislike llvm-ar, llvm-ranlib, llvm-nm, and llvm-objdump.<br> Err codemadness.org 70 i 51444 With ld.lld, llvm-ar, llvm-ranlib, llvm-nm, and llvm-objdump the default, HardenedBSD has effectively switched to a full llvm compiler toolchain in 12-CURRENT/amd64.</p> Err codemadness.org 70 i 51445 </blockquote> Err codemadness.org 70 i 51446 <ul> Err codemadness.org 70 i 51447 <li>Building Libraries With LTO</li> Err codemadness.org 70 i 51448 </ul> Err codemadness.org 70 i 51449 <blockquote> Err codemadness.org 70 i 51450 <p>The primary 12-CURRENT development branch in HardenedBSD (hardened/current/master) only builds applications with LTO as mentioned in the secion above. My first attempt at building all static and shared libraries failed due to issues within llvm itself.<br> Err codemadness.org 70 i 51451 I reported these issues to FreeBSD. Ed Maste (emaste@), Dimitry Andric (dim@), and llvm’s Rafael Espindola expertly helped address these issues. Various commits within the llvm project by Rafael fully and quickly resolved the issues brought up privately in emails.<br> Err codemadness.org 70 i 51452 With llvm fixed, I could now build nearly every library in base with LTO. I noticed, however, that if I kept non-Cross-DSO CFI and SafeStack enabled, all applications would segfault. Even simplistic applications like /bin/ls.<br> Err codemadness.org 70 i 51453 Disabling both non-Cross-DSO CFI and SafeStack, but keeping LTO produced a fully functioning world! I have spent the last few months figuring out why enabling either non-Cross-DSO CFI or SafeStack caused issues. This brings us to today.</p> Err codemadness.org 70 i 51454 </blockquote> Err codemadness.org 70 i 51455 <ul> Err codemadness.org 70 i 51456 <li>The Sanitizers in FreeBSD</li> Err codemadness.org 70 i 51457 </ul> Err codemadness.org 70 i 51458 <blockquote> Err codemadness.org 70 i 51459 <p>FreeBSD brought in all the files required for SafeStack and CFI. When compiling with SafeStack, llvm statically links a full sanitization framework into the application. FreeBSD includes a full copy of the sanitization framework in SafeStack, including the common C++ sanization namespaces. Thus, libclang_rt.safestack included code meant to be shared among all the sanitizers, not just SafeStack.<br> Err codemadness.org 70 i 51460 I had naively taken a brute-force approach to setting up the libclang_rt.cfi static library. I copied the Makefile from libclang_rt.safestack and used that as a template for libclang_rt.cfi. This approach was incorrect due to breaking the One Definition Rule (ODR). Essentially, I ended up including a duplicate copy of the C++ classes and sanitizer runtime if both CFI and SafeStack were used.<br> Err codemadness.org 70 i 51461 In my Cross-DSO CFI development VM, I now have SafeStack disabled across-the-board and am only compiling in CFI. As of 26 May 2018, an LTO-ified world (libs + apps) works in my limited testing. /bin/ls does not crash anymore! The second major milestone for Cross-DSO CFI has now been reached.</p> Err codemadness.org 70 i 51462 </blockquote> Err codemadness.org 70 i 51463 <ul> Err codemadness.org 70 i 51464 <li>Known Issues And Limitations</li> Err codemadness.org 70 i 51465 </ul> Err codemadness.org 70 i 51466 <blockquote> Err codemadness.org 70 i 51467 <p>There are a few known issues and regressions. Note that this list of known issues essentially also constitutes a “work-in-progress” and every known issue will be fixed prior to the official launch of Cross-DSO CFI.<br> Err codemadness.org 70 i 51468 It seems llvm does not like statically compiling applications with LTO that have a mixture of C and C++ code. /sbin/devd is one of these applications. As such, when Cross-DSO CFI is enabled, devd is compiled as a Position-Independent Executable (PIE). Doing this breaks UFS systems where /usr is on a separate partition. We are currently looking into solving this issue to allow devd to be statically compiled again.<br> Err codemadness.org 70 i 51469 NO_SHARED is now unset in the tools build stage (aka, bootstrap-tools, cross-tools). This is related to the static compilation issue above. Unsetting NO_SHARED for to tools build stage is only a band-aid until we can resolve static compliation with LTO.<br> Err codemadness.org 70 i 51470 One goal of our Cross-DSO CFI integration work is to be able to support the cfi-icall scheme when dlopen(3) and dlsym(3)/dlfunc(3) is used. This means the runtime linker (RTLD), must be enhanced to know and care about the CFI runtime. This enhancement is not currently implemented, but is planned.<br> Err codemadness.org 70 i 51471 When Cross-DSO CFI is enabled, SafeStack is disabled. This is because compiling with Cross-DSO CFI brings in a second copy of the sanitizer runtime, violating the One Definition Rule (ODR). Resolving this issue should be straightforward: Unify the sanitizer runtime into a single common library that both Cross-DSO CFI and SafeStack can link against. When the installed world has Cross-DSO CFI enabled, performing a buildworld with Cross-DSO CFI disabled fails. This is somewhat related to the static compilation issue described above.</p> Err codemadness.org 70 i 51472 </blockquote> Err codemadness.org 70 i 51473 <ul> Err codemadness.org 70 i 51474 <li>Current Status</li> Err codemadness.org 70 i 51475 </ul> Err codemadness.org 70 i 51476 <blockquote> Err codemadness.org 70 i 51477 <p>I’ve managed to get a Cross-DSO CFI world booting on bare metal (my development laptop) and in a VM. Some applications failed to work. Curiously, Firefox still worked (which also means xorg works).<br> Err codemadness.org 70 i 51478 I’m now working through the known issues list, researching and learning.</p> Err codemadness.org 70 i 51479 </blockquote> Err codemadness.org 70 i 51480 <ul> Err codemadness.org 70 i 51481 <li>Future Work</li> Err codemadness.org 70 i 51482 </ul> Err codemadness.org 70 i 51483 <blockquote> Err codemadness.org 70 i 51484 <p>Fixing pretty much everything in the “Known Issues And Limitations” section. ;P<br> Err codemadness.org 70 i 51485 I need to create a static library that includes only a single copy of the common sanitizer framework code. Applications compiled with CFI or SafeStack will then only have a single copy of the framework.<br> Err codemadness.org 70 i 51486 Next I will need to integrate support in the RTLD for Cross-DSO CFI. Applications with the cfi-icall scheme enabled that call functions resolved through dlsym(3) currently crash due to the lack of RTLD support. I need to make a design decision as to whether to only support adding cfi-icall whitelist entries only with dlfunc(3) or to also whitelist cfi-icall entries with the more widely used dlsym(3).<br> Err codemadness.org 70 i 51487 There’s likely more items in the “TODO” bucket that I am not currently aware of. I’m treading in uncharted territory. I have no firm ETA for any bit of this work. We may gain Cross-DSO CFI support in 2018, but it’s looking like it will be later in either 2019 or 2020.</p> Err codemadness.org 70 i 51488 </blockquote> Err codemadness.org 70 i 51489 <ul> Err codemadness.org 70 i 51490 <li>Conclusion</li> Err codemadness.org 70 i 51491 </ul> Err codemadness.org 70 i 51492 <blockquote> Err codemadness.org 70 i 51493 <p>I have been working on Cross-DSO CFI support in HardenedBSD for a little over a year now. A lot of progress is being made, yet there’s still some major hurdles to overcome. This work has already helped improve llvm and I hope more commits upstream to both FreeBSD and llvm will happen.<br> Err codemadness.org 70 i 51494 We’re getting closer to being able to send out a preliminary Call For Testing (CFT). At the very least, I would like to solve the static linking issues prior to publishing the CFT. Expect it to be published before the end of 2018.<br> Err codemadness.org 70 i 51495 I would like to thank Ed Maste, Dimitry Andric, and Rafael Espindola for their help, guidance, and support.</p> Err codemadness.org 70 i 51496 </blockquote> Err codemadness.org 70 i 51497 <hr> Err codemadness.org 70 i 51498 <p><strong>iXsystems</strong><br> Err codemadness.org 70 i 51499 FreeNAS 11.2-BETAs are starting to appear</p> Err codemadness.org 70 i 51500 <p>###<a href="https://vermaden.wordpress.com/2018/05/01/bareos-backup-server-on-freebsd/">Bareos Backup Server on FreeBSD</a></p> Err codemadness.org 70 i 51501 <blockquote> Err codemadness.org 70 i 51502 <p>Ever heard about Bareos? Probably heard about Bacula. Read what is the difference here – Why Bareos forked from Bacula?<br> Err codemadness.org 70 i 51503 Bareos (Backup Archiving Recovery Open Sourced) is a network based open source backup solution. It is 100% open source fork of the backup project from <a href="http://bacula.org">bacula.org</a> site. The fork is in development since late 2010 and it has a lot of new features. The source is published on github and licensed under AGPLv3 license. Bareos supports ‘Always Incremental backup which is interesting especially for users with big data. The time and network capacity consuming full backups only have to be taken once. Bareos comes with WebUI for administration tasks and restore file browser. Bareos can backup data to disk and to tape drives as well as tape libraries. It supports compression and encryption both hardware-based (like on LTO tape drives) and software-based. You can also get professional services and support from Bareos as well as Bareos subscription service that provides you access to special quality assured installation packages.</p> Err codemadness.org 70 i 51504 </blockquote> Err codemadness.org 70 i 51505 <blockquote> Err codemadness.org 70 i 51506 <p>I started my sysadmin job with backup system as one of the new responsibilities, so it will be like going back to the roots. As I look on the ‘backup’ market it is more and more popular – especially in cloud oriented environments – to implement various levels of protection like GOLD, SILVER and BRONZE for example. They of course have different retention times, number of backups kept, different RTO and RPO. Below is a example implementation of BRONZE level backups in Bareos. I used 3 groups of A, B and C with FULL backup starting on DAY 0 (A group), DAY 1 (B group) and DAY 2 (C group).<br> Err codemadness.org 70 i 51507 This way you still have FULL backups quite often and with 3 groups you can balance the network load. I for the days that we will not be doing FULL backups we will be doing DIFFERENTIAL backups. People often confuse them with INCREMENTAL backups. The difference is that DIFFERENTIAL backups are always against FULL backup, so its always ‘one level of combining’. INCREMENTAL ones are done against last done backup TYPE, so its possible to have 100+ levels of combining against 99 earlier INCREMENTAL backups and the 1 FULL backup. That is why I prefer DIFFERENTIAL ones here, faster recovery. That is all backups is about generally, recovery, some people/companies tend to forget that.<br> Err codemadness.org 70 i 51508 The implementation of BRONZE in these three groups is not perfect, but ‘does the job’. I also made ‘simulation’ how these group will overlap at the end/beginning of the month, here is the result.<br> Err codemadness.org 70 i 51509 Not bad for my taste.</p> Err codemadness.org 70 i 51510 </blockquote> Err codemadness.org 70 i 51511 <blockquote> Err codemadness.org 70 i 51512 <p>Today I will show you how to install and configure Bareos Server based on FreeBSD operating system. It will be the most simplified setup with all services on single machine:</p> Err codemadness.org 70 i 51513 </blockquote> Err codemadness.org 70 i 51514 <ul> Err codemadness.org 70 i 51515 <li>bareos-dir</li> Err codemadness.org 70 i 51516 <li>bareos-sd</li> Err codemadness.org 70 i 51517 <li>bareos-webui</li> Err codemadness.org 70 i 51518 <li>bareos-fd</li> Err codemadness.org 70 i 51519 </ul> Err codemadness.org 70 i 51520 <blockquote> Err codemadness.org 70 i 51521 <p>I also assume that in order to provide storage space for the backup data itself You would mount resources from external NFS shares.</p> Err codemadness.org 70 i 51522 </blockquote> Err codemadness.org 70 i 51523 <blockquote> Err codemadness.org 70 i 51524 <p>To get in touch with Bareos terminology and technology check their great Manual in HTML or PDF version depending which format You prefer for reading documentation. Also their FAQ provides a lot of needed answers.</p> Err codemadness.org 70 i 51525 </blockquote> Err codemadness.org 70 i 51526 <blockquote> Err codemadness.org 70 i 51527 <p>Also this diagram may be useful for You to get some grip into the Bareos world.</p> Err codemadness.org 70 i 51528 </blockquote> Err codemadness.org 70 i 51529 <ul> Err codemadness.org 70 i 51530 <li>System</li> Err codemadness.org 70 i 51531 </ul> Err codemadness.org 70 i 51532 <blockquote> Err codemadness.org 70 i 51533 <p>As every system needs to have its name we will use latin word closest to backup here – replica – for our FreeBSD system hostname. The install would be generally the same as in the FreeBSD Desktop – Part 2 – Install article. Here is our installed FreeBSD system with login prompt.</p> Err codemadness.org 70 i 51534 </blockquote> Err codemadness.org 70 i 51535 Err codemadness.org 70 i 51536 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 51537 Err codemadness.org 70 i 51538 Control flow integrity with HardenedBSD, fixing bufferbloat with OpenBSD’s pf, Bareos Backup Server on FreeBSD, MeetBSD CfP, crypto simplified interface, twitter gems, interesting BSD commits, and more.

Err codemadness.org 70 i 51539 Err codemadness.org 70 i 51540

##Headlines
Err codemadness.org 70 i 51541 ###Silent Fanless FreeBSD Desktop/Server

Err codemadness.org 70 i 51542 Err codemadness.org 70 i 51543
Err codemadness.org 70 i 51544

Today I will write about silent fanless FreeBSD desktop or server computer … or NAS … or you name it, it can have multa##Headlines
Err codemadness.org 70 i 51545 ###Cross-DSO CFI in HardenedBSD
Err codemadness.org 70 i 51546 Control Flow Integrity, or CFI, raises the bar for attackers aiming to hijack control flow and execute arbitrary code. The llvm compiler toolchain, included and used by default in HardenedBSD 12-CURRENT/amd64, supports forward-edge CFI. Backward-edge CFI support is gained via a tangential feature called SafeStack. Cross-DSO CFI builds upon ASLR and PaX NOEXEC for effectiveness.
Err codemadness.org 70 i 51547 HardenedBSD supports non-Cross-DSO CFI in base for 12-CURRENT/amd64 and has it enabled for a few individual ports. The term “non-Cross-DSO CFI” means that CFI is enabled for code within an application’s codebase, but not for the shared libraries it depends on. Supporting non-Cross-DSO CFI is an important initial milestone for supporting Cross-DSO CFI, or CFI applied to both shared libraries and applications.
Err codemadness.org 70 i 51548 This article discusses where HardenedBSD stands with regards to Cross-DSO CFI in base. We have made a lot of progress, yet we’re not even half-way there.
Err codemadness.org 70 i 51549 Brace yourself: This article is going to be full of references to “Cross-DSO CFI.” Make a drinking game out of it. Or don’t. It’s your call. ;)

Err codemadness.org 70 i 51550
Err codemadness.org 70 i 51551 Err codemadness.org 70 i 51552
    Err codemadness.org 70 i 51553
  • Using More llvm Toolchain Components
  • Err codemadness.org 70 i 51554
Err codemadness.org 70 i 51555 Err codemadness.org 70 i 51556
Err codemadness.org 70 i 51557

CFI requires compiling source files with Link-Time Optimization (LTO). I remembered hearing a few years back that llvm developers were able to compile the entirety of FreeBSD’s source code with LTO. Compiling with LTO produces intermediate object files as LLVM IR bitcode instead of ELF objects.
Err codemadness.org 70 i 51558 In March of 2017, we started compiling all applications with LTO and non-Cross-DSO CFI. This also enabled ld.lld as the default linker in base since CFI requires lld. Commit f38b51668efcd53b8146789010611a4632cafade made the switch to ld.lld as the default linker while enabling non-Cross-DSO CFI at the same time.
Err codemadness.org 70 i 51559 Building libraries in base requires applications like ar, ranlib, nm, and objdump. In FreeBSD 12-CURRENT, ar and ranlib are known as “BSD ar” and “BSD ranlib.” In fact, ar and ranlib are the same applications. One is hardlinked to another and the application changes behavior depending on arvgv[0] ending in “ranlib”. The ar, nm, and objdump used in FreeBSD do not support LLVM IR bitcode object files.
Err codemadness.org 70 i 51560 In preparation for Cross-DSO CFI support, commit fe4bb0104fc75c7216a6dafe2d7db0e3f5fe8257 in October 2017 saw HardenedBSD switching ar, ranlib, nm, and objdump to their respective llvm components. The llvm versions due support LLVM IR bitcode object files (surprise!) There has been some fallout in the ports tree and we’ve added LLVM_AR_UNSAFE and friends to help transition those ports that dislike llvm-ar, llvm-ranlib, llvm-nm, and llvm-objdump.
Err codemadness.org 70 i 51561 With ld.lld, llvm-ar, llvm-ranlib, llvm-nm, and llvm-objdump the default, HardenedBSD has effectively switched to a full llvm compiler toolchain in 12-CURRENT/amd64.

Err codemadness.org 70 i 51562
Err codemadness.org 70 i 51563 Err codemadness.org 70 i 51564
    Err codemadness.org 70 i 51565
  • Building Libraries With LTO
  • Err codemadness.org 70 i 51566
Err codemadness.org 70 i 51567 Err codemadness.org 70 i 51568
Err codemadness.org 70 i 51569

The primary 12-CURRENT development branch in HardenedBSD (hardened/current/master) only builds applications with LTO as mentioned in the secion above. My first attempt at building all static and shared libraries failed due to issues within llvm itself.
Err codemadness.org 70 i 51570 I reported these issues to FreeBSD. Ed Maste (emaste@), Dimitry Andric (dim@), and llvm’s Rafael Espindola expertly helped address these issues. Various commits within the llvm project by Rafael fully and quickly resolved the issues brought up privately in emails.
Err codemadness.org 70 i 51571 With llvm fixed, I could now build nearly every library in base with LTO. I noticed, however, that if I kept non-Cross-DSO CFI and SafeStack enabled, all applications would segfault. Even simplistic applications like /bin/ls.
Err codemadness.org 70 i 51572 Disabling both non-Cross-DSO CFI and SafeStack, but keeping LTO produced a fully functioning world! I have spent the last few months figuring out why enabling either non-Cross-DSO CFI or SafeStack caused issues. This brings us to today.

Err codemadness.org 70 i 51573
Err codemadness.org 70 i 51574 Err codemadness.org 70 i 51575
    Err codemadness.org 70 i 51576
  • The Sanitizers in FreeBSD
  • Err codemadness.org 70 i 51577
Err codemadness.org 70 i 51578 Err codemadness.org 70 i 51579
Err codemadness.org 70 i 51580

FreeBSD brought in all the files required for SafeStack and CFI. When compiling with SafeStack, llvm statically links a full sanitization framework into the application. FreeBSD includes a full copy of the sanitization framework in SafeStack, including the common C++ sanization namespaces. Thus, libclang_rt.safestack included code meant to be shared among all the sanitizers, not just SafeStack.
Err codemadness.org 70 i 51581 I had naively taken a brute-force approach to setting up the libclang_rt.cfi static library. I copied the Makefile from libclang_rt.safestack and used that as a template for libclang_rt.cfi. This approach was incorrect due to breaking the One Definition Rule (ODR). Essentially, I ended up including a duplicate copy of the C++ classes and sanitizer runtime if both CFI and SafeStack were used.
Err codemadness.org 70 i 51582 In my Cross-DSO CFI development VM, I now have SafeStack disabled across-the-board and am only compiling in CFI. As of 26 May 2018, an LTO-ified world (libs + apps) works in my limited testing. /bin/ls does not crash anymore! The second major milestone for Cross-DSO CFI has now been reached.

Err codemadness.org 70 i 51583
Err codemadness.org 70 i 51584 Err codemadness.org 70 i 51585
    Err codemadness.org 70 i 51586
  • Known Issues And Limitations
  • Err codemadness.org 70 i 51587
Err codemadness.org 70 i 51588 Err codemadness.org 70 i 51589
Err codemadness.org 70 i 51590

There are a few known issues and regressions. Note that this list of known issues essentially also constitutes a “work-in-progress” and every known issue will be fixed prior to the official launch of Cross-DSO CFI.
Err codemadness.org 70 i 51591 It seems llvm does not like statically compiling applications with LTO that have a mixture of C and C++ code. /sbin/devd is one of these applications. As such, when Cross-DSO CFI is enabled, devd is compiled as a Position-Independent Executable (PIE). Doing this breaks UFS systems where /usr is on a separate partition. We are currently looking into solving this issue to allow devd to be statically compiled again.
Err codemadness.org 70 i 51592 NO_SHARED is now unset in the tools build stage (aka, bootstrap-tools, cross-tools). This is related to the static compilation issue above. Unsetting NO_SHARED for to tools build stage is only a band-aid until we can resolve static compliation with LTO.
Err codemadness.org 70 i 51593 One goal of our Cross-DSO CFI integration work is to be able to support the cfi-icall scheme when dlopen(3) and dlsym(3)/dlfunc(3) is used. This means the runtime linker (RTLD), must be enhanced to know and care about the CFI runtime. This enhancement is not currently implemented, but is planned.
Err codemadness.org 70 i 51594 When Cross-DSO CFI is enabled, SafeStack is disabled. This is because compiling with Cross-DSO CFI brings in a second copy of the sanitizer runtime, violating the One Definition Rule (ODR). Resolving this issue should be straightforward: Unify the sanitizer runtime into a single common library that both Cross-DSO CFI and SafeStack can link against. When the installed world has Cross-DSO CFI enabled, performing a buildworld with Cross-DSO CFI disabled fails. This is somewhat related to the static compilation issue described above.

Err codemadness.org 70 i 51595
Err codemadness.org 70 i 51596 Err codemadness.org 70 i 51597
    Err codemadness.org 70 i 51598
  • Current Status
  • Err codemadness.org 70 i 51599
Err codemadness.org 70 i 51600 Err codemadness.org 70 i 51601
Err codemadness.org 70 i 51602

I’ve managed to get a Cross-DSO CFI world booting on bare metal (my development laptop) and in a VM. Some applications failed to work. Curiously, Firefox still worked (which also means xorg works).
Err codemadness.org 70 i 51603 I’m now working through the known issues list, researching and learning.

Err codemadness.org 70 i 51604
Err codemadness.org 70 i 51605 Err codemadness.org 70 i 51606
    Err codemadness.org 70 i 51607
  • Future Work
  • Err codemadness.org 70 i 51608
Err codemadness.org 70 i 51609 Err codemadness.org 70 i 51610
Err codemadness.org 70 i 51611

Fixing pretty much everything in the “Known Issues And Limitations” section. ;P
Err codemadness.org 70 i 51612 I need to create a static library that includes only a single copy of the common sanitizer framework code. Applications compiled with CFI or SafeStack will then only have a single copy of the framework.
Err codemadness.org 70 i 51613 Next I will need to integrate support in the RTLD for Cross-DSO CFI. Applications with the cfi-icall scheme enabled that call functions resolved through dlsym(3) currently crash due to the lack of RTLD support. I need to make a design decision as to whether to only support adding cfi-icall whitelist entries only with dlfunc(3) or to also whitelist cfi-icall entries with the more widely used dlsym(3).
Err codemadness.org 70 i 51614 There’s likely more items in the “TODO” bucket that I am not currently aware of. I’m treading in uncharted territory. I have no firm ETA for any bit of this work. We may gain Cross-DSO CFI support in 2018, but it’s looking like it will be later in either 2019 or 2020.

Err codemadness.org 70 i 51615
Err codemadness.org 70 i 51616 Err codemadness.org 70 i 51617
    Err codemadness.org 70 i 51618
  • Conclusion
  • Err codemadness.org 70 i 51619
Err codemadness.org 70 i 51620 Err codemadness.org 70 i 51621
Err codemadness.org 70 i 51622

I have been working on Cross-DSO CFI support in HardenedBSD for a little over a year now. A lot of progress is being made, yet there’s still some major hurdles to overcome. This work has already helped improve llvm and I hope more commits upstream to both FreeBSD and llvm will happen.
Err codemadness.org 70 i 51623 We’re getting closer to being able to send out a preliminary Call For Testing (CFT). At the very least, I would like to solve the static linking issues prior to publishing the CFT. Expect it to be published before the end of 2018.
Err codemadness.org 70 i 51624 I would like to thank Ed Maste, Dimitry Andric, and Rafael Espindola for their help, guidance, and support.

Err codemadness.org 70 i 51625
Err codemadness.org 70 i 51626 Err codemadness.org 70 i 51627


Err codemadness.org 70 i 51628 Err codemadness.org 70 i 51629

iXsystems
Err codemadness.org 70 i 51630 FreeNAS 11.2-BETAs are starting to appear

Err codemadness.org 70 i 51631 Err codemadness.org 70 i 51632

###Bareos Backup Server on FreeBSD

Err codemadness.org 70 i 51633 Err codemadness.org 70 i 51634
Err codemadness.org 70 i 51635

Ever heard about Bareos? Probably heard about Bacula. Read what is the difference here – Why Bareos forked from Bacula?
Err codemadness.org 70 i 51636 Bareos (Backup Archiving Recovery Open Sourced) is a network based open source backup solution. It is 100% open source fork of the backup project from bacula.org site. The fork is in development since late 2010 and it has a lot of new features. The source is published on github and licensed under AGPLv3 license. Bareos supports ‘Always Incremental backup which is interesting especially for users with big data. The time and network capacity consuming full backups only have to be taken once. Bareos comes with WebUI for administration tasks and restore file browser. Bareos can backup data to disk and to tape drives as well as tape libraries. It supports compression and encryption both hardware-based (like on LTO tape drives) and software-based. You can also get professional services and support from Bareos as well as Bareos subscription service that provides you access to special quality assured installation packages.

Err codemadness.org 70 i 51637
Err codemadness.org 70 i 51638 Err codemadness.org 70 i 51639
Err codemadness.org 70 i 51640

I started my sysadmin job with backup system as one of the new responsibilities, so it will be like going back to the roots. As I look on the ‘backup’ market it is more and more popular – especially in cloud oriented environments – to implement various levels of protection like GOLD, SILVER and BRONZE for example. They of course have different retention times, number of backups kept, different RTO and RPO. Below is a example implementation of BRONZE level backups in Bareos. I used 3 groups of A, B and C with FULL backup starting on DAY 0 (A group), DAY 1 (B group) and DAY 2 (C group).
Err codemadness.org 70 i 51641 This way you still have FULL backups quite often and with 3 groups you can balance the network load. I for the days that we will not be doing FULL backups we will be doing DIFFERENTIAL backups. People often confuse them with INCREMENTAL backups. The difference is that DIFFERENTIAL backups are always against FULL backup, so its always ‘one level of combining’. INCREMENTAL ones are done against last done backup TYPE, so its possible to have 100+ levels of combining against 99 earlier INCREMENTAL backups and the 1 FULL backup. That is why I prefer DIFFERENTIAL ones here, faster recovery. That is all backups is about generally, recovery, some people/companies tend to forget that.
Err codemadness.org 70 i 51642 The implementation of BRONZE in these three groups is not perfect, but ‘does the job’. I also made ‘simulation’ how these group will overlap at the end/beginning of the month, here is the result.
Err codemadness.org 70 i 51643 Not bad for my taste.

Err codemadness.org 70 i 51644
Err codemadness.org 70 i 51645 Err codemadness.org 70 i 51646
Err codemadness.org 70 i 51647

Today I will show you how to install and configure Bareos Server based on FreeBSD operating system. It will be the most simplified setup with all services on single machine:

Err codemadness.org 70 i 51648
Err codemadness.org 70 i 51649 Err codemadness.org 70 i 51650
    Err codemadness.org 70 i 51651
  • bareos-dir
  • Err codemadness.org 70 i 51652
  • bareos-sd
  • Err codemadness.org 70 i 51653
  • bareos-webui
  • Err codemadness.org 70 i 51654
  • bareos-fd
  • Err codemadness.org 70 i 51655
Err codemadness.org 70 i 51656 Err codemadness.org 70 i 51657
Err codemadness.org 70 i 51658

I also assume that in order to provide storage space for the backup data itself You would mount resources from external NFS shares.

Err codemadness.org 70 i 51659
Err codemadness.org 70 i 51660 Err codemadness.org 70 i 51661
Err codemadness.org 70 i 51662

To get in touch with Bareos terminology and technology check their great Manual in HTML or PDF version depending which format You prefer for reading documentation. Also their FAQ provides a lot of needed answers.

Err codemadness.org 70 i 51663
Err codemadness.org 70 i 51664 Err codemadness.org 70 i 51665
Err codemadness.org 70 i 51666

Also this diagram may be useful for You to get some grip into the Bareos world.

Err codemadness.org 70 i 51667
Err codemadness.org 70 i 51668 Err codemadness.org 70 i 51669
    Err codemadness.org 70 i 51670
  • System
  • Err codemadness.org 70 i 51671
Err codemadness.org 70 i 51672 Err codemadness.org 70 i 51673
Err codemadness.org 70 i 51674

As every system needs to have its name we will use latin word closest to backup here – replica – for our FreeBSD system hostname. The install would be generally the same as in the FreeBSD Desktop – Part 2 – Install article. Here is our installed FreeBSD system with login prompt.

Err codemadness.org 70 i 51675
]]> Err codemadness.org 70 i 51676
Err codemadness.org 70 i 51677 Err codemadness.org 70 i 51678 Control flow integrity with HardenedBSD, fixing bufferbloat with OpenBSD’s pf, Bareos Backup Server on FreeBSD, MeetBSD CfP, crypto simplified interface, twitter gems, interesting BSD commits, and more.

Err codemadness.org 70 i 51679 Err codemadness.org 70 i 51680

##Headlines
Err codemadness.org 70 i 51681 ###Silent Fanless FreeBSD Desktop/Server

Err codemadness.org 70 i 51682 Err codemadness.org 70 i 51683
Err codemadness.org 70 i 51684

Today I will write about silent fanless FreeBSD desktop or server computer … or NAS … or you name it, it can have multa##Headlines
Err codemadness.org 70 i 51685 ###Cross-DSO CFI in HardenedBSD
Err codemadness.org 70 i 51686 Control Flow Integrity, or CFI, raises the bar for attackers aiming to hijack control flow and execute arbitrary code. The llvm compiler toolchain, included and used by default in HardenedBSD 12-CURRENT/amd64, supports forward-edge CFI. Backward-edge CFI support is gained via a tangential feature called SafeStack. Cross-DSO CFI builds upon ASLR and PaX NOEXEC for effectiveness.
Err codemadness.org 70 i 51687 HardenedBSD supports non-Cross-DSO CFI in base for 12-CURRENT/amd64 and has it enabled for a few individual ports. The term “non-Cross-DSO CFI” means that CFI is enabled for code within an application’s codebase, but not for the shared libraries it depends on. Supporting non-Cross-DSO CFI is an important initial milestone for supporting Cross-DSO CFI, or CFI applied to both shared libraries and applications.
Err codemadness.org 70 i 51688 This article discusses where HardenedBSD stands with regards to Cross-DSO CFI in base. We have made a lot of progress, yet we’re not even half-way there.
Err codemadness.org 70 i 51689 Brace yourself: This article is going to be full of references to “Cross-DSO CFI.” Make a drinking game out of it. Or don’t. It’s your call. ;)

Err codemadness.org 70 i 51690
Err codemadness.org 70 i 51691 Err codemadness.org 70 i 51692
    Err codemadness.org 70 i 51693
  • Using More llvm Toolchain Components
  • Err codemadness.org 70 i 51694
Err codemadness.org 70 i 51695 Err codemadness.org 70 i 51696
Err codemadness.org 70 i 51697

CFI requires compiling source files with Link-Time Optimization (LTO). I remembered hearing a few years back that llvm developers were able to compile the entirety of FreeBSD’s source code with LTO. Compiling with LTO produces intermediate object files as LLVM IR bitcode instead of ELF objects.
Err codemadness.org 70 i 51698 In March of 2017, we started compiling all applications with LTO and non-Cross-DSO CFI. This also enabled ld.lld as the default linker in base since CFI requires lld. Commit f38b51668efcd53b8146789010611a4632cafade made the switch to ld.lld as the default linker while enabling non-Cross-DSO CFI at the same time.
Err codemadness.org 70 i 51699 Building libraries in base requires applications like ar, ranlib, nm, and objdump. In FreeBSD 12-CURRENT, ar and ranlib are known as “BSD ar” and “BSD ranlib.” In fact, ar and ranlib are the same applications. One is hardlinked to another and the application changes behavior depending on arvgv[0] ending in “ranlib”. The ar, nm, and objdump used in FreeBSD do not support LLVM IR bitcode object files.
Err codemadness.org 70 i 51700 In preparation for Cross-DSO CFI support, commit fe4bb0104fc75c7216a6dafe2d7db0e3f5fe8257 in October 2017 saw HardenedBSD switching ar, ranlib, nm, and objdump to their respective llvm components. The llvm versions due support LLVM IR bitcode object files (surprise!) There has been some fallout in the ports tree and we’ve added LLVM_AR_UNSAFE and friends to help transition those ports that dislike llvm-ar, llvm-ranlib, llvm-nm, and llvm-objdump.
Err codemadness.org 70 i 51701 With ld.lld, llvm-ar, llvm-ranlib, llvm-nm, and llvm-objdump the default, HardenedBSD has effectively switched to a full llvm compiler toolchain in 12-CURRENT/amd64.

Err codemadness.org 70 i 51702
Err codemadness.org 70 i 51703 Err codemadness.org 70 i 51704
    Err codemadness.org 70 i 51705
  • Building Libraries With LTO
  • Err codemadness.org 70 i 51706
Err codemadness.org 70 i 51707 Err codemadness.org 70 i 51708
Err codemadness.org 70 i 51709

The primary 12-CURRENT development branch in HardenedBSD (hardened/current/master) only builds applications with LTO as mentioned in the secion above. My first attempt at building all static and shared libraries failed due to issues within llvm itself.
Err codemadness.org 70 i 51710 I reported these issues to FreeBSD. Ed Maste (emaste@), Dimitry Andric (dim@), and llvm’s Rafael Espindola expertly helped address these issues. Various commits within the llvm project by Rafael fully and quickly resolved the issues brought up privately in emails.
Err codemadness.org 70 i 51711 With llvm fixed, I could now build nearly every library in base with LTO. I noticed, however, that if I kept non-Cross-DSO CFI and SafeStack enabled, all applications would segfault. Even simplistic applications like /bin/ls.
Err codemadness.org 70 i 51712 Disabling both non-Cross-DSO CFI and SafeStack, but keeping LTO produced a fully functioning world! I have spent the last few months figuring out why enabling either non-Cross-DSO CFI or SafeStack caused issues. This brings us to today.

Err codemadness.org 70 i 51713
Err codemadness.org 70 i 51714 Err codemadness.org 70 i 51715
    Err codemadness.org 70 i 51716
  • The Sanitizers in FreeBSD
  • Err codemadness.org 70 i 51717
Err codemadness.org 70 i 51718 Err codemadness.org 70 i 51719
Err codemadness.org 70 i 51720

FreeBSD brought in all the files required for SafeStack and CFI. When compiling with SafeStack, llvm statically links a full sanitization framework into the application. FreeBSD includes a full copy of the sanitization framework in SafeStack, including the common C++ sanization namespaces. Thus, libclang_rt.safestack included code meant to be shared among all the sanitizers, not just SafeStack.
Err codemadness.org 70 i 51721 I had naively taken a brute-force approach to setting up the libclang_rt.cfi static library. I copied the Makefile from libclang_rt.safestack and used that as a template for libclang_rt.cfi. This approach was incorrect due to breaking the One Definition Rule (ODR). Essentially, I ended up including a duplicate copy of the C++ classes and sanitizer runtime if both CFI and SafeStack were used.
Err codemadness.org 70 i 51722 In my Cross-DSO CFI development VM, I now have SafeStack disabled across-the-board and am only compiling in CFI. As of 26 May 2018, an LTO-ified world (libs + apps) works in my limited testing. /bin/ls does not crash anymore! The second major milestone for Cross-DSO CFI has now been reached.

Err codemadness.org 70 i 51723
Err codemadness.org 70 i 51724 Err codemadness.org 70 i 51725
    Err codemadness.org 70 i 51726
  • Known Issues And Limitations
  • Err codemadness.org 70 i 51727
Err codemadness.org 70 i 51728 Err codemadness.org 70 i 51729
Err codemadness.org 70 i 51730

There are a few known issues and regressions. Note that this list of known issues essentially also constitutes a “work-in-progress” and every known issue will be fixed prior to the official launch of Cross-DSO CFI.
Err codemadness.org 70 i 51731 It seems llvm does not like statically compiling applications with LTO that have a mixture of C and C++ code. /sbin/devd is one of these applications. As such, when Cross-DSO CFI is enabled, devd is compiled as a Position-Independent Executable (PIE). Doing this breaks UFS systems where /usr is on a separate partition. We are currently looking into solving this issue to allow devd to be statically compiled again.
Err codemadness.org 70 i 51732 NO_SHARED is now unset in the tools build stage (aka, bootstrap-tools, cross-tools). This is related to the static compilation issue above. Unsetting NO_SHARED for to tools build stage is only a band-aid until we can resolve static compliation with LTO.
Err codemadness.org 70 i 51733 One goal of our Cross-DSO CFI integration work is to be able to support the cfi-icall scheme when dlopen(3) and dlsym(3)/dlfunc(3) is used. This means the runtime linker (RTLD), must be enhanced to know and care about the CFI runtime. This enhancement is not currently implemented, but is planned.
Err codemadness.org 70 i 51734 When Cross-DSO CFI is enabled, SafeStack is disabled. This is because compiling with Cross-DSO CFI brings in a second copy of the sanitizer runtime, violating the One Definition Rule (ODR). Resolving this issue should be straightforward: Unify the sanitizer runtime into a single common library that both Cross-DSO CFI and SafeStack can link against. When the installed world has Cross-DSO CFI enabled, performing a buildworld with Cross-DSO CFI disabled fails. This is somewhat related to the static compilation issue described above.

Err codemadness.org 70 i 51735
Err codemadness.org 70 i 51736 Err codemadness.org 70 i 51737
    Err codemadness.org 70 i 51738
  • Current Status
  • Err codemadness.org 70 i 51739
Err codemadness.org 70 i 51740 Err codemadness.org 70 i 51741
Err codemadness.org 70 i 51742

I’ve managed to get a Cross-DSO CFI world booting on bare metal (my development laptop) and in a VM. Some applications failed to work. Curiously, Firefox still worked (which also means xorg works).
Err codemadness.org 70 i 51743 I’m now working through the known issues list, researching and learning.

Err codemadness.org 70 i 51744
Err codemadness.org 70 i 51745 Err codemadness.org 70 i 51746
    Err codemadness.org 70 i 51747
  • Future Work
  • Err codemadness.org 70 i 51748
Err codemadness.org 70 i 51749 Err codemadness.org 70 i 51750
Err codemadness.org 70 i 51751

Fixing pretty much everything in the “Known Issues And Limitations” section. ;P
Err codemadness.org 70 i 51752 I need to create a static library that includes only a single copy of the common sanitizer framework code. Applications compiled with CFI or SafeStack will then only have a single copy of the framework.
Err codemadness.org 70 i 51753 Next I will need to integrate support in the RTLD for Cross-DSO CFI. Applications with the cfi-icall scheme enabled that call functions resolved through dlsym(3) currently crash due to the lack of RTLD support. I need to make a design decision as to whether to only support adding cfi-icall whitelist entries only with dlfunc(3) or to also whitelist cfi-icall entries with the more widely used dlsym(3).
Err codemadness.org 70 i 51754 There’s likely more items in the “TODO” bucket that I am not currently aware of. I’m treading in uncharted territory. I have no firm ETA for any bit of this work. We may gain Cross-DSO CFI support in 2018, but it’s looking like it will be later in either 2019 or 2020.

Err codemadness.org 70 i 51755
Err codemadness.org 70 i 51756 Err codemadness.org 70 i 51757
    Err codemadness.org 70 i 51758
  • Conclusion
  • Err codemadness.org 70 i 51759
Err codemadness.org 70 i 51760 Err codemadness.org 70 i 51761
Err codemadness.org 70 i 51762

I have been working on Cross-DSO CFI support in HardenedBSD for a little over a year now. A lot of progress is being made, yet there’s still some major hurdles to overcome. This work has already helped improve llvm and I hope more commits upstream to both FreeBSD and llvm will happen.
Err codemadness.org 70 i 51763 We’re getting closer to being able to send out a preliminary Call For Testing (CFT). At the very least, I would like to solve the static linking issues prior to publishing the CFT. Expect it to be published before the end of 2018.
Err codemadness.org 70 i 51764 I would like to thank Ed Maste, Dimitry Andric, and Rafael Espindola for their help, guidance, and support.

Err codemadness.org 70 i 51765
Err codemadness.org 70 i 51766 Err codemadness.org 70 i 51767


Err codemadness.org 70 i 51768 Err codemadness.org 70 i 51769

iXsystems
Err codemadness.org 70 i 51770 FreeNAS 11.2-BETAs are starting to appear

Err codemadness.org 70 i 51771 Err codemadness.org 70 i 51772

###Bareos Backup Server on FreeBSD

Err codemadness.org 70 i 51773 Err codemadness.org 70 i 51774
Err codemadness.org 70 i 51775

Ever heard about Bareos? Probably heard about Bacula. Read what is the difference here – Why Bareos forked from Bacula?
Err codemadness.org 70 i 51776 Bareos (Backup Archiving Recovery Open Sourced) is a network based open source backup solution. It is 100% open source fork of the backup project from bacula.org site. The fork is in development since late 2010 and it has a lot of new features. The source is published on github and licensed under AGPLv3 license. Bareos supports ‘Always Incremental backup which is interesting especially for users with big data. The time and network capacity consuming full backups only have to be taken once. Bareos comes with WebUI for administration tasks and restore file browser. Bareos can backup data to disk and to tape drives as well as tape libraries. It supports compression and encryption both hardware-based (like on LTO tape drives) and software-based. You can also get professional services and support from Bareos as well as Bareos subscription service that provides you access to special quality assured installation packages.

Err codemadness.org 70 i 51777
Err codemadness.org 70 i 51778 Err codemadness.org 70 i 51779
Err codemadness.org 70 i 51780

I started my sysadmin job with backup system as one of the new responsibilities, so it will be like going back to the roots. As I look on the ‘backup’ market it is more and more popular – especially in cloud oriented environments – to implement various levels of protection like GOLD, SILVER and BRONZE for example. They of course have different retention times, number of backups kept, different RTO and RPO. Below is a example implementation of BRONZE level backups in Bareos. I used 3 groups of A, B and C with FULL backup starting on DAY 0 (A group), DAY 1 (B group) and DAY 2 (C group).
Err codemadness.org 70 i 51781 This way you still have FULL backups quite often and with 3 groups you can balance the network load. I for the days that we will not be doing FULL backups we will be doing DIFFERENTIAL backups. People often confuse them with INCREMENTAL backups. The difference is that DIFFERENTIAL backups are always against FULL backup, so its always ‘one level of combining’. INCREMENTAL ones are done against last done backup TYPE, so its possible to have 100+ levels of combining against 99 earlier INCREMENTAL backups and the 1 FULL backup. That is why I prefer DIFFERENTIAL ones here, faster recovery. That is all backups is about generally, recovery, some people/companies tend to forget that.
Err codemadness.org 70 i 51782 The implementation of BRONZE in these three groups is not perfect, but ‘does the job’. I also made ‘simulation’ how these group will overlap at the end/beginning of the month, here is the result.
Err codemadness.org 70 i 51783 Not bad for my taste.

Err codemadness.org 70 i 51784
Err codemadness.org 70 i 51785 Err codemadness.org 70 i 51786
Err codemadness.org 70 i 51787

Today I will show you how to install and configure Bareos Server based on FreeBSD operating system. It will be the most simplified setup with all services on single machine:

Err codemadness.org 70 i 51788
Err codemadness.org 70 i 51789 Err codemadness.org 70 i 51790
    Err codemadness.org 70 i 51791
  • bareos-dir
  • Err codemadness.org 70 i 51792
  • bareos-sd
  • Err codemadness.org 70 i 51793
  • bareos-webui
  • Err codemadness.org 70 i 51794
  • bareos-fd
  • Err codemadness.org 70 i 51795
Err codemadness.org 70 i 51796 Err codemadness.org 70 i 51797
Err codemadness.org 70 i 51798

I also assume that in order to provide storage space for the backup data itself You would mount resources from external NFS shares.

Err codemadness.org 70 i 51799
Err codemadness.org 70 i 51800 Err codemadness.org 70 i 51801
Err codemadness.org 70 i 51802

To get in touch with Bareos terminology and technology check their great Manual in HTML or PDF version depending which format You prefer for reading documentation. Also their FAQ provides a lot of needed answers.

Err codemadness.org 70 i 51803
Err codemadness.org 70 i 51804 Err codemadness.org 70 i 51805
Err codemadness.org 70 i 51806

Also this diagram may be useful for You to get some grip into the Bareos world.

Err codemadness.org 70 i 51807
Err codemadness.org 70 i 51808 Err codemadness.org 70 i 51809
    Err codemadness.org 70 i 51810
  • System
  • Err codemadness.org 70 i 51811
Err codemadness.org 70 i 51812 Err codemadness.org 70 i 51813
Err codemadness.org 70 i 51814

As every system needs to have its name we will use latin word closest to backup here – replica – for our FreeBSD system hostname. The install would be generally the same as in the FreeBSD Desktop – Part 2 – Install article. Here is our installed FreeBSD system with login prompt.

Err codemadness.org 70 i 51815
]]> Err codemadness.org 70 i 51816
Err codemadness.org 70 i 51817 https://fireside.fm/player/v2/FYhhasNR+qv9stJ5n Err codemadness.org 70 i 51818 Err codemadness.org 70 i 51819 ]]> Err codemadness.org 70 i 51820 Err codemadness.org 70 i 51821
Err codemadness.org 70 i 51822 Err codemadness.org 70 i 51823 Episode 253: Silence of the Fans | BSD Now 253 Err codemadness.org 70 i 51824 https://www.bsdnow.tv/253 Err codemadness.org 70 i 51825 http://feed.jupiter.zone/bsdnow#entry-2208 Err codemadness.org 70 i 51826 Thu, 05 Jul 2018 04:00:00 -0700 Err codemadness.org 70 i 51827 Allan Jude Err codemadness.org 70 i 51828 Err codemadness.org 70 i 51829 full Err codemadness.org 70 i 51830 Allan Jude Err codemadness.org 70 i 51831 Fanless server setup with FreeBSD, NetBSD on pinebooks, another BSDCan trip report, transparent network audio, MirBSD's Korn Shell on Plan9, static site generators on OpenBSD, and more. Err codemadness.org 70 i 51832 1:26:51 Err codemadness.org 70 i 51833 no Err codemadness.org 70 i 51834 Err codemadness.org 70 i 51835 Fanless server setup with FreeBSD, NetBSD on pinebooks, another BSDCan trip report, transparent network audio, MirBSD's Korn Shell on Plan9, static site generators on OpenBSD, and more. Err codemadness.org 70 i 51836 <p>##Headlines<br> Err codemadness.org 70 i 51837 <a href="https://vermaden.wordpress.com/2018/06/07/silent-fanless-freebsd-desktop-server/">Silent Fanless FreeBSD Desktop/Server</a></p> Err codemadness.org 70 i 51838 <blockquote> Err codemadness.org 70 i 51839 <p>Today I will write about silent fanless FreeBSD desktop or server computer … or NAS … or you name it, it can have multiple purposes. It also very low power solution, which also means that it will not overheat. Silent means no fans at all, even for the PSU. The format of the system should also be brought to minimum, so Mini-ITX seems best solution here.</p> Err codemadness.org 70 i 51840 </blockquote> Err codemadness.org 70 i 51841 <blockquote> Err codemadness.org 70 i 51842 <p>I have chosen Intel based solutions as they are very low power (6-10W), if you prefer AMD (as I often do) the closest solution in comparable price and power is Biostar A68N-2100 motherboard with AMD E1-2100 CPU and 9W power. Of course AMD has even more low power SoC solutions but finding the Mini-ITX motherboard with decent price is not an easy task. For comparison Intel has lots of such solutions below 6W whose can be nicely filtered on the <a href="http://ark.intel.com">ark.intel.com</a> page. Pity that AMD does not provide such filtration for their products. I also chosen AES instructions as storage encryption (GELI on FreeBSD) today seems as obvious as HTTPS for the web pages.</p> Err codemadness.org 70 i 51843 </blockquote> Err codemadness.org 70 i 51844 <ul> Err codemadness.org 70 i 51845 <li><a href="https://vermaden.files.wordpress.com/2018/06/itx-mobo.jpg">Here is how the system look powered up and working</a></li> Err codemadness.org 70 i 51846 </ul> Err codemadness.org 70 i 51847 <blockquote> Err codemadness.org 70 i 51848 <p>This motherboard uses Intel J3355 SoC which uses 10W and has AES instructions. It has two cores at your disposal but it also supports VT-x and EPT extensions so you can even run Bhyve on it.</p> Err codemadness.org 70 i 51849 </blockquote> Err codemadness.org 70 i 51850 <ul> Err codemadness.org 70 i 51851 <li>Components</li> Err codemadness.org 70 i 51852 </ul> Err codemadness.org 70 i 51853 <blockquote> Err codemadness.org 70 i 51854 <p>Now, an example system would look like that one below, here are the components with their prices.</p> Err codemadness.org 70 i 51855 </blockquote> Err codemadness.org 70 i 51856 <ul> Err codemadness.org 70 i 51857 <li>$49 CPU/Motherboard ASRock J3355B-ITX Mini-ITX</li> Err codemadness.org 70 i 51858 <li>$14 RAM Crucial 4 GB DDR3L 1.35V (low power)</li> Err codemadness.org 70 i 51859 <li>$17 PSU 12V 160W Pico (internal)</li> Err codemadness.org 70 i 51860 <li>$11 PSU 12V 96W FSP (external)</li> Err codemadness.org 70 i 51861 <li>$5 USB 2.0 Drive 16 GB ADATA</li> Err codemadness.org 70 i 51862 <li>$4 USB Wireless 802.11n</li> Err codemadness.org 70 i 51863 <li>$100 TOTAL</li> Err codemadness.org 70 i 51864 </ul> Err codemadness.org 70 i 51865 <blockquote> Err codemadness.org 70 i 51866 <p>The PSU 12V 160W Pico (internal) and PSU 12V 96W FSP can be purchased on <a href="http://aliexpress.com">aliexpress.com</a> or <a href="http://ebay.com">ebay.com</a> for example, at least I got them there. Here is the 12V 160W Pico (internal) PSU and its optional additional cables to power the optional HDDs. If course its one SATA power and one MOLEX power so additional MOLEX-SATA power adapter for about 1$ would be needed. Here is the 12V 96W FSP (external) PSU without the power cord.</p> Err codemadness.org 70 i 51867 </blockquote> Err codemadness.org 70 i 51868 <blockquote> Err codemadness.org 70 i 51869 <p>This gives as total silent fanless system price of about $120. Its about ONE TENTH OF THE COST of the cheapest FreeNAS hardware solution available – the FreeNAS Mini (Diskless) costs $1156 also without disks.</p> Err codemadness.org 70 i 51870 </blockquote> Err codemadness.org 70 i 51871 <blockquote> Err codemadness.org 70 i 51872 <p>You can put plain FreeBSD on top of it or Solaris/Illumos distribution OmniOSce which is server oriented. You can use prebuilt NAS solution based on FreeBSD like FreeNAS, NAS4Free, ZFSguru or even Solaris/Illumos based storage with napp-it appliance.</p> Err codemadness.org 70 i 51873 </blockquote> Err codemadness.org 70 i 51874 <hr> Err codemadness.org 70 i 51875 <p>###<a href="https://blog.netbsd.org/tnf/entry/pinebook">An annotated look at a NetBSD Pinebook’s startup</a></p> Err codemadness.org 70 i 51876 <ul> Err codemadness.org 70 i 51877 <li>Pinebook is an affordable 64-bit ARM notebook. Today we’re going to take a look at the kernel output at startup and talk about what hardware support is available on NetBSD.</li> Err codemadness.org 70 i 51878 <li><a href="https://twitter.com/jmcwhatever/status/998258710496628736/photo/1">Photo</a></li> Err codemadness.org 70 i 51879 <li>Pinebook comes with 2GB RAM standard. A small amount of this is reserved by the kernel and framebuffer.</li> Err codemadness.org 70 i 51880 <li>NetBSD uses flattened device-tree (FDT) to enumerate devices on all Allwinner based SoCs. On a running system, you can inspect the device tree using the ofctl(8) utility:</li> Err codemadness.org 70 i 51881 <li>Pinebook’s Allwinner A64 processor is based on the ARM Cortex-A53. It is designed to run at frequencies up to 1.2GHz.</li> Err codemadness.org 70 i 51882 <li>The A64 is a quad core design. NetBSD’s aarch64 pmap does not yet support SMP, so three cores are disabled for now.</li> Err codemadness.org 70 i 51883 <li>The interrupt controller is a standard ARM GIC-400 design.</li> Err codemadness.org 70 i 51884 <li>Clock drivers for managing PLLs, module clock dividers, clock gating, software resets, etc. Information about the clock tree is exported in the hw.clk sysctl namespace (root access required to read these values).</li> Err codemadness.org 70 i 51885 </ul> Err codemadness.org 70 i 51886 <pre><code># sysctl hw.clk.sun50ia64ccu0.mmc2 Err codemadness.org 70 i 51887 hw.clk.sun50ia64ccu0.mmc2.rate = 200000000 Err codemadness.org 70 i 51888 hw.clk.sun50ia64ccu0.mmc2.parent = pllperiph02x Err codemadness.org 70 i 51889 hw.clk.sun50ia64ccu0.mmc2.parent_domain = sun50ia64ccu0 Err codemadness.org 70 i 51890 </code></pre> Err codemadness.org 70 i 51891 <hr> Err codemadness.org 70 i 51892 <p><strong>Digital Ocean</strong><br> Err codemadness.org 70 i 51893 <a href="http://do.co/bsdnow">http://do.co/bsdnow</a></p> Err codemadness.org 70 i 51894 <p>###<a href="https://www.freebsdfoundation.org/blog/bsdcan-2018-trip-report-mark-johnston/">BSDCan 2018 Trip Report: Mark Johnston</a></p> Err codemadness.org 70 i 51895 <blockquote> Err codemadness.org 70 i 51896 <p>BSDCan is a highlight of my summers: the ability to have face-to-face conversations with fellow developers and contributors is invaluable and always helps refresh my enthusiasm for FreeBSD. While in a perfect world we would all be able to communicate effectively over the Internet, it’s often noted that locking a group of developers together in a room can be a very efficient way to make progress on projects that otherwise get strung out over time, and to me this is one of the principal functions of BSD conferences. In my case I was able to fix some kgdb bugs that had been hindering me for months; get some opinions on the design of a feature I’ve been working on for FreeBSD 12.0; hear about some ongoing usage of code that I’ve worked on; and do some pair-debugging of an issue that has been affecting another developer.<br> Err codemadness.org 70 i 51897 As is tradition, on Tuesday night I dropped off my things at the university residence where I was staying, and headed straight to the Royal Oak. This year it didn’t seem quite as packed with BSD developers, but I did meet several long-time colleagues and get a chance to catch up. In particular, I chatted with Justin Hibbits and got to hear about the bring-up of FreeBSD on POWER9, a new CPU family released by IBM. Justin was able to acquire a workstation based upon this CPU, which is a great motivator for getting FreeBSD into shape on that platform. POWER9 also has some promise in the server market, so it’s important for FreeBSD to be a viable OS choice there.<br> Err codemadness.org 70 i 51898 Wednesday morning saw the beginning of the two-day FreeBSD developer summit, which precedes the conference proper. Gordon Tetlow led the summit and did an excellent job organizing things and keeping to the schedule. The first presentation was by Deb Goodkin of the FreeBSD Foundation, who gave an overview of the Foundation’s role and activities. After Deb’s presentation, present members of the FreeBSD core team discussed the work they had done over the past two years, as well as open tasks that would be handed over to the new core team upon completion of the ongoing election. Finally, Marius Strobl rounded off the day’s presentations by discussing the state and responsibilities of FreeBSD’s release engineering team.<br> Err codemadness.org 70 i 51899 One side discussion of interest to me was around the notion of tightening integration with our Bugzilla instance; at moment we do not have any good means to mark a given bug as blocking a release, making it easy for bugs to slip into releases and thus lowering our overall quality. With FreeBSD 12.0 upon us, I plan to help with the triage and fixes for known regressions before the release process begins.<br> Err codemadness.org 70 i 51900 After a break, the rest of the morning was devoted to plans for features in upcoming FreeBSD releases. This is one of my favorite discussion topics and typically takes the form of have/need/want, where developers collectively list features that they’ve developed and intend to upstream (have), features that they are missing (need), and nice-to-have features (want). This year, instead of the usual format, we listed features that are intended to ship in FreeBSD 12.0. The compiled list ended up being quite ambitious given how close we are to the beginning of the release cycle, but many individual developers (including myself) have signed up to deliver work. I’m hopeful that most, if not all of it, will make it into the release.<br> Err codemadness.org 70 i 51901 After lunch, I attended a discussion led by Matt Ahrens and Alexander Motin on OpenZFS. Of particular interest to me were some observations made regarding the relative quantity and quality of contributions made by different “camps” of OpenZFS users (illumos, FreeBSD and ZoL), and their respective track records of upstreaming enhancements to the OpenZFS project. In part due to the high pace of changes in ZoL, the definition of “upstream” for ZFS has become murky, and of late ZFS changes have been ported directly from ZoL. Alexander discussed some known problems with ZFS on FreeBSD that have been discovered through performance testing. While I’m not familiar with ZFS internals, Alexander noted that ZFS’ write path has poor SMP scalability on FreeBSD owing to some limitations in a certain kernel API called taskqueue(9). I would like to explore this problem further and perhaps integrate a relatively new alternative interface which should perform better.<br> Err codemadness.org 70 i 51902 Friday and Saturday were, of course, taken up by BSDCan talks. Friday’s keynote was by Benno Rice, who provided some history of UNIX boot systems as a precursor to some discussion of systemd and the difficulties presented by a user and developer community that actively resist change. The rest of the morning was consumed by talks and passed by quickly. First was Colin Percival’s detailed examination of where the FreeBSD kernel spends time during boot, together with an overview of some infrastructure he added to track boot times. He also provided a list of improvements that have been made since he started taking measurements, and some areas we can further improve. Colin’s existing work in this area has already brought about substantial reductions in boot time; amusingly, one of the remaining large delays comes from the keyboard driver, which contains a workaround for old PS/2 keyboards. While there seems to be general agreement that the workaround is probably no longer needed on most systems, the lingering uncertainty around this prevents us from removing the workaround. This is, sadly, a fairly typical example of an OS maintenance burden, and underscores the need to carefully document hardware bug workarounds. After this talk, I got to see some rather novel demonstrations of system tracing using dwatch, a new utility by Devin Teske, which aims to provide a user-friendly interface to DTrace. After lunch, I attended talks on netdump, a protocol for transmitting kernel dumps over a network after the system has panicked, and on a VPC implementation for FreeBSD. After the talks ended, I headed yet again to the hacker lounge and had some fruitful discussions on early microcode loading (one of my features for FreeBSD 12.0). These led me to reconsider some aspects of my approach and saved me a lot of time. Finally, I continued my debugging session from Wednesday with help from a couple of other developers.<br> Err codemadness.org 70 i 51903 Saturday’s talks included a very thorough account by Li-Wen Hsu of his work in organizing a BSD conference in Taipei last year. As one of the attendees, I had felt that the conference had gone quite smoothly and was taken aback by the number of details and pitfalls that Li-Wen enumerated during his talk. This was followed by an excellent talk by Baptiste Daroussin on the difficulties one encounters when deploying FreeBSD in new environments. Baptiste offered criticisms of a number of aspects of FreeBSD, some of which hit close to home as they involved portions of the system that I’ve worked on.<br> Err codemadness.org 70 i 51904 At the conclusion of the talks, we all gathered in the main lecture hall, where Dan led a traditional and quite lively auction for charity. I managed to snag a Pine64 board and will be getting FreeBSD installed on it the first chance I get. At the end of the auction, we all headed to ByWard for dinner, concluding yet another BSDCan.</p> Err codemadness.org 70 i 51905 </blockquote> Err codemadness.org 70 i 51906 <ul> Err codemadness.org 70 i 51907 <li>Thanks to Mark for sharing his experiences at this years BSDCan</li> Err codemadness.org 70 i 51908 </ul> Err codemadness.org 70 i 51909 <hr> Err codemadness.org 70 i 51910 <p>##News Roundup<br> Err codemadness.org 70 i 51911 <a href="https://undeadly.org/cgi?action=article&amp;sid=20180410063454">Transparent network audio with mpd &amp; sndiod</a></p> Err codemadness.org 70 i 51912 <blockquote> Err codemadness.org 70 i 51913 <p>Landry Breuil (landry@ when wearing his developer hat) wrote in…</p> Err codemadness.org 70 i 51914 </blockquote> Err codemadness.org 70 i 51915 <pre><code>I've been a huge fan of MPD over the years to centralize my audio collection, and i've been using it with the http output to stream the music as a radio on the computer i'm currently using… Err codemadness.org 70 i 51916 Err codemadness.org 70 i 51917 audio_output { Err codemadness.org 70 i 51918 type &quot;sndio&quot; Err codemadness.org 70 i 51919 name &quot;Local speakers&quot; Err codemadness.org 70 i 51920 mixer_type &quot;software&quot; Err codemadness.org 70 i 51921 } Err codemadness.org 70 i 51922 audio_output { Err codemadness.org 70 i 51923 type &quot;httpd&quot; Err codemadness.org 70 i 51924 name &quot;HTTP stream&quot; Err codemadness.org 70 i 51925 mixer_type &quot;software&quot; Err codemadness.org 70 i 51926 encoder &quot;vorbis&quot; Err codemadness.org 70 i 51927 port &quot;8000&quot; Err codemadness.org 70 i 51928 format &quot;44100:16:2&quot; Err codemadness.org 70 i 51929 } Err codemadness.org 70 i 51930 this setup worked for years, allows me to stream my home radio to $work by tunnelling the port 8000 over ssh via LocalForward, but that still has some issues: Err codemadness.org 70 i 51931 Err codemadness.org 70 i 51932 a distinct timing gap between the 'local output' (ie the speakers connected to the machine where MPD is running) and the 'http output' caused by the time it takes to reencode the stream, which is ugly when you walk through the house and have a 15s delay Err codemadness.org 70 i 51933 sometimes mplayer as a client doesn't detect the pauses in the stream and needs to be restarted Err codemadness.org 70 i 51934 i need to configure/start a client on each computer and point it at the sound server url (can do via gmpc shoutcast client plugin…) Err codemadness.org 70 i 51935 it's not that elegant to reencode the stream, and it wastes cpu cycles Err codemadness.org 70 i 51936 So the current scheme is: Err codemadness.org 70 i 51937 Err codemadness.org 70 i 51938 mpd -&gt; http output -&gt; network -&gt; mplayer -&gt; sndiod on remote machine Err codemadness.org 70 i 51939 | Err codemadness.org 70 i 51940 -&gt; sndio output -&gt; sndiod on soundserver Err codemadness.org 70 i 51941 Fiddling a little bit with mpd outputs and reading the sndio output driver, i remembered sndiod has native network support… and the mpd sndio output allows you to specify a device (it uses SIO_DEVANY by default). Err codemadness.org 70 i 51942 Err codemadness.org 70 i 51943 So in the end, it's super easy to: Err codemadness.org 70 i 51944 Err codemadness.org 70 i 51945 enable network support in sndio on the remote machine i want the audio to play by adding -L&lt;local ip&gt; to sndiod_flags (i have two audio devices, with an input coming from the webcam): Err codemadness.org 70 i 51946 sndiod_flags=&quot;-L10.246.200.10 -f rsnd/0 -f rsnd/1&quot; Err codemadness.org 70 i 51947 open pf on port 11025 from the sound server ip: Err codemadness.org 70 i 51948 pass in proto tcp from 10.246.200.1 to any port 11025 Err codemadness.org 70 i 51949 configure a new output in mpd: Err codemadness.org 70 i 51950 audio_output { Err codemadness.org 70 i 51951 type &quot;sndio&quot; Err codemadness.org 70 i 51952 name &quot;sndio on renton&quot; Err codemadness.org 70 i 51953 device &quot;snd@10.246.200.10/0&quot; Err codemadness.org 70 i 51954 mixer_type &quot;software&quot; Err codemadness.org 70 i 51955 } Err codemadness.org 70 i 51956 and enable the new output in mpd: Err codemadness.org 70 i 51957 $mpc enable 2 Err codemadness.org 70 i 51958 Output 1 (Local speakers) is disabled Err codemadness.org 70 i 51959 Output 2 (sndio on renton) is enabled Err codemadness.org 70 i 51960 Output 3 (HTTP stream) is disabled Err codemadness.org 70 i 51961 Results in a big win: no gap anymore with the local speakers, no reencoding, no need to configure a client to play the stream, and i can still probably reproduce the same scheme over ssh from $work using a RemoteForward. Err codemadness.org 70 i 51962 Err codemadness.org 70 i 51963 mpd -&gt; sndio output 2 -&gt; network -&gt; sndiod on remote machine Err codemadness.org 70 i 51964 | Err codemadness.org 70 i 51965 -&gt; sndio output 1 -&gt; sndiod on soundserver Err codemadness.org 70 i 51966 Thanks ratchov@ for sndiod :) Err codemadness.org 70 i 51967 </code></pre> Err codemadness.org 70 i 51968 <hr> Err codemadness.org 70 i 51969 <p>###<a href="https://www.mirbsd.org/permalinks/wlog-10_e20180415-tg.htm">MirBSD’s Korn Shell on Plan9 Jehanne</a></p> Err codemadness.org 70 i 51970 <blockquote> Err codemadness.org 70 i 51971 <p>Let start by saying that I’m not really a C programmer.<br> Err codemadness.org 70 i 51972 My last public contribution to a POSIX C program was a little improvement to the Snort’s react module back in 2008.<br> Err codemadness.org 70 i 51973 So while I know the C language well enough, I do not know anything about the subtleness of the standard library and I have little experience with POSIX semantics.<br> Err codemadness.org 70 i 51974 This is not a big issue with Plan 9, since the C library and compiler are not standard anyway, but with Jehanne (a Plan 9 derivative of my own) I want to build a simple, loosely coupled, system that can actually run useful free software ported from UNIX.<br> Err codemadness.org 70 i 51975 So I ported RedHat’s newlib to Jehanne on top of a new system library I wrote, LibPOSIX, that provides the necessary emulations. I wrote several test, checking they run the same on Linux and Jehanne, and then I begun looking for a real-world, battle tested, application to port first.<br> Err codemadness.org 70 i 51976 I approached MirBSD’s Korn Shell for several reason:</p> Err codemadness.org 70 i 51977 </blockquote> Err codemadness.org 70 i 51978 <ul> Err codemadness.org 70 i 51979 <li>it is simple, powerful and well written</li> Err codemadness.org 70 i 51980 <li>it has been ported to several different operating systems</li> Err codemadness.org 70 i 51981 <li>it has few dependencies</li> Err codemadness.org 70 i 51982 <li>it’s the default shell in Android, so it’s really battle tested</li> Err codemadness.org 70 i 51983 </ul> Err codemadness.org 70 i 51984 <blockquote> Err codemadness.org 70 i 51985 <p>I was very confident. I had read the POSIX standard after all! And I had a test suite!<br> Err codemadness.org 70 i 51986 I remember, I thought “Given newlib, how hard can it be?”<br> Err codemadness.org 70 i 51987 The porting begun on September 1, 2017. It was completed by tg on January 5, 2018. 125 nights later.<br> Err codemadness.org 70 i 51988 Turn out, my POSIX emulation was badly broken. Not just because of the usual bugs that any piece of C can have: I didn’t understood most POSIX semantics at all!</p> Err codemadness.org 70 i 51989 </blockquote> Err codemadness.org 70 i 51990 <hr> Err codemadness.org 70 i 51991 <p><strong>iXsystems</strong></p> Err codemadness.org 70 i 51992 <p>###<a href="https://www.romanzolotarev.com/ssg.html">Static site generator with rsync and lowdown on OpenBSD</a></p> Err codemadness.org 70 i 51993 <ul> Err codemadness.org 70 i 51994 <li> Err codemadness.org 70 i 51995 <p>ssg is a tiny POSIX-compliant shell script with few dependencies:</p> Err codemadness.org 70 i 51996 </li> Err codemadness.org 70 i 51997 <li> Err codemadness.org 70 i 51998 <p>lowdown(1) to parse markdown,</p> Err codemadness.org 70 i 51999 </li> Err codemadness.org 70 i 52000 <li> Err codemadness.org 70 i 52001 <p>rsync(1) to copy temporary files, and</p> Err codemadness.org 70 i 52002 </li> Err codemadness.org 70 i 52003 <li> Err codemadness.org 70 i 52004 <p>entr(1) to watch file changes.</p> Err codemadness.org 70 i 52005 </li> Err codemadness.org 70 i 52006 <li> Err codemadness.org 70 i 52007 <p>It generates Markdown articles to a static website.</p> Err codemadness.org 70 i 52008 </li> Err codemadness.org 70 i 52009 <li> Err codemadness.org 70 i 52010 <p>It copies the current directory to a temporary on in /tmp skipping .* and _*, renders all Markdown articles to HTML, generates RSS feed based on links from index.html, extracts the first &lt;h1&gt; tag from every article to generate a sitemap and use it as a page title, then wraps articles with a single HTML template, copies everything from the temporary directory to $DOCS/</p> Err codemadness.org 70 i 52011 </li> Err codemadness.org 70 i 52012 </ul> Err codemadness.org 70 i 52013 <blockquote> Err codemadness.org 70 i 52014 <p>Why not Jekyll or “$X”?</p> Err codemadness.org 70 i 52015 </blockquote> Err codemadness.org 70 i 52016 <ul> Err codemadness.org 70 i 52017 <li>ssg is one hundred times smaller than Jekyll.</li> Err codemadness.org 70 i 52018 </ul> Err codemadness.org 70 i 52019 <blockquote> Err codemadness.org 70 i 52020 <p>ssg and its dependencies are about 800KB combined. Compare that to 78MB of ruby with Jekyll and all the gems. So ssg can be installed in just few seconds on almost any Unix-like operating system.<br> Err codemadness.org 70 i 52021 Obviously, ssg is tailored for my needs, it has all features I need and only those I use.<br> Err codemadness.org 70 i 52022 Keeping ssg helps you to master your Unix-shell skills: awk, grep, sed, sh, cut, tr. As a web developer you work with lots of text: code and data. So you better master these wonderful tools.</p> Err codemadness.org 70 i 52023 </blockquote> Err codemadness.org 70 i 52024 <ul> Err codemadness.org 70 i 52025 <li>Performance</li> Err codemadness.org 70 i 52026 </ul> Err codemadness.org 70 i 52027 <blockquote> Err codemadness.org 70 i 52028 <p>100 pps. On modern computers ssg generates a hundred pages per second. Half of a time for markdown rendering and another half for wrapping articles into the template. I heard good static site generators work—twice as fast—at 200 pps, so there’s lots of performance that can be gained. ;)</p> Err codemadness.org 70 i 52029 </blockquote> Err codemadness.org 70 i 52030 <hr> Err codemadness.org 70 i 52031 <p>###<a href="https://www.quora.com/Why-does-FreeBSD-have-virtually-no-0-desktop-market-share/answer/Terry-Lambert">Why does FreeBSD have virtually no (0%) desktop market share?</a></p> Err codemadness.org 70 i 52032 <ul> Err codemadness.org 70 i 52033 <li>Because someone made a horrible design decision back in 1984.</li> Err codemadness.org 70 i 52034 </ul> Err codemadness.org 70 i 52035 <blockquote> Err codemadness.org 70 i 52036 <p>In absolute fairness to those involved, it was an understandable decision, both from a research perspective, and from an economic perspective, although likely not, from a technology perspective.</p> Err codemadness.org 70 i 52037 </blockquote> Err codemadness.org 70 i 52038 <ul> Err codemadness.org 70 i 52039 <li>Why and what.</li> Err codemadness.org 70 i 52040 </ul> Err codemadness.org 70 i 52041 <blockquote> Err codemadness.org 70 i 52042 <p>The decision was taken because the X Window System was intended to run on cheap hardware, and, at the time, that meant reduced functionality in the end-point device with the physical display attached to it.<br> Err codemadness.org 70 i 52043 At the same time, another force was acting to also limit X displays to display services only, rather than rolling in both window management and specific widget instances for common operational paradigms.<br> Err codemadness.org 70 i 52044 Mostly, common operational paradigms didn’t really exist for windowing systems because they also simply didn’t exist at the time, and no one really knew how people were going to use the things, and so researchers didn’t want to commit future research to a set of hard constraints.<br> Err codemadness.org 70 i 52045 So a decision was made: separate the display services from the application at the lowest level of graphics primitives currently in use at the time.</p> Err codemadness.org 70 i 52046 </blockquote> Err codemadness.org 70 i 52047 <ul> Err codemadness.org 70 i 52048 <li>The ramifications of this were pretty staggering.</li> Err codemadness.org 70 i 52049 </ul> Err codemadness.org 70 i 52050 <blockquote> Err codemadness.org 70 i 52051 <p>First, it guaranteed that all higher level graphics would live on the host side of the X protocol, instead of on the display device side of the protocol.<br> Err codemadness.org 70 i 52052 Despite a good understanding of Moore’s law, and the fact that, since no X Terminals existed at the time as hardware, but were instead running as emulations on workstations that had sufficient capability, this put the higher level GUI object libraries — referred to as “widgets” — in host libraries linked into the applications.<br> Err codemadness.org 70 i 52053 Second, it guaranteed that display organization and management paradigms would also live on the host side of the protocol — assumed, in contradiction to the previous decision, to be running on the workstation.<br> Err codemadness.org 70 i 52054 But, presumably, at some point, as lightweight X Terminals became available, to migrate to a particular host computer managing compute resource login/access services.</p> Err codemadness.org 70 i 52055 </blockquote> Err codemadness.org 70 i 52056 <ul> Err codemadness.org 70 i 52057 <li>Between these early decisions reigned chaos.</li> Err codemadness.org 70 i 52058 </ul> Err codemadness.org 70 i 52059 <blockquote> Err codemadness.org 70 i 52060 <p>Specifically, the consequences of these decisions have been with us ever since:<br> Err codemadness.org 70 i 52061 Look-and-feel are a consequence of the toolkit chosen by the application programmer, rather than a user decision which applies universally to all applications.<br> Err codemadness.org 70 i 52062 You could call this “lack of a theme”, and — although I personally despise the idea of customizing or “theming” desktops — this meant that one paradigm chosen by the user would not apply universally across all applications, no matter who had written them.<br> Err codemadness.org 70 i 52063 Window management style is a preference.<br> Err codemadness.org 70 i 52064 You could call this a more radical version of “theming” — which you will remember, I despise — but a consequence to this is that training is not universal across personnel using such systems, nor is it transferrable.<br> Err codemadness.org 70 i 52065 In other words, I can’t send someone to a class, and have them come back and use the computers in the office as a tool, with the computer itself — and the elements not specific to the application itself — disappearing into the background.<br> Err codemadness.org 70 i 52066 Both of these ultimately render an X-based system unsuitable for desktops.<br> Err codemadness.org 70 i 52067 I can’t pay once for training. Training that I do pay for does not easily and naturally translate between applications. Each new version may radically alter the desktop management paradigm into unrecognizability.</p> Err codemadness.org 70 i 52068 </blockquote> Err codemadness.org 70 i 52069 <ul> Err codemadness.org 70 i 52070 <li>Is there hope for the future?</li> Err codemadness.org 70 i 52071 </ul> Err codemadness.org 70 i 52072 <blockquote> Err codemadness.org 70 i 52073 <p>Well, the Linux community has been working on something called Wayland, and it is very promising…<br> Err codemadness.org 70 i 52074 …In the same way X was “very promising” in 1984, because, unfortunately, they are making exactly the same mistakes X made in 1984, rather than correcting them, now that we have 20/20 hindsight, and know what a mature widget library should look like.<br> Err codemadness.org 70 i 52075 So Wayland is screwing up again.<br> Err codemadness.org 70 i 52076 But hey, it only took us, what, 25 years to get from X in 1987 to Wayland in in 2012.<br> Err codemadness.org 70 i 52077 Maybe if we try again in 2037, we can get to where Windows was in 1995.</p> Err codemadness.org 70 i 52078 </blockquote> Err codemadness.org 70 i 52079 <hr> Err codemadness.org 70 i 52080 <p>##Beastie Bits</p> Err codemadness.org 70 i 52081 <ul> Err codemadness.org 70 i 52082 <li><a href="https://twitter.com/FranckPachot/status/1012606253338591232">New washing machine comes with 7 pages of open source licenses!</a></li> Err codemadness.org 70 i 52083 <li><a href="https://www.bsdjobs.com/">BSD Jobs Site</a></li> Err codemadness.org 70 i 52084 <li><a href="https://www.freebsdfoundation.org/wp-content/uploads/2018/05/FreeBSD-Foundation-May-2018-Update.pdf">FreeBSD Foundation Update, May 2018</a></li> Err codemadness.org 70 i 52085 <li><a href="http://freebsdjournal.org/">FreeBSD Journal looking for book reviewers</a></li> Err codemadness.org 70 i 52086 <li><a href="https://ramsdenj.com/2018/05/29/zedenv-zfs-boot-environment-manager.html">zedenv ZFS Boot Environment Manager</a></li> Err codemadness.org 70 i 52087 </ul> Err codemadness.org 70 i 52088 <hr> Err codemadness.org 70 i 52089 <p><strong>Tarsnap</strong></p> Err codemadness.org 70 i 52090 <p>##Feedback/Questions</p> Err codemadness.org 70 i 52091 <ul> Err codemadness.org 70 i 52092 <li>Wouter - <a href="http://dpaste.com/28959CK#wrap">Feedback</a></li> Err codemadness.org 70 i 52093 <li>Efraim - <a href="http://dpaste.com/2RZ16K8#wrap">OS Suggestion</a></li> Err codemadness.org 70 i 52094 <li>kevr - <a href="http://dpaste.com/2PX7KSP#wrap">Raspberry Pi2/FreeBSD/Router on a Stick</a></li> Err codemadness.org 70 i 52095 <li>Vanja - <a href="http://dpaste.com/0ARSVWE#wrap">Interview Suggestion</a></li> Err codemadness.org 70 i 52096 </ul> Err codemadness.org 70 i 52097 <hr> Err codemadness.org 70 i 52098 <ul> Err codemadness.org 70 i 52099 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 52100 </ul> Err codemadness.org 70 i 52101 Err codemadness.org 70 i 52102 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, tutorial, howto, guide, bsd, interview, MirBSD, korn shell, Plan9 Jehanne, sndiod, bsdcan, PineBook Err codemadness.org 70 i 52103 Err codemadness.org 70 i 52104 Fanless server setup with FreeBSD, NetBSD on pinebooks, another BSDCan trip report, transparent network audio, MirBSD's Korn Shell on Plan9, static site generators on OpenBSD, and more.

Err codemadness.org 70 i 52105 Err codemadness.org 70 i 52106

##Headlines
Err codemadness.org 70 i 52107 ###Silent Fanless FreeBSD Desktop/Server

Err codemadness.org 70 i 52108 Err codemadness.org 70 i 52109
Err codemadness.org 70 i 52110

Today I will write about silent fanless FreeBSD desktop or server computer … or NAS … or you name it, it can have multiple purposes. It also very low power solution, which also means that it will not overheat. Silent means no fans at all, even for the PSU. The format of the system should also be brought to minimum, so Mini-ITX seems best solution here.

Err codemadness.org 70 i 52111
Err codemadness.org 70 i 52112 Err codemadness.org 70 i 52113
Err codemadness.org 70 i 52114

I have chosen Intel based solutions as they are very low power (6-10W), if you prefer AMD (as I often do) the closest solution in comparable price and power is Biostar A68N-2100 motherboard with AMD E1-2100 CPU and 9W power. Of course AMD has even more low power SoC solutions but finding the Mini-ITX motherboard with decent price is not an easy task. For comparison Intel has lots of such solutions below 6W whose can be nicely filtered on the ark.intel.com page. Pity that AMD does not provide such filtration for their products. I also chosen AES instructions as storage encryption (GELI on FreeBSD) today seems as obvious as HTTPS for the web pages.

Err codemadness.org 70 i 52115
Err codemadness.org 70 i 52116 Err codemadness.org 70 i 52117 Err codemadness.org 70 i 52120 Err codemadness.org 70 i 52121
Err codemadness.org 70 i 52122

This motherboard uses Intel J3355 SoC which uses 10W and has AES instructions. It has two cores at your disposal but it also supports VT-x and EPT extensions so you can even run Bhyve on it.

Err codemadness.org 70 i 52123
Err codemadness.org 70 i 52124 Err codemadness.org 70 i 52125
    Err codemadness.org 70 i 52126
  • Components
  • Err codemadness.org 70 i 52127
Err codemadness.org 70 i 52128 Err codemadness.org 70 i 52129
Err codemadness.org 70 i 52130

Now, an example system would look like that one below, here are the components with their prices.

Err codemadness.org 70 i 52131
Err codemadness.org 70 i 52132 Err codemadness.org 70 i 52133
    Err codemadness.org 70 i 52134
  • $49 CPU/Motherboard ASRock J3355B-ITX Mini-ITX
  • Err codemadness.org 70 i 52135
  • $14 RAM Crucial 4 GB DDR3L 1.35V (low power)
  • Err codemadness.org 70 i 52136
  • $17 PSU 12V 160W Pico (internal)
  • Err codemadness.org 70 i 52137
  • $11 PSU 12V 96W FSP (external)
  • Err codemadness.org 70 i 52138
  • $5 USB 2.0 Drive 16 GB ADATA
  • Err codemadness.org 70 i 52139
  • $4 USB Wireless 802.11n
  • Err codemadness.org 70 i 52140
  • $100 TOTAL
  • Err codemadness.org 70 i 52141
Err codemadness.org 70 i 52142 Err codemadness.org 70 i 52143
Err codemadness.org 70 i 52144

The PSU 12V 160W Pico (internal) and PSU 12V 96W FSP can be purchased on aliexpress.com or ebay.com for example, at least I got them there. Here is the 12V 160W Pico (internal) PSU and its optional additional cables to power the optional HDDs. If course its one SATA power and one MOLEX power so additional MOLEX-SATA power adapter for about 1$ would be needed. Here is the 12V 96W FSP (external) PSU without the power cord.

Err codemadness.org 70 i 52145
Err codemadness.org 70 i 52146 Err codemadness.org 70 i 52147
Err codemadness.org 70 i 52148

This gives as total silent fanless system price of about $120. Its about ONE TENTH OF THE COST of the cheapest FreeNAS hardware solution available – the FreeNAS Mini (Diskless) costs $1156 also without disks.

Err codemadness.org 70 i 52149
Err codemadness.org 70 i 52150 Err codemadness.org 70 i 52151
Err codemadness.org 70 i 52152

You can put plain FreeBSD on top of it or Solaris/Illumos distribution OmniOSce which is server oriented. You can use prebuilt NAS solution based on FreeBSD like FreeNAS, NAS4Free, ZFSguru or even Solaris/Illumos based storage with napp-it appliance.

Err codemadness.org 70 i 52153
Err codemadness.org 70 i 52154 Err codemadness.org 70 i 52155


Err codemadness.org 70 i 52156 Err codemadness.org 70 i 52157

###An annotated look at a NetBSD Pinebook’s startup

Err codemadness.org 70 i 52158 Err codemadness.org 70 i 52159
    Err codemadness.org 70 i 52160
  • Pinebook is an affordable 64-bit ARM notebook. Today we’re going to take a look at the kernel output at startup and talk about what hardware support is available on NetBSD.
  • Err codemadness.org 70 i 52161
  • Photo
  • Err codemadness.org 70 i 52162
  • Pinebook comes with 2GB RAM standard. A small amount of this is reserved by the kernel and framebuffer.
  • Err codemadness.org 70 i 52163
  • NetBSD uses flattened device-tree (FDT) to enumerate devices on all Allwinner based SoCs. On a running system, you can inspect the device tree using the ofctl(8) utility:
  • Err codemadness.org 70 i 52164
  • Pinebook’s Allwinner A64 processor is based on the ARM Cortex-A53. It is designed to run at frequencies up to 1.2GHz.
  • Err codemadness.org 70 i 52165
  • The A64 is a quad core design. NetBSD’s aarch64 pmap does not yet support SMP, so three cores are disabled for now.
  • Err codemadness.org 70 i 52166
  • The interrupt controller is a standard ARM GIC-400 design.
  • Err codemadness.org 70 i 52167
  • Clock drivers for managing PLLs, module clock dividers, clock gating, software resets, etc. Information about the clock tree is exported in the hw.clk sysctl namespace (root access required to read these values).
  • Err codemadness.org 70 i 52168
Err codemadness.org 70 i 52169 Err codemadness.org 70 i 52170
# sysctl hw.clk.sun50ia64ccu0.mmc2	Err	codemadness.org	70
i 52171 hw.clk.sun50ia64ccu0.mmc2.rate = 200000000	Err	codemadness.org	70
i 52172 hw.clk.sun50ia64ccu0.mmc2.parent = pll_periph0_2x	Err	codemadness.org	70
i 52173 hw.clk.sun50ia64ccu0.mmc2.parent_domain = sun50ia64ccu0	Err	codemadness.org	70
i 52174 
Err codemadness.org 70 i 52175 Err codemadness.org 70 i 52176


Err codemadness.org 70 i 52177 Err codemadness.org 70 i 52178

Digital Ocean
Err codemadness.org 70 i 52179 http://do.co/bsdnow

Err codemadness.org 70 i 52180 Err codemadness.org 70 i 52181

###BSDCan 2018 Trip Report: Mark Johnston

Err codemadness.org 70 i 52182 Err codemadness.org 70 i 52183
Err codemadness.org 70 i 52184

BSDCan is a highlight of my summers: the ability to have face-to-face conversations with fellow developers and contributors is invaluable and always helps refresh my enthusiasm for FreeBSD. While in a perfect world we would all be able to communicate effectively over the Internet, it’s often noted that locking a group of developers together in a room can be a very efficient way to make progress on projects that otherwise get strung out over time, and to me this is one of the principal functions of BSD conferences. In my case I was able to fix some kgdb bugs that had been hindering me for months; get some opinions on the design of a feature I’ve been working on for FreeBSD 12.0; hear about some ongoing usage of code that I’ve worked on; and do some pair-debugging of an issue that has been affecting another developer.
Err codemadness.org 70 i 52185 As is tradition, on Tuesday night I dropped off my things at the university residence where I was staying, and headed straight to the Royal Oak. This year it didn’t seem quite as packed with BSD developers, but I did meet several long-time colleagues and get a chance to catch up. In particular, I chatted with Justin Hibbits and got to hear about the bring-up of FreeBSD on POWER9, a new CPU family released by IBM. Justin was able to acquire a workstation based upon this CPU, which is a great motivator for getting FreeBSD into shape on that platform. POWER9 also has some promise in the server market, so it’s important for FreeBSD to be a viable OS choice there.
Err codemadness.org 70 i 52186 Wednesday morning saw the beginning of the two-day FreeBSD developer summit, which precedes the conference proper. Gordon Tetlow led the summit and did an excellent job organizing things and keeping to the schedule. The first presentation was by Deb Goodkin of the FreeBSD Foundation, who gave an overview of the Foundation’s role and activities. After Deb’s presentation, present members of the FreeBSD core team discussed the work they had done over the past two years, as well as open tasks that would be handed over to the new core team upon completion of the ongoing election. Finally, Marius Strobl rounded off the day’s presentations by discussing the state and responsibilities of FreeBSD’s release engineering team.
Err codemadness.org 70 i 52187 One side discussion of interest to me was around the notion of tightening integration with our Bugzilla instance; at moment we do not have any good means to mark a given bug as blocking a release, making it easy for bugs to slip into releases and thus lowering our overall quality. With FreeBSD 12.0 upon us, I plan to help with the triage and fixes for known regressions before the release process begins.
Err codemadness.org 70 i 52188 After a break, the rest of the morning was devoted to plans for features in upcoming FreeBSD releases. This is one of my favorite discussion topics and typically takes the form of have/need/want, where developers collectively list features that they’ve developed and intend to upstream (have), features that they are missing (need), and nice-to-have features (want). This year, instead of the usual format, we listed features that are intended to ship in FreeBSD 12.0. The compiled list ended up being quite ambitious given how close we are to the beginning of the release cycle, but many individual developers (including myself) have signed up to deliver work. I’m hopeful that most, if not all of it, will make it into the release.
Err codemadness.org 70 i 52189 After lunch, I attended a discussion led by Matt Ahrens and Alexander Motin on OpenZFS. Of particular interest to me were some observations made regarding the relative quantity and quality of contributions made by different “camps” of OpenZFS users (illumos, FreeBSD and ZoL), and their respective track records of upstreaming enhancements to the OpenZFS project. In part due to the high pace of changes in ZoL, the definition of “upstream” for ZFS has become murky, and of late ZFS changes have been ported directly from ZoL. Alexander discussed some known problems with ZFS on FreeBSD that have been discovered through performance testing. While I’m not familiar with ZFS internals, Alexander noted that ZFS’ write path has poor SMP scalability on FreeBSD owing to some limitations in a certain kernel API called taskqueue(9). I would like to explore this problem further and perhaps integrate a relatively new alternative interface which should perform better.
Err codemadness.org 70 i 52190 Friday and Saturday were, of course, taken up by BSDCan talks. Friday’s keynote was by Benno Rice, who provided some history of UNIX boot systems as a precursor to some discussion of systemd and the difficulties presented by a user and developer community that actively resist change. The rest of the morning was consumed by talks and passed by quickly. First was Colin Percival’s detailed examination of where the FreeBSD kernel spends time during boot, together with an overview of some infrastructure he added to track boot times. He also provided a list of improvements that have been made since he started taking measurements, and some areas we can further improve. Colin’s existing work in this area has already brought about substantial reductions in boot time; amusingly, one of the remaining large delays comes from the keyboard driver, which contains a workaround for old PS/2 keyboards. While there seems to be general agreement that the workaround is probably no longer needed on most systems, the lingering uncertainty around this prevents us from removing the workaround. This is, sadly, a fairly typical example of an OS maintenance burden, and underscores the need to carefully document hardware bug workarounds. After this talk, I got to see some rather novel demonstrations of system tracing using dwatch, a new utility by Devin Teske, which aims to provide a user-friendly interface to DTrace. After lunch, I attended talks on netdump, a protocol for transmitting kernel dumps over a network after the system has panicked, and on a VPC implementation for FreeBSD. After the talks ended, I headed yet again to the hacker lounge and had some fruitful discussions on early microcode loading (one of my features for FreeBSD 12.0). These led me to reconsider some aspects of my approach and saved me a lot of time. Finally, I continued my debugging session from Wednesday with help from a couple of other developers.
Err codemadness.org 70 i 52191 Saturday’s talks included a very thorough account by Li-Wen Hsu of his work in organizing a BSD conference in Taipei last year. As one of the attendees, I had felt that the conference had gone quite smoothly and was taken aback by the number of details and pitfalls that Li-Wen enumerated during his talk. This was followed by an excellent talk by Baptiste Daroussin on the difficulties one encounters when deploying FreeBSD in new environments. Baptiste offered criticisms of a number of aspects of FreeBSD, some of which hit close to home as they involved portions of the system that I’ve worked on.
Err codemadness.org 70 i 52192 At the conclusion of the talks, we all gathered in the main lecture hall, where Dan led a traditional and quite lively auction for charity. I managed to snag a Pine64 board and will be getting FreeBSD installed on it the first chance I get. At the end of the auction, we all headed to ByWard for dinner, concluding yet another BSDCan.

Err codemadness.org 70 i 52193
Err codemadness.org 70 i 52194 Err codemadness.org 70 i 52195
    Err codemadness.org 70 i 52196
  • Thanks to Mark for sharing his experiences at this years BSDCan
  • Err codemadness.org 70 i 52197
Err codemadness.org 70 i 52198 Err codemadness.org 70 i 52199


Err codemadness.org 70 i 52200 Err codemadness.org 70 i 52201

##News Roundup
Err codemadness.org 70 i 52202 ###Transparent network audio with mpd & sndiod

Err codemadness.org 70 i 52203 Err codemadness.org 70 i 52204
Err codemadness.org 70 i 52205

Landry Breuil (landry@ when wearing his developer hat) wrote in…

Err codemadness.org 70 i 52206
Err codemadness.org 70 i 52207 Err codemadness.org 70 i 52208
I've been a huge fan of MPD over the years to centralize my audio collection, and i've been using it with the http output to stream the music as a radio on the computer i'm currently using…	Err	codemadness.org	70
i 52209 	Err	codemadness.org	70
i 52210 audio_output {	Err	codemadness.org	70
i 52211        type            "sndio"	Err	codemadness.org	70
i 52212        name            "Local speakers"	Err	codemadness.org	70
i 52213        mixer_type      "software"	Err	codemadness.org	70
i 52214 }	Err	codemadness.org	70
i 52215 audio_output {	Err	codemadness.org	70
i 52216        type            "httpd"	Err	codemadness.org	70
i 52217        name            "HTTP stream"	Err	codemadness.org	70
i 52218        mixer_type      "software"	Err	codemadness.org	70
i 52219        encoder         "vorbis"	Err	codemadness.org	70
i 52220        port            "8000"	Err	codemadness.org	70
i 52221        format          "44100:16:2"	Err	codemadness.org	70
i 52222 }	Err	codemadness.org	70
i 52223 this setup worked for years, allows me to stream my home radio to $work by tunnelling the port 8000 over ssh via LocalForward, but that still has some issues:	Err	codemadness.org	70
i 52224 	Err	codemadness.org	70
i 52225 a distinct timing gap between the 'local output' (ie the speakers connected to the machine where MPD is running) and the 'http output' caused by the time it takes to reencode the stream, which is ugly when you walk through the house and have a 15s delay	Err	codemadness.org	70
i 52226 sometimes mplayer as a client doesn't detect the pauses in the stream and needs to be restarted	Err	codemadness.org	70
i 52227 i need to configure/start a client on each computer and point it at the sound server url (can do via gmpc shoutcast client plugin…)	Err	codemadness.org	70
i 52228 it's not that elegant to reencode the stream, and it wastes cpu cycles	Err	codemadness.org	70
i 52229 So the current scheme is:	Err	codemadness.org	70
i 52230 	Err	codemadness.org	70
i 52231 mpd -> http output -> network -> mplayer -> sndiod on remote machine	Err	codemadness.org	70
i 52232 |	Err	codemadness.org	70
i 52233 -> sndio output -> sndiod on soundserver	Err	codemadness.org	70
i 52234 Fiddling a little bit with mpd outputs and reading the sndio output driver, i remembered sndiod has native network support… and the mpd sndio output allows you to specify a device (it uses SIO_DEVANY by default).	Err	codemadness.org	70
i 52235 	Err	codemadness.org	70
i 52236 So in the end, it's super easy to:	Err	codemadness.org	70
i 52237 	Err	codemadness.org	70
i 52238 enable network support in sndio on the remote machine i want the audio to play by adding -L<local ip> to sndiod_flags (i have two audio devices, with an input coming from the webcam):	Err	codemadness.org	70
i 52239 sndiod_flags="-L10.246.200.10 -f rsnd/0 -f rsnd/1"	Err	codemadness.org	70
i 52240 open pf on port 11025 from the sound server ip:	Err	codemadness.org	70
i 52241 pass in proto tcp from 10.246.200.1 to any port 11025	Err	codemadness.org	70
i 52242 configure a new output in mpd:	Err	codemadness.org	70
i 52243 audio_output {	Err	codemadness.org	70
i 52244        type            "sndio"	Err	codemadness.org	70
i 52245        name            "sndio on renton"	Err	codemadness.org	70
i 52246        device          "snd@10.246.200.10/0"	Err	codemadness.org	70
i 52247        mixer_type      "software"	Err	codemadness.org	70
i 52248 }	Err	codemadness.org	70
i 52249 and enable the new output in mpd:	Err	codemadness.org	70
i 52250 $mpc enable 2	Err	codemadness.org	70
i 52251 Output 1 (Local speakers) is disabled	Err	codemadness.org	70
i 52252 Output 2 (sndio on renton) is enabled	Err	codemadness.org	70
i 52253 Output 3 (HTTP stream) is disabled	Err	codemadness.org	70
i 52254 Results in a big win: no gap anymore with the local speakers, no reencoding, no need to configure a client to play the stream, and i can still probably reproduce the same scheme over ssh from $work using a RemoteForward.	Err	codemadness.org	70
i 52255 	Err	codemadness.org	70
i 52256 mpd -> sndio output 2 -> network -> sndiod on remote machine	Err	codemadness.org	70
i 52257 |	Err	codemadness.org	70
i 52258 -> sndio output 1 -> sndiod on soundserver	Err	codemadness.org	70
i 52259 Thanks ratchov@ for sndiod :)	Err	codemadness.org	70
i 52260 
Err codemadness.org 70 i 52261 Err codemadness.org 70 i 52262


Err codemadness.org 70 i 52263 Err codemadness.org 70 i 52264

###MirBSD’s Korn Shell on Plan9 Jehanne

Err codemadness.org 70 i 52265 Err codemadness.org 70 i 52266
Err codemadness.org 70 i 52267

Let start by saying that I’m not really a C programmer.
Err codemadness.org 70 i 52268 My last public contribution to a POSIX C program was a little improvement to the Snort’s react module back in 2008.
Err codemadness.org 70 i 52269 So while I know the C language well enough, I do not know anything about the subtleness of the standard library and I have little experience with POSIX semantics.
Err codemadness.org 70 i 52270 This is not a big issue with Plan 9, since the C library and compiler are not standard anyway, but with Jehanne (a Plan 9 derivative of my own) I want to build a simple, loosely coupled, system that can actually run useful free software ported from UNIX.
Err codemadness.org 70 i 52271 So I ported RedHat’s newlib to Jehanne on top of a new system library I wrote, LibPOSIX, that provides the necessary emulations. I wrote several test, checking they run the same on Linux and Jehanne, and then I begun looking for a real-world, battle tested, application to port first.
Err codemadness.org 70 i 52272 I approached MirBSD’s Korn Shell for several reason:

Err codemadness.org 70 i 52273
Err codemadness.org 70 i 52274 Err codemadness.org 70 i 52275
    Err codemadness.org 70 i 52276
  • it is simple, powerful and well written
  • Err codemadness.org 70 i 52277
  • it has been ported to several different operating systems
  • Err codemadness.org 70 i 52278
  • it has few dependencies
  • Err codemadness.org 70 i 52279
  • it’s the default shell in Android, so it’s really battle tested
  • Err codemadness.org 70 i 52280
Err codemadness.org 70 i 52281 Err codemadness.org 70 i 52282
Err codemadness.org 70 i 52283

I was very confident. I had read the POSIX standard after all! And I had a test suite!
Err codemadness.org 70 i 52284 I remember, I thought “Given newlib, how hard can it be?”
Err codemadness.org 70 i 52285 The porting begun on September 1, 2017. It was completed by tg on January 5, 2018. 125 nights later.
Err codemadness.org 70 i 52286 Turn out, my POSIX emulation was badly broken. Not just because of the usual bugs that any piece of C can have: I didn’t understood most POSIX semantics at all!

Err codemadness.org 70 i 52287
Err codemadness.org 70 i 52288 Err codemadness.org 70 i 52289


Err codemadness.org 70 i 52290 Err codemadness.org 70 i 52291

iXsystems

Err codemadness.org 70 i 52292 Err codemadness.org 70 i 52293

###Static site generator with rsync and lowdown on OpenBSD

Err codemadness.org 70 i 52294 Err codemadness.org 70 i 52295
    Err codemadness.org 70 i 52296
  • Err codemadness.org 70 i 52297

    ssg is a tiny POSIX-compliant shell script with few dependencies:

    Err codemadness.org 70 i 52298
  • Err codemadness.org 70 i 52299
  • Err codemadness.org 70 i 52300

    lowdown(1) to parse markdown,

    Err codemadness.org 70 i 52301
  • Err codemadness.org 70 i 52302
  • Err codemadness.org 70 i 52303

    rsync(1) to copy temporary files, and

    Err codemadness.org 70 i 52304
  • Err codemadness.org 70 i 52305
  • Err codemadness.org 70 i 52306

    entr(1) to watch file changes.

    Err codemadness.org 70 i 52307
  • Err codemadness.org 70 i 52308
  • Err codemadness.org 70 i 52309

    It generates Markdown articles to a static website.

    Err codemadness.org 70 i 52310
  • Err codemadness.org 70 i 52311
  • Err codemadness.org 70 i 52312

    It copies the current directory to a temporary on in /tmp skipping .* and _*, renders all Markdown articles to HTML, generates RSS feed based on links from index.html, extracts the first <h1> tag from every article to generate a sitemap and use it as a page title, then wraps articles with a single HTML template, copies everything from the temporary directory to $DOCS/

    Err codemadness.org 70 i 52313
  • Err codemadness.org 70 i 52314
Err codemadness.org 70 i 52315 Err codemadness.org 70 i 52316
Err codemadness.org 70 i 52317

Why not Jekyll or “$X”?

Err codemadness.org 70 i 52318
Err codemadness.org 70 i 52319 Err codemadness.org 70 i 52320
    Err codemadness.org 70 i 52321
  • ssg is one hundred times smaller than Jekyll.
  • Err codemadness.org 70 i 52322
Err codemadness.org 70 i 52323 Err codemadness.org 70 i 52324
Err codemadness.org 70 i 52325

ssg and its dependencies are about 800KB combined. Compare that to 78MB of ruby with Jekyll and all the gems. So ssg can be installed in just few seconds on almost any Unix-like operating system.
Err codemadness.org 70 i 52326 Obviously, ssg is tailored for my needs, it has all features I need and only those I use.
Err codemadness.org 70 i 52327 Keeping ssg helps you to master your Unix-shell skills: awk, grep, sed, sh, cut, tr. As a web developer you work with lots of text: code and data. So you better master these wonderful tools.

Err codemadness.org 70 i 52328
Err codemadness.org 70 i 52329 Err codemadness.org 70 i 52330
    Err codemadness.org 70 i 52331
  • Performance
  • Err codemadness.org 70 i 52332
Err codemadness.org 70 i 52333 Err codemadness.org 70 i 52334
Err codemadness.org 70 i 52335

100 pps. On modern computers ssg generates a hundred pages per second. Half of a time for markdown rendering and another half for wrapping articles into the template. I heard good static site generators work—twice as fast—at 200 pps, so there’s lots of performance that can be gained. ;)

Err codemadness.org 70 i 52336
Err codemadness.org 70 i 52337 Err codemadness.org 70 i 52338


Err codemadness.org 70 i 52339 Err codemadness.org 70 i 52340

###Why does FreeBSD have virtually no (0%) desktop market share?

Err codemadness.org 70 i 52341 Err codemadness.org 70 i 52342
    Err codemadness.org 70 i 52343
  • Because someone made a horrible design decision back in 1984.
  • Err codemadness.org 70 i 52344
Err codemadness.org 70 i 52345 Err codemadness.org 70 i 52346
Err codemadness.org 70 i 52347

In absolute fairness to those involved, it was an understandable decision, both from a research perspective, and from an economic perspective, although likely not, from a technology perspective.

Err codemadness.org 70 i 52348
Err codemadness.org 70 i 52349 Err codemadness.org 70 i 52350
    Err codemadness.org 70 i 52351
  • Why and what.
  • Err codemadness.org 70 i 52352
Err codemadness.org 70 i 52353 Err codemadness.org 70 i 52354
Err codemadness.org 70 i 52355

The decision was taken because the X Window System was intended to run on cheap hardware, and, at the time, that meant reduced functionality in the end-point device with the physical display attached to it.
Err codemadness.org 70 i 52356 At the same time, another force was acting to also limit X displays to display services only, rather than rolling in both window management and specific widget instances for common operational paradigms.
Err codemadness.org 70 i 52357 Mostly, common operational paradigms didn’t really exist for windowing systems because they also simply didn’t exist at the time, and no one really knew how people were going to use the things, and so researchers didn’t want to commit future research to a set of hard constraints.
Err codemadness.org 70 i 52358 So a decision was made: separate the display services from the application at the lowest level of graphics primitives currently in use at the time.

Err codemadness.org 70 i 52359
Err codemadness.org 70 i 52360 Err codemadness.org 70 i 52361
    Err codemadness.org 70 i 52362
  • The ramifications of this were pretty staggering.
  • Err codemadness.org 70 i 52363
Err codemadness.org 70 i 52364 Err codemadness.org 70 i 52365
Err codemadness.org 70 i 52366

First, it guaranteed that all higher level graphics would live on the host side of the X protocol, instead of on the display device side of the protocol.
Err codemadness.org 70 i 52367 Despite a good understanding of Moore’s law, and the fact that, since no X Terminals existed at the time as hardware, but were instead running as emulations on workstations that had sufficient capability, this put the higher level GUI object libraries — referred to as “widgets” — in host libraries linked into the applications.
Err codemadness.org 70 i 52368 Second, it guaranteed that display organization and management paradigms would also live on the host side of the protocol — assumed, in contradiction to the previous decision, to be running on the workstation.
Err codemadness.org 70 i 52369 But, presumably, at some point, as lightweight X Terminals became available, to migrate to a particular host computer managing compute resource login/access services.

Err codemadness.org 70 i 52370
Err codemadness.org 70 i 52371 Err codemadness.org 70 i 52372
    Err codemadness.org 70 i 52373
  • Between these early decisions reigned chaos.
  • Err codemadness.org 70 i 52374
Err codemadness.org 70 i 52375 Err codemadness.org 70 i 52376
Err codemadness.org 70 i 52377

Specifically, the consequences of these decisions have been with us ever since:
Err codemadness.org 70 i 52378 Look-and-feel are a consequence of the toolkit chosen by the application programmer, rather than a user decision which applies universally to all applications.
Err codemadness.org 70 i 52379 You could call this “lack of a theme”, and — although I personally despise the idea of customizing or “theming” desktops — this meant that one paradigm chosen by the user would not apply universally across all applications, no matter who had written them.
Err codemadness.org 70 i 52380 Window management style is a preference.
Err codemadness.org 70 i 52381 You could call this a more radical version of “theming” — which you will remember, I despise — but a consequence to this is that training is not universal across personnel using such systems, nor is it transferrable.
Err codemadness.org 70 i 52382 In other words, I can’t send someone to a class, and have them come back and use the computers in the office as a tool, with the computer itself — and the elements not specific to the application itself — disappearing into the background.
Err codemadness.org 70 i 52383 Both of these ultimately render an X-based system unsuitable for desktops.
Err codemadness.org 70 i 52384 I can’t pay once for training. Training that I do pay for does not easily and naturally translate between applications. Each new version may radically alter the desktop management paradigm into unrecognizability.

Err codemadness.org 70 i 52385
Err codemadness.org 70 i 52386 Err codemadness.org 70 i 52387
    Err codemadness.org 70 i 52388
  • Is there hope for the future?
  • Err codemadness.org 70 i 52389
Err codemadness.org 70 i 52390 Err codemadness.org 70 i 52391
Err codemadness.org 70 i 52392

Well, the Linux community has been working on something called Wayland, and it is very promising…
Err codemadness.org 70 i 52393 …In the same way X was “very promising” in 1984, because, unfortunately, they are making exactly the same mistakes X made in 1984, rather than correcting them, now that we have 20/20 hindsight, and know what a mature widget library should look like.
Err codemadness.org 70 i 52394 So Wayland is screwing up again.
Err codemadness.org 70 i 52395 But hey, it only took us, what, 25 years to get from X in 1987 to Wayland in in 2012.
Err codemadness.org 70 i 52396 Maybe if we try again in 2037, we can get to where Windows was in 1995.

Err codemadness.org 70 i 52397
Err codemadness.org 70 i 52398 Err codemadness.org 70 i 52399


Err codemadness.org 70 i 52400 Err codemadness.org 70 i 52401

##Beastie Bits

Err codemadness.org 70 i 52402 Err codemadness.org 70 i 52403 Err codemadness.org 70 i 52410 Err codemadness.org 70 i 52411


Err codemadness.org 70 i 52412 Err codemadness.org 70 i 52413

Tarsnap

Err codemadness.org 70 i 52414 Err codemadness.org 70 i 52415

##Feedback/Questions

Err codemadness.org 70 i 52416 Err codemadness.org 70 i 52417 Err codemadness.org 70 i 52423 Err codemadness.org 70 i 52424


Err codemadness.org 70 i 52425 Err codemadness.org 70 i 52426
    Err codemadness.org 70 i 52427
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 52428
]]> Err codemadness.org 70 i 52429
Err codemadness.org 70 i 52430 Err codemadness.org 70 i 52431 Fanless server setup with FreeBSD, NetBSD on pinebooks, another BSDCan trip report, transparent network audio, MirBSD's Korn Shell on Plan9, static site generators on OpenBSD, and more.

Err codemadness.org 70 i 52432 Err codemadness.org 70 i 52433

##Headlines
Err codemadness.org 70 i 52434 ###Silent Fanless FreeBSD Desktop/Server

Err codemadness.org 70 i 52435 Err codemadness.org 70 i 52436
Err codemadness.org 70 i 52437

Today I will write about silent fanless FreeBSD desktop or server computer … or NAS … or you name it, it can have multiple purposes. It also very low power solution, which also means that it will not overheat. Silent means no fans at all, even for the PSU. The format of the system should also be brought to minimum, so Mini-ITX seems best solution here.

Err codemadness.org 70 i 52438
Err codemadness.org 70 i 52439 Err codemadness.org 70 i 52440
Err codemadness.org 70 i 52441

I have chosen Intel based solutions as they are very low power (6-10W), if you prefer AMD (as I often do) the closest solution in comparable price and power is Biostar A68N-2100 motherboard with AMD E1-2100 CPU and 9W power. Of course AMD has even more low power SoC solutions but finding the Mini-ITX motherboard with decent price is not an easy task. For comparison Intel has lots of such solutions below 6W whose can be nicely filtered on the ark.intel.com page. Pity that AMD does not provide such filtration for their products. I also chosen AES instructions as storage encryption (GELI on FreeBSD) today seems as obvious as HTTPS for the web pages.

Err codemadness.org 70 i 52442
Err codemadness.org 70 i 52443 Err codemadness.org 70 i 52444 Err codemadness.org 70 i 52447 Err codemadness.org 70 i 52448
Err codemadness.org 70 i 52449

This motherboard uses Intel J3355 SoC which uses 10W and has AES instructions. It has two cores at your disposal but it also supports VT-x and EPT extensions so you can even run Bhyve on it.

Err codemadness.org 70 i 52450
Err codemadness.org 70 i 52451 Err codemadness.org 70 i 52452
    Err codemadness.org 70 i 52453
  • Components
  • Err codemadness.org 70 i 52454
Err codemadness.org 70 i 52455 Err codemadness.org 70 i 52456
Err codemadness.org 70 i 52457

Now, an example system would look like that one below, here are the components with their prices.

Err codemadness.org 70 i 52458
Err codemadness.org 70 i 52459 Err codemadness.org 70 i 52460
    Err codemadness.org 70 i 52461
  • $49 CPU/Motherboard ASRock J3355B-ITX Mini-ITX
  • Err codemadness.org 70 i 52462
  • $14 RAM Crucial 4 GB DDR3L 1.35V (low power)
  • Err codemadness.org 70 i 52463
  • $17 PSU 12V 160W Pico (internal)
  • Err codemadness.org 70 i 52464
  • $11 PSU 12V 96W FSP (external)
  • Err codemadness.org 70 i 52465
  • $5 USB 2.0 Drive 16 GB ADATA
  • Err codemadness.org 70 i 52466
  • $4 USB Wireless 802.11n
  • Err codemadness.org 70 i 52467
  • $100 TOTAL
  • Err codemadness.org 70 i 52468
Err codemadness.org 70 i 52469 Err codemadness.org 70 i 52470
Err codemadness.org 70 i 52471

The PSU 12V 160W Pico (internal) and PSU 12V 96W FSP can be purchased on aliexpress.com or ebay.com for example, at least I got them there. Here is the 12V 160W Pico (internal) PSU and its optional additional cables to power the optional HDDs. If course its one SATA power and one MOLEX power so additional MOLEX-SATA power adapter for about 1$ would be needed. Here is the 12V 96W FSP (external) PSU without the power cord.

Err codemadness.org 70 i 52472
Err codemadness.org 70 i 52473 Err codemadness.org 70 i 52474
Err codemadness.org 70 i 52475

This gives as total silent fanless system price of about $120. Its about ONE TENTH OF THE COST of the cheapest FreeNAS hardware solution available – the FreeNAS Mini (Diskless) costs $1156 also without disks.

Err codemadness.org 70 i 52476
Err codemadness.org 70 i 52477 Err codemadness.org 70 i 52478
Err codemadness.org 70 i 52479

You can put plain FreeBSD on top of it or Solaris/Illumos distribution OmniOSce which is server oriented. You can use prebuilt NAS solution based on FreeBSD like FreeNAS, NAS4Free, ZFSguru or even Solaris/Illumos based storage with napp-it appliance.

Err codemadness.org 70 i 52480
Err codemadness.org 70 i 52481 Err codemadness.org 70 i 52482


Err codemadness.org 70 i 52483 Err codemadness.org 70 i 52484

###An annotated look at a NetBSD Pinebook’s startup

Err codemadness.org 70 i 52485 Err codemadness.org 70 i 52486
    Err codemadness.org 70 i 52487
  • Pinebook is an affordable 64-bit ARM notebook. Today we’re going to take a look at the kernel output at startup and talk about what hardware support is available on NetBSD.
  • Err codemadness.org 70 i 52488
  • Photo
  • Err codemadness.org 70 i 52489
  • Pinebook comes with 2GB RAM standard. A small amount of this is reserved by the kernel and framebuffer.
  • Err codemadness.org 70 i 52490
  • NetBSD uses flattened device-tree (FDT) to enumerate devices on all Allwinner based SoCs. On a running system, you can inspect the device tree using the ofctl(8) utility:
  • Err codemadness.org 70 i 52491
  • Pinebook’s Allwinner A64 processor is based on the ARM Cortex-A53. It is designed to run at frequencies up to 1.2GHz.
  • Err codemadness.org 70 i 52492
  • The A64 is a quad core design. NetBSD’s aarch64 pmap does not yet support SMP, so three cores are disabled for now.
  • Err codemadness.org 70 i 52493
  • The interrupt controller is a standard ARM GIC-400 design.
  • Err codemadness.org 70 i 52494
  • Clock drivers for managing PLLs, module clock dividers, clock gating, software resets, etc. Information about the clock tree is exported in the hw.clk sysctl namespace (root access required to read these values).
  • Err codemadness.org 70 i 52495
Err codemadness.org 70 i 52496 Err codemadness.org 70 i 52497
# sysctl hw.clk.sun50ia64ccu0.mmc2	Err	codemadness.org	70
i 52498 hw.clk.sun50ia64ccu0.mmc2.rate = 200000000	Err	codemadness.org	70
i 52499 hw.clk.sun50ia64ccu0.mmc2.parent = pll_periph0_2x	Err	codemadness.org	70
i 52500 hw.clk.sun50ia64ccu0.mmc2.parent_domain = sun50ia64ccu0	Err	codemadness.org	70
i 52501 
Err codemadness.org 70 i 52502 Err codemadness.org 70 i 52503


Err codemadness.org 70 i 52504 Err codemadness.org 70 i 52505

Digital Ocean
Err codemadness.org 70 i 52506 http://do.co/bsdnow

Err codemadness.org 70 i 52507 Err codemadness.org 70 i 52508

###BSDCan 2018 Trip Report: Mark Johnston

Err codemadness.org 70 i 52509 Err codemadness.org 70 i 52510
Err codemadness.org 70 i 52511

BSDCan is a highlight of my summers: the ability to have face-to-face conversations with fellow developers and contributors is invaluable and always helps refresh my enthusiasm for FreeBSD. While in a perfect world we would all be able to communicate effectively over the Internet, it’s often noted that locking a group of developers together in a room can be a very efficient way to make progress on projects that otherwise get strung out over time, and to me this is one of the principal functions of BSD conferences. In my case I was able to fix some kgdb bugs that had been hindering me for months; get some opinions on the design of a feature I’ve been working on for FreeBSD 12.0; hear about some ongoing usage of code that I’ve worked on; and do some pair-debugging of an issue that has been affecting another developer.
Err codemadness.org 70 i 52512 As is tradition, on Tuesday night I dropped off my things at the university residence where I was staying, and headed straight to the Royal Oak. This year it didn’t seem quite as packed with BSD developers, but I did meet several long-time colleagues and get a chance to catch up. In particular, I chatted with Justin Hibbits and got to hear about the bring-up of FreeBSD on POWER9, a new CPU family released by IBM. Justin was able to acquire a workstation based upon this CPU, which is a great motivator for getting FreeBSD into shape on that platform. POWER9 also has some promise in the server market, so it’s important for FreeBSD to be a viable OS choice there.
Err codemadness.org 70 i 52513 Wednesday morning saw the beginning of the two-day FreeBSD developer summit, which precedes the conference proper. Gordon Tetlow led the summit and did an excellent job organizing things and keeping to the schedule. The first presentation was by Deb Goodkin of the FreeBSD Foundation, who gave an overview of the Foundation’s role and activities. After Deb’s presentation, present members of the FreeBSD core team discussed the work they had done over the past two years, as well as open tasks that would be handed over to the new core team upon completion of the ongoing election. Finally, Marius Strobl rounded off the day’s presentations by discussing the state and responsibilities of FreeBSD’s release engineering team.
Err codemadness.org 70 i 52514 One side discussion of interest to me was around the notion of tightening integration with our Bugzilla instance; at moment we do not have any good means to mark a given bug as blocking a release, making it easy for bugs to slip into releases and thus lowering our overall quality. With FreeBSD 12.0 upon us, I plan to help with the triage and fixes for known regressions before the release process begins.
Err codemadness.org 70 i 52515 After a break, the rest of the morning was devoted to plans for features in upcoming FreeBSD releases. This is one of my favorite discussion topics and typically takes the form of have/need/want, where developers collectively list features that they’ve developed and intend to upstream (have), features that they are missing (need), and nice-to-have features (want). This year, instead of the usual format, we listed features that are intended to ship in FreeBSD 12.0. The compiled list ended up being quite ambitious given how close we are to the beginning of the release cycle, but many individual developers (including myself) have signed up to deliver work. I’m hopeful that most, if not all of it, will make it into the release.
Err codemadness.org 70 i 52516 After lunch, I attended a discussion led by Matt Ahrens and Alexander Motin on OpenZFS. Of particular interest to me were some observations made regarding the relative quantity and quality of contributions made by different “camps” of OpenZFS users (illumos, FreeBSD and ZoL), and their respective track records of upstreaming enhancements to the OpenZFS project. In part due to the high pace of changes in ZoL, the definition of “upstream” for ZFS has become murky, and of late ZFS changes have been ported directly from ZoL. Alexander discussed some known problems with ZFS on FreeBSD that have been discovered through performance testing. While I’m not familiar with ZFS internals, Alexander noted that ZFS’ write path has poor SMP scalability on FreeBSD owing to some limitations in a certain kernel API called taskqueue(9). I would like to explore this problem further and perhaps integrate a relatively new alternative interface which should perform better.
Err codemadness.org 70 i 52517 Friday and Saturday were, of course, taken up by BSDCan talks. Friday’s keynote was by Benno Rice, who provided some history of UNIX boot systems as a precursor to some discussion of systemd and the difficulties presented by a user and developer community that actively resist change. The rest of the morning was consumed by talks and passed by quickly. First was Colin Percival’s detailed examination of where the FreeBSD kernel spends time during boot, together with an overview of some infrastructure he added to track boot times. He also provided a list of improvements that have been made since he started taking measurements, and some areas we can further improve. Colin’s existing work in this area has already brought about substantial reductions in boot time; amusingly, one of the remaining large delays comes from the keyboard driver, which contains a workaround for old PS/2 keyboards. While there seems to be general agreement that the workaround is probably no longer needed on most systems, the lingering uncertainty around this prevents us from removing the workaround. This is, sadly, a fairly typical example of an OS maintenance burden, and underscores the need to carefully document hardware bug workarounds. After this talk, I got to see some rather novel demonstrations of system tracing using dwatch, a new utility by Devin Teske, which aims to provide a user-friendly interface to DTrace. After lunch, I attended talks on netdump, a protocol for transmitting kernel dumps over a network after the system has panicked, and on a VPC implementation for FreeBSD. After the talks ended, I headed yet again to the hacker lounge and had some fruitful discussions on early microcode loading (one of my features for FreeBSD 12.0). These led me to reconsider some aspects of my approach and saved me a lot of time. Finally, I continued my debugging session from Wednesday with help from a couple of other developers.
Err codemadness.org 70 i 52518 Saturday’s talks included a very thorough account by Li-Wen Hsu of his work in organizing a BSD conference in Taipei last year. As one of the attendees, I had felt that the conference had gone quite smoothly and was taken aback by the number of details and pitfalls that Li-Wen enumerated during his talk. This was followed by an excellent talk by Baptiste Daroussin on the difficulties one encounters when deploying FreeBSD in new environments. Baptiste offered criticisms of a number of aspects of FreeBSD, some of which hit close to home as they involved portions of the system that I’ve worked on.
Err codemadness.org 70 i 52519 At the conclusion of the talks, we all gathered in the main lecture hall, where Dan led a traditional and quite lively auction for charity. I managed to snag a Pine64 board and will be getting FreeBSD installed on it the first chance I get. At the end of the auction, we all headed to ByWard for dinner, concluding yet another BSDCan.

Err codemadness.org 70 i 52520
Err codemadness.org 70 i 52521 Err codemadness.org 70 i 52522
    Err codemadness.org 70 i 52523
  • Thanks to Mark for sharing his experiences at this years BSDCan
  • Err codemadness.org 70 i 52524
Err codemadness.org 70 i 52525 Err codemadness.org 70 i 52526


Err codemadness.org 70 i 52527 Err codemadness.org 70 i 52528

##News Roundup
Err codemadness.org 70 i 52529 ###Transparent network audio with mpd & sndiod

Err codemadness.org 70 i 52530 Err codemadness.org 70 i 52531
Err codemadness.org 70 i 52532

Landry Breuil (landry@ when wearing his developer hat) wrote in…

Err codemadness.org 70 i 52533
Err codemadness.org 70 i 52534 Err codemadness.org 70 i 52535
I've been a huge fan of MPD over the years to centralize my audio collection, and i've been using it with the http output to stream the music as a radio on the computer i'm currently using…	Err	codemadness.org	70
i 52536 	Err	codemadness.org	70
i 52537 audio_output {	Err	codemadness.org	70
i 52538        type            "sndio"	Err	codemadness.org	70
i 52539        name            "Local speakers"	Err	codemadness.org	70
i 52540        mixer_type      "software"	Err	codemadness.org	70
i 52541 }	Err	codemadness.org	70
i 52542 audio_output {	Err	codemadness.org	70
i 52543        type            "httpd"	Err	codemadness.org	70
i 52544        name            "HTTP stream"	Err	codemadness.org	70
i 52545        mixer_type      "software"	Err	codemadness.org	70
i 52546        encoder         "vorbis"	Err	codemadness.org	70
i 52547        port            "8000"	Err	codemadness.org	70
i 52548        format          "44100:16:2"	Err	codemadness.org	70
i 52549 }	Err	codemadness.org	70
i 52550 this setup worked for years, allows me to stream my home radio to $work by tunnelling the port 8000 over ssh via LocalForward, but that still has some issues:	Err	codemadness.org	70
i 52551 	Err	codemadness.org	70
i 52552 a distinct timing gap between the 'local output' (ie the speakers connected to the machine where MPD is running) and the 'http output' caused by the time it takes to reencode the stream, which is ugly when you walk through the house and have a 15s delay	Err	codemadness.org	70
i 52553 sometimes mplayer as a client doesn't detect the pauses in the stream and needs to be restarted	Err	codemadness.org	70
i 52554 i need to configure/start a client on each computer and point it at the sound server url (can do via gmpc shoutcast client plugin…)	Err	codemadness.org	70
i 52555 it's not that elegant to reencode the stream, and it wastes cpu cycles	Err	codemadness.org	70
i 52556 So the current scheme is:	Err	codemadness.org	70
i 52557 	Err	codemadness.org	70
i 52558 mpd -> http output -> network -> mplayer -> sndiod on remote machine	Err	codemadness.org	70
i 52559 |	Err	codemadness.org	70
i 52560 -> sndio output -> sndiod on soundserver	Err	codemadness.org	70
i 52561 Fiddling a little bit with mpd outputs and reading the sndio output driver, i remembered sndiod has native network support… and the mpd sndio output allows you to specify a device (it uses SIO_DEVANY by default).	Err	codemadness.org	70
i 52562 	Err	codemadness.org	70
i 52563 So in the end, it's super easy to:	Err	codemadness.org	70
i 52564 	Err	codemadness.org	70
i 52565 enable network support in sndio on the remote machine i want the audio to play by adding -L<local ip> to sndiod_flags (i have two audio devices, with an input coming from the webcam):	Err	codemadness.org	70
i 52566 sndiod_flags="-L10.246.200.10 -f rsnd/0 -f rsnd/1"	Err	codemadness.org	70
i 52567 open pf on port 11025 from the sound server ip:	Err	codemadness.org	70
i 52568 pass in proto tcp from 10.246.200.1 to any port 11025	Err	codemadness.org	70
i 52569 configure a new output in mpd:	Err	codemadness.org	70
i 52570 audio_output {	Err	codemadness.org	70
i 52571        type            "sndio"	Err	codemadness.org	70
i 52572        name            "sndio on renton"	Err	codemadness.org	70
i 52573        device          "snd@10.246.200.10/0"	Err	codemadness.org	70
i 52574        mixer_type      "software"	Err	codemadness.org	70
i 52575 }	Err	codemadness.org	70
i 52576 and enable the new output in mpd:	Err	codemadness.org	70
i 52577 $mpc enable 2	Err	codemadness.org	70
i 52578 Output 1 (Local speakers) is disabled	Err	codemadness.org	70
i 52579 Output 2 (sndio on renton) is enabled	Err	codemadness.org	70
i 52580 Output 3 (HTTP stream) is disabled	Err	codemadness.org	70
i 52581 Results in a big win: no gap anymore with the local speakers, no reencoding, no need to configure a client to play the stream, and i can still probably reproduce the same scheme over ssh from $work using a RemoteForward.	Err	codemadness.org	70
i 52582 	Err	codemadness.org	70
i 52583 mpd -> sndio output 2 -> network -> sndiod on remote machine	Err	codemadness.org	70
i 52584 |	Err	codemadness.org	70
i 52585 -> sndio output 1 -> sndiod on soundserver	Err	codemadness.org	70
i 52586 Thanks ratchov@ for sndiod :)	Err	codemadness.org	70
i 52587 
Err codemadness.org 70 i 52588 Err codemadness.org 70 i 52589


Err codemadness.org 70 i 52590 Err codemadness.org 70 i 52591

###MirBSD’s Korn Shell on Plan9 Jehanne

Err codemadness.org 70 i 52592 Err codemadness.org 70 i 52593
Err codemadness.org 70 i 52594

Let start by saying that I’m not really a C programmer.
Err codemadness.org 70 i 52595 My last public contribution to a POSIX C program was a little improvement to the Snort’s react module back in 2008.
Err codemadness.org 70 i 52596 So while I know the C language well enough, I do not know anything about the subtleness of the standard library and I have little experience with POSIX semantics.
Err codemadness.org 70 i 52597 This is not a big issue with Plan 9, since the C library and compiler are not standard anyway, but with Jehanne (a Plan 9 derivative of my own) I want to build a simple, loosely coupled, system that can actually run useful free software ported from UNIX.
Err codemadness.org 70 i 52598 So I ported RedHat’s newlib to Jehanne on top of a new system library I wrote, LibPOSIX, that provides the necessary emulations. I wrote several test, checking they run the same on Linux and Jehanne, and then I begun looking for a real-world, battle tested, application to port first.
Err codemadness.org 70 i 52599 I approached MirBSD’s Korn Shell for several reason:

Err codemadness.org 70 i 52600
Err codemadness.org 70 i 52601 Err codemadness.org 70 i 52602
    Err codemadness.org 70 i 52603
  • it is simple, powerful and well written
  • Err codemadness.org 70 i 52604
  • it has been ported to several different operating systems
  • Err codemadness.org 70 i 52605
  • it has few dependencies
  • Err codemadness.org 70 i 52606
  • it’s the default shell in Android, so it’s really battle tested
  • Err codemadness.org 70 i 52607
Err codemadness.org 70 i 52608 Err codemadness.org 70 i 52609
Err codemadness.org 70 i 52610

I was very confident. I had read the POSIX standard after all! And I had a test suite!
Err codemadness.org 70 i 52611 I remember, I thought “Given newlib, how hard can it be?”
Err codemadness.org 70 i 52612 The porting begun on September 1, 2017. It was completed by tg on January 5, 2018. 125 nights later.
Err codemadness.org 70 i 52613 Turn out, my POSIX emulation was badly broken. Not just because of the usual bugs that any piece of C can have: I didn’t understood most POSIX semantics at all!

Err codemadness.org 70 i 52614
Err codemadness.org 70 i 52615 Err codemadness.org 70 i 52616


Err codemadness.org 70 i 52617 Err codemadness.org 70 i 52618

iXsystems

Err codemadness.org 70 i 52619 Err codemadness.org 70 i 52620

###Static site generator with rsync and lowdown on OpenBSD

Err codemadness.org 70 i 52621 Err codemadness.org 70 i 52622
    Err codemadness.org 70 i 52623
  • Err codemadness.org 70 i 52624

    ssg is a tiny POSIX-compliant shell script with few dependencies:

    Err codemadness.org 70 i 52625
  • Err codemadness.org 70 i 52626
  • Err codemadness.org 70 i 52627

    lowdown(1) to parse markdown,

    Err codemadness.org 70 i 52628
  • Err codemadness.org 70 i 52629
  • Err codemadness.org 70 i 52630

    rsync(1) to copy temporary files, and

    Err codemadness.org 70 i 52631
  • Err codemadness.org 70 i 52632
  • Err codemadness.org 70 i 52633

    entr(1) to watch file changes.

    Err codemadness.org 70 i 52634
  • Err codemadness.org 70 i 52635
  • Err codemadness.org 70 i 52636

    It generates Markdown articles to a static website.

    Err codemadness.org 70 i 52637
  • Err codemadness.org 70 i 52638
  • Err codemadness.org 70 i 52639

    It copies the current directory to a temporary on in /tmp skipping .* and _*, renders all Markdown articles to HTML, generates RSS feed based on links from index.html, extracts the first <h1> tag from every article to generate a sitemap and use it as a page title, then wraps articles with a single HTML template, copies everything from the temporary directory to $DOCS/

    Err codemadness.org 70 i 52640
  • Err codemadness.org 70 i 52641
Err codemadness.org 70 i 52642 Err codemadness.org 70 i 52643
Err codemadness.org 70 i 52644

Why not Jekyll or “$X”?

Err codemadness.org 70 i 52645
Err codemadness.org 70 i 52646 Err codemadness.org 70 i 52647
    Err codemadness.org 70 i 52648
  • ssg is one hundred times smaller than Jekyll.
  • Err codemadness.org 70 i 52649
Err codemadness.org 70 i 52650 Err codemadness.org 70 i 52651
Err codemadness.org 70 i 52652

ssg and its dependencies are about 800KB combined. Compare that to 78MB of ruby with Jekyll and all the gems. So ssg can be installed in just few seconds on almost any Unix-like operating system.
Err codemadness.org 70 i 52653 Obviously, ssg is tailored for my needs, it has all features I need and only those I use.
Err codemadness.org 70 i 52654 Keeping ssg helps you to master your Unix-shell skills: awk, grep, sed, sh, cut, tr. As a web developer you work with lots of text: code and data. So you better master these wonderful tools.

Err codemadness.org 70 i 52655
Err codemadness.org 70 i 52656 Err codemadness.org 70 i 52657
    Err codemadness.org 70 i 52658
  • Performance
  • Err codemadness.org 70 i 52659
Err codemadness.org 70 i 52660 Err codemadness.org 70 i 52661
Err codemadness.org 70 i 52662

100 pps. On modern computers ssg generates a hundred pages per second. Half of a time for markdown rendering and another half for wrapping articles into the template. I heard good static site generators work—twice as fast—at 200 pps, so there’s lots of performance that can be gained. ;)

Err codemadness.org 70 i 52663
Err codemadness.org 70 i 52664 Err codemadness.org 70 i 52665


Err codemadness.org 70 i 52666 Err codemadness.org 70 i 52667

###Why does FreeBSD have virtually no (0%) desktop market share?

Err codemadness.org 70 i 52668 Err codemadness.org 70 i 52669
    Err codemadness.org 70 i 52670
  • Because someone made a horrible design decision back in 1984.
  • Err codemadness.org 70 i 52671
Err codemadness.org 70 i 52672 Err codemadness.org 70 i 52673
Err codemadness.org 70 i 52674

In absolute fairness to those involved, it was an understandable decision, both from a research perspective, and from an economic perspective, although likely not, from a technology perspective.

Err codemadness.org 70 i 52675
Err codemadness.org 70 i 52676 Err codemadness.org 70 i 52677
    Err codemadness.org 70 i 52678
  • Why and what.
  • Err codemadness.org 70 i 52679
Err codemadness.org 70 i 52680 Err codemadness.org 70 i 52681
Err codemadness.org 70 i 52682

The decision was taken because the X Window System was intended to run on cheap hardware, and, at the time, that meant reduced functionality in the end-point device with the physical display attached to it.
Err codemadness.org 70 i 52683 At the same time, another force was acting to also limit X displays to display services only, rather than rolling in both window management and specific widget instances for common operational paradigms.
Err codemadness.org 70 i 52684 Mostly, common operational paradigms didn’t really exist for windowing systems because they also simply didn’t exist at the time, and no one really knew how people were going to use the things, and so researchers didn’t want to commit future research to a set of hard constraints.
Err codemadness.org 70 i 52685 So a decision was made: separate the display services from the application at the lowest level of graphics primitives currently in use at the time.

Err codemadness.org 70 i 52686
Err codemadness.org 70 i 52687 Err codemadness.org 70 i 52688
    Err codemadness.org 70 i 52689
  • The ramifications of this were pretty staggering.
  • Err codemadness.org 70 i 52690
Err codemadness.org 70 i 52691 Err codemadness.org 70 i 52692
Err codemadness.org 70 i 52693

First, it guaranteed that all higher level graphics would live on the host side of the X protocol, instead of on the display device side of the protocol.
Err codemadness.org 70 i 52694 Despite a good understanding of Moore’s law, and the fact that, since no X Terminals existed at the time as hardware, but were instead running as emulations on workstations that had sufficient capability, this put the higher level GUI object libraries — referred to as “widgets” — in host libraries linked into the applications.
Err codemadness.org 70 i 52695 Second, it guaranteed that display organization and management paradigms would also live on the host side of the protocol — assumed, in contradiction to the previous decision, to be running on the workstation.
Err codemadness.org 70 i 52696 But, presumably, at some point, as lightweight X Terminals became available, to migrate to a particular host computer managing compute resource login/access services.

Err codemadness.org 70 i 52697
Err codemadness.org 70 i 52698 Err codemadness.org 70 i 52699
    Err codemadness.org 70 i 52700
  • Between these early decisions reigned chaos.
  • Err codemadness.org 70 i 52701
Err codemadness.org 70 i 52702 Err codemadness.org 70 i 52703
Err codemadness.org 70 i 52704

Specifically, the consequences of these decisions have been with us ever since:
Err codemadness.org 70 i 52705 Look-and-feel are a consequence of the toolkit chosen by the application programmer, rather than a user decision which applies universally to all applications.
Err codemadness.org 70 i 52706 You could call this “lack of a theme”, and — although I personally despise the idea of customizing or “theming” desktops — this meant that one paradigm chosen by the user would not apply universally across all applications, no matter who had written them.
Err codemadness.org 70 i 52707 Window management style is a preference.
Err codemadness.org 70 i 52708 You could call this a more radical version of “theming” — which you will remember, I despise — but a consequence to this is that training is not universal across personnel using such systems, nor is it transferrable.
Err codemadness.org 70 i 52709 In other words, I can’t send someone to a class, and have them come back and use the computers in the office as a tool, with the computer itself — and the elements not specific to the application itself — disappearing into the background.
Err codemadness.org 70 i 52710 Both of these ultimately render an X-based system unsuitable for desktops.
Err codemadness.org 70 i 52711 I can’t pay once for training. Training that I do pay for does not easily and naturally translate between applications. Each new version may radically alter the desktop management paradigm into unrecognizability.

Err codemadness.org 70 i 52712
Err codemadness.org 70 i 52713 Err codemadness.org 70 i 52714
    Err codemadness.org 70 i 52715
  • Is there hope for the future?
  • Err codemadness.org 70 i 52716
Err codemadness.org 70 i 52717 Err codemadness.org 70 i 52718
Err codemadness.org 70 i 52719

Well, the Linux community has been working on something called Wayland, and it is very promising…
Err codemadness.org 70 i 52720 …In the same way X was “very promising” in 1984, because, unfortunately, they are making exactly the same mistakes X made in 1984, rather than correcting them, now that we have 20/20 hindsight, and know what a mature widget library should look like.
Err codemadness.org 70 i 52721 So Wayland is screwing up again.
Err codemadness.org 70 i 52722 But hey, it only took us, what, 25 years to get from X in 1987 to Wayland in in 2012.
Err codemadness.org 70 i 52723 Maybe if we try again in 2037, we can get to where Windows was in 1995.

Err codemadness.org 70 i 52724
Err codemadness.org 70 i 52725 Err codemadness.org 70 i 52726


Err codemadness.org 70 i 52727 Err codemadness.org 70 i 52728

##Beastie Bits

Err codemadness.org 70 i 52729 Err codemadness.org 70 i 52730 Err codemadness.org 70 i 52737 Err codemadness.org 70 i 52738


Err codemadness.org 70 i 52739 Err codemadness.org 70 i 52740

Tarsnap

Err codemadness.org 70 i 52741 Err codemadness.org 70 i 52742

##Feedback/Questions

Err codemadness.org 70 i 52743 Err codemadness.org 70 i 52744 Err codemadness.org 70 i 52750 Err codemadness.org 70 i 52751


Err codemadness.org 70 i 52752 Err codemadness.org 70 i 52753
    Err codemadness.org 70 i 52754
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 52755
]]> Err codemadness.org 70 i 52756
Err codemadness.org 70 i 52757 https://fireside.fm/player/v2/FYhhasNR+hsPCTMRf Err codemadness.org 70 i 52758 Err codemadness.org 70 i 52759 ]]> Err codemadness.org 70 i 52760 Err codemadness.org 70 i 52761
Err codemadness.org 70 i 52762 Err codemadness.org 70 i 52763 Episode 252: Goes to 11.2 | BSD Now 252 Err codemadness.org 70 i 52764 https://www.bsdnow.tv/252 Err codemadness.org 70 i 52765 http://feed.jupiter.zone/bsdnow#entry-2170 Err codemadness.org 70 i 52766 Thu, 28 Jun 2018 00:00:00 -0700 Err codemadness.org 70 i 52767 Allan Jude Err codemadness.org 70 i 52768 Err codemadness.org 70 i 52769 full Err codemadness.org 70 i 52770 Allan Jude Err codemadness.org 70 i 52771 FreeBSD 11.2 has been released, setting up an MTA behind Tor, running pfsense on DigitalOcean, one year of C, using OpenBGPD to announce VM networks, the power to serve, and a BSDCan trip report. Err codemadness.org 70 i 52772 1:34:26 Err codemadness.org 70 i 52773 no Err codemadness.org 70 i 52774 Err codemadness.org 70 i 52775 FreeBSD 11.2 has been released, setting up an MTA behind Tor, running pfsense on DigitalOcean, one year of C, using OpenBGPD to announce VM networks, the power to serve, and a BSDCan trip report. Err codemadness.org 70 i 52776 <p>##Headlines<br> Err codemadness.org 70 i 52777 <a href="https://www.freebsd.org/releases/11.2R/announce.html">FreeBSD 11.2-RELEASE Available</a></p> Err codemadness.org 70 i 52778 <ul> Err codemadness.org 70 i 52779 <li>FreeBSD 11.2 was released today (June 27th) and is ready for download</li> Err codemadness.org 70 i 52780 <li>Highlights:</li> Err codemadness.org 70 i 52781 </ul> Err codemadness.org 70 i 52782 <blockquote> Err codemadness.org 70 i 52783 <p>OpenSSH has been updated to version 7.5p1.<br> Err codemadness.org 70 i 52784 OpenSSL has been updated to version 1.0.2o.<br> Err codemadness.org 70 i 52785 The clang, llvm, lldb and compiler-rt utilities have been updated to version 6.0.0.<br> Err codemadness.org 70 i 52786 The libarchive(3) library has been updated to version 3.3.2.<br> Err codemadness.org 70 i 52787 The libxo(3) library has been updated to version 0.9.0.<br> Err codemadness.org 70 i 52788 Major Device driver updates to:</p> Err codemadness.org 70 i 52789 </blockquote> Err codemadness.org 70 i 52790 <ul> Err codemadness.org 70 i 52791 <li>cxgbe(4) – Chelsio 10/25/40/50/100 gigabit NICs – version 1.16.63.0 supports T4, T5 and T6</li> Err codemadness.org 70 i 52792 <li>ixl(4) – Intel 10 and 40 gigabit NICs, updated to version 1.9.9-k</li> Err codemadness.org 70 i 52793 <li>ng_pppoe(4) – driver has been updated to add support for user-supplied Host-Uniq tags</li> Err codemadness.org 70 i 52794 </ul> Err codemadness.org 70 i 52795 <blockquote> Err codemadness.org 70 i 52796 <p>New drivers:<br> Err codemadness.org 70 i 52797 + drm-next-kmod driver supporting integrated Intel graphics with the i915 driver.</p> Err codemadness.org 70 i 52798 </blockquote> Err codemadness.org 70 i 52799 <ul> Err codemadness.org 70 i 52800 <li>mlx5io(4) – a new IOCTL interface for Mellanox ConnectX-4 and ConnectX-5 10/20/25/40/50/56/100 gigabit NICs</li> Err codemadness.org 70 i 52801 <li>ocs_fc(4) – Emulex Fibre Channel 8/16/32 gigabit Host Adapters</li> Err codemadness.org 70 i 52802 <li>smartpqi(4) – HP Gen10 Smart Array Controller Family</li> Err codemadness.org 70 i 52803 </ul> Err codemadness.org 70 i 52804 <blockquote> Err codemadness.org 70 i 52805 <p>The newsyslog(8) utility has been updated to support RFC5424-compliant messages when rotating system logs<br> Err codemadness.org 70 i 52806 The diskinfo(8) utility has been updated to include two new flags, -s which displays the disk identity (usually the serial number), and -p which displays the physical path to the disk in a storage controller.<br> Err codemadness.org 70 i 52807 The top(1) utility has been updated to allow filtering on multiple user names when the -U flag is used<br> Err codemadness.org 70 i 52808 The umount(8) utility has been updated to include a new flag, -N, which is used to forcefully unmount an NFS mounted filesystem.<br> Err codemadness.org 70 i 52809 The ps(1) utility has been updated to display if a process is running with capsicum(4) capability mode, indicated by the flag ‘C’<br> Err codemadness.org 70 i 52810 The service(8) utility has been updated to include a new flag, -j, which is used to interact with services running within a jail(8). The argument to -j can be either the name or numeric jail ID<br> Err codemadness.org 70 i 52811 The mlx5tool(8) utility has been added, which is used to manage Connect-X 4 and Connect-X 5 devices supported by mlx5io(4).<br> Err codemadness.org 70 i 52812 The ifconfig(8) utility has been updated to include a random option, which when used with the ether option, generates a random MAC address for an interface.<br> Err codemadness.org 70 i 52813 The dwatch(1) utility has been introduced<br> Err codemadness.org 70 i 52814 The efibootmgr(8) utility has been added, which is used to manipulate the EFI boot manager.<br> Err codemadness.org 70 i 52815 The etdump(1) utility has been added, which is used to view El Torito boot catalog information.<br> Err codemadness.org 70 i 52816 The linux(4) ABI compatibility layer has been updated to include support for musl consumers.<br> Err codemadness.org 70 i 52817 The fdescfs(5) filesystem has been updated to support Linux®-specific fd(4) /dev/fd and /proc/self/fd behavior<br> Err codemadness.org 70 i 52818 Support for virtio_console(4) has been added to bhyve(4).<br> Err codemadness.org 70 i 52819 The length of GELI passphrases entered when booting a system with encrypted disks is now hidden by default. See the configuration options in geli(8) to restore the previous behavior.</p> Err codemadness.org 70 i 52820 </blockquote> Err codemadness.org 70 i 52821 <ul> Err codemadness.org 70 i 52822 <li>In addition to the usual CD/DVD ISO, Memstick, and prebuilt VM images (raw, qcow2, vhd, and vmdk), FreeBSD 11.2 is also available on: Err codemadness.org 70 i 52823 <ul> Err codemadness.org 70 i 52824 <li>Amazon EC2</li> Err codemadness.org 70 i 52825 <li>Google Compute Engine</li> Err codemadness.org 70 i 52826 <li>Hashicorp/Atlas Vagrant</li> Err codemadness.org 70 i 52827 <li>Microsoft Azure</li> Err codemadness.org 70 i 52828 </ul> Err codemadness.org 70 i 52829 </li> Err codemadness.org 70 i 52830 <li>In addition to a generic ARM64 image for devices like the Pine64 and Raspberry Pi 3, specific images are provided for: Err codemadness.org 70 i 52831 <ul> Err codemadness.org 70 i 52832 <li>GUMSTIX</li> Err codemadness.org 70 i 52833 <li>BANANAPI</li> Err codemadness.org 70 i 52834 <li>BEAGLEBONE</li> Err codemadness.org 70 i 52835 <li>CUBIEBOARD</li> Err codemadness.org 70 i 52836 <li>CUBIEBOARD2</li> Err codemadness.org 70 i 52837 <li>CUBOX-HUMMINGBOARD</li> Err codemadness.org 70 i 52838 <li>RASPBERRY PI 2</li> Err codemadness.org 70 i 52839 <li>PANDABOARD</li> Err codemadness.org 70 i 52840 <li>WANDBOARD</li> Err codemadness.org 70 i 52841 </ul> Err codemadness.org 70 i 52842 </li> Err codemadness.org 70 i 52843 <li><a href="https://www.freebsd.org/releases/11.2R/relnotes.html">Full Release Notes</a></li> Err codemadness.org 70 i 52844 </ul> Err codemadness.org 70 i 52845 <hr> Err codemadness.org 70 i 52846 <p>###<a href="https://github.com/lattera/articles/blob/master/opsec/2018-05-08_torified_mta/article.md">Setting up an MTA Behind Tor</a></p> Err codemadness.org 70 i 52847 <blockquote> Err codemadness.org 70 i 52848 <p>This article will document how to set up OpenSMTPD behind a fully Tor-ified network. Given that Tor’s DNS resolver code does not support MX record lookups, care must be taken for setting up an MTA behind a fully Tor-ified network. OpenSMTPD was chosen because it was easy to modify to force it to fall back to A/AAAA lookups when MX lookups failed with a DNS result code of NOTIMP (4).</p> Err codemadness.org 70 i 52849 </blockquote> Err codemadness.org 70 i 52850 <blockquote> Err codemadness.org 70 i 52851 <p>Note that as of 08 May 2018, the OpenSMTPD project is planning a configuration file language change. The proposed change has not landed. Once it does, this article will be updated to reflect both the old language and new.</p> Err codemadness.org 70 i 52852 </blockquote> Err codemadness.org 70 i 52853 <blockquote> Err codemadness.org 70 i 52854 <p>The reason to use an MTA behing a fully Tor-ified network is to be able to support email behind the .onion TLD. This setup will only allow us to send and receive email to and from the .onion TLD.</p> Err codemadness.org 70 i 52855 </blockquote> Err codemadness.org 70 i 52856 <ul> Err codemadness.org 70 i 52857 <li> Err codemadness.org 70 i 52858 <p>Requirements:</p> Err codemadness.org 70 i 52859 </li> Err codemadness.org 70 i 52860 <li> Err codemadness.org 70 i 52861 <p>A fully Tor-ified network</p> Err codemadness.org 70 i 52862 </li> Err codemadness.org 70 i 52863 <li> Err codemadness.org 70 i 52864 <p>HardenedBSD as the operating system</p> Err codemadness.org 70 i 52865 </li> Err codemadness.org 70 i 52866 <li> Err codemadness.org 70 i 52867 <p>A server (or VM) running HardenedBSD behind the fully Tor-ified network.</p> Err codemadness.org 70 i 52868 </li> Err codemadness.org 70 i 52869 <li> Err codemadness.org 70 i 52870 <p>/usr/ports is empty</p> Err codemadness.org 70 i 52871 </li> Err codemadness.org 70 i 52872 <li> Err codemadness.org 70 i 52873 <p>Or is already pre-populated with the HardenedBSD Ports tree</p> Err codemadness.org 70 i 52874 </li> Err codemadness.org 70 i 52875 <li> Err codemadness.org 70 i 52876 <p>Why use HardenedBSD? We get all the features of FreeBSD (ZFS, DTrace, bhyve, and jails) with enhanced security through exploit mitigations and system hardening. Tor has a very unique threat landscape and using a hardened ecosystem is crucial to mitigating risks and threats.</p> Err codemadness.org 70 i 52877 </li> Err codemadness.org 70 i 52878 </ul> Err codemadness.org 70 i 52879 <blockquote> Err codemadness.org 70 i 52880 <p>Also note that this article reflects how I’ve set up my MTA. I’ve included configuration files verbatim. You will need to replace the text that refers to my .onion domain with yours.</p> Err codemadness.org 70 i 52881 </blockquote> Err codemadness.org 70 i 52882 <blockquote> Err codemadness.org 70 i 52883 <p>On 08 May 2018, HardenedBSD’s version of OpenSMTPD just gained support for running an MTA behind Tor. The package repositories do not yet contain the patch, so we will compile OpenSMTPD from ports.</p> Err codemadness.org 70 i 52884 </blockquote> Err codemadness.org 70 i 52885 <ul> Err codemadness.org 70 i 52886 <li>Steps</li> Err codemadness.org 70 i 52887 <li>Installation</li> Err codemadness.org 70 i 52888 <li>Generating Cryptographic Key Material</li> Err codemadness.org 70 i 52889 <li>Tor Configuration</li> Err codemadness.org 70 i 52890 <li>OpenSMTPD Configuration</li> Err codemadness.org 70 i 52891 <li>Dovecot Configuration</li> Err codemadness.org 70 i 52892 <li>Testing your configuration</li> Err codemadness.org 70 i 52893 <li>Optional: Webmail Access</li> Err codemadness.org 70 i 52894 </ul> Err codemadness.org 70 i 52895 <hr> Err codemadness.org 70 i 52896 <p><strong>iXsystems</strong><br> Err codemadness.org 70 i 52897 <a href="https://www.forbes.com/sites/forbestechcouncil/2018/06/21/strings-attached-knowing-when-and-when-not-to-accept-vc-funding/#30f9f18f46ec">https://www.forbes.com/sites/forbestechcouncil/2018/06/21/strings-attached-knowing-when-and-when-not-to-accept-vc-funding/#30f9f18f46ec</a><br> Err codemadness.org 70 i 52898 <a href="https://www.ixsystems.com/blog/self-2018-recap/">https://www.ixsystems.com/blog/self-2018-recap/</a></p> Err codemadness.org 70 i 52899 <p>###<a href="https://squigly.blogspot.com/2018/02/running-pfsense-on-digitalocean-droplet.html">Running pfSense on a Digital Ocean Droplet</a></p> Err codemadness.org 70 i 52900 <blockquote> Err codemadness.org 70 i 52901 <p>I love pfSense (and opnSense, no discrimination here). I use it for just about anything, from homelab to large scale deployments and I’ll give out on any fancy &lt;enter brand name fw appliance here&gt; for a pfSense setup on a decent hardware.</p> Err codemadness.org 70 i 52902 </blockquote> Err codemadness.org 70 i 52903 <blockquote> Err codemadness.org 70 i 52904 <p>I also love DigitalOcean, if you ever used them, you know why, if you never did, head over and try, you’ll understand why.<br> Err codemadness.org 70 i 52905 &lt;shameless plug: head over to <a href="http://JupiterBroadcasting.com">JupiterBroadcasting.com</a>, the <em>best</em> technology content out there, they have coupon codes to get you started with DO&gt;.</p> Err codemadness.org 70 i 52906 </blockquote> Err codemadness.org 70 i 52907 <blockquote> Err codemadness.org 70 i 52908 <p>Unfortunately, while DO offers tremendous amount of useful distros and applications, pfSense isn’t one of them. But, where there’s a will, there’s a way, and here’s how to get pfSense up and running on DO so you can have it as the gatekeeper to your kingdom.</p> Err codemadness.org 70 i 52909 </blockquote> Err codemadness.org 70 i 52910 <blockquote> Err codemadness.org 70 i 52911 <p>Start by creating a FreeBSD droplet, choose your droplet size (for modest setups, I find the 5$ to be quite awesome):</p> Err codemadness.org 70 i 52912 </blockquote> Err codemadness.org 70 i 52913 <blockquote> Err codemadness.org 70 i 52914 <p>There are many useful things you can do with pfSense on your droplet, from OpenVPN, squid, firewalling, fancy routing, url filtering, dns black listing and much much more.</p> Err codemadness.org 70 i 52915 </blockquote> Err codemadness.org 70 i 52916 <ul> Err codemadness.org 70 i 52917 <li>One note though, before we wrap up:</li> Err codemadness.org 70 i 52918 </ul> Err codemadness.org 70 i 52919 <blockquote> Err codemadness.org 70 i 52920 <p>You have two ways to initiate the initial setup wizard of the web-configurator:<br> Err codemadness.org 70 i 52921 Spin up another droplet, log into it and browse your way to the INTERNAL ip address of the internal NIC you’ve set up. This is the long and tedious way, but it’s also somewhat safer as it eliminates the small window of risk the second method poses.<br> Err codemadness.org 70 i 52922 or<br> Err codemadness.org 70 i 52923 Once your WAN address is all setup, your pfSense is ready to accept https connection to start the initial web-configurator setup.<br> Err codemadness.org 70 i 52924 Thing is, there’s a default, well known set of credential to this initial wizard (admin:pfsense), so, there is a slight window of opportunity that someone can swoop in (assuming they know you’ve installed pfsense + your wan IP address + the exact time window between setting up the WAN interface and completing the wizard) and do &lt;enter scary thing here&gt;.</p> Err codemadness.org 70 i 52925 </blockquote> Err codemadness.org 70 i 52926 <blockquote> Err codemadness.org 70 i 52927 <p>I leave it up to you which of the path you’d like to go, either way, once you’re done with the web-configurator wizard, you’ll have a shiny new pfSense installation at your disposal running on your favorite VPS.</p> Err codemadness.org 70 i 52928 </blockquote> Err codemadness.org 70 i 52929 <blockquote> Err codemadness.org 70 i 52930 <p>Hopefully this was helpful for someone, I hope to get a similar post soon detailing how to get FreeNAS up and running on DO.<br> Err codemadness.org 70 i 52931 Many thanks to Tubsta and his blogpost as well as to Allan Jude, Kris Moore and Benedict Reuschling for their AWESOME and inspiring podcast, BSD Now.</p> Err codemadness.org 70 i 52932 </blockquote> Err codemadness.org 70 i 52933 <hr> Err codemadness.org 70 i 52934 <p>##News Roundup<br> Err codemadness.org 70 i 52935 <a href="http://floooh.github.io/2018/06/02/one-year-of-c.html">One year of C</a></p> Err codemadness.org 70 i 52936 <blockquote> Err codemadness.org 70 i 52937 <p>It’s now nearly a year that I started writing non-trivial amounts of C code again (the first sokol_gfx.h commit was on the 14-Jul-2017), so I guess it’s time for a little retrospective.</p> Err codemadness.org 70 i 52938 </blockquote> Err codemadness.org 70 i 52939 <blockquote> Err codemadness.org 70 i 52940 <p>In the beginning it was more of an experiment: I wanted to see how much I would miss some of the more useful C++ features (for instance namespaces, function overloading, ‘simple’ template code for containers, …), and whether it is possible to write non-trivial codebases in C without going mad.</p> Err codemadness.org 70 i 52941 </blockquote> Err codemadness.org 70 i 52942 <blockquote> Err codemadness.org 70 i 52943 <p>Here are all the github projects I wrote in C:</p> Err codemadness.org 70 i 52944 </blockquote> Err codemadness.org 70 i 52945 <ul> Err codemadness.org 70 i 52946 <li>sokol: a slowly growing set of platform-abstraction headers</li> Err codemadness.org 70 i 52947 <li>sokol-samples - examples for Sokol</li> Err codemadness.org 70 i 52948 <li>chips - 8-bit chip emulators</li> Err codemadness.org 70 i 52949 <li>chips-test - tests and examples for the chip- emulators, including some complete home computer emulators (minus sound)</li> Err codemadness.org 70 i 52950 </ul> Err codemadness.org 70 i 52951 <blockquote> Err codemadness.org 70 i 52952 <p>All in all these are around 32k lines of code (not including 3rd party code like flextGL and HandmadeMath). I think I wrote more C code in the recent 10 months than any other language.</p> Err codemadness.org 70 i 52953 </blockquote> Err codemadness.org 70 i 52954 <blockquote> Err codemadness.org 70 i 52955 <p>So one thing seems to be clear: yes, it’s possible to write a non-trivial amount of C code that does something useful without going mad (and it’s even quite enjoyable I might add).</p> Err codemadness.org 70 i 52956 </blockquote> Err codemadness.org 70 i 52957 <ul> Err codemadness.org 70 i 52958 <li> Err codemadness.org 70 i 52959 <p>Here’s a few things I learned:</p> Err codemadness.org 70 i 52960 </li> Err codemadness.org 70 i 52961 <li> Err codemadness.org 70 i 52962 <p>Pick the right language for a problem</p> Err codemadness.org 70 i 52963 </li> Err codemadness.org 70 i 52964 <li> Err codemadness.org 70 i 52965 <p>C is a perfect match for WebAssembly</p> Err codemadness.org 70 i 52966 </li> Err codemadness.org 70 i 52967 <li> Err codemadness.org 70 i 52968 <p>C99 is a huge improvement over C89</p> Err codemadness.org 70 i 52969 </li> Err codemadness.org 70 i 52970 <li> Err codemadness.org 70 i 52971 <p>The dangers of pointers and explicit memory management are overrated</p> Err codemadness.org 70 i 52972 </li> Err codemadness.org 70 i 52973 <li> Err codemadness.org 70 i 52974 <p>Less Boilerplate Code</p> Err codemadness.org 70 i 52975 </li> Err codemadness.org 70 i 52976 <li> Err codemadness.org 70 i 52977 <p>Less Language Feature ‘Anxiety’</p> Err codemadness.org 70 i 52978 </li> Err codemadness.org 70 i 52979 <li> Err codemadness.org 70 i 52980 <p>Conclusion</p> Err codemadness.org 70 i 52981 </li> Err codemadness.org 70 i 52982 </ul> Err codemadness.org 70 i 52983 <blockquote> Err codemadness.org 70 i 52984 <p>All in all my “C experiment” is a success. For a lot of problems, picking C over C++ may be the better choice since C is a much simpler language (btw, did you notice how there are hardly any books, conferences or discussions about C despite being a fairly popular language? Apart from the neverending bickering about undefined behaviour from the compiler people of course ;) There simply isn’t much to discuss about a language that can be learned in an afternoon.</p> Err codemadness.org 70 i 52985 </blockquote> Err codemadness.org 70 i 52986 <blockquote> Err codemadness.org 70 i 52987 <p>I don’t like some of the old POSIX or Linux APIs as much as the next guy (e.g. ioctl(), the socket API or some of the CRT library functions), but that’s an API design problem, not a language problem. It’s possible to build friendly C APIs with a bit of care and thinking, especially when C99’s designated initialization can be used (C++ should really make sure that the full C99 language can be used from inside C++ instead of continuing to wander off into an entirely different direction).</p> Err codemadness.org 70 i 52988 </blockquote> Err codemadness.org 70 i 52989 <hr> Err codemadness.org 70 i 52990 <p>###<a href="https://empt1e.blogspot.com/2018/06/configuring-openbgpd-to-announce-vms.html">Configuring OpenBGPD to announce VM’s virtual networks</a></p> Err codemadness.org 70 i 52991 <blockquote> Err codemadness.org 70 i 52992 <p>We use BGP quite heavily at work, and even though I’m not interacting with that directly, it feels like it’s something very useful to learn at least on some basic level. The most effective and fun way of learning technology is finding some practical application, so I decided to see if it could help to improve networking management for my Virtual Machines.</p> Err codemadness.org 70 i 52993 </blockquote> Err codemadness.org 70 i 52994 <blockquote> Err codemadness.org 70 i 52995 <p>My setup is fairly simple: I have a host that runs bhyve VMs and I have a desktop system from where I ssh to VMs, both hosts run FreeBSD. All VMs are connected to each other through a bridge and have a common network 10.0.1/24. The point of this exercise is to be able to ssh to these VMs from desktop without adding static routes and without adding vmhost’s external interfaces to the VMs bridge.</p> Err codemadness.org 70 i 52996 </blockquote> Err codemadness.org 70 i 52997 <blockquote> Err codemadness.org 70 i 52998 <p>I’ve installed openbgpd on both hosts and configured it like this:</p> Err codemadness.org 70 i 52999 </blockquote> Err codemadness.org 70 i 53000 <pre><code>vmhost: /usr/local/etc/bgpd.conf Err codemadness.org 70 i 53001 AS 65002 Err codemadness.org 70 i 53002 router-id 192.168.87.48 Err codemadness.org 70 i 53003 fib-update no Err codemadness.org 70 i 53004 network 10.0.1.1/24 Err codemadness.org 70 i 53005 neighbor 192.168.87.41 { Err codemadness.org 70 i 53006 descr &quot;desktop&quot; Err codemadness.org 70 i 53007 remote-as 65001 Err codemadness.org 70 i 53008 } Err codemadness.org 70 i 53009 </code></pre> Err codemadness.org 70 i 53010 <blockquote> Err codemadness.org 70 i 53011 <p>Here, router-id is set vmhost’s IP address in my home network (192.168.87/24), fib-update no is set to forbid routing table update, which I initially set for testing, but keeping it as vmhost is not supposed to learn new routes from desktop anyway. network announces my VMs network and neighbor describes my desktop box. Now the desktop box:</p> Err codemadness.org 70 i 53012 </blockquote> Err codemadness.org 70 i 53013 <pre><code>desktop: /usr/local/etc/bgpd.conf Err codemadness.org 70 i 53014 AS 65001 Err codemadness.org 70 i 53015 router-id 192.168.87.41 Err codemadness.org 70 i 53016 fib-update yes Err codemadness.org 70 i 53017 neighbor 192.168.87.48 { Err codemadness.org 70 i 53018 descr &quot;vmhost&quot; Err codemadness.org 70 i 53019 remote-as 65002 Err codemadness.org 70 i 53020 } Err codemadness.org 70 i 53021 </code></pre> Err codemadness.org 70 i 53022 <blockquote> Err codemadness.org 70 i 53023 <p>It’s pretty similar to vmhost’s bgpd.conf, but no networks are announced here, and fib-update is set to yes because the whole point is to get VM routes added. Both hosts have to have the openbgpd service enabled:</p> Err codemadness.org 70 i 53024 </blockquote> Err codemadness.org 70 i 53025 <pre><code>/etc/rc.conf.local Err codemadness.org 70 i 53026 openbgpdenable=&quot;YES&quot; Err codemadness.org 70 i 53027 </code></pre> Err codemadness.org 70 i 53028 <ul> Err codemadness.org 70 i 53029 <li>Conclusion</li> Err codemadness.org 70 i 53030 </ul> Err codemadness.org 70 i 53031 <blockquote> Err codemadness.org 70 i 53032 <p>As mentioned already, similar result could be achieved without using BGP by using either static routes or bridging interfaces differently, but the purpose of this exercise is to get some basic hands-on experience with BGP. Right now I’m looking into extending my setup in order to try more complex BGP schema. I’m thinking about adding some software switches in front of my VMs or maybe adding a second VM host (if budget allows). You’re welcome to comment if you have some ideas how to extend this setup for educational purposes in the context of BGP and networking.</p> Err codemadness.org 70 i 53033 </blockquote> Err codemadness.org 70 i 53034 <blockquote> Err codemadness.org 70 i 53035 <p>As a side note, I really like openbgpd so far. Its configuration file format is clean and simple, documentation is good, error and information messages are clear, and CLI has intuitive syntax.</p> Err codemadness.org 70 i 53036 </blockquote> Err codemadness.org 70 i 53037 <hr> Err codemadness.org 70 i 53038 <p><strong>Digital Ocean</strong></p> Err codemadness.org 70 i 53039 <p>###<a href="https://nocomplexity.com/the-power-to-serve/">The Power to Serve</a></p> Err codemadness.org 70 i 53040 <blockquote> Err codemadness.org 70 i 53041 <p>All people within the IT Industry should known where the slogan “The Power To Serve” is exposed every day to millions of people. But maybe too much wishful thinking from me. But without “The Power To Serve” the IT industry today will look totally different. Companies like Apple, Juniper, Cisco and even WatsApp would not exist in their current form.</p> Err codemadness.org 70 i 53042 </blockquote> Err codemadness.org 70 i 53043 <blockquote> Err codemadness.org 70 i 53044 <p>I provide IT architecture services to make your complex IT landscape manageable and I love to solve complex security and privacy challenges. Complex challenges where people, processes and systems are heavily interrelated. For this knowledge intensive work I often run some IT experiments. When you run experiments nowadays you have a choice:</p> Err codemadness.org 70 i 53045 </blockquote> Err codemadness.org 70 i 53046 <ul> Err codemadness.org 70 i 53047 <li>Rent some cloud based services or</li> Err codemadness.org 70 i 53048 <li>DIY (Do IT Yourself) on premise</li> Err codemadness.org 70 i 53049 </ul> Err codemadness.org 70 i 53050 <blockquote> Err codemadness.org 70 i 53051 <p>Running your own developments experiments on your own infrastructure can be time consuming. However smart automation saves time and money. And by creating your own CICD pipeline (Continuous Integration, Continuous Deployment) you stay on top of core infrastructure developments. Even hands-on. Knowing how things work from a technical ‘hands-on’ perspective gives great advantages when it comes to solving complex business IT problems. Making a clear distinguish between a business problem or IT problem is useless. Business and IT problems are related. Sometimes causal related, but more often indirect by one or more non linear feedback loops. Almost every business depends of IT systems. Bad IT means often that your customers will leave your business.</p> Err codemadness.org 70 i 53052 </blockquote> Err codemadness.org 70 i 53053 <blockquote> Err codemadness.org 70 i 53054 <p>One of the things of FeeBSD for me is still FreeBSD Jails. In 2015 I had luck to attend to a presentation of the legendary hacker Poul-Henning Kamp . Check his BSD bio to see what he has done for the FreeBSD community! FreeBSD jails are a light way to visualize your system without enormous overhead. Now that the development on Linux for LXD/LXD is more mature (lxd is the next generation system container manager on linux) there is finally again an alternative for a nice chroot Linux based system again. At least when you do not need the overhead and management complexity that comes with Kubernetes or Docker.</p> Err codemadness.org 70 i 53055 </blockquote> Err codemadness.org 70 i 53056 <blockquote> Err codemadness.org 70 i 53057 <p>FreeBSD means control and quality for me. When there is an open source package I need, I want to install it from source. It gives me more control and always some extra knowledge on how things work. So no precompiled binaries for me on my BSD systems! If a build on FreeBSD fails most of the time this is an alert regarding the quality for me.</p> Err codemadness.org 70 i 53058 </blockquote> Err codemadness.org 70 i 53059 <blockquote> Err codemadness.org 70 i 53060 <p>If a complex OSS package is not available at all in the FreeBSD ports collection there should be a reason for it. Is it really that nobody on the world wants to do this dirty maintenance work? Or is there another cause that running this software on FreeBSD is not possible…There are currently 32644 ports available on FreeBSD. So all the major programming language, databases and middleware libraries are present. The FreeBSD organization is a mature organization and since this is one of the largest OSS projects worldwide learning how this community manages to keep innovation and creates and maintains software is a good entrance for learning how complex IT systems function.</p> Err codemadness.org 70 i 53061 </blockquote> Err codemadness.org 70 i 53062 <blockquote> Err codemadness.org 70 i 53063 <p>FreeBSD is of course BSD licensed. It worked well! There is still a strong community with lots of strong commercial sponsors around the community. Of course: sometimes a GPL license makes more sense. So beside FreeBSD I also love GPL software and the rationale and principles behind it. So my hope is that maybe within the next 25 years the hard battle between BSD vs GPL churches will be more rationalized and normalized. Principles are good, but as all good IT architects know: With good principles alone you never make a good system. So use requirements and not only principles to figure out what OSS license fits your project. There is never one size fits all.</p> Err codemadness.org 70 i 53064 </blockquote> Err codemadness.org 70 i 53065 <blockquote> Err codemadness.org 70 i 53066 <p>June 19, 1993 was the day the official name for FreeBSD was agreed upon. So this blog is written to celebrate 25th anniversary of FreeBSD.</p> Err codemadness.org 70 i 53067 </blockquote> Err codemadness.org 70 i 53068 <hr> Err codemadness.org 70 i 53069 <p>###Dave’s BSDCan trip report</p> Err codemadness.org 70 i 53070 <ul> Err codemadness.org 70 i 53071 <li>So far, only one person has bothered to send in a BSDCan trip report. Our warmest thanks to Dave for doing his part.</li> Err codemadness.org 70 i 53072 </ul> Err codemadness.org 70 i 53073 <blockquote> Err codemadness.org 70 i 53074 <p>Hello guys! During the last show, you asked for a trip report regarding BSDCan 2018.<br> Err codemadness.org 70 i 53075 This was my first time attending BSDCan. However, BSDCan was my second BSD conference overall, my first being vBSDCon 2017 in Reston, VA.<br> Err codemadness.org 70 i 53076 Arriving early Thursday evening and after checking into the hotel, I headed straight to the Red Lion for the registration, picked up my badge and swag and then headed towards the ‘DMS’ building for the newbies talk. The only thing is, I couldn’t find the DMS building! Fortunately I found a BSDCan veteran who was heading there themselves. My only suggestion is to include the full building name and address on the BSDCan web site, or even a link to Google maps to help out with the navigation. The on-campus street maps didn’t have ‘DMS’ written on them anywhere. But I digress.<br> Err codemadness.org 70 i 53077 Once I made it to the newbies talk hosted by Dan Langille and Michael W Lucas, it highlighted places to meet, an overview of what is happening, details about the ‘BSDCan widow/widower tours’ and most importantly, the 6-2-1 rule!<br> Err codemadness.org 70 i 53078 The following morning, we were present with tea/coffee, muffins and other goodies to help prepare us for the day ahead.<br> Err codemadness.org 70 i 53079 The first talk, “The Tragedy of systemd” covered what systemd did wrong and how the BSD community could improve on the ideas behind it.<br> Err codemadness.org 70 i 53080 With the exception of Michael W Lucas, SSH Key Management and Kirk McKusick, The Evolution of FreeBSD Governance talk, I pretty much attended all of the ZFS talks including the lunchtime BoF session, hosted by Allan Jude. Coming from FreeNAS and being involved in the community, this is where my main interest and motivation lies. Since then I have been able to share some of that information with the FreeNAS community forums and chatroom.<br> Err codemadness.org 70 i 53081 I also attended the “Speculating about Intel” lunchtime BoF session hosted by Theo de Raddt, which proved to be “interesting”.<br> Err codemadness.org 70 i 53082 The talks ended with the wrap up session with a few words from Dan, covering the record attendance and made very clear there “was no cabal”. Followed by the the handing over of Groff the BSD goat to a new owner, thank you’s from the FreeBSD Foundation to various community committers and maintainers, finally ending with the charity auction, where a things like a Canadian $20 bill sold for $40, a signed FreeBSD Foundation shirt originally worn by George Neville-Neil, a lost laptop charger, Michael’s used gelato spoon, various books, the last cookie and more importantly, the second to last cookie!<br> Err codemadness.org 70 i 53083 After the auction, we all headed to the Red Lion for food and drinks, sponsored by iXsystems.<br> Err codemadness.org 70 i 53084 I would like to thank the BSDCan organizers, speakers and sponsors for a great conference. I will certainly hope to attend next year!<br> Err codemadness.org 70 i 53085 Regards,<br> Err codemadness.org 70 i 53086 Dave (aka m0nkey)</p> Err codemadness.org 70 i 53087 </blockquote> Err codemadness.org 70 i 53088 <ul> Err codemadness.org 70 i 53089 <li>Thanks to Dave for sharing his experiences with us and our viewers</li> Err codemadness.org 70 i 53090 </ul> Err codemadness.org 70 i 53091 <hr> Err codemadness.org 70 i 53092 <p>##Beastie Bits</p> Err codemadness.org 70 i 53093 <ul> Err codemadness.org 70 i 53094 <li><a href="https://lists.freebsd.org/pipermail/freebsd-advocacy/2008-August/003674.html">Robert Watson (from 2008) on how much FreeBSD is in Mac OS X </a></li> Err codemadness.org 70 i 53095 <li><a href="https://aloiskraus.wordpress.com/2018/06/16/why-skylakex-cpus-are-sometimes-50-slower-how-intel-has-broken-existing-code/">Why Intel Skylake CPUs are sometimes 50% slower than older CPUs</a></li> Err codemadness.org 70 i 53096 <li><a href="https://lobste.rs/s/bos5cr/practical_unix_manuals_mdoc">Kristaps Dzonsons is looking for somebody to maintain this as mentioned at this link</a></li> Err codemadness.org 70 i 53097 <li><a href="https://www.reddit.com/r/freebsd/comments/87rru4/formatting_floppy_disks_in_a_usb_floppy_disk_drive/">camcontrol(8) saves the day again! Formatting floppy disks in a USB floppy disk drive</a></li> Err codemadness.org 70 i 53098 <li><a href="https://www.reddit.com/r/openbsd_gaming/comments/898ey5/32_great_indie_games_now_playable_on_current_7/">32+ great indie games now playable on OpenBSD -current; 7 currently on sale!</a></li> Err codemadness.org 70 i 53099 <li><a href="https://bsd-pl.org/en">Warsaw BSD User Group. June 27 2018 18:30-21:00, Wheel Systems Office, Aleje Jerozolimskie 178, Warsaw</a></li> Err codemadness.org 70 i 53100 </ul> Err codemadness.org 70 i 53101 <p><strong>Tarsnap</strong></p> Err codemadness.org 70 i 53102 <p>##Feedback/Questions</p> Err codemadness.org 70 i 53103 <ul> Err codemadness.org 70 i 53104 <li>Ron - <a href="http://dpaste.com/2B6CWDM#wrap">Adding a disk to ZFS</a></li> Err codemadness.org 70 i 53105 <li>Marshall - <a href="http://dpaste.com/2W7VD6K#wrap">zfs question</a></li> Err codemadness.org 70 i 53106 <li>Thomas - <a href="http://dpaste.com/1FS7534#wrap">Allan, the myth perpetuator</a></li> Err codemadness.org 70 i 53107 <li>Ross - <a href="http://dpaste.com/1HWQWB6#wrap">ZFS IO stats per dataset</a></li> Err codemadness.org 70 i 53108 </ul> Err codemadness.org 70 i 53109 <hr> Err codemadness.org 70 i 53110 <ul> Err codemadness.org 70 i 53111 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 53112 </ul> Err codemadness.org 70 i 53113 Err codemadness.org 70 i 53114 freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, OpenBGPD, MTA, TOR, pfsense Err codemadness.org 70 i 53115 Err codemadness.org 70 i 53116 FreeBSD 11.2 has been released, setting up an MTA behind Tor, running pfsense on DigitalOcean, one year of C, using OpenBGPD to announce VM networks, the power to serve, and a BSDCan trip report.

Err codemadness.org 70 i 53117 Err codemadness.org 70 i 53118

##Headlines
Err codemadness.org 70 i 53119 ###FreeBSD 11.2-RELEASE Available

Err codemadness.org 70 i 53120 Err codemadness.org 70 i 53121
    Err codemadness.org 70 i 53122
  • FreeBSD 11.2 was released today (June 27th) and is ready for download
  • Err codemadness.org 70 i 53123
  • Highlights:
  • Err codemadness.org 70 i 53124
Err codemadness.org 70 i 53125 Err codemadness.org 70 i 53126
Err codemadness.org 70 i 53127

OpenSSH has been updated to version 7.5p1.
Err codemadness.org 70 i 53128 OpenSSL has been updated to version 1.0.2o.
Err codemadness.org 70 i 53129 The clang, llvm, lldb and compiler-rt utilities have been updated to version 6.0.0.
Err codemadness.org 70 i 53130 The libarchive(3) library has been updated to version 3.3.2.
Err codemadness.org 70 i 53131 The libxo(3) library has been updated to version 0.9.0.
Err codemadness.org 70 i 53132 Major Device driver updates to:

Err codemadness.org 70 i 53133
Err codemadness.org 70 i 53134 Err codemadness.org 70 i 53135
    Err codemadness.org 70 i 53136
  • cxgbe(4) – Chelsio 10/25/40/50/100 gigabit NICs – version 1.16.63.0 supports T4, T5 and T6
  • Err codemadness.org 70 i 53137
  • ixl(4) – Intel 10 and 40 gigabit NICs, updated to version 1.9.9-k
  • Err codemadness.org 70 i 53138
  • ng_pppoe(4) – driver has been updated to add support for user-supplied Host-Uniq tags
  • Err codemadness.org 70 i 53139
Err codemadness.org 70 i 53140 Err codemadness.org 70 i 53141
Err codemadness.org 70 i 53142

New drivers:
Err codemadness.org 70 i 53143 + drm-next-kmod driver supporting integrated Intel graphics with the i915 driver.

Err codemadness.org 70 i 53144
Err codemadness.org 70 i 53145 Err codemadness.org 70 i 53146
    Err codemadness.org 70 i 53147
  • mlx5io(4) – a new IOCTL interface for Mellanox ConnectX-4 and ConnectX-5 10/20/25/40/50/56/100 gigabit NICs
  • Err codemadness.org 70 i 53148
  • ocs_fc(4) – Emulex Fibre Channel 8/16/32 gigabit Host Adapters
  • Err codemadness.org 70 i 53149
  • smartpqi(4) – HP Gen10 Smart Array Controller Family
  • Err codemadness.org 70 i 53150
Err codemadness.org 70 i 53151 Err codemadness.org 70 i 53152
Err codemadness.org 70 i 53153

The newsyslog(8) utility has been updated to support RFC5424-compliant messages when rotating system logs
Err codemadness.org 70 i 53154 The diskinfo(8) utility has been updated to include two new flags, -s which displays the disk identity (usually the serial number), and -p which displays the physical path to the disk in a storage controller.
Err codemadness.org 70 i 53155 The top(1) utility has been updated to allow filtering on multiple user names when the -U flag is used
Err codemadness.org 70 i 53156 The umount(8) utility has been updated to include a new flag, -N, which is used to forcefully unmount an NFS mounted filesystem.
Err codemadness.org 70 i 53157 The ps(1) utility has been updated to display if a process is running with capsicum(4) capability mode, indicated by the flag ‘C’
Err codemadness.org 70 i 53158 The service(8) utility has been updated to include a new flag, -j, which is used to interact with services running within a jail(8). The argument to -j can be either the name or numeric jail ID
Err codemadness.org 70 i 53159 The mlx5tool(8) utility has been added, which is used to manage Connect-X 4 and Connect-X 5 devices supported by mlx5io(4).
Err codemadness.org 70 i 53160 The ifconfig(8) utility has been updated to include a random option, which when used with the ether option, generates a random MAC address for an interface.
Err codemadness.org 70 i 53161 The dwatch(1) utility has been introduced
Err codemadness.org 70 i 53162 The efibootmgr(8) utility has been added, which is used to manipulate the EFI boot manager.
Err codemadness.org 70 i 53163 The etdump(1) utility has been added, which is used to view El Torito boot catalog information.
Err codemadness.org 70 i 53164 The linux(4) ABI compatibility layer has been updated to include support for musl consumers.
Err codemadness.org 70 i 53165 The fdescfs(5) filesystem has been updated to support Linux®-specific fd(4) /dev/fd and /proc/self/fd behavior
Err codemadness.org 70 i 53166 Support for virtio_console(4) has been added to bhyve(4).
Err codemadness.org 70 i 53167 The length of GELI passphrases entered when booting a system with encrypted disks is now hidden by default. See the configuration options in geli(8) to restore the previous behavior.

Err codemadness.org 70 i 53168
Err codemadness.org 70 i 53169 Err codemadness.org 70 i 53170
    Err codemadness.org 70 i 53171
  • In addition to the usual CD/DVD ISO, Memstick, and prebuilt VM images (raw, qcow2, vhd, and vmdk), FreeBSD 11.2 is also available on: Err codemadness.org 70 i 53172
      Err codemadness.org 70 i 53173
    • Amazon EC2
    • Err codemadness.org 70 i 53174
    • Google Compute Engine
    • Err codemadness.org 70 i 53175
    • Hashicorp/Atlas Vagrant
    • Err codemadness.org 70 i 53176
    • Microsoft Azure
    • Err codemadness.org 70 i 53177
    Err codemadness.org 70 i 53178 Err codemadness.org 70 i 53179


  • Err codemadness.org 70 i 53180
  • In addition to a generic ARM64 image for devices like the Pine64 and Raspberry Pi 3, specific images are provided for:

    Err codemadness.org 70 i 53181 Err codemadness.org 70 i 53182
      Err codemadness.org 70 i 53183
    • GUMSTIX
    • Err codemadness.org 70 i 53184
    • BANANAPI
    • Err codemadness.org 70 i 53185
    • BEAGLEBONE
    • Err codemadness.org 70 i 53186
    • CUBIEBOARD
    • Err codemadness.org 70 i 53187
    • CUBIEBOARD2
    • Err codemadness.org 70 i 53188
    • CUBOX-HUMMINGBOARD
    • Err codemadness.org 70 i 53189
    • RASPBERRY PI 2
    • Err codemadness.org 70 i 53190
    • PANDABOARD
    • Err codemadness.org 70 i 53191
    • WANDBOARD
    • Err codemadness.org 70 i 53192
    Err codemadness.org 70 i 53193 Err codemadness.org 70 i 53194


  • Err codemadness.org 70 i 53195
  • Full Release Notes

  • Err codemadness.org 70 i 53196

Err codemadness.org 70 i 53197

Err codemadness.org 70 i 53198 Err codemadness.org 70 i 53199

###Setting up an MTA Behind Tor

Err codemadness.org 70 i 53200 Err codemadness.org 70 i 53201
Err codemadness.org 70 i 53202

This article will document how to set up OpenSMTPD behind a fully Tor-ified network. Given that Tor’s DNS resolver code does not support MX record lookups, care must be taken for setting up an MTA behind a fully Tor-ified network. OpenSMTPD was chosen because it was easy to modify to force it to fall back to A/AAAA lookups when MX lookups failed with a DNS result code of NOTIMP (4).

Err codemadness.org 70 i 53203
Err codemadness.org 70 i 53204 Err codemadness.org 70 i 53205
Err codemadness.org 70 i 53206

Note that as of 08 May 2018, the OpenSMTPD project is planning a configuration file language change. The proposed change has not landed. Once it does, this article will be updated to reflect both the old language and new.

Err codemadness.org 70 i 53207
Err codemadness.org 70 i 53208 Err codemadness.org 70 i 53209
Err codemadness.org 70 i 53210

The reason to use an MTA behing a fully Tor-ified network is to be able to support email behind the .onion TLD. This setup will only allow us to send and receive email to and from the .onion TLD.

Err codemadness.org 70 i 53211
Err codemadness.org 70 i 53212 Err codemadness.org 70 i 53213
    Err codemadness.org 70 i 53214
  • Err codemadness.org 70 i 53215

    Requirements:

    Err codemadness.org 70 i 53216
  • Err codemadness.org 70 i 53217
  • Err codemadness.org 70 i 53218

    A fully Tor-ified network

    Err codemadness.org 70 i 53219
  • Err codemadness.org 70 i 53220
  • Err codemadness.org 70 i 53221

    HardenedBSD as the operating system

    Err codemadness.org 70 i 53222
  • Err codemadness.org 70 i 53223
  • Err codemadness.org 70 i 53224

    A server (or VM) running HardenedBSD behind the fully Tor-ified network.

    Err codemadness.org 70 i 53225
  • Err codemadness.org 70 i 53226
  • Err codemadness.org 70 i 53227

    /usr/ports is empty

    Err codemadness.org 70 i 53228
  • Err codemadness.org 70 i 53229
  • Err codemadness.org 70 i 53230

    Or is already pre-populated with the HardenedBSD Ports tree

    Err codemadness.org 70 i 53231
  • Err codemadness.org 70 i 53232
  • Err codemadness.org 70 i 53233

    Why use HardenedBSD? We get all the features of FreeBSD (ZFS, DTrace, bhyve, and jails) with enhanced security through exploit mitigations and system hardening. Tor has a very unique threat landscape and using a hardened ecosystem is crucial to mitigating risks and threats.

    Err codemadness.org 70 i 53234
  • Err codemadness.org 70 i 53235
Err codemadness.org 70 i 53236 Err codemadness.org 70 i 53237
Err codemadness.org 70 i 53238

Also note that this article reflects how I’ve set up my MTA. I’ve included configuration files verbatim. You will need to replace the text that refers to my .onion domain with yours.

Err codemadness.org 70 i 53239
Err codemadness.org 70 i 53240 Err codemadness.org 70 i 53241
Err codemadness.org 70 i 53242

On 08 May 2018, HardenedBSD’s version of OpenSMTPD just gained support for running an MTA behind Tor. The package repositories do not yet contain the patch, so we will compile OpenSMTPD from ports.

Err codemadness.org 70 i 53243
Err codemadness.org 70 i 53244 Err codemadness.org 70 i 53245
    Err codemadness.org 70 i 53246
  • Steps
  • Err codemadness.org 70 i 53247
  • Installation
  • Err codemadness.org 70 i 53248
  • Generating Cryptographic Key Material
  • Err codemadness.org 70 i 53249
  • Tor Configuration
  • Err codemadness.org 70 i 53250
  • OpenSMTPD Configuration
  • Err codemadness.org 70 i 53251
  • Dovecot Configuration
  • Err codemadness.org 70 i 53252
  • Testing your configuration
  • Err codemadness.org 70 i 53253
  • Optional: Webmail Access
  • Err codemadness.org 70 i 53254
Err codemadness.org 70 i 53255 Err codemadness.org 70 i 53256


Err codemadness.org 70 i 53257 Err codemadness.org 70 i 53258

iXsystems
Err codemadness.org 70 i 53259 https://www.forbes.com/sites/forbestechcouncil/2018/06/21/strings-attached-knowing-when-and-when-not-to-accept-vc-funding/#30f9f18f46ec
Err codemadness.org 70 i 53260 https://www.ixsystems.com/blog/self-2018-recap/

Err codemadness.org 70 i 53261 Err codemadness.org 70 i 53262

###Running pfSense on a Digital Ocean Droplet

Err codemadness.org 70 i 53263 Err codemadness.org 70 i 53264
Err codemadness.org 70 i 53265

I love pfSense (and opnSense, no discrimination here). I use it for just about anything, from homelab to large scale deployments and I’ll give out on any fancy <enter brand name fw appliance here> for a pfSense setup on a decent hardware.

Err codemadness.org 70 i 53266
Err codemadness.org 70 i 53267 Err codemadness.org 70 i 53268
Err codemadness.org 70 i 53269

I also love DigitalOcean, if you ever used them, you know why, if you never did, head over and try, you’ll understand why.
Err codemadness.org 70 i 53270 <shameless plug: head over to JupiterBroadcasting.com, the best technology content out there, they have coupon codes to get you started with DO>.

Err codemadness.org 70 i 53271
Err codemadness.org 70 i 53272 Err codemadness.org 70 i 53273
Err codemadness.org 70 i 53274

Unfortunately, while DO offers tremendous amount of useful distros and applications, pfSense isn’t one of them. But, where there’s a will, there’s a way, and here’s how to get pfSense up and running on DO so you can have it as the gatekeeper to your kingdom.

Err codemadness.org 70 i 53275
Err codemadness.org 70 i 53276 Err codemadness.org 70 i 53277
Err codemadness.org 70 i 53278

Start by creating a FreeBSD droplet, choose your droplet size (for modest setups, I find the 5$ to be quite awesome):

Err codemadness.org 70 i 53279
Err codemadness.org 70 i 53280 Err codemadness.org 70 i 53281
Err codemadness.org 70 i 53282

There are many useful things you can do with pfSense on your droplet, from OpenVPN, squid, firewalling, fancy routing, url filtering, dns black listing and much much more.

Err codemadness.org 70 i 53283
Err codemadness.org 70 i 53284 Err codemadness.org 70 i 53285
    Err codemadness.org 70 i 53286
  • One note though, before we wrap up:
  • Err codemadness.org 70 i 53287
Err codemadness.org 70 i 53288 Err codemadness.org 70 i 53289
Err codemadness.org 70 i 53290

You have two ways to initiate the initial setup wizard of the web-configurator:
Err codemadness.org 70 i 53291 Spin up another droplet, log into it and browse your way to the INTERNAL ip address of the internal NIC you’ve set up. This is the long and tedious way, but it’s also somewhat safer as it eliminates the small window of risk the second method poses.
Err codemadness.org 70 i 53292 or
Err codemadness.org 70 i 53293 Once your WAN address is all setup, your pfSense is ready to accept https connection to start the initial web-configurator setup.
Err codemadness.org 70 i 53294 Thing is, there’s a default, well known set of credential to this initial wizard (admin:pfsense), so, there is a slight window of opportunity that someone can swoop in (assuming they know you’ve installed pfsense + your wan IP address + the exact time window between setting up the WAN interface and completing the wizard) and do <enter scary thing here>.

Err codemadness.org 70 i 53295
Err codemadness.org 70 i 53296 Err codemadness.org 70 i 53297
Err codemadness.org 70 i 53298

I leave it up to you which of the path you’d like to go, either way, once you’re done with the web-configurator wizard, you’ll have a shiny new pfSense installation at your disposal running on your favorite VPS.

Err codemadness.org 70 i 53299
Err codemadness.org 70 i 53300 Err codemadness.org 70 i 53301
Err codemadness.org 70 i 53302

Hopefully this was helpful for someone, I hope to get a similar post soon detailing how to get FreeNAS up and running on DO.
Err codemadness.org 70 i 53303 Many thanks to Tubsta and his blogpost as well as to Allan Jude, Kris Moore and Benedict Reuschling for their AWESOME and inspiring podcast, BSD Now.

Err codemadness.org 70 i 53304
Err codemadness.org 70 i 53305 Err codemadness.org 70 i 53306


Err codemadness.org 70 i 53307 Err codemadness.org 70 i 53308

##News Roundup
Err codemadness.org 70 i 53309 ###One year of C

Err codemadness.org 70 i 53310 Err codemadness.org 70 i 53311
Err codemadness.org 70 i 53312

It’s now nearly a year that I started writing non-trivial amounts of C code again (the first sokol_gfx.h commit was on the 14-Jul-2017), so I guess it’s time for a little retrospective.

Err codemadness.org 70 i 53313
Err codemadness.org 70 i 53314 Err codemadness.org 70 i 53315
Err codemadness.org 70 i 53316

In the beginning it was more of an experiment: I wanted to see how much I would miss some of the more useful C++ features (for instance namespaces, function overloading, ‘simple’ template code for containers, …), and whether it is possible to write non-trivial codebases in C without going mad.

Err codemadness.org 70 i 53317
Err codemadness.org 70 i 53318 Err codemadness.org 70 i 53319
Err codemadness.org 70 i 53320

Here are all the github projects I wrote in C:

Err codemadness.org 70 i 53321
Err codemadness.org 70 i 53322 Err codemadness.org 70 i 53323
    Err codemadness.org 70 i 53324
  • sokol: a slowly growing set of platform-abstraction headers
  • Err codemadness.org 70 i 53325
  • sokol-samples - examples for Sokol
  • Err codemadness.org 70 i 53326
  • chips - 8-bit chip emulators
  • Err codemadness.org 70 i 53327
  • chips-test - tests and examples for the chip- emulators, including some complete home computer emulators (minus sound)
  • Err codemadness.org 70 i 53328
Err codemadness.org 70 i 53329 Err codemadness.org 70 i 53330
Err codemadness.org 70 i 53331

All in all these are around 32k lines of code (not including 3rd party code like flextGL and HandmadeMath). I think I wrote more C code in the recent 10 months than any other language.

Err codemadness.org 70 i 53332
Err codemadness.org 70 i 53333 Err codemadness.org 70 i 53334
Err codemadness.org 70 i 53335

So one thing seems to be clear: yes, it’s possible to write a non-trivial amount of C code that does something useful without going mad (and it’s even quite enjoyable I might add).

Err codemadness.org 70 i 53336
Err codemadness.org 70 i 53337 Err codemadness.org 70 i 53338
    Err codemadness.org 70 i 53339
  • Err codemadness.org 70 i 53340

    Here’s a few things I learned:

    Err codemadness.org 70 i 53341
  • Err codemadness.org 70 i 53342
  • Err codemadness.org 70 i 53343

    Pick the right language for a problem

    Err codemadness.org 70 i 53344
  • Err codemadness.org 70 i 53345
  • Err codemadness.org 70 i 53346

    C is a perfect match for WebAssembly

    Err codemadness.org 70 i 53347
  • Err codemadness.org 70 i 53348
  • Err codemadness.org 70 i 53349

    C99 is a huge improvement over C89

    Err codemadness.org 70 i 53350
  • Err codemadness.org 70 i 53351
  • Err codemadness.org 70 i 53352

    The dangers of pointers and explicit memory management are overrated

    Err codemadness.org 70 i 53353
  • Err codemadness.org 70 i 53354
  • Err codemadness.org 70 i 53355

    Less Boilerplate Code

    Err codemadness.org 70 i 53356
  • Err codemadness.org 70 i 53357
  • Err codemadness.org 70 i 53358

    Less Language Feature ‘Anxiety’

    Err codemadness.org 70 i 53359
  • Err codemadness.org 70 i 53360
  • Err codemadness.org 70 i 53361

    Conclusion

    Err codemadness.org 70 i 53362
  • Err codemadness.org 70 i 53363
Err codemadness.org 70 i 53364 Err codemadness.org 70 i 53365
Err codemadness.org 70 i 53366

All in all my “C experiment” is a success. For a lot of problems, picking C over C++ may be the better choice since C is a much simpler language (btw, did you notice how there are hardly any books, conferences or discussions about C despite being a fairly popular language? Apart from the neverending bickering about undefined behaviour from the compiler people of course ;) There simply isn’t much to discuss about a language that can be learned in an afternoon.

Err codemadness.org 70 i 53367
Err codemadness.org 70 i 53368 Err codemadness.org 70 i 53369
Err codemadness.org 70 i 53370

I don’t like some of the old POSIX or Linux APIs as much as the next guy (e.g. ioctl(), the socket API or some of the CRT library functions), but that’s an API design problem, not a language problem. It’s possible to build friendly C APIs with a bit of care and thinking, especially when C99’s designated initialization can be used (C++ should really make sure that the full C99 language can be used from inside C++ instead of continuing to wander off into an entirely different direction).

Err codemadness.org 70 i 53371
Err codemadness.org 70 i 53372 Err codemadness.org 70 i 53373


Err codemadness.org 70 i 53374 Err codemadness.org 70 i 53375

###Configuring OpenBGPD to announce VM’s virtual networks

Err codemadness.org 70 i 53376 Err codemadness.org 70 i 53377
Err codemadness.org 70 i 53378

We use BGP quite heavily at work, and even though I’m not interacting with that directly, it feels like it’s something very useful to learn at least on some basic level. The most effective and fun way of learning technology is finding some practical application, so I decided to see if it could help to improve networking management for my Virtual Machines.

Err codemadness.org 70 i 53379
Err codemadness.org 70 i 53380 Err codemadness.org 70 i 53381
Err codemadness.org 70 i 53382

My setup is fairly simple: I have a host that runs bhyve VMs and I have a desktop system from where I ssh to VMs, both hosts run FreeBSD. All VMs are connected to each other through a bridge and have a common network 10.0.1/24. The point of this exercise is to be able to ssh to these VMs from desktop without adding static routes and without adding vmhost’s external interfaces to the VMs bridge.

Err codemadness.org 70 i 53383
Err codemadness.org 70 i 53384 Err codemadness.org 70 i 53385
Err codemadness.org 70 i 53386

I’ve installed openbgpd on both hosts and configured it like this:

Err codemadness.org 70 i 53387
Err codemadness.org 70 i 53388 Err codemadness.org 70 i 53389
vmhost: /usr/local/etc/bgpd.conf	Err	codemadness.org	70
i 53390 AS 65002	Err	codemadness.org	70
i 53391 router-id 192.168.87.48	Err	codemadness.org	70
i 53392 fib-update no	Err	codemadness.org	70
i 53393 	Err	codemadness.org	70
i 53394 network 10.0.1.1/24	Err	codemadness.org	70
i 53395 	Err	codemadness.org	70
i 53396 neighbor 192.168.87.41 {	Err	codemadness.org	70
i 53397     descr "desktop"	Err	codemadness.org	70
i 53398     remote-as 65001	Err	codemadness.org	70
i 53399 }	Err	codemadness.org	70
i 53400 
Err codemadness.org 70 i 53401 Err codemadness.org 70 i 53402
Err codemadness.org 70 i 53403

Here, router-id is set vmhost’s IP address in my home network (192.168.87/24), fib-update no is set to forbid routing table update, which I initially set for testing, but keeping it as vmhost is not supposed to learn new routes from desktop anyway. network announces my VMs network and neighbor describes my desktop box. Now the desktop box:

Err codemadness.org 70 i 53404
Err codemadness.org 70 i 53405 Err codemadness.org 70 i 53406
desktop: /usr/local/etc/bgpd.conf	Err	codemadness.org	70
i 53407 AS 65001	Err	codemadness.org	70
i 53408 router-id 192.168.87.41	Err	codemadness.org	70
i 53409 fib-update yes	Err	codemadness.org	70
i 53410 	Err	codemadness.org	70
i 53411 neighbor 192.168.87.48 {                                                                                                                                                                                           	Err	codemadness.org	70
i 53412         descr "vmhost"                                                                                                                                                                                             	Err	codemadness.org	70
i 53413         remote-as 65002                                                                                                                                                                                            	Err	codemadness.org	70
i 53414 }	Err	codemadness.org	70
i 53415 
Err codemadness.org 70 i 53416 Err codemadness.org 70 i 53417
Err codemadness.org 70 i 53418

It’s pretty similar to vmhost’s bgpd.conf, but no networks are announced here, and fib-update is set to yes because the whole point is to get VM routes added. Both hosts have to have the openbgpd service enabled:

Err codemadness.org 70 i 53419
Err codemadness.org 70 i 53420 Err codemadness.org 70 i 53421
/etc/rc.conf.local	Err	codemadness.org	70
i 53422 openbgpd_enable="YES"	Err	codemadness.org	70
i 53423 
Err codemadness.org 70 i 53424 Err codemadness.org 70 i 53425
    Err codemadness.org 70 i 53426
  • Conclusion
  • Err codemadness.org 70 i 53427
Err codemadness.org 70 i 53428 Err codemadness.org 70 i 53429
Err codemadness.org 70 i 53430

As mentioned already, similar result could be achieved without using BGP by using either static routes or bridging interfaces differently, but the purpose of this exercise is to get some basic hands-on experience with BGP. Right now I’m looking into extending my setup in order to try more complex BGP schema. I’m thinking about adding some software switches in front of my VMs or maybe adding a second VM host (if budget allows). You’re welcome to comment if you have some ideas how to extend this setup for educational purposes in the context of BGP and networking.

Err codemadness.org 70 i 53431
Err codemadness.org 70 i 53432 Err codemadness.org 70 i 53433
Err codemadness.org 70 i 53434

As a side note, I really like openbgpd so far. Its configuration file format is clean and simple, documentation is good, error and information messages are clear, and CLI has intuitive syntax.

Err codemadness.org 70 i 53435
Err codemadness.org 70 i 53436 Err codemadness.org 70 i 53437


Err codemadness.org 70 i 53438 Err codemadness.org 70 i 53439

Digital Ocean

Err codemadness.org 70 i 53440 Err codemadness.org 70 i 53441

###The Power to Serve

Err codemadness.org 70 i 53442 Err codemadness.org 70 i 53443
Err codemadness.org 70 i 53444

All people within the IT Industry should known where the slogan “The Power To Serve” is exposed every day to millions of people. But maybe too much wishful thinking from me. But without “The Power To Serve” the IT industry today will look totally different. Companies like Apple, Juniper, Cisco and even WatsApp would not exist in their current form.

Err codemadness.org 70 i 53445
Err codemadness.org 70 i 53446 Err codemadness.org 70 i 53447
Err codemadness.org 70 i 53448

I provide IT architecture services to make your complex IT landscape manageable and I love to solve complex security and privacy challenges. Complex challenges where people, processes and systems are heavily interrelated. For this knowledge intensive work I often run some IT experiments. When you run experiments nowadays you have a choice:

Err codemadness.org 70 i 53449
Err codemadness.org 70 i 53450 Err codemadness.org 70 i 53451
    Err codemadness.org 70 i 53452
  • Rent some cloud based services or
  • Err codemadness.org 70 i 53453
  • DIY (Do IT Yourself) on premise
  • Err codemadness.org 70 i 53454
Err codemadness.org 70 i 53455 Err codemadness.org 70 i 53456
Err codemadness.org 70 i 53457

Running your own developments experiments on your own infrastructure can be time consuming. However smart automation saves time and money. And by creating your own CICD pipeline (Continuous Integration, Continuous Deployment) you stay on top of core infrastructure developments. Even hands-on. Knowing how things work from a technical ‘hands-on’ perspective gives great advantages when it comes to solving complex business IT problems. Making a clear distinguish between a business problem or IT problem is useless. Business and IT problems are related. Sometimes causal related, but more often indirect by one or more non linear feedback loops. Almost every business depends of IT systems. Bad IT means often that your customers will leave your business.

Err codemadness.org 70 i 53458
Err codemadness.org 70 i 53459 Err codemadness.org 70 i 53460
Err codemadness.org 70 i 53461

One of the things of FeeBSD for me is still FreeBSD Jails. In 2015 I had luck to attend to a presentation of the legendary hacker Poul-Henning Kamp . Check his BSD bio to see what he has done for the FreeBSD community! FreeBSD jails are a light way to visualize your system without enormous overhead. Now that the development on Linux for LXD/LXD is more mature (lxd is the next generation system container manager on linux) there is finally again an alternative for a nice chroot Linux based system again. At least when you do not need the overhead and management complexity that comes with Kubernetes or Docker.

Err codemadness.org 70 i 53462
Err codemadness.org 70 i 53463 Err codemadness.org 70 i 53464
Err codemadness.org 70 i 53465

FreeBSD means control and quality for me. When there is an open source package I need, I want to install it from source. It gives me more control and always some extra knowledge on how things work. So no precompiled binaries for me on my BSD systems! If a build on FreeBSD fails most of the time this is an alert regarding the quality for me.

Err codemadness.org 70 i 53466
Err codemadness.org 70 i 53467 Err codemadness.org 70 i 53468
Err codemadness.org 70 i 53469

If a complex OSS package is not available at all in the FreeBSD ports collection there should be a reason for it. Is it really that nobody on the world wants to do this dirty maintenance work? Or is there another cause that running this software on FreeBSD is not possible…There are currently 32644 ports available on FreeBSD. So all the major programming language, databases and middleware libraries are present. The FreeBSD organization is a mature organization and since this is one of the largest OSS projects worldwide learning how this community manages to keep innovation and creates and maintains software is a good entrance for learning how complex IT systems function.

Err codemadness.org 70 i 53470
Err codemadness.org 70 i 53471 Err codemadness.org 70 i 53472
Err codemadness.org 70 i 53473

FreeBSD is of course BSD licensed. It worked well! There is still a strong community with lots of strong commercial sponsors around the community. Of course: sometimes a GPL license makes more sense. So beside FreeBSD I also love GPL software and the rationale and principles behind it. So my hope is that maybe within the next 25 years the hard battle between BSD vs GPL churches will be more rationalized and normalized. Principles are good, but as all good IT architects know: With good principles alone you never make a good system. So use requirements and not only principles to figure out what OSS license fits your project. There is never one size fits all.

Err codemadness.org 70 i 53474
Err codemadness.org 70 i 53475 Err codemadness.org 70 i 53476
Err codemadness.org 70 i 53477

June 19, 1993 was the day the official name for FreeBSD was agreed upon. So this blog is written to celebrate 25th anniversary of FreeBSD.

Err codemadness.org 70 i 53478
Err codemadness.org 70 i 53479 Err codemadness.org 70 i 53480


Err codemadness.org 70 i 53481 Err codemadness.org 70 i 53482

###Dave’s BSDCan trip report

Err codemadness.org 70 i 53483 Err codemadness.org 70 i 53484
    Err codemadness.org 70 i 53485
  • So far, only one person has bothered to send in a BSDCan trip report. Our warmest thanks to Dave for doing his part.
  • Err codemadness.org 70 i 53486
Err codemadness.org 70 i 53487 Err codemadness.org 70 i 53488
Err codemadness.org 70 i 53489

Hello guys! During the last show, you asked for a trip report regarding BSDCan 2018.
Err codemadness.org 70 i 53490 This was my first time attending BSDCan. However, BSDCan was my second BSD conference overall, my first being vBSDCon 2017 in Reston, VA.
Err codemadness.org 70 i 53491 Arriving early Thursday evening and after checking into the hotel, I headed straight to the Red Lion for the registration, picked up my badge and swag and then headed towards the ‘DMS’ building for the newbies talk. The only thing is, I couldn’t find the DMS building! Fortunately I found a BSDCan veteran who was heading there themselves. My only suggestion is to include the full building name and address on the BSDCan web site, or even a link to Google maps to help out with the navigation. The on-campus street maps didn’t have ‘DMS’ written on them anywhere. But I digress.
Err codemadness.org 70 i 53492 Once I made it to the newbies talk hosted by Dan Langille and Michael W Lucas, it highlighted places to meet, an overview of what is happening, details about the ‘BSDCan widow/widower tours’ and most importantly, the 6-2-1 rule!
Err codemadness.org 70 i 53493 The following morning, we were present with tea/coffee, muffins and other goodies to help prepare us for the day ahead.
Err codemadness.org 70 i 53494 The first talk, “The Tragedy of systemd” covered what systemd did wrong and how the BSD community could improve on the ideas behind it.
Err codemadness.org 70 i 53495 With the exception of Michael W Lucas, SSH Key Management and Kirk McKusick, The Evolution of FreeBSD Governance talk, I pretty much attended all of the ZFS talks including the lunchtime BoF session, hosted by Allan Jude. Coming from FreeNAS and being involved in the community, this is where my main interest and motivation lies. Since then I have been able to share some of that information with the FreeNAS community forums and chatroom.
Err codemadness.org 70 i 53496 I also attended the “Speculating about Intel” lunchtime BoF session hosted by Theo de Raddt, which proved to be “interesting”.
Err codemadness.org 70 i 53497 The talks ended with the wrap up session with a few words from Dan, covering the record attendance and made very clear there “was no cabal”. Followed by the the handing over of Groff the BSD goat to a new owner, thank you’s from the FreeBSD Foundation to various community committers and maintainers, finally ending with the charity auction, where a things like a Canadian $20 bill sold for $40, a signed FreeBSD Foundation shirt originally worn by George Neville-Neil, a lost laptop charger, Michael’s used gelato spoon, various books, the last cookie and more importantly, the second to last cookie!
Err codemadness.org 70 i 53498 After the auction, we all headed to the Red Lion for food and drinks, sponsored by iXsystems.
Err codemadness.org 70 i 53499 I would like to thank the BSDCan organizers, speakers and sponsors for a great conference. I will certainly hope to attend next year!
Err codemadness.org 70 i 53500 Regards,
Err codemadness.org 70 i 53501 Dave (aka m0nkey_)

Err codemadness.org 70 i 53502
Err codemadness.org 70 i 53503 Err codemadness.org 70 i 53504
    Err codemadness.org 70 i 53505
  • Thanks to Dave for sharing his experiences with us and our viewers
  • Err codemadness.org 70 i 53506
Err codemadness.org 70 i 53507 Err codemadness.org 70 i 53508


Err codemadness.org 70 i 53509 Err codemadness.org 70 i 53510

##Beastie Bits

Err codemadness.org 70 i 53511 Err codemadness.org 70 i 53512 Err codemadness.org 70 i 53520 Err codemadness.org 70 i 53521

Tarsnap

Err codemadness.org 70 i 53522 Err codemadness.org 70 i 53523

##Feedback/Questions

Err codemadness.org 70 i 53524 Err codemadness.org 70 i 53525 Err codemadness.org 70 i 53531 Err codemadness.org 70 i 53532


Err codemadness.org 70 i 53533 Err codemadness.org 70 i 53534
    Err codemadness.org 70 i 53535
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 53536
]]> Err codemadness.org 70 i 53537
Err codemadness.org 70 i 53538 Err codemadness.org 70 i 53539 FreeBSD 11.2 has been released, setting up an MTA behind Tor, running pfsense on DigitalOcean, one year of C, using OpenBGPD to announce VM networks, the power to serve, and a BSDCan trip report.

Err codemadness.org 70 i 53540 Err codemadness.org 70 i 53541

##Headlines
Err codemadness.org 70 i 53542 ###FreeBSD 11.2-RELEASE Available

Err codemadness.org 70 i 53543 Err codemadness.org 70 i 53544
    Err codemadness.org 70 i 53545
  • FreeBSD 11.2 was released today (June 27th) and is ready for download
  • Err codemadness.org 70 i 53546
  • Highlights:
  • Err codemadness.org 70 i 53547
Err codemadness.org 70 i 53548 Err codemadness.org 70 i 53549
Err codemadness.org 70 i 53550

OpenSSH has been updated to version 7.5p1.
Err codemadness.org 70 i 53551 OpenSSL has been updated to version 1.0.2o.
Err codemadness.org 70 i 53552 The clang, llvm, lldb and compiler-rt utilities have been updated to version 6.0.0.
Err codemadness.org 70 i 53553 The libarchive(3) library has been updated to version 3.3.2.
Err codemadness.org 70 i 53554 The libxo(3) library has been updated to version 0.9.0.
Err codemadness.org 70 i 53555 Major Device driver updates to:

Err codemadness.org 70 i 53556
Err codemadness.org 70 i 53557 Err codemadness.org 70 i 53558
    Err codemadness.org 70 i 53559
  • cxgbe(4) – Chelsio 10/25/40/50/100 gigabit NICs – version 1.16.63.0 supports T4, T5 and T6
  • Err codemadness.org 70 i 53560
  • ixl(4) – Intel 10 and 40 gigabit NICs, updated to version 1.9.9-k
  • Err codemadness.org 70 i 53561
  • ng_pppoe(4) – driver has been updated to add support for user-supplied Host-Uniq tags
  • Err codemadness.org 70 i 53562
Err codemadness.org 70 i 53563 Err codemadness.org 70 i 53564
Err codemadness.org 70 i 53565

New drivers:
Err codemadness.org 70 i 53566 + drm-next-kmod driver supporting integrated Intel graphics with the i915 driver.

Err codemadness.org 70 i 53567
Err codemadness.org 70 i 53568 Err codemadness.org 70 i 53569
    Err codemadness.org 70 i 53570
  • mlx5io(4) – a new IOCTL interface for Mellanox ConnectX-4 and ConnectX-5 10/20/25/40/50/56/100 gigabit NICs
  • Err codemadness.org 70 i 53571
  • ocs_fc(4) – Emulex Fibre Channel 8/16/32 gigabit Host Adapters
  • Err codemadness.org 70 i 53572
  • smartpqi(4) – HP Gen10 Smart Array Controller Family
  • Err codemadness.org 70 i 53573
Err codemadness.org 70 i 53574 Err codemadness.org 70 i 53575
Err codemadness.org 70 i 53576

The newsyslog(8) utility has been updated to support RFC5424-compliant messages when rotating system logs
Err codemadness.org 70 i 53577 The diskinfo(8) utility has been updated to include two new flags, -s which displays the disk identity (usually the serial number), and -p which displays the physical path to the disk in a storage controller.
Err codemadness.org 70 i 53578 The top(1) utility has been updated to allow filtering on multiple user names when the -U flag is used
Err codemadness.org 70 i 53579 The umount(8) utility has been updated to include a new flag, -N, which is used to forcefully unmount an NFS mounted filesystem.
Err codemadness.org 70 i 53580 The ps(1) utility has been updated to display if a process is running with capsicum(4) capability mode, indicated by the flag ‘C’
Err codemadness.org 70 i 53581 The service(8) utility has been updated to include a new flag, -j, which is used to interact with services running within a jail(8). The argument to -j can be either the name or numeric jail ID
Err codemadness.org 70 i 53582 The mlx5tool(8) utility has been added, which is used to manage Connect-X 4 and Connect-X 5 devices supported by mlx5io(4).
Err codemadness.org 70 i 53583 The ifconfig(8) utility has been updated to include a random option, which when used with the ether option, generates a random MAC address for an interface.
Err codemadness.org 70 i 53584 The dwatch(1) utility has been introduced
Err codemadness.org 70 i 53585 The efibootmgr(8) utility has been added, which is used to manipulate the EFI boot manager.
Err codemadness.org 70 i 53586 The etdump(1) utility has been added, which is used to view El Torito boot catalog information.
Err codemadness.org 70 i 53587 The linux(4) ABI compatibility layer has been updated to include support for musl consumers.
Err codemadness.org 70 i 53588 The fdescfs(5) filesystem has been updated to support Linux®-specific fd(4) /dev/fd and /proc/self/fd behavior
Err codemadness.org 70 i 53589 Support for virtio_console(4) has been added to bhyve(4).
Err codemadness.org 70 i 53590 The length of GELI passphrases entered when booting a system with encrypted disks is now hidden by default. See the configuration options in geli(8) to restore the previous behavior.

Err codemadness.org 70 i 53591
Err codemadness.org 70 i 53592 Err codemadness.org 70 i 53593
    Err codemadness.org 70 i 53594
  • In addition to the usual CD/DVD ISO, Memstick, and prebuilt VM images (raw, qcow2, vhd, and vmdk), FreeBSD 11.2 is also available on: Err codemadness.org 70 i 53595
      Err codemadness.org 70 i 53596
    • Amazon EC2
    • Err codemadness.org 70 i 53597
    • Google Compute Engine
    • Err codemadness.org 70 i 53598
    • Hashicorp/Atlas Vagrant
    • Err codemadness.org 70 i 53599
    • Microsoft Azure
    • Err codemadness.org 70 i 53600
    Err codemadness.org 70 i 53601 Err codemadness.org 70 i 53602


  • Err codemadness.org 70 i 53603
  • In addition to a generic ARM64 image for devices like the Pine64 and Raspberry Pi 3, specific images are provided for:

    Err codemadness.org 70 i 53604 Err codemadness.org 70 i 53605
      Err codemadness.org 70 i 53606
    • GUMSTIX
    • Err codemadness.org 70 i 53607
    • BANANAPI
    • Err codemadness.org 70 i 53608
    • BEAGLEBONE
    • Err codemadness.org 70 i 53609
    • CUBIEBOARD
    • Err codemadness.org 70 i 53610
    • CUBIEBOARD2
    • Err codemadness.org 70 i 53611
    • CUBOX-HUMMINGBOARD
    • Err codemadness.org 70 i 53612
    • RASPBERRY PI 2
    • Err codemadness.org 70 i 53613
    • PANDABOARD
    • Err codemadness.org 70 i 53614
    • WANDBOARD
    • Err codemadness.org 70 i 53615
    Err codemadness.org 70 i 53616 Err codemadness.org 70 i 53617


  • Err codemadness.org 70 i 53618
  • Full Release Notes

  • Err codemadness.org 70 i 53619

Err codemadness.org 70 i 53620

Err codemadness.org 70 i 53621 Err codemadness.org 70 i 53622

###Setting up an MTA Behind Tor

Err codemadness.org 70 i 53623 Err codemadness.org 70 i 53624
Err codemadness.org 70 i 53625

This article will document how to set up OpenSMTPD behind a fully Tor-ified network. Given that Tor’s DNS resolver code does not support MX record lookups, care must be taken for setting up an MTA behind a fully Tor-ified network. OpenSMTPD was chosen because it was easy to modify to force it to fall back to A/AAAA lookups when MX lookups failed with a DNS result code of NOTIMP (4).

Err codemadness.org 70 i 53626
Err codemadness.org 70 i 53627 Err codemadness.org 70 i 53628
Err codemadness.org 70 i 53629

Note that as of 08 May 2018, the OpenSMTPD project is planning a configuration file language change. The proposed change has not landed. Once it does, this article will be updated to reflect both the old language and new.

Err codemadness.org 70 i 53630
Err codemadness.org 70 i 53631 Err codemadness.org 70 i 53632
Err codemadness.org 70 i 53633

The reason to use an MTA behing a fully Tor-ified network is to be able to support email behind the .onion TLD. This setup will only allow us to send and receive email to and from the .onion TLD.

Err codemadness.org 70 i 53634
Err codemadness.org 70 i 53635 Err codemadness.org 70 i 53636
    Err codemadness.org 70 i 53637
  • Err codemadness.org 70 i 53638

    Requirements:

    Err codemadness.org 70 i 53639
  • Err codemadness.org 70 i 53640
  • Err codemadness.org 70 i 53641

    A fully Tor-ified network

    Err codemadness.org 70 i 53642
  • Err codemadness.org 70 i 53643
  • Err codemadness.org 70 i 53644

    HardenedBSD as the operating system

    Err codemadness.org 70 i 53645
  • Err codemadness.org 70 i 53646
  • Err codemadness.org 70 i 53647

    A server (or VM) running HardenedBSD behind the fully Tor-ified network.

    Err codemadness.org 70 i 53648
  • Err codemadness.org 70 i 53649
  • Err codemadness.org 70 i 53650

    /usr/ports is empty

    Err codemadness.org 70 i 53651
  • Err codemadness.org 70 i 53652
  • Err codemadness.org 70 i 53653

    Or is already pre-populated with the HardenedBSD Ports tree

    Err codemadness.org 70 i 53654
  • Err codemadness.org 70 i 53655
  • Err codemadness.org 70 i 53656

    Why use HardenedBSD? We get all the features of FreeBSD (ZFS, DTrace, bhyve, and jails) with enhanced security through exploit mitigations and system hardening. Tor has a very unique threat landscape and using a hardened ecosystem is crucial to mitigating risks and threats.

    Err codemadness.org 70 i 53657
  • Err codemadness.org 70 i 53658
Err codemadness.org 70 i 53659 Err codemadness.org 70 i 53660
Err codemadness.org 70 i 53661

Also note that this article reflects how I’ve set up my MTA. I’ve included configuration files verbatim. You will need to replace the text that refers to my .onion domain with yours.

Err codemadness.org 70 i 53662
Err codemadness.org 70 i 53663 Err codemadness.org 70 i 53664
Err codemadness.org 70 i 53665

On 08 May 2018, HardenedBSD’s version of OpenSMTPD just gained support for running an MTA behind Tor. The package repositories do not yet contain the patch, so we will compile OpenSMTPD from ports.

Err codemadness.org 70 i 53666
Err codemadness.org 70 i 53667 Err codemadness.org 70 i 53668
    Err codemadness.org 70 i 53669
  • Steps
  • Err codemadness.org 70 i 53670
  • Installation
  • Err codemadness.org 70 i 53671
  • Generating Cryptographic Key Material
  • Err codemadness.org 70 i 53672
  • Tor Configuration
  • Err codemadness.org 70 i 53673
  • OpenSMTPD Configuration
  • Err codemadness.org 70 i 53674
  • Dovecot Configuration
  • Err codemadness.org 70 i 53675
  • Testing your configuration
  • Err codemadness.org 70 i 53676
  • Optional: Webmail Access
  • Err codemadness.org 70 i 53677
Err codemadness.org 70 i 53678 Err codemadness.org 70 i 53679


Err codemadness.org 70 i 53680 Err codemadness.org 70 i 53681

iXsystems
Err codemadness.org 70 i 53682 https://www.forbes.com/sites/forbestechcouncil/2018/06/21/strings-attached-knowing-when-and-when-not-to-accept-vc-funding/#30f9f18f46ec
Err codemadness.org 70 i 53683 https://www.ixsystems.com/blog/self-2018-recap/

Err codemadness.org 70 i 53684 Err codemadness.org 70 i 53685

###Running pfSense on a Digital Ocean Droplet

Err codemadness.org 70 i 53686 Err codemadness.org 70 i 53687
Err codemadness.org 70 i 53688

I love pfSense (and opnSense, no discrimination here). I use it for just about anything, from homelab to large scale deployments and I’ll give out on any fancy <enter brand name fw appliance here> for a pfSense setup on a decent hardware.

Err codemadness.org 70 i 53689
Err codemadness.org 70 i 53690 Err codemadness.org 70 i 53691
Err codemadness.org 70 i 53692

I also love DigitalOcean, if you ever used them, you know why, if you never did, head over and try, you’ll understand why.
Err codemadness.org 70 i 53693 <shameless plug: head over to JupiterBroadcasting.com, the best technology content out there, they have coupon codes to get you started with DO>.

Err codemadness.org 70 i 53694
Err codemadness.org 70 i 53695 Err codemadness.org 70 i 53696
Err codemadness.org 70 i 53697

Unfortunately, while DO offers tremendous amount of useful distros and applications, pfSense isn’t one of them. But, where there’s a will, there’s a way, and here’s how to get pfSense up and running on DO so you can have it as the gatekeeper to your kingdom.

Err codemadness.org 70 i 53698
Err codemadness.org 70 i 53699 Err codemadness.org 70 i 53700
Err codemadness.org 70 i 53701

Start by creating a FreeBSD droplet, choose your droplet size (for modest setups, I find the 5$ to be quite awesome):

Err codemadness.org 70 i 53702
Err codemadness.org 70 i 53703 Err codemadness.org 70 i 53704
Err codemadness.org 70 i 53705

There are many useful things you can do with pfSense on your droplet, from OpenVPN, squid, firewalling, fancy routing, url filtering, dns black listing and much much more.

Err codemadness.org 70 i 53706
Err codemadness.org 70 i 53707 Err codemadness.org 70 i 53708
    Err codemadness.org 70 i 53709
  • One note though, before we wrap up:
  • Err codemadness.org 70 i 53710
Err codemadness.org 70 i 53711 Err codemadness.org 70 i 53712
Err codemadness.org 70 i 53713

You have two ways to initiate the initial setup wizard of the web-configurator:
Err codemadness.org 70 i 53714 Spin up another droplet, log into it and browse your way to the INTERNAL ip address of the internal NIC you’ve set up. This is the long and tedious way, but it’s also somewhat safer as it eliminates the small window of risk the second method poses.
Err codemadness.org 70 i 53715 or
Err codemadness.org 70 i 53716 Once your WAN address is all setup, your pfSense is ready to accept https connection to start the initial web-configurator setup.
Err codemadness.org 70 i 53717 Thing is, there’s a default, well known set of credential to this initial wizard (admin:pfsense), so, there is a slight window of opportunity that someone can swoop in (assuming they know you’ve installed pfsense + your wan IP address + the exact time window between setting up the WAN interface and completing the wizard) and do <enter scary thing here>.

Err codemadness.org 70 i 53718
Err codemadness.org 70 i 53719 Err codemadness.org 70 i 53720
Err codemadness.org 70 i 53721

I leave it up to you which of the path you’d like to go, either way, once you’re done with the web-configurator wizard, you’ll have a shiny new pfSense installation at your disposal running on your favorite VPS.

Err codemadness.org 70 i 53722
Err codemadness.org 70 i 53723 Err codemadness.org 70 i 53724
Err codemadness.org 70 i 53725

Hopefully this was helpful for someone, I hope to get a similar post soon detailing how to get FreeNAS up and running on DO.
Err codemadness.org 70 i 53726 Many thanks to Tubsta and his blogpost as well as to Allan Jude, Kris Moore and Benedict Reuschling for their AWESOME and inspiring podcast, BSD Now.

Err codemadness.org 70 i 53727
Err codemadness.org 70 i 53728 Err codemadness.org 70 i 53729


Err codemadness.org 70 i 53730 Err codemadness.org 70 i 53731

##News Roundup
Err codemadness.org 70 i 53732 ###One year of C

Err codemadness.org 70 i 53733 Err codemadness.org 70 i 53734
Err codemadness.org 70 i 53735

It’s now nearly a year that I started writing non-trivial amounts of C code again (the first sokol_gfx.h commit was on the 14-Jul-2017), so I guess it’s time for a little retrospective.

Err codemadness.org 70 i 53736
Err codemadness.org 70 i 53737 Err codemadness.org 70 i 53738
Err codemadness.org 70 i 53739

In the beginning it was more of an experiment: I wanted to see how much I would miss some of the more useful C++ features (for instance namespaces, function overloading, ‘simple’ template code for containers, …), and whether it is possible to write non-trivial codebases in C without going mad.

Err codemadness.org 70 i 53740
Err codemadness.org 70 i 53741 Err codemadness.org 70 i 53742
Err codemadness.org 70 i 53743

Here are all the github projects I wrote in C:

Err codemadness.org 70 i 53744
Err codemadness.org 70 i 53745 Err codemadness.org 70 i 53746
    Err codemadness.org 70 i 53747
  • sokol: a slowly growing set of platform-abstraction headers
  • Err codemadness.org 70 i 53748
  • sokol-samples - examples for Sokol
  • Err codemadness.org 70 i 53749
  • chips - 8-bit chip emulators
  • Err codemadness.org 70 i 53750
  • chips-test - tests and examples for the chip- emulators, including some complete home computer emulators (minus sound)
  • Err codemadness.org 70 i 53751
Err codemadness.org 70 i 53752 Err codemadness.org 70 i 53753
Err codemadness.org 70 i 53754

All in all these are around 32k lines of code (not including 3rd party code like flextGL and HandmadeMath). I think I wrote more C code in the recent 10 months than any other language.

Err codemadness.org 70 i 53755
Err codemadness.org 70 i 53756 Err codemadness.org 70 i 53757
Err codemadness.org 70 i 53758

So one thing seems to be clear: yes, it’s possible to write a non-trivial amount of C code that does something useful without going mad (and it’s even quite enjoyable I might add).

Err codemadness.org 70 i 53759
Err codemadness.org 70 i 53760 Err codemadness.org 70 i 53761
    Err codemadness.org 70 i 53762
  • Err codemadness.org 70 i 53763

    Here’s a few things I learned:

    Err codemadness.org 70 i 53764
  • Err codemadness.org 70 i 53765
  • Err codemadness.org 70 i 53766

    Pick the right language for a problem

    Err codemadness.org 70 i 53767
  • Err codemadness.org 70 i 53768
  • Err codemadness.org 70 i 53769

    C is a perfect match for WebAssembly

    Err codemadness.org 70 i 53770
  • Err codemadness.org 70 i 53771
  • Err codemadness.org 70 i 53772

    C99 is a huge improvement over C89

    Err codemadness.org 70 i 53773
  • Err codemadness.org 70 i 53774
  • Err codemadness.org 70 i 53775

    The dangers of pointers and explicit memory management are overrated

    Err codemadness.org 70 i 53776
  • Err codemadness.org 70 i 53777
  • Err codemadness.org 70 i 53778

    Less Boilerplate Code

    Err codemadness.org 70 i 53779
  • Err codemadness.org 70 i 53780
  • Err codemadness.org 70 i 53781

    Less Language Feature ‘Anxiety’

    Err codemadness.org 70 i 53782
  • Err codemadness.org 70 i 53783
  • Err codemadness.org 70 i 53784

    Conclusion

    Err codemadness.org 70 i 53785
  • Err codemadness.org 70 i 53786
Err codemadness.org 70 i 53787 Err codemadness.org 70 i 53788
Err codemadness.org 70 i 53789

All in all my “C experiment” is a success. For a lot of problems, picking C over C++ may be the better choice since C is a much simpler language (btw, did you notice how there are hardly any books, conferences or discussions about C despite being a fairly popular language? Apart from the neverending bickering about undefined behaviour from the compiler people of course ;) There simply isn’t much to discuss about a language that can be learned in an afternoon.

Err codemadness.org 70 i 53790
Err codemadness.org 70 i 53791 Err codemadness.org 70 i 53792
Err codemadness.org 70 i 53793

I don’t like some of the old POSIX or Linux APIs as much as the next guy (e.g. ioctl(), the socket API or some of the CRT library functions), but that’s an API design problem, not a language problem. It’s possible to build friendly C APIs with a bit of care and thinking, especially when C99’s designated initialization can be used (C++ should really make sure that the full C99 language can be used from inside C++ instead of continuing to wander off into an entirely different direction).

Err codemadness.org 70 i 53794
Err codemadness.org 70 i 53795 Err codemadness.org 70 i 53796


Err codemadness.org 70 i 53797 Err codemadness.org 70 i 53798

###Configuring OpenBGPD to announce VM’s virtual networks

Err codemadness.org 70 i 53799 Err codemadness.org 70 i 53800
Err codemadness.org 70 i 53801

We use BGP quite heavily at work, and even though I’m not interacting with that directly, it feels like it’s something very useful to learn at least on some basic level. The most effective and fun way of learning technology is finding some practical application, so I decided to see if it could help to improve networking management for my Virtual Machines.

Err codemadness.org 70 i 53802
Err codemadness.org 70 i 53803 Err codemadness.org 70 i 53804
Err codemadness.org 70 i 53805

My setup is fairly simple: I have a host that runs bhyve VMs and I have a desktop system from where I ssh to VMs, both hosts run FreeBSD. All VMs are connected to each other through a bridge and have a common network 10.0.1/24. The point of this exercise is to be able to ssh to these VMs from desktop without adding static routes and without adding vmhost’s external interfaces to the VMs bridge.

Err codemadness.org 70 i 53806
Err codemadness.org 70 i 53807 Err codemadness.org 70 i 53808
Err codemadness.org 70 i 53809

I’ve installed openbgpd on both hosts and configured it like this:

Err codemadness.org 70 i 53810
Err codemadness.org 70 i 53811 Err codemadness.org 70 i 53812
vmhost: /usr/local/etc/bgpd.conf	Err	codemadness.org	70
i 53813 AS 65002	Err	codemadness.org	70
i 53814 router-id 192.168.87.48	Err	codemadness.org	70
i 53815 fib-update no	Err	codemadness.org	70
i 53816 	Err	codemadness.org	70
i 53817 network 10.0.1.1/24	Err	codemadness.org	70
i 53818 	Err	codemadness.org	70
i 53819 neighbor 192.168.87.41 {	Err	codemadness.org	70
i 53820     descr "desktop"	Err	codemadness.org	70
i 53821     remote-as 65001	Err	codemadness.org	70
i 53822 }	Err	codemadness.org	70
i 53823 
Err codemadness.org 70 i 53824 Err codemadness.org 70 i 53825
Err codemadness.org 70 i 53826

Here, router-id is set vmhost’s IP address in my home network (192.168.87/24), fib-update no is set to forbid routing table update, which I initially set for testing, but keeping it as vmhost is not supposed to learn new routes from desktop anyway. network announces my VMs network and neighbor describes my desktop box. Now the desktop box:

Err codemadness.org 70 i 53827
Err codemadness.org 70 i 53828 Err codemadness.org 70 i 53829
desktop: /usr/local/etc/bgpd.conf	Err	codemadness.org	70
i 53830 AS 65001	Err	codemadness.org	70
i 53831 router-id 192.168.87.41	Err	codemadness.org	70
i 53832 fib-update yes	Err	codemadness.org	70
i 53833 	Err	codemadness.org	70
i 53834 neighbor 192.168.87.48 {                                                                                                                                                                                           	Err	codemadness.org	70
i 53835         descr "vmhost"                                                                                                                                                                                             	Err	codemadness.org	70
i 53836         remote-as 65002                                                                                                                                                                                            	Err	codemadness.org	70
i 53837 }	Err	codemadness.org	70
i 53838 
Err codemadness.org 70 i 53839 Err codemadness.org 70 i 53840
Err codemadness.org 70 i 53841

It’s pretty similar to vmhost’s bgpd.conf, but no networks are announced here, and fib-update is set to yes because the whole point is to get VM routes added. Both hosts have to have the openbgpd service enabled:

Err codemadness.org 70 i 53842
Err codemadness.org 70 i 53843 Err codemadness.org 70 i 53844
/etc/rc.conf.local	Err	codemadness.org	70
i 53845 openbgpd_enable="YES"	Err	codemadness.org	70
i 53846 
Err codemadness.org 70 i 53847 Err codemadness.org 70 i 53848
    Err codemadness.org 70 i 53849
  • Conclusion
  • Err codemadness.org 70 i 53850
Err codemadness.org 70 i 53851 Err codemadness.org 70 i 53852
Err codemadness.org 70 i 53853

As mentioned already, similar result could be achieved without using BGP by using either static routes or bridging interfaces differently, but the purpose of this exercise is to get some basic hands-on experience with BGP. Right now I’m looking into extending my setup in order to try more complex BGP schema. I’m thinking about adding some software switches in front of my VMs or maybe adding a second VM host (if budget allows). You’re welcome to comment if you have some ideas how to extend this setup for educational purposes in the context of BGP and networking.

Err codemadness.org 70 i 53854
Err codemadness.org 70 i 53855 Err codemadness.org 70 i 53856
Err codemadness.org 70 i 53857

As a side note, I really like openbgpd so far. Its configuration file format is clean and simple, documentation is good, error and information messages are clear, and CLI has intuitive syntax.

Err codemadness.org 70 i 53858
Err codemadness.org 70 i 53859 Err codemadness.org 70 i 53860


Err codemadness.org 70 i 53861 Err codemadness.org 70 i 53862

Digital Ocean

Err codemadness.org 70 i 53863 Err codemadness.org 70 i 53864

###The Power to Serve

Err codemadness.org 70 i 53865 Err codemadness.org 70 i 53866
Err codemadness.org 70 i 53867

All people within the IT Industry should known where the slogan “The Power To Serve” is exposed every day to millions of people. But maybe too much wishful thinking from me. But without “The Power To Serve” the IT industry today will look totally different. Companies like Apple, Juniper, Cisco and even WatsApp would not exist in their current form.

Err codemadness.org 70 i 53868
Err codemadness.org 70 i 53869 Err codemadness.org 70 i 53870
Err codemadness.org 70 i 53871

I provide IT architecture services to make your complex IT landscape manageable and I love to solve complex security and privacy challenges. Complex challenges where people, processes and systems are heavily interrelated. For this knowledge intensive work I often run some IT experiments. When you run experiments nowadays you have a choice:

Err codemadness.org 70 i 53872
Err codemadness.org 70 i 53873 Err codemadness.org 70 i 53874
    Err codemadness.org 70 i 53875
  • Rent some cloud based services or
  • Err codemadness.org 70 i 53876
  • DIY (Do IT Yourself) on premise
  • Err codemadness.org 70 i 53877
Err codemadness.org 70 i 53878 Err codemadness.org 70 i 53879
Err codemadness.org 70 i 53880

Running your own developments experiments on your own infrastructure can be time consuming. However smart automation saves time and money. And by creating your own CICD pipeline (Continuous Integration, Continuous Deployment) you stay on top of core infrastructure developments. Even hands-on. Knowing how things work from a technical ‘hands-on’ perspective gives great advantages when it comes to solving complex business IT problems. Making a clear distinguish between a business problem or IT problem is useless. Business and IT problems are related. Sometimes causal related, but more often indirect by one or more non linear feedback loops. Almost every business depends of IT systems. Bad IT means often that your customers will leave your business.

Err codemadness.org 70 i 53881
Err codemadness.org 70 i 53882 Err codemadness.org 70 i 53883
Err codemadness.org 70 i 53884

One of the things of FeeBSD for me is still FreeBSD Jails. In 2015 I had luck to attend to a presentation of the legendary hacker Poul-Henning Kamp . Check his BSD bio to see what he has done for the FreeBSD community! FreeBSD jails are a light way to visualize your system without enormous overhead. Now that the development on Linux for LXD/LXD is more mature (lxd is the next generation system container manager on linux) there is finally again an alternative for a nice chroot Linux based system again. At least when you do not need the overhead and management complexity that comes with Kubernetes or Docker.

Err codemadness.org 70 i 53885
Err codemadness.org 70 i 53886 Err codemadness.org 70 i 53887
Err codemadness.org 70 i 53888

FreeBSD means control and quality for me. When there is an open source package I need, I want to install it from source. It gives me more control and always some extra knowledge on how things work. So no precompiled binaries for me on my BSD systems! If a build on FreeBSD fails most of the time this is an alert regarding the quality for me.

Err codemadness.org 70 i 53889
Err codemadness.org 70 i 53890 Err codemadness.org 70 i 53891
Err codemadness.org 70 i 53892

If a complex OSS package is not available at all in the FreeBSD ports collection there should be a reason for it. Is it really that nobody on the world wants to do this dirty maintenance work? Or is there another cause that running this software on FreeBSD is not possible…There are currently 32644 ports available on FreeBSD. So all the major programming language, databases and middleware libraries are present. The FreeBSD organization is a mature organization and since this is one of the largest OSS projects worldwide learning how this community manages to keep innovation and creates and maintains software is a good entrance for learning how complex IT systems function.

Err codemadness.org 70 i 53893
Err codemadness.org 70 i 53894 Err codemadness.org 70 i 53895
Err codemadness.org 70 i 53896

FreeBSD is of course BSD licensed. It worked well! There is still a strong community with lots of strong commercial sponsors around the community. Of course: sometimes a GPL license makes more sense. So beside FreeBSD I also love GPL software and the rationale and principles behind it. So my hope is that maybe within the next 25 years the hard battle between BSD vs GPL churches will be more rationalized and normalized. Principles are good, but as all good IT architects know: With good principles alone you never make a good system. So use requirements and not only principles to figure out what OSS license fits your project. There is never one size fits all.

Err codemadness.org 70 i 53897
Err codemadness.org 70 i 53898 Err codemadness.org 70 i 53899
Err codemadness.org 70 i 53900

June 19, 1993 was the day the official name for FreeBSD was agreed upon. So this blog is written to celebrate 25th anniversary of FreeBSD.

Err codemadness.org 70 i 53901
Err codemadness.org 70 i 53902 Err codemadness.org 70 i 53903


Err codemadness.org 70 i 53904 Err codemadness.org 70 i 53905

###Dave’s BSDCan trip report

Err codemadness.org 70 i 53906 Err codemadness.org 70 i 53907
    Err codemadness.org 70 i 53908
  • So far, only one person has bothered to send in a BSDCan trip report. Our warmest thanks to Dave for doing his part.
  • Err codemadness.org 70 i 53909
Err codemadness.org 70 i 53910 Err codemadness.org 70 i 53911
Err codemadness.org 70 i 53912

Hello guys! During the last show, you asked for a trip report regarding BSDCan 2018.
Err codemadness.org 70 i 53913 This was my first time attending BSDCan. However, BSDCan was my second BSD conference overall, my first being vBSDCon 2017 in Reston, VA.
Err codemadness.org 70 i 53914 Arriving early Thursday evening and after checking into the hotel, I headed straight to the Red Lion for the registration, picked up my badge and swag and then headed towards the ‘DMS’ building for the newbies talk. The only thing is, I couldn’t find the DMS building! Fortunately I found a BSDCan veteran who was heading there themselves. My only suggestion is to include the full building name and address on the BSDCan web site, or even a link to Google maps to help out with the navigation. The on-campus street maps didn’t have ‘DMS’ written on them anywhere. But I digress.
Err codemadness.org 70 i 53915 Once I made it to the newbies talk hosted by Dan Langille and Michael W Lucas, it highlighted places to meet, an overview of what is happening, details about the ‘BSDCan widow/widower tours’ and most importantly, the 6-2-1 rule!
Err codemadness.org 70 i 53916 The following morning, we were present with tea/coffee, muffins and other goodies to help prepare us for the day ahead.
Err codemadness.org 70 i 53917 The first talk, “The Tragedy of systemd” covered what systemd did wrong and how the BSD community could improve on the ideas behind it.
Err codemadness.org 70 i 53918 With the exception of Michael W Lucas, SSH Key Management and Kirk McKusick, The Evolution of FreeBSD Governance talk, I pretty much attended all of the ZFS talks including the lunchtime BoF session, hosted by Allan Jude. Coming from FreeNAS and being involved in the community, this is where my main interest and motivation lies. Since then I have been able to share some of that information with the FreeNAS community forums and chatroom.
Err codemadness.org 70 i 53919 I also attended the “Speculating about Intel” lunchtime BoF session hosted by Theo de Raddt, which proved to be “interesting”.
Err codemadness.org 70 i 53920 The talks ended with the wrap up session with a few words from Dan, covering the record attendance and made very clear there “was no cabal”. Followed by the the handing over of Groff the BSD goat to a new owner, thank you’s from the FreeBSD Foundation to various community committers and maintainers, finally ending with the charity auction, where a things like a Canadian $20 bill sold for $40, a signed FreeBSD Foundation shirt originally worn by George Neville-Neil, a lost laptop charger, Michael’s used gelato spoon, various books, the last cookie and more importantly, the second to last cookie!
Err codemadness.org 70 i 53921 After the auction, we all headed to the Red Lion for food and drinks, sponsored by iXsystems.
Err codemadness.org 70 i 53922 I would like to thank the BSDCan organizers, speakers and sponsors for a great conference. I will certainly hope to attend next year!
Err codemadness.org 70 i 53923 Regards,
Err codemadness.org 70 i 53924 Dave (aka m0nkey_)

Err codemadness.org 70 i 53925
Err codemadness.org 70 i 53926 Err codemadness.org 70 i 53927
    Err codemadness.org 70 i 53928
  • Thanks to Dave for sharing his experiences with us and our viewers
  • Err codemadness.org 70 i 53929
Err codemadness.org 70 i 53930 Err codemadness.org 70 i 53931


Err codemadness.org 70 i 53932 Err codemadness.org 70 i 53933

##Beastie Bits

Err codemadness.org 70 i 53934 Err codemadness.org 70 i 53935 Err codemadness.org 70 i 53943 Err codemadness.org 70 i 53944

Tarsnap

Err codemadness.org 70 i 53945 Err codemadness.org 70 i 53946

##Feedback/Questions

Err codemadness.org 70 i 53947 Err codemadness.org 70 i 53948 Err codemadness.org 70 i 53954 Err codemadness.org 70 i 53955


Err codemadness.org 70 i 53956 Err codemadness.org 70 i 53957
    Err codemadness.org 70 i 53958
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 53959
]]> Err codemadness.org 70 i 53960
Err codemadness.org 70 i 53961 https://fireside.fm/player/v2/FYhhasNR+pm_aSt0Q Err codemadness.org 70 i 53962 Err codemadness.org 70 i 53963 ]]> Err codemadness.org 70 i 53964 Err codemadness.org 70 i 53965
Err codemadness.org 70 i 53966 Err codemadness.org 70 i 53967 Episode 251: Crypto HAMMER | BSD Now 251 Err codemadness.org 70 i 53968 https://www.bsdnow.tv/251 Err codemadness.org 70 i 53969 http://feed.jupiter.zone/bsdnow#entry-2136 Err codemadness.org 70 i 53970 Thu, 21 Jun 2018 02:00:00 -0700 Err codemadness.org 70 i 53971 Allan Jude Err codemadness.org 70 i 53972 Err codemadness.org 70 i 53973 full Err codemadness.org 70 i 53974 Allan Jude Err codemadness.org 70 i 53975 DragonflyBSD’s hammer1 encrypted master/slave setup, second part of our BSDCan recap, NomadBSD 1.1-RC1 available, OpenBSD adds an LDAP client to base, FreeBSD gets pNFS support, Intel FPU Speculation Vulnerability confirmed, and what some Unix command names mean. Err codemadness.org 70 i 53976 1:28:43 Err codemadness.org 70 i 53977 no Err codemadness.org 70 i 53978 Err codemadness.org 70 i 53979 DragonflyBSD’s hammer1 encrypted master/slave setup, second part of our BSDCan recap, NomadBSD 1.1-RC1 available, OpenBSD adds an LDAP client to base, FreeBSD gets pNFS support, Intel FPU Speculation Vulnerability confirmed, and what some Unix command names mean. Err codemadness.org 70 i 53980 <p>##Headlines<br> Err codemadness.org 70 i 53981 <a href="https://www.reddit.com/r/dragonflybsd/comments/8riwtx/towards_a_hammer1_masterslave_encrypted_setup/">DragonflyBSD: Towards a HAMMER1 master/slave encrypted setup with LUKS</a></p> Err codemadness.org 70 i 53982 <blockquote> Err codemadness.org 70 i 53983 <p>I just wanted to share my experience with setting up DragonFly master/slave HAMMER1 PFS’s on top of LUKS<br> Err codemadness.org 70 i 53984 So after a long time using an Synology for my NFS needs, I decided it was time to rethink my setup a little since I had several issues with it :</p> Err codemadness.org 70 i 53985 </blockquote> Err codemadness.org 70 i 53986 <ul> Err codemadness.org 70 i 53987 <li>You cannot run NFS on top of encrypted partitions easily</li> Err codemadness.org 70 i 53988 <li>I suspect I am having some some data corruption (bitrot) on the ext4 filesystem</li> Err codemadness.org 70 i 53989 <li>the NIC was stcuk to 100 Mbps instead of 1 Gbps even after swapping cables, switches, you name it</li> Err codemadness.org 70 i 53990 <li>It’s proprietary</li> Err codemadness.org 70 i 53991 </ul> Err codemadness.org 70 i 53992 <blockquote> Err codemadness.org 70 i 53993 <p>I have been playing with DragonFly in the past and knew about HAMMER, now I just had the perfect excuse to actually use it in production :) After setting up the OS, creating the LUKS partition and HAMMER FS was easy :</p> Err codemadness.org 70 i 53994 </blockquote> Err codemadness.org 70 i 53995 <p><code>kdload dm</code><br> Err codemadness.org 70 i 53996 <code>cryptsetup luksFormat /dev/serno/&lt;id1&gt;</code><br> Err codemadness.org 70 i 53997 <code>cryptsetup luksOpen /dev/serno/&lt;id1&gt; fort_knox</code><br> Err codemadness.org 70 i 53998 <code>newfs_hammer -L hammer1_secure_master /dev/mapper/fort_knox</code><br> Err codemadness.org 70 i 53999 <code>cryptsetup luksFormat /dev/serno/&lt;id2&gt;</code><br> Err codemadness.org 70 i 54000 <code>cryptsetup luksOpen /dev/serno/&lt;id2&gt; fort_knox_slave</code><br> Err codemadness.org 70 i 54001 <code>newfs_hammer -L hammer1_secure_slave /dev/mapper/fort_knox_slave</code></p> Err codemadness.org 70 i 54002 <ul> Err codemadness.org 70 i 54003 <li>Mount the 2 drives :</li> Err codemadness.org 70 i 54004 </ul> Err codemadness.org 70 i 54005 <p><code>mount /dev/mapper/fort_knox /fort_knox</code><br> Err codemadness.org 70 i 54006 <code>mount /dev/mapper_fort_know_slave /fort_knox_slave</code></p> Err codemadness.org 70 i 54007 <blockquote> Err codemadness.org 70 i 54008 <p>You can now put your data under /fort_knox<br> Err codemadness.org 70 i 54009 Now, off to setting up the replication, first get the shared-uuid of /fort_knox</p> Err codemadness.org 70 i 54010 </blockquote> Err codemadness.org 70 i 54011 <p><code>hammer pfs-status /fort_knox</code></p> Err codemadness.org 70 i 54012 <blockquote> Err codemadness.org 70 i 54013 <p>Create a PFS slave “linked” to the master</p> Err codemadness.org 70 i 54014 </blockquote> Err codemadness.org 70 i 54015 <p><code>hammer pfs-slave /fort_knox_slave/pfs/slave shared-uuid=f9e7cc0d-eb59-10e3-a5b5-01e6e7cefc12</code></p> Err codemadness.org 70 i 54016 <blockquote> Err codemadness.org 70 i 54017 <p>And then stream your data to the slave PFS !</p> Err codemadness.org 70 i 54018 </blockquote> Err codemadness.org 70 i 54019 <p><code>hammer mirror-stream /fort_knox /fort_knox_slave/pfs/slave</code></p> Err codemadness.org 70 i 54020 <blockquote> Err codemadness.org 70 i 54021 <p>After that, setting NFS is fairly trivial even though I had problem with the /etc/exports syntax which is different than Linux</p> Err codemadness.org 70 i 54022 </blockquote> Err codemadness.org 70 i 54023 <blockquote> Err codemadness.org 70 i 54024 <p>There’s a few things I wish would be better though but nothing too problematic or without workarounds :</p> Err codemadness.org 70 i 54025 </blockquote> Err codemadness.org 70 i 54026 <ul> Err codemadness.org 70 i 54027 <li>Cannot unlock LUKS partitions at boot time afaik (Acceptable tradeoff for the added security LUKS gives me vs my old Synology setup) but this force me to run a script to unlock LUKS, mount hammer and start mirror-stream at each boot</li> Err codemadness.org 70 i 54028 <li>No S1/S3 sleep so I made a script to shutdown the system when there’s no network neighborgs to serve the NFS</li> Err codemadness.org 70 i 54029 <li>As my system isn’t online 24/7 for energy reasons, I guess will have to run hammer cleanup myself from time to time</li> Err codemadness.org 70 i 54030 <li>Some uncertainty because hey, it’s kind of exotic but exciting too :)</li> Err codemadness.org 70 i 54031 </ul> Err codemadness.org 70 i 54032 <blockquote> Err codemadness.org 70 i 54033 <p>Overall, I am happy, HAMMER1 and PFS are looking really good, DragonFly is a neat Unix and the community is super friendly (Matthew Dillon actually provided me with a kernel patch to fix the broken ACPI on the PC holding this setup, many thanks!), the system is still a “work in progress” but it is already serving my files as I write this post.</p> Err codemadness.org 70 i 54034 </blockquote> Err codemadness.org 70 i 54035 <blockquote> Err codemadness.org 70 i 54036 <p>Let’s see in 6 months how it goes in the longer run !</p> Err codemadness.org 70 i 54037 </blockquote> Err codemadness.org 70 i 54038 <ul> Err codemadness.org 70 i 54039 <li>Helpful resources : <a href="https://www.dragonflybsd.org/docs/how_to_implement_hammer_pseudo_file_system__40___pfs___41___slave_mirroring_from_pfs_master/">https://www.dragonflybsd.org/docs/how_to_implement_hammer_pseudo_file_system__40___pfs___41___slave_mirroring_from_pfs_master/</a></li> Err codemadness.org 70 i 54040 </ul> Err codemadness.org 70 i 54041 <hr> Err codemadness.org 70 i 54042 <p>###BSDCan 2018 Recap</p> Err codemadness.org 70 i 54043 <ul> Err codemadness.org 70 i 54044 <li>As promised, here is our second part of our BSDCan report, covering the conference proper. The last tutorials/devsummit of that day lead directly into the conference, as people could pick up their registration packs at the Red Lion and have a drink with fellow BSD folks.</li> Err codemadness.org 70 i 54045 <li>Allan and I were there only briefly, as we wanted to get back to the “Newcomers orientation and mentorship” session lead by Michael W. Lucas. This session is intended for people that are new to BSDCan (maybe their first BSD conference ever?) and may have questions. Michael explained everything from the 6-2-1 rule (hours of sleep, meals per day, and number of showers that attendees should have at a minimum), to the partner and widowers program (lead by his wife Liz), to the sessions that people should not miss (opening, closing, and hallway track). Old-time BSDCan folks were asked to stand up so that people can recognize them and ask them any questions they might have during the conferences. The session was well attended. Afterwards, people went for dinner in groups, a big one lead by Michael Lucas to his favorite Shawarma place, followed by gelato (of course). This allowed newbies to mingle over dinner and ice cream, creating a welcoming atmosphere.</li> Err codemadness.org 70 i 54046 <li>The next day, after Dan Langille opened the conference, Benno Rice gave the keynote presentation about “The Tragedy of Systemd”.</li> Err codemadness.org 70 i 54047 <li>Benedict went to the following talks:</li> Err codemadness.org 70 i 54048 </ul> Err codemadness.org 70 i 54049 <blockquote> Err codemadness.org 70 i 54050 <p>“Automating Network Infrastructures with Ansible on FreeBSD” in the DevSummit track. A good talk that connected well with his Ansible tutorial and even allowed some discussions among participants.<br> Err codemadness.org 70 i 54051 “All along the dwatch tower”: Devin delivered a well prepared talk. I first thought that the number of slides would not fit into the time slot, but she even managed to give a demo of her work, which was well received. The dwatch tool she wrote should make it easy for people to get started with DTrace without learning too much about the syntax at first. The visualizations were certainly nice to see, combining different tools together in a new way.<br> Err codemadness.org 70 i 54052 ZFS BoF, lead by Allan and Matthew Ahrens<br> Err codemadness.org 70 i 54053 SSH Key Management by Michael W. Lucas. Yet another great talk where I learned a lot. I did not get to the SSH CA chapter in the new SSH Mastery book, so this was a good way to wet my appetite for it and motivated me to look into creating one for the cluster that I’m managing.<br> Err codemadness.org 70 i 54054 The rest of the day was spent at the FreeBSD Foundation table, talking to various folks. Then, Allan and I had an interview with Kirk McKusick for National FreeBSD Day, then we had a core meeting, followed by a core dinner.</p> Err codemadness.org 70 i 54055 </blockquote> Err codemadness.org 70 i 54056 <ul> Err codemadness.org 70 i 54057 <li>Day 2: Err codemadness.org 70 i 54058 <blockquote> Err codemadness.org 70 i 54059 <p>“Flexible Disk Use in OpenZFS”: Matthew Ahrens talking about the feature he is implementing to expand a RAID-Z with a single disk, as well as device removal.<br> Err codemadness.org 70 i 54060 Allan’s talk about his efforts to implement ZSTD in OpenZFS as another compression algorithm. I liked his overview slides with the numbers comparing the algorithms for their effectiveness and his personal story about the sometimes rocky road to get the feature implemented.<br> Err codemadness.org 70 i 54061 “zrepl - ZFS replication” by Christian Schwarz, was well prepared and even had a demo to show what his snapshot replication tool can do. We covered it on the show before and people can find it under sysutils/zrepl. Feedback and help is welcome.<br> Err codemadness.org 70 i 54062 “The Evolution of FreeBSD Governance” by Kirk McKusick was yet another great talk by him covering the early days of FreeBSD until today, detailing some of the progress and challenges the project faced over the years in terms of leadership and governance. This is an ongoing process that everyone in the community should participate in to keep the project healthy and infused with fresh blood.<br> Err codemadness.org 70 i 54063 Closing session and auction were funny and great as always.<br> Err codemadness.org 70 i 54064 All in all, yet another amazing BSDCan. Thank you Dan Langille and your organizing team for making it happen! Well done.</p> Err codemadness.org 70 i 54065 </blockquote> Err codemadness.org 70 i 54066 </li> Err codemadness.org 70 i 54067 </ul> Err codemadness.org 70 i 54068 <hr> Err codemadness.org 70 i 54069 <p><strong>Digital Ocean</strong></p> Err codemadness.org 70 i 54070 <p>###<a href="http://nomadbsd.org/index.html#rel1.1-rc1">NomadBSD 1.1-RC1 Released</a></p> Err codemadness.org 70 i 54071 <blockquote> Err codemadness.org 70 i 54072 <p>The first – and hopefully final – release candidate of NomadBSD 1.1 is available!</p> Err codemadness.org 70 i 54073 </blockquote> Err codemadness.org 70 i 54074 <ul> Err codemadness.org 70 i 54075 <li>Changes</li> Err codemadness.org 70 i 54076 <li>The base system has been upgraded to FreeBSD 11.2-RC3</li> Err codemadness.org 70 i 54077 <li>EFI booting has been fixed.</li> Err codemadness.org 70 i 54078 <li>Support for modern Intel GPUs has been added.</li> Err codemadness.org 70 i 54079 <li>Support for installing packages has been added.</li> Err codemadness.org 70 i 54080 <li>Improved setup menu.</li> Err codemadness.org 70 i 54081 <li>More software packages:</li> Err codemadness.org 70 i 54082 <li>benchmarks/bonnie++</li> Err codemadness.org 70 i 54083 <li>DSBDisplaySettings</li> Err codemadness.org 70 i 54084 <li>DSBExec</li> Err codemadness.org 70 i 54085 <li>DSBSu</li> Err codemadness.org 70 i 54086 <li>mail/thunderbird</li> Err codemadness.org 70 i 54087 <li>net/mosh</li> Err codemadness.org 70 i 54088 <li>ports-mgmt/octopkg</li> Err codemadness.org 70 i 54089 <li>print/qpdfview</li> Err codemadness.org 70 i 54090 <li>security/nmap</li> Err codemadness.org 70 i 54091 <li>sysutils/ddrescue</li> Err codemadness.org 70 i 54092 <li>sysutils/fusefs-hfsfuse</li> Err codemadness.org 70 i 54093 <li>sysutils/fusefs-sshfs</li> Err codemadness.org 70 i 54094 <li>sysutils/sleuthkit</li> Err codemadness.org 70 i 54095 <li>www/lynx</li> Err codemadness.org 70 i 54096 <li>x11-wm/compton</li> Err codemadness.org 70 i 54097 <li>x11/xev</li> Err codemadness.org 70 i 54098 <li>x11/xterm</li> Err codemadness.org 70 i 54099 <li>Many improvements and bugfixes<br> Err codemadness.org 70 i 54100 The image and instructions can be found <a href="http://nomadbsd.org/download.html">here</a>.</li> Err codemadness.org 70 i 54101 </ul> Err codemadness.org 70 i 54102 <hr> Err codemadness.org 70 i 54103 <p>##News Roundup<br> Err codemadness.org 70 i 54104 <a href="https://undeadly.org/cgi?action=article;sid=20180616115514">LDAP client added to -current</a></p> Err codemadness.org 70 i 54105 <pre><code>CVSROOT: /cvs Err codemadness.org 70 i 54106 Module name: src Err codemadness.org 70 i 54107 Changes by: reyk@cvs.openbsd.org 2018/06/13 09:45:58 Err codemadness.org 70 i 54108 Err codemadness.org 70 i 54109 Log message: Err codemadness.org 70 i 54110 Import ldap(1), a simple ldap search client. Err codemadness.org 70 i 54111 We have an ldapd(8) server and ypldap in base, so it makes sense to Err codemadness.org 70 i 54112 have a simple LDAP client without depending on the OpenLDAP package. Err codemadness.org 70 i 54113 This tool can be used in an ssh(1) AuthorizedKeysCommand script. Err codemadness.org 70 i 54114 Err codemadness.org 70 i 54115 With feedback from many including millert@ schwarze@ gilles@ dlg@ jsing@ Err codemadness.org 70 i 54116 Err codemadness.org 70 i 54117 OK deraadt@ Err codemadness.org 70 i 54118 Err codemadness.org 70 i 54119 Status: Err codemadness.org 70 i 54120 Err codemadness.org 70 i 54121 Vendor Tag: reyk Err codemadness.org 70 i 54122 Release Tags: ldap_20180613 Err codemadness.org 70 i 54123 Err codemadness.org 70 i 54124 N src/usr.bin/ldap/Makefile Err codemadness.org 70 i 54125 N src/usr.bin/ldap/aldap.c Err codemadness.org 70 i 54126 N src/usr.bin/ldap/aldap.h Err codemadness.org 70 i 54127 N src/usr.bin/ldap/ber.c Err codemadness.org 70 i 54128 N src/usr.bin/ldap/ber.h Err codemadness.org 70 i 54129 N src/usr.bin/ldap/ldap.1 Err codemadness.org 70 i 54130 N src/usr.bin/ldap/ldapclient.c Err codemadness.org 70 i 54131 N src/usr.bin/ldap/log.c Err codemadness.org 70 i 54132 N src/usr.bin/ldap/log.h Err codemadness.org 70 i 54133 Err codemadness.org 70 i 54134 No conflicts created by this import Err codemadness.org 70 i 54135 </code></pre> Err codemadness.org 70 i 54136 <hr> Err codemadness.org 70 i 54137 <p>###<a href="https://undeadly.org/cgi?action=article;sid=20180614064341">Intel® FPU Speculation Vulnerability Confirmed</a></p> Err codemadness.org 70 i 54138 <ul> Err codemadness.org 70 i 54139 <li>Earlier this month, Philip Guenther (guenther@) <a href="https://marc.info/?l=openbsd-cvs&amp;m=152818076013158&amp;w=2">committed</a> (to amd64 -current) a change from lazy to semi-eager FPU switching to mitigate against rumored FPU state leakage in Intel® CPUs.</li> Err codemadness.org 70 i 54140 <li>Theo de Raadt (deraadt@) discussed this in <a href="https://undeadly.org/cgi?action=article;sid=20180611101817">his BSDCan 2018 session</a>.</li> Err codemadness.org 70 i 54141 <li>Using information disclosed in Theo’s talk, <a href="https://twitter.com/cperciva/status/1007010583244230656">Colin Percival</a> developed a proof-of-concept exploit in around 5 hours. This seems to have prompted an early end to an embargo (in which OpenBSD was not involved), and the <a href="https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00145.html">official announcement</a> of the vulnerability.</li> Err codemadness.org 70 i 54142 <li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=335072">FPU change in FreeBSD</a></li> Err codemadness.org 70 i 54143 </ul> Err codemadness.org 70 i 54144 <pre><code>Summary: Err codemadness.org 70 i 54145 System software may utilize the Lazy FP state restore technique to delay the restoring of state until an instruction operating on that state is actually executed by the new process. Systems using Intel® Core-based microprocessors may potentially allow a local process to infer data utilizing Lazy FP state restore from another process through a speculative execution side channel. Err codemadness.org 70 i 54146 Description: Err codemadness.org 70 i 54147 System software may opt to utilize Lazy FP state restore instead of eager save and restore of the state upon a context switch. Lazy restored states are potentially vulnerable to exploits where one process may infer register values of other processes through a speculative execution side channel that infers their value. Err codemadness.org 70 i 54148 · CVSS - 4.3 Medium CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N Err codemadness.org 70 i 54149 Affected Products: Err codemadness.org 70 i 54150 Intel® Core-based microprocessors. Err codemadness.org 70 i 54151 Recommendations: Err codemadness.org 70 i 54152 If an XSAVE-enabled feature is disabled, then we recommend either its state component bitmap in the extended control register (XCR0) is set to 0 (e.g. XCR0[bit 2]=0 for AVX, XCR0[bits 7:5]=0 for AVX512) or the corresponding register states of the feature should be cleared prior to being disabled. Also for relevant states (e.g. x87, SSE, AVX, etc.), Intel recommends system software developers utilize Eager FP state restore in lieu of Lazy FP state restore. Err codemadness.org 70 i 54153 Acknowledgements: Err codemadness.org 70 i 54154 Intel would like to thank Julian Stecklina from Amazon Germany, Thomas Prescher from Cyberus Technology GmbH (https://www.cyberus-technology.de/), Zdenek Sojka from SYSGO AG (http://sysgo.com), and Colin Percival for reporting this issue and working with us on coordinated disclosure. Err codemadness.org 70 i 54155 </code></pre> Err codemadness.org 70 i 54156 <hr> Err codemadness.org 70 i 54157 <p><strong>iXsystems</strong><br> Err codemadness.org 70 i 54158 iX Ad Spot<br> Err codemadness.org 70 i 54159 <a href="https://www.ixsystems.com/blog/bsdcan-2018-recap/">iX Systems - BSDCan 2018 Recap</a></p> Err codemadness.org 70 i 54160 <p>###<a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=335012">FreeBSD gets pNFS support</a></p> Err codemadness.org 70 i 54161 <pre><code>Merge the pNFS server code from projects/pnfs-planb-server into head. Err codemadness.org 70 i 54162 Err codemadness.org 70 i 54163 This code merge adds a pNFS service to the NFSv4.1 server. Although it is Err codemadness.org 70 i 54164 a large commit it should not affect behaviour for a non-pNFS NFS server. Err codemadness.org 70 i 54165 Some documentation on how this works can be found at: Err codemadness.org 70 i 54166 Merge the pN http://people.freebsd.org/~rmacklem/pnfs-planb-setup.txt Err codemadness.org 70 i 54167 and will hopefully be turned into a proper document soon. Err codemadness.org 70 i 54168 This is a merge of the kernel code. Userland and man page changes will Err codemadness.org 70 i 54169 come soon, once the dust settles on this merge. Err codemadness.org 70 i 54170 It has passed a &quot;make universe&quot;, so I hope it will not cause build problems. Err codemadness.org 70 i 54171 It also adds NFSv4.1 server support for the &quot;current stateid&quot;. Err codemadness.org 70 i 54172 Err codemadness.org 70 i 54173 Here is a brief overview of the pNFS service: Err codemadness.org 70 i 54174 A pNFS service separates the Read/Write operations from all the other NFSv4.1 Err codemadness.org 70 i 54175 Metadata operations. It is hoped that this separation allows a pNFS service Err codemadness.org 70 i 54176 to be configured that exceeds the limits of a single NFS server for either Err codemadness.org 70 i 54177 storage capacity and/or I/O bandwidth. Err codemadness.org 70 i 54178 It is possible to configure mirroring within the data servers (DSs) so that Err codemadness.org 70 i 54179 the data storage file for an MDS file will be mirrored on two or more of Err codemadness.org 70 i 54180 the DSs. Err codemadness.org 70 i 54181 When this is used, failure of a DS will not stop the pNFS service and a Err codemadness.org 70 i 54182 failed DS can be recovered once repaired while the pNFS service continues Err codemadness.org 70 i 54183 to operate. Although two way mirroring would be the norm, it is possible Err codemadness.org 70 i 54184 to set a mirroring level of up to four or the number of DSs, whichever is Err codemadness.org 70 i 54185 less. Err codemadness.org 70 i 54186 The Metadata server will always be a single point of failure, Err codemadness.org 70 i 54187 just as a single NFS server is. Err codemadness.org 70 i 54188 Err codemadness.org 70 i 54189 A Plan B pNFS service consists of a single MetaData Server (MDS) and K Err codemadness.org 70 i 54190 Data Servers (DS), all of which are recent FreeBSD systems. Err codemadness.org 70 i 54191 Clients will mount the MDS as they would a single NFS server. Err codemadness.org 70 i 54192 When files are created, the MDS creates a file tree identical to what a Err codemadness.org 70 i 54193 single NFS server creates, except that all the regular (VREG) files will Err codemadness.org 70 i 54194 be empty. As such, if you look at the exported tree on the MDS directly Err codemadness.org 70 i 54195 on the MDS server (not via an NFS mount), the files will all be of size 0. Err codemadness.org 70 i 54196 Each of these files will also have two extended attributes in the system Err codemadness.org 70 i 54197 attribute name space: Err codemadness.org 70 i 54198 pnfsd.dsfile - This extended attrbute stores the information that Err codemadness.org 70 i 54199 the MDS needs to find the data storage file(s) on DS(s) for this file. Err codemadness.org 70 i 54200 pnfsd.dsattr - This extended attribute stores the Size, AccessTime, ModifyTime Err codemadness.org 70 i 54201 and Change attributes for the file, so that the MDS doesn't need to Err codemadness.org 70 i 54202 acquire the attributes from the DS for every Getattr operation. Err codemadness.org 70 i 54203 For each regular (VREG) file, the MDS creates a data storage file on one Err codemadness.org 70 i 54204 (or more if mirroring is enabled) of the DSs in one of the &quot;dsNN&quot; Err codemadness.org 70 i 54205 subdirectories. The name of this file is the file handle Err codemadness.org 70 i 54206 of the file on the MDS in hexadecimal so that the name is unique. Err codemadness.org 70 i 54207 The DSs use subdirectories named &quot;ds0&quot; to &quot;dsN&quot; so that no one directory Err codemadness.org 70 i 54208 gets too large. The value of &quot;N&quot; is set via the sysctl vfs.nfsd.dsdirsize Err codemadness.org 70 i 54209 on the MDS, with the default being 20. Err codemadness.org 70 i 54210 For production servers that will store a lot of files, this value should Err codemadness.org 70 i 54211 probably be much larger. Err codemadness.org 70 i 54212 It can be increased when the &quot;nfsd&quot; daemon is not running on the MDS, Err codemadness.org 70 i 54213 once the &quot;dsK&quot; directories are created. Err codemadness.org 70 i 54214 Err codemadness.org 70 i 54215 For pNFS aware NFSv4.1 clients, the FreeBSD server will return two pieces Err codemadness.org 70 i 54216 of information to the client that allows it to do I/O directly to the DS. Err codemadness.org 70 i 54217 DeviceInfo - This is relatively static information that defines what a DS Err codemadness.org 70 i 54218 is. The critical bits of information returned by the FreeBSD Err codemadness.org 70 i 54219 server is the IP address of the DS and, for the Flexible Err codemadness.org 70 i 54220 File layout, that NFSv4.1 is to be used and that it is Err codemadness.org 70 i 54221 &quot;tightly coupled&quot;. Err codemadness.org 70 i 54222 There is a &quot;deviceid&quot; which identifies the DeviceInfo. Err codemadness.org 70 i 54223 Layout - This is per file and can be recalled by the server when it Err codemadness.org 70 i 54224 is no longer valid. For the FreeBSD server, there is support Err codemadness.org 70 i 54225 for two types of layout, call File and Flexible File layout. Err codemadness.org 70 i 54226 Both allow the client to do I/O on the DS via NFSv4.1 I/O Err codemadness.org 70 i 54227 operations. The Flexible File layout is a more recent variant Err codemadness.org 70 i 54228 that allows specification of mirrors, where the client is Err codemadness.org 70 i 54229 expected to do writes to all mirrors to maintain them in a Err codemadness.org 70 i 54230 consistent state. The Flexible File layout also allows the Err codemadness.org 70 i 54231 client to report I/O errors for a DS back to the MDS. Err codemadness.org 70 i 54232 The Flexible File layout supports two variants referred to as Err codemadness.org 70 i 54233 &quot;tightly coupled&quot; vs &quot;loosely coupled&quot;. The FreeBSD server always Err codemadness.org 70 i 54234 uses the &quot;tightly coupled&quot; variant where the client uses the Err codemadness.org 70 i 54235 same credentials to do I/O on the DS as it would on the MDS. Err codemadness.org 70 i 54236 For the &quot;loosely coupled&quot; variant, the layout specifies a Err codemadness.org 70 i 54237 synthetic user/group that the client uses to do I/O on the DS. Err codemadness.org 70 i 54238 The FreeBSD server does not do striping and always returns Err codemadness.org 70 i 54239 layouts for the entire file. The critical information in a layout Err codemadness.org 70 i 54240 is Read vs Read/Writea and DeviceID(s) that identify which Err codemadness.org 70 i 54241 DS(s) the data is stored on. Err codemadness.org 70 i 54242 Err codemadness.org 70 i 54243 At this time, the MDS generates File Layout layouts to NFSv4.1 clients Err codemadness.org 70 i 54244 that know how to do pNFS for the non-mirrored DS case unless the sysctl Err codemadness.org 70 i 54245 vfs.nfsd.default_flexfile is set non-zero, in which case Flexible File Err codemadness.org 70 i 54246 layouts are generated. Err codemadness.org 70 i 54247 The mirrored DS configuration always generates Flexible File layouts. Err codemadness.org 70 i 54248 For NFS clients that do not support NFSv4.1 pNFS, all I/O operations Err codemadness.org 70 i 54249 are done against the MDS which acts as a proxy for the appropriate DS(s). Err codemadness.org 70 i 54250 When the MDS receives an I/O RPC, it will do the RPC on the DS as a proxy. Err codemadness.org 70 i 54251 If the DS is on the same machine, the MDS/DS will do the RPC on the DS as Err codemadness.org 70 i 54252 a proxy and so on, until the machine runs out of some resource, such as Err codemadness.org 70 i 54253 session slots or mbufs. Err codemadness.org 70 i 54254 As such, DSs must be separate systems from the MDS. Err codemadness.org 70 i 54255 Err codemadness.org 70 i 54256 *** Err codemadness.org 70 i 54257 Err codemadness.org 70 i 54258 ###[What does {some strange unix command name} stand for?](http://www.unixguide.net/unix/faq/1.3.shtml) Err codemadness.org 70 i 54259 Err codemadness.org 70 i 54260 + awk = &quot;Aho Weinberger and Kernighan&quot; Err codemadness.org 70 i 54261 + grep = &quot;Global Regular Expression Print&quot; Err codemadness.org 70 i 54262 + fgrep = &quot;Fixed GREP&quot;. Err codemadness.org 70 i 54263 + egrep = &quot;Extended GREP&quot; Err codemadness.org 70 i 54264 + cat = &quot;CATenate&quot; Err codemadness.org 70 i 54265 + gecos = &quot;General Electric Comprehensive Operating Supervisor&quot; Err codemadness.org 70 i 54266 + nroff = &quot;New ROFF&quot; Err codemadness.org 70 i 54267 + troff = &quot;Typesetter new ROFF&quot; Err codemadness.org 70 i 54268 + tee = T Err codemadness.org 70 i 54269 + bss = &quot;Block Started by Symbol Err codemadness.org 70 i 54270 + biff = &quot;BIFF&quot; Err codemadness.org 70 i 54271 + rc (as in &quot;.cshrc&quot; or &quot;/etc/rc&quot;) = &quot;RunCom&quot; Err codemadness.org 70 i 54272 + Don Libes' book &quot;Life with Unix&quot; contains lots more of these Err codemadness.org 70 i 54273 tidbits. Err codemadness.org 70 i 54274 *** Err codemadness.org 70 i 54275 Err codemadness.org 70 i 54276 ##Beastie Bits Err codemadness.org 70 i 54277 + [RetroBSD: Unix for microcontrollers](http://retrobsd.org/wiki/doku.php) Err codemadness.org 70 i 54278 + [On the matter of OpenBSD breaking embargos (KRACK)](https://marc.info/?l=openbsd-tech&amp;m=152910536208954&amp;w=2) Err codemadness.org 70 i 54279 + [Theo's Basement Computer Paradise (1998)](https://zeus.theos.com/deraadt/hosts.html) Err codemadness.org 70 i 54280 + [Airport Extreme runs NetBSD](https://jcs.org/2018/06/12/airport_ssh) Err codemadness.org 70 i 54281 + [What UNIX shell could have been](https://rain-1.github.io/shell-2.html) Err codemadness.org 70 i 54282 Err codemadness.org 70 i 54283 *** Err codemadness.org 70 i 54284 Tarsnap ad Err codemadness.org 70 i 54285 *** Err codemadness.org 70 i 54286 Err codemadness.org 70 i 54287 ##Feedback/Questions Err codemadness.org 70 i 54288 + We need more feedback and questions. Please email feedback@bsdnow.tv Err codemadness.org 70 i 54289 + Also, many of you owe us BSDCan trip reports! We have shared what our experience at BSDCan was like, but we want to hear about yours. What can we do better next year? What was it like being there for the first time? Err codemadness.org 70 i 54290 + [Jason writes in](https://slexy.org/view/s205jU58X2) Err codemadness.org 70 i 54291 + https://www.wheelsystems.com/en/products/wheel-fudo-psm/ Err codemadness.org 70 i 54292 + [June 19th was National FreeBSD Day](https://twitter.com/search?src=typd&amp;q=%23FreeBSDDay) Err codemadness.org 70 i 54293 *** Err codemadness.org 70 i 54294 Err codemadness.org 70 i 54295 - Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [feedback@bsdnow.tv](mailto:feedback@bsdnow.tv) Err codemadness.org 70 i 54296 *** Err codemadness.org 70 i 54297 Err codemadness.org 70 i 54298 </code></pre> Err codemadness.org 70 i 54299 Err codemadness.org 70 i 54300 freebsd,openbsd,netbsd,dragonflybsd,trueos,trident,hardenedbsd,tutorial,howto,guide,bsd,interview,hammer,Intel,NomadBSD,LDAP,pNFS,RetroBSD Err codemadness.org 70 i 54301 Err codemadness.org 70 i 54302 DragonflyBSD’s hammer1 encrypted master/slave setup, second part of our BSDCan recap, NomadBSD 1.1-RC1 available, OpenBSD adds an LDAP client to base, FreeBSD gets pNFS support, Intel FPU Speculation Vulnerability confirmed, and what some Unix command names mean.

Err codemadness.org 70 i 54303 Err codemadness.org 70 i 54304

##Headlines
Err codemadness.org 70 i 54305 ###DragonflyBSD: Towards a HAMMER1 master/slave encrypted setup with LUKS

Err codemadness.org 70 i 54306 Err codemadness.org 70 i 54307
Err codemadness.org 70 i 54308

I just wanted to share my experience with setting up DragonFly master/slave HAMMER1 PFS’s on top of LUKS
Err codemadness.org 70 i 54309 So after a long time using an Synology for my NFS needs, I decided it was time to rethink my setup a little since I had several issues with it :

Err codemadness.org 70 i 54310
Err codemadness.org 70 i 54311 Err codemadness.org 70 i 54312
    Err codemadness.org 70 i 54313
  • You cannot run NFS on top of encrypted partitions easily
  • Err codemadness.org 70 i 54314
  • I suspect I am having some some data corruption (bitrot) on the ext4 filesystem
  • Err codemadness.org 70 i 54315
  • the NIC was stcuk to 100 Mbps instead of 1 Gbps even after swapping cables, switches, you name it
  • Err codemadness.org 70 i 54316
  • It’s proprietary
  • Err codemadness.org 70 i 54317
Err codemadness.org 70 i 54318 Err codemadness.org 70 i 54319
Err codemadness.org 70 i 54320

I have been playing with DragonFly in the past and knew about HAMMER, now I just had the perfect excuse to actually use it in production :) After setting up the OS, creating the LUKS partition and HAMMER FS was easy :

Err codemadness.org 70 i 54321
Err codemadness.org 70 i 54322 Err codemadness.org 70 i 54323

kdload dm
Err codemadness.org 70 i 54324 cryptsetup luksFormat /dev/serno/<id1>
Err codemadness.org 70 i 54325 cryptsetup luksOpen /dev/serno/<id1> fort_knox
Err codemadness.org 70 i 54326 newfs_hammer -L hammer1_secure_master /dev/mapper/fort_knox
Err codemadness.org 70 i 54327 cryptsetup luksFormat /dev/serno/<id2>
Err codemadness.org 70 i 54328 cryptsetup luksOpen /dev/serno/<id2> fort_knox_slave
Err codemadness.org 70 i 54329 newfs_hammer -L hammer1_secure_slave /dev/mapper/fort_knox_slave

Err codemadness.org 70 i 54330 Err codemadness.org 70 i 54331
    Err codemadness.org 70 i 54332
  • Mount the 2 drives :
  • Err codemadness.org 70 i 54333
Err codemadness.org 70 i 54334 Err codemadness.org 70 i 54335

mount /dev/mapper/fort_knox /fort_knox
Err codemadness.org 70 i 54336 mount /dev/mapper_fort_know_slave /fort_knox_slave

Err codemadness.org 70 i 54337 Err codemadness.org 70 i 54338
Err codemadness.org 70 i 54339

You can now put your data under /fort_knox
Err codemadness.org 70 i 54340 Now, off to setting up the replication, first get the shared-uuid of /fort_knox

Err codemadness.org 70 i 54341
Err codemadness.org 70 i 54342 Err codemadness.org 70 i 54343

hammer pfs-status /fort_knox

Err codemadness.org 70 i 54344 Err codemadness.org 70 i 54345
Err codemadness.org 70 i 54346

Create a PFS slave “linked” to the master

Err codemadness.org 70 i 54347
Err codemadness.org 70 i 54348 Err codemadness.org 70 i 54349

hammer pfs-slave /fort_knox_slave/pfs/slave shared-uuid=f9e7cc0d-eb59-10e3-a5b5-01e6e7cefc12

Err codemadness.org 70 i 54350 Err codemadness.org 70 i 54351
Err codemadness.org 70 i 54352

And then stream your data to the slave PFS !

Err codemadness.org 70 i 54353
Err codemadness.org 70 i 54354 Err codemadness.org 70 i 54355

hammer mirror-stream /fort_knox /fort_knox_slave/pfs/slave

Err codemadness.org 70 i 54356 Err codemadness.org 70 i 54357
Err codemadness.org 70 i 54358

After that, setting NFS is fairly trivial even though I had problem with the /etc/exports syntax which is different than Linux

Err codemadness.org 70 i 54359
Err codemadness.org 70 i 54360 Err codemadness.org 70 i 54361
Err codemadness.org 70 i 54362

There’s a few things I wish would be better though but nothing too problematic or without workarounds :

Err codemadness.org 70 i 54363
Err codemadness.org 70 i 54364 Err codemadness.org 70 i 54365
    Err codemadness.org 70 i 54366
  • Cannot unlock LUKS partitions at boot time afaik (Acceptable tradeoff for the added security LUKS gives me vs my old Synology setup) but this force me to run a script to unlock LUKS, mount hammer and start mirror-stream at each boot
  • Err codemadness.org 70 i 54367
  • No S1/S3 sleep so I made a script to shutdown the system when there’s no network neighborgs to serve the NFS
  • Err codemadness.org 70 i 54368
  • As my system isn’t online 24/7 for energy reasons, I guess will have to run hammer cleanup myself from time to time
  • Err codemadness.org 70 i 54369
  • Some uncertainty because hey, it’s kind of exotic but exciting too :)
  • Err codemadness.org 70 i 54370
Err codemadness.org 70 i 54371 Err codemadness.org 70 i 54372
Err codemadness.org 70 i 54373

Overall, I am happy, HAMMER1 and PFS are looking really good, DragonFly is a neat Unix and the community is super friendly (Matthew Dillon actually provided me with a kernel patch to fix the broken ACPI on the PC holding this setup, many thanks!), the system is still a “work in progress” but it is already serving my files as I write this post.

Err codemadness.org 70 i 54374
Err codemadness.org 70 i 54375 Err codemadness.org 70 i 54376
Err codemadness.org 70 i 54377

Let’s see in 6 months how it goes in the longer run !

Err codemadness.org 70 i 54378
Err codemadness.org 70 i 54379 Err codemadness.org 70 i 54380 Err codemadness.org 70 i 54383 Err codemadness.org 70 i 54384


Err codemadness.org 70 i 54385 Err codemadness.org 70 i 54386

###BSDCan 2018 Recap

Err codemadness.org 70 i 54387 Err codemadness.org 70 i 54388
    Err codemadness.org 70 i 54389
  • As promised, here is our second part of our BSDCan report, covering the conference proper. The last tutorials/devsummit of that day lead directly into the conference, as people could pick up their registration packs at the Red Lion and have a drink with fellow BSD folks.
  • Err codemadness.org 70 i 54390
  • Allan and I were there only briefly, as we wanted to get back to the “Newcomers orientation and mentorship” session lead by Michael W. Lucas. This session is intended for people that are new to BSDCan (maybe their first BSD conference ever?) and may have questions. Michael explained everything from the 6-2-1 rule (hours of sleep, meals per day, and number of showers that attendees should have at a minimum), to the partner and widowers program (lead by his wife Liz), to the sessions that people should not miss (opening, closing, and hallway track). Old-time BSDCan folks were asked to stand up so that people can recognize them and ask them any questions they might have during the conferences. The session was well attended. Afterwards, people went for dinner in groups, a big one lead by Michael Lucas to his favorite Shawarma place, followed by gelato (of course). This allowed newbies to mingle over dinner and ice cream, creating a welcoming atmosphere.
  • Err codemadness.org 70 i 54391
  • The next day, after Dan Langille opened the conference, Benno Rice gave the keynote presentation about “The Tragedy of Systemd”.
  • Err codemadness.org 70 i 54392
  • Benedict went to the following talks:
  • Err codemadness.org 70 i 54393
Err codemadness.org 70 i 54394 Err codemadness.org 70 i 54395
Err codemadness.org 70 i 54396

“Automating Network Infrastructures with Ansible on FreeBSD” in the DevSummit track. A good talk that connected well with his Ansible tutorial and even allowed some discussions among participants.
Err codemadness.org 70 i 54397 “All along the dwatch tower”: Devin delivered a well prepared talk. I first thought that the number of slides would not fit into the time slot, but she even managed to give a demo of her work, which was well received. The dwatch tool she wrote should make it easy for people to get started with DTrace without learning too much about the syntax at first. The visualizations were certainly nice to see, combining different tools together in a new way.
Err codemadness.org 70 i 54398 ZFS BoF, lead by Allan and Matthew Ahrens
Err codemadness.org 70 i 54399 SSH Key Management by Michael W. Lucas. Yet another great talk where I learned a lot. I did not get to the SSH CA chapter in the new SSH Mastery book, so this was a good way to wet my appetite for it and motivated me to look into creating one for the cluster that I’m managing.
Err codemadness.org 70 i 54400 The rest of the day was spent at the FreeBSD Foundation table, talking to various folks. Then, Allan and I had an interview with Kirk McKusick for National FreeBSD Day, then we had a core meeting, followed by a core dinner.

Err codemadness.org 70 i 54401
Err codemadness.org 70 i 54402 Err codemadness.org 70 i 54403
    Err codemadness.org 70 i 54404
  • Day 2: Err codemadness.org 70 i 54405
    Err codemadness.org 70 i 54406

    “Flexible Disk Use in OpenZFS”: Matthew Ahrens talking about the feature he is implementing to expand a RAID-Z with a single disk, as well as device removal.
    Err codemadness.org 70 i 54407 Allan’s talk about his efforts to implement ZSTD in OpenZFS as another compression algorithm. I liked his overview slides with the numbers comparing the algorithms for their effectiveness and his personal story about the sometimes rocky road to get the feature implemented.
    Err codemadness.org 70 i 54408 “zrepl - ZFS replication” by Christian Schwarz, was well prepared and even had a demo to show what his snapshot replication tool can do. We covered it on the show before and people can find it under sysutils/zrepl. Feedback and help is welcome.
    Err codemadness.org 70 i 54409 “The Evolution of FreeBSD Governance” by Kirk McKusick was yet another great talk by him covering the early days of FreeBSD until today, detailing some of the progress and challenges the project faced over the years in terms of leadership and governance. This is an ongoing process that everyone in the community should participate in to keep the project healthy and infused with fresh blood.
    Err codemadness.org 70 i 54410 Closing session and auction were funny and great as always.
    Err codemadness.org 70 i 54411 All in all, yet another amazing BSDCan. Thank you Dan Langille and your organizing team for making it happen! Well done.

    Err codemadness.org 70 i 54412
    Err codemadness.org 70 i 54413
  • Err codemadness.org 70 i 54414
Err codemadness.org 70 i 54415 Err codemadness.org 70 i 54416


Err codemadness.org 70 i 54417 Err codemadness.org 70 i 54418

Digital Ocean

Err codemadness.org 70 i 54419 Err codemadness.org 70 i 54420

###NomadBSD 1.1-RC1 Released

Err codemadness.org 70 i 54421 Err codemadness.org 70 i 54422
Err codemadness.org 70 i 54423

The first – and hopefully final – release candidate of NomadBSD 1.1 is available!

Err codemadness.org 70 i 54424
Err codemadness.org 70 i 54425 Err codemadness.org 70 i 54426
    Err codemadness.org 70 i 54427
  • Changes
  • Err codemadness.org 70 i 54428
  • The base system has been upgraded to FreeBSD 11.2-RC3
  • Err codemadness.org 70 i 54429
  • EFI booting has been fixed.
  • Err codemadness.org 70 i 54430
  • Support for modern Intel GPUs has been added.
  • Err codemadness.org 70 i 54431
  • Support for installing packages has been added.
  • Err codemadness.org 70 i 54432
  • Improved setup menu.
  • Err codemadness.org 70 i 54433
  • More software packages:
  • Err codemadness.org 70 i 54434
  • benchmarks/bonnie++
  • Err codemadness.org 70 i 54435
  • DSBDisplaySettings
  • Err codemadness.org 70 i 54436
  • DSBExec
  • Err codemadness.org 70 i 54437
  • DSBSu
  • Err codemadness.org 70 i 54438
  • mail/thunderbird
  • Err codemadness.org 70 i 54439
  • net/mosh
  • Err codemadness.org 70 i 54440
  • ports-mgmt/octopkg
  • Err codemadness.org 70 i 54441
  • print/qpdfview
  • Err codemadness.org 70 i 54442
  • security/nmap
  • Err codemadness.org 70 i 54443
  • sysutils/ddrescue
  • Err codemadness.org 70 i 54444
  • sysutils/fusefs-hfsfuse
  • Err codemadness.org 70 i 54445
  • sysutils/fusefs-sshfs
  • Err codemadness.org 70 i 54446
  • sysutils/sleuthkit
  • Err codemadness.org 70 i 54447
  • www/lynx
  • Err codemadness.org 70 i 54448
  • x11-wm/compton
  • Err codemadness.org 70 i 54449
  • x11/xev
  • Err codemadness.org 70 i 54450
  • x11/xterm
  • Err codemadness.org 70 i 54451
  • Many improvements and bugfixes
    Err codemadness.org 70 i 54452 The image and instructions can be found here.
  • Err codemadness.org 70 i 54453
Err codemadness.org 70 i 54454 Err codemadness.org 70 i 54455


Err codemadness.org 70 i 54456 Err codemadness.org 70 i 54457

##News Roundup
Err codemadness.org 70 i 54458 ###LDAP client added to -current

Err codemadness.org 70 i 54459 Err codemadness.org 70 i 54460
CVSROOT:    /cvs	Err	codemadness.org	70
i 54461 Module name:    src	Err	codemadness.org	70
i 54462 Changes by: reyk@cvs.openbsd.org    2018/06/13 09:45:58	Err	codemadness.org	70
i 54463 	Err	codemadness.org	70
i 54464 Log message:	Err	codemadness.org	70
i 54465     Import ldap(1), a simple ldap search client.	Err	codemadness.org	70
i 54466     We have an ldapd(8) server and ypldap in base, so it makes sense to	Err	codemadness.org	70
i 54467     have a simple LDAP client without depending on the OpenLDAP package.	Err	codemadness.org	70
i 54468     This tool can be used in an ssh(1) AuthorizedKeysCommand script.	Err	codemadness.org	70
i 54469     	Err	codemadness.org	70
i 54470     With feedback from many including millert@ schwarze@ gilles@ dlg@ jsing@	Err	codemadness.org	70
i 54471     	Err	codemadness.org	70
i 54472     OK deraadt@	Err	codemadness.org	70
i 54473     	Err	codemadness.org	70
i 54474     Status:	Err	codemadness.org	70
i 54475     	Err	codemadness.org	70
i 54476     Vendor Tag: reyk	Err	codemadness.org	70
i 54477     Release Tags:   ldap_20180613	Err	codemadness.org	70
i 54478     	Err	codemadness.org	70
i 54479     N src/usr.bin/ldap/Makefile	Err	codemadness.org	70
i 54480     N src/usr.bin/ldap/aldap.c	Err	codemadness.org	70
i 54481     N src/usr.bin/ldap/aldap.h	Err	codemadness.org	70
i 54482     N src/usr.bin/ldap/ber.c	Err	codemadness.org	70
i 54483     N src/usr.bin/ldap/ber.h	Err	codemadness.org	70
i 54484     N src/usr.bin/ldap/ldap.1	Err	codemadness.org	70
i 54485     N src/usr.bin/ldap/ldapclient.c	Err	codemadness.org	70
i 54486     N src/usr.bin/ldap/log.c	Err	codemadness.org	70
i 54487     N src/usr.bin/ldap/log.h	Err	codemadness.org	70
i 54488     	Err	codemadness.org	70
i 54489     No conflicts created by this import	Err	codemadness.org	70
i 54490 
Err codemadness.org 70 i 54491 Err codemadness.org 70 i 54492


Err codemadness.org 70 i 54493 Err codemadness.org 70 i 54494

###Intel® FPU Speculation Vulnerability Confirmed

Err codemadness.org 70 i 54495 Err codemadness.org 70 i 54496
    Err codemadness.org 70 i 54497
  • Earlier this month, Philip Guenther (guenther@) committed (to amd64 -current) a change from lazy to semi-eager FPU switching to mitigate against rumored FPU state leakage in Intel® CPUs.
  • Err codemadness.org 70 i 54498
  • Theo de Raadt (deraadt@) discussed this in his BSDCan 2018 session.
  • Err codemadness.org 70 i 54499
  • Using information disclosed in Theo’s talk, Colin Percival developed a proof-of-concept exploit in around 5 hours. This seems to have prompted an early end to an embargo (in which OpenBSD was not involved), and the official announcement of the vulnerability.
  • Err codemadness.org 70 i 54500
  • FPU change in FreeBSD
  • Err codemadness.org 70 i 54501
Err codemadness.org 70 i 54502 Err codemadness.org 70 i 54503
Summary:	Err	codemadness.org	70
i 54504 	Err	codemadness.org	70
i 54505 System software may utilize the Lazy FP state restore technique to delay the restoring of state until an instruction operating on that state is actually executed by the new process. Systems using Intel® Core-based microprocessors may potentially allow a local process to infer data utilizing Lazy FP state restore from another process through a speculative execution side channel.	Err	codemadness.org	70
i 54506 	Err	codemadness.org	70
i 54507 Description:	Err	codemadness.org	70
i 54508 	Err	codemadness.org	70
i 54509 System software may opt to utilize Lazy FP state restore instead of eager save and restore of the state upon a context switch. Lazy restored states are potentially vulnerable to exploits where one process may infer register values of other processes through a speculative execution side channel that infers their value.	Err	codemadness.org	70
i 54510 	Err	codemadness.org	70
i 54511     ·    CVSS - 4.3 Medium CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N	Err	codemadness.org	70
i 54512 Affected Products:	Err	codemadness.org	70
i 54513 	Err	codemadness.org	70
i 54514 Intel® Core-based microprocessors.	Err	codemadness.org	70
i 54515 	Err	codemadness.org	70
i 54516 Recommendations:	Err	codemadness.org	70
i 54517 	Err	codemadness.org	70
i 54518 If an XSAVE-enabled feature is disabled, then we recommend either its state component bitmap in the extended control register (XCR0) is set to 0 (e.g. XCR0[bit 2]=0 for AVX, XCR0[bits 7:5]=0 for AVX512) or the corresponding register states of the feature should be cleared prior to being disabled. Also for relevant states (e.g. x87, SSE, AVX, etc.), Intel recommends system software developers utilize Eager FP state restore in lieu of Lazy FP state restore.	Err	codemadness.org	70
i 54519 	Err	codemadness.org	70
i 54520 Acknowledgements:	Err	codemadness.org	70
i 54521 	Err	codemadness.org	70
i 54522 Intel would like to thank Julian Stecklina from Amazon Germany, Thomas Prescher from Cyberus Technology GmbH (https://www.cyberus-technology.de/), Zdenek Sojka from SYSGO AG (http://sysgo.com), and Colin Percival for reporting this issue and working with us on coordinated disclosure.	Err	codemadness.org	70
i 54523 
Err codemadness.org 70 i 54524 Err codemadness.org 70 i 54525


Err codemadness.org 70 i 54526 Err codemadness.org 70 i 54527

iXsystems
Err codemadness.org 70 i 54528 iX Ad Spot
Err codemadness.org 70 i 54529 ###iX Systems - BSDCan 2018 Recap

Err codemadness.org 70 i 54530 Err codemadness.org 70 i 54531

###FreeBSD gets pNFS support

Err codemadness.org 70 i 54532 Err codemadness.org 70 i 54533
Merge the pNFS server code from projects/pnfs-planb-server into head.	Err	codemadness.org	70
i 54534 	Err	codemadness.org	70
i 54535 This code merge adds a pNFS service to the NFSv4.1 server. Although it is	Err	codemadness.org	70
i 54536 a large commit it should not affect behaviour for a non-pNFS NFS server.	Err	codemadness.org	70
i 54537 Some documentation on how this works can be found at:	Err	codemadness.org	70
i 54538 Merge the pN http://people.freebsd.org/~rmacklem/pnfs-planb-setup.txt	Err	codemadness.org	70
i 54539 and will hopefully be turned into a proper document soon.	Err	codemadness.org	70
i 54540 This is a merge of the kernel code. Userland and man page changes will	Err	codemadness.org	70
i 54541 come soon, once the dust settles on this merge.	Err	codemadness.org	70
i 54542 It has passed a "make universe", so I hope it will not cause build problems.	Err	codemadness.org	70
i 54543 It also adds NFSv4.1 server support for the "current stateid".	Err	codemadness.org	70
i 54544 	Err	codemadness.org	70
i 54545 Here is a brief overview of the pNFS service:	Err	codemadness.org	70
i 54546 A pNFS service separates the Read/Write operations from all the other NFSv4.1	Err	codemadness.org	70
i 54547 Metadata operations. It is hoped that this separation allows a pNFS service	Err	codemadness.org	70
i 54548 to be configured that exceeds the limits of a single NFS server for either	Err	codemadness.org	70
i 54549 storage capacity and/or I/O bandwidth.	Err	codemadness.org	70
i 54550 It is possible to configure mirroring within the data servers (DSs) so that	Err	codemadness.org	70
i 54551 the data storage file for an MDS file will be mirrored on two or more of	Err	codemadness.org	70
i 54552 the DSs.	Err	codemadness.org	70
i 54553 When this is used, failure of a DS will not stop the pNFS service and a	Err	codemadness.org	70
i 54554 failed DS can be recovered once repaired while the pNFS service continues	Err	codemadness.org	70
i 54555 to operate.  Although two way mirroring would be the norm, it is possible	Err	codemadness.org	70
i 54556 to set a mirroring level of up to four or the number of DSs, whichever is	Err	codemadness.org	70
i 54557 less.	Err	codemadness.org	70
i 54558 The Metadata server will always be a single point of failure,	Err	codemadness.org	70
i 54559 just as a single NFS server is.	Err	codemadness.org	70
i 54560 	Err	codemadness.org	70
i 54561 A Plan B pNFS service consists of a single MetaData Server (MDS) and K	Err	codemadness.org	70
i 54562 Data Servers (DS), all of which are recent FreeBSD systems.	Err	codemadness.org	70
i 54563 Clients will mount the MDS as they would a single NFS server.	Err	codemadness.org	70
i 54564 When files are created, the MDS creates a file tree identical to what a	Err	codemadness.org	70
i 54565 single NFS server creates, except that all the regular (VREG) files will	Err	codemadness.org	70
i 54566 be empty. As such, if you look at the exported tree on the MDS directly	Err	codemadness.org	70
i 54567 on the MDS server (not via an NFS mount), the files will all be of size 0.	Err	codemadness.org	70
i 54568 Each of these files will also have two extended attributes in the system	Err	codemadness.org	70
i 54569 attribute name space:	Err	codemadness.org	70
i 54570 pnfsd.dsfile - This extended attrbute stores the information that	Err	codemadness.org	70
i 54571     the MDS needs to find the data storage file(s) on DS(s) for this file.	Err	codemadness.org	70
i 54572 pnfsd.dsattr - This extended attribute stores the Size, AccessTime, ModifyTime	Err	codemadness.org	70
i 54573     and Change attributes for the file, so that the MDS doesn't need to	Err	codemadness.org	70
i 54574     acquire the attributes from the DS for every Getattr operation.	Err	codemadness.org	70
i 54575 For each regular (VREG) file, the MDS creates a data storage file on one	Err	codemadness.org	70
i 54576 (or more if mirroring is enabled) of the DSs in one of the "dsNN"	Err	codemadness.org	70
i 54577 subdirectories.  The name of this file is the file handle	Err	codemadness.org	70
i 54578 of the file on the MDS in hexadecimal so that the name is unique.	Err	codemadness.org	70
i 54579 The DSs use subdirectories named "ds0" to "dsN" so that no one directory	Err	codemadness.org	70
i 54580 gets too large. The value of "N" is set via the sysctl vfs.nfsd.dsdirsize	Err	codemadness.org	70
i 54581 on the MDS, with the default being 20.	Err	codemadness.org	70
i 54582 For production servers that will store a lot of files, this value should	Err	codemadness.org	70
i 54583 probably be much larger.	Err	codemadness.org	70
i 54584 It can be increased when the "nfsd" daemon is not running on the MDS,	Err	codemadness.org	70
i 54585 once the "dsK" directories are created.	Err	codemadness.org	70
i 54586 	Err	codemadness.org	70
i 54587 For pNFS aware NFSv4.1 clients, the FreeBSD server will return two pieces	Err	codemadness.org	70
i 54588 of information to the client that allows it to do I/O directly to the DS.	Err	codemadness.org	70
i 54589 DeviceInfo - This is relatively static information that defines what a DS	Err	codemadness.org	70
i 54590              is. The critical bits of information returned by the FreeBSD	Err	codemadness.org	70
i 54591              server is the IP address of the DS and, for the Flexible	Err	codemadness.org	70
i 54592              File layout, that NFSv4.1 is to be used and that it is	Err	codemadness.org	70
i 54593              "tightly coupled".	Err	codemadness.org	70
i 54594              There is a "deviceid" which identifies the DeviceInfo.	Err	codemadness.org	70
i 54595 Layout     - This is per file and can be recalled by the server when it	Err	codemadness.org	70
i 54596              is no longer valid. For the FreeBSD server, there is support	Err	codemadness.org	70
i 54597              for two types of layout, call File and Flexible File layout.	Err	codemadness.org	70
i 54598              Both allow the client to do I/O on the DS via NFSv4.1 I/O	Err	codemadness.org	70
i 54599              operations. The Flexible File layout is a more recent variant	Err	codemadness.org	70
i 54600              that allows specification of mirrors, where the client is	Err	codemadness.org	70
i 54601              expected to do writes to all mirrors to maintain them in a	Err	codemadness.org	70
i 54602              consistent state. The Flexible File layout also allows the	Err	codemadness.org	70
i 54603              client to report I/O errors for a DS back to the MDS.	Err	codemadness.org	70
i 54604              The Flexible File layout supports two variants referred to as	Err	codemadness.org	70
i 54605              "tightly coupled" vs "loosely coupled". The FreeBSD server always	Err	codemadness.org	70
i 54606              uses the "tightly coupled" variant where the client uses the	Err	codemadness.org	70
i 54607              same credentials to do I/O on the DS as it would on the MDS.	Err	codemadness.org	70
i 54608              For the "loosely coupled" variant, the layout specifies a	Err	codemadness.org	70
i 54609              synthetic user/group that the client uses to do I/O on the DS.	Err	codemadness.org	70
i 54610              The FreeBSD server does not do striping and always returns	Err	codemadness.org	70
i 54611              layouts for the entire file. The critical information in a layout	Err	codemadness.org	70
i 54612              is Read vs Read/Writea and DeviceID(s) that identify which	Err	codemadness.org	70
i 54613              DS(s) the data is stored on.	Err	codemadness.org	70
i 54614 	Err	codemadness.org	70
i 54615 At this time, the MDS generates File Layout layouts to NFSv4.1 clients	Err	codemadness.org	70
i 54616 that know how to do pNFS for the non-mirrored DS case unless the sysctl	Err	codemadness.org	70
i 54617 vfs.nfsd.default_flexfile is set non-zero, in which case Flexible File	Err	codemadness.org	70
i 54618 layouts are generated.	Err	codemadness.org	70
i 54619 The mirrored DS configuration always generates Flexible File layouts.	Err	codemadness.org	70
i 54620 For NFS clients that do not support NFSv4.1 pNFS, all I/O operations	Err	codemadness.org	70
i 54621 are done against the MDS which acts as a proxy for the appropriate DS(s).	Err	codemadness.org	70
i 54622 When the MDS receives an I/O RPC, it will do the RPC on the DS as a proxy.	Err	codemadness.org	70
i 54623 If the DS is on the same machine, the MDS/DS will do the RPC on the DS as	Err	codemadness.org	70
i 54624 a proxy and so on, until the machine runs out of some resource, such as	Err	codemadness.org	70
i 54625 session slots or mbufs.	Err	codemadness.org	70
i 54626 As such, DSs must be separate systems from the MDS.	Err	codemadness.org	70
i 54627 	Err	codemadness.org	70
i 54628 ***	Err	codemadness.org	70
i 54629 	Err	codemadness.org	70
i 54630 ###[What does {some strange unix command name} stand for?](http://www.unixguide.net/unix/faq/1.3.shtml)	Err	codemadness.org	70
i 54631 	Err	codemadness.org	70
i 54632 + awk = "Aho Weinberger and Kernighan" 	Err	codemadness.org	70
i 54633 + grep = "Global Regular Expression Print" 	Err	codemadness.org	70
i 54634 + fgrep = "Fixed GREP". 	Err	codemadness.org	70
i 54635 + egrep = "Extended GREP" 	Err	codemadness.org	70
i 54636 + cat = "CATenate" 	Err	codemadness.org	70
i 54637 + gecos = "General Electric Comprehensive Operating Supervisor" 	Err	codemadness.org	70
i 54638 + nroff = "New ROFF" 	Err	codemadness.org	70
i 54639 + troff = "Typesetter new ROFF" 	Err	codemadness.org	70
i 54640 + tee = T 	Err	codemadness.org	70
i 54641 + bss = "Block Started by Symbol	Err	codemadness.org	70
i 54642 + biff = "BIFF" 	Err	codemadness.org	70
i 54643 + rc (as in ".cshrc" or "/etc/rc") = "RunCom" 	Err	codemadness.org	70
i 54644 + Don Libes' book "Life with Unix" contains lots more of these 	Err	codemadness.org	70
i 54645 tidbits. 	Err	codemadness.org	70
i 54646 ***	Err	codemadness.org	70
i 54647 	Err	codemadness.org	70
i 54648 ##Beastie Bits	Err	codemadness.org	70
i 54649 + [RetroBSD: Unix for microcontrollers](http://retrobsd.org/wiki/doku.php)	Err	codemadness.org	70
i 54650 + [On the matter of OpenBSD breaking embargos (KRACK)](https://marc.info/?l=openbsd-tech&m=152910536208954&w=2)	Err	codemadness.org	70
i 54651 + [Theo's Basement Computer Paradise (1998)](https://zeus.theos.com/deraadt/hosts.html)	Err	codemadness.org	70
i 54652 + [Airport Extreme runs NetBSD](https://jcs.org/2018/06/12/airport_ssh)	Err	codemadness.org	70
i 54653 + [What UNIX shell could have been](https://rain-1.github.io/shell-2.html)	Err	codemadness.org	70
i 54654 	Err	codemadness.org	70
i 54655 ***	Err	codemadness.org	70
i 54656 Tarsnap ad	Err	codemadness.org	70
i 54657 ***	Err	codemadness.org	70
i 54658 	Err	codemadness.org	70
i 54659 ##Feedback/Questions	Err	codemadness.org	70
i 54660 + We need more feedback and questions. Please email feedback@bsdnow.tv 	Err	codemadness.org	70
i 54661 + Also, many of you owe us BSDCan trip reports! We have shared what our experience at BSDCan was like, but we want to hear about yours. What can we do better next year? What was it like being there for the first time?	Err	codemadness.org	70
i 54662 + [Jason writes in](https://slexy.org/view/s205jU58X2)	Err	codemadness.org	70
i 54663     + https://www.wheelsystems.com/en/products/wheel-fudo-psm/	Err	codemadness.org	70
i 54664 + [June 19th was National FreeBSD Day](https://twitter.com/search?src=typd&q=%23FreeBSDDay)	Err	codemadness.org	70
i 54665 ***	Err	codemadness.org	70
i 54666 	Err	codemadness.org	70
i 54667 - Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [feedback@bsdnow.tv](mailto:feedback@bsdnow.tv)	Err	codemadness.org	70
i 54668 ***	Err	codemadness.org	70
i 54669 	Err	codemadness.org	70
i 54670 
]]> Err codemadness.org 70 i 54671
Err codemadness.org 70 i 54672 Err codemadness.org 70 i 54673 DragonflyBSD’s hammer1 encrypted master/slave setup, second part of our BSDCan recap, NomadBSD 1.1-RC1 available, OpenBSD adds an LDAP client to base, FreeBSD gets pNFS support, Intel FPU Speculation Vulnerability confirmed, and what some Unix command names mean.

Err codemadness.org 70 i 54674 Err codemadness.org 70 i 54675

##Headlines
Err codemadness.org 70 i 54676 ###DragonflyBSD: Towards a HAMMER1 master/slave encrypted setup with LUKS

Err codemadness.org 70 i 54677 Err codemadness.org 70 i 54678
Err codemadness.org 70 i 54679

I just wanted to share my experience with setting up DragonFly master/slave HAMMER1 PFS’s on top of LUKS
Err codemadness.org 70 i 54680 So after a long time using an Synology for my NFS needs, I decided it was time to rethink my setup a little since I had several issues with it :

Err codemadness.org 70 i 54681
Err codemadness.org 70 i 54682 Err codemadness.org 70 i 54683
    Err codemadness.org 70 i 54684
  • You cannot run NFS on top of encrypted partitions easily
  • Err codemadness.org 70 i 54685
  • I suspect I am having some some data corruption (bitrot) on the ext4 filesystem
  • Err codemadness.org 70 i 54686
  • the NIC was stcuk to 100 Mbps instead of 1 Gbps even after swapping cables, switches, you name it
  • Err codemadness.org 70 i 54687
  • It’s proprietary
  • Err codemadness.org 70 i 54688
Err codemadness.org 70 i 54689 Err codemadness.org 70 i 54690
Err codemadness.org 70 i 54691

I have been playing with DragonFly in the past and knew about HAMMER, now I just had the perfect excuse to actually use it in production :) After setting up the OS, creating the LUKS partition and HAMMER FS was easy :

Err codemadness.org 70 i 54692
Err codemadness.org 70 i 54693 Err codemadness.org 70 i 54694

kdload dm
Err codemadness.org 70 i 54695 cryptsetup luksFormat /dev/serno/<id1>
Err codemadness.org 70 i 54696 cryptsetup luksOpen /dev/serno/<id1> fort_knox
Err codemadness.org 70 i 54697 newfs_hammer -L hammer1_secure_master /dev/mapper/fort_knox
Err codemadness.org 70 i 54698 cryptsetup luksFormat /dev/serno/<id2>
Err codemadness.org 70 i 54699 cryptsetup luksOpen /dev/serno/<id2> fort_knox_slave
Err codemadness.org 70 i 54700 newfs_hammer -L hammer1_secure_slave /dev/mapper/fort_knox_slave

Err codemadness.org 70 i 54701 Err codemadness.org 70 i 54702
    Err codemadness.org 70 i 54703
  • Mount the 2 drives :
  • Err codemadness.org 70 i 54704
Err codemadness.org 70 i 54705 Err codemadness.org 70 i 54706

mount /dev/mapper/fort_knox /fort_knox
Err codemadness.org 70 i 54707 mount /dev/mapper_fort_know_slave /fort_knox_slave

Err codemadness.org 70 i 54708 Err codemadness.org 70 i 54709
Err codemadness.org 70 i 54710

You can now put your data under /fort_knox
Err codemadness.org 70 i 54711 Now, off to setting up the replication, first get the shared-uuid of /fort_knox

Err codemadness.org 70 i 54712
Err codemadness.org 70 i 54713 Err codemadness.org 70 i 54714

hammer pfs-status /fort_knox

Err codemadness.org 70 i 54715 Err codemadness.org 70 i 54716
Err codemadness.org 70 i 54717

Create a PFS slave “linked” to the master

Err codemadness.org 70 i 54718
Err codemadness.org 70 i 54719 Err codemadness.org 70 i 54720

hammer pfs-slave /fort_knox_slave/pfs/slave shared-uuid=f9e7cc0d-eb59-10e3-a5b5-01e6e7cefc12

Err codemadness.org 70 i 54721 Err codemadness.org 70 i 54722
Err codemadness.org 70 i 54723

And then stream your data to the slave PFS !

Err codemadness.org 70 i 54724
Err codemadness.org 70 i 54725 Err codemadness.org 70 i 54726

hammer mirror-stream /fort_knox /fort_knox_slave/pfs/slave

Err codemadness.org 70 i 54727 Err codemadness.org 70 i 54728
Err codemadness.org 70 i 54729

After that, setting NFS is fairly trivial even though I had problem with the /etc/exports syntax which is different than Linux

Err codemadness.org 70 i 54730
Err codemadness.org 70 i 54731 Err codemadness.org 70 i 54732
Err codemadness.org 70 i 54733

There’s a few things I wish would be better though but nothing too problematic or without workarounds :

Err codemadness.org 70 i 54734
Err codemadness.org 70 i 54735 Err codemadness.org 70 i 54736
    Err codemadness.org 70 i 54737
  • Cannot unlock LUKS partitions at boot time afaik (Acceptable tradeoff for the added security LUKS gives me vs my old Synology setup) but this force me to run a script to unlock LUKS, mount hammer and start mirror-stream at each boot
  • Err codemadness.org 70 i 54738
  • No S1/S3 sleep so I made a script to shutdown the system when there’s no network neighborgs to serve the NFS
  • Err codemadness.org 70 i 54739
  • As my system isn’t online 24/7 for energy reasons, I guess will have to run hammer cleanup myself from time to time
  • Err codemadness.org 70 i 54740
  • Some uncertainty because hey, it’s kind of exotic but exciting too :)
  • Err codemadness.org 70 i 54741
Err codemadness.org 70 i 54742 Err codemadness.org 70 i 54743
Err codemadness.org 70 i 54744

Overall, I am happy, HAMMER1 and PFS are looking really good, DragonFly is a neat Unix and the community is super friendly (Matthew Dillon actually provided me with a kernel patch to fix the broken ACPI on the PC holding this setup, many thanks!), the system is still a “work in progress” but it is already serving my files as I write this post.

Err codemadness.org 70 i 54745
Err codemadness.org 70 i 54746 Err codemadness.org 70 i 54747
Err codemadness.org 70 i 54748

Let’s see in 6 months how it goes in the longer run !

Err codemadness.org 70 i 54749
Err codemadness.org 70 i 54750 Err codemadness.org 70 i 54751 Err codemadness.org 70 i 54754 Err codemadness.org 70 i 54755


Err codemadness.org 70 i 54756 Err codemadness.org 70 i 54757

###BSDCan 2018 Recap

Err codemadness.org 70 i 54758 Err codemadness.org 70 i 54759
    Err codemadness.org 70 i 54760
  • As promised, here is our second part of our BSDCan report, covering the conference proper. The last tutorials/devsummit of that day lead directly into the conference, as people could pick up their registration packs at the Red Lion and have a drink with fellow BSD folks.
  • Err codemadness.org 70 i 54761
  • Allan and I were there only briefly, as we wanted to get back to the “Newcomers orientation and mentorship” session lead by Michael W. Lucas. This session is intended for people that are new to BSDCan (maybe their first BSD conference ever?) and may have questions. Michael explained everything from the 6-2-1 rule (hours of sleep, meals per day, and number of showers that attendees should have at a minimum), to the partner and widowers program (lead by his wife Liz), to the sessions that people should not miss (opening, closing, and hallway track). Old-time BSDCan folks were asked to stand up so that people can recognize them and ask them any questions they might have during the conferences. The session was well attended. Afterwards, people went for dinner in groups, a big one lead by Michael Lucas to his favorite Shawarma place, followed by gelato (of course). This allowed newbies to mingle over dinner and ice cream, creating a welcoming atmosphere.
  • Err codemadness.org 70 i 54762
  • The next day, after Dan Langille opened the conference, Benno Rice gave the keynote presentation about “The Tragedy of Systemd”.
  • Err codemadness.org 70 i 54763
  • Benedict went to the following talks:
  • Err codemadness.org 70 i 54764
Err codemadness.org 70 i 54765 Err codemadness.org 70 i 54766
Err codemadness.org 70 i 54767

“Automating Network Infrastructures with Ansible on FreeBSD” in the DevSummit track. A good talk that connected well with his Ansible tutorial and even allowed some discussions among participants.
Err codemadness.org 70 i 54768 “All along the dwatch tower”: Devin delivered a well prepared talk. I first thought that the number of slides would not fit into the time slot, but she even managed to give a demo of her work, which was well received. The dwatch tool she wrote should make it easy for people to get started with DTrace without learning too much about the syntax at first. The visualizations were certainly nice to see, combining different tools together in a new way.
Err codemadness.org 70 i 54769 ZFS BoF, lead by Allan and Matthew Ahrens
Err codemadness.org 70 i 54770 SSH Key Management by Michael W. Lucas. Yet another great talk where I learned a lot. I did not get to the SSH CA chapter in the new SSH Mastery book, so this was a good way to wet my appetite for it and motivated me to look into creating one for the cluster that I’m managing.
Err codemadness.org 70 i 54771 The rest of the day was spent at the FreeBSD Foundation table, talking to various folks. Then, Allan and I had an interview with Kirk McKusick for National FreeBSD Day, then we had a core meeting, followed by a core dinner.

Err codemadness.org 70 i 54772
Err codemadness.org 70 i 54773 Err codemadness.org 70 i 54774
    Err codemadness.org 70 i 54775
  • Day 2: Err codemadness.org 70 i 54776
    Err codemadness.org 70 i 54777

    “Flexible Disk Use in OpenZFS”: Matthew Ahrens talking about the feature he is implementing to expand a RAID-Z with a single disk, as well as device removal.
    Err codemadness.org 70 i 54778 Allan’s talk about his efforts to implement ZSTD in OpenZFS as another compression algorithm. I liked his overview slides with the numbers comparing the algorithms for their effectiveness and his personal story about the sometimes rocky road to get the feature implemented.
    Err codemadness.org 70 i 54779 “zrepl - ZFS replication” by Christian Schwarz, was well prepared and even had a demo to show what his snapshot replication tool can do. We covered it on the show before and people can find it under sysutils/zrepl. Feedback and help is welcome.
    Err codemadness.org 70 i 54780 “The Evolution of FreeBSD Governance” by Kirk McKusick was yet another great talk by him covering the early days of FreeBSD until today, detailing some of the progress and challenges the project faced over the years in terms of leadership and governance. This is an ongoing process that everyone in the community should participate in to keep the project healthy and infused with fresh blood.
    Err codemadness.org 70 i 54781 Closing session and auction were funny and great as always.
    Err codemadness.org 70 i 54782 All in all, yet another amazing BSDCan. Thank you Dan Langille and your organizing team for making it happen! Well done.

    Err codemadness.org 70 i 54783
    Err codemadness.org 70 i 54784
  • Err codemadness.org 70 i 54785
Err codemadness.org 70 i 54786 Err codemadness.org 70 i 54787


Err codemadness.org 70 i 54788 Err codemadness.org 70 i 54789

Digital Ocean

Err codemadness.org 70 i 54790 Err codemadness.org 70 i 54791

###NomadBSD 1.1-RC1 Released

Err codemadness.org 70 i 54792 Err codemadness.org 70 i 54793
Err codemadness.org 70 i 54794

The first – and hopefully final – release candidate of NomadBSD 1.1 is available!

Err codemadness.org 70 i 54795
Err codemadness.org 70 i 54796 Err codemadness.org 70 i 54797
    Err codemadness.org 70 i 54798
  • Changes
  • Err codemadness.org 70 i 54799
  • The base system has been upgraded to FreeBSD 11.2-RC3
  • Err codemadness.org 70 i 54800
  • EFI booting has been fixed.
  • Err codemadness.org 70 i 54801
  • Support for modern Intel GPUs has been added.
  • Err codemadness.org 70 i 54802
  • Support for installing packages has been added.
  • Err codemadness.org 70 i 54803
  • Improved setup menu.
  • Err codemadness.org 70 i 54804
  • More software packages:
  • Err codemadness.org 70 i 54805
  • benchmarks/bonnie++
  • Err codemadness.org 70 i 54806
  • DSBDisplaySettings
  • Err codemadness.org 70 i 54807
  • DSBExec
  • Err codemadness.org 70 i 54808
  • DSBSu
  • Err codemadness.org 70 i 54809
  • mail/thunderbird
  • Err codemadness.org 70 i 54810
  • net/mosh
  • Err codemadness.org 70 i 54811
  • ports-mgmt/octopkg
  • Err codemadness.org 70 i 54812
  • print/qpdfview
  • Err codemadness.org 70 i 54813
  • security/nmap
  • Err codemadness.org 70 i 54814
  • sysutils/ddrescue
  • Err codemadness.org 70 i 54815
  • sysutils/fusefs-hfsfuse
  • Err codemadness.org 70 i 54816
  • sysutils/fusefs-sshfs
  • Err codemadness.org 70 i 54817
  • sysutils/sleuthkit
  • Err codemadness.org 70 i 54818
  • www/lynx
  • Err codemadness.org 70 i 54819
  • x11-wm/compton
  • Err codemadness.org 70 i 54820
  • x11/xev
  • Err codemadness.org 70 i 54821
  • x11/xterm
  • Err codemadness.org 70 i 54822
  • Many improvements and bugfixes
    Err codemadness.org 70 i 54823 The image and instructions can be found here.
  • Err codemadness.org 70 i 54824
Err codemadness.org 70 i 54825 Err codemadness.org 70 i 54826


Err codemadness.org 70 i 54827 Err codemadness.org 70 i 54828

##News Roundup
Err codemadness.org 70 i 54829 ###LDAP client added to -current

Err codemadness.org 70 i 54830 Err codemadness.org 70 i 54831
CVSROOT:    /cvs	Err	codemadness.org	70
i 54832 Module name:    src	Err	codemadness.org	70
i 54833 Changes by: reyk@cvs.openbsd.org    2018/06/13 09:45:58	Err	codemadness.org	70
i 54834 	Err	codemadness.org	70
i 54835 Log message:	Err	codemadness.org	70
i 54836     Import ldap(1), a simple ldap search client.	Err	codemadness.org	70
i 54837     We have an ldapd(8) server and ypldap in base, so it makes sense to	Err	codemadness.org	70
i 54838     have a simple LDAP client without depending on the OpenLDAP package.	Err	codemadness.org	70
i 54839     This tool can be used in an ssh(1) AuthorizedKeysCommand script.	Err	codemadness.org	70
i 54840     	Err	codemadness.org	70
i 54841     With feedback from many including millert@ schwarze@ gilles@ dlg@ jsing@	Err	codemadness.org	70
i 54842     	Err	codemadness.org	70
i 54843     OK deraadt@	Err	codemadness.org	70
i 54844     	Err	codemadness.org	70
i 54845     Status:	Err	codemadness.org	70
i 54846     	Err	codemadness.org	70
i 54847     Vendor Tag: reyk	Err	codemadness.org	70
i 54848     Release Tags:   ldap_20180613	Err	codemadness.org	70
i 54849     	Err	codemadness.org	70
i 54850     N src/usr.bin/ldap/Makefile	Err	codemadness.org	70
i 54851     N src/usr.bin/ldap/aldap.c	Err	codemadness.org	70
i 54852     N src/usr.bin/ldap/aldap.h	Err	codemadness.org	70
i 54853     N src/usr.bin/ldap/ber.c	Err	codemadness.org	70
i 54854     N src/usr.bin/ldap/ber.h	Err	codemadness.org	70
i 54855     N src/usr.bin/ldap/ldap.1	Err	codemadness.org	70
i 54856     N src/usr.bin/ldap/ldapclient.c	Err	codemadness.org	70
i 54857     N src/usr.bin/ldap/log.c	Err	codemadness.org	70
i 54858     N src/usr.bin/ldap/log.h	Err	codemadness.org	70
i 54859     	Err	codemadness.org	70
i 54860     No conflicts created by this import	Err	codemadness.org	70
i 54861 
Err codemadness.org 70 i 54862 Err codemadness.org 70 i 54863


Err codemadness.org 70 i 54864 Err codemadness.org 70 i 54865

###Intel® FPU Speculation Vulnerability Confirmed

Err codemadness.org 70 i 54866 Err codemadness.org 70 i 54867
    Err codemadness.org 70 i 54868
  • Earlier this month, Philip Guenther (guenther@) committed (to amd64 -current) a change from lazy to semi-eager FPU switching to mitigate against rumored FPU state leakage in Intel® CPUs.
  • Err codemadness.org 70 i 54869
  • Theo de Raadt (deraadt@) discussed this in his BSDCan 2018 session.
  • Err codemadness.org 70 i 54870
  • Using information disclosed in Theo’s talk, Colin Percival developed a proof-of-concept exploit in around 5 hours. This seems to have prompted an early end to an embargo (in which OpenBSD was not involved), and the official announcement of the vulnerability.
  • Err codemadness.org 70 i 54871
  • FPU change in FreeBSD
  • Err codemadness.org 70 i 54872
Err codemadness.org 70 i 54873 Err codemadness.org 70 i 54874
Summary:	Err	codemadness.org	70
i 54875 	Err	codemadness.org	70
i 54876 System software may utilize the Lazy FP state restore technique to delay the restoring of state until an instruction operating on that state is actually executed by the new process. Systems using Intel® Core-based microprocessors may potentially allow a local process to infer data utilizing Lazy FP state restore from another process through a speculative execution side channel.	Err	codemadness.org	70
i 54877 	Err	codemadness.org	70
i 54878 Description:	Err	codemadness.org	70
i 54879 	Err	codemadness.org	70
i 54880 System software may opt to utilize Lazy FP state restore instead of eager save and restore of the state upon a context switch. Lazy restored states are potentially vulnerable to exploits where one process may infer register values of other processes through a speculative execution side channel that infers their value.	Err	codemadness.org	70
i 54881 	Err	codemadness.org	70
i 54882     ·    CVSS - 4.3 Medium CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N	Err	codemadness.org	70
i 54883 Affected Products:	Err	codemadness.org	70
i 54884 	Err	codemadness.org	70
i 54885 Intel® Core-based microprocessors.	Err	codemadness.org	70
i 54886 	Err	codemadness.org	70
i 54887 Recommendations:	Err	codemadness.org	70
i 54888 	Err	codemadness.org	70
i 54889 If an XSAVE-enabled feature is disabled, then we recommend either its state component bitmap in the extended control register (XCR0) is set to 0 (e.g. XCR0[bit 2]=0 for AVX, XCR0[bits 7:5]=0 for AVX512) or the corresponding register states of the feature should be cleared prior to being disabled. Also for relevant states (e.g. x87, SSE, AVX, etc.), Intel recommends system software developers utilize Eager FP state restore in lieu of Lazy FP state restore.	Err	codemadness.org	70
i 54890 	Err	codemadness.org	70
i 54891 Acknowledgements:	Err	codemadness.org	70
i 54892 	Err	codemadness.org	70
i 54893 Intel would like to thank Julian Stecklina from Amazon Germany, Thomas Prescher from Cyberus Technology GmbH (https://www.cyberus-technology.de/), Zdenek Sojka from SYSGO AG (http://sysgo.com), and Colin Percival for reporting this issue and working with us on coordinated disclosure.	Err	codemadness.org	70
i 54894 
Err codemadness.org 70 i 54895 Err codemadness.org 70 i 54896


Err codemadness.org 70 i 54897 Err codemadness.org 70 i 54898

iXsystems
Err codemadness.org 70 i 54899 iX Ad Spot
Err codemadness.org 70 i 54900 ###iX Systems - BSDCan 2018 Recap

Err codemadness.org 70 i 54901 Err codemadness.org 70 i 54902

###FreeBSD gets pNFS support

Err codemadness.org 70 i 54903 Err codemadness.org 70 i 54904
Merge the pNFS server code from projects/pnfs-planb-server into head.	Err	codemadness.org	70
i 54905 	Err	codemadness.org	70
i 54906 This code merge adds a pNFS service to the NFSv4.1 server. Although it is	Err	codemadness.org	70
i 54907 a large commit it should not affect behaviour for a non-pNFS NFS server.	Err	codemadness.org	70
i 54908 Some documentation on how this works can be found at:	Err	codemadness.org	70
i 54909 Merge the pN http://people.freebsd.org/~rmacklem/pnfs-planb-setup.txt	Err	codemadness.org	70
i 54910 and will hopefully be turned into a proper document soon.	Err	codemadness.org	70
i 54911 This is a merge of the kernel code. Userland and man page changes will	Err	codemadness.org	70
i 54912 come soon, once the dust settles on this merge.	Err	codemadness.org	70
i 54913 It has passed a "make universe", so I hope it will not cause build problems.	Err	codemadness.org	70
i 54914 It also adds NFSv4.1 server support for the "current stateid".	Err	codemadness.org	70
i 54915 	Err	codemadness.org	70
i 54916 Here is a brief overview of the pNFS service:	Err	codemadness.org	70
i 54917 A pNFS service separates the Read/Write operations from all the other NFSv4.1	Err	codemadness.org	70
i 54918 Metadata operations. It is hoped that this separation allows a pNFS service	Err	codemadness.org	70
i 54919 to be configured that exceeds the limits of a single NFS server for either	Err	codemadness.org	70
i 54920 storage capacity and/or I/O bandwidth.	Err	codemadness.org	70
i 54921 It is possible to configure mirroring within the data servers (DSs) so that	Err	codemadness.org	70
i 54922 the data storage file for an MDS file will be mirrored on two or more of	Err	codemadness.org	70
i 54923 the DSs.	Err	codemadness.org	70
i 54924 When this is used, failure of a DS will not stop the pNFS service and a	Err	codemadness.org	70
i 54925 failed DS can be recovered once repaired while the pNFS service continues	Err	codemadness.org	70
i 54926 to operate.  Although two way mirroring would be the norm, it is possible	Err	codemadness.org	70
i 54927 to set a mirroring level of up to four or the number of DSs, whichever is	Err	codemadness.org	70
i 54928 less.	Err	codemadness.org	70
i 54929 The Metadata server will always be a single point of failure,	Err	codemadness.org	70
i 54930 just as a single NFS server is.	Err	codemadness.org	70
i 54931 	Err	codemadness.org	70
i 54932 A Plan B pNFS service consists of a single MetaData Server (MDS) and K	Err	codemadness.org	70
i 54933 Data Servers (DS), all of which are recent FreeBSD systems.	Err	codemadness.org	70
i 54934 Clients will mount the MDS as they would a single NFS server.	Err	codemadness.org	70
i 54935 When files are created, the MDS creates a file tree identical to what a	Err	codemadness.org	70
i 54936 single NFS server creates, except that all the regular (VREG) files will	Err	codemadness.org	70
i 54937 be empty. As such, if you look at the exported tree on the MDS directly	Err	codemadness.org	70
i 54938 on the MDS server (not via an NFS mount), the files will all be of size 0.	Err	codemadness.org	70
i 54939 Each of these files will also have two extended attributes in the system	Err	codemadness.org	70
i 54940 attribute name space:	Err	codemadness.org	70
i 54941 pnfsd.dsfile - This extended attrbute stores the information that	Err	codemadness.org	70
i 54942     the MDS needs to find the data storage file(s) on DS(s) for this file.	Err	codemadness.org	70
i 54943 pnfsd.dsattr - This extended attribute stores the Size, AccessTime, ModifyTime	Err	codemadness.org	70
i 54944     and Change attributes for the file, so that the MDS doesn't need to	Err	codemadness.org	70
i 54945     acquire the attributes from the DS for every Getattr operation.	Err	codemadness.org	70
i 54946 For each regular (VREG) file, the MDS creates a data storage file on one	Err	codemadness.org	70
i 54947 (or more if mirroring is enabled) of the DSs in one of the "dsNN"	Err	codemadness.org	70
i 54948 subdirectories.  The name of this file is the file handle	Err	codemadness.org	70
i 54949 of the file on the MDS in hexadecimal so that the name is unique.	Err	codemadness.org	70
i 54950 The DSs use subdirectories named "ds0" to "dsN" so that no one directory	Err	codemadness.org	70
i 54951 gets too large. The value of "N" is set via the sysctl vfs.nfsd.dsdirsize	Err	codemadness.org	70
i 54952 on the MDS, with the default being 20.	Err	codemadness.org	70
i 54953 For production servers that will store a lot of files, this value should	Err	codemadness.org	70
i 54954 probably be much larger.	Err	codemadness.org	70
i 54955 It can be increased when the "nfsd" daemon is not running on the MDS,	Err	codemadness.org	70
i 54956 once the "dsK" directories are created.	Err	codemadness.org	70
i 54957 	Err	codemadness.org	70
i 54958 For pNFS aware NFSv4.1 clients, the FreeBSD server will return two pieces	Err	codemadness.org	70
i 54959 of information to the client that allows it to do I/O directly to the DS.	Err	codemadness.org	70
i 54960 DeviceInfo - This is relatively static information that defines what a DS	Err	codemadness.org	70
i 54961              is. The critical bits of information returned by the FreeBSD	Err	codemadness.org	70
i 54962              server is the IP address of the DS and, for the Flexible	Err	codemadness.org	70
i 54963              File layout, that NFSv4.1 is to be used and that it is	Err	codemadness.org	70
i 54964              "tightly coupled".	Err	codemadness.org	70
i 54965              There is a "deviceid" which identifies the DeviceInfo.	Err	codemadness.org	70
i 54966 Layout     - This is per file and can be recalled by the server when it	Err	codemadness.org	70
i 54967              is no longer valid. For the FreeBSD server, there is support	Err	codemadness.org	70
i 54968              for two types of layout, call File and Flexible File layout.	Err	codemadness.org	70
i 54969              Both allow the client to do I/O on the DS via NFSv4.1 I/O	Err	codemadness.org	70
i 54970              operations. The Flexible File layout is a more recent variant	Err	codemadness.org	70
i 54971              that allows specification of mirrors, where the client is	Err	codemadness.org	70
i 54972              expected to do writes to all mirrors to maintain them in a	Err	codemadness.org	70
i 54973              consistent state. The Flexible File layout also allows the	Err	codemadness.org	70
i 54974              client to report I/O errors for a DS back to the MDS.	Err	codemadness.org	70
i 54975              The Flexible File layout supports two variants referred to as	Err	codemadness.org	70
i 54976              "tightly coupled" vs "loosely coupled". The FreeBSD server always	Err	codemadness.org	70
i 54977              uses the "tightly coupled" variant where the client uses the	Err	codemadness.org	70
i 54978              same credentials to do I/O on the DS as it would on the MDS.	Err	codemadness.org	70
i 54979              For the "loosely coupled" variant, the layout specifies a	Err	codemadness.org	70
i 54980              synthetic user/group that the client uses to do I/O on the DS.	Err	codemadness.org	70
i 54981              The FreeBSD server does not do striping and always returns	Err	codemadness.org	70
i 54982              layouts for the entire file. The critical information in a layout	Err	codemadness.org	70
i 54983              is Read vs Read/Writea and DeviceID(s) that identify which	Err	codemadness.org	70
i 54984              DS(s) the data is stored on.	Err	codemadness.org	70
i 54985 	Err	codemadness.org	70
i 54986 At this time, the MDS generates File Layout layouts to NFSv4.1 clients	Err	codemadness.org	70
i 54987 that know how to do pNFS for the non-mirrored DS case unless the sysctl	Err	codemadness.org	70
i 54988 vfs.nfsd.default_flexfile is set non-zero, in which case Flexible File	Err	codemadness.org	70
i 54989 layouts are generated.	Err	codemadness.org	70
i 54990 The mirrored DS configuration always generates Flexible File layouts.	Err	codemadness.org	70
i 54991 For NFS clients that do not support NFSv4.1 pNFS, all I/O operations	Err	codemadness.org	70
i 54992 are done against the MDS which acts as a proxy for the appropriate DS(s).	Err	codemadness.org	70
i 54993 When the MDS receives an I/O RPC, it will do the RPC on the DS as a proxy.	Err	codemadness.org	70
i 54994 If the DS is on the same machine, the MDS/DS will do the RPC on the DS as	Err	codemadness.org	70
i 54995 a proxy and so on, until the machine runs out of some resource, such as	Err	codemadness.org	70
i 54996 session slots or mbufs.	Err	codemadness.org	70
i 54997 As such, DSs must be separate systems from the MDS.	Err	codemadness.org	70
i 54998 	Err	codemadness.org	70
i 54999 ***	Err	codemadness.org	70
i 55000 	Err	codemadness.org	70
i 55001 ###[What does {some strange unix command name} stand for?](http://www.unixguide.net/unix/faq/1.3.shtml)	Err	codemadness.org	70
i 55002 	Err	codemadness.org	70
i 55003 + awk = "Aho Weinberger and Kernighan" 	Err	codemadness.org	70
i 55004 + grep = "Global Regular Expression Print" 	Err	codemadness.org	70
i 55005 + fgrep = "Fixed GREP". 	Err	codemadness.org	70
i 55006 + egrep = "Extended GREP" 	Err	codemadness.org	70
i 55007 + cat = "CATenate" 	Err	codemadness.org	70
i 55008 + gecos = "General Electric Comprehensive Operating Supervisor" 	Err	codemadness.org	70
i 55009 + nroff = "New ROFF" 	Err	codemadness.org	70
i 55010 + troff = "Typesetter new ROFF" 	Err	codemadness.org	70
i 55011 + tee = T 	Err	codemadness.org	70
i 55012 + bss = "Block Started by Symbol	Err	codemadness.org	70
i 55013 + biff = "BIFF" 	Err	codemadness.org	70
i 55014 + rc (as in ".cshrc" or "/etc/rc") = "RunCom" 	Err	codemadness.org	70
i 55015 + Don Libes' book "Life with Unix" contains lots more of these 	Err	codemadness.org	70
i 55016 tidbits. 	Err	codemadness.org	70
i 55017 ***	Err	codemadness.org	70
i 55018 	Err	codemadness.org	70
i 55019 ##Beastie Bits	Err	codemadness.org	70
i 55020 + [RetroBSD: Unix for microcontrollers](http://retrobsd.org/wiki/doku.php)	Err	codemadness.org	70
i 55021 + [On the matter of OpenBSD breaking embargos (KRACK)](https://marc.info/?l=openbsd-tech&m=152910536208954&w=2)	Err	codemadness.org	70
i 55022 + [Theo's Basement Computer Paradise (1998)](https://zeus.theos.com/deraadt/hosts.html)	Err	codemadness.org	70
i 55023 + [Airport Extreme runs NetBSD](https://jcs.org/2018/06/12/airport_ssh)	Err	codemadness.org	70
i 55024 + [What UNIX shell could have been](https://rain-1.github.io/shell-2.html)	Err	codemadness.org	70
i 55025 	Err	codemadness.org	70
i 55026 ***	Err	codemadness.org	70
i 55027 Tarsnap ad	Err	codemadness.org	70
i 55028 ***	Err	codemadness.org	70
i 55029 	Err	codemadness.org	70
i 55030 ##Feedback/Questions	Err	codemadness.org	70
i 55031 + We need more feedback and questions. Please email feedback@bsdnow.tv 	Err	codemadness.org	70
i 55032 + Also, many of you owe us BSDCan trip reports! We have shared what our experience at BSDCan was like, but we want to hear about yours. What can we do better next year? What was it like being there for the first time?	Err	codemadness.org	70
i 55033 + [Jason writes in](https://slexy.org/view/s205jU58X2)	Err	codemadness.org	70
i 55034     + https://www.wheelsystems.com/en/products/wheel-fudo-psm/	Err	codemadness.org	70
i 55035 + [June 19th was National FreeBSD Day](https://twitter.com/search?src=typd&q=%23FreeBSDDay)	Err	codemadness.org	70
i 55036 ***	Err	codemadness.org	70
i 55037 	Err	codemadness.org	70
i 55038 - Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [feedback@bsdnow.tv](mailto:feedback@bsdnow.tv)	Err	codemadness.org	70
i 55039 ***	Err	codemadness.org	70
i 55040 	Err	codemadness.org	70
i 55041 
]]> Err codemadness.org 70 i 55042
Err codemadness.org 70 i 55043 https://fireside.fm/player/v2/FYhhasNR+A54qwrjz Err codemadness.org 70 i 55044 Err codemadness.org 70 i 55045 ]]> Err codemadness.org 70 i 55046 Err codemadness.org 70 i 55047
Err codemadness.org 70 i 55048 Err codemadness.org 70 i 55049 Episode 250: BSDCan 2018 Recap | BSD Now 250 Err codemadness.org 70 i 55050 https://www.bsdnow.tv/250 Err codemadness.org 70 i 55051 http://feed.jupiter.zone/bsdnow#entry-2107 Err codemadness.org 70 i 55052 Thu, 14 Jun 2018 04:00:00 -0700 Err codemadness.org 70 i 55053 Allan Jude Err codemadness.org 70 i 55054 Err codemadness.org 70 i 55055 full Err codemadness.org 70 i 55056 Allan Jude Err codemadness.org 70 i 55057 TrueOS becoming a downstream fork with Trident, our BSDCan 2018 recap, HardenedBSD Foundation founding efforts, VPN with OpenIKED on OpenBSD, FreeBSD on a System76 Galago Pro, and hardware accelerated crypto on Octeons. Err codemadness.org 70 i 55058 1:41:10 Err codemadness.org 70 i 55059 no Err codemadness.org 70 i 55060 Err codemadness.org 70 i 55061 TrueOS becoming a downstream fork with Trident, our BSDCan 2018 recap, HardenedBSD Foundation founding efforts, VPN with OpenIKED on OpenBSD, FreeBSD on a System76 Galago Pro, and hardware accelerated crypto on Octeons. Err codemadness.org 70 i 55062 <p>##Headlines##<br> Err codemadness.org 70 i 55063 <a href="https://www.trueos.org/blog/trueosdownstream/">TrueOS to Focus on Core Operating System</a></p> Err codemadness.org 70 i 55064 <blockquote> Err codemadness.org 70 i 55065 <p>The TrueOS Project has some big plans in the works, and we want to take a minute and share them with you. Many have come to know TrueOS as the “graphical FreeBSD” that makes things easy for newcomers to the BSDs. Today we’re announcing that TrueOS is shifting our focus a bit to become a cutting-edge operating system that keeps all of the stability that you know and love from ZFS (OpenZFS) and FreeBSD, and adds additional features to create a fresh, innovative operating system. Our goal is to create a core-centric operating system that is modular, functional, and perfect for do-it-yourselfers and advanced users alike.</p> Err codemadness.org 70 i 55066 </blockquote> Err codemadness.org 70 i 55067 <blockquote> Err codemadness.org 70 i 55068 <p>TrueOS will become a downstream fork that will build on FreeBSD by integrating new software technologies like OpenRC and LibreSSL. Work has already begun which allows TrueOS to be used as a base platform for other projects, including JSON-based manifests, integrated Poudriere / pkg tools and much more. We’re planning on a six month release cycle to keep development moving and fresh, allowing us to bring you hot new features to ZFS, bhyve and related tools in a timely manner. This makes TrueOS the perfect fit to serve as the basis for building other distributions.</p> Err codemadness.org 70 i 55069 </blockquote> Err codemadness.org 70 i 55070 <blockquote> Err codemadness.org 70 i 55071 <p>Some of you are probably asking yourselves “But what if I want to have a graphical desktop?” Don’t worry! We’re making sure that everyone who knows and loves the legacy desktop version of TrueOS will be able to continue using a FreeBSD-based, graphical operating system in the future. For instance, if you want to add KDE, just use sudo pkg install kde and voila! You have your new shiny desktop. Easy right? This allows us to get back to our roots of being a desktop agnostic operating system. If you want to add a new desktop environment, you get to pick the one that best suits your use.</p> Err codemadness.org 70 i 55072 </blockquote> Err codemadness.org 70 i 55073 <blockquote> Err codemadness.org 70 i 55074 <p>We know that some of you will still be looking for an out-of-the-box solution similar to legacy PC-BSD and TrueOS. We’re happy to announce that Project Trident will take over graphical FreeBSD development going forward. Not much is going to change in that regard other than a new name! You’ll still have Lumina Desktop as a lightweight and feature-rich desktop environment and tons of utilities from the legacy TrueOS toolchain like sysadm and AppCafe. There will be migration paths available for those that would like to move to other FreeBSD-based distributions like Project Trident or GhostBSD.</p> Err codemadness.org 70 i 55075 </blockquote> Err codemadness.org 70 i 55076 <blockquote> Err codemadness.org 70 i 55077 <p>We look forward to this new chapter for TrueOS and hope you will give the new edition a spin! Tell us what you think about the new changes by leaving us a comment. Don’t forget you can ask us questions on our Twitter and be a part of our community by joining the new TrueOS Forums when they go live in about a week. Thanks for being a loyal fan of TrueOS.</p> Err codemadness.org 70 i 55078 </blockquote> Err codemadness.org 70 i 55079 <p>###<a href="http://project-trident.org/faq">Project Trident FAQ</a></p> Err codemadness.org 70 i 55080 <ul> Err codemadness.org 70 i 55081 <li>Q: Why did you pick the name “Project Trident”?</li> Err codemadness.org 70 i 55082 </ul> Err codemadness.org 70 i 55083 <blockquote> Err codemadness.org 70 i 55084 <p>A: We were looking for a name that was unique, yet would still relate to the BSD community. Since Beastie (the FreeBSD mascot) is always pictured with a trident, it felt like that would be a great name.</p> Err codemadness.org 70 i 55085 </blockquote> Err codemadness.org 70 i 55086 <ul> Err codemadness.org 70 i 55087 <li>Q: Where can users go for technical support?</li> Err codemadness.org 70 i 55088 </ul> Err codemadness.org 70 i 55089 <blockquote> Err codemadness.org 70 i 55090 <p>A: At the moment, Project Trident will continue sharing the TrueOS community forums and Telegram channels. We are currently evaluating dedicated options for support channels in the future.</p> Err codemadness.org 70 i 55091 </blockquote> Err codemadness.org 70 i 55092 <ul> Err codemadness.org 70 i 55093 <li>Q: Can I help contribute to the project?</li> Err codemadness.org 70 i 55094 </ul> Err codemadness.org 70 i 55095 <blockquote> Err codemadness.org 70 i 55096 <p>A: We are always looking for developers who want to join the project. If you’re not a developer you can still help, as a community project we will be more reliant on contributions from the community in the form of how-to guides and other user-centric documentation and support systems.</p> Err codemadness.org 70 i 55097 </blockquote> Err codemadness.org 70 i 55098 <ul> Err codemadness.org 70 i 55099 <li>Q: How is the project supported financially?</li> Err codemadness.org 70 i 55100 </ul> Err codemadness.org 70 i 55101 <blockquote> Err codemadness.org 70 i 55102 <p>A: Project Trident is sponsored by the community, from both individuals and corporations. iXsystems has stepped up as the first enterprise-level sponsor of the project, and has been instrumental in getting Project Trident up and running. Please visit the Sponsors page to see all the current sponsors.</p> Err codemadness.org 70 i 55103 </blockquote> Err codemadness.org 70 i 55104 <ul> Err codemadness.org 70 i 55105 <li>Q: How can I help support the project financially?</li> Err codemadness.org 70 i 55106 </ul> Err codemadness.org 70 i 55107 <blockquote> Err codemadness.org 70 i 55108 <p>A: Several methods exist, from one time or recurring donations via Paypal to limited time swag t-shirt campaigns during the year. We are also looking into more alternative methods of support, so please visit the Sponsors page to see all the current methods of sponsorship.</p> Err codemadness.org 70 i 55109 </blockquote> Err codemadness.org 70 i 55110 <ul> Err codemadness.org 70 i 55111 <li>Q: Will there be any transparency of the financial donations and expenditures?</li> Err codemadness.org 70 i 55112 </ul> Err codemadness.org 70 i 55113 <blockquote> Err codemadness.org 70 i 55114 <p>A: Yes, we will be totally open with how much money comes into the project and what it is spent on. Due to concerns of privacy, we will not identify individuals and their donation amounts unless they specifically request to be identified. We will release a monthly overview in/out ledger, so that community members can see where their money is going.</p> Err codemadness.org 70 i 55115 </blockquote> Err codemadness.org 70 i 55116 <ul> Err codemadness.org 70 i 55117 <li> Err codemadness.org 70 i 55118 <p>Relationship with TrueOS</p> Err codemadness.org 70 i 55119 </li> Err codemadness.org 70 i 55120 <li> Err codemadness.org 70 i 55121 <p>Project Trident does have very close ties to the TrueOS project, since most of the original Project Trident developers were once part of the TrueOS project before it became a distribution platform. For users of the TrueOS desktop, we have some additional questions and answers below.</p> Err codemadness.org 70 i 55122 </li> Err codemadness.org 70 i 55123 <li> Err codemadness.org 70 i 55124 <p>Q: Do we need to be at a certain TrueOS install level/release to upgrade?</p> Err codemadness.org 70 i 55125 </li> Err codemadness.org 70 i 55126 </ul> Err codemadness.org 70 i 55127 <blockquote> Err codemadness.org 70 i 55128 <p>A: As long as you have a TrueOS system which has been updated to at least the 18.03 release you should be able to just perform a system update to be automatically upgraded to Project Trident.</p> Err codemadness.org 70 i 55129 </blockquote> Err codemadness.org 70 i 55130 <ul> Err codemadness.org 70 i 55131 <li>Q: Which members moved from TrueOS to Project Trident?</li> Err codemadness.org 70 i 55132 </ul> Err codemadness.org 70 i 55133 <blockquote> Err codemadness.org 70 i 55134 <p>A: Project Trident is being led by prior members of the TrueOS desktop team. Ken and JT (development), Tim (documentation) and Rod (Community/Support). Since Project Trident is a community-first project, we look forward to working with new members of the team.</p> Err codemadness.org 70 i 55135 </blockquote> Err codemadness.org 70 i 55136 <hr> Err codemadness.org 70 i 55137 <p><strong>iXsystems</strong></p> Err codemadness.org 70 i 55138 <p>###<a href="https://www.bsdcan.org/2018">BSDCan</a></p> Err codemadness.org 70 i 55139 <ul> Err codemadness.org 70 i 55140 <li>BSDCan finished Saturday last week</li> Err codemadness.org 70 i 55141 <li>It started with the GoatBoF on Tuesday at the Royal Oak Pub, where people had a chance to meet and greet. Benedict could not attend due to an all-day FreeBSD Foundation meeting and and even FreeBSD Journal Editorial Board meeting.</li> Err codemadness.org 70 i 55142 <li>The FreeBSD devsummit was held the next two days in parallel to the tutorials. Gordon Tetlow, who organized the devsummit, opened the devsummit. Deb Goodkin from the FreeBSD Foundation gave the first talk with a Foundation update, highlighting current and future efforts. Li-Wen Hsu is now employed by the Foundation to assist in QA work (Jenkins, CI/CD) and Gordon Tetlow has a part-time contract to help secteam as their secretary.</li> Err codemadness.org 70 i 55143 <li>Next, the FreeBSD core team (among them Allan and Benedict) gave a talk about what has happened this last term. With a core election currently running, some of these items will carry over to the next core team, but there were also some finished ones like the FCP process and FreeBSD members initiative. People in the audience asked questions on various topics of interest.</li> Err codemadness.org 70 i 55144 <li>After the coffee break, the release engineering team gave a talk about their efforts in terms of making releases happen in time and good quality.</li> Err codemadness.org 70 i 55145 <li>Benedict had to give his Ansible tutorial in the afternoon, which had roughly 15 people attending. Most of them beginners, we could get some good discussions going and I also learned a few new tricks. The overall feedback was positive and one even asked what I’m going to teach next year.</li> Err codemadness.org 70 i 55146 <li>The second day of the FreeBSD devsummit began with Gordon Tetlow giving an insight into the FreeBSD Security team (aka secteam). He gave a overview of secteam members and responsibilities, explaining the process based on a long past advisory. Developers were encouraged to help out secteam. NDAs and proper disclosure of vulnerabilities were also discussed, and the audience had some feedback and questions.</li> Err codemadness.org 70 i 55147 <li>When the coffee break was over, the FreeBSD 12.0 planning session happened. A <a href="https://wiki.freebsd.org/DevSummit/201806/HaveNeedWant12">Google doc</a> served as a collaborative way of gathering features and things left to do. People signed up for it or were volunteered. Some features won’t make it into 12.0 as they are not 100% ready for prime time and need a few more rounds of testing and bugfixing. Still, 12.0 will have some compelling features.</li> Err codemadness.org 70 i 55148 <li><a href="https://theta360.com/s/xuR4ogsjGmu584JJju0vUaTA">A 360° group picture</a> was taken after lunch, and then people split up into the working groups for the afternoon or started hacking in the UofO Henderson residence.</li> Err codemadness.org 70 i 55149 <li>Benedict and Allan both attended the OpenZFS working group, lead by Matt Ahrens. He presented the completed and outstanding work in FreeBSD, without spoiling too much of the ZFS presentations of various people that happened later at the conference.</li> Err codemadness.org 70 i 55150 <li>Benedict joined the boot code session a bit late (hallway track is the reason) when most things seem to have already been discussed.</li> Err codemadness.org 70 i 55151 <li><a href="https://www.talegraph.com/tales/WmObSRejzT">BSDCan 2018 — Ottawa (In Pictures)</a></li> Err codemadness.org 70 i 55152 <li><a href="https://photos.google.com/share/AF1QipPv_eOz9z-e8R23DkSEcMLF9ivl8est0H4k0lkAoIdY0Jgsn4eyKT54fPyy4EukCw?key=RmJoNS1uOHU2djRDdzZxNGM4ZEY1dFVKamhCNThR">iXsystems Photos from BSDCan 2018</a></li> Err codemadness.org 70 i 55153 </ul> Err codemadness.org 70 i 55154 <hr> Err codemadness.org 70 i 55155 <p>##News Roundup<br> Err codemadness.org 70 i 55156 <a href="https://hardenedbsd.org/article/shawn-webb/2018-06-09/june-hardenedbsd-foundation-update">June HardenedBSD Foundation Update</a></p> Err codemadness.org 70 i 55157 <blockquote> Err codemadness.org 70 i 55158 <p>We at HardenedBSD are working towards starting up a 501©(3) not-for-profit organization in the USA. Setting up this organization will allow future donations to be tax deductible. We’ve made progress and would like to share with you the current state of affairs.</p> Err codemadness.org 70 i 55159 </blockquote> Err codemadness.org 70 i 55160 <blockquote> Err codemadness.org 70 i 55161 <p>We have identified, sent invitations out, and received acceptance letters from six people who will serve on the HardenedBSD Foundation Board of Directors. You can find their bios below. In the latter half of June 2018 or the beginning half of July 2018, we will meet for the first time as a board and formally begin the process of creating the documentation needed to submit to the local, state, and federal tax services.</p> Err codemadness.org 70 i 55162 </blockquote> Err codemadness.org 70 i 55163 <blockquote> Err codemadness.org 70 i 55164 <p>Here’s a brief introduction to those who will serve on the board:</p> Err codemadness.org 70 i 55165 </blockquote> Err codemadness.org 70 i 55166 <ul> Err codemadness.org 70 i 55167 <li> Err codemadness.org 70 i 55168 <p>W. Dean Freeman (Advisor): Dean has ten years of professional experience with deploying and security Unix and networking systems, including assessing systems security for government certification and assessing the efficacy of security products. He was introduced to Unix via FreeBSD 2.2.8 on an ISP shell account as a teenager. Formerly, he was the Snort port maintainer for FreeBSD while working in the Sourcefire VRT, and has contributed entropy-related patches to the FreeBSD and HardenedBSD projects – a topic on which he presented at vBSDCon 2017.</p> Err codemadness.org 70 i 55169 </li> Err codemadness.org 70 i 55170 <li> Err codemadness.org 70 i 55171 <p>Ben La Monica (Advisor): Ben is a Senior Technology Manager of Software Engineering at Morningstar, Inc and has been developing software for over 15 years in a variety of languages. He advocates open source software and enjoys tinkering with electronics and home automation.</p> Err codemadness.org 70 i 55172 </li> Err codemadness.org 70 i 55173 <li> Err codemadness.org 70 i 55174 <p>George Saylor (Advisor): George is a Technical Directory at G2, Inc. Mr. Saylor has over 28 years of information systems and security experience in a broad range of disciplines. His core focus areas are automation and standards in the event correlation space as well as penetration and exploitation of computer systems. Mr Saylor was also a co-founder of the OpenSCAP project.</p> Err codemadness.org 70 i 55175 </li> Err codemadness.org 70 i 55176 <li> Err codemadness.org 70 i 55177 <p>Virginia Suydan (Accountant and general administrator): Accountant and general administrator for the HardenedBSD Foundation. She has worked with Shawn Webb for tax and accounting purposes for over six years.</p> Err codemadness.org 70 i 55178 </li> Err codemadness.org 70 i 55179 <li> Err codemadness.org 70 i 55180 <p>Shawn Webb (Director): Co-founder of HardenedBSD and all-around infosec wonk. He has worked and played in the infosec industry, doing both offensive and defensive research, for around fifteen years. He loves open source technologies and likes to frustrate the bad guys.</p> Err codemadness.org 70 i 55181 </li> Err codemadness.org 70 i 55182 <li> Err codemadness.org 70 i 55183 <p>Ben Welch (Advisor): Ben is currently a Security Engineer at G2, Inc. He graduated from Pennsylvania College of Technology with a Bachelors in Information Assurance and Security. Ben likes long walks, beaches, candlelight dinners, and attending various conferences like BSides and ShmooCon.</p> Err codemadness.org 70 i 55184 </li> Err codemadness.org 70 i 55185 </ul> Err codemadness.org 70 i 55186 <hr> Err codemadness.org 70 i 55187 <p>###<a href="https://medium.com/@cmacrae/your-own-vpn-with-openiked-openbsd-13d7abd3d1d4">Your own VPN with OpenIKED &amp; OpenBSD</a></p> Err codemadness.org 70 i 55188 <blockquote> Err codemadness.org 70 i 55189 <p>Remote connectivity to your home network is something I think a lot of people find desirable. Over the years, I’ve just established an SSH tunnel and use it as a SOCKS proxy, sending my traffic through that. It’s a nice solution for a “poor man’s VPN”, but it can be a bit clunky, and it’s not great having to expose SSH to the world, even if you make sure to lock everything down </p> Err codemadness.org 70 i 55190 </blockquote> Err codemadness.org 70 i 55191 <blockquote> Err codemadness.org 70 i 55192 <p>I set out the other day to finally do it properly. I’d come across this great post by Gordon Turner: <a href="https://blog.gordonturner.com/2018/02/25/openbsd-6-2-vpn-endpoint-for-ios-and-macos/">OpenBSD 6.2 VPN Endpoint for iOS and macOS</a></p> Err codemadness.org 70 i 55193 </blockquote> Err codemadness.org 70 i 55194 <blockquote> Err codemadness.org 70 i 55195 <p>Whilst it was exactly what I was looking for, it outlined how to set up an L2TP VPN. Really, I wanted IKEv2 for performance and security reasons (I won’t elaborate on this here, if you’re curious about the differences, there’s a lot of content out on the web explaining this).</p> Err codemadness.org 70 i 55196 </blockquote> Err codemadness.org 70 i 55197 <blockquote> Err codemadness.org 70 i 55198 <p>The client systems I’d be using have native support for IKEv2 (iOS, macOS, other BSD systems). But, I couldn’t find any tutorials in the same vein.</p> Err codemadness.org 70 i 55199 </blockquote> Err codemadness.org 70 i 55200 <blockquote> Err codemadness.org 70 i 55201 <p>So, let’s get stuck in!</p> Err codemadness.org 70 i 55202 </blockquote> Err codemadness.org 70 i 55203 <ul> Err codemadness.org 70 i 55204 <li>A quick note ✍️</li> Err codemadness.org 70 i 55205 </ul> Err codemadness.org 70 i 55206 <blockquote> Err codemadness.org 70 i 55207 <p>This guide will walk through the set up of an IKEv2 VPN using OpenIKED on OpenBSD. It will detail a “road warrior” configuration, and use a PSK (pre-shared-key) for authentication. I’m sure it can be easily adapted to work on any other platforms that OpenIKED is available on, but keep in mind my steps are specifically for OpenBSD.</p> Err codemadness.org 70 i 55208 </blockquote> Err codemadness.org 70 i 55209 <ul> Err codemadness.org 70 i 55210 <li>Server Configuration</li> Err codemadness.org 70 i 55211 </ul> Err codemadness.org 70 i 55212 <blockquote> Err codemadness.org 70 i 55213 <p>As with all my home infrastructure, I crafted this set-up declaratively. So, I had the deployment of the VM setup in Terraform (deployed on my private Triton cluster), and wrote the configuration in Ansible, then tied them together using radekg/terraform-provisioner-ansible.</p> Err codemadness.org 70 i 55214 </blockquote> Err codemadness.org 70 i 55215 <blockquote> Err codemadness.org 70 i 55216 <p>One of the reasons I love Ansible is that its syntax is very simplistic, yet expressive. As such, I feel it fits very well into explaining these steps with snippets of the playbook I wrote. I’ll link the full playbook a bit further down for those interested.</p> Err codemadness.org 70 i 55217 </blockquote> Err codemadness.org 70 i 55218 <ul> Err codemadness.org 70 i 55219 <li>See the full article for the information on:</li> Err codemadness.org 70 i 55220 <li>sysctl parameters</li> Err codemadness.org 70 i 55221 <li>The naughty list (optional)</li> Err codemadness.org 70 i 55222 <li>Configure the VPN network interface</li> Err codemadness.org 70 i 55223 <li>Configure the firewall</li> Err codemadness.org 70 i 55224 <li>Configure the iked service</li> Err codemadness.org 70 i 55225 <li>Gateway configuration</li> Err codemadness.org 70 i 55226 <li>Client configuration</li> Err codemadness.org 70 i 55227 <li>Troubleshooting</li> Err codemadness.org 70 i 55228 </ul> Err codemadness.org 70 i 55229 <hr> Err codemadness.org 70 i 55230 <p><strong>DigitalOcean</strong></p> Err codemadness.org 70 i 55231 <p>###<a href="https://corrupted.io/2018/05/15/system76-free-bsd.html">FreeBSD on a System76 Galago Pro</a></p> Err codemadness.org 70 i 55232 <blockquote> Err codemadness.org 70 i 55233 <p>Hey all, It’s been a while since I last posted but I thought I would hammer something out here. My most recent purchase was a System76 Galago Pro. I thought, afer playing with POP! OS a bit, is there any reason I couldn’t get BSD on this thing. Turns out the answer is no, no there isnt and it works pretty decently.</p> Err codemadness.org 70 i 55234 </blockquote> Err codemadness.org 70 i 55235 <blockquote> Err codemadness.org 70 i 55236 <p>To get some accounting stuff out of the way I tested this all on FreeBSD Head and 11.1, and all of it is valid as of May 10, 2018. Head is a fast moving target so some of this is only bound to improve.</p> Err codemadness.org 70 i 55237 </blockquote> Err codemadness.org 70 i 55238 <ul> Err codemadness.org 70 i 55239 <li> Err codemadness.org 70 i 55240 <p>The hardware</p> Err codemadness.org 70 i 55241 </li> Err codemadness.org 70 i 55242 <li> Err codemadness.org 70 i 55243 <p>Intel Core i5 Gen 8</p> Err codemadness.org 70 i 55244 </li> Err codemadness.org 70 i 55245 <li> Err codemadness.org 70 i 55246 <p>UHD Graphics 620</p> Err codemadness.org 70 i 55247 </li> Err codemadness.org 70 i 55248 <li> Err codemadness.org 70 i 55249 <p>16 GB DDR4 Ram</p> Err codemadness.org 70 i 55250 </li> Err codemadness.org 70 i 55251 <li> Err codemadness.org 70 i 55252 <p>RTL8411B PCI Express Card Reader</p> Err codemadness.org 70 i 55253 </li> Err codemadness.org 70 i 55254 <li> Err codemadness.org 70 i 55255 <p>RTL8111 Gigabit ethernet controller</p> Err codemadness.org 70 i 55256 </li> Err codemadness.org 70 i 55257 <li> Err codemadness.org 70 i 55258 <p>Intel HD Audio</p> Err codemadness.org 70 i 55259 </li> Err codemadness.org 70 i 55260 <li> Err codemadness.org 70 i 55261 <p>Samsung SSD 960 PRO 512GB NVMe</p> Err codemadness.org 70 i 55262 </li> Err codemadness.org 70 i 55263 <li> Err codemadness.org 70 i 55264 <p>The caveats</p> Err codemadness.org 70 i 55265 </li> Err codemadness.org 70 i 55266 </ul> Err codemadness.org 70 i 55267 <blockquote> Err codemadness.org 70 i 55268 <p>There are a few things that I cant seem to make work straight out of the box, and that is the SD Card reader, the backlight, and the audio is a bit finicky. Also the trackpad doesn’t respond to two finger scrolling. The wiki is mostly up to date, there are a few edits that need to be made still but there is a bug where I cant register an account yet so I haven’t made all the changes.</p> Err codemadness.org 70 i 55269 </blockquote> Err codemadness.org 70 i 55270 <ul> Err codemadness.org 70 i 55271 <li>Processor</li> Err codemadness.org 70 i 55272 </ul> Err codemadness.org 70 i 55273 <blockquote> Err codemadness.org 70 i 55274 <p>It works like any other Intel processor. Pstates and throttling work.</p> Err codemadness.org 70 i 55275 </blockquote> Err codemadness.org 70 i 55276 <ul> Err codemadness.org 70 i 55277 <li>Graphics</li> Err codemadness.org 70 i 55278 </ul> Err codemadness.org 70 i 55279 <blockquote> Err codemadness.org 70 i 55280 <p>The boot menu sets itself to what looks like 1024x768, but works as you expect in a tiny window. The text console does the full 3200x1800 resolution, but the text is ultra tiny. There isnt a font for the console that covers hidpi screens yet. As for X Windows it requres the drm-kmod-next package. Once installed follow the directions from the package and it works with almost no fuss. I have it running on X with full intel acceleration, but it is running at it’s full 3200x1800 resolution, to scale that down just do xrandr --output eDP-1 --scale 0.5x0.5 it will blow it up to roughly 200%. Due to limitations with X windows and hidpi it is harder to get more granular.</p> Err codemadness.org 70 i 55281 </blockquote> Err codemadness.org 70 i 55282 <ul> Err codemadness.org 70 i 55283 <li>Intel Wireless 8265</li> Err codemadness.org 70 i 55284 </ul> Err codemadness.org 70 i 55285 <blockquote> Err codemadness.org 70 i 55286 <p>The wireless uses the iwm module, as of right now it does not seem to automagically load right now. Adding iwm_load=“YES” will cause the module to load on boot and kldload iwm</p> Err codemadness.org 70 i 55287 </blockquote> Err codemadness.org 70 i 55288 <ul> Err codemadness.org 70 i 55289 <li>Battery</li> Err codemadness.org 70 i 55290 </ul> Err codemadness.org 70 i 55291 <blockquote> Err codemadness.org 70 i 55292 <p>I seem to be getting about 5 hours out of the battery, but everything reports out of the box as expected. I could get more by throttling the CPU down speed wise.</p> Err codemadness.org 70 i 55293 </blockquote> Err codemadness.org 70 i 55294 <ul> Err codemadness.org 70 i 55295 <li>Overall impression</li> Err codemadness.org 70 i 55296 </ul> Err codemadness.org 70 i 55297 <blockquote> Err codemadness.org 70 i 55298 <p>It is a pretty decent experience. While not as polished as a Thinkpad there is a lot of potential with a bit of work and polishing. The laptop itself is not bad, the keyboard is responsive. The build quality is pretty solid. My only real complaint is the trackpad is stiff to click and sort of tiny. They seem to be a bit indifferent to non linux OSes running on the gear but that isnt anything new. I wont have any problems using it and is enough that when I work through this laptop, but I’m not sure at this stage if my next machine will be a System76 laptop, but they have impressed me enough to put them in the running when I go to look for my next portable machine but it hasn’t yet replaced the hole left in my heart by lenovo messing with the thinkpad.</p> Err codemadness.org 70 i 55299 </blockquote> Err codemadness.org 70 i 55300 <hr> Err codemadness.org 70 i 55301 <p>###<a href="https://undeadly.org/cgi?action=article;sid=20180418073437">Hardware accelerated AES/HMAC-SHA on octeons</a></p> Err codemadness.org 70 i 55302 <pre><code>In this commit, visa@ submitted code (disabled for now) to use built-in acceleration on octeon CPUs, much like AESNI for x86s. Err codemadness.org 70 i 55303 I decided to test tcpbench(1) and IPsec, before and after updating and enabling the octcrypto(4) driver. Err codemadness.org 70 i 55304 I didn't capture detailed perf stats from before the update, I had heard someone say that Edgerouter Lite boxes would only do some 6MBit/s over ipsec, so I set up a really simple ipsec.conf with ike esp from A to B leading to a policy of Err codemadness.org 70 i 55305 esp tunnel from A to B spi 0xdeadbeef auth hmac-sha2-256 enc aes Err codemadness.org 70 i 55306 going from one ERL to another (I collect octeons, so I have a bunch to test with) and let tcpbench run for a while on it. My numbers hovered around 7Mbit/s, which coincided with what I've heard, and also that most of the CPU gets used while doing it. Err codemadness.org 70 i 55307 Then I edited /sys/arch/octeon/conf/GENERIC, removed the # from octcrypto0 at mainbus0 and recompiled. Booted into the new kernel and got a octcrypto0 line in dmesg, and it was time to rock the ipsec tunnel again. The crypto algorithm and HMAC used by default on ipsec coincides nicely with the list of accelerated functions provided by the driver. Err codemadness.org 70 i 55308 Before we get to tunnel traffic numbers, just one quick look at what systat pigs says while the ipsec is running at full steam: Err codemadness.org 70 i 55309 PID USER NAME CPU 20\ 40\ 60\ 80\ 100\ Err codemadness.org 70 i 55310 58917 root crypto 52.25 ################# Err codemadness.org 70 i 55311 42636 root softnet 42.48 ############## Err codemadness.org 70 i 55312 (idle) 29.74 ######### Err codemadness.org 70 i 55313 1059 root tcpbench 24.22 ####### Err codemadness.org 70 i 55314 67777 root crynlk 19.58 ###### Err codemadness.org 70 i 55315 So this indicates that the load from doing ipsec and generating the traffic is somewhat nicely evened out over the two cores in the Edgerouter, and there's even some CPU left unused, which means I can actually ssh into it and have it usable. I have had it running for almost 2 days now, moving some 2.1TB over the tunnel. Err codemadness.org 70 i 55316 Now for the new and improved performance numbers: Err codemadness.org 70 i 55317 204452123 4740752 37.402 100.00% Err codemadness.org 70 i 55318 Conn: 1 Mbps: 37.402 Peak Mbps: 58.870 Avg Mbps: 37.402 Err codemadness.org 70 i 55319 204453149 4692968 36.628 100.00% Err codemadness.org 70 i 55320 Conn: 1 Mbps: 36.628 Peak Mbps: 58.870 Avg Mbps: 36.628 Err codemadness.org 70 i 55321 204454167 5405552 42.480 100.00% Err codemadness.org 70 i 55322 Conn: 1 Mbps: 42.480 Peak Mbps: 58.870 Avg Mbps: 42.480 Err codemadness.org 70 i 55323 204455188 5202496 40.804 100.00% Err codemadness.org 70 i 55324 Conn: 1 Mbps: 40.804 Peak Mbps: 58.870 Avg Mbps: 40.804 Err codemadness.org 70 i 55325 204456194 5062208 40.256 100.00% Err codemadness.org 70 i 55326 Conn: 1 Mbps: 40.256 Peak Mbps: 58.870 Avg Mbps: 40.256 Err codemadness.org 70 i 55327 The tcpbench numbers fluctuate up and down a bit, but the output is nice enough to actually keep tabs on the peak values. Peaking to 58.8MBit/s! Of course, as you can see, the average is lower but nice anyhow. Err codemadness.org 70 i 55328 A manyfold increase in performance, which is good enough in itself, but also moves the throughput from a speed that would make a poor but cheap gateway to something actually useful and decent for many home network speeds. Biggest problem after this gets enabled will be that my options to buy cheap used ERLs diminish. Err codemadness.org 70 i 55329 </code></pre> Err codemadness.org 70 i 55330 <hr> Err codemadness.org 70 i 55331 <p>##Beastie Bits</p> Err codemadness.org 70 i 55332 <ul> Err codemadness.org 70 i 55333 <li><a href="http://www.etinc.com/122/Using-FreeBSD-Text-Dumps">Using FreeBSD Text Dumps</a></li> Err codemadness.org 70 i 55334 <li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=334391">llvm’s lld now the default linker for amd64 on FreeBSD</a></li> Err codemadness.org 70 i 55335 <li><a href="https://blather.michaelwlucas.com/archives/3194">Author Discoverability</a></li> Err codemadness.org 70 i 55336 <li><a href="https://www.openbsd.org/papers/BeckPledgeUnveilBSDCan2018.pdf">Pledge and Unveil in OpenBSD {pdf}</a></li> Err codemadness.org 70 i 55337 <li><a href="https://2018.eurobsdcon.org/call-for-papers/">EuroBSDCon 2018 CFP Closes June 17, hurry up and get your submissions in</a></li> Err codemadness.org 70 i 55338 <li><a href="https://2018.eurobsdcon.org/paul-schenkeveld-travel-grant/">Just want to attend, but need help getting to the conference? Applications for the Paul Schenkeveld travel grant accepted until June 15th</a></li> Err codemadness.org 70 i 55339 </ul> Err codemadness.org 70 i 55340 <hr> Err codemadness.org 70 i 55341 <p><strong>Tarsnap</strong></p> Err codemadness.org 70 i 55342 <p>##Feedback/Questions</p> Err codemadness.org 70 i 55343 <ul> Err codemadness.org 70 i 55344 <li>Casey - <a href="http://dpaste.com/2H42V7W#wrap">ZFS on Digital Ocean</a></li> Err codemadness.org 70 i 55345 <li>Jürgen - <a href="http://dpaste.com/3N7ZN8C#wrap">A Question</a></li> Err codemadness.org 70 i 55346 <li>Kevin - <a href="http://dpaste.com/231CY5Z#wrap">Failover best practice</a></li> Err codemadness.org 70 i 55347 <li>Dennis - <a href="http://dpaste.com/1QPNB25#wrap">SQL</a></li> Err codemadness.org 70 i 55348 </ul> Err codemadness.org 70 i 55349 <hr> Err codemadness.org 70 i 55350 <ul> Err codemadness.org 70 i 55351 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 55352 </ul> Err codemadness.org 70 i 55353 Err codemadness.org 70 i 55354 freebsd, openbsd, netbsd, dragonflybsd, trueos, tutorial, howto, guide, bsd, interview, OpenIKED, HardenedBSD, Trident, Project Trident, bsdcan Err codemadness.org 70 i 55355 Err codemadness.org 70 i 55356 TrueOS becoming a downstream fork with Trident, our BSDCan 2018 recap, HardenedBSD Foundation founding efforts, VPN with OpenIKED on OpenBSD, FreeBSD on a System76 Galago Pro, and hardware accelerated crypto on Octeons.

Err codemadness.org 70 i 55357 Err codemadness.org 70 i 55358

##Headlines##
Err codemadness.org 70 i 55359 ###TrueOS to Focus on Core Operating System

Err codemadness.org 70 i 55360 Err codemadness.org 70 i 55361
Err codemadness.org 70 i 55362

The TrueOS Project has some big plans in the works, and we want to take a minute and share them with you. Many have come to know TrueOS as the “graphical FreeBSD” that makes things easy for newcomers to the BSDs. Today we’re announcing that TrueOS is shifting our focus a bit to become a cutting-edge operating system that keeps all of the stability that you know and love from ZFS (OpenZFS) and FreeBSD, and adds additional features to create a fresh, innovative operating system. Our goal is to create a core-centric operating system that is modular, functional, and perfect for do-it-yourselfers and advanced users alike.

Err codemadness.org 70 i 55363
Err codemadness.org 70 i 55364 Err codemadness.org 70 i 55365
Err codemadness.org 70 i 55366

TrueOS will become a downstream fork that will build on FreeBSD by integrating new software technologies like OpenRC and LibreSSL. Work has already begun which allows TrueOS to be used as a base platform for other projects, including JSON-based manifests, integrated Poudriere / pkg tools and much more. We’re planning on a six month release cycle to keep development moving and fresh, allowing us to bring you hot new features to ZFS, bhyve and related tools in a timely manner. This makes TrueOS the perfect fit to serve as the basis for building other distributions.

Err codemadness.org 70 i 55367
Err codemadness.org 70 i 55368 Err codemadness.org 70 i 55369
Err codemadness.org 70 i 55370

Some of you are probably asking yourselves “But what if I want to have a graphical desktop?” Don’t worry! We’re making sure that everyone who knows and loves the legacy desktop version of TrueOS will be able to continue using a FreeBSD-based, graphical operating system in the future. For instance, if you want to add KDE, just use sudo pkg install kde and voila! You have your new shiny desktop. Easy right? This allows us to get back to our roots of being a desktop agnostic operating system. If you want to add a new desktop environment, you get to pick the one that best suits your use.

Err codemadness.org 70 i 55371
Err codemadness.org 70 i 55372 Err codemadness.org 70 i 55373
Err codemadness.org 70 i 55374

We know that some of you will still be looking for an out-of-the-box solution similar to legacy PC-BSD and TrueOS. We’re happy to announce that Project Trident will take over graphical FreeBSD development going forward. Not much is going to change in that regard other than a new name! You’ll still have Lumina Desktop as a lightweight and feature-rich desktop environment and tons of utilities from the legacy TrueOS toolchain like sysadm and AppCafe. There will be migration paths available for those that would like to move to other FreeBSD-based distributions like Project Trident or GhostBSD.

Err codemadness.org 70 i 55375
Err codemadness.org 70 i 55376 Err codemadness.org 70 i 55377
Err codemadness.org 70 i 55378

We look forward to this new chapter for TrueOS and hope you will give the new edition a spin! Tell us what you think about the new changes by leaving us a comment. Don’t forget you can ask us questions on our Twitter and be a part of our community by joining the new TrueOS Forums when they go live in about a week. Thanks for being a loyal fan of TrueOS.

Err codemadness.org 70 i 55379
Err codemadness.org 70 i 55380 Err codemadness.org 70 i 55381

###Project Trident FAQ

Err codemadness.org 70 i 55382 Err codemadness.org 70 i 55383
    Err codemadness.org 70 i 55384
  • Q: Why did you pick the name “Project Trident”?
  • Err codemadness.org 70 i 55385
Err codemadness.org 70 i 55386 Err codemadness.org 70 i 55387
Err codemadness.org 70 i 55388

A: We were looking for a name that was unique, yet would still relate to the BSD community. Since Beastie (the FreeBSD mascot) is always pictured with a trident, it felt like that would be a great name.

Err codemadness.org 70 i 55389
Err codemadness.org 70 i 55390 Err codemadness.org 70 i 55391
    Err codemadness.org 70 i 55392
  • Q: Where can users go for technical support?
  • Err codemadness.org 70 i 55393
Err codemadness.org 70 i 55394 Err codemadness.org 70 i 55395
Err codemadness.org 70 i 55396

A: At the moment, Project Trident will continue sharing the TrueOS community forums and Telegram channels. We are currently evaluating dedicated options for support channels in the future.

Err codemadness.org 70 i 55397
Err codemadness.org 70 i 55398 Err codemadness.org 70 i 55399
    Err codemadness.org 70 i 55400
  • Q: Can I help contribute to the project?
  • Err codemadness.org 70 i 55401
Err codemadness.org 70 i 55402 Err codemadness.org 70 i 55403
Err codemadness.org 70 i 55404

A: We are always looking for developers who want to join the project. If you’re not a developer you can still help, as a community project we will be more reliant on contributions from the community in the form of how-to guides and other user-centric documentation and support systems.

Err codemadness.org 70 i 55405
Err codemadness.org 70 i 55406 Err codemadness.org 70 i 55407
    Err codemadness.org 70 i 55408
  • Q: How is the project supported financially?
  • Err codemadness.org 70 i 55409
Err codemadness.org 70 i 55410 Err codemadness.org 70 i 55411
Err codemadness.org 70 i 55412

A: Project Trident is sponsored by the community, from both individuals and corporations. iXsystems has stepped up as the first enterprise-level sponsor of the project, and has been instrumental in getting Project Trident up and running. Please visit the Sponsors page to see all the current sponsors.

Err codemadness.org 70 i 55413
Err codemadness.org 70 i 55414 Err codemadness.org 70 i 55415
    Err codemadness.org 70 i 55416
  • Q: How can I help support the project financially?
  • Err codemadness.org 70 i 55417
Err codemadness.org 70 i 55418 Err codemadness.org 70 i 55419
Err codemadness.org 70 i 55420

A: Several methods exist, from one time or recurring donations via Paypal to limited time swag t-shirt campaigns during the year. We are also looking into more alternative methods of support, so please visit the Sponsors page to see all the current methods of sponsorship.

Err codemadness.org 70 i 55421
Err codemadness.org 70 i 55422 Err codemadness.org 70 i 55423
    Err codemadness.org 70 i 55424
  • Q: Will there be any transparency of the financial donations and expenditures?
  • Err codemadness.org 70 i 55425
Err codemadness.org 70 i 55426 Err codemadness.org 70 i 55427
Err codemadness.org 70 i 55428

A: Yes, we will be totally open with how much money comes into the project and what it is spent on. Due to concerns of privacy, we will not identify individuals and their donation amounts unless they specifically request to be identified. We will release a monthly overview in/out ledger, so that community members can see where their money is going.

Err codemadness.org 70 i 55429
Err codemadness.org 70 i 55430 Err codemadness.org 70 i 55431
    Err codemadness.org 70 i 55432
  • Err codemadness.org 70 i 55433

    Relationship with TrueOS

    Err codemadness.org 70 i 55434
  • Err codemadness.org 70 i 55435
  • Err codemadness.org 70 i 55436

    Project Trident does have very close ties to the TrueOS project, since most of the original Project Trident developers were once part of the TrueOS project before it became a distribution platform. For users of the TrueOS desktop, we have some additional questions and answers below.

    Err codemadness.org 70 i 55437
  • Err codemadness.org 70 i 55438
  • Err codemadness.org 70 i 55439

    Q: Do we need to be at a certain TrueOS install level/release to upgrade?

    Err codemadness.org 70 i 55440
  • Err codemadness.org 70 i 55441
Err codemadness.org 70 i 55442 Err codemadness.org 70 i 55443
Err codemadness.org 70 i 55444

A: As long as you have a TrueOS system which has been updated to at least the 18.03 release you should be able to just perform a system update to be automatically upgraded to Project Trident.

Err codemadness.org 70 i 55445
Err codemadness.org 70 i 55446 Err codemadness.org 70 i 55447
    Err codemadness.org 70 i 55448
  • Q: Which members moved from TrueOS to Project Trident?
  • Err codemadness.org 70 i 55449
Err codemadness.org 70 i 55450 Err codemadness.org 70 i 55451
Err codemadness.org 70 i 55452

A: Project Trident is being led by prior members of the TrueOS desktop team. Ken and JT (development), Tim (documentation) and Rod (Community/Support). Since Project Trident is a community-first project, we look forward to working with new members of the team.

Err codemadness.org 70 i 55453
Err codemadness.org 70 i 55454 Err codemadness.org 70 i 55455


Err codemadness.org 70 i 55456 Err codemadness.org 70 i 55457

iXsystems

Err codemadness.org 70 i 55458 Err codemadness.org 70 i 55459

###BSDCan

Err codemadness.org 70 i 55460 Err codemadness.org 70 i 55461
    Err codemadness.org 70 i 55462
  • BSDCan finished Saturday last week
  • Err codemadness.org 70 i 55463
  • It started with the GoatBoF on Tuesday at the Royal Oak Pub, where people had a chance to meet and greet. Benedict could not attend due to an all-day FreeBSD Foundation meeting and and even FreeBSD Journal Editorial Board meeting.
  • Err codemadness.org 70 i 55464
  • The FreeBSD devsummit was held the next two days in parallel to the tutorials. Gordon Tetlow, who organized the devsummit, opened the devsummit. Deb Goodkin from the FreeBSD Foundation gave the first talk with a Foundation update, highlighting current and future efforts. Li-Wen Hsu is now employed by the Foundation to assist in QA work (Jenkins, CI/CD) and Gordon Tetlow has a part-time contract to help secteam as their secretary.
  • Err codemadness.org 70 i 55465
  • Next, the FreeBSD core team (among them Allan and Benedict) gave a talk about what has happened this last term. With a core election currently running, some of these items will carry over to the next core team, but there were also some finished ones like the FCP process and FreeBSD members initiative. People in the audience asked questions on various topics of interest.
  • Err codemadness.org 70 i 55466
  • After the coffee break, the release engineering team gave a talk about their efforts in terms of making releases happen in time and good quality.
  • Err codemadness.org 70 i 55467
  • Benedict had to give his Ansible tutorial in the afternoon, which had roughly 15 people attending. Most of them beginners, we could get some good discussions going and I also learned a few new tricks. The overall feedback was positive and one even asked what I’m going to teach next year.
  • Err codemadness.org 70 i 55468
  • The second day of the FreeBSD devsummit began with Gordon Tetlow giving an insight into the FreeBSD Security team (aka secteam). He gave a overview of secteam members and responsibilities, explaining the process based on a long past advisory. Developers were encouraged to help out secteam. NDAs and proper disclosure of vulnerabilities were also discussed, and the audience had some feedback and questions.
  • Err codemadness.org 70 i 55469
  • When the coffee break was over, the FreeBSD 12.0 planning session happened. A Google doc served as a collaborative way of gathering features and things left to do. People signed up for it or were volunteered. Some features won’t make it into 12.0 as they are not 100% ready for prime time and need a few more rounds of testing and bugfixing. Still, 12.0 will have some compelling features.
  • Err codemadness.org 70 i 55470
  • A 360° group picture was taken after lunch, and then people split up into the working groups for the afternoon or started hacking in the UofO Henderson residence.
  • Err codemadness.org 70 i 55471
  • Benedict and Allan both attended the OpenZFS working group, lead by Matt Ahrens. He presented the completed and outstanding work in FreeBSD, without spoiling too much of the ZFS presentations of various people that happened later at the conference.
  • Err codemadness.org 70 i 55472
  • Benedict joined the boot code session a bit late (hallway track is the reason) when most things seem to have already been discussed.
  • Err codemadness.org 70 i 55473
  • BSDCan 2018 — Ottawa (In Pictures)
  • Err codemadness.org 70 i 55474
  • iXsystems Photos from BSDCan 2018
  • Err codemadness.org 70 i 55475
Err codemadness.org 70 i 55476 Err codemadness.org 70 i 55477


Err codemadness.org 70 i 55478 Err codemadness.org 70 i 55479

##News Roundup
Err codemadness.org 70 i 55480 ###June HardenedBSD Foundation Update

Err codemadness.org 70 i 55481 Err codemadness.org 70 i 55482
Err codemadness.org 70 i 55483

We at HardenedBSD are working towards starting up a 501©(3) not-for-profit organization in the USA. Setting up this organization will allow future donations to be tax deductible. We’ve made progress and would like to share with you the current state of affairs.

Err codemadness.org 70 i 55484
Err codemadness.org 70 i 55485 Err codemadness.org 70 i 55486
Err codemadness.org 70 i 55487

We have identified, sent invitations out, and received acceptance letters from six people who will serve on the HardenedBSD Foundation Board of Directors. You can find their bios below. In the latter half of June 2018 or the beginning half of July 2018, we will meet for the first time as a board and formally begin the process of creating the documentation needed to submit to the local, state, and federal tax services.

Err codemadness.org 70 i 55488
Err codemadness.org 70 i 55489 Err codemadness.org 70 i 55490
Err codemadness.org 70 i 55491

Here’s a brief introduction to those who will serve on the board:

Err codemadness.org 70 i 55492
Err codemadness.org 70 i 55493 Err codemadness.org 70 i 55494
    Err codemadness.org 70 i 55495
  • Err codemadness.org 70 i 55496

    W. Dean Freeman (Advisor): Dean has ten years of professional experience with deploying and security Unix and networking systems, including assessing systems security for government certification and assessing the efficacy of security products. He was introduced to Unix via FreeBSD 2.2.8 on an ISP shell account as a teenager. Formerly, he was the Snort port maintainer for FreeBSD while working in the Sourcefire VRT, and has contributed entropy-related patches to the FreeBSD and HardenedBSD projects – a topic on which he presented at vBSDCon 2017.

    Err codemadness.org 70 i 55497
  • Err codemadness.org 70 i 55498
  • Err codemadness.org 70 i 55499

    Ben La Monica (Advisor): Ben is a Senior Technology Manager of Software Engineering at Morningstar, Inc and has been developing software for over 15 years in a variety of languages. He advocates open source software and enjoys tinkering with electronics and home automation.

    Err codemadness.org 70 i 55500
  • Err codemadness.org 70 i 55501
  • Err codemadness.org 70 i 55502

    George Saylor (Advisor): George is a Technical Directory at G2, Inc. Mr. Saylor has over 28 years of information systems and security experience in a broad range of disciplines. His core focus areas are automation and standards in the event correlation space as well as penetration and exploitation of computer systems. Mr Saylor was also a co-founder of the OpenSCAP project.

    Err codemadness.org 70 i 55503
  • Err codemadness.org 70 i 55504
  • Err codemadness.org 70 i 55505

    Virginia Suydan (Accountant and general administrator): Accountant and general administrator for the HardenedBSD Foundation. She has worked with Shawn Webb for tax and accounting purposes for over six years.

    Err codemadness.org 70 i 55506
  • Err codemadness.org 70 i 55507
  • Err codemadness.org 70 i 55508

    Shawn Webb (Director): Co-founder of HardenedBSD and all-around infosec wonk. He has worked and played in the infosec industry, doing both offensive and defensive research, for around fifteen years. He loves open source technologies and likes to frustrate the bad guys.

    Err codemadness.org 70 i 55509
  • Err codemadness.org 70 i 55510
  • Err codemadness.org 70 i 55511

    Ben Welch (Advisor): Ben is currently a Security Engineer at G2, Inc. He graduated from Pennsylvania College of Technology with a Bachelors in Information Assurance and Security. Ben likes long walks, beaches, candlelight dinners, and attending various conferences like BSides and ShmooCon.

    Err codemadness.org 70 i 55512
  • Err codemadness.org 70 i 55513
Err codemadness.org 70 i 55514 Err codemadness.org 70 i 55515


Err codemadness.org 70 i 55516 Err codemadness.org 70 i 55517

###Your own VPN with OpenIKED & OpenBSD

Err codemadness.org 70 i 55518 Err codemadness.org 70 i 55519
Err codemadness.org 70 i 55520

Remote connectivity to your home network is something I think a lot of people find desirable. Over the years, I’ve just established an SSH tunnel and use it as a SOCKS proxy, sending my traffic through that. It’s a nice solution for a “poor man’s VPN”, but it can be a bit clunky, and it’s not great having to expose SSH to the world, even if you make sure to lock everything down

Err codemadness.org 70 i 55521
Err codemadness.org 70 i 55522 Err codemadness.org 70 i 55523
Err codemadness.org 70 i 55524

I set out the other day to finally do it properly. I’d come across this great post by Gordon Turner: OpenBSD 6.2 VPN Endpoint for iOS and macOS

Err codemadness.org 70 i 55525
Err codemadness.org 70 i 55526 Err codemadness.org 70 i 55527
Err codemadness.org 70 i 55528

Whilst it was exactly what I was looking for, it outlined how to set up an L2TP VPN. Really, I wanted IKEv2 for performance and security reasons (I won’t elaborate on this here, if you’re curious about the differences, there’s a lot of content out on the web explaining this).

Err codemadness.org 70 i 55529
Err codemadness.org 70 i 55530 Err codemadness.org 70 i 55531
Err codemadness.org 70 i 55532

The client systems I’d be using have native support for IKEv2 (iOS, macOS, other BSD systems). But, I couldn’t find any tutorials in the same vein.

Err codemadness.org 70 i 55533
Err codemadness.org 70 i 55534 Err codemadness.org 70 i 55535
Err codemadness.org 70 i 55536

So, let’s get stuck in!

Err codemadness.org 70 i 55537
Err codemadness.org 70 i 55538 Err codemadness.org 70 i 55539
    Err codemadness.org 70 i 55540
  • A quick note ✍️
  • Err codemadness.org 70 i 55541
Err codemadness.org 70 i 55542 Err codemadness.org 70 i 55543
Err codemadness.org 70 i 55544

This guide will walk through the set up of an IKEv2 VPN using OpenIKED on OpenBSD. It will detail a “road warrior” configuration, and use a PSK (pre-shared-key) for authentication. I’m sure it can be easily adapted to work on any other platforms that OpenIKED is available on, but keep in mind my steps are specifically for OpenBSD.

Err codemadness.org 70 i 55545
Err codemadness.org 70 i 55546 Err codemadness.org 70 i 55547
    Err codemadness.org 70 i 55548
  • Server Configuration
  • Err codemadness.org 70 i 55549
Err codemadness.org 70 i 55550 Err codemadness.org 70 i 55551
Err codemadness.org 70 i 55552

As with all my home infrastructure, I crafted this set-up declaratively. So, I had the deployment of the VM setup in Terraform (deployed on my private Triton cluster), and wrote the configuration in Ansible, then tied them together using radekg/terraform-provisioner-ansible.

Err codemadness.org 70 i 55553
Err codemadness.org 70 i 55554 Err codemadness.org 70 i 55555
Err codemadness.org 70 i 55556

One of the reasons I love Ansible is that its syntax is very simplistic, yet expressive. As such, I feel it fits very well into explaining these steps with snippets of the playbook I wrote. I’ll link the full playbook a bit further down for those interested.

Err codemadness.org 70 i 55557
Err codemadness.org 70 i 55558 Err codemadness.org 70 i 55559
    Err codemadness.org 70 i 55560
  • See the full article for the information on:
  • Err codemadness.org 70 i 55561
  • sysctl parameters
  • Err codemadness.org 70 i 55562
  • The naughty list (optional)
  • Err codemadness.org 70 i 55563
  • Configure the VPN network interface
  • Err codemadness.org 70 i 55564
  • Configure the firewall
  • Err codemadness.org 70 i 55565
  • Configure the iked service
  • Err codemadness.org 70 i 55566
  • Gateway configuration
  • Err codemadness.org 70 i 55567
  • Client configuration
  • Err codemadness.org 70 i 55568
  • Troubleshooting
  • Err codemadness.org 70 i 55569
Err codemadness.org 70 i 55570 Err codemadness.org 70 i 55571


Err codemadness.org 70 i 55572 Err codemadness.org 70 i 55573

DigitalOcean

Err codemadness.org 70 i 55574 Err codemadness.org 70 i 55575

###FreeBSD on a System76 Galago Pro

Err codemadness.org 70 i 55576 Err codemadness.org 70 i 55577
Err codemadness.org 70 i 55578

Hey all, It’s been a while since I last posted but I thought I would hammer something out here. My most recent purchase was a System76 Galago Pro. I thought, afer playing with POP! OS a bit, is there any reason I couldn’t get BSD on this thing. Turns out the answer is no, no there isnt and it works pretty decently.

Err codemadness.org 70 i 55579
Err codemadness.org 70 i 55580 Err codemadness.org 70 i 55581
Err codemadness.org 70 i 55582

To get some accounting stuff out of the way I tested this all on FreeBSD Head and 11.1, and all of it is valid as of May 10, 2018. Head is a fast moving target so some of this is only bound to improve.

Err codemadness.org 70 i 55583
Err codemadness.org 70 i 55584 Err codemadness.org 70 i 55585
    Err codemadness.org 70 i 55586
  • Err codemadness.org 70 i 55587

    The hardware

    Err codemadness.org 70 i 55588
  • Err codemadness.org 70 i 55589
  • Err codemadness.org 70 i 55590

    Intel Core i5 Gen 8

    Err codemadness.org 70 i 55591
  • Err codemadness.org 70 i 55592
  • Err codemadness.org 70 i 55593

    UHD Graphics 620

    Err codemadness.org 70 i 55594
  • Err codemadness.org 70 i 55595
  • Err codemadness.org 70 i 55596

    16 GB DDR4 Ram

    Err codemadness.org 70 i 55597
  • Err codemadness.org 70 i 55598
  • Err codemadness.org 70 i 55599

    RTL8411B PCI Express Card Reader

    Err codemadness.org 70 i 55600
  • Err codemadness.org 70 i 55601
  • Err codemadness.org 70 i 55602

    RTL8111 Gigabit ethernet controller

    Err codemadness.org 70 i 55603
  • Err codemadness.org 70 i 55604
  • Err codemadness.org 70 i 55605

    Intel HD Audio

    Err codemadness.org 70 i 55606
  • Err codemadness.org 70 i 55607
  • Err codemadness.org 70 i 55608

    Samsung SSD 960 PRO 512GB NVMe

    Err codemadness.org 70 i 55609
  • Err codemadness.org 70 i 55610
  • Err codemadness.org 70 i 55611

    The caveats

    Err codemadness.org 70 i 55612
  • Err codemadness.org 70 i 55613
Err codemadness.org 70 i 55614 Err codemadness.org 70 i 55615
Err codemadness.org 70 i 55616

There are a few things that I cant seem to make work straight out of the box, and that is the SD Card reader, the backlight, and the audio is a bit finicky. Also the trackpad doesn’t respond to two finger scrolling. The wiki is mostly up to date, there are a few edits that need to be made still but there is a bug where I cant register an account yet so I haven’t made all the changes.

Err codemadness.org 70 i 55617
Err codemadness.org 70 i 55618 Err codemadness.org 70 i 55619
    Err codemadness.org 70 i 55620
  • Processor
  • Err codemadness.org 70 i 55621
Err codemadness.org 70 i 55622 Err codemadness.org 70 i 55623
Err codemadness.org 70 i 55624

It works like any other Intel processor. Pstates and throttling work.

Err codemadness.org 70 i 55625
Err codemadness.org 70 i 55626 Err codemadness.org 70 i 55627
    Err codemadness.org 70 i 55628
  • Graphics
  • Err codemadness.org 70 i 55629
Err codemadness.org 70 i 55630 Err codemadness.org 70 i 55631
Err codemadness.org 70 i 55632

The boot menu sets itself to what looks like 1024x768, but works as you expect in a tiny window. The text console does the full 3200x1800 resolution, but the text is ultra tiny. There isnt a font for the console that covers hidpi screens yet. As for X Windows it requres the drm-kmod-next package. Once installed follow the directions from the package and it works with almost no fuss. I have it running on X with full intel acceleration, but it is running at it’s full 3200x1800 resolution, to scale that down just do xrandr --output eDP-1 --scale 0.5x0.5 it will blow it up to roughly 200%. Due to limitations with X windows and hidpi it is harder to get more granular.

Err codemadness.org 70 i 55633
Err codemadness.org 70 i 55634 Err codemadness.org 70 i 55635
    Err codemadness.org 70 i 55636
  • Intel Wireless 8265
  • Err codemadness.org 70 i 55637
Err codemadness.org 70 i 55638 Err codemadness.org 70 i 55639
Err codemadness.org 70 i 55640

The wireless uses the iwm module, as of right now it does not seem to automagically load right now. Adding iwm_load=“YES” will cause the module to load on boot and kldload iwm

Err codemadness.org 70 i 55641
Err codemadness.org 70 i 55642 Err codemadness.org 70 i 55643
    Err codemadness.org 70 i 55644
  • Battery
  • Err codemadness.org 70 i 55645
Err codemadness.org 70 i 55646 Err codemadness.org 70 i 55647
Err codemadness.org 70 i 55648

I seem to be getting about 5 hours out of the battery, but everything reports out of the box as expected. I could get more by throttling the CPU down speed wise.

Err codemadness.org 70 i 55649
Err codemadness.org 70 i 55650 Err codemadness.org 70 i 55651
    Err codemadness.org 70 i 55652
  • Overall impression
  • Err codemadness.org 70 i 55653
Err codemadness.org 70 i 55654 Err codemadness.org 70 i 55655
Err codemadness.org 70 i 55656

It is a pretty decent experience. While not as polished as a Thinkpad there is a lot of potential with a bit of work and polishing. The laptop itself is not bad, the keyboard is responsive. The build quality is pretty solid. My only real complaint is the trackpad is stiff to click and sort of tiny. They seem to be a bit indifferent to non linux OSes running on the gear but that isnt anything new. I wont have any problems using it and is enough that when I work through this laptop, but I’m not sure at this stage if my next machine will be a System76 laptop, but they have impressed me enough to put them in the running when I go to look for my next portable machine but it hasn’t yet replaced the hole left in my heart by lenovo messing with the thinkpad.

Err codemadness.org 70 i 55657
Err codemadness.org 70 i 55658 Err codemadness.org 70 i 55659


Err codemadness.org 70 i 55660 Err codemadness.org 70 i 55661

###Hardware accelerated AES/HMAC-SHA on octeons

Err codemadness.org 70 i 55662 Err codemadness.org 70 i 55663
In this commit, visa@ submitted code (disabled for now) to use built-in acceleration on octeon CPUs, much like AESNI for x86s.	Err	codemadness.org	70
i 55664 	Err	codemadness.org	70
i 55665 I decided to test tcpbench(1) and IPsec, before and after updating and enabling the octcrypto(4) driver.	Err	codemadness.org	70
i 55666 	Err	codemadness.org	70
i 55667 I didn't capture detailed perf stats from before the update, I had heard someone say that Edgerouter Lite boxes would only do some 6MBit/s over ipsec, so I set up a really simple ipsec.conf with ike esp from A to B leading to a policy of	Err	codemadness.org	70
i 55668 	Err	codemadness.org	70
i 55669 esp tunnel from A to B spi 0xdeadbeef auth hmac-sha2-256 enc aes	Err	codemadness.org	70
i 55670 going from one ERL to another (I collect octeons, so I have a bunch to test with) and let tcpbench run for a while on it. My numbers hovered around 7Mbit/s, which coincided with what I've heard, and also that most of the CPU gets used while doing it.	Err	codemadness.org	70
i 55671 Then I edited /sys/arch/octeon/conf/GENERIC, removed the # from octcrypto0 at mainbus0 and recompiled. Booted into the new kernel and got a octcrypto0 line in dmesg, and it was time to rock the ipsec tunnel again. The crypto algorithm and HMAC used by default on ipsec coincides nicely with the list of accelerated functions provided by the driver.	Err	codemadness.org	70
i 55672 	Err	codemadness.org	70
i 55673 Before we get to tunnel traffic numbers, just one quick look at what systat pigs says while the ipsec is running at full steam:	Err	codemadness.org	70
i 55674 	Err	codemadness.org	70
i 55675      PID USER        NAME                 CPU     20\    40\    60\    80\  100\	Err	codemadness.org	70
i 55676    58917 root        crypto             52.25 #################	Err	codemadness.org	70
i 55677    42636 root        softnet            42.48 ##############	Err	codemadness.org	70
i 55678                      (idle)             29.74 #########	Err	codemadness.org	70
i 55679     1059 root        tcpbench           24.22 #######	Err	codemadness.org	70
i 55680    67777 root        crynlk             19.58 ######	Err	codemadness.org	70
i 55681 So this indicates that the load from doing ipsec and generating the traffic is somewhat nicely evened out over the two cores in the Edgerouter, and there's even some CPU left unused, which means I can actually ssh into it and have it usable. I have had it running for almost 2 days now, moving some 2.1TB over the tunnel.	Err	codemadness.org	70
i 55682 Now for the new and improved performance numbers:	Err	codemadness.org	70
i 55683 	Err	codemadness.org	70
i 55684    204452123        4740752       37.402  100.00% 	Err	codemadness.org	70
i 55685 Conn:   1 Mbps:       37.402 Peak Mbps:       58.870 Avg Mbps:       37.402	Err	codemadness.org	70
i 55686    204453149        4692968       36.628  100.00% 	Err	codemadness.org	70
i 55687 Conn:   1 Mbps:       36.628 Peak Mbps:       58.870 Avg Mbps:       36.628	Err	codemadness.org	70
i 55688    204454167        5405552       42.480  100.00% 	Err	codemadness.org	70
i 55689 Conn:   1 Mbps:       42.480 Peak Mbps:       58.870 Avg Mbps:       42.480	Err	codemadness.org	70
i 55690    204455188        5202496       40.804  100.00% 	Err	codemadness.org	70
i 55691 Conn:   1 Mbps:       40.804 Peak Mbps:       58.870 Avg Mbps:       40.804	Err	codemadness.org	70
i 55692    204456194        5062208       40.256  100.00% 	Err	codemadness.org	70
i 55693 Conn:   1 Mbps:       40.256 Peak Mbps:       58.870 Avg Mbps:       40.256	Err	codemadness.org	70
i 55694 	Err	codemadness.org	70
i 55695 The tcpbench numbers fluctuate up and down a bit, but the output is nice enough to actually keep tabs on the peak values. Peaking to 58.8MBit/s! Of course, as you can see, the average is lower but nice anyhow.	Err	codemadness.org	70
i 55696 	Err	codemadness.org	70
i 55697 A manyfold increase in performance, which is good enough in itself, but also moves the throughput from a speed that would make a poor but cheap gateway to something actually useful and decent for many home network speeds. Biggest problem after this gets enabled will be that my options to buy cheap used ERLs diminish.	Err	codemadness.org	70
i 55698 
Err codemadness.org 70 i 55699 Err codemadness.org 70 i 55700


Err codemadness.org 70 i 55701 Err codemadness.org 70 i 55702

##Beastie Bits

Err codemadness.org 70 i 55703 Err codemadness.org 70 i 55704 Err codemadness.org 70 i 55712 Err codemadness.org 70 i 55713


Err codemadness.org 70 i 55714 Err codemadness.org 70 i 55715

Tarsnap

Err codemadness.org 70 i 55716 Err codemadness.org 70 i 55717

##Feedback/Questions

Err codemadness.org 70 i 55718 Err codemadness.org 70 i 55719 Err codemadness.org 70 i 55725 Err codemadness.org 70 i 55726


Err codemadness.org 70 i 55727 Err codemadness.org 70 i 55728
    Err codemadness.org 70 i 55729
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 55730
]]> Err codemadness.org 70 i 55731
Err codemadness.org 70 i 55732 Err codemadness.org 70 i 55733 TrueOS becoming a downstream fork with Trident, our BSDCan 2018 recap, HardenedBSD Foundation founding efforts, VPN with OpenIKED on OpenBSD, FreeBSD on a System76 Galago Pro, and hardware accelerated crypto on Octeons.

Err codemadness.org 70 i 55734 Err codemadness.org 70 i 55735

##Headlines##
Err codemadness.org 70 i 55736 ###TrueOS to Focus on Core Operating System

Err codemadness.org 70 i 55737 Err codemadness.org 70 i 55738
Err codemadness.org 70 i 55739

The TrueOS Project has some big plans in the works, and we want to take a minute and share them with you. Many have come to know TrueOS as the “graphical FreeBSD” that makes things easy for newcomers to the BSDs. Today we’re announcing that TrueOS is shifting our focus a bit to become a cutting-edge operating system that keeps all of the stability that you know and love from ZFS (OpenZFS) and FreeBSD, and adds additional features to create a fresh, innovative operating system. Our goal is to create a core-centric operating system that is modular, functional, and perfect for do-it-yourselfers and advanced users alike.

Err codemadness.org 70 i 55740
Err codemadness.org 70 i 55741 Err codemadness.org 70 i 55742
Err codemadness.org 70 i 55743

TrueOS will become a downstream fork that will build on FreeBSD by integrating new software technologies like OpenRC and LibreSSL. Work has already begun which allows TrueOS to be used as a base platform for other projects, including JSON-based manifests, integrated Poudriere / pkg tools and much more. We’re planning on a six month release cycle to keep development moving and fresh, allowing us to bring you hot new features to ZFS, bhyve and related tools in a timely manner. This makes TrueOS the perfect fit to serve as the basis for building other distributions.

Err codemadness.org 70 i 55744
Err codemadness.org 70 i 55745 Err codemadness.org 70 i 55746
Err codemadness.org 70 i 55747

Some of you are probably asking yourselves “But what if I want to have a graphical desktop?” Don’t worry! We’re making sure that everyone who knows and loves the legacy desktop version of TrueOS will be able to continue using a FreeBSD-based, graphical operating system in the future. For instance, if you want to add KDE, just use sudo pkg install kde and voila! You have your new shiny desktop. Easy right? This allows us to get back to our roots of being a desktop agnostic operating system. If you want to add a new desktop environment, you get to pick the one that best suits your use.

Err codemadness.org 70 i 55748
Err codemadness.org 70 i 55749 Err codemadness.org 70 i 55750
Err codemadness.org 70 i 55751

We know that some of you will still be looking for an out-of-the-box solution similar to legacy PC-BSD and TrueOS. We’re happy to announce that Project Trident will take over graphical FreeBSD development going forward. Not much is going to change in that regard other than a new name! You’ll still have Lumina Desktop as a lightweight and feature-rich desktop environment and tons of utilities from the legacy TrueOS toolchain like sysadm and AppCafe. There will be migration paths available for those that would like to move to other FreeBSD-based distributions like Project Trident or GhostBSD.

Err codemadness.org 70 i 55752
Err codemadness.org 70 i 55753 Err codemadness.org 70 i 55754
Err codemadness.org 70 i 55755

We look forward to this new chapter for TrueOS and hope you will give the new edition a spin! Tell us what you think about the new changes by leaving us a comment. Don’t forget you can ask us questions on our Twitter and be a part of our community by joining the new TrueOS Forums when they go live in about a week. Thanks for being a loyal fan of TrueOS.

Err codemadness.org 70 i 55756
Err codemadness.org 70 i 55757 Err codemadness.org 70 i 55758

###Project Trident FAQ

Err codemadness.org 70 i 55759 Err codemadness.org 70 i 55760
    Err codemadness.org 70 i 55761
  • Q: Why did you pick the name “Project Trident”?
  • Err codemadness.org 70 i 55762
Err codemadness.org 70 i 55763 Err codemadness.org 70 i 55764
Err codemadness.org 70 i 55765

A: We were looking for a name that was unique, yet would still relate to the BSD community. Since Beastie (the FreeBSD mascot) is always pictured with a trident, it felt like that would be a great name.

Err codemadness.org 70 i 55766
Err codemadness.org 70 i 55767 Err codemadness.org 70 i 55768
    Err codemadness.org 70 i 55769
  • Q: Where can users go for technical support?
  • Err codemadness.org 70 i 55770
Err codemadness.org 70 i 55771 Err codemadness.org 70 i 55772
Err codemadness.org 70 i 55773

A: At the moment, Project Trident will continue sharing the TrueOS community forums and Telegram channels. We are currently evaluating dedicated options for support channels in the future.

Err codemadness.org 70 i 55774
Err codemadness.org 70 i 55775 Err codemadness.org 70 i 55776
    Err codemadness.org 70 i 55777
  • Q: Can I help contribute to the project?
  • Err codemadness.org 70 i 55778
Err codemadness.org 70 i 55779 Err codemadness.org 70 i 55780
Err codemadness.org 70 i 55781

A: We are always looking for developers who want to join the project. If you’re not a developer you can still help, as a community project we will be more reliant on contributions from the community in the form of how-to guides and other user-centric documentation and support systems.

Err codemadness.org 70 i 55782
Err codemadness.org 70 i 55783 Err codemadness.org 70 i 55784
    Err codemadness.org 70 i 55785
  • Q: How is the project supported financially?
  • Err codemadness.org 70 i 55786
Err codemadness.org 70 i 55787 Err codemadness.org 70 i 55788
Err codemadness.org 70 i 55789

A: Project Trident is sponsored by the community, from both individuals and corporations. iXsystems has stepped up as the first enterprise-level sponsor of the project, and has been instrumental in getting Project Trident up and running. Please visit the Sponsors page to see all the current sponsors.

Err codemadness.org 70 i 55790
Err codemadness.org 70 i 55791 Err codemadness.org 70 i 55792
    Err codemadness.org 70 i 55793
  • Q: How can I help support the project financially?
  • Err codemadness.org 70 i 55794
Err codemadness.org 70 i 55795 Err codemadness.org 70 i 55796
Err codemadness.org 70 i 55797

A: Several methods exist, from one time or recurring donations via Paypal to limited time swag t-shirt campaigns during the year. We are also looking into more alternative methods of support, so please visit the Sponsors page to see all the current methods of sponsorship.

Err codemadness.org 70 i 55798
Err codemadness.org 70 i 55799 Err codemadness.org 70 i 55800
    Err codemadness.org 70 i 55801
  • Q: Will there be any transparency of the financial donations and expenditures?
  • Err codemadness.org 70 i 55802
Err codemadness.org 70 i 55803 Err codemadness.org 70 i 55804
Err codemadness.org 70 i 55805

A: Yes, we will be totally open with how much money comes into the project and what it is spent on. Due to concerns of privacy, we will not identify individuals and their donation amounts unless they specifically request to be identified. We will release a monthly overview in/out ledger, so that community members can see where their money is going.

Err codemadness.org 70 i 55806
Err codemadness.org 70 i 55807 Err codemadness.org 70 i 55808
    Err codemadness.org 70 i 55809
  • Err codemadness.org 70 i 55810

    Relationship with TrueOS

    Err codemadness.org 70 i 55811
  • Err codemadness.org 70 i 55812
  • Err codemadness.org 70 i 55813

    Project Trident does have very close ties to the TrueOS project, since most of the original Project Trident developers were once part of the TrueOS project before it became a distribution platform. For users of the TrueOS desktop, we have some additional questions and answers below.

    Err codemadness.org 70 i 55814
  • Err codemadness.org 70 i 55815
  • Err codemadness.org 70 i 55816

    Q: Do we need to be at a certain TrueOS install level/release to upgrade?

    Err codemadness.org 70 i 55817
  • Err codemadness.org 70 i 55818
Err codemadness.org 70 i 55819 Err codemadness.org 70 i 55820
Err codemadness.org 70 i 55821

A: As long as you have a TrueOS system which has been updated to at least the 18.03 release you should be able to just perform a system update to be automatically upgraded to Project Trident.

Err codemadness.org 70 i 55822
Err codemadness.org 70 i 55823 Err codemadness.org 70 i 55824
    Err codemadness.org 70 i 55825
  • Q: Which members moved from TrueOS to Project Trident?
  • Err codemadness.org 70 i 55826
Err codemadness.org 70 i 55827 Err codemadness.org 70 i 55828
Err codemadness.org 70 i 55829

A: Project Trident is being led by prior members of the TrueOS desktop team. Ken and JT (development), Tim (documentation) and Rod (Community/Support). Since Project Trident is a community-first project, we look forward to working with new members of the team.

Err codemadness.org 70 i 55830
Err codemadness.org 70 i 55831 Err codemadness.org 70 i 55832


Err codemadness.org 70 i 55833 Err codemadness.org 70 i 55834

iXsystems

Err codemadness.org 70 i 55835 Err codemadness.org 70 i 55836

###BSDCan

Err codemadness.org 70 i 55837 Err codemadness.org 70 i 55838
    Err codemadness.org 70 i 55839
  • BSDCan finished Saturday last week
  • Err codemadness.org 70 i 55840
  • It started with the GoatBoF on Tuesday at the Royal Oak Pub, where people had a chance to meet and greet. Benedict could not attend due to an all-day FreeBSD Foundation meeting and and even FreeBSD Journal Editorial Board meeting.
  • Err codemadness.org 70 i 55841
  • The FreeBSD devsummit was held the next two days in parallel to the tutorials. Gordon Tetlow, who organized the devsummit, opened the devsummit. Deb Goodkin from the FreeBSD Foundation gave the first talk with a Foundation update, highlighting current and future efforts. Li-Wen Hsu is now employed by the Foundation to assist in QA work (Jenkins, CI/CD) and Gordon Tetlow has a part-time contract to help secteam as their secretary.
  • Err codemadness.org 70 i 55842
  • Next, the FreeBSD core team (among them Allan and Benedict) gave a talk about what has happened this last term. With a core election currently running, some of these items will carry over to the next core team, but there were also some finished ones like the FCP process and FreeBSD members initiative. People in the audience asked questions on various topics of interest.
  • Err codemadness.org 70 i 55843
  • After the coffee break, the release engineering team gave a talk about their efforts in terms of making releases happen in time and good quality.
  • Err codemadness.org 70 i 55844
  • Benedict had to give his Ansible tutorial in the afternoon, which had roughly 15 people attending. Most of them beginners, we could get some good discussions going and I also learned a few new tricks. The overall feedback was positive and one even asked what I’m going to teach next year.
  • Err codemadness.org 70 i 55845
  • The second day of the FreeBSD devsummit began with Gordon Tetlow giving an insight into the FreeBSD Security team (aka secteam). He gave a overview of secteam members and responsibilities, explaining the process based on a long past advisory. Developers were encouraged to help out secteam. NDAs and proper disclosure of vulnerabilities were also discussed, and the audience had some feedback and questions.
  • Err codemadness.org 70 i 55846
  • When the coffee break was over, the FreeBSD 12.0 planning session happened. A Google doc served as a collaborative way of gathering features and things left to do. People signed up for it or were volunteered. Some features won’t make it into 12.0 as they are not 100% ready for prime time and need a few more rounds of testing and bugfixing. Still, 12.0 will have some compelling features.
  • Err codemadness.org 70 i 55847
  • A 360° group picture was taken after lunch, and then people split up into the working groups for the afternoon or started hacking in the UofO Henderson residence.
  • Err codemadness.org 70 i 55848
  • Benedict and Allan both attended the OpenZFS working group, lead by Matt Ahrens. He presented the completed and outstanding work in FreeBSD, without spoiling too much of the ZFS presentations of various people that happened later at the conference.
  • Err codemadness.org 70 i 55849
  • Benedict joined the boot code session a bit late (hallway track is the reason) when most things seem to have already been discussed.
  • Err codemadness.org 70 i 55850
  • BSDCan 2018 — Ottawa (In Pictures)
  • Err codemadness.org 70 i 55851
  • iXsystems Photos from BSDCan 2018
  • Err codemadness.org 70 i 55852
Err codemadness.org 70 i 55853 Err codemadness.org 70 i 55854


Err codemadness.org 70 i 55855 Err codemadness.org 70 i 55856

##News Roundup
Err codemadness.org 70 i 55857 ###June HardenedBSD Foundation Update

Err codemadness.org 70 i 55858 Err codemadness.org 70 i 55859
Err codemadness.org 70 i 55860

We at HardenedBSD are working towards starting up a 501©(3) not-for-profit organization in the USA. Setting up this organization will allow future donations to be tax deductible. We’ve made progress and would like to share with you the current state of affairs.

Err codemadness.org 70 i 55861
Err codemadness.org 70 i 55862 Err codemadness.org 70 i 55863
Err codemadness.org 70 i 55864

We have identified, sent invitations out, and received acceptance letters from six people who will serve on the HardenedBSD Foundation Board of Directors. You can find their bios below. In the latter half of June 2018 or the beginning half of July 2018, we will meet for the first time as a board and formally begin the process of creating the documentation needed to submit to the local, state, and federal tax services.

Err codemadness.org 70 i 55865
Err codemadness.org 70 i 55866 Err codemadness.org 70 i 55867
Err codemadness.org 70 i 55868

Here’s a brief introduction to those who will serve on the board:

Err codemadness.org 70 i 55869
Err codemadness.org 70 i 55870 Err codemadness.org 70 i 55871
    Err codemadness.org 70 i 55872
  • Err codemadness.org 70 i 55873

    W. Dean Freeman (Advisor): Dean has ten years of professional experience with deploying and security Unix and networking systems, including assessing systems security for government certification and assessing the efficacy of security products. He was introduced to Unix via FreeBSD 2.2.8 on an ISP shell account as a teenager. Formerly, he was the Snort port maintainer for FreeBSD while working in the Sourcefire VRT, and has contributed entropy-related patches to the FreeBSD and HardenedBSD projects – a topic on which he presented at vBSDCon 2017.

    Err codemadness.org 70 i 55874
  • Err codemadness.org 70 i 55875
  • Err codemadness.org 70 i 55876

    Ben La Monica (Advisor): Ben is a Senior Technology Manager of Software Engineering at Morningstar, Inc and has been developing software for over 15 years in a variety of languages. He advocates open source software and enjoys tinkering with electronics and home automation.

    Err codemadness.org 70 i 55877
  • Err codemadness.org 70 i 55878
  • Err codemadness.org 70 i 55879

    George Saylor (Advisor): George is a Technical Directory at G2, Inc. Mr. Saylor has over 28 years of information systems and security experience in a broad range of disciplines. His core focus areas are automation and standards in the event correlation space as well as penetration and exploitation of computer systems. Mr Saylor was also a co-founder of the OpenSCAP project.

    Err codemadness.org 70 i 55880
  • Err codemadness.org 70 i 55881
  • Err codemadness.org 70 i 55882

    Virginia Suydan (Accountant and general administrator): Accountant and general administrator for the HardenedBSD Foundation. She has worked with Shawn Webb for tax and accounting purposes for over six years.

    Err codemadness.org 70 i 55883
  • Err codemadness.org 70 i 55884
  • Err codemadness.org 70 i 55885

    Shawn Webb (Director): Co-founder of HardenedBSD and all-around infosec wonk. He has worked and played in the infosec industry, doing both offensive and defensive research, for around fifteen years. He loves open source technologies and likes to frustrate the bad guys.

    Err codemadness.org 70 i 55886
  • Err codemadness.org 70 i 55887
  • Err codemadness.org 70 i 55888

    Ben Welch (Advisor): Ben is currently a Security Engineer at G2, Inc. He graduated from Pennsylvania College of Technology with a Bachelors in Information Assurance and Security. Ben likes long walks, beaches, candlelight dinners, and attending various conferences like BSides and ShmooCon.

    Err codemadness.org 70 i 55889
  • Err codemadness.org 70 i 55890
Err codemadness.org 70 i 55891 Err codemadness.org 70 i 55892


Err codemadness.org 70 i 55893 Err codemadness.org 70 i 55894

###Your own VPN with OpenIKED & OpenBSD

Err codemadness.org 70 i 55895 Err codemadness.org 70 i 55896
Err codemadness.org 70 i 55897

Remote connectivity to your home network is something I think a lot of people find desirable. Over the years, I’ve just established an SSH tunnel and use it as a SOCKS proxy, sending my traffic through that. It’s a nice solution for a “poor man’s VPN”, but it can be a bit clunky, and it’s not great having to expose SSH to the world, even if you make sure to lock everything down

Err codemadness.org 70 i 55898
Err codemadness.org 70 i 55899 Err codemadness.org 70 i 55900
Err codemadness.org 70 i 55901

I set out the other day to finally do it properly. I’d come across this great post by Gordon Turner: OpenBSD 6.2 VPN Endpoint for iOS and macOS

Err codemadness.org 70 i 55902
Err codemadness.org 70 i 55903 Err codemadness.org 70 i 55904
Err codemadness.org 70 i 55905

Whilst it was exactly what I was looking for, it outlined how to set up an L2TP VPN. Really, I wanted IKEv2 for performance and security reasons (I won’t elaborate on this here, if you’re curious about the differences, there’s a lot of content out on the web explaining this).

Err codemadness.org 70 i 55906
Err codemadness.org 70 i 55907 Err codemadness.org 70 i 55908
Err codemadness.org 70 i 55909

The client systems I’d be using have native support for IKEv2 (iOS, macOS, other BSD systems). But, I couldn’t find any tutorials in the same vein.

Err codemadness.org 70 i 55910
Err codemadness.org 70 i 55911 Err codemadness.org 70 i 55912
Err codemadness.org 70 i 55913

So, let’s get stuck in!

Err codemadness.org 70 i 55914
Err codemadness.org 70 i 55915 Err codemadness.org 70 i 55916
    Err codemadness.org 70 i 55917
  • A quick note ✍️
  • Err codemadness.org 70 i 55918
Err codemadness.org 70 i 55919 Err codemadness.org 70 i 55920
Err codemadness.org 70 i 55921

This guide will walk through the set up of an IKEv2 VPN using OpenIKED on OpenBSD. It will detail a “road warrior” configuration, and use a PSK (pre-shared-key) for authentication. I’m sure it can be easily adapted to work on any other platforms that OpenIKED is available on, but keep in mind my steps are specifically for OpenBSD.

Err codemadness.org 70 i 55922
Err codemadness.org 70 i 55923 Err codemadness.org 70 i 55924
    Err codemadness.org 70 i 55925
  • Server Configuration
  • Err codemadness.org 70 i 55926
Err codemadness.org 70 i 55927 Err codemadness.org 70 i 55928
Err codemadness.org 70 i 55929

As with all my home infrastructure, I crafted this set-up declaratively. So, I had the deployment of the VM setup in Terraform (deployed on my private Triton cluster), and wrote the configuration in Ansible, then tied them together using radekg/terraform-provisioner-ansible.

Err codemadness.org 70 i 55930
Err codemadness.org 70 i 55931 Err codemadness.org 70 i 55932
Err codemadness.org 70 i 55933

One of the reasons I love Ansible is that its syntax is very simplistic, yet expressive. As such, I feel it fits very well into explaining these steps with snippets of the playbook I wrote. I’ll link the full playbook a bit further down for those interested.

Err codemadness.org 70 i 55934
Err codemadness.org 70 i 55935 Err codemadness.org 70 i 55936
    Err codemadness.org 70 i 55937
  • See the full article for the information on:
  • Err codemadness.org 70 i 55938
  • sysctl parameters
  • Err codemadness.org 70 i 55939
  • The naughty list (optional)
  • Err codemadness.org 70 i 55940
  • Configure the VPN network interface
  • Err codemadness.org 70 i 55941
  • Configure the firewall
  • Err codemadness.org 70 i 55942
  • Configure the iked service
  • Err codemadness.org 70 i 55943
  • Gateway configuration
  • Err codemadness.org 70 i 55944
  • Client configuration
  • Err codemadness.org 70 i 55945
  • Troubleshooting
  • Err codemadness.org 70 i 55946
Err codemadness.org 70 i 55947 Err codemadness.org 70 i 55948


Err codemadness.org 70 i 55949 Err codemadness.org 70 i 55950

DigitalOcean

Err codemadness.org 70 i 55951 Err codemadness.org 70 i 55952

###FreeBSD on a System76 Galago Pro

Err codemadness.org 70 i 55953 Err codemadness.org 70 i 55954
Err codemadness.org 70 i 55955

Hey all, It’s been a while since I last posted but I thought I would hammer something out here. My most recent purchase was a System76 Galago Pro. I thought, afer playing with POP! OS a bit, is there any reason I couldn’t get BSD on this thing. Turns out the answer is no, no there isnt and it works pretty decently.

Err codemadness.org 70 i 55956
Err codemadness.org 70 i 55957 Err codemadness.org 70 i 55958
Err codemadness.org 70 i 55959

To get some accounting stuff out of the way I tested this all on FreeBSD Head and 11.1, and all of it is valid as of May 10, 2018. Head is a fast moving target so some of this is only bound to improve.

Err codemadness.org 70 i 55960
Err codemadness.org 70 i 55961 Err codemadness.org 70 i 55962
    Err codemadness.org 70 i 55963
  • Err codemadness.org 70 i 55964

    The hardware

    Err codemadness.org 70 i 55965
  • Err codemadness.org 70 i 55966
  • Err codemadness.org 70 i 55967

    Intel Core i5 Gen 8

    Err codemadness.org 70 i 55968
  • Err codemadness.org 70 i 55969
  • Err codemadness.org 70 i 55970

    UHD Graphics 620

    Err codemadness.org 70 i 55971
  • Err codemadness.org 70 i 55972
  • Err codemadness.org 70 i 55973

    16 GB DDR4 Ram

    Err codemadness.org 70 i 55974
  • Err codemadness.org 70 i 55975
  • Err codemadness.org 70 i 55976

    RTL8411B PCI Express Card Reader

    Err codemadness.org 70 i 55977
  • Err codemadness.org 70 i 55978
  • Err codemadness.org 70 i 55979

    RTL8111 Gigabit ethernet controller

    Err codemadness.org 70 i 55980
  • Err codemadness.org 70 i 55981
  • Err codemadness.org 70 i 55982

    Intel HD Audio

    Err codemadness.org 70 i 55983
  • Err codemadness.org 70 i 55984
  • Err codemadness.org 70 i 55985

    Samsung SSD 960 PRO 512GB NVMe

    Err codemadness.org 70 i 55986
  • Err codemadness.org 70 i 55987
  • Err codemadness.org 70 i 55988

    The caveats

    Err codemadness.org 70 i 55989
  • Err codemadness.org 70 i 55990
Err codemadness.org 70 i 55991 Err codemadness.org 70 i 55992
Err codemadness.org 70 i 55993

There are a few things that I cant seem to make work straight out of the box, and that is the SD Card reader, the backlight, and the audio is a bit finicky. Also the trackpad doesn’t respond to two finger scrolling. The wiki is mostly up to date, there are a few edits that need to be made still but there is a bug where I cant register an account yet so I haven’t made all the changes.

Err codemadness.org 70 i 55994
Err codemadness.org 70 i 55995 Err codemadness.org 70 i 55996
    Err codemadness.org 70 i 55997
  • Processor
  • Err codemadness.org 70 i 55998
Err codemadness.org 70 i 55999 Err codemadness.org 70 i 56000
Err codemadness.org 70 i 56001

It works like any other Intel processor. Pstates and throttling work.

Err codemadness.org 70 i 56002
Err codemadness.org 70 i 56003 Err codemadness.org 70 i 56004
    Err codemadness.org 70 i 56005
  • Graphics
  • Err codemadness.org 70 i 56006
Err codemadness.org 70 i 56007 Err codemadness.org 70 i 56008
Err codemadness.org 70 i 56009

The boot menu sets itself to what looks like 1024x768, but works as you expect in a tiny window. The text console does the full 3200x1800 resolution, but the text is ultra tiny. There isnt a font for the console that covers hidpi screens yet. As for X Windows it requres the drm-kmod-next package. Once installed follow the directions from the package and it works with almost no fuss. I have it running on X with full intel acceleration, but it is running at it’s full 3200x1800 resolution, to scale that down just do xrandr --output eDP-1 --scale 0.5x0.5 it will blow it up to roughly 200%. Due to limitations with X windows and hidpi it is harder to get more granular.

Err codemadness.org 70 i 56010
Err codemadness.org 70 i 56011 Err codemadness.org 70 i 56012
    Err codemadness.org 70 i 56013
  • Intel Wireless 8265
  • Err codemadness.org 70 i 56014
Err codemadness.org 70 i 56015 Err codemadness.org 70 i 56016
Err codemadness.org 70 i 56017

The wireless uses the iwm module, as of right now it does not seem to automagically load right now. Adding iwm_load=“YES” will cause the module to load on boot and kldload iwm

Err codemadness.org 70 i 56018
Err codemadness.org 70 i 56019 Err codemadness.org 70 i 56020
    Err codemadness.org 70 i 56021
  • Battery
  • Err codemadness.org 70 i 56022
Err codemadness.org 70 i 56023 Err codemadness.org 70 i 56024
Err codemadness.org 70 i 56025

I seem to be getting about 5 hours out of the battery, but everything reports out of the box as expected. I could get more by throttling the CPU down speed wise.

Err codemadness.org 70 i 56026
Err codemadness.org 70 i 56027 Err codemadness.org 70 i 56028
    Err codemadness.org 70 i 56029
  • Overall impression
  • Err codemadness.org 70 i 56030
Err codemadness.org 70 i 56031 Err codemadness.org 70 i 56032
Err codemadness.org 70 i 56033

It is a pretty decent experience. While not as polished as a Thinkpad there is a lot of potential with a bit of work and polishing. The laptop itself is not bad, the keyboard is responsive. The build quality is pretty solid. My only real complaint is the trackpad is stiff to click and sort of tiny. They seem to be a bit indifferent to non linux OSes running on the gear but that isnt anything new. I wont have any problems using it and is enough that when I work through this laptop, but I’m not sure at this stage if my next machine will be a System76 laptop, but they have impressed me enough to put them in the running when I go to look for my next portable machine but it hasn’t yet replaced the hole left in my heart by lenovo messing with the thinkpad.

Err codemadness.org 70 i 56034
Err codemadness.org 70 i 56035 Err codemadness.org 70 i 56036


Err codemadness.org 70 i 56037 Err codemadness.org 70 i 56038

###Hardware accelerated AES/HMAC-SHA on octeons

Err codemadness.org 70 i 56039 Err codemadness.org 70 i 56040
In this commit, visa@ submitted code (disabled for now) to use built-in acceleration on octeon CPUs, much like AESNI for x86s.	Err	codemadness.org	70
i 56041 	Err	codemadness.org	70
i 56042 I decided to test tcpbench(1) and IPsec, before and after updating and enabling the octcrypto(4) driver.	Err	codemadness.org	70
i 56043 	Err	codemadness.org	70
i 56044 I didn't capture detailed perf stats from before the update, I had heard someone say that Edgerouter Lite boxes would only do some 6MBit/s over ipsec, so I set up a really simple ipsec.conf with ike esp from A to B leading to a policy of	Err	codemadness.org	70
i 56045 	Err	codemadness.org	70
i 56046 esp tunnel from A to B spi 0xdeadbeef auth hmac-sha2-256 enc aes	Err	codemadness.org	70
i 56047 going from one ERL to another (I collect octeons, so I have a bunch to test with) and let tcpbench run for a while on it. My numbers hovered around 7Mbit/s, which coincided with what I've heard, and also that most of the CPU gets used while doing it.	Err	codemadness.org	70
i 56048 Then I edited /sys/arch/octeon/conf/GENERIC, removed the # from octcrypto0 at mainbus0 and recompiled. Booted into the new kernel and got a octcrypto0 line in dmesg, and it was time to rock the ipsec tunnel again. The crypto algorithm and HMAC used by default on ipsec coincides nicely with the list of accelerated functions provided by the driver.	Err	codemadness.org	70
i 56049 	Err	codemadness.org	70
i 56050 Before we get to tunnel traffic numbers, just one quick look at what systat pigs says while the ipsec is running at full steam:	Err	codemadness.org	70
i 56051 	Err	codemadness.org	70
i 56052      PID USER        NAME                 CPU     20\    40\    60\    80\  100\	Err	codemadness.org	70
i 56053    58917 root        crypto             52.25 #################	Err	codemadness.org	70
i 56054    42636 root        softnet            42.48 ##############	Err	codemadness.org	70
i 56055                      (idle)             29.74 #########	Err	codemadness.org	70
i 56056     1059 root        tcpbench           24.22 #######	Err	codemadness.org	70
i 56057    67777 root        crynlk             19.58 ######	Err	codemadness.org	70
i 56058 So this indicates that the load from doing ipsec and generating the traffic is somewhat nicely evened out over the two cores in the Edgerouter, and there's even some CPU left unused, which means I can actually ssh into it and have it usable. I have had it running for almost 2 days now, moving some 2.1TB over the tunnel.	Err	codemadness.org	70
i 56059 Now for the new and improved performance numbers:	Err	codemadness.org	70
i 56060 	Err	codemadness.org	70
i 56061    204452123        4740752       37.402  100.00% 	Err	codemadness.org	70
i 56062 Conn:   1 Mbps:       37.402 Peak Mbps:       58.870 Avg Mbps:       37.402	Err	codemadness.org	70
i 56063    204453149        4692968       36.628  100.00% 	Err	codemadness.org	70
i 56064 Conn:   1 Mbps:       36.628 Peak Mbps:       58.870 Avg Mbps:       36.628	Err	codemadness.org	70
i 56065    204454167        5405552       42.480  100.00% 	Err	codemadness.org	70
i 56066 Conn:   1 Mbps:       42.480 Peak Mbps:       58.870 Avg Mbps:       42.480	Err	codemadness.org	70
i 56067    204455188        5202496       40.804  100.00% 	Err	codemadness.org	70
i 56068 Conn:   1 Mbps:       40.804 Peak Mbps:       58.870 Avg Mbps:       40.804	Err	codemadness.org	70
i 56069    204456194        5062208       40.256  100.00% 	Err	codemadness.org	70
i 56070 Conn:   1 Mbps:       40.256 Peak Mbps:       58.870 Avg Mbps:       40.256	Err	codemadness.org	70
i 56071 	Err	codemadness.org	70
i 56072 The tcpbench numbers fluctuate up and down a bit, but the output is nice enough to actually keep tabs on the peak values. Peaking to 58.8MBit/s! Of course, as you can see, the average is lower but nice anyhow.	Err	codemadness.org	70
i 56073 	Err	codemadness.org	70
i 56074 A manyfold increase in performance, which is good enough in itself, but also moves the throughput from a speed that would make a poor but cheap gateway to something actually useful and decent for many home network speeds. Biggest problem after this gets enabled will be that my options to buy cheap used ERLs diminish.	Err	codemadness.org	70
i 56075 
Err codemadness.org 70 i 56076 Err codemadness.org 70 i 56077


Err codemadness.org 70 i 56078 Err codemadness.org 70 i 56079

##Beastie Bits

Err codemadness.org 70 i 56080 Err codemadness.org 70 i 56081 Err codemadness.org 70 i 56089 Err codemadness.org 70 i 56090


Err codemadness.org 70 i 56091 Err codemadness.org 70 i 56092

Tarsnap

Err codemadness.org 70 i 56093 Err codemadness.org 70 i 56094

##Feedback/Questions

Err codemadness.org 70 i 56095 Err codemadness.org 70 i 56096 Err codemadness.org 70 i 56102 Err codemadness.org 70 i 56103


Err codemadness.org 70 i 56104 Err codemadness.org 70 i 56105
    Err codemadness.org 70 i 56106
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 56107
]]> Err codemadness.org 70 i 56108
Err codemadness.org 70 i 56109 https://fireside.fm/player/v2/FYhhasNR+1zQ_thgg Err codemadness.org 70 i 56110 Err codemadness.org 70 i 56111 ]]> Err codemadness.org 70 i 56112 Err codemadness.org 70 i 56113
Err codemadness.org 70 i 56114 Err codemadness.org 70 i 56115 Episode 249: Router On A Stick | BSD Now 249 Err codemadness.org 70 i 56116 https://www.bsdnow.tv/249 Err codemadness.org 70 i 56117 http://feed.jupiter.zone/bsdnow#entry-2072 Err codemadness.org 70 i 56118 Wed, 06 Jun 2018 11:00:00 -0700 Err codemadness.org 70 i 56119 Allan Jude Err codemadness.org 70 i 56120 Err codemadness.org 70 i 56121 full Err codemadness.org 70 i 56122 Allan Jude Err codemadness.org 70 i 56123 OpenZFS and DTrace updates in NetBSD, NetBSD network security stack audit, Performance of MySQL on ZFS, OpenSMTP results from p2k18, legacy Windows backup to FreeNAS, ZFS block size importance, and NetBSD as router on a stick. Err codemadness.org 70 i 56124 1:25:17 Err codemadness.org 70 i 56125 no Err codemadness.org 70 i 56126 Err codemadness.org 70 i 56127 OpenZFS and DTrace updates in NetBSD, NetBSD network security stack audit, Performance of MySQL on ZFS, OpenSMTP results from p2k18, legacy Windows backup to FreeNAS, ZFS block size importance, and NetBSD as router on a stick. Err codemadness.org 70 i 56128 <hr> Err codemadness.org 70 i 56129 <p>##Headlines<br> Err codemadness.org 70 i 56130 <a href="https://mail-index.netbsd.org/source-changes/2018/05/28/msg095541.html">ZFS and DTrace update lands in NetBSD</a></p> Err codemadness.org 70 i 56131 <blockquote> Err codemadness.org 70 i 56132 <p>merge a new version of the CDDL dtrace and ZFS code. This changes the upstream vendor from OpenSolaris to FreeBSD, and this version is based on FreeBSD svn r315983.</p> Err codemadness.org 70 i 56133 </blockquote> Err codemadness.org 70 i 56134 <ul> Err codemadness.org 70 i 56135 <li>r315983 is from March 2017 (14 months ago), so there is still more work to do</li> Err codemadness.org 70 i 56136 </ul> Err codemadness.org 70 i 56137 <blockquote> Err codemadness.org 70 i 56138 <p>in addition to the 10 years of improvements from upstream, this version also has these NetBSD-specific enhancements:</p> Err codemadness.org 70 i 56139 <ul> Err codemadness.org 70 i 56140 <li>dtrace FBT probes can now be placed in kernel modules.</li> Err codemadness.org 70 i 56141 <li>ZFS now supports mmap().</li> Err codemadness.org 70 i 56142 </ul> Err codemadness.org 70 i 56143 </blockquote> Err codemadness.org 70 i 56144 <ul> Err codemadness.org 70 i 56145 <li>This brings NetBSD 10 years forward, and they should be able to catch the rest of the way up fairly quickly</li> Err codemadness.org 70 i 56146 </ul> Err codemadness.org 70 i 56147 <hr> Err codemadness.org 70 i 56148 <p>###<a href="https://blog.netbsd.org/tnf/entry/network_security_audit">NetBSD network stack security audit</a></p> Err codemadness.org 70 i 56149 <ul> Err codemadness.org 70 i 56150 <li>Maxime Villard has been working on an audit of the NetBSD network stack, a project sponsored by The NetBSD Foundation, which has served all users of BSD-derived operating systems.</li> Err codemadness.org 70 i 56151 </ul> Err codemadness.org 70 i 56152 <blockquote> Err codemadness.org 70 i 56153 <p>Over the last five months, hundreds of patches were committed to the source tree as a result of this work. Dozens of bugs were fixed, among which a good number of actual, remotely-triggerable vulnerabilities.</p> Err codemadness.org 70 i 56154 </blockquote> Err codemadness.org 70 i 56155 <blockquote> Err codemadness.org 70 i 56156 <p>Changes were made to strengthen the networking subsystems and improve code quality: reinforce the mbuf API, add many KASSERTs to enforce assumptions, simplify packet handling, and verify compliance with RFCs. This was done in several layers of the NetBSD kernel, from device drivers to L4 handlers.<br> Err codemadness.org 70 i 56157 In the course of investigating several bugs discovered in NetBSD, I happened to look at the network stacks of other operating systems, to see whether they had already fixed the issues, and if so how. Needless to say, I found bugs there too.</p> Err codemadness.org 70 i 56158 </blockquote> Err codemadness.org 70 i 56159 <ul> Err codemadness.org 70 i 56160 <li>A lot of code is shared between the BSDs, so it is especially helpful when one finds a bug, to check the other BSDs and share the fix.</li> Err codemadness.org 70 i 56161 </ul> Err codemadness.org 70 i 56162 <blockquote> Err codemadness.org 70 i 56163 <p>The IPv6 Buffer Overflow: The overflow allowed an attacker to write one byte of packet-controlled data into ‘packetstorage+off’, where ‘off’ could be approximately controlled too. This allowed at least a pretty bad remote DoS/Crash<br> Err codemadness.org 70 i 56164 The IPsec Infinite Loop: When receiving an IPv6-AH packet, the IPsec entry point was not correctly computing the length of the IPv6 suboptions, and this, before authentication. As a result, a specially-crafted IPv6 packet could trigger an infinite loop in the kernel (making it unresponsive). In addition this flaw allowed a limited buffer overflow - where the data being written was however not controllable by the attacker.<br> Err codemadness.org 70 i 56165 The IPPROTO Typo: While looking at the IPv6 Multicast code, I stumbled across a pretty simple yet pretty bad mistake: at one point the Pim6 entry point would return IPPROTONONE instead of IPPROTODONE. Returning IPPROTONONE was entirely wrong: it caused the kernel to keep iterating on the IPv6 packet chain, while the packet storage was already freed.<br> Err codemadness.org 70 i 56166 The PF Signedness Bug: A bug was found in NetBSD’s implementation of the PF firewall, that did not affect the other BSDs. In the initial PF code a particular macro was used as an alias to a number. This macro formed a signed integer. NetBSD replaced the macro with a sizeof(), which returns an unsigned result.<br> Err codemadness.org 70 i 56167 The NPF Integer Overflow: An integer overflow could be triggered in NPF, when parsing an IPv6 packet with large options. This could cause NPF to look for the L4 payload at the wrong offset within the packet, and it allowed an attacker to bypass any L4 filtering rule on IPv6.<br> Err codemadness.org 70 i 56168 The IPsec Fragment Attack: I noticed some time ago that when reassembling fragments (in either IPv4 or IPv6), the kernel was not removing the MPKTHDR flag on the secondary mbufs in mbuf chains. This flag is supposed to indicate that a given mbuf is the head of the chain it forms; having the flag on secondary mbufs was suspicious.<br> Err codemadness.org 70 i 56169 What Now: Not all protocols and layers of the network stack were verified, because of time constraints, and also because of unexpected events: the recent x86 CPU bugs, which I was the only one able to fix promptly. A todo list will be left when the project end date is reached, for someone else to pick up. Me perhaps, later this year? We’ll see.<br> Err codemadness.org 70 i 56170 This security audit of NetBSD’s network stack is sponsored by The NetBSD Foundation, and serves all users of BSD-derived operating systems. The NetBSD Foundation is a non-profit organization, and welcomes any donations that help continue funding projects of this kind.</p> Err codemadness.org 70 i 56171 </blockquote> Err codemadness.org 70 i 56172 <hr> Err codemadness.org 70 i 56173 <p><strong>DigitalOcean</strong></p> Err codemadness.org 70 i 56174 <p>###<a href="https://www.percona.com/blog/2018/05/15/about-zfs-performance/">MySQL on ZFS Performance</a></p> Err codemadness.org 70 i 56175 <blockquote> Err codemadness.org 70 i 56176 <p>I used sysbench to create a table of 10M rows and then, using export/import tablespace, I copied it 329 times. I ended up with 330 tables for a total size of about 850GB. The dataset generated by sysbench is not very compressible, so I used lz4 compression in ZFS. For the other ZFS settings, I used what can be found in my earlier ZFS posts but with the ARC size limited to 1GB. I then used that plain configuration for the first benchmarks. Here are the results with the sysbench point-select benchmark, a uniform distribution and eight threads. The InnoDB buffer pool was set to 2.5GB.<br> Err codemadness.org 70 i 56177 In both cases, the load is IO bound. The disk is doing exactly the allowed 3000 IOPS. The above graph appears to be a clear demonstration that XFS is much faster than ZFS, right? But is that really the case? The way the dataset has been created is extremely favorable to XFS since there is absolutely no file fragmentation. Once you have all the files opened, a read IOP is just a single fseek call to an offset and ZFS doesn’t need to access any intermediate inode. The above result is about as fair as saying MyISAM is faster than InnoDB based only on table scan performance results of unfragmented tables and default configuration. ZFS is much less affected by the file level fragmentation, especially for point access type.</p> Err codemadness.org 70 i 56178 </blockquote> Err codemadness.org 70 i 56179 <blockquote> Err codemadness.org 70 i 56180 <p>ZFS stores the files in B-trees in a very similar fashion as InnoDB stores data. To access a piece of data in a B-tree, you need to access the top level page (often called root node) and then one block per level down to a leaf-node containing the data. With no cache, to read something from a three levels B-tree thus requires 3 IOPS.</p> Err codemadness.org 70 i 56181 </blockquote> Err codemadness.org 70 i 56182 <blockquote> Err codemadness.org 70 i 56183 <p>The extra IOPS performed by ZFS are needed to access those internal blocks in the B-trees of the files. These internal blocks are labeled as metadata. Essentially, in the above benchmark, the ARC is too small to contain all the internal blocks of the table files’ B-trees. If we continue the comparison with InnoDB, it would be like running with a buffer pool too small to contain the non-leaf pages. The test dataset I used has about 600MB of non-leaf pages, about 0.1% of the total size, which was well cached by the 3GB buffer pool. So only one InnoDB page, a leaf page, needed to be read per point-select statement.</p> Err codemadness.org 70 i 56184 </blockquote> Err codemadness.org 70 i 56185 <blockquote> Err codemadness.org 70 i 56186 <p>To correctly set the ARC size to cache the metadata, you have two choices. First, you can guess values for the ARC size and experiment. Second, you can try to evaluate it by looking at the ZFS internal data. Let’s review these two approaches.</p> Err codemadness.org 70 i 56187 </blockquote> Err codemadness.org 70 i 56188 <blockquote> Err codemadness.org 70 i 56189 <p>You’ll read/hear often the ratio 1GB of ARC for 1TB of data, which is about the same 0.1% ratio as for InnoDB. I wrote about that ratio a few times, having nothing better to propose. Actually, I found it depends a lot on the recordsize used. The 0.1% ratio implies a ZFS recordsize of 128KB. A ZFS filesystem with a recordsize of 128KB will use much less metadata than another one using a recordsize of 16KB because it has 8x fewer leaf pages. Fewer leaf pages require less B-tree internal nodes, hence less metadata. A filesystem with a recordsize of 128KB is excellent for sequential access as it maximizes compression and reduces the IOPS but it is poor for small random access operations like the ones MySQL/InnoDB does.</p> Err codemadness.org 70 i 56190 </blockquote> Err codemadness.org 70 i 56191 <ul> Err codemadness.org 70 i 56192 <li>In order to improve ZFS performance, I had 3 options:</li> Err codemadness.org 70 i 56193 <li>Increase the ARC size to 7GB</li> Err codemadness.org 70 i 56194 <li>Use a larger Innodb page size like 64KB</li> Err codemadness.org 70 i 56195 <li>Add a L2ARC</li> Err codemadness.org 70 i 56196 </ul> Err codemadness.org 70 i 56197 <blockquote> Err codemadness.org 70 i 56198 <p>I was reluctant to grow the ARC to 7GB, which was nearly half the overall system memory. At best, the ZFS performance would only match XFS. A larger InnoDB page size would increase the CPU load for decompression on an instance with only two vCPUs; not great either. The last option, the L2ARC, was the most promising.</p> Err codemadness.org 70 i 56199 </blockquote> Err codemadness.org 70 i 56200 <blockquote> Err codemadness.org 70 i 56201 <p>ZFS is much more complex than XFS and EXT4 but, that also means it has more tunables/options. I used a simplistic setup and an unfair benchmark which initially led to poor ZFS results. With the same benchmark, very favorable to XFS, I added a ZFS L2ARC and that completely reversed the situation, more than tripling the ZFS results, now 66% above XFS.</p> Err codemadness.org 70 i 56202 </blockquote> Err codemadness.org 70 i 56203 <ul> Err codemadness.org 70 i 56204 <li>Conclusion</li> Err codemadness.org 70 i 56205 </ul> Err codemadness.org 70 i 56206 <blockquote> Err codemadness.org 70 i 56207 <p>We have seen in this post why the general perception is that ZFS under-performs compared to XFS or EXT4. The presence of B-trees for the files has a big impact on the amount of metadata ZFS needs to handle, especially when the recordsize is small. The metadata consists mostly of the non-leaf pages (or internal nodes) of the B-trees. When properly cached, the performance of ZFS is excellent. ZFS allows you to optimize the use of EBS volumes, both in term of IOPS and size when the instance has fast ephemeral storage devices. Using the ephemeral device of an i3.large instance for the ZFS L2ARC, ZFS outperformed XFS by 66%.</p> Err codemadness.org 70 i 56208 </blockquote> Err codemadness.org 70 i 56209 <hr> Err codemadness.org 70 i 56210 <p>###<a href="https://poolp.org/posts/2018-04-30/opensmtpd-new-config/">OpenSMTPD new config</a></p> Err codemadness.org 70 i 56211 <pre><code>TL;DR: Err codemadness.org 70 i 56212 OpenBSD #p2k18 hackathon took place at Epitech in Nantes. Err codemadness.org 70 i 56213 I was organizing the hackathon but managed to make progress on OpenSMTPD. Err codemadness.org 70 i 56214 As mentioned at EuroBSDCon the one-line per rule config format was a design error. Err codemadness.org 70 i 56215 A new configuration grammar is almost ready and the underlying structures are simplified. Err codemadness.org 70 i 56216 Refactor removes ~750 lines of code and solves _many issues that were side-effects of the design error. Err codemadness.org 70 i 56217 New features are going to be unlocked thanks to this. Err codemadness.org 70 i 56218 </code></pre> Err codemadness.org 70 i 56219 <ul> Err codemadness.org 70 i 56220 <li>Anatomy of a design error</li> Err codemadness.org 70 i 56221 </ul> Err codemadness.org 70 i 56222 <blockquote> Err codemadness.org 70 i 56223 <p>OpenSMTPD started ten years ago out of dissatisfaction with other solutions, mainly because I considered them way too complex for me not to get things wrong from time to time.<br> Err codemadness.org 70 i 56224 The initial configuration format was very different, I was inspired by pyr@’s hoststated, which eventually became relayd, and designed my configuration format with blocks enclosed by brackets.<br> Err codemadness.org 70 i 56225 When I first showed OpenSMTPD to pyr@, he convinced me that PF-like one-line rules would be awesome, and it was awesome indeed.<br> Err codemadness.org 70 i 56226 It helped us maintain our goal of simple configuration files, it helped fight feature creeping, it helped us gain popularity and become a relevant MTA, it helped us get where we are now 10 years later.<br> Err codemadness.org 70 i 56227 That being said, I believe this was a design error. A design error that could not have been predicted until we hit the wall to understand WHY this was an error. One-line rules are semantically wrong, they are SMTP wrong, they are wrong.<br> Err codemadness.org 70 i 56228 One-line rules are making the entire daemon more complex, preventing some features from being implemented, making others more complex than they should be, they no longer serve our goals.<br> Err codemadness.org 70 i 56229 To get to the point: we should move to two-line rules :-)</p> Err codemadness.org 70 i 56230 </blockquote> Err codemadness.org 70 i 56231 <p>Anatomy of a design error<br> Err codemadness.org 70 i 56232 OpenSMTPD started ten years ago out of dissatisfaction with other solutions, mainly because I considered them way too complex for me not to get things wrong from time to time.</p> Err codemadness.org 70 i 56233 <p>The initial configuration format was very different, I was inspired by pyr@’s hoststated, which eventually became relayd, and designed my configuration format with blocks enclosed by brackets.</p> Err codemadness.org 70 i 56234 <p>When I first showed OpenSMTPD to pyr@, he convinced me that PF-like one-line rules would be awesome, and it was awesome indeed.</p> Err codemadness.org 70 i 56235 <p>It helped us maintain our goal of simple configuration files, it helped fight feature creeping, it helped us gain popularity and become a relevant MTA, it helped us get where we are now 10 years later.</p> Err codemadness.org 70 i 56236 <p>That being said, I believe this was a design error. A design error that could not have been predicted until we hit the wall to understand WHY this was an error. One-line rules are semantically wrong, they are SMTP wrong, they are wrong.</p> Err codemadness.org 70 i 56237 <p>One-line rules are making the entire daemon more complex, preventing some features from being implemented, making others more complex than they should be, they no longer serve our goals.</p> Err codemadness.org 70 i 56238 <p>To get to the point: we should move to two-line rules :-)</p> Err codemadness.org 70 i 56239 <ul> Err codemadness.org 70 i 56240 <li>The problem with one-line rules</li> Err codemadness.org 70 i 56241 </ul> Err codemadness.org 70 i 56242 <blockquote> Err codemadness.org 70 i 56243 <p>OpenSMTPD decides to accept or reject messages based on one-line rules such as:</p> Err codemadness.org 70 i 56244 </blockquote> Err codemadness.org 70 i 56245 <p><code>accept from any for domain poolp.org deliver to mbox</code></p> Err codemadness.org 70 i 56246 <blockquote> Err codemadness.org 70 i 56247 <p>Which can essentially be split into three units:</p> Err codemadness.org 70 i 56248 </blockquote> Err codemadness.org 70 i 56249 <ul> Err codemadness.org 70 i 56250 <li>the decision: accept/reject</li> Err codemadness.org 70 i 56251 <li>the matching: from any for domain <a href="http://poolp.org">poolp.org</a></li> Err codemadness.org 70 i 56252 <li>the (default) action: deliver to mbox</li> Err codemadness.org 70 i 56253 </ul> Err codemadness.org 70 i 56254 <blockquote> Err codemadness.org 70 i 56255 <p>To ensure that we meet the requirements of the transactions, the matching must be performed during the SMTP transaction before we take a decision for the recipient.<br> Err codemadness.org 70 i 56256 Given that the rule is atomic, that it doesn’t have an identifier and that the action is part of it, the two only ways to make sure we can remember the action to take later on at delivery time is to either:</p> Err codemadness.org 70 i 56257 </blockquote> Err codemadness.org 70 i 56258 <ul> Err codemadness.org 70 i 56259 <li>save the action in the envelope, which is what we do today</li> Err codemadness.org 70 i 56260 <li>evaluate the envelope again at delivery</li> Err codemadness.org 70 i 56261 <li>And this this where it gets tricky… both solutions are NOT ok.</li> Err codemadness.org 70 i 56262 </ul> Err codemadness.org 70 i 56263 <blockquote> Err codemadness.org 70 i 56264 <p>The first solution, which we’ve been using for a decade, was to save the action within the envelope and kind of carve it in stone. This works fine… however it comes with the downsides that errors fixed in configuration files can’t be caught up by envelopes, that delivery action must be validated way ahead of time during the SMTP transaction which is much trickier, that the parsing of delivery methods takes place as the _smtpd user rather than the recipient user, and that envelope structures that are passed all over OpenSMTPD carry delivery-time informations, and more, and more, and more. The code becomes more complex in general, less safe in some particular places, and some areas are nightmarish to deal with because they have to deal with completely unrelated code that can’t be dealt with later in the code path.</p> Err codemadness.org 70 i 56265 </blockquote> Err codemadness.org 70 i 56266 <blockquote> Err codemadness.org 70 i 56267 <p>The second solution can’t be done. An envelope may be the result of nested rules, for example an external client, hitting an alias, hitting a user with a .forward file resolving to a user. An envelope on disk may no longer match any rule or it may match a completely different rule If we could ensure that it matched the same rule, evaluating the ruleset may spawn new envelopes which would violate the transaction. Trying to imagine how we could work around this leads to more and more and more RFC violations, incoherent states, duplicate mails, etc…</p> Err codemadness.org 70 i 56268 </blockquote> Err codemadness.org 70 i 56269 <blockquote> Err codemadness.org 70 i 56270 <p>There is simply no way to deal with this with atomic rules, the matching and the action must be two separate units that are evaluated at two different times, failure to do so will necessarily imply that you’re either using our first solution and all its downsides, or that you are currently in a world of pain trying to figure out why everything is burning around you. The minute the action is written to an on-disk envelope, you have failed.</p> Err codemadness.org 70 i 56271 </blockquote> Err codemadness.org 70 i 56272 <blockquote> Err codemadness.org 70 i 56273 <p>A proper ruleset must define a set of matching patterns resolving to an action identifier that is carved in stone, AND a set of named action set that is resolved dynamically at delivery time.</p> Err codemadness.org 70 i 56274 </blockquote> Err codemadness.org 70 i 56275 <ul> Err codemadness.org 70 i 56276 <li>Follow the link above to see the rest of the article</li> Err codemadness.org 70 i 56277 </ul> Err codemadness.org 70 i 56278 <hr> Err codemadness.org 70 i 56279 <p><strong>Break</strong></p> Err codemadness.org 70 i 56280 <p>##News Roundup<br> Err codemadness.org 70 i 56281 <a href="http://fortysomethinggeek.blogspot.com/2012/09/legacy-windows-rsync-backup-to-freenas.html">Backing up a legacy Windows machine to a FreeNAS with rsync</a></p> Err codemadness.org 70 i 56282 <blockquote> Err codemadness.org 70 i 56283 <p>I have some old Windows servers (10 years and counting) and I have been using rsync to back them up to my FreeNAS box. It has been working great for me.</p> Err codemadness.org 70 i 56284 </blockquote> Err codemadness.org 70 i 56285 <blockquote> Err codemadness.org 70 i 56286 <p>First of all, I do have my Windows servers backup in virtualized format. However, those are only one-time snapshops that I run once in a while. These are classic ASP IIS web servers that I can easily put up on a new VM. However, many of these legacy servers generate gigabytes of data a day in their repositories. Running VM conversion daily is not ideal.</p> Err codemadness.org 70 i 56287 </blockquote> Err codemadness.org 70 i 56288 <blockquote> Err codemadness.org 70 i 56289 <p>My solution was to use some sort of rsync solution just for the data repos. I’ve tried some applications that didn’t work too well with Samba shares and these old servers have slow I/O. Copying files to external sata or usb drive was not ideal. We’ve moved on from Windows to Linux and do not have any Windows file servers of capacity to provide network backups. Hence, I decided to use Delta Copy with FreeNAS. So here is a little write up on how to set it up. I have 4 Windows 2000 servers backing up daily with this method.</p> Err codemadness.org 70 i 56290 </blockquote> Err codemadness.org 70 i 56291 <blockquote> Err codemadness.org 70 i 56292 <p>First, download Delta Copy and install it. It is open-source and pretty much free. It is basically a wrapper for cygwin’s rsync. When you install it, it will ask you to install the Server services which allows you to run it as a Rsync server on Windows. You don’t need to do this. Instead, you will be just using the Delta Copy Client application. But before we do that, we will need to configure our Rsync service for our Windows Clients on FreeNAS.</p> Err codemadness.org 70 i 56293 </blockquote> Err codemadness.org 70 i 56294 <ul> Err codemadness.org 70 i 56295 <li>In FreeNAS, go under Services , Select Rsync &gt; Rsync Modules &gt; Add Rsync Module.</li> Err codemadness.org 70 i 56296 <li>Then fill out the form; giving the module a name and set the path. In my example, I simply called it WIN and linked it to a user called backupuser.</li> Err codemadness.org 70 i 56297 <li>This process is much easier than trying to configure the daemon rsyncd.conf file by hand.</li> Err codemadness.org 70 i 56298 <li>Now, on the Windows Client, start the DeltaCopy Client. You will create a new Profile.</li> Err codemadness.org 70 i 56299 <li>You will need to enter the IP of the Rsync server (FreeNAS) and specify the module name which will be called “Virtual Directory Name.” When you pull the select menu, the list of Rsync Modules you created earlier in FreeNAS will populate.</li> Err codemadness.org 70 i 56300 <li>You can set authentication. On the server, you can restrict by IP and do other things to lock down your rsync.</li> Err codemadness.org 70 i 56301 <li>Next, you will add folders (and/or files) you want to synchronize.</li> Err codemadness.org 70 i 56302 <li>Once the paths are set up, you can run a sync by right clicking the profile name.</li> Err codemadness.org 70 i 56303 <li>Here, I made a test sync to a home folder of a virtualized windows box. As you can see, I mounted the rsync volume on my mac to see the progress. The rsync worked beautifully. DeltaCopy did what it was told.</li> Err codemadness.org 70 i 56304 <li>Once you get everything working. The next thing to do is set schedules. If you done tasks schedules in Windows before, it is pretty straightforward. DeltaCopy has a link in the application to directly create a new task for you. I set my backups to run nightly and it has been working great.</li> Err codemadness.org 70 i 56305 </ul> Err codemadness.org 70 i 56306 <blockquote> Err codemadness.org 70 i 56307 <p>There you have it. Windows rsync to FreeNAS using DeltaCopy.<br> Err codemadness.org 70 i 56308 The nice thing about FreeNAS is you don’t have to modify /etc/rsyncd.conf files. Everything can be done in the web admin.</p> Err codemadness.org 70 i 56309 </blockquote> Err codemadness.org 70 i 56310 <hr> Err codemadness.org 70 i 56311 <p><strong>iXsystems</strong></p> Err codemadness.org 70 i 56312 <p>###<a href="https://r3xnation.wordpress.com/2018/04/10/how-to-write-atf-tests-for-netbsd/amp/">How to write ATF tests for NetBSD</a></p> Err codemadness.org 70 i 56313 <blockquote> Err codemadness.org 70 i 56314 <p>I have recently started contributing to the amazing NetBSD foundation. I was thinking of trying out a new OS for a long time. Switching to the NetBSD OS has been a fun change.</p> Err codemadness.org 70 i 56315 </blockquote> Err codemadness.org 70 i 56316 <blockquote> Err codemadness.org 70 i 56317 <p>My first contribution to the NetBSD foundation was adding regression tests for the Address Sanitizer (ASan) in the Automated Testing Framework(ATF) which NetBSD has. I managed to complete it with the help of my really amazing mentor Kamil. This post is gonna be about the ATF framework that NetBSD has and how to you can add multiple tests with ease.</p> Err codemadness.org 70 i 56318 </blockquote> Err codemadness.org 70 i 56319 <ul> Err codemadness.org 70 i 56320 <li>Intro</li> Err codemadness.org 70 i 56321 </ul> Err codemadness.org 70 i 56322 <blockquote> Err codemadness.org 70 i 56323 <p>In ATF tests we will basically be talking about test programs which are a suite of test cases for a specific application or program.</p> Err codemadness.org 70 i 56324 </blockquote> Err codemadness.org 70 i 56325 <ul> Err codemadness.org 70 i 56326 <li>The ATF suite of Commands</li> Err codemadness.org 70 i 56327 </ul> Err codemadness.org 70 i 56328 <blockquote> Err codemadness.org 70 i 56329 <p>There are a variety of commands that the atf suite offers. These include :</p> Err codemadness.org 70 i 56330 </blockquote> Err codemadness.org 70 i 56331 <ul> Err codemadness.org 70 i 56332 <li> Err codemadness.org 70 i 56333 <p>atf-check: The versatile command that is a vital part of the checking process. man page</p> Err codemadness.org 70 i 56334 </li> Err codemadness.org 70 i 56335 <li> Err codemadness.org 70 i 56336 <p>atf-run: Command used to run a test program. man page</p> Err codemadness.org 70 i 56337 </li> Err codemadness.org 70 i 56338 <li> Err codemadness.org 70 i 56339 <p>atf-fail: Report failure of a test case.</p> Err codemadness.org 70 i 56340 </li> Err codemadness.org 70 i 56341 <li> Err codemadness.org 70 i 56342 <p>atf-report: used to pretty print the atf-run. man page</p> Err codemadness.org 70 i 56343 </li> Err codemadness.org 70 i 56344 <li> Err codemadness.org 70 i 56345 <p>atf-set: To set atf test conditions.</p> Err codemadness.org 70 i 56346 </li> Err codemadness.org 70 i 56347 <li> Err codemadness.org 70 i 56348 <p>We will be taking a better look at the syntax and usage later.</p> Err codemadness.org 70 i 56349 </li> Err codemadness.org 70 i 56350 <li> Err codemadness.org 70 i 56351 <p>Let’s start with the Basics</p> Err codemadness.org 70 i 56352 </li> Err codemadness.org 70 i 56353 </ul> Err codemadness.org 70 i 56354 <blockquote> Err codemadness.org 70 i 56355 <p>The ATF testing framework comes preinstalled with a default NetBSD installation. It is used to write tests for various applications and commands in NetBSD. One can write the Test programs in either the C language or in shell script. In this post I will be dealing with the Bash part.</p> Err codemadness.org 70 i 56356 </blockquote> Err codemadness.org 70 i 56357 <ul> Err codemadness.org 70 i 56358 <li>Follow the link above to see the rest of the article</li> Err codemadness.org 70 i 56359 </ul> Err codemadness.org 70 i 56360 <hr> Err codemadness.org 70 i 56361 <p>###<a href="http://brian.candler.me/posts/the-importance-of-zfs-blocksize/">The Importance of ZFS Block Size</a></p> Err codemadness.org 70 i 56362 <ul> Err codemadness.org 70 i 56363 <li>Warning! WARNING! Don’t just do things because some random blog says so</li> Err codemadness.org 70 i 56364 </ul> Err codemadness.org 70 i 56365 <blockquote> Err codemadness.org 70 i 56366 <p>One of the important tunables in ZFS is the recordsize (for normal datasets) and volblocksize (for zvols). These default to 128KB and 8KB respectively.<br> Err codemadness.org 70 i 56367 As I understand it, this is the unit of work in ZFS. If you modify one byte in a large file with the default 128KB record size, it causes the whole 128KB to be read in, one byte to be changed, and a new 128KB block to be written out.<br> Err codemadness.org 70 i 56368 As a result, the official recommendation is to use a block size which aligns with the underlying workload: so for example if you are using a database which reads and writes 16KB chunks then you should use a 16KB block size, and if you are running VMs containing an ext4 filesystem, which uses a 4KB block size, you should set a 4KB block size<br> Err codemadness.org 70 i 56369 You can see it has a 16GB total file size, of which 8.5G has been touched and consumes space - that is, it’s a “sparse” file. The used space is also visible by looking at the zfs filesystem which this file resides in<br> Err codemadness.org 70 i 56370 Then I tried to copy the image file whilst maintaining its “sparseness”, that is, only touching the blocks of the zvol which needed to be touched. The original used only 8.42G, but the copy uses 14.6GB - almost the entire 16GB has been touched! What’s gone wrong?<br> Err codemadness.org 70 i 56371 I finally realised that the difference between the zfs filesystem and the zvol is the block size. I recreated the zvol with a 128K block size<br> Err codemadness.org 70 i 56372 That’s better. The disk usage of the zvol is now exactly the same as for the sparse file in the filesystem dataset</p> Err codemadness.org 70 i 56373 </blockquote> Err codemadness.org 70 i 56374 <ul> Err codemadness.org 70 i 56375 <li>It does impact the read speed too. 4K blocks took 5:52, and 128K blocks took 3:20</li> Err codemadness.org 70 i 56376 <li>Part of this is the amount of metadata that has to be read, see the MySQL benchmarks from earlier in the show</li> Err codemadness.org 70 i 56377 <li>And yes, using a larger block size will increase the compression efficiency, since the compressor has more redundant data to optimize.</li> Err codemadness.org 70 i 56378 <li>Some of the savings, and the speedup is because a lot less metadata had to be written</li> Err codemadness.org 70 i 56379 <li>Your zpool layout also plays a big role, if you use 4Kn disks, and RAID-Z2, using a volblocksize of 8k will actually result in a large amount of wasted space because of RAID-Z padding. Although, if you enable compression, your 8k records may compress to only 4k, and then all the numbers change again.</li> Err codemadness.org 70 i 56380 </ul> Err codemadness.org 70 i 56381 <hr> Err codemadness.org 70 i 56382 <p>###<a href="https://www.fukr.org.uk/?p=184">Using a Raspberry Pi 2 as a Router on a Stick Starring NetBSD</a></p> Err codemadness.org 70 i 56383 <ul> Err codemadness.org 70 i 56384 <li>Sorry we didn’t answer you quickly enough</li> Err codemadness.org 70 i 56385 </ul> Err codemadness.org 70 i 56386 <blockquote> Err codemadness.org 70 i 56387 <p>A few weeks ago I set about upgrading my feeble networking skills by playing around with a Cisco 2970 switch. I set up a couple of VLANs and found the urge to set up a router to route between them. The 2970 isn’t a modern layer 3 switch so what am I to do?</p> Err codemadness.org 70 i 56388 </blockquote> Err codemadness.org 70 i 56389 <blockquote> Err codemadness.org 70 i 56390 <p>Why not make use of the Raspberry Pi 2 that I’ve never used and put it to some good use as a ‘router on a stick’.</p> Err codemadness.org 70 i 56391 </blockquote> Err codemadness.org 70 i 56392 <blockquote> Err codemadness.org 70 i 56393 <p>I could install a Linux based OS as I am quite familiar with it but where’s the fun in that? In my home lab I use SmartOS which by the way is a shit hot hypervisor but as far as I know there aren’t any Illumos distributions for the Raspberry Pi. On the desktop I use Solus OS which is by far the slickest Linux based OS that I’ve had the pleasure to use but Solus’ focus is purely desktop. It’s looking like BSD then!</p> Err codemadness.org 70 i 56394 </blockquote> Err codemadness.org 70 i 56395 <blockquote> Err codemadness.org 70 i 56396 <p>I believe FreeBSD is renowned for it’s top notch networking stack and so I wrote to the BSDNow show on Jupiter Broadcasting for some help but it seems that the FreeBSD chaps from the show are off on a jolly to some BSD conference or another(love the show by the way).</p> Err codemadness.org 70 i 56397 </blockquote> Err codemadness.org 70 i 56398 <blockquote> Err codemadness.org 70 i 56399 <p>It looks like me and the luvverly NetBSD are on a date this Saturday. I’ve always had a secret love for NetBSD. She’s a beautiful, charming and promiscuous lover(looking at the supported architectures) and I just can’t stop going back to her despite her misgivings(ahem, zfs). Just my type of grrrl!</p> Err codemadness.org 70 i 56400 </blockquote> Err codemadness.org 70 i 56401 <blockquote> Err codemadness.org 70 i 56402 <p>Let’s crack on…</p> Err codemadness.org 70 i 56403 </blockquote> Err codemadness.org 70 i 56404 <ul> Err codemadness.org 70 i 56405 <li>Follow the link above to see the rest of the article</li> Err codemadness.org 70 i 56406 </ul> Err codemadness.org 70 i 56407 <hr> Err codemadness.org 70 i 56408 <p>##Beastie Bits</p> Err codemadness.org 70 i 56409 <ul> Err codemadness.org 70 i 56410 <li><a href="https://www.bsdjobs.com/">BSD Jobs</a></li> Err codemadness.org 70 i 56411 <li><a href="https://lists.freebsd.org/pipermail/freebsd-jobs/2018-May/000944.html">University of Aberdeen’s Internet Transport Research Group is hiring</a></li> Err codemadness.org 70 i 56412 <li><a href="https://youtu.be/YnNpgtjrM9U">VR demo on OpenBSD via OpenHMD with OSVR HDK2</a></li> Err codemadness.org 70 i 56413 <li><a href="https://rachelbythebay.com/w/2018/04/05/bangpatch/">patch runs ed, and ed can run anything (mentions FreeBSD and OpenBSD)</a></li> Err codemadness.org 70 i 56414 <li><a href="https://github.com/jwilm/alacritty/blob/master/README.md">Alacritty (OpenGL-powered terminal emulator) now supports OpenBSD</a></li> Err codemadness.org 70 i 56415 <li><a href="https://undeadly.org/cgi?action=article;sid=20180413065457">MAP_STACK Stack Register Checking Committed to -current</a></li> Err codemadness.org 70 i 56416 <li><a href="https://2018.eurobsdcon.org/call-for-papers/">EuroBSDCon CfP till June 17, 2018</a></li> Err codemadness.org 70 i 56417 </ul> Err codemadness.org 70 i 56418 <hr> Err codemadness.org 70 i 56419 <p><strong>Tarsnap</strong></p> Err codemadness.org 70 i 56420 <p>##Feedback/Questions</p> Err codemadness.org 70 i 56421 <ul> Err codemadness.org 70 i 56422 <li>NeutronDaemon - <a href="http://dpaste.com/3E0SR5Y#wrap">Tutorial request</a></li> Err codemadness.org 70 i 56423 <li>Kurt - <a href="http://dpaste.com/01CWKM5#wrap">Question about transferability/bi-directionality of ZFS snapshots and send/receive</a></li> Err codemadness.org 70 i 56424 <li>Peter - <a href="http://dpaste.com/3N1BGQF#wrap">A Question and much love for BSD Now</a></li> Err codemadness.org 70 i 56425 <li>Peter - <a href="http://dpaste.com/20R2DTG">netgraph state</a></li> Err codemadness.org 70 i 56426 </ul> Err codemadness.org 70 i 56427 <hr> Err codemadness.org 70 i 56428 <ul> Err codemadness.org 70 i 56429 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 56430 </ul> Err codemadness.org 70 i 56431 <hr> Err codemadness.org 70 i 56432 Err codemadness.org 70 i 56433 freebsd,openbsd,netbsd,dragonflybsd,trueos,tutorial,howto,guide,bsd,interview,dtrace,sysbench,InnoDB,OpenSMTPD,samba,rsync,ATF tests,raspberry pi 2 Err codemadness.org 70 i 56434 Err codemadness.org 70 i 56435 OpenZFS and DTrace updates in NetBSD, NetBSD network security stack audit, Performance of MySQL on ZFS, OpenSMTP results from p2k18, legacy Windows backup to FreeNAS, ZFS block size importance, and NetBSD as router on a stick.
Err codemadness.org 70 i 56436

Err codemadness.org 70 i 56437 Err codemadness.org 70 i 56438

##Headlines
Err codemadness.org 70 i 56439 ###ZFS and DTrace update lands in NetBSD

Err codemadness.org 70 i 56440 Err codemadness.org 70 i 56441
Err codemadness.org 70 i 56442

merge a new version of the CDDL dtrace and ZFS code. This changes the upstream vendor from OpenSolaris to FreeBSD, and this version is based on FreeBSD svn r315983.

Err codemadness.org 70 i 56443
Err codemadness.org 70 i 56444 Err codemadness.org 70 i 56445
    Err codemadness.org 70 i 56446
  • r315983 is from March 2017 (14 months ago), so there is still more work to do
  • Err codemadness.org 70 i 56447
Err codemadness.org 70 i 56448 Err codemadness.org 70 i 56449
Err codemadness.org 70 i 56450

in addition to the 10 years of improvements from upstream, this version also has these NetBSD-specific enhancements:

Err codemadness.org 70 i 56451
    Err codemadness.org 70 i 56452
  • dtrace FBT probes can now be placed in kernel modules.
  • Err codemadness.org 70 i 56453
  • ZFS now supports mmap().
  • Err codemadness.org 70 i 56454
Err codemadness.org 70 i 56455
Err codemadness.org 70 i 56456 Err codemadness.org 70 i 56457
    Err codemadness.org 70 i 56458
  • This brings NetBSD 10 years forward, and they should be able to catch the rest of the way up fairly quickly
  • Err codemadness.org 70 i 56459
Err codemadness.org 70 i 56460 Err codemadness.org 70 i 56461


Err codemadness.org 70 i 56462 Err codemadness.org 70 i 56463

###NetBSD network stack security audit

Err codemadness.org 70 i 56464 Err codemadness.org 70 i 56465
    Err codemadness.org 70 i 56466
  • Maxime Villard has been working on an audit of the NetBSD network stack, a project sponsored by The NetBSD Foundation, which has served all users of BSD-derived operating systems.
  • Err codemadness.org 70 i 56467
Err codemadness.org 70 i 56468 Err codemadness.org 70 i 56469
Err codemadness.org 70 i 56470

Over the last five months, hundreds of patches were committed to the source tree as a result of this work. Dozens of bugs were fixed, among which a good number of actual, remotely-triggerable vulnerabilities.

Err codemadness.org 70 i 56471
Err codemadness.org 70 i 56472 Err codemadness.org 70 i 56473
Err codemadness.org 70 i 56474

Changes were made to strengthen the networking subsystems and improve code quality: reinforce the mbuf API, add many KASSERTs to enforce assumptions, simplify packet handling, and verify compliance with RFCs. This was done in several layers of the NetBSD kernel, from device drivers to L4 handlers.
Err codemadness.org 70 i 56475 In the course of investigating several bugs discovered in NetBSD, I happened to look at the network stacks of other operating systems, to see whether they had already fixed the issues, and if so how. Needless to say, I found bugs there too.

Err codemadness.org 70 i 56476
Err codemadness.org 70 i 56477 Err codemadness.org 70 i 56478
    Err codemadness.org 70 i 56479
  • A lot of code is shared between the BSDs, so it is especially helpful when one finds a bug, to check the other BSDs and share the fix.
  • Err codemadness.org 70 i 56480
Err codemadness.org 70 i 56481 Err codemadness.org 70 i 56482
Err codemadness.org 70 i 56483

The IPv6 Buffer Overflow: The overflow allowed an attacker to write one byte of packet-controlled data into ‘packet_storage+off’, where ‘off’ could be approximately controlled too. This allowed at least a pretty bad remote DoS/Crash
Err codemadness.org 70 i 56484 The IPsec Infinite Loop: When receiving an IPv6-AH packet, the IPsec entry point was not correctly computing the length of the IPv6 suboptions, and this, before authentication. As a result, a specially-crafted IPv6 packet could trigger an infinite loop in the kernel (making it unresponsive). In addition this flaw allowed a limited buffer overflow - where the data being written was however not controllable by the attacker.
Err codemadness.org 70 i 56485 The IPPROTO Typo: While looking at the IPv6 Multicast code, I stumbled across a pretty simple yet pretty bad mistake: at one point the Pim6 entry point would return IPPROTO_NONE instead of IPPROTO_DONE. Returning IPPROTO_NONE was entirely wrong: it caused the kernel to keep iterating on the IPv6 packet chain, while the packet storage was already freed.
Err codemadness.org 70 i 56486 The PF Signedness Bug: A bug was found in NetBSD’s implementation of the PF firewall, that did not affect the other BSDs. In the initial PF code a particular macro was used as an alias to a number. This macro formed a signed integer. NetBSD replaced the macro with a sizeof(), which returns an unsigned result.
Err codemadness.org 70 i 56487 The NPF Integer Overflow: An integer overflow could be triggered in NPF, when parsing an IPv6 packet with large options. This could cause NPF to look for the L4 payload at the wrong offset within the packet, and it allowed an attacker to bypass any L4 filtering rule on IPv6.
Err codemadness.org 70 i 56488 The IPsec Fragment Attack: I noticed some time ago that when reassembling fragments (in either IPv4 or IPv6), the kernel was not removing the M_PKTHDR flag on the secondary mbufs in mbuf chains. This flag is supposed to indicate that a given mbuf is the head of the chain it forms; having the flag on secondary mbufs was suspicious.
Err codemadness.org 70 i 56489 What Now: Not all protocols and layers of the network stack were verified, because of time constraints, and also because of unexpected events: the recent x86 CPU bugs, which I was the only one able to fix promptly. A todo list will be left when the project end date is reached, for someone else to pick up. Me perhaps, later this year? We’ll see.
Err codemadness.org 70 i 56490 This security audit of NetBSD’s network stack is sponsored by The NetBSD Foundation, and serves all users of BSD-derived operating systems. The NetBSD Foundation is a non-profit organization, and welcomes any donations that help continue funding projects of this kind.

Err codemadness.org 70 i 56491
Err codemadness.org 70 i 56492 Err codemadness.org 70 i 56493


Err codemadness.org 70 i 56494 Err codemadness.org 70 i 56495

DigitalOcean

Err codemadness.org 70 i 56496 Err codemadness.org 70 i 56497

###MySQL on ZFS Performance

Err codemadness.org 70 i 56498 Err codemadness.org 70 i 56499
Err codemadness.org 70 i 56500

I used sysbench to create a table of 10M rows and then, using export/import tablespace, I copied it 329 times. I ended up with 330 tables for a total size of about 850GB. The dataset generated by sysbench is not very compressible, so I used lz4 compression in ZFS. For the other ZFS settings, I used what can be found in my earlier ZFS posts but with the ARC size limited to 1GB. I then used that plain configuration for the first benchmarks. Here are the results with the sysbench point-select benchmark, a uniform distribution and eight threads. The InnoDB buffer pool was set to 2.5GB.
Err codemadness.org 70 i 56501 In both cases, the load is IO bound. The disk is doing exactly the allowed 3000 IOPS. The above graph appears to be a clear demonstration that XFS is much faster than ZFS, right? But is that really the case? The way the dataset has been created is extremely favorable to XFS since there is absolutely no file fragmentation. Once you have all the files opened, a read IOP is just a single fseek call to an offset and ZFS doesn’t need to access any intermediate inode. The above result is about as fair as saying MyISAM is faster than InnoDB based only on table scan performance results of unfragmented tables and default configuration. ZFS is much less affected by the file level fragmentation, especially for point access type.

Err codemadness.org 70 i 56502
Err codemadness.org 70 i 56503 Err codemadness.org 70 i 56504
Err codemadness.org 70 i 56505

ZFS stores the files in B-trees in a very similar fashion as InnoDB stores data. To access a piece of data in a B-tree, you need to access the top level page (often called root node) and then one block per level down to a leaf-node containing the data. With no cache, to read something from a three levels B-tree thus requires 3 IOPS.

Err codemadness.org 70 i 56506
Err codemadness.org 70 i 56507 Err codemadness.org 70 i 56508
Err codemadness.org 70 i 56509

The extra IOPS performed by ZFS are needed to access those internal blocks in the B-trees of the files. These internal blocks are labeled as metadata. Essentially, in the above benchmark, the ARC is too small to contain all the internal blocks of the table files’ B-trees. If we continue the comparison with InnoDB, it would be like running with a buffer pool too small to contain the non-leaf pages. The test dataset I used has about 600MB of non-leaf pages, about 0.1% of the total size, which was well cached by the 3GB buffer pool. So only one InnoDB page, a leaf page, needed to be read per point-select statement.

Err codemadness.org 70 i 56510
Err codemadness.org 70 i 56511 Err codemadness.org 70 i 56512
Err codemadness.org 70 i 56513

To correctly set the ARC size to cache the metadata, you have two choices. First, you can guess values for the ARC size and experiment. Second, you can try to evaluate it by looking at the ZFS internal data. Let’s review these two approaches.

Err codemadness.org 70 i 56514
Err codemadness.org 70 i 56515 Err codemadness.org 70 i 56516
Err codemadness.org 70 i 56517

You’ll read/hear often the ratio 1GB of ARC for 1TB of data, which is about the same 0.1% ratio as for InnoDB. I wrote about that ratio a few times, having nothing better to propose. Actually, I found it depends a lot on the recordsize used. The 0.1% ratio implies a ZFS recordsize of 128KB. A ZFS filesystem with a recordsize of 128KB will use much less metadata than another one using a recordsize of 16KB because it has 8x fewer leaf pages. Fewer leaf pages require less B-tree internal nodes, hence less metadata. A filesystem with a recordsize of 128KB is excellent for sequential access as it maximizes compression and reduces the IOPS but it is poor for small random access operations like the ones MySQL/InnoDB does.

Err codemadness.org 70 i 56518
Err codemadness.org 70 i 56519 Err codemadness.org 70 i 56520
    Err codemadness.org 70 i 56521
  • In order to improve ZFS performance, I had 3 options:
  • Err codemadness.org 70 i 56522
  • Increase the ARC size to 7GB
  • Err codemadness.org 70 i 56523
  • Use a larger Innodb page size like 64KB
  • Err codemadness.org 70 i 56524
  • Add a L2ARC
  • Err codemadness.org 70 i 56525
Err codemadness.org 70 i 56526 Err codemadness.org 70 i 56527
Err codemadness.org 70 i 56528

I was reluctant to grow the ARC to 7GB, which was nearly half the overall system memory. At best, the ZFS performance would only match XFS. A larger InnoDB page size would increase the CPU load for decompression on an instance with only two vCPUs; not great either. The last option, the L2ARC, was the most promising.

Err codemadness.org 70 i 56529
Err codemadness.org 70 i 56530 Err codemadness.org 70 i 56531
Err codemadness.org 70 i 56532

ZFS is much more complex than XFS and EXT4 but, that also means it has more tunables/options. I used a simplistic setup and an unfair benchmark which initially led to poor ZFS results. With the same benchmark, very favorable to XFS, I added a ZFS L2ARC and that completely reversed the situation, more than tripling the ZFS results, now 66% above XFS.

Err codemadness.org 70 i 56533
Err codemadness.org 70 i 56534 Err codemadness.org 70 i 56535
    Err codemadness.org 70 i 56536
  • Conclusion
  • Err codemadness.org 70 i 56537
Err codemadness.org 70 i 56538 Err codemadness.org 70 i 56539
Err codemadness.org 70 i 56540

We have seen in this post why the general perception is that ZFS under-performs compared to XFS or EXT4. The presence of B-trees for the files has a big impact on the amount of metadata ZFS needs to handle, especially when the recordsize is small. The metadata consists mostly of the non-leaf pages (or internal nodes) of the B-trees. When properly cached, the performance of ZFS is excellent. ZFS allows you to optimize the use of EBS volumes, both in term of IOPS and size when the instance has fast ephemeral storage devices. Using the ephemeral device of an i3.large instance for the ZFS L2ARC, ZFS outperformed XFS by 66%.

Err codemadness.org 70 i 56541
Err codemadness.org 70 i 56542 Err codemadness.org 70 i 56543


Err codemadness.org 70 i 56544 Err codemadness.org 70 i 56545

###OpenSMTPD new config

Err codemadness.org 70 i 56546 Err codemadness.org 70 i 56547
TL;DR:	Err	codemadness.org	70
i 56548 OpenBSD #p2k18 hackathon took place at Epitech in Nantes.	Err	codemadness.org	70
i 56549 I was organizing the hackathon but managed to make progress on OpenSMTPD.	Err	codemadness.org	70
i 56550 As mentioned at EuroBSDCon the one-line per rule config format was a design error.	Err	codemadness.org	70
i 56551 A new configuration grammar is almost ready and the underlying structures are simplified.	Err	codemadness.org	70
i 56552 Refactor removes ~750 lines of code and solves _many_ issues that were side-effects of the design error.	Err	codemadness.org	70
i 56553 New features are going to be unlocked thanks to this.	Err	codemadness.org	70
i 56554 
Err codemadness.org 70 i 56555 Err codemadness.org 70 i 56556
    Err codemadness.org 70 i 56557
  • Anatomy of a design error
  • Err codemadness.org 70 i 56558
Err codemadness.org 70 i 56559 Err codemadness.org 70 i 56560
Err codemadness.org 70 i 56561

OpenSMTPD started ten years ago out of dissatisfaction with other solutions, mainly because I considered them way too complex for me not to get things wrong from time to time.
Err codemadness.org 70 i 56562 The initial configuration format was very different, I was inspired by pyr@’s hoststated, which eventually became relayd, and designed my configuration format with blocks enclosed by brackets.
Err codemadness.org 70 i 56563 When I first showed OpenSMTPD to pyr@, he convinced me that PF-like one-line rules would be awesome, and it was awesome indeed.
Err codemadness.org 70 i 56564 It helped us maintain our goal of simple configuration files, it helped fight feature creeping, it helped us gain popularity and become a relevant MTA, it helped us get where we are now 10 years later.
Err codemadness.org 70 i 56565 That being said, I believe this was a design error. A design error that could not have been predicted until we hit the wall to understand WHY this was an error. One-line rules are semantically wrong, they are SMTP wrong, they are wrong.
Err codemadness.org 70 i 56566 One-line rules are making the entire daemon more complex, preventing some features from being implemented, making others more complex than they should be, they no longer serve our goals.
Err codemadness.org 70 i 56567 To get to the point: we should move to two-line rules :-)

Err codemadness.org 70 i 56568
Err codemadness.org 70 i 56569 Err codemadness.org 70 i 56570

Anatomy of a design error
Err codemadness.org 70 i 56571 OpenSMTPD started ten years ago out of dissatisfaction with other solutions, mainly because I considered them way too complex for me not to get things wrong from time to time.

Err codemadness.org 70 i 56572 Err codemadness.org 70 i 56573

The initial configuration format was very different, I was inspired by pyr@’s hoststated, which eventually became relayd, and designed my configuration format with blocks enclosed by brackets.

Err codemadness.org 70 i 56574 Err codemadness.org 70 i 56575

When I first showed OpenSMTPD to pyr@, he convinced me that PF-like one-line rules would be awesome, and it was awesome indeed.

Err codemadness.org 70 i 56576 Err codemadness.org 70 i 56577

It helped us maintain our goal of simple configuration files, it helped fight feature creeping, it helped us gain popularity and become a relevant MTA, it helped us get where we are now 10 years later.

Err codemadness.org 70 i 56578 Err codemadness.org 70 i 56579

That being said, I believe this was a design error. A design error that could not have been predicted until we hit the wall to understand WHY this was an error. One-line rules are semantically wrong, they are SMTP wrong, they are wrong.

Err codemadness.org 70 i 56580 Err codemadness.org 70 i 56581

One-line rules are making the entire daemon more complex, preventing some features from being implemented, making others more complex than they should be, they no longer serve our goals.

Err codemadness.org 70 i 56582 Err codemadness.org 70 i 56583

To get to the point: we should move to two-line rules :-)

Err codemadness.org 70 i 56584 Err codemadness.org 70 i 56585
    Err codemadness.org 70 i 56586
  • The problem with one-line rules
  • Err codemadness.org 70 i 56587
Err codemadness.org 70 i 56588 Err codemadness.org 70 i 56589
Err codemadness.org 70 i 56590

OpenSMTPD decides to accept or reject messages based on one-line rules such as:

Err codemadness.org 70 i 56591
Err codemadness.org 70 i 56592 Err codemadness.org 70 i 56593

accept from any for domain poolp.org deliver to mbox

Err codemadness.org 70 i 56594 Err codemadness.org 70 i 56595
Err codemadness.org 70 i 56596

Which can essentially be split into three units:

Err codemadness.org 70 i 56597
Err codemadness.org 70 i 56598 Err codemadness.org 70 i 56599
    Err codemadness.org 70 i 56600
  • the decision: accept/reject
  • Err codemadness.org 70 i 56601
  • the matching: from any for domain poolp.org
  • Err codemadness.org 70 i 56602
  • the (default) action: deliver to mbox
  • Err codemadness.org 70 i 56603
Err codemadness.org 70 i 56604 Err codemadness.org 70 i 56605
Err codemadness.org 70 i 56606

To ensure that we meet the requirements of the transactions, the matching must be performed during the SMTP transaction before we take a decision for the recipient.
Err codemadness.org 70 i 56607 Given that the rule is atomic, that it doesn’t have an identifier and that the action is part of it, the two only ways to make sure we can remember the action to take later on at delivery time is to either:

Err codemadness.org 70 i 56608
Err codemadness.org 70 i 56609 Err codemadness.org 70 i 56610
    Err codemadness.org 70 i 56611
  • save the action in the envelope, which is what we do today
  • Err codemadness.org 70 i 56612
  • evaluate the envelope again at delivery
  • Err codemadness.org 70 i 56613
  • And this this where it gets tricky… both solutions are NOT ok.
  • Err codemadness.org 70 i 56614
Err codemadness.org 70 i 56615 Err codemadness.org 70 i 56616
Err codemadness.org 70 i 56617

The first solution, which we’ve been using for a decade, was to save the action within the envelope and kind of carve it in stone. This works fine… however it comes with the downsides that errors fixed in configuration files can’t be caught up by envelopes, that delivery action must be validated way ahead of time during the SMTP transaction which is much trickier, that the parsing of delivery methods takes place as the _smtpd user rather than the recipient user, and that envelope structures that are passed all over OpenSMTPD carry delivery-time informations, and more, and more, and more. The code becomes more complex in general, less safe in some particular places, and some areas are nightmarish to deal with because they have to deal with completely unrelated code that can’t be dealt with later in the code path.

Err codemadness.org 70 i 56618
Err codemadness.org 70 i 56619 Err codemadness.org 70 i 56620
Err codemadness.org 70 i 56621

The second solution can’t be done. An envelope may be the result of nested rules, for example an external client, hitting an alias, hitting a user with a .forward file resolving to a user. An envelope on disk may no longer match any rule or it may match a completely different rule If we could ensure that it matched the same rule, evaluating the ruleset may spawn new envelopes which would violate the transaction. Trying to imagine how we could work around this leads to more and more and more RFC violations, incoherent states, duplicate mails, etc…

Err codemadness.org 70 i 56622
Err codemadness.org 70 i 56623 Err codemadness.org 70 i 56624
Err codemadness.org 70 i 56625

There is simply no way to deal with this with atomic rules, the matching and the action must be two separate units that are evaluated at two different times, failure to do so will necessarily imply that you’re either using our first solution and all its downsides, or that you are currently in a world of pain trying to figure out why everything is burning around you. The minute the action is written to an on-disk envelope, you have failed.

Err codemadness.org 70 i 56626
Err codemadness.org 70 i 56627 Err codemadness.org 70 i 56628
Err codemadness.org 70 i 56629

A proper ruleset must define a set of matching patterns resolving to an action identifier that is carved in stone, AND a set of named action set that is resolved dynamically at delivery time.

Err codemadness.org 70 i 56630
Err codemadness.org 70 i 56631 Err codemadness.org 70 i 56632
    Err codemadness.org 70 i 56633
  • Follow the link above to see the rest of the article
  • Err codemadness.org 70 i 56634
Err codemadness.org 70 i 56635 Err codemadness.org 70 i 56636


Err codemadness.org 70 i 56637 Err codemadness.org 70 i 56638

Break

Err codemadness.org 70 i 56639 Err codemadness.org 70 i 56640

##News Roundup
Err codemadness.org 70 i 56641 ###Backing up a legacy Windows machine to a FreeNAS with rsync

Err codemadness.org 70 i 56642 Err codemadness.org 70 i 56643
Err codemadness.org 70 i 56644

I have some old Windows servers (10 years and counting) and I have been using rsync to back them up to my FreeNAS box. It has been working great for me.

Err codemadness.org 70 i 56645
Err codemadness.org 70 i 56646 Err codemadness.org 70 i 56647
Err codemadness.org 70 i 56648

First of all, I do have my Windows servers backup in virtualized format. However, those are only one-time snapshops that I run once in a while. These are classic ASP IIS web servers that I can easily put up on a new VM. However, many of these legacy servers generate gigabytes of data a day in their repositories. Running VM conversion daily is not ideal.

Err codemadness.org 70 i 56649
Err codemadness.org 70 i 56650 Err codemadness.org 70 i 56651
Err codemadness.org 70 i 56652

My solution was to use some sort of rsync solution just for the data repos. I’ve tried some applications that didn’t work too well with Samba shares and these old servers have slow I/O. Copying files to external sata or usb drive was not ideal. We’ve moved on from Windows to Linux and do not have any Windows file servers of capacity to provide network backups. Hence, I decided to use Delta Copy with FreeNAS. So here is a little write up on how to set it up. I have 4 Windows 2000 servers backing up daily with this method.

Err codemadness.org 70 i 56653
Err codemadness.org 70 i 56654 Err codemadness.org 70 i 56655
Err codemadness.org 70 i 56656

First, download Delta Copy and install it. It is open-source and pretty much free. It is basically a wrapper for cygwin’s rsync. When you install it, it will ask you to install the Server services which allows you to run it as a Rsync server on Windows. You don’t need to do this. Instead, you will be just using the Delta Copy Client application. But before we do that, we will need to configure our Rsync service for our Windows Clients on FreeNAS.

Err codemadness.org 70 i 56657
Err codemadness.org 70 i 56658 Err codemadness.org 70 i 56659
    Err codemadness.org 70 i 56660
  • In FreeNAS, go under Services , Select Rsync > Rsync Modules > Add Rsync Module.
  • Err codemadness.org 70 i 56661
  • Then fill out the form; giving the module a name and set the path. In my example, I simply called it WIN and linked it to a user called backupuser.
  • Err codemadness.org 70 i 56662
  • This process is much easier than trying to configure the daemon rsyncd.conf file by hand.
  • Err codemadness.org 70 i 56663
  • Now, on the Windows Client, start the DeltaCopy Client. You will create a new Profile.
  • Err codemadness.org 70 i 56664
  • You will need to enter the IP of the Rsync server (FreeNAS) and specify the module name which will be called “Virtual Directory Name.” When you pull the select menu, the list of Rsync Modules you created earlier in FreeNAS will populate.
  • Err codemadness.org 70 i 56665
  • You can set authentication. On the server, you can restrict by IP and do other things to lock down your rsync.
  • Err codemadness.org 70 i 56666
  • Next, you will add folders (and/or files) you want to synchronize.
  • Err codemadness.org 70 i 56667
  • Once the paths are set up, you can run a sync by right clicking the profile name.
  • Err codemadness.org 70 i 56668
  • Here, I made a test sync to a home folder of a virtualized windows box. As you can see, I mounted the rsync volume on my mac to see the progress. The rsync worked beautifully. DeltaCopy did what it was told.
  • Err codemadness.org 70 i 56669
  • Once you get everything working. The next thing to do is set schedules. If you done tasks schedules in Windows before, it is pretty straightforward. DeltaCopy has a link in the application to directly create a new task for you. I set my backups to run nightly and it has been working great.
  • Err codemadness.org 70 i 56670
Err codemadness.org 70 i 56671 Err codemadness.org 70 i 56672
Err codemadness.org 70 i 56673

There you have it. Windows rsync to FreeNAS using DeltaCopy.
Err codemadness.org 70 i 56674 The nice thing about FreeNAS is you don’t have to modify /etc/rsyncd.conf files. Everything can be done in the web admin.

Err codemadness.org 70 i 56675
Err codemadness.org 70 i 56676 Err codemadness.org 70 i 56677


Err codemadness.org 70 i 56678 Err codemadness.org 70 i 56679

iXsystems

Err codemadness.org 70 i 56680 Err codemadness.org 70 i 56681

###How to write ATF tests for NetBSD

Err codemadness.org 70 i 56682 Err codemadness.org 70 i 56683
Err codemadness.org 70 i 56684

I have recently started contributing to the amazing NetBSD foundation. I was thinking of trying out a new OS for a long time. Switching to the NetBSD OS has been a fun change.

Err codemadness.org 70 i 56685
Err codemadness.org 70 i 56686 Err codemadness.org 70 i 56687
Err codemadness.org 70 i 56688

My first contribution to the NetBSD foundation was adding regression tests for the Address Sanitizer (ASan) in the Automated Testing Framework(ATF) which NetBSD has. I managed to complete it with the help of my really amazing mentor Kamil. This post is gonna be about the ATF framework that NetBSD has and how to you can add multiple tests with ease.

Err codemadness.org 70 i 56689
Err codemadness.org 70 i 56690 Err codemadness.org 70 i 56691
    Err codemadness.org 70 i 56692
  • Intro
  • Err codemadness.org 70 i 56693
Err codemadness.org 70 i 56694 Err codemadness.org 70 i 56695
Err codemadness.org 70 i 56696

In ATF tests we will basically be talking about test programs which are a suite of test cases for a specific application or program.

Err codemadness.org 70 i 56697
Err codemadness.org 70 i 56698 Err codemadness.org 70 i 56699
    Err codemadness.org 70 i 56700
  • The ATF suite of Commands
  • Err codemadness.org 70 i 56701
Err codemadness.org 70 i 56702 Err codemadness.org 70 i 56703
Err codemadness.org 70 i 56704

There are a variety of commands that the atf suite offers. These include :

Err codemadness.org 70 i 56705
Err codemadness.org 70 i 56706 Err codemadness.org 70 i 56707
    Err codemadness.org 70 i 56708
  • Err codemadness.org 70 i 56709

    atf-check: The versatile command that is a vital part of the checking process. man page

    Err codemadness.org 70 i 56710
  • Err codemadness.org 70 i 56711
  • Err codemadness.org 70 i 56712

    atf-run: Command used to run a test program. man page

    Err codemadness.org 70 i 56713
  • Err codemadness.org 70 i 56714
  • Err codemadness.org 70 i 56715

    atf-fail: Report failure of a test case.

    Err codemadness.org 70 i 56716
  • Err codemadness.org 70 i 56717
  • Err codemadness.org 70 i 56718

    atf-report: used to pretty print the atf-run. man page

    Err codemadness.org 70 i 56719
  • Err codemadness.org 70 i 56720
  • Err codemadness.org 70 i 56721

    atf-set: To set atf test conditions.

    Err codemadness.org 70 i 56722
  • Err codemadness.org 70 i 56723
  • Err codemadness.org 70 i 56724

    We will be taking a better look at the syntax and usage later.

    Err codemadness.org 70 i 56725
  • Err codemadness.org 70 i 56726
  • Err codemadness.org 70 i 56727

    Let’s start with the Basics

    Err codemadness.org 70 i 56728
  • Err codemadness.org 70 i 56729
Err codemadness.org 70 i 56730 Err codemadness.org 70 i 56731
Err codemadness.org 70 i 56732

The ATF testing framework comes preinstalled with a default NetBSD installation. It is used to write tests for various applications and commands in NetBSD. One can write the Test programs in either the C language or in shell script. In this post I will be dealing with the Bash part.

Err codemadness.org 70 i 56733
Err codemadness.org 70 i 56734 Err codemadness.org 70 i 56735
    Err codemadness.org 70 i 56736
  • Follow the link above to see the rest of the article
  • Err codemadness.org 70 i 56737
Err codemadness.org 70 i 56738 Err codemadness.org 70 i 56739


Err codemadness.org 70 i 56740 Err codemadness.org 70 i 56741

###The Importance of ZFS Block Size

Err codemadness.org 70 i 56742 Err codemadness.org 70 i 56743
    Err codemadness.org 70 i 56744
  • Warning! WARNING! Don’t just do things because some random blog says so
  • Err codemadness.org 70 i 56745
Err codemadness.org 70 i 56746 Err codemadness.org 70 i 56747
Err codemadness.org 70 i 56748

One of the important tunables in ZFS is the recordsize (for normal datasets) and volblocksize (for zvols). These default to 128KB and 8KB respectively.
Err codemadness.org 70 i 56749 As I understand it, this is the unit of work in ZFS. If you modify one byte in a large file with the default 128KB record size, it causes the whole 128KB to be read in, one byte to be changed, and a new 128KB block to be written out.
Err codemadness.org 70 i 56750 As a result, the official recommendation is to use a block size which aligns with the underlying workload: so for example if you are using a database which reads and writes 16KB chunks then you should use a 16KB block size, and if you are running VMs containing an ext4 filesystem, which uses a 4KB block size, you should set a 4KB block size
Err codemadness.org 70 i 56751 You can see it has a 16GB total file size, of which 8.5G has been touched and consumes space - that is, it’s a “sparse” file. The used space is also visible by looking at the zfs filesystem which this file resides in
Err codemadness.org 70 i 56752 Then I tried to copy the image file whilst maintaining its “sparseness”, that is, only touching the blocks of the zvol which needed to be touched. The original used only 8.42G, but the copy uses 14.6GB - almost the entire 16GB has been touched! What’s gone wrong?
Err codemadness.org 70 i 56753 I finally realised that the difference between the zfs filesystem and the zvol is the block size. I recreated the zvol with a 128K block size
Err codemadness.org 70 i 56754 That’s better. The disk usage of the zvol is now exactly the same as for the sparse file in the filesystem dataset

Err codemadness.org 70 i 56755
Err codemadness.org 70 i 56756 Err codemadness.org 70 i 56757
    Err codemadness.org 70 i 56758
  • It does impact the read speed too. 4K blocks took 5:52, and 128K blocks took 3:20
  • Err codemadness.org 70 i 56759
  • Part of this is the amount of metadata that has to be read, see the MySQL benchmarks from earlier in the show
  • Err codemadness.org 70 i 56760
  • And yes, using a larger block size will increase the compression efficiency, since the compressor has more redundant data to optimize.
  • Err codemadness.org 70 i 56761
  • Some of the savings, and the speedup is because a lot less metadata had to be written
  • Err codemadness.org 70 i 56762
  • Your zpool layout also plays a big role, if you use 4Kn disks, and RAID-Z2, using a volblocksize of 8k will actually result in a large amount of wasted space because of RAID-Z padding. Although, if you enable compression, your 8k records may compress to only 4k, and then all the numbers change again.
  • Err codemadness.org 70 i 56763
Err codemadness.org 70 i 56764 Err codemadness.org 70 i 56765


Err codemadness.org 70 i 56766 Err codemadness.org 70 i 56767

###Using a Raspberry Pi 2 as a Router on a Stick Starring NetBSD

Err codemadness.org 70 i 56768 Err codemadness.org 70 i 56769
    Err codemadness.org 70 i 56770
  • Sorry we didn’t answer you quickly enough
  • Err codemadness.org 70 i 56771
Err codemadness.org 70 i 56772 Err codemadness.org 70 i 56773
Err codemadness.org 70 i 56774

A few weeks ago I set about upgrading my feeble networking skills by playing around with a Cisco 2970 switch. I set up a couple of VLANs and found the urge to set up a router to route between them. The 2970 isn’t a modern layer 3 switch so what am I to do?

Err codemadness.org 70 i 56775
Err codemadness.org 70 i 56776 Err codemadness.org 70 i 56777
Err codemadness.org 70 i 56778

Why not make use of the Raspberry Pi 2 that I’ve never used and put it to some good use as a ‘router on a stick’.

Err codemadness.org 70 i 56779
Err codemadness.org 70 i 56780 Err codemadness.org 70 i 56781
Err codemadness.org 70 i 56782

I could install a Linux based OS as I am quite familiar with it but where’s the fun in that? In my home lab I use SmartOS which by the way is a shit hot hypervisor but as far as I know there aren’t any Illumos distributions for the Raspberry Pi. On the desktop I use Solus OS which is by far the slickest Linux based OS that I’ve had the pleasure to use but Solus’ focus is purely desktop. It’s looking like BSD then!

Err codemadness.org 70 i 56783
Err codemadness.org 70 i 56784 Err codemadness.org 70 i 56785
Err codemadness.org 70 i 56786

I believe FreeBSD is renowned for it’s top notch networking stack and so I wrote to the BSDNow show on Jupiter Broadcasting for some help but it seems that the FreeBSD chaps from the show are off on a jolly to some BSD conference or another(love the show by the way).

Err codemadness.org 70 i 56787
Err codemadness.org 70 i 56788 Err codemadness.org 70 i 56789
Err codemadness.org 70 i 56790

It looks like me and the luvverly NetBSD are on a date this Saturday. I’ve always had a secret love for NetBSD. She’s a beautiful, charming and promiscuous lover(looking at the supported architectures) and I just can’t stop going back to her despite her misgivings(ahem, zfs). Just my type of grrrl!

Err codemadness.org 70 i 56791
Err codemadness.org 70 i 56792 Err codemadness.org 70 i 56793
Err codemadness.org 70 i 56794

Let’s crack on…

Err codemadness.org 70 i 56795
Err codemadness.org 70 i 56796 Err codemadness.org 70 i 56797
    Err codemadness.org 70 i 56798
  • Follow the link above to see the rest of the article
  • Err codemadness.org 70 i 56799
Err codemadness.org 70 i 56800 Err codemadness.org 70 i 56801


Err codemadness.org 70 i 56802 Err codemadness.org 70 i 56803

##Beastie Bits

Err codemadness.org 70 i 56804 Err codemadness.org 70 i 56805 Err codemadness.org 70 i 56814 Err codemadness.org 70 i 56815


Err codemadness.org 70 i 56816 Err codemadness.org 70 i 56817

Tarsnap

Err codemadness.org 70 i 56818 Err codemadness.org 70 i 56819

##Feedback/Questions

Err codemadness.org 70 i 56820 Err codemadness.org 70 i 56821 Err codemadness.org 70 i 56827 Err codemadness.org 70 i 56828


Err codemadness.org 70 i 56829 Err codemadness.org 70 i 56830
    Err codemadness.org 70 i 56831
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 56832
Err codemadness.org 70 i 56833 Err codemadness.org 70 i 56834


]]> Err codemadness.org 70 i 56835
Err codemadness.org 70 i 56836 Err codemadness.org 70 i 56837 OpenZFS and DTrace updates in NetBSD, NetBSD network security stack audit, Performance of MySQL on ZFS, OpenSMTP results from p2k18, legacy Windows backup to FreeNAS, ZFS block size importance, and NetBSD as router on a stick.
Err codemadness.org 70 i 56838

Err codemadness.org 70 i 56839 Err codemadness.org 70 i 56840

##Headlines
Err codemadness.org 70 i 56841 ###ZFS and DTrace update lands in NetBSD

Err codemadness.org 70 i 56842 Err codemadness.org 70 i 56843
Err codemadness.org 70 i 56844

merge a new version of the CDDL dtrace and ZFS code. This changes the upstream vendor from OpenSolaris to FreeBSD, and this version is based on FreeBSD svn r315983.

Err codemadness.org 70 i 56845
Err codemadness.org 70 i 56846 Err codemadness.org 70 i 56847
    Err codemadness.org 70 i 56848
  • r315983 is from March 2017 (14 months ago), so there is still more work to do
  • Err codemadness.org 70 i 56849
Err codemadness.org 70 i 56850 Err codemadness.org 70 i 56851
Err codemadness.org 70 i 56852

in addition to the 10 years of improvements from upstream, this version also has these NetBSD-specific enhancements:

Err codemadness.org 70 i 56853
    Err codemadness.org 70 i 56854
  • dtrace FBT probes can now be placed in kernel modules.
  • Err codemadness.org 70 i 56855
  • ZFS now supports mmap().
  • Err codemadness.org 70 i 56856
Err codemadness.org 70 i 56857
Err codemadness.org 70 i 56858 Err codemadness.org 70 i 56859
    Err codemadness.org 70 i 56860
  • This brings NetBSD 10 years forward, and they should be able to catch the rest of the way up fairly quickly
  • Err codemadness.org 70 i 56861
Err codemadness.org 70 i 56862 Err codemadness.org 70 i 56863


Err codemadness.org 70 i 56864 Err codemadness.org 70 i 56865

###NetBSD network stack security audit

Err codemadness.org 70 i 56866 Err codemadness.org 70 i 56867
    Err codemadness.org 70 i 56868
  • Maxime Villard has been working on an audit of the NetBSD network stack, a project sponsored by The NetBSD Foundation, which has served all users of BSD-derived operating systems.
  • Err codemadness.org 70 i 56869
Err codemadness.org 70 i 56870 Err codemadness.org 70 i 56871
Err codemadness.org 70 i 56872

Over the last five months, hundreds of patches were committed to the source tree as a result of this work. Dozens of bugs were fixed, among which a good number of actual, remotely-triggerable vulnerabilities.

Err codemadness.org 70 i 56873
Err codemadness.org 70 i 56874 Err codemadness.org 70 i 56875
Err codemadness.org 70 i 56876

Changes were made to strengthen the networking subsystems and improve code quality: reinforce the mbuf API, add many KASSERTs to enforce assumptions, simplify packet handling, and verify compliance with RFCs. This was done in several layers of the NetBSD kernel, from device drivers to L4 handlers.
Err codemadness.org 70 i 56877 In the course of investigating several bugs discovered in NetBSD, I happened to look at the network stacks of other operating systems, to see whether they had already fixed the issues, and if so how. Needless to say, I found bugs there too.

Err codemadness.org 70 i 56878
Err codemadness.org 70 i 56879 Err codemadness.org 70 i 56880
    Err codemadness.org 70 i 56881
  • A lot of code is shared between the BSDs, so it is especially helpful when one finds a bug, to check the other BSDs and share the fix.
  • Err codemadness.org 70 i 56882
Err codemadness.org 70 i 56883 Err codemadness.org 70 i 56884
Err codemadness.org 70 i 56885

The IPv6 Buffer Overflow: The overflow allowed an attacker to write one byte of packet-controlled data into ‘packet_storage+off’, where ‘off’ could be approximately controlled too. This allowed at least a pretty bad remote DoS/Crash
Err codemadness.org 70 i 56886 The IPsec Infinite Loop: When receiving an IPv6-AH packet, the IPsec entry point was not correctly computing the length of the IPv6 suboptions, and this, before authentication. As a result, a specially-crafted IPv6 packet could trigger an infinite loop in the kernel (making it unresponsive). In addition this flaw allowed a limited buffer overflow - where the data being written was however not controllable by the attacker.
Err codemadness.org 70 i 56887 The IPPROTO Typo: While looking at the IPv6 Multicast code, I stumbled across a pretty simple yet pretty bad mistake: at one point the Pim6 entry point would return IPPROTO_NONE instead of IPPROTO_DONE. Returning IPPROTO_NONE was entirely wrong: it caused the kernel to keep iterating on the IPv6 packet chain, while the packet storage was already freed.
Err codemadness.org 70 i 56888 The PF Signedness Bug: A bug was found in NetBSD’s implementation of the PF firewall, that did not affect the other BSDs. In the initial PF code a particular macro was used as an alias to a number. This macro formed a signed integer. NetBSD replaced the macro with a sizeof(), which returns an unsigned result.
Err codemadness.org 70 i 56889 The NPF Integer Overflow: An integer overflow could be triggered in NPF, when parsing an IPv6 packet with large options. This could cause NPF to look for the L4 payload at the wrong offset within the packet, and it allowed an attacker to bypass any L4 filtering rule on IPv6.
Err codemadness.org 70 i 56890 The IPsec Fragment Attack: I noticed some time ago that when reassembling fragments (in either IPv4 or IPv6), the kernel was not removing the M_PKTHDR flag on the secondary mbufs in mbuf chains. This flag is supposed to indicate that a given mbuf is the head of the chain it forms; having the flag on secondary mbufs was suspicious.
Err codemadness.org 70 i 56891 What Now: Not all protocols and layers of the network stack were verified, because of time constraints, and also because of unexpected events: the recent x86 CPU bugs, which I was the only one able to fix promptly. A todo list will be left when the project end date is reached, for someone else to pick up. Me perhaps, later this year? We’ll see.
Err codemadness.org 70 i 56892 This security audit of NetBSD’s network stack is sponsored by The NetBSD Foundation, and serves all users of BSD-derived operating systems. The NetBSD Foundation is a non-profit organization, and welcomes any donations that help continue funding projects of this kind.

Err codemadness.org 70 i 56893
Err codemadness.org 70 i 56894 Err codemadness.org 70 i 56895


Err codemadness.org 70 i 56896 Err codemadness.org 70 i 56897

DigitalOcean

Err codemadness.org 70 i 56898 Err codemadness.org 70 i 56899

###MySQL on ZFS Performance

Err codemadness.org 70 i 56900 Err codemadness.org 70 i 56901
Err codemadness.org 70 i 56902

I used sysbench to create a table of 10M rows and then, using export/import tablespace, I copied it 329 times. I ended up with 330 tables for a total size of about 850GB. The dataset generated by sysbench is not very compressible, so I used lz4 compression in ZFS. For the other ZFS settings, I used what can be found in my earlier ZFS posts but with the ARC size limited to 1GB. I then used that plain configuration for the first benchmarks. Here are the results with the sysbench point-select benchmark, a uniform distribution and eight threads. The InnoDB buffer pool was set to 2.5GB.
Err codemadness.org 70 i 56903 In both cases, the load is IO bound. The disk is doing exactly the allowed 3000 IOPS. The above graph appears to be a clear demonstration that XFS is much faster than ZFS, right? But is that really the case? The way the dataset has been created is extremely favorable to XFS since there is absolutely no file fragmentation. Once you have all the files opened, a read IOP is just a single fseek call to an offset and ZFS doesn’t need to access any intermediate inode. The above result is about as fair as saying MyISAM is faster than InnoDB based only on table scan performance results of unfragmented tables and default configuration. ZFS is much less affected by the file level fragmentation, especially for point access type.

Err codemadness.org 70 i 56904
Err codemadness.org 70 i 56905 Err codemadness.org 70 i 56906
Err codemadness.org 70 i 56907

ZFS stores the files in B-trees in a very similar fashion as InnoDB stores data. To access a piece of data in a B-tree, you need to access the top level page (often called root node) and then one block per level down to a leaf-node containing the data. With no cache, to read something from a three levels B-tree thus requires 3 IOPS.

Err codemadness.org 70 i 56908
Err codemadness.org 70 i 56909 Err codemadness.org 70 i 56910
Err codemadness.org 70 i 56911

The extra IOPS performed by ZFS are needed to access those internal blocks in the B-trees of the files. These internal blocks are labeled as metadata. Essentially, in the above benchmark, the ARC is too small to contain all the internal blocks of the table files’ B-trees. If we continue the comparison with InnoDB, it would be like running with a buffer pool too small to contain the non-leaf pages. The test dataset I used has about 600MB of non-leaf pages, about 0.1% of the total size, which was well cached by the 3GB buffer pool. So only one InnoDB page, a leaf page, needed to be read per point-select statement.

Err codemadness.org 70 i 56912
Err codemadness.org 70 i 56913 Err codemadness.org 70 i 56914
Err codemadness.org 70 i 56915

To correctly set the ARC size to cache the metadata, you have two choices. First, you can guess values for the ARC size and experiment. Second, you can try to evaluate it by looking at the ZFS internal data. Let’s review these two approaches.

Err codemadness.org 70 i 56916
Err codemadness.org 70 i 56917 Err codemadness.org 70 i 56918
Err codemadness.org 70 i 56919

You’ll read/hear often the ratio 1GB of ARC for 1TB of data, which is about the same 0.1% ratio as for InnoDB. I wrote about that ratio a few times, having nothing better to propose. Actually, I found it depends a lot on the recordsize used. The 0.1% ratio implies a ZFS recordsize of 128KB. A ZFS filesystem with a recordsize of 128KB will use much less metadata than another one using a recordsize of 16KB because it has 8x fewer leaf pages. Fewer leaf pages require less B-tree internal nodes, hence less metadata. A filesystem with a recordsize of 128KB is excellent for sequential access as it maximizes compression and reduces the IOPS but it is poor for small random access operations like the ones MySQL/InnoDB does.

Err codemadness.org 70 i 56920
Err codemadness.org 70 i 56921 Err codemadness.org 70 i 56922
    Err codemadness.org 70 i 56923
  • In order to improve ZFS performance, I had 3 options:
  • Err codemadness.org 70 i 56924
  • Increase the ARC size to 7GB
  • Err codemadness.org 70 i 56925
  • Use a larger Innodb page size like 64KB
  • Err codemadness.org 70 i 56926
  • Add a L2ARC
  • Err codemadness.org 70 i 56927
Err codemadness.org 70 i 56928 Err codemadness.org 70 i 56929
Err codemadness.org 70 i 56930

I was reluctant to grow the ARC to 7GB, which was nearly half the overall system memory. At best, the ZFS performance would only match XFS. A larger InnoDB page size would increase the CPU load for decompression on an instance with only two vCPUs; not great either. The last option, the L2ARC, was the most promising.

Err codemadness.org 70 i 56931
Err codemadness.org 70 i 56932 Err codemadness.org 70 i 56933
Err codemadness.org 70 i 56934

ZFS is much more complex than XFS and EXT4 but, that also means it has more tunables/options. I used a simplistic setup and an unfair benchmark which initially led to poor ZFS results. With the same benchmark, very favorable to XFS, I added a ZFS L2ARC and that completely reversed the situation, more than tripling the ZFS results, now 66% above XFS.

Err codemadness.org 70 i 56935
Err codemadness.org 70 i 56936 Err codemadness.org 70 i 56937
    Err codemadness.org 70 i 56938
  • Conclusion
  • Err codemadness.org 70 i 56939
Err codemadness.org 70 i 56940 Err codemadness.org 70 i 56941
Err codemadness.org 70 i 56942

We have seen in this post why the general perception is that ZFS under-performs compared to XFS or EXT4. The presence of B-trees for the files has a big impact on the amount of metadata ZFS needs to handle, especially when the recordsize is small. The metadata consists mostly of the non-leaf pages (or internal nodes) of the B-trees. When properly cached, the performance of ZFS is excellent. ZFS allows you to optimize the use of EBS volumes, both in term of IOPS and size when the instance has fast ephemeral storage devices. Using the ephemeral device of an i3.large instance for the ZFS L2ARC, ZFS outperformed XFS by 66%.

Err codemadness.org 70 i 56943
Err codemadness.org 70 i 56944 Err codemadness.org 70 i 56945


Err codemadness.org 70 i 56946 Err codemadness.org 70 i 56947

###OpenSMTPD new config

Err codemadness.org 70 i 56948 Err codemadness.org 70 i 56949
TL;DR:	Err	codemadness.org	70
i 56950 OpenBSD #p2k18 hackathon took place at Epitech in Nantes.	Err	codemadness.org	70
i 56951 I was organizing the hackathon but managed to make progress on OpenSMTPD.	Err	codemadness.org	70
i 56952 As mentioned at EuroBSDCon the one-line per rule config format was a design error.	Err	codemadness.org	70
i 56953 A new configuration grammar is almost ready and the underlying structures are simplified.	Err	codemadness.org	70
i 56954 Refactor removes ~750 lines of code and solves _many_ issues that were side-effects of the design error.	Err	codemadness.org	70
i 56955 New features are going to be unlocked thanks to this.	Err	codemadness.org	70
i 56956 
Err codemadness.org 70 i 56957 Err codemadness.org 70 i 56958
    Err codemadness.org 70 i 56959
  • Anatomy of a design error
  • Err codemadness.org 70 i 56960
Err codemadness.org 70 i 56961 Err codemadness.org 70 i 56962
Err codemadness.org 70 i 56963

OpenSMTPD started ten years ago out of dissatisfaction with other solutions, mainly because I considered them way too complex for me not to get things wrong from time to time.
Err codemadness.org 70 i 56964 The initial configuration format was very different, I was inspired by pyr@’s hoststated, which eventually became relayd, and designed my configuration format with blocks enclosed by brackets.
Err codemadness.org 70 i 56965 When I first showed OpenSMTPD to pyr@, he convinced me that PF-like one-line rules would be awesome, and it was awesome indeed.
Err codemadness.org 70 i 56966 It helped us maintain our goal of simple configuration files, it helped fight feature creeping, it helped us gain popularity and become a relevant MTA, it helped us get where we are now 10 years later.
Err codemadness.org 70 i 56967 That being said, I believe this was a design error. A design error that could not have been predicted until we hit the wall to understand WHY this was an error. One-line rules are semantically wrong, they are SMTP wrong, they are wrong.
Err codemadness.org 70 i 56968 One-line rules are making the entire daemon more complex, preventing some features from being implemented, making others more complex than they should be, they no longer serve our goals.
Err codemadness.org 70 i 56969 To get to the point: we should move to two-line rules :-)

Err codemadness.org 70 i 56970
Err codemadness.org 70 i 56971 Err codemadness.org 70 i 56972

Anatomy of a design error
Err codemadness.org 70 i 56973 OpenSMTPD started ten years ago out of dissatisfaction with other solutions, mainly because I considered them way too complex for me not to get things wrong from time to time.

Err codemadness.org 70 i 56974 Err codemadness.org 70 i 56975

The initial configuration format was very different, I was inspired by pyr@’s hoststated, which eventually became relayd, and designed my configuration format with blocks enclosed by brackets.

Err codemadness.org 70 i 56976 Err codemadness.org 70 i 56977

When I first showed OpenSMTPD to pyr@, he convinced me that PF-like one-line rules would be awesome, and it was awesome indeed.

Err codemadness.org 70 i 56978 Err codemadness.org 70 i 56979

It helped us maintain our goal of simple configuration files, it helped fight feature creeping, it helped us gain popularity and become a relevant MTA, it helped us get where we are now 10 years later.

Err codemadness.org 70 i 56980 Err codemadness.org 70 i 56981

That being said, I believe this was a design error. A design error that could not have been predicted until we hit the wall to understand WHY this was an error. One-line rules are semantically wrong, they are SMTP wrong, they are wrong.

Err codemadness.org 70 i 56982 Err codemadness.org 70 i 56983

One-line rules are making the entire daemon more complex, preventing some features from being implemented, making others more complex than they should be, they no longer serve our goals.

Err codemadness.org 70 i 56984 Err codemadness.org 70 i 56985

To get to the point: we should move to two-line rules :-)

Err codemadness.org 70 i 56986 Err codemadness.org 70 i 56987
    Err codemadness.org 70 i 56988
  • The problem with one-line rules
  • Err codemadness.org 70 i 56989
Err codemadness.org 70 i 56990 Err codemadness.org 70 i 56991
Err codemadness.org 70 i 56992

OpenSMTPD decides to accept or reject messages based on one-line rules such as:

Err codemadness.org 70 i 56993
Err codemadness.org 70 i 56994 Err codemadness.org 70 i 56995

accept from any for domain poolp.org deliver to mbox

Err codemadness.org 70 i 56996 Err codemadness.org 70 i 56997
Err codemadness.org 70 i 56998

Which can essentially be split into three units:

Err codemadness.org 70 i 56999
Err codemadness.org 70 i 57000 Err codemadness.org 70 i 57001
    Err codemadness.org 70 i 57002
  • the decision: accept/reject
  • Err codemadness.org 70 i 57003
  • the matching: from any for domain poolp.org
  • Err codemadness.org 70 i 57004
  • the (default) action: deliver to mbox
  • Err codemadness.org 70 i 57005
Err codemadness.org 70 i 57006 Err codemadness.org 70 i 57007
Err codemadness.org 70 i 57008

To ensure that we meet the requirements of the transactions, the matching must be performed during the SMTP transaction before we take a decision for the recipient.
Err codemadness.org 70 i 57009 Given that the rule is atomic, that it doesn’t have an identifier and that the action is part of it, the two only ways to make sure we can remember the action to take later on at delivery time is to either:

Err codemadness.org 70 i 57010
Err codemadness.org 70 i 57011 Err codemadness.org 70 i 57012
    Err codemadness.org 70 i 57013
  • save the action in the envelope, which is what we do today
  • Err codemadness.org 70 i 57014
  • evaluate the envelope again at delivery
  • Err codemadness.org 70 i 57015
  • And this this where it gets tricky… both solutions are NOT ok.
  • Err codemadness.org 70 i 57016
Err codemadness.org 70 i 57017 Err codemadness.org 70 i 57018
Err codemadness.org 70 i 57019

The first solution, which we’ve been using for a decade, was to save the action within the envelope and kind of carve it in stone. This works fine… however it comes with the downsides that errors fixed in configuration files can’t be caught up by envelopes, that delivery action must be validated way ahead of time during the SMTP transaction which is much trickier, that the parsing of delivery methods takes place as the _smtpd user rather than the recipient user, and that envelope structures that are passed all over OpenSMTPD carry delivery-time informations, and more, and more, and more. The code becomes more complex in general, less safe in some particular places, and some areas are nightmarish to deal with because they have to deal with completely unrelated code that can’t be dealt with later in the code path.

Err codemadness.org 70 i 57020
Err codemadness.org 70 i 57021 Err codemadness.org 70 i 57022
Err codemadness.org 70 i 57023

The second solution can’t be done. An envelope may be the result of nested rules, for example an external client, hitting an alias, hitting a user with a .forward file resolving to a user. An envelope on disk may no longer match any rule or it may match a completely different rule If we could ensure that it matched the same rule, evaluating the ruleset may spawn new envelopes which would violate the transaction. Trying to imagine how we could work around this leads to more and more and more RFC violations, incoherent states, duplicate mails, etc…

Err codemadness.org 70 i 57024
Err codemadness.org 70 i 57025 Err codemadness.org 70 i 57026
Err codemadness.org 70 i 57027

There is simply no way to deal with this with atomic rules, the matching and the action must be two separate units that are evaluated at two different times, failure to do so will necessarily imply that you’re either using our first solution and all its downsides, or that you are currently in a world of pain trying to figure out why everything is burning around you. The minute the action is written to an on-disk envelope, you have failed.

Err codemadness.org 70 i 57028
Err codemadness.org 70 i 57029 Err codemadness.org 70 i 57030
Err codemadness.org 70 i 57031

A proper ruleset must define a set of matching patterns resolving to an action identifier that is carved in stone, AND a set of named action set that is resolved dynamically at delivery time.

Err codemadness.org 70 i 57032
Err codemadness.org 70 i 57033 Err codemadness.org 70 i 57034
    Err codemadness.org 70 i 57035
  • Follow the link above to see the rest of the article
  • Err codemadness.org 70 i 57036
Err codemadness.org 70 i 57037 Err codemadness.org 70 i 57038


Err codemadness.org 70 i 57039 Err codemadness.org 70 i 57040

Break

Err codemadness.org 70 i 57041 Err codemadness.org 70 i 57042

##News Roundup
Err codemadness.org 70 i 57043 ###Backing up a legacy Windows machine to a FreeNAS with rsync

Err codemadness.org 70 i 57044 Err codemadness.org 70 i 57045
Err codemadness.org 70 i 57046

I have some old Windows servers (10 years and counting) and I have been using rsync to back them up to my FreeNAS box. It has been working great for me.

Err codemadness.org 70 i 57047
Err codemadness.org 70 i 57048 Err codemadness.org 70 i 57049
Err codemadness.org 70 i 57050

First of all, I do have my Windows servers backup in virtualized format. However, those are only one-time snapshops that I run once in a while. These are classic ASP IIS web servers that I can easily put up on a new VM. However, many of these legacy servers generate gigabytes of data a day in their repositories. Running VM conversion daily is not ideal.

Err codemadness.org 70 i 57051
Err codemadness.org 70 i 57052 Err codemadness.org 70 i 57053
Err codemadness.org 70 i 57054

My solution was to use some sort of rsync solution just for the data repos. I’ve tried some applications that didn’t work too well with Samba shares and these old servers have slow I/O. Copying files to external sata or usb drive was not ideal. We’ve moved on from Windows to Linux and do not have any Windows file servers of capacity to provide network backups. Hence, I decided to use Delta Copy with FreeNAS. So here is a little write up on how to set it up. I have 4 Windows 2000 servers backing up daily with this method.

Err codemadness.org 70 i 57055
Err codemadness.org 70 i 57056 Err codemadness.org 70 i 57057
Err codemadness.org 70 i 57058

First, download Delta Copy and install it. It is open-source and pretty much free. It is basically a wrapper for cygwin’s rsync. When you install it, it will ask you to install the Server services which allows you to run it as a Rsync server on Windows. You don’t need to do this. Instead, you will be just using the Delta Copy Client application. But before we do that, we will need to configure our Rsync service for our Windows Clients on FreeNAS.

Err codemadness.org 70 i 57059
Err codemadness.org 70 i 57060 Err codemadness.org 70 i 57061
    Err codemadness.org 70 i 57062
  • In FreeNAS, go under Services , Select Rsync > Rsync Modules > Add Rsync Module.
  • Err codemadness.org 70 i 57063
  • Then fill out the form; giving the module a name and set the path. In my example, I simply called it WIN and linked it to a user called backupuser.
  • Err codemadness.org 70 i 57064
  • This process is much easier than trying to configure the daemon rsyncd.conf file by hand.
  • Err codemadness.org 70 i 57065
  • Now, on the Windows Client, start the DeltaCopy Client. You will create a new Profile.
  • Err codemadness.org 70 i 57066
  • You will need to enter the IP of the Rsync server (FreeNAS) and specify the module name which will be called “Virtual Directory Name.” When you pull the select menu, the list of Rsync Modules you created earlier in FreeNAS will populate.
  • Err codemadness.org 70 i 57067
  • You can set authentication. On the server, you can restrict by IP and do other things to lock down your rsync.
  • Err codemadness.org 70 i 57068
  • Next, you will add folders (and/or files) you want to synchronize.
  • Err codemadness.org 70 i 57069
  • Once the paths are set up, you can run a sync by right clicking the profile name.
  • Err codemadness.org 70 i 57070
  • Here, I made a test sync to a home folder of a virtualized windows box. As you can see, I mounted the rsync volume on my mac to see the progress. The rsync worked beautifully. DeltaCopy did what it was told.
  • Err codemadness.org 70 i 57071
  • Once you get everything working. The next thing to do is set schedules. If you done tasks schedules in Windows before, it is pretty straightforward. DeltaCopy has a link in the application to directly create a new task for you. I set my backups to run nightly and it has been working great.
  • Err codemadness.org 70 i 57072
Err codemadness.org 70 i 57073 Err codemadness.org 70 i 57074
Err codemadness.org 70 i 57075

There you have it. Windows rsync to FreeNAS using DeltaCopy.
Err codemadness.org 70 i 57076 The nice thing about FreeNAS is you don’t have to modify /etc/rsyncd.conf files. Everything can be done in the web admin.

Err codemadness.org 70 i 57077
Err codemadness.org 70 i 57078 Err codemadness.org 70 i 57079


Err codemadness.org 70 i 57080 Err codemadness.org 70 i 57081

iXsystems

Err codemadness.org 70 i 57082 Err codemadness.org 70 i 57083

###How to write ATF tests for NetBSD

Err codemadness.org 70 i 57084 Err codemadness.org 70 i 57085
Err codemadness.org 70 i 57086

I have recently started contributing to the amazing NetBSD foundation. I was thinking of trying out a new OS for a long time. Switching to the NetBSD OS has been a fun change.

Err codemadness.org 70 i 57087
Err codemadness.org 70 i 57088 Err codemadness.org 70 i 57089
Err codemadness.org 70 i 57090

My first contribution to the NetBSD foundation was adding regression tests for the Address Sanitizer (ASan) in the Automated Testing Framework(ATF) which NetBSD has. I managed to complete it with the help of my really amazing mentor Kamil. This post is gonna be about the ATF framework that NetBSD has and how to you can add multiple tests with ease.

Err codemadness.org 70 i 57091
Err codemadness.org 70 i 57092 Err codemadness.org 70 i 57093
    Err codemadness.org 70 i 57094
  • Intro
  • Err codemadness.org 70 i 57095
Err codemadness.org 70 i 57096 Err codemadness.org 70 i 57097
Err codemadness.org 70 i 57098

In ATF tests we will basically be talking about test programs which are a suite of test cases for a specific application or program.

Err codemadness.org 70 i 57099
Err codemadness.org 70 i 57100 Err codemadness.org 70 i 57101
    Err codemadness.org 70 i 57102
  • The ATF suite of Commands
  • Err codemadness.org 70 i 57103
Err codemadness.org 70 i 57104 Err codemadness.org 70 i 57105
Err codemadness.org 70 i 57106

There are a variety of commands that the atf suite offers. These include :

Err codemadness.org 70 i 57107
Err codemadness.org 70 i 57108 Err codemadness.org 70 i 57109
    Err codemadness.org 70 i 57110
  • Err codemadness.org 70 i 57111

    atf-check: The versatile command that is a vital part of the checking process. man page

    Err codemadness.org 70 i 57112
  • Err codemadness.org 70 i 57113
  • Err codemadness.org 70 i 57114

    atf-run: Command used to run a test program. man page

    Err codemadness.org 70 i 57115
  • Err codemadness.org 70 i 57116
  • Err codemadness.org 70 i 57117

    atf-fail: Report failure of a test case.

    Err codemadness.org 70 i 57118
  • Err codemadness.org 70 i 57119
  • Err codemadness.org 70 i 57120

    atf-report: used to pretty print the atf-run. man page

    Err codemadness.org 70 i 57121
  • Err codemadness.org 70 i 57122
  • Err codemadness.org 70 i 57123

    atf-set: To set atf test conditions.

    Err codemadness.org 70 i 57124
  • Err codemadness.org 70 i 57125
  • Err codemadness.org 70 i 57126

    We will be taking a better look at the syntax and usage later.

    Err codemadness.org 70 i 57127
  • Err codemadness.org 70 i 57128
  • Err codemadness.org 70 i 57129

    Let’s start with the Basics

    Err codemadness.org 70 i 57130
  • Err codemadness.org 70 i 57131
Err codemadness.org 70 i 57132 Err codemadness.org 70 i 57133
Err codemadness.org 70 i 57134

The ATF testing framework comes preinstalled with a default NetBSD installation. It is used to write tests for various applications and commands in NetBSD. One can write the Test programs in either the C language or in shell script. In this post I will be dealing with the Bash part.

Err codemadness.org 70 i 57135
Err codemadness.org 70 i 57136 Err codemadness.org 70 i 57137
    Err codemadness.org 70 i 57138
  • Follow the link above to see the rest of the article
  • Err codemadness.org 70 i 57139
Err codemadness.org 70 i 57140 Err codemadness.org 70 i 57141


Err codemadness.org 70 i 57142 Err codemadness.org 70 i 57143

###The Importance of ZFS Block Size

Err codemadness.org 70 i 57144 Err codemadness.org 70 i 57145
    Err codemadness.org 70 i 57146
  • Warning! WARNING! Don’t just do things because some random blog says so
  • Err codemadness.org 70 i 57147
Err codemadness.org 70 i 57148 Err codemadness.org 70 i 57149
Err codemadness.org 70 i 57150

One of the important tunables in ZFS is the recordsize (for normal datasets) and volblocksize (for zvols). These default to 128KB and 8KB respectively.
Err codemadness.org 70 i 57151 As I understand it, this is the unit of work in ZFS. If you modify one byte in a large file with the default 128KB record size, it causes the whole 128KB to be read in, one byte to be changed, and a new 128KB block to be written out.
Err codemadness.org 70 i 57152 As a result, the official recommendation is to use a block size which aligns with the underlying workload: so for example if you are using a database which reads and writes 16KB chunks then you should use a 16KB block size, and if you are running VMs containing an ext4 filesystem, which uses a 4KB block size, you should set a 4KB block size
Err codemadness.org 70 i 57153 You can see it has a 16GB total file size, of which 8.5G has been touched and consumes space - that is, it’s a “sparse” file. The used space is also visible by looking at the zfs filesystem which this file resides in
Err codemadness.org 70 i 57154 Then I tried to copy the image file whilst maintaining its “sparseness”, that is, only touching the blocks of the zvol which needed to be touched. The original used only 8.42G, but the copy uses 14.6GB - almost the entire 16GB has been touched! What’s gone wrong?
Err codemadness.org 70 i 57155 I finally realised that the difference between the zfs filesystem and the zvol is the block size. I recreated the zvol with a 128K block size
Err codemadness.org 70 i 57156 That’s better. The disk usage of the zvol is now exactly the same as for the sparse file in the filesystem dataset

Err codemadness.org 70 i 57157
Err codemadness.org 70 i 57158 Err codemadness.org 70 i 57159
    Err codemadness.org 70 i 57160
  • It does impact the read speed too. 4K blocks took 5:52, and 128K blocks took 3:20
  • Err codemadness.org 70 i 57161
  • Part of this is the amount of metadata that has to be read, see the MySQL benchmarks from earlier in the show
  • Err codemadness.org 70 i 57162
  • And yes, using a larger block size will increase the compression efficiency, since the compressor has more redundant data to optimize.
  • Err codemadness.org 70 i 57163
  • Some of the savings, and the speedup is because a lot less metadata had to be written
  • Err codemadness.org 70 i 57164
  • Your zpool layout also plays a big role, if you use 4Kn disks, and RAID-Z2, using a volblocksize of 8k will actually result in a large amount of wasted space because of RAID-Z padding. Although, if you enable compression, your 8k records may compress to only 4k, and then all the numbers change again.
  • Err codemadness.org 70 i 57165
Err codemadness.org 70 i 57166 Err codemadness.org 70 i 57167


Err codemadness.org 70 i 57168 Err codemadness.org 70 i 57169

###Using a Raspberry Pi 2 as a Router on a Stick Starring NetBSD

Err codemadness.org 70 i 57170 Err codemadness.org 70 i 57171
    Err codemadness.org 70 i 57172
  • Sorry we didn’t answer you quickly enough
  • Err codemadness.org 70 i 57173
Err codemadness.org 70 i 57174 Err codemadness.org 70 i 57175
Err codemadness.org 70 i 57176

A few weeks ago I set about upgrading my feeble networking skills by playing around with a Cisco 2970 switch. I set up a couple of VLANs and found the urge to set up a router to route between them. The 2970 isn’t a modern layer 3 switch so what am I to do?

Err codemadness.org 70 i 57177
Err codemadness.org 70 i 57178 Err codemadness.org 70 i 57179
Err codemadness.org 70 i 57180

Why not make use of the Raspberry Pi 2 that I’ve never used and put it to some good use as a ‘router on a stick’.

Err codemadness.org 70 i 57181
Err codemadness.org 70 i 57182 Err codemadness.org 70 i 57183
Err codemadness.org 70 i 57184

I could install a Linux based OS as I am quite familiar with it but where’s the fun in that? In my home lab I use SmartOS which by the way is a shit hot hypervisor but as far as I know there aren’t any Illumos distributions for the Raspberry Pi. On the desktop I use Solus OS which is by far the slickest Linux based OS that I’ve had the pleasure to use but Solus’ focus is purely desktop. It’s looking like BSD then!

Err codemadness.org 70 i 57185
Err codemadness.org 70 i 57186 Err codemadness.org 70 i 57187
Err codemadness.org 70 i 57188

I believe FreeBSD is renowned for it’s top notch networking stack and so I wrote to the BSDNow show on Jupiter Broadcasting for some help but it seems that the FreeBSD chaps from the show are off on a jolly to some BSD conference or another(love the show by the way).

Err codemadness.org 70 i 57189
Err codemadness.org 70 i 57190 Err codemadness.org 70 i 57191
Err codemadness.org 70 i 57192

It looks like me and the luvverly NetBSD are on a date this Saturday. I’ve always had a secret love for NetBSD. She’s a beautiful, charming and promiscuous lover(looking at the supported architectures) and I just can’t stop going back to her despite her misgivings(ahem, zfs). Just my type of grrrl!

Err codemadness.org 70 i 57193
Err codemadness.org 70 i 57194 Err codemadness.org 70 i 57195
Err codemadness.org 70 i 57196

Let’s crack on…

Err codemadness.org 70 i 57197
Err codemadness.org 70 i 57198 Err codemadness.org 70 i 57199
    Err codemadness.org 70 i 57200
  • Follow the link above to see the rest of the article
  • Err codemadness.org 70 i 57201
Err codemadness.org 70 i 57202 Err codemadness.org 70 i 57203


Err codemadness.org 70 i 57204 Err codemadness.org 70 i 57205

##Beastie Bits

Err codemadness.org 70 i 57206 Err codemadness.org 70 i 57207 Err codemadness.org 70 i 57216 Err codemadness.org 70 i 57217


Err codemadness.org 70 i 57218 Err codemadness.org 70 i 57219

Tarsnap

Err codemadness.org 70 i 57220 Err codemadness.org 70 i 57221

##Feedback/Questions

Err codemadness.org 70 i 57222 Err codemadness.org 70 i 57223 Err codemadness.org 70 i 57229 Err codemadness.org 70 i 57230


Err codemadness.org 70 i 57231 Err codemadness.org 70 i 57232
    Err codemadness.org 70 i 57233
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 57234
Err codemadness.org 70 i 57235 Err codemadness.org 70 i 57236


]]> Err codemadness.org 70 i 57237
Err codemadness.org 70 i 57238 https://fireside.fm/player/v2/FYhhasNR+iWHrf-HR Err codemadness.org 70 i 57239 Err codemadness.org 70 i 57240 ]]> Err codemadness.org 70 i 57241 Err codemadness.org 70 i 57242
Err codemadness.org 70 i 57243 Err codemadness.org 70 i 57244 Episode 248: Show Me The Mooney | BSD Now 248 Err codemadness.org 70 i 57245 https://www.bsdnow.tv/248 Err codemadness.org 70 i 57246 http://feed.jupiter.zone/bsdnow#entry-2016 Err codemadness.org 70 i 57247 Tue, 29 May 2018 11:30:00 -0700 Err codemadness.org 70 i 57248 Allan Jude Err codemadness.org 70 i 57249 Err codemadness.org 70 i 57250 full Err codemadness.org 70 i 57251 Allan Jude Err codemadness.org 70 i 57252 DragonflyBSD release 5.2.1 is here, BPF kernel exploit writeup, Remote Debugging the running OpenBSD kernel, interview with Patrick Mooney, FreeBSD buildbot setup in a jail, dumping your USB, and 5 years of gaming on FreeBSD. Err codemadness.org 70 i 57253 1:44:33 Err codemadness.org 70 i 57254 no Err codemadness.org 70 i 57255 Err codemadness.org 70 i 57256 DragonflyBSD release 5.2.1 is here, BPF kernel exploit writeup, Remote Debugging the running OpenBSD kernel, interview with Patrick Mooney, FreeBSD buildbot setup in a jail, dumping your USB, and 5 years of gaming on FreeBSD. Err codemadness.org 70 i 57257 <h2>Headlines</h2> Err codemadness.org 70 i 57258 <h3><a href="https://www.dragonflybsd.org/release52/">DragonFlyBSD: release52 (w/stable HAMMER2, as default root)</a></h3> Err codemadness.org 70 i 57259 Err codemadness.org 70 i 57260 <ul> Err codemadness.org 70 i 57261 <li>DragonflyBSD 5.2.1 was released on May 21, 2018</li> Err codemadness.org 70 i 57262 <li>> Big Ticket items: Err codemadness.org 70 i 57263 Err codemadness.org 70 i 57264 Err codemadness.org 70 i 57265 <blockquote> Err codemadness.org 70 i 57266 Meltdown and Spectre mitigation support Err codemadness.org 70 i 57267 Meltdown isolation and spectre mitigation support added. Meltdown mitigation is automatically enabled for all Intel cpus. Spectre mitigation must be enabled manually via sysctl if desired, using sysctls machdep.spectre<em>mitigation and machdep.meltdown</em>mitigation. Err codemadness.org 70 i 57268 HAMMER2 Err codemadness.org 70 i 57269 H2 has received a very large number of bug fixes and performance improvements. We can now recommend H2 as the default root filesystem in non-clustered mode. Err codemadness.org 70 i 57270 Clustered support is not yet available. Err codemadness.org 70 i 57271 ipfw Updates Err codemadness.org 70 i 57272 Implement state based "redirect", i.e. without using libalias. Err codemadness.org 70 i 57273 ipfw now supports all possible ICMP types. Err codemadness.org 70 i 57274 Fix ICMP<em>MAXTYPE assumptions (now 40 as of this release). Err codemadness.org 70 i 57275 Improved graphics support Err codemadness.org 70 i 57276 The drm/i915 kernel driver has been updated to support Intel Coffeelake GPUs Err codemadness.org 70 i 57277 Add 24-bit pixel format support to the EFI frame buffer code. Err codemadness.org 70 i 57278 Significantly improve fbio support for the "scfb" XOrg driver. This allows EFI frame buffers to be used by X in situations where we do not otherwise support the GPU. Err codemadness.org 70 i 57279 Partly implement the FBIO</em>BLANK ioctl for display powersaving. Err codemadness.org 70 i 57280 Syscons waits for drm modesetting at appropriate places, avoiding races.</li> Err codemadness.org 70 i 57281 </ul> Err codemadness.org 70 i 57282 <hr /> Err codemadness.org 70 i 57283 </blockquote> Err codemadness.org 70 i 57284 Err codemadness.org 70 i 57285 <h3><a href="https://github.com/Cryptogenic/Exploit-Writeups/blob/master/FreeBSD/PS4%204.55%20BPF%20Race%20Condition%20Kernel%20Exploit%20Writeup.md">PS4 4.55 BPF Race Condition Kernel Exploit Writeup</a></h3> Err codemadness.org 70 i 57286 Err codemadness.org 70 i 57287 Err codemadness.org 70 i 57288 Err codemadness.org 70 i 57289 <blockquote> Err codemadness.org 70 i 57290 <p>Note: While this bug is primarily interesting for exploitation on the PS4, this bug can also potentially be exploited on other unpatched platforms using FreeBSD if the attacker has read/write permissions on /dev/bpf, or if they want to escalate from root user to kernel code execution. As such, I've published it under the "FreeBSD" folder and not the "PS4" folder.</p> Err codemadness.org 70 i 57291 </blockquote> Err codemadness.org 70 i 57292 Err codemadness.org 70 i 57293 <ul> Err codemadness.org 70 i 57294 <li>Introduction</li> Err codemadness.org 70 i 57295 </ul> Err codemadness.org 70 i 57296 Err codemadness.org 70 i 57297 <blockquote> Err codemadness.org 70 i 57298 <p>Welcome to the kernel portion of the PS4 4.55FW full exploit chain write-up. This bug was found by qwerty, and is fairly unique in the way it's exploited, so I wanted to do a detailed write-up on how it worked. The full source of the exploit can be found <a href="https://github.com/Cryptogenic/PS4-4.55-Kernel-Exploit">here</a>. I've previously covered the webkit exploit implementation for userland access <a href="https://github.com/Cryptogenic/Exploit-Writeups/blob/master/WebKit/setAttributeNodeNS%20UAF%20Write-up.md">here</a>.</p> Err codemadness.org 70 i 57299 </blockquote> Err codemadness.org 70 i 57300 Err codemadness.org 70 i 57301 <ul> Err codemadness.org 70 i 57302 <li>FreeBSD or Sony's fault? Why not both...</li> Err codemadness.org 70 i 57303 </ul> Err codemadness.org 70 i 57304 Err codemadness.org 70 i 57305 <blockquote> Err codemadness.org 70 i 57306 <p>Interestingly, this bug is actually a FreeBSD bug and was not (at least directly) introduced by Sony code. While this is a FreeBSD bug however, it's not very useful for most systems because the /dev/bpf device driver is root-owned, and the permissions for it are set to 0600 (meaning owner has read/write privileges, and nobody else does) - though it can be used for escalating from root to kernel mode code execution. However, let’s take a look at the make_dev() call inside the PS4 kernel for /dev/bpf (taken from a 4.05 kernel dump).</p> Err codemadness.org 70 i 57307 </blockquote> Err codemadness.org 70 i 57308 Err codemadness.org 70 i 57309 <p><code> Err codemadness.org 70 i 57310 seg000:FFFFFFFFA181F15B lea rdi, unk_FFFFFFFFA2D77640 Err codemadness.org 70 i 57311 seg000:FFFFFFFFA181F162 lea r9, aBpf ; "bpf" Err codemadness.org 70 i 57312 seg000:FFFFFFFFA181F169 mov esi, 0 Err codemadness.org 70 i 57313 seg000:FFFFFFFFA181F16E mov edx, 0 Err codemadness.org 70 i 57314 seg000:FFFFFFFFA181F173 xor ecx, ecx Err codemadness.org 70 i 57315 seg000:FFFFFFFFA181F175 mov r8d, 1B6h Err codemadness.org 70 i 57316 seg000:FFFFFFFFA181F17B xor eax, eax Err codemadness.org 70 i 57317 seg000:FFFFFFFFA181F17D mov cs:qword_FFFFFFFFA34EC770, 0 Err codemadness.org 70 i 57318 seg000:FFFFFFFFA181F188 call make_dev Err codemadness.org 70 i 57319 </code></p> Err codemadness.org 70 i 57320 Err codemadness.org 70 i 57321 <blockquote> Err codemadness.org 70 i 57322 <p>We see UID 0 (the UID for the root user) getting moved into the register for the 3rd argument, which is the owner argument. However, the permissions bits are being set to 0x1B6, which in octal is 0666. This means anyone can open /dev/bpf with read/write privileges. I’m not sure why this is the case, qwerty speculates that perhaps bpf is used for LAN gaming. In any case, this was a poor design decision because bpf is usually considered privileged, and should not be accessible to a process that is completely untrusted, such as WebKit. On most platforms, permissions for /dev/bpf will be set to 0x180, or 0600.</p> Err codemadness.org 70 i 57323 </blockquote> Err codemadness.org 70 i 57324 Err codemadness.org 70 i 57325 <ul> Err codemadness.org 70 i 57326 <li>Race Conditions - What are they?</li> Err codemadness.org 70 i 57327 </ul> Err codemadness.org 70 i 57328 Err codemadness.org 70 i 57329 <blockquote> Err codemadness.org 70 i 57330 <p>The class of the bug abused in this exploit is known as a "race condition". Before we get into bug specifics, it's important for the reader to understand what race conditions are and how they can be an issue (especially in something like a kernel). Often in complex software (such as a kernel), resources will be shared (or "global"). This means other threads could potentially execute code that will access some resource that could be accessed by another thread at the same point in time. What happens if one thread accesses this resource while another thread does without exclusive access? Race conditions are introduced.</p> Err codemadness.org 70 i 57331 Err codemadness.org 70 i 57332 <p>Race conditions are defined as possible scenarios where events happen in a sequence different than the developer intended which leads to undefined behavior. In simple, single-threaded programs, this is not an issue because execution is linear. In more complex programs where code can be running in parallel however, this becomes a real issue. To prevent these problems, atomic instructions and locking mechanisms were introduced. When one thread wants to access a critical resource, it will attempt to acquire a "lock". If another thread is already using this resource, generally the thread attempting to acquire the lock will wait until the other thread is finished with it. Each thread must release the lock to the resource after they're done with it, failure to do so could result in a deadlock.</p> Err codemadness.org 70 i 57333 Err codemadness.org 70 i 57334 <p>While locking mechanisms such as mutexes have been introduced, developers sometimes struggle to use them properly. For example, what if a piece of shared data gets validated and processed, but while the processing of the data is locked, the validation is not? There is a window between validation and locking where that data can change, and while the developer thinks the data has been validated, it could be substituted with something malicious after it is validated, but before it is used. Parallel programming can be difficult, especially when, as a developer, you also want to factor in the fact that you don't want to put too much code in between locking and unlocking as it can impact performance.</p> Err codemadness.org 70 i 57335 </blockquote> Err codemadness.org 70 i 57336 Err codemadness.org 70 i 57337 <ul> Err codemadness.org 70 i 57338 <li>See <a href="https://github.com/Cryptogenic/Exploit-Writeups/blob/master/FreeBSD/PS4%204.55%20BPF%20Race%20Condition%20Kernel%20Exploit%20Writeup.md">article</a> for the rest</li> Err codemadness.org 70 i 57339 </ul> Err codemadness.org 70 i 57340 Err codemadness.org 70 i 57341 <hr /> Err codemadness.org 70 i 57342 <p><strong>iXsystems</strong></p> Err codemadness.org 70 i 57343 Err codemadness.org 70 i 57344 <h3><a href="http://bijanebrahimi.github.io/blog/remote-debugging-the-running-openbsd-kernel.html">Remote Debugging the running OpenBSD kernel</a></h3> Err codemadness.org 70 i 57345 Err codemadness.org 70 i 57346 <ul> Err codemadness.org 70 i 57347 <li>Subtitled: A way to understand the OpenBSD internals Err codemadness.org 70 i 57348 +> The Problem Err codemadness.org 70 i 57349 +> A few month ago, I tried porting the FreeBSD kdb along with it's gdb stub implementations to OpenBSD as a practice of learning the internals of an BSD operating system. The ddb code in both FreeBSD and OpenBSD looks pretty much the same and the GDB Remote Serial Protocol looks very minimal. Err codemadness.org 70 i 57350 +> But sadly I got very busy and the work is stalled but I'm planning on resuming the attempt as soon as I get the chance, But there is an alternative way to Debugging the OpenBSD kernel via QEMU. What I did below is basically the same with a few minor changes which I hope to describe it as best. Err codemadness.org 70 i 57351 +> Installing OpenBSD on Qemu Err codemadness.org 70 i 57352 +> For debugging the kernel, we need a working OpenBSD system running on Qemu. I chose to create a raw disk file to be able to easily mount it later via the host and copy the custom kernel onto it. Err codemadness.org 70 i 57353 Err codemadness.org 70 i 57354 Err codemadness.org 70 i 57355 <blockquote> Err codemadness.org 70 i 57356 $ qemu-img create -f raw disk.raw 5G Err codemadness.org 70 i 57357 $ qemu-system-x86<em>64 -m 256M \ Err codemadness.org 70 i 57358 -drive format=raw,file=install63.fs \ Err codemadness.org 70 i 57359 -drive format=raw,file=disk.raw Err codemadness.org 70 i 57360 +> Custom Kernel Err codemadness.org 70 i 57361 +> To debug the kernel, we need a version of the kernel with debugging symbols and for that we have to recompile it first. The process is documented at Building the System from Source: Err codemadness.org 70 i 57362 ... Err codemadness.org 70 i 57363 +> Then we can copy the bsd kernel to the guest machine and keep the bsd.gdb on the host to start the remote debugging via gdb. Err codemadness.org 70 i 57364 +> Remote debugging kernel Err codemadness.org 70 i 57365 +> Now it's to time to boot the guest with the new custom kernel. Remember that the -s argument enables the gdb server on qemu on localhost port 1234 by default: Err codemadness.org 70 i 57366 $ qemu-system-x86</em>64 -m 256M -s \ Err codemadness.org 70 i 57367 -net nic -net user \ Err codemadness.org 70 i 57368 -drive format=raw,file=install63.fs \ Err codemadness.org 70 i 57369 +> Now to finally attach to the running kernel:</li> Err codemadness.org 70 i 57370 </ul> Err codemadness.org 70 i 57371 <hr /> Err codemadness.org 70 i 57372 </blockquote> Err codemadness.org 70 i 57373 Err codemadness.org 70 i 57374 <h2>Interview - Patrick Mooney - Software Engineer <a href="pmooney@pfmooney.com">pmooney@pfmooney.com</a> / <a href="https://twitter.com/pfmooney">@pfmooney</a></h2> Err codemadness.org 70 i 57375 Err codemadness.org 70 i 57376 <ul> Err codemadness.org 70 i 57377 <li>BR: How did you first get introduced to UNIX?</li> Err codemadness.org 70 i 57378 <li>AJ: What got you started contributing to an open source project?</li> Err codemadness.org 70 i 57379 <li>BR: What sorts of things have you worked on in the past?</li> Err codemadness.org 70 i 57380 <li>AJ: Can you tell us more about what attracted you to illumos?</li> Err codemadness.org 70 i 57381 <li>BR: How did you get interested in, and started with, systems development?</li> Err codemadness.org 70 i 57382 <li>AJ: When did you first get interested in bhyve?</li> Err codemadness.org 70 i 57383 <li>BR: How much work was it to take the years-old port of bhyve and get it working on modern IllumOS?</li> Err codemadness.org 70 i 57384 <li>AJ: What was the process for getting the bhyve port caught up to current FreeBSD?</li> Err codemadness.org 70 i 57385 <li>BR: How usable is bhyve on illumOS?</li> Err codemadness.org 70 i 57386 <li>AJ: What area are you most interested in improving in bhyve?</li> Err codemadness.org 70 i 57387 <li>BR: Do you think the FreeBSD and illumos versions of bhyve will stay in sync with each other?</li> Err codemadness.org 70 i 57388 <li>AJ: What do you do for fun?</li> Err codemadness.org 70 i 57389 <li>BR: Anything else you want to mention?</li> Err codemadness.org 70 i 57390 </ul> Err codemadness.org 70 i 57391 Err codemadness.org 70 i 57392 <hr /> Err codemadness.org 70 i 57393 <h2>News Roundup</h2> Err codemadness.org 70 i 57394 Err codemadness.org 70 i 57395 <h3><a href="https://andidog.de/blog/2018-04-22-buildbot-setup-freebsd-jails">Setting up buildbot in FreeBSD Jails</a></h3> Err codemadness.org 70 i 57396 Err codemadness.org 70 i 57397 <blockquote> Err codemadness.org 70 i 57398 <p>In this article, I would like to present a tutorial to set up buildbot, a continuous integration (CI) software (like Jenkins, drone, etc.), making use of FreeBSD’s containerization mechanism "jails". We will cover terminology, rationale for using both buildbot and jails together, and installation steps. At the end, you will have a working buildbot instance using its sample build configuration, ready to play around with your own CI plans (or even CD, it’s very flexible!). Some hints for production-grade installations are given, but the tutorial steps are meant for a test environment (namely a virtual machine). Buildbot’s configuration and detailed concepts are not in scope here.</p> Err codemadness.org 70 i 57399 </blockquote> Err codemadness.org 70 i 57400 Err codemadness.org 70 i 57401 <ul> Err codemadness.org 70 i 57402 <li><p>Table of contents</p> Err codemadness.org 70 i 57403 Err codemadness.org 70 i 57404 <ul><li>Choosing host operating system and version for buildbot</li> Err codemadness.org 70 i 57405 <li>Create a FreeBSD playground</li> Err codemadness.org 70 i 57406 <li>Introduction to jails</li> Err codemadness.org 70 i 57407 <li>Overview of buildbot</li> Err codemadness.org 70 i 57408 <li>Set up jails</li> Err codemadness.org 70 i 57409 <li>Install buildbot master</li> Err codemadness.org 70 i 57410 <li>Run buildbot master</li> Err codemadness.org 70 i 57411 <li>Install buildbot worker</li> Err codemadness.org 70 i 57412 <li>Run buildbot worker</li> Err codemadness.org 70 i 57413 <li>Set up web server nginx to access buildbot UI</li> Err codemadness.org 70 i 57414 <li>Run your first build</li> Err codemadness.org 70 i 57415 <li>Production hints</li> Err codemadness.org 70 i 57416 <li>Finished!</li></ul></li> Err codemadness.org 70 i 57417 <li><p>Choosing host operating system and version for buildbot</p></li> Err codemadness.org 70 i 57418 </ul> Err codemadness.org 70 i 57419 Err codemadness.org 70 i 57420 <blockquote> Err codemadness.org 70 i 57421 <p>We choose the released version of FreeBSD (11.1-RELEASE at the moment). There is no particular reason for it, and as a matter of fact buildbot as a Python-based server is very cross-platform; therefore the underlying OS platform and version should not make a large difference.</p> Err codemadness.org 70 i 57422 Err codemadness.org 70 i 57423 <p>It will make a difference for what you do with buildbot, however. For instance, poudriere is the de-facto standard for building packages from source on FreeBSD. Builds run in jails which may be any FreeBSD base system version older or equal to the host’s version (reason will be explained below). In other words, if the host is FreeBSD 11.1, build jails created by poudriere could e.g. use 9.1, 10.3, 11.0, 11.1, but potentially not version 12 or newer because of incompatibilities with the host’s kernel (jails do not run their own kernel as full virtual machines do). To not prolong this article over the intended scope, the details of which nice things could be done or automated with buildbot are not covered.</p> Err codemadness.org 70 i 57424 Err codemadness.org 70 i 57425 <p>Package names on the FreeBSD platform are independent of the OS version, since external software (as in: not part of base system) is maintained in FreeBSD ports. So, if your chosen FreeBSD version (here: 11) is still officially supported, the packages mentioned in this post should work. In the unlikely event of package name changes before you read this article, you should be able to find the actual package names like pkg search buildbot.</p> Err codemadness.org 70 i 57426 Err codemadness.org 70 i 57427 <p>Other operating systems like the various Linux distributions will use different package names but might also offer buildbot pre-packaged. If not, the buildbot installation manual offers steps to install it manually. In such case, the downside is that you will have to maintain and update the buildbot modules outside the stability and (semi-)automatic updates of your OS packages.</p> Err codemadness.org 70 i 57428 </blockquote> Err codemadness.org 70 i 57429 Err codemadness.org 70 i 57430 <ul> Err codemadness.org 70 i 57431 <li>See <a href="https://andidog.de/blog/2018-04-22-buildbot-setup-freebsd-jails">article</a> for the rest</li> Err codemadness.org 70 i 57432 </ul> Err codemadness.org 70 i 57433 Err codemadness.org 70 i 57434 <hr /> Err codemadness.org 70 i 57435 <p><strong>DigitalOcean</strong></p> Err codemadness.org 70 i 57436 Err codemadness.org 70 i 57437 <h3><a href="http://www.grenadille.net/post/2018/03/29/Dumping-your-USB">Dumping your USB</a></h3> Err codemadness.org 70 i 57438 Err codemadness.org 70 i 57439 <blockquote> Err codemadness.org 70 i 57440 <p>One of the many new features of OpenBSD 6.3 is the possibility to dump USB traffic to userland via bpf(4). This can be done with tcpdump(8) by specifying a USB bus as interface:</p> Err codemadness.org 70 i 57441 </blockquote> Err codemadness.org 70 i 57442 Err codemadness.org 70 i 57443 <p>```</p> Err codemadness.org 70 i 57444 Err codemadness.org 70 i 57445 <h1>tcpdump -Xx -i usb0</h1> Err codemadness.org 70 i 57446 Err codemadness.org 70 i 57447 <p>tcpdump: listening on usb0, link-type USBPCAP Err codemadness.org 70 i 57448 12:28:03.317945 bus 0 &lt; addr 1: ep1 intr 2 Err codemadness.org 70 i 57449 0000: 0400 ..</p> Err codemadness.org 70 i 57450 Err codemadness.org 70 i 57451 <p>12:28:03.318018 bus 0 > addr 1: ep0 ctrl 8 Err codemadness.org 70 i 57452 0000: 00a3 0000 0002 0004 00 ......... <br /> Err codemadness.org 70 i 57453 [...] Err codemadness.org 70 i 57454 ```</p> Err codemadness.org 70 i 57455 Err codemadness.org 70 i 57456 <blockquote> Err codemadness.org 70 i 57457 <p>As you might have noted I decided to implement the existing USBPcap capture format. A capture format is required because USB packets do not include all the necessary information to properly interpret them. I first thought I would implement libpcap's DLT<em>USB but then I quickly realize that this was not a standard. It is instead a FreeBSD specific format which has been since then renamed DLT</em>USB<em>FREEBSD. Err codemadness.org 70 i 57458 But I didn't want to embrace xkcd #927, so I look at the existing formats: DLT</em>USB<em>FREEBSD, DLT</em>USB<em>LINUX, DLT</em>USB<em>LINUX</em>MMAPPED, DLT<em>USB</em>DARWIN and DLT_USBPCAP. I was first a bit sad to see that nobody could agree on a common format then I moved on and picked the simplest one: USBPcap. Err codemadness.org 70 i 57459 Implementing an already existing format gives us out-of-box support for all the tools supporting it. That's why having common formats let us share our energy. In the case of USBPcap it is already supported by Wireshark, so you can already inspect your packet graphically. For that you need to first capture raw packets:</p> Err codemadness.org 70 i 57460 </blockquote> Err codemadness.org 70 i 57461 Err codemadness.org 70 i 57462 <p>```</p> Err codemadness.org 70 i 57463 Err codemadness.org 70 i 57464 <h1>tcpdump -s 3303 -w usb.pcap -i usb0</h1> Err codemadness.org 70 i 57465 Err codemadness.org 70 i 57466 <p>tcpdump: listening on usb0, link-type USBPCAP Err codemadness.org 70 i 57467 ^C Err codemadness.org 70 i 57468 208 packets received by filter Err codemadness.org 70 i 57469 0 packets dropped by kernel Err codemadness.org 70 i 57470 ```</p> Err codemadness.org 70 i 57471 Err codemadness.org 70 i 57472 <blockquote> Err codemadness.org 70 i 57473 <p>USB packets can be quite big, that's why I'm not using tcpdump(8)'s default packet size. In this case, I want to make sure I can dump the complete uaudio(4) frames. Err codemadness.org 70 i 57474 It is important to say that what is dumped to userland is what the USB stack sees. Packets sent on the wire might differ, especially when it comes to retries and timing. So this feature is not here to replace any USB analyser, however I hope that it will help people understand how things work and what the USB stack is doing. Even I found some interesting timing issues while implementing isochronous support.</p> Err codemadness.org 70 i 57475 </blockquote> Err codemadness.org 70 i 57476 Err codemadness.org 70 i 57477 <hr /> Err codemadness.org 70 i 57478 <h3><a href="https://www.romanzolotarev.com/openbsd/webserver.html">Run OpenBSD on your web server</a></h3> Err codemadness.org 70 i 57479 Err codemadness.org 70 i 57480 <ul> Err codemadness.org 70 i 57481 <li><a href="https://www.romanzolotarev.com/vultr.html">Deploy and login to your OpenBSD server first.</a></li> Err codemadness.org 70 i 57482 </ul> Err codemadness.org 70 i 57483 Err codemadness.org 70 i 57484 <blockquote> Err codemadness.org 70 i 57485 <p>As soon as you're there you can enable an httpd(8) daemon, it's already installed on OpenBSD, you just need to configure it:</p> Err codemadness.org 70 i 57486 </blockquote> Err codemadness.org 70 i 57487 Err codemadness.org 70 i 57488 <p><code>www# vi /etc/httpd.conf</code></p> Err codemadness.org 70 i 57489 Err codemadness.org 70 i 57490 <ul> Err codemadness.org 70 i 57491 <li>Add two server sections---one for www and another for naked domain (all requests are redirected to www).</li> Err codemadness.org 70 i 57492 </ul> Err codemadness.org 70 i 57493 Err codemadness.org 70 i 57494 <p>``` Err codemadness.org 70 i 57495 server "www.example.com" { Err codemadness.org 70 i 57496 listen on * port 80 Err codemadness.org 70 i 57497 root "/htdocs/www.example.com" Err codemadness.org 70 i 57498 }</p> Err codemadness.org 70 i 57499 Err codemadness.org 70 i 57500 <p>server "example.com" { Err codemadness.org 70 i 57501 listen on * port 80 Err codemadness.org 70 i 57502 block return 301 "http://www.example.com$REQUEST_URI" Err codemadness.org 70 i 57503 } Err codemadness.org 70 i 57504 ```</p> Err codemadness.org 70 i 57505 Err codemadness.org 70 i 57506 <ul> Err codemadness.org 70 i 57507 <li>httpd is chrooted to /var/www by default, so let's make a document root directory:</li> Err codemadness.org 70 i 57508 </ul> Err codemadness.org 70 i 57509 Err codemadness.org 70 i 57510 <p><code>www# mkdir -p /var/www/htdocs/www.example.com</code></p> Err codemadness.org 70 i 57511 Err codemadness.org 70 i 57512 <ul> Err codemadness.org 70 i 57513 <li>Save and check this configuration:</li> Err codemadness.org 70 i 57514 </ul> Err codemadness.org 70 i 57515 Err codemadness.org 70 i 57516 <p><code> Err codemadness.org 70 i 57517 www# httpd -n Err codemadness.org 70 i 57518 configuration ok Err codemadness.org 70 i 57519 </code></p> Err codemadness.org 70 i 57520 Err codemadness.org 70 i 57521 <ul> Err codemadness.org 70 i 57522 <li>Enable httpd(8) daemon and start it.</li> Err codemadness.org 70 i 57523 </ul> Err codemadness.org 70 i 57524 Err codemadness.org 70 i 57525 <p><code> Err codemadness.org 70 i 57526 www# rcctl enable httpd Err codemadness.org 70 i 57527 www# rcctl start httpd Err codemadness.org 70 i 57528 </code></p> Err codemadness.org 70 i 57529 Err codemadness.org 70 i 57530 <ul> Err codemadness.org 70 i 57531 <li><p>Publish your website</p></li> Err codemadness.org 70 i 57532 <li><p>Copy your website content into /var/www/htdocs/www.example.com and then test it your web browser.</p></li> Err codemadness.org 70 i 57533 </ul> Err codemadness.org 70 i 57534 Err codemadness.org 70 i 57535 <p><code>http://XXX.XXX.XXX.XXX/</code></p> Err codemadness.org 70 i 57536 Err codemadness.org 70 i 57537 <blockquote> Err codemadness.org 70 i 57538 <p>Your web server should be up and running.</p> Err codemadness.org 70 i 57539 </blockquote> Err codemadness.org 70 i 57540 Err codemadness.org 70 i 57541 <ul> Err codemadness.org 70 i 57542 <li>Update DNS records</li> Err codemadness.org 70 i 57543 </ul> Err codemadness.org 70 i 57544 Err codemadness.org 70 i 57545 <blockquote> Err codemadness.org 70 i 57546 <p>If there is another HTTPS server using this domain, configure that server to redirect all HTTPS requests to HTTP.</p> Err codemadness.org 70 i 57547 Err codemadness.org 70 i 57548 <p>Now as your new server is ready you can update DNS records accordingly.</p> Err codemadness.org 70 i 57549 </blockquote> Err codemadness.org 70 i 57550 Err codemadness.org 70 i 57551 <p><code> Err codemadness.org 70 i 57552 example.com. 300 IN A XXX.XXX.XXX.XXX Err codemadness.org 70 i 57553 www.example.com. 300 IN A XXX.XXX.XXX.XXX Err codemadness.org 70 i 57554 </code></p> Err codemadness.org 70 i 57555 Err codemadness.org 70 i 57556 <ul> Err codemadness.org 70 i 57557 <li>Examine your DNS is propagated.</li> Err codemadness.org 70 i 57558 </ul> Err codemadness.org 70 i 57559 Err codemadness.org 70 i 57560 <p><code>$ dig example.com www.example.com</code></p> Err codemadness.org 70 i 57561 Err codemadness.org 70 i 57562 <ul> Err codemadness.org 70 i 57563 <li><p>Check IP addresses it answer sections. If they are correct, you should be able to access your new web server by its domain name.</p></li> Err codemadness.org 70 i 57564 <li><p><a href="https://www.romanzolotarev.com/openbsd/acme-client.html">What's next? Enable HTTPS on your server.</a></p></li> Err codemadness.org 70 i 57565 </ul> Err codemadness.org 70 i 57566 Err codemadness.org 70 i 57567 <hr /> Err codemadness.org 70 i 57568 <h3><a href="https://euroquis.nl/bobulate/?p=1827">Modern Akonadi and KMail on FreeBSD</a></h3> Err codemadness.org 70 i 57569 Err codemadness.org 70 i 57570 <blockquote> Err codemadness.org 70 i 57571 <p>For, quite literally a year or more, KMail and Akonadi on FreeBSD have been only marginally useful, at best. KDE4 era KMail was pretty darn good, but everything after that has had a number of FreeBSD users tearing out their hair. Sure, you can go to Trojitá, which has its own special problems and is generally “meh”, or bail out entirely to webmail, but .. KMail is a really great mail client when it works. Which, on Linux desktops, is nearly always, and on FreeBSD, is was nearly never.</p> Err codemadness.org 70 i 57572 Err codemadness.org 70 i 57573 <p>I looked at it with Dan and Volker last summer, briefly, and we got not much further than “hmm”. There’s a message about “The world is going to end!” which hardly makes sense, it means that a message has been truncated or corrupted while traversing a UNIX domain socket.</p> Err codemadness.org 70 i 57574 Err codemadness.org 70 i 57575 <p>Now Alexandre Martins — praise be! — has wandered in with a likely solution. KDE Bug 381850 contains a suggestion, which deserves to be publicised (and tested):</p> Err codemadness.org 70 i 57576 </blockquote> Err codemadness.org 70 i 57577 Err codemadness.org 70 i 57578 <p><code>sysctl net.local.stream.recvspace=65536</code> Err codemadness.org 70 i 57579 <code>sysctl net.local.stream.sendspace=65536</code></p> Err codemadness.org 70 i 57580 Err codemadness.org 70 i 57581 <blockquote> Err codemadness.org 70 i 57582 <p>The default FreeBSD UNIX local socket buffer space is 8kiB. Bumping the size up to 64kiB — which matches the size that Linux has by default — suddenly makes KMail and Akonadi shine again. No other changes, no recompiling, just .. bump the sysctls (perhaps also in /etc/sysctl.conf) and KMail from Area51 hums along all day without ending the world.</p> Err codemadness.org 70 i 57583 Err codemadness.org 70 i 57584 <p>Since changing this value may have other effects, and Akonadi shouldn’t be dependent on a specific buffer size anyway, I’m looking into the Akonadi code (encouraged by Dan) to either automatically size the socket buffers, or to figure out where in the underlying code the assumption about buffer size lives. So for now, sysctl can make KMail users on FreeBSD happy, and later we hope to have things fully automatic (and if that doesn’t pan out, well, pkg-message exists).</p> Err codemadness.org 70 i 57585 Err codemadness.org 70 i 57586 <p>PS. Modern KDE PIM applications — Akonadi, KMail — which live in the deskutils/ category of the official FreeBSD ports were added to the official tree April 10th, so you can get your fix now from the official tree.</p> Err codemadness.org 70 i 57587 </blockquote> Err codemadness.org 70 i 57588 Err codemadness.org 70 i 57589 <hr /> Err codemadness.org 70 i 57590 <h2>Beastie Bits</h2> Err codemadness.org 70 i 57591 Err codemadness.org 70 i 57592 <ul> Err codemadness.org 70 i 57593 <li><a href="http://lists.dragonflybsd.org/pipermail/users/2018-April/335722.html">pkg-provides support for DragonFly (from Rodrigo Osorio)</a></li> Err codemadness.org 70 i 57594 <li><a href="https://monades.roperzh.com/memories-writing-parser-man-pages/">Memories of writing a parser for man pages</a></li> Err codemadness.org 70 i 57595 <li><a href="http://developeronfire.com/podcast/episode-198-bryan-cantrill-persistence-and-action">Bryan Cantrill interview over at DeveloperOnFire podcast</a></li> Err codemadness.org 70 i 57596 <li><a href="http://minnie.tuhs.org/pipermail/tuhs/2018-March/013285.html">1978-03-25 - 2018-03-25: 40 years BSD Mail</a></li> Err codemadness.org 70 i 57597 <li><a href="https://imgur.com/a/KOTJS">My 5 years of FreeBSD gaming: a compendium of free games and engines running natively on FreeBSD</a></li> Err codemadness.org 70 i 57598 <li><a href="https://reviews.freebsd.org/D15562">Sequential Resilver being upstreamed to FreeBSD, from FreeNAS, where it was ported from ZFS-on-Linux</a></li> Err codemadness.org 70 i 57599 <li><a href="https://lists.freebsd.org/pipermail/freebsd-jobs/2018-May/000944.html">University of Aberdeen’s Internet Transport Research Group is hiring </a></li> Err codemadness.org 70 i 57600 </ul> Err codemadness.org 70 i 57601 Err codemadness.org 70 i 57602 <hr /> Err codemadness.org 70 i 57603 <p><strong>Tarsnap ad</strong></p> Err codemadness.org 70 i 57604 Err codemadness.org 70 i 57605 <h2>Feedback/Questions</h2> Err codemadness.org 70 i 57606 Err codemadness.org 70 i 57607 <ul> Err codemadness.org 70 i 57608 <li>Dave - <a href="http://dpaste.com/0KHRB4Z#wrap">mounting non-filesystem things inside jails</a></li> Err codemadness.org 70 i 57609 <li>Morgan - <a href="http://dpaste.com/10QD42T#wrap">ZFS on Linux Data loss bug</a></li> Err codemadness.org 70 i 57610 <li>Rene - <a href="http://dpaste.com/30VM51S#wrap">How to keep your ISP’s nose out of your browser history with encrypted DNS</a></li> Err codemadness.org 70 i 57611 <li>Rodriguez - <a href="http://dpaste.com/3WVYR9D#wrap">Feedback question! Relating to Windows</a></li> Err codemadness.org 70 i 57612 </ul> Err codemadness.org 70 i 57613 Err codemadness.org 70 i 57614 <hr /> Err codemadness.org 70 i 57615 <ul> Err codemadness.org 70 i 57616 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 57617 </ul> Err codemadness.org 70 i 57618 Err codemadness.org 70 i 57619 freebsd, openbsd, netbsd, dragonflybsd, trueos, tutorial, howto, guide, bsd, interview, HAMMER2, PS4, Kernel Exploit, debugging Err codemadness.org 70 i 57620 Err codemadness.org 70 i 57621 DragonflyBSD release 5.2.1 is here, BPF kernel exploit writeup, Remote Debugging the running OpenBSD kernel, interview with Patrick Mooney, FreeBSD buildbot setup in a jail, dumping your USB, and 5 years of gaming on FreeBSD.

Err codemadness.org 70 i 57622 Err codemadness.org 70 i 57623

Headlines

Err codemadness.org 70 i 57624 Err codemadness.org 70 i 57625

DragonFlyBSD: release52 (w/stable HAMMER2, as default root)

Err codemadness.org 70 i 57626 Err codemadness.org 70 i 57627
    Err codemadness.org 70 i 57628
  • DragonflyBSD 5.2.1 was released on May 21, 2018
  • Err codemadness.org 70 i 57629
  • > Big Ticket items: Err codemadness.org 70 i 57630 Err codemadness.org 70 i 57631 Err codemadness.org 70 i 57632
    Err codemadness.org 70 i 57633 Meltdown and Spectre mitigation support Err codemadness.org 70 i 57634 Meltdown isolation and spectre mitigation support added. Meltdown mitigation is automatically enabled for all Intel cpus. Spectre mitigation must be enabled manually via sysctl if desired, using sysctls machdep.spectremitigation and machdep.meltdownmitigation. Err codemadness.org 70 i 57635 HAMMER2 Err codemadness.org 70 i 57636 H2 has received a very large number of bug fixes and performance improvements. We can now recommend H2 as the default root filesystem in non-clustered mode. Err codemadness.org 70 i 57637 Clustered support is not yet available. Err codemadness.org 70 i 57638 ipfw Updates Err codemadness.org 70 i 57639 Implement state based "redirect", i.e. without using libalias. Err codemadness.org 70 i 57640 ipfw now supports all possible ICMP types. Err codemadness.org 70 i 57641 Fix ICMPMAXTYPE assumptions (now 40 as of this release). Err codemadness.org 70 i 57642 Improved graphics support Err codemadness.org 70 i 57643 The drm/i915 kernel driver has been updated to support Intel Coffeelake GPUs Err codemadness.org 70 i 57644 Add 24-bit pixel format support to the EFI frame buffer code. Err codemadness.org 70 i 57645 Significantly improve fbio support for the "scfb" XOrg driver. This allows EFI frame buffers to be used by X in situations where we do not otherwise support the GPU. Err codemadness.org 70 i 57646 Partly implement the FBIOBLANK ioctl for display powersaving. Err codemadness.org 70 i 57647 Syscons waits for drm modesetting at appropriate places, avoiding races.
  • Err codemadness.org 70 i 57648
Err codemadness.org 70 i 57649
Err codemadness.org 70 i 57650 Err codemadness.org 70 i 57651 Err codemadness.org 70 i 57652

PS4 4.55 BPF Race Condition Kernel Exploit Writeup

Err codemadness.org 70 i 57653 Err codemadness.org 70 i 57654 Err codemadness.org 70 i 57655 Err codemadness.org 70 i 57656
Err codemadness.org 70 i 57657

Note: While this bug is primarily interesting for exploitation on the PS4, this bug can also potentially be exploited on other unpatched platforms using FreeBSD if the attacker has read/write permissions on /dev/bpf, or if they want to escalate from root user to kernel code execution. As such, I've published it under the "FreeBSD" folder and not the "PS4" folder.

Err codemadness.org 70 i 57658
Err codemadness.org 70 i 57659 Err codemadness.org 70 i 57660
    Err codemadness.org 70 i 57661
  • Introduction
  • Err codemadness.org 70 i 57662
Err codemadness.org 70 i 57663 Err codemadness.org 70 i 57664
Err codemadness.org 70 i 57665

Welcome to the kernel portion of the PS4 4.55FW full exploit chain write-up. This bug was found by qwerty, and is fairly unique in the way it's exploited, so I wanted to do a detailed write-up on how it worked. The full source of the exploit can be found here. I've previously covered the webkit exploit implementation for userland access here.

Err codemadness.org 70 i 57666
Err codemadness.org 70 i 57667 Err codemadness.org 70 i 57668
    Err codemadness.org 70 i 57669
  • FreeBSD or Sony's fault? Why not both...
  • Err codemadness.org 70 i 57670
Err codemadness.org 70 i 57671 Err codemadness.org 70 i 57672
Err codemadness.org 70 i 57673

Interestingly, this bug is actually a FreeBSD bug and was not (at least directly) introduced by Sony code. While this is a FreeBSD bug however, it's not very useful for most systems because the /dev/bpf device driver is root-owned, and the permissions for it are set to 0600 (meaning owner has read/write privileges, and nobody else does) - though it can be used for escalating from root to kernel mode code execution. However, let’s take a look at the make_dev() call inside the PS4 kernel for /dev/bpf (taken from a 4.05 kernel dump).

Err codemadness.org 70 i 57674
Err codemadness.org 70 i 57675 Err codemadness.org 70 i 57676

Err codemadness.org 70 i 57677 seg000:FFFFFFFFA181F15B lea rdi, unk_FFFFFFFFA2D77640 Err codemadness.org 70 i 57678 seg000:FFFFFFFFA181F162 lea r9, aBpf ; "bpf" Err codemadness.org 70 i 57679 seg000:FFFFFFFFA181F169 mov esi, 0 Err codemadness.org 70 i 57680 seg000:FFFFFFFFA181F16E mov edx, 0 Err codemadness.org 70 i 57681 seg000:FFFFFFFFA181F173 xor ecx, ecx Err codemadness.org 70 i 57682 seg000:FFFFFFFFA181F175 mov r8d, 1B6h Err codemadness.org 70 i 57683 seg000:FFFFFFFFA181F17B xor eax, eax Err codemadness.org 70 i 57684 seg000:FFFFFFFFA181F17D mov cs:qword_FFFFFFFFA34EC770, 0 Err codemadness.org 70 i 57685 seg000:FFFFFFFFA181F188 call make_dev Err codemadness.org 70 i 57686

Err codemadness.org 70 i 57687 Err codemadness.org 70 i 57688
Err codemadness.org 70 i 57689

We see UID 0 (the UID for the root user) getting moved into the register for the 3rd argument, which is the owner argument. However, the permissions bits are being set to 0x1B6, which in octal is 0666. This means anyone can open /dev/bpf with read/write privileges. I’m not sure why this is the case, qwerty speculates that perhaps bpf is used for LAN gaming. In any case, this was a poor design decision because bpf is usually considered privileged, and should not be accessible to a process that is completely untrusted, such as WebKit. On most platforms, permissions for /dev/bpf will be set to 0x180, or 0600.

Err codemadness.org 70 i 57690
Err codemadness.org 70 i 57691 Err codemadness.org 70 i 57692
    Err codemadness.org 70 i 57693
  • Race Conditions - What are they?
  • Err codemadness.org 70 i 57694
Err codemadness.org 70 i 57695 Err codemadness.org 70 i 57696
Err codemadness.org 70 i 57697

The class of the bug abused in this exploit is known as a "race condition". Before we get into bug specifics, it's important for the reader to understand what race conditions are and how they can be an issue (especially in something like a kernel). Often in complex software (such as a kernel), resources will be shared (or "global"). This means other threads could potentially execute code that will access some resource that could be accessed by another thread at the same point in time. What happens if one thread accesses this resource while another thread does without exclusive access? Race conditions are introduced.

Err codemadness.org 70 i 57698 Err codemadness.org 70 i 57699

Race conditions are defined as possible scenarios where events happen in a sequence different than the developer intended which leads to undefined behavior. In simple, single-threaded programs, this is not an issue because execution is linear. In more complex programs where code can be running in parallel however, this becomes a real issue. To prevent these problems, atomic instructions and locking mechanisms were introduced. When one thread wants to access a critical resource, it will attempt to acquire a "lock". If another thread is already using this resource, generally the thread attempting to acquire the lock will wait until the other thread is finished with it. Each thread must release the lock to the resource after they're done with it, failure to do so could result in a deadlock.

Err codemadness.org 70 i 57700 Err codemadness.org 70 i 57701

While locking mechanisms such as mutexes have been introduced, developers sometimes struggle to use them properly. For example, what if a piece of shared data gets validated and processed, but while the processing of the data is locked, the validation is not? There is a window between validation and locking where that data can change, and while the developer thinks the data has been validated, it could be substituted with something malicious after it is validated, but before it is used. Parallel programming can be difficult, especially when, as a developer, you also want to factor in the fact that you don't want to put too much code in between locking and unlocking as it can impact performance.

Err codemadness.org 70 i 57702
Err codemadness.org 70 i 57703 Err codemadness.org 70 i 57704
    Err codemadness.org 70 i 57705
  • See article for the rest
  • Err codemadness.org 70 i 57706
Err codemadness.org 70 i 57707 Err codemadness.org 70 i 57708


Err codemadness.org 70 i 57709 Err codemadness.org 70 i 57710

iXsystems

Err codemadness.org 70 i 57711 Err codemadness.org 70 i 57712

Remote Debugging the running OpenBSD kernel

Err codemadness.org 70 i 57713 Err codemadness.org 70 i 57714
    Err codemadness.org 70 i 57715
  • Subtitled: A way to understand the OpenBSD internals Err codemadness.org 70 i 57716 +> The Problem Err codemadness.org 70 i 57717 +> A few month ago, I tried porting the FreeBSD kdb along with it's gdb stub implementations to OpenBSD as a practice of learning the internals of an BSD operating system. The ddb code in both FreeBSD and OpenBSD looks pretty much the same and the GDB Remote Serial Protocol looks very minimal. Err codemadness.org 70 i 57718 +> But sadly I got very busy and the work is stalled but I'm planning on resuming the attempt as soon as I get the chance, But there is an alternative way to Debugging the OpenBSD kernel via QEMU. What I did below is basically the same with a few minor changes which I hope to describe it as best. Err codemadness.org 70 i 57719 +> Installing OpenBSD on Qemu Err codemadness.org 70 i 57720 +> For debugging the kernel, we need a working OpenBSD system running on Qemu. I chose to create a raw disk file to be able to easily mount it later via the host and copy the custom kernel onto it. Err codemadness.org 70 i 57721 Err codemadness.org 70 i 57722 Err codemadness.org 70 i 57723
    Err codemadness.org 70 i 57724 $ qemu-img create -f raw disk.raw 5G Err codemadness.org 70 i 57725 $ qemu-system-x8664 -m 256M \ Err codemadness.org 70 i 57726 -drive format=raw,file=install63.fs \ Err codemadness.org 70 i 57727 -drive format=raw,file=disk.raw Err codemadness.org 70 i 57728 +> Custom Kernel Err codemadness.org 70 i 57729 +> To debug the kernel, we need a version of the kernel with debugging symbols and for that we have to recompile it first. The process is documented at Building the System from Source: Err codemadness.org 70 i 57730 ... Err codemadness.org 70 i 57731 +> Then we can copy the bsd kernel to the guest machine and keep the bsd.gdb on the host to start the remote debugging via gdb. Err codemadness.org 70 i 57732 +> Remote debugging kernel Err codemadness.org 70 i 57733 +> Now it's to time to boot the guest with the new custom kernel. Remember that the -s argument enables the gdb server on qemu on localhost port 1234 by default: Err codemadness.org 70 i 57734 $ qemu-system-x8664 -m 256M -s \ Err codemadness.org 70 i 57735 -net nic -net user \ Err codemadness.org 70 i 57736 -drive format=raw,file=install63.fs \ Err codemadness.org 70 i 57737 +> Now to finally attach to the running kernel:
  • Err codemadness.org 70 i 57738
Err codemadness.org 70 i 57739
Err codemadness.org 70 i 57740 Err codemadness.org 70 i 57741 Err codemadness.org 70 i 57742

Interview - Patrick Mooney - Software Engineer pmooney@pfmooney.com / @pfmooney

Err codemadness.org 70 i 57743 Err codemadness.org 70 i 57744
    Err codemadness.org 70 i 57745
  • BR: How did you first get introduced to UNIX?
  • Err codemadness.org 70 i 57746
  • AJ: What got you started contributing to an open source project?
  • Err codemadness.org 70 i 57747
  • BR: What sorts of things have you worked on in the past?
  • Err codemadness.org 70 i 57748
  • AJ: Can you tell us more about what attracted you to illumos?
  • Err codemadness.org 70 i 57749
  • BR: How did you get interested in, and started with, systems development?
  • Err codemadness.org 70 i 57750
  • AJ: When did you first get interested in bhyve?
  • Err codemadness.org 70 i 57751
  • BR: How much work was it to take the years-old port of bhyve and get it working on modern IllumOS?
  • Err codemadness.org 70 i 57752
  • AJ: What was the process for getting the bhyve port caught up to current FreeBSD?
  • Err codemadness.org 70 i 57753
  • BR: How usable is bhyve on illumOS?
  • Err codemadness.org 70 i 57754
  • AJ: What area are you most interested in improving in bhyve?
  • Err codemadness.org 70 i 57755
  • BR: Do you think the FreeBSD and illumos versions of bhyve will stay in sync with each other?
  • Err codemadness.org 70 i 57756
  • AJ: What do you do for fun?
  • Err codemadness.org 70 i 57757
  • BR: Anything else you want to mention?
  • Err codemadness.org 70 i 57758
Err codemadness.org 70 i 57759 Err codemadness.org 70 i 57760


Err codemadness.org 70 i 57761 Err codemadness.org 70 i 57762

News Roundup

Err codemadness.org 70 i 57763 Err codemadness.org 70 i 57764

Setting up buildbot in FreeBSD Jails

Err codemadness.org 70 i 57765 Err codemadness.org 70 i 57766
Err codemadness.org 70 i 57767

In this article, I would like to present a tutorial to set up buildbot, a continuous integration (CI) software (like Jenkins, drone, etc.), making use of FreeBSD’s containerization mechanism "jails". We will cover terminology, rationale for using both buildbot and jails together, and installation steps. At the end, you will have a working buildbot instance using its sample build configuration, ready to play around with your own CI plans (or even CD, it’s very flexible!). Some hints for production-grade installations are given, but the tutorial steps are meant for a test environment (namely a virtual machine). Buildbot’s configuration and detailed concepts are not in scope here.

Err codemadness.org 70 i 57768
Err codemadness.org 70 i 57769 Err codemadness.org 70 i 57770
    Err codemadness.org 70 i 57771
  • Table of contents

    Err codemadness.org 70 i 57772 Err codemadness.org 70 i 57773
    • Choosing host operating system and version for buildbot
    • Err codemadness.org 70 i 57774
    • Create a FreeBSD playground
    • Err codemadness.org 70 i 57775
    • Introduction to jails
    • Err codemadness.org 70 i 57776
    • Overview of buildbot
    • Err codemadness.org 70 i 57777
    • Set up jails
    • Err codemadness.org 70 i 57778
    • Install buildbot master
    • Err codemadness.org 70 i 57779
    • Run buildbot master
    • Err codemadness.org 70 i 57780
    • Install buildbot worker
    • Err codemadness.org 70 i 57781
    • Run buildbot worker
    • Err codemadness.org 70 i 57782
    • Set up web server nginx to access buildbot UI
    • Err codemadness.org 70 i 57783
    • Run your first build
    • Err codemadness.org 70 i 57784
    • Production hints
    • Err codemadness.org 70 i 57785
    • Finished!
  • Err codemadness.org 70 i 57786
  • Choosing host operating system and version for buildbot

  • Err codemadness.org 70 i 57787
Err codemadness.org 70 i 57788 Err codemadness.org 70 i 57789
Err codemadness.org 70 i 57790

We choose the released version of FreeBSD (11.1-RELEASE at the moment). There is no particular reason for it, and as a matter of fact buildbot as a Python-based server is very cross-platform; therefore the underlying OS platform and version should not make a large difference.

Err codemadness.org 70 i 57791 Err codemadness.org 70 i 57792

It will make a difference for what you do with buildbot, however. For instance, poudriere is the de-facto standard for building packages from source on FreeBSD. Builds run in jails which may be any FreeBSD base system version older or equal to the host’s version (reason will be explained below). In other words, if the host is FreeBSD 11.1, build jails created by poudriere could e.g. use 9.1, 10.3, 11.0, 11.1, but potentially not version 12 or newer because of incompatibilities with the host’s kernel (jails do not run their own kernel as full virtual machines do). To not prolong this article over the intended scope, the details of which nice things could be done or automated with buildbot are not covered.

Err codemadness.org 70 i 57793 Err codemadness.org 70 i 57794

Package names on the FreeBSD platform are independent of the OS version, since external software (as in: not part of base system) is maintained in FreeBSD ports. So, if your chosen FreeBSD version (here: 11) is still officially supported, the packages mentioned in this post should work. In the unlikely event of package name changes before you read this article, you should be able to find the actual package names like pkg search buildbot.

Err codemadness.org 70 i 57795 Err codemadness.org 70 i 57796

Other operating systems like the various Linux distributions will use different package names but might also offer buildbot pre-packaged. If not, the buildbot installation manual offers steps to install it manually. In such case, the downside is that you will have to maintain and update the buildbot modules outside the stability and (semi-)automatic updates of your OS packages.

Err codemadness.org 70 i 57797
Err codemadness.org 70 i 57798 Err codemadness.org 70 i 57799
    Err codemadness.org 70 i 57800
  • See article for the rest
  • Err codemadness.org 70 i 57801
Err codemadness.org 70 i 57802 Err codemadness.org 70 i 57803


Err codemadness.org 70 i 57804 Err codemadness.org 70 i 57805

DigitalOcean

Err codemadness.org 70 i 57806 Err codemadness.org 70 i 57807

Dumping your USB

Err codemadness.org 70 i 57808 Err codemadness.org 70 i 57809
Err codemadness.org 70 i 57810

One of the many new features of OpenBSD 6.3 is the possibility to dump USB traffic to userland via bpf(4). This can be done with tcpdump(8) by specifying a USB bus as interface:

Err codemadness.org 70 i 57811
Err codemadness.org 70 i 57812 Err codemadness.org 70 i 57813

```

Err codemadness.org 70 i 57814 Err codemadness.org 70 i 57815

tcpdump -Xx -i usb0

Err codemadness.org 70 i 57816 Err codemadness.org 70 i 57817

tcpdump: listening on usb0, link-type USBPCAP Err codemadness.org 70 i 57818 12:28:03.317945 bus 0 < addr 1: ep1 intr 2 Err codemadness.org 70 i 57819 0000: 0400 ..

Err codemadness.org 70 i 57820 Err codemadness.org 70 i 57821

12:28:03.318018 bus 0 > addr 1: ep0 ctrl 8 Err codemadness.org 70 i 57822 0000: 00a3 0000 0002 0004 00 .........
Err codemadness.org 70 i 57823 [...] Err codemadness.org 70 i 57824 ```

Err codemadness.org 70 i 57825 Err codemadness.org 70 i 57826
Err codemadness.org 70 i 57827

As you might have noted I decided to implement the existing USBPcap capture format. A capture format is required because USB packets do not include all the necessary information to properly interpret them. I first thought I would implement libpcap's DLTUSB but then I quickly realize that this was not a standard. It is instead a FreeBSD specific format which has been since then renamed DLTUSBFREEBSD. Err codemadness.org 70 i 57828 But I didn't want to embrace xkcd #927, so I look at the existing formats: DLTUSBFREEBSD, DLTUSBLINUX, DLTUSBLINUXMMAPPED, DLTUSBDARWIN and DLT_USBPCAP. I was first a bit sad to see that nobody could agree on a common format then I moved on and picked the simplest one: USBPcap. Err codemadness.org 70 i 57829 Implementing an already existing format gives us out-of-box support for all the tools supporting it. That's why having common formats let us share our energy. In the case of USBPcap it is already supported by Wireshark, so you can already inspect your packet graphically. For that you need to first capture raw packets:

Err codemadness.org 70 i 57830
Err codemadness.org 70 i 57831 Err codemadness.org 70 i 57832

```

Err codemadness.org 70 i 57833 Err codemadness.org 70 i 57834

tcpdump -s 3303 -w usb.pcap -i usb0

Err codemadness.org 70 i 57835 Err codemadness.org 70 i 57836

tcpdump: listening on usb0, link-type USBPCAP Err codemadness.org 70 i 57837 ^C Err codemadness.org 70 i 57838 208 packets received by filter Err codemadness.org 70 i 57839 0 packets dropped by kernel Err codemadness.org 70 i 57840 ```

Err codemadness.org 70 i 57841 Err codemadness.org 70 i 57842
Err codemadness.org 70 i 57843

USB packets can be quite big, that's why I'm not using tcpdump(8)'s default packet size. In this case, I want to make sure I can dump the complete uaudio(4) frames. Err codemadness.org 70 i 57844 It is important to say that what is dumped to userland is what the USB stack sees. Packets sent on the wire might differ, especially when it comes to retries and timing. So this feature is not here to replace any USB analyser, however I hope that it will help people understand how things work and what the USB stack is doing. Even I found some interesting timing issues while implementing isochronous support.

Err codemadness.org 70 i 57845
Err codemadness.org 70 i 57846 Err codemadness.org 70 i 57847


Err codemadness.org 70 i 57848 Err codemadness.org 70 i 57849

Run OpenBSD on your web server

Err codemadness.org 70 i 57850 Err codemadness.org 70 i 57851 Err codemadness.org 70 i 57854 Err codemadness.org 70 i 57855
Err codemadness.org 70 i 57856

As soon as you're there you can enable an httpd(8) daemon, it's already installed on OpenBSD, you just need to configure it:

Err codemadness.org 70 i 57857
Err codemadness.org 70 i 57858 Err codemadness.org 70 i 57859

www# vi /etc/httpd.conf

Err codemadness.org 70 i 57860 Err codemadness.org 70 i 57861
    Err codemadness.org 70 i 57862
  • Add two server sections---one for www and another for naked domain (all requests are redirected to www).
  • Err codemadness.org 70 i 57863
Err codemadness.org 70 i 57864 Err codemadness.org 70 i 57865

``` Err codemadness.org 70 i 57866 server "www.example.com" { Err codemadness.org 70 i 57867 listen on * port 80 Err codemadness.org 70 i 57868 root "/htdocs/www.example.com" Err codemadness.org 70 i 57869 }

Err codemadness.org 70 i 57870 Err codemadness.org 70 i 57871

server "example.com" { Err codemadness.org 70 i 57872 listen on * port 80 Err codemadness.org 70 i 57873 block return 301 "http://www.example.com$REQUEST_URI" Err codemadness.org 70 i 57874 } Err codemadness.org 70 i 57875 ```

Err codemadness.org 70 i 57876 Err codemadness.org 70 i 57877
    Err codemadness.org 70 i 57878
  • httpd is chrooted to /var/www by default, so let's make a document root directory:
  • Err codemadness.org 70 i 57879
Err codemadness.org 70 i 57880 Err codemadness.org 70 i 57881

www# mkdir -p /var/www/htdocs/www.example.com

Err codemadness.org 70 i 57882 Err codemadness.org 70 i 57883
    Err codemadness.org 70 i 57884
  • Save and check this configuration:
  • Err codemadness.org 70 i 57885
Err codemadness.org 70 i 57886 Err codemadness.org 70 i 57887

Err codemadness.org 70 i 57888 www# httpd -n Err codemadness.org 70 i 57889 configuration ok Err codemadness.org 70 i 57890

Err codemadness.org 70 i 57891 Err codemadness.org 70 i 57892
    Err codemadness.org 70 i 57893
  • Enable httpd(8) daemon and start it.
  • Err codemadness.org 70 i 57894
Err codemadness.org 70 i 57895 Err codemadness.org 70 i 57896

Err codemadness.org 70 i 57897 www# rcctl enable httpd Err codemadness.org 70 i 57898 www# rcctl start httpd Err codemadness.org 70 i 57899

Err codemadness.org 70 i 57900 Err codemadness.org 70 i 57901
    Err codemadness.org 70 i 57902
  • Publish your website

  • Err codemadness.org 70 i 57903
  • Copy your website content into /var/www/htdocs/www.example.com and then test it your web browser.

  • Err codemadness.org 70 i 57904
Err codemadness.org 70 i 57905 Err codemadness.org 70 i 57906

http://XXX.XXX.XXX.XXX/

Err codemadness.org 70 i 57907 Err codemadness.org 70 i 57908
Err codemadness.org 70 i 57909

Your web server should be up and running.

Err codemadness.org 70 i 57910
Err codemadness.org 70 i 57911 Err codemadness.org 70 i 57912
    Err codemadness.org 70 i 57913
  • Update DNS records
  • Err codemadness.org 70 i 57914
Err codemadness.org 70 i 57915 Err codemadness.org 70 i 57916
Err codemadness.org 70 i 57917

If there is another HTTPS server using this domain, configure that server to redirect all HTTPS requests to HTTP.

Err codemadness.org 70 i 57918 Err codemadness.org 70 i 57919

Now as your new server is ready you can update DNS records accordingly.

Err codemadness.org 70 i 57920
Err codemadness.org 70 i 57921 Err codemadness.org 70 i 57922

Err codemadness.org 70 i 57923 example.com. 300 IN A XXX.XXX.XXX.XXX Err codemadness.org 70 i 57924 www.example.com. 300 IN A XXX.XXX.XXX.XXX Err codemadness.org 70 i 57925

Err codemadness.org 70 i 57926 Err codemadness.org 70 i 57927
    Err codemadness.org 70 i 57928
  • Examine your DNS is propagated.
  • Err codemadness.org 70 i 57929
Err codemadness.org 70 i 57930 Err codemadness.org 70 i 57931

$ dig example.com www.example.com

Err codemadness.org 70 i 57932 Err codemadness.org 70 i 57933
    Err codemadness.org 70 i 57934
  • Check IP addresses it answer sections. If they are correct, you should be able to access your new web server by its domain name.

  • Err codemadness.org 70 i 57935
  • What's next? Enable HTTPS on your server.

  • Err codemadness.org 70 i 57936
Err codemadness.org 70 i 57937 Err codemadness.org 70 i 57938


Err codemadness.org 70 i 57939 Err codemadness.org 70 i 57940

Modern Akonadi and KMail on FreeBSD

Err codemadness.org 70 i 57941 Err codemadness.org 70 i 57942
Err codemadness.org 70 i 57943

For, quite literally a year or more, KMail and Akonadi on FreeBSD have been only marginally useful, at best. KDE4 era KMail was pretty darn good, but everything after that has had a number of FreeBSD users tearing out their hair. Sure, you can go to Trojitá, which has its own special problems and is generally “meh”, or bail out entirely to webmail, but .. KMail is a really great mail client when it works. Which, on Linux desktops, is nearly always, and on FreeBSD, is was nearly never.

Err codemadness.org 70 i 57944 Err codemadness.org 70 i 57945

I looked at it with Dan and Volker last summer, briefly, and we got not much further than “hmm”. There’s a message about “The world is going to end!” which hardly makes sense, it means that a message has been truncated or corrupted while traversing a UNIX domain socket.

Err codemadness.org 70 i 57946 Err codemadness.org 70 i 57947

Now Alexandre Martins — praise be! — has wandered in with a likely solution. KDE Bug 381850 contains a suggestion, which deserves to be publicised (and tested):

Err codemadness.org 70 i 57948
Err codemadness.org 70 i 57949 Err codemadness.org 70 i 57950

sysctl net.local.stream.recvspace=65536 Err codemadness.org 70 i 57951 sysctl net.local.stream.sendspace=65536

Err codemadness.org 70 i 57952 Err codemadness.org 70 i 57953
Err codemadness.org 70 i 57954

The default FreeBSD UNIX local socket buffer space is 8kiB. Bumping the size up to 64kiB — which matches the size that Linux has by default — suddenly makes KMail and Akonadi shine again. No other changes, no recompiling, just .. bump the sysctls (perhaps also in /etc/sysctl.conf) and KMail from Area51 hums along all day without ending the world.

Err codemadness.org 70 i 57955 Err codemadness.org 70 i 57956

Since changing this value may have other effects, and Akonadi shouldn’t be dependent on a specific buffer size anyway, I’m looking into the Akonadi code (encouraged by Dan) to either automatically size the socket buffers, or to figure out where in the underlying code the assumption about buffer size lives. So for now, sysctl can make KMail users on FreeBSD happy, and later we hope to have things fully automatic (and if that doesn’t pan out, well, pkg-message exists).

Err codemadness.org 70 i 57957 Err codemadness.org 70 i 57958

PS. Modern KDE PIM applications — Akonadi, KMail — which live in the deskutils/ category of the official FreeBSD ports were added to the official tree April 10th, so you can get your fix now from the official tree.

Err codemadness.org 70 i 57959
Err codemadness.org 70 i 57960 Err codemadness.org 70 i 57961


Err codemadness.org 70 i 57962 Err codemadness.org 70 i 57963

Beastie Bits

Err codemadness.org 70 i 57964 Err codemadness.org 70 i 57965 Err codemadness.org 70 i 57974 Err codemadness.org 70 i 57975


Err codemadness.org 70 i 57976 Err codemadness.org 70 i 57977

Tarsnap ad

Err codemadness.org 70 i 57978 Err codemadness.org 70 i 57979

Feedback/Questions

Err codemadness.org 70 i 57980 Err codemadness.org 70 i 57981 Err codemadness.org 70 i 57987 Err codemadness.org 70 i 57988


Err codemadness.org 70 i 57989 Err codemadness.org 70 i 57990
    Err codemadness.org 70 i 57991
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 57992
]]> Err codemadness.org 70 i 57993
Err codemadness.org 70 i 57994 Err codemadness.org 70 i 57995 DragonflyBSD release 5.2.1 is here, BPF kernel exploit writeup, Remote Debugging the running OpenBSD kernel, interview with Patrick Mooney, FreeBSD buildbot setup in a jail, dumping your USB, and 5 years of gaming on FreeBSD.

Err codemadness.org 70 i 57996 Err codemadness.org 70 i 57997

Headlines

Err codemadness.org 70 i 57998 Err codemadness.org 70 i 57999

DragonFlyBSD: release52 (w/stable HAMMER2, as default root)

Err codemadness.org 70 i 58000 Err codemadness.org 70 i 58001
    Err codemadness.org 70 i 58002
  • DragonflyBSD 5.2.1 was released on May 21, 2018
  • Err codemadness.org 70 i 58003
  • > Big Ticket items: Err codemadness.org 70 i 58004 Err codemadness.org 70 i 58005 Err codemadness.org 70 i 58006
    Err codemadness.org 70 i 58007 Meltdown and Spectre mitigation support Err codemadness.org 70 i 58008 Meltdown isolation and spectre mitigation support added. Meltdown mitigation is automatically enabled for all Intel cpus. Spectre mitigation must be enabled manually via sysctl if desired, using sysctls machdep.spectremitigation and machdep.meltdownmitigation. Err codemadness.org 70 i 58009 HAMMER2 Err codemadness.org 70 i 58010 H2 has received a very large number of bug fixes and performance improvements. We can now recommend H2 as the default root filesystem in non-clustered mode. Err codemadness.org 70 i 58011 Clustered support is not yet available. Err codemadness.org 70 i 58012 ipfw Updates Err codemadness.org 70 i 58013 Implement state based "redirect", i.e. without using libalias. Err codemadness.org 70 i 58014 ipfw now supports all possible ICMP types. Err codemadness.org 70 i 58015 Fix ICMPMAXTYPE assumptions (now 40 as of this release). Err codemadness.org 70 i 58016 Improved graphics support Err codemadness.org 70 i 58017 The drm/i915 kernel driver has been updated to support Intel Coffeelake GPUs Err codemadness.org 70 i 58018 Add 24-bit pixel format support to the EFI frame buffer code. Err codemadness.org 70 i 58019 Significantly improve fbio support for the "scfb" XOrg driver. This allows EFI frame buffers to be used by X in situations where we do not otherwise support the GPU. Err codemadness.org 70 i 58020 Partly implement the FBIOBLANK ioctl for display powersaving. Err codemadness.org 70 i 58021 Syscons waits for drm modesetting at appropriate places, avoiding races.
  • Err codemadness.org 70 i 58022
Err codemadness.org 70 i 58023
Err codemadness.org 70 i 58024 Err codemadness.org 70 i 58025 Err codemadness.org 70 i 58026

PS4 4.55 BPF Race Condition Kernel Exploit Writeup

Err codemadness.org 70 i 58027 Err codemadness.org 70 i 58028 Err codemadness.org 70 i 58029 Err codemadness.org 70 i 58030
Err codemadness.org 70 i 58031

Note: While this bug is primarily interesting for exploitation on the PS4, this bug can also potentially be exploited on other unpatched platforms using FreeBSD if the attacker has read/write permissions on /dev/bpf, or if they want to escalate from root user to kernel code execution. As such, I've published it under the "FreeBSD" folder and not the "PS4" folder.

Err codemadness.org 70 i 58032
Err codemadness.org 70 i 58033 Err codemadness.org 70 i 58034
    Err codemadness.org 70 i 58035
  • Introduction
  • Err codemadness.org 70 i 58036
Err codemadness.org 70 i 58037 Err codemadness.org 70 i 58038
Err codemadness.org 70 i 58039

Welcome to the kernel portion of the PS4 4.55FW full exploit chain write-up. This bug was found by qwerty, and is fairly unique in the way it's exploited, so I wanted to do a detailed write-up on how it worked. The full source of the exploit can be found here. I've previously covered the webkit exploit implementation for userland access here.

Err codemadness.org 70 i 58040
Err codemadness.org 70 i 58041 Err codemadness.org 70 i 58042
    Err codemadness.org 70 i 58043
  • FreeBSD or Sony's fault? Why not both...
  • Err codemadness.org 70 i 58044
Err codemadness.org 70 i 58045 Err codemadness.org 70 i 58046
Err codemadness.org 70 i 58047

Interestingly, this bug is actually a FreeBSD bug and was not (at least directly) introduced by Sony code. While this is a FreeBSD bug however, it's not very useful for most systems because the /dev/bpf device driver is root-owned, and the permissions for it are set to 0600 (meaning owner has read/write privileges, and nobody else does) - though it can be used for escalating from root to kernel mode code execution. However, let’s take a look at the make_dev() call inside the PS4 kernel for /dev/bpf (taken from a 4.05 kernel dump).

Err codemadness.org 70 i 58048
Err codemadness.org 70 i 58049 Err codemadness.org 70 i 58050

Err codemadness.org 70 i 58051 seg000:FFFFFFFFA181F15B lea rdi, unk_FFFFFFFFA2D77640 Err codemadness.org 70 i 58052 seg000:FFFFFFFFA181F162 lea r9, aBpf ; "bpf" Err codemadness.org 70 i 58053 seg000:FFFFFFFFA181F169 mov esi, 0 Err codemadness.org 70 i 58054 seg000:FFFFFFFFA181F16E mov edx, 0 Err codemadness.org 70 i 58055 seg000:FFFFFFFFA181F173 xor ecx, ecx Err codemadness.org 70 i 58056 seg000:FFFFFFFFA181F175 mov r8d, 1B6h Err codemadness.org 70 i 58057 seg000:FFFFFFFFA181F17B xor eax, eax Err codemadness.org 70 i 58058 seg000:FFFFFFFFA181F17D mov cs:qword_FFFFFFFFA34EC770, 0 Err codemadness.org 70 i 58059 seg000:FFFFFFFFA181F188 call make_dev Err codemadness.org 70 i 58060

Err codemadness.org 70 i 58061 Err codemadness.org 70 i 58062
Err codemadness.org 70 i 58063

We see UID 0 (the UID for the root user) getting moved into the register for the 3rd argument, which is the owner argument. However, the permissions bits are being set to 0x1B6, which in octal is 0666. This means anyone can open /dev/bpf with read/write privileges. I’m not sure why this is the case, qwerty speculates that perhaps bpf is used for LAN gaming. In any case, this was a poor design decision because bpf is usually considered privileged, and should not be accessible to a process that is completely untrusted, such as WebKit. On most platforms, permissions for /dev/bpf will be set to 0x180, or 0600.

Err codemadness.org 70 i 58064
Err codemadness.org 70 i 58065 Err codemadness.org 70 i 58066
    Err codemadness.org 70 i 58067
  • Race Conditions - What are they?
  • Err codemadness.org 70 i 58068
Err codemadness.org 70 i 58069 Err codemadness.org 70 i 58070
Err codemadness.org 70 i 58071

The class of the bug abused in this exploit is known as a "race condition". Before we get into bug specifics, it's important for the reader to understand what race conditions are and how they can be an issue (especially in something like a kernel). Often in complex software (such as a kernel), resources will be shared (or "global"). This means other threads could potentially execute code that will access some resource that could be accessed by another thread at the same point in time. What happens if one thread accesses this resource while another thread does without exclusive access? Race conditions are introduced.

Err codemadness.org 70 i 58072 Err codemadness.org 70 i 58073

Race conditions are defined as possible scenarios where events happen in a sequence different than the developer intended which leads to undefined behavior. In simple, single-threaded programs, this is not an issue because execution is linear. In more complex programs where code can be running in parallel however, this becomes a real issue. To prevent these problems, atomic instructions and locking mechanisms were introduced. When one thread wants to access a critical resource, it will attempt to acquire a "lock". If another thread is already using this resource, generally the thread attempting to acquire the lock will wait until the other thread is finished with it. Each thread must release the lock to the resource after they're done with it, failure to do so could result in a deadlock.

Err codemadness.org 70 i 58074 Err codemadness.org 70 i 58075

While locking mechanisms such as mutexes have been introduced, developers sometimes struggle to use them properly. For example, what if a piece of shared data gets validated and processed, but while the processing of the data is locked, the validation is not? There is a window between validation and locking where that data can change, and while the developer thinks the data has been validated, it could be substituted with something malicious after it is validated, but before it is used. Parallel programming can be difficult, especially when, as a developer, you also want to factor in the fact that you don't want to put too much code in between locking and unlocking as it can impact performance.

Err codemadness.org 70 i 58076
Err codemadness.org 70 i 58077 Err codemadness.org 70 i 58078
    Err codemadness.org 70 i 58079
  • See article for the rest
  • Err codemadness.org 70 i 58080
Err codemadness.org 70 i 58081 Err codemadness.org 70 i 58082


Err codemadness.org 70 i 58083 Err codemadness.org 70 i 58084

iXsystems

Err codemadness.org 70 i 58085 Err codemadness.org 70 i 58086

Remote Debugging the running OpenBSD kernel

Err codemadness.org 70 i 58087 Err codemadness.org 70 i 58088
    Err codemadness.org 70 i 58089
  • Subtitled: A way to understand the OpenBSD internals Err codemadness.org 70 i 58090 +> The Problem Err codemadness.org 70 i 58091 +> A few month ago, I tried porting the FreeBSD kdb along with it's gdb stub implementations to OpenBSD as a practice of learning the internals of an BSD operating system. The ddb code in both FreeBSD and OpenBSD looks pretty much the same and the GDB Remote Serial Protocol looks very minimal. Err codemadness.org 70 i 58092 +> But sadly I got very busy and the work is stalled but I'm planning on resuming the attempt as soon as I get the chance, But there is an alternative way to Debugging the OpenBSD kernel via QEMU. What I did below is basically the same with a few minor changes which I hope to describe it as best. Err codemadness.org 70 i 58093 +> Installing OpenBSD on Qemu Err codemadness.org 70 i 58094 +> For debugging the kernel, we need a working OpenBSD system running on Qemu. I chose to create a raw disk file to be able to easily mount it later via the host and copy the custom kernel onto it. Err codemadness.org 70 i 58095 Err codemadness.org 70 i 58096 Err codemadness.org 70 i 58097
    Err codemadness.org 70 i 58098 $ qemu-img create -f raw disk.raw 5G Err codemadness.org 70 i 58099 $ qemu-system-x8664 -m 256M \ Err codemadness.org 70 i 58100 -drive format=raw,file=install63.fs \ Err codemadness.org 70 i 58101 -drive format=raw,file=disk.raw Err codemadness.org 70 i 58102 +> Custom Kernel Err codemadness.org 70 i 58103 +> To debug the kernel, we need a version of the kernel with debugging symbols and for that we have to recompile it first. The process is documented at Building the System from Source: Err codemadness.org 70 i 58104 ... Err codemadness.org 70 i 58105 +> Then we can copy the bsd kernel to the guest machine and keep the bsd.gdb on the host to start the remote debugging via gdb. Err codemadness.org 70 i 58106 +> Remote debugging kernel Err codemadness.org 70 i 58107 +> Now it's to time to boot the guest with the new custom kernel. Remember that the -s argument enables the gdb server on qemu on localhost port 1234 by default: Err codemadness.org 70 i 58108 $ qemu-system-x8664 -m 256M -s \ Err codemadness.org 70 i 58109 -net nic -net user \ Err codemadness.org 70 i 58110 -drive format=raw,file=install63.fs \ Err codemadness.org 70 i 58111 +> Now to finally attach to the running kernel:
  • Err codemadness.org 70 i 58112
Err codemadness.org 70 i 58113
Err codemadness.org 70 i 58114 Err codemadness.org 70 i 58115 Err codemadness.org 70 i 58116

Interview - Patrick Mooney - Software Engineer pmooney@pfmooney.com / @pfmooney

Err codemadness.org 70 i 58117 Err codemadness.org 70 i 58118
    Err codemadness.org 70 i 58119
  • BR: How did you first get introduced to UNIX?
  • Err codemadness.org 70 i 58120
  • AJ: What got you started contributing to an open source project?
  • Err codemadness.org 70 i 58121
  • BR: What sorts of things have you worked on in the past?
  • Err codemadness.org 70 i 58122
  • AJ: Can you tell us more about what attracted you to illumos?
  • Err codemadness.org 70 i 58123
  • BR: How did you get interested in, and started with, systems development?
  • Err codemadness.org 70 i 58124
  • AJ: When did you first get interested in bhyve?
  • Err codemadness.org 70 i 58125
  • BR: How much work was it to take the years-old port of bhyve and get it working on modern IllumOS?
  • Err codemadness.org 70 i 58126
  • AJ: What was the process for getting the bhyve port caught up to current FreeBSD?
  • Err codemadness.org 70 i 58127
  • BR: How usable is bhyve on illumOS?
  • Err codemadness.org 70 i 58128
  • AJ: What area are you most interested in improving in bhyve?
  • Err codemadness.org 70 i 58129
  • BR: Do you think the FreeBSD and illumos versions of bhyve will stay in sync with each other?
  • Err codemadness.org 70 i 58130
  • AJ: What do you do for fun?
  • Err codemadness.org 70 i 58131
  • BR: Anything else you want to mention?
  • Err codemadness.org 70 i 58132
Err codemadness.org 70 i 58133 Err codemadness.org 70 i 58134


Err codemadness.org 70 i 58135 Err codemadness.org 70 i 58136

News Roundup

Err codemadness.org 70 i 58137 Err codemadness.org 70 i 58138

Setting up buildbot in FreeBSD Jails

Err codemadness.org 70 i 58139 Err codemadness.org 70 i 58140
Err codemadness.org 70 i 58141

In this article, I would like to present a tutorial to set up buildbot, a continuous integration (CI) software (like Jenkins, drone, etc.), making use of FreeBSD’s containerization mechanism "jails". We will cover terminology, rationale for using both buildbot and jails together, and installation steps. At the end, you will have a working buildbot instance using its sample build configuration, ready to play around with your own CI plans (or even CD, it’s very flexible!). Some hints for production-grade installations are given, but the tutorial steps are meant for a test environment (namely a virtual machine). Buildbot’s configuration and detailed concepts are not in scope here.

Err codemadness.org 70 i 58142
Err codemadness.org 70 i 58143 Err codemadness.org 70 i 58144
    Err codemadness.org 70 i 58145
  • Table of contents

    Err codemadness.org 70 i 58146 Err codemadness.org 70 i 58147
    • Choosing host operating system and version for buildbot
    • Err codemadness.org 70 i 58148
    • Create a FreeBSD playground
    • Err codemadness.org 70 i 58149
    • Introduction to jails
    • Err codemadness.org 70 i 58150
    • Overview of buildbot
    • Err codemadness.org 70 i 58151
    • Set up jails
    • Err codemadness.org 70 i 58152
    • Install buildbot master
    • Err codemadness.org 70 i 58153
    • Run buildbot master
    • Err codemadness.org 70 i 58154
    • Install buildbot worker
    • Err codemadness.org 70 i 58155
    • Run buildbot worker
    • Err codemadness.org 70 i 58156
    • Set up web server nginx to access buildbot UI
    • Err codemadness.org 70 i 58157
    • Run your first build
    • Err codemadness.org 70 i 58158
    • Production hints
    • Err codemadness.org 70 i 58159
    • Finished!
  • Err codemadness.org 70 i 58160
  • Choosing host operating system and version for buildbot

  • Err codemadness.org 70 i 58161
Err codemadness.org 70 i 58162 Err codemadness.org 70 i 58163
Err codemadness.org 70 i 58164

We choose the released version of FreeBSD (11.1-RELEASE at the moment). There is no particular reason for it, and as a matter of fact buildbot as a Python-based server is very cross-platform; therefore the underlying OS platform and version should not make a large difference.

Err codemadness.org 70 i 58165 Err codemadness.org 70 i 58166

It will make a difference for what you do with buildbot, however. For instance, poudriere is the de-facto standard for building packages from source on FreeBSD. Builds run in jails which may be any FreeBSD base system version older or equal to the host’s version (reason will be explained below). In other words, if the host is FreeBSD 11.1, build jails created by poudriere could e.g. use 9.1, 10.3, 11.0, 11.1, but potentially not version 12 or newer because of incompatibilities with the host’s kernel (jails do not run their own kernel as full virtual machines do). To not prolong this article over the intended scope, the details of which nice things could be done or automated with buildbot are not covered.

Err codemadness.org 70 i 58167 Err codemadness.org 70 i 58168

Package names on the FreeBSD platform are independent of the OS version, since external software (as in: not part of base system) is maintained in FreeBSD ports. So, if your chosen FreeBSD version (here: 11) is still officially supported, the packages mentioned in this post should work. In the unlikely event of package name changes before you read this article, you should be able to find the actual package names like pkg search buildbot.

Err codemadness.org 70 i 58169 Err codemadness.org 70 i 58170

Other operating systems like the various Linux distributions will use different package names but might also offer buildbot pre-packaged. If not, the buildbot installation manual offers steps to install it manually. In such case, the downside is that you will have to maintain and update the buildbot modules outside the stability and (semi-)automatic updates of your OS packages.

Err codemadness.org 70 i 58171
Err codemadness.org 70 i 58172 Err codemadness.org 70 i 58173
    Err codemadness.org 70 i 58174
  • See article for the rest
  • Err codemadness.org 70 i 58175
Err codemadness.org 70 i 58176 Err codemadness.org 70 i 58177


Err codemadness.org 70 i 58178 Err codemadness.org 70 i 58179

DigitalOcean

Err codemadness.org 70 i 58180 Err codemadness.org 70 i 58181

Dumping your USB

Err codemadness.org 70 i 58182 Err codemadness.org 70 i 58183
Err codemadness.org 70 i 58184

One of the many new features of OpenBSD 6.3 is the possibility to dump USB traffic to userland via bpf(4). This can be done with tcpdump(8) by specifying a USB bus as interface:

Err codemadness.org 70 i 58185
Err codemadness.org 70 i 58186 Err codemadness.org 70 i 58187

```

Err codemadness.org 70 i 58188 Err codemadness.org 70 i 58189

tcpdump -Xx -i usb0

Err codemadness.org 70 i 58190 Err codemadness.org 70 i 58191

tcpdump: listening on usb0, link-type USBPCAP Err codemadness.org 70 i 58192 12:28:03.317945 bus 0 < addr 1: ep1 intr 2 Err codemadness.org 70 i 58193 0000: 0400 ..

Err codemadness.org 70 i 58194 Err codemadness.org 70 i 58195

12:28:03.318018 bus 0 > addr 1: ep0 ctrl 8 Err codemadness.org 70 i 58196 0000: 00a3 0000 0002 0004 00 .........
Err codemadness.org 70 i 58197 [...] Err codemadness.org 70 i 58198 ```

Err codemadness.org 70 i 58199 Err codemadness.org 70 i 58200
Err codemadness.org 70 i 58201

As you might have noted I decided to implement the existing USBPcap capture format. A capture format is required because USB packets do not include all the necessary information to properly interpret them. I first thought I would implement libpcap's DLTUSB but then I quickly realize that this was not a standard. It is instead a FreeBSD specific format which has been since then renamed DLTUSBFREEBSD. Err codemadness.org 70 i 58202 But I didn't want to embrace xkcd #927, so I look at the existing formats: DLTUSBFREEBSD, DLTUSBLINUX, DLTUSBLINUXMMAPPED, DLTUSBDARWIN and DLT_USBPCAP. I was first a bit sad to see that nobody could agree on a common format then I moved on and picked the simplest one: USBPcap. Err codemadness.org 70 i 58203 Implementing an already existing format gives us out-of-box support for all the tools supporting it. That's why having common formats let us share our energy. In the case of USBPcap it is already supported by Wireshark, so you can already inspect your packet graphically. For that you need to first capture raw packets:

Err codemadness.org 70 i 58204
Err codemadness.org 70 i 58205 Err codemadness.org 70 i 58206

```

Err codemadness.org 70 i 58207 Err codemadness.org 70 i 58208

tcpdump -s 3303 -w usb.pcap -i usb0

Err codemadness.org 70 i 58209 Err codemadness.org 70 i 58210

tcpdump: listening on usb0, link-type USBPCAP Err codemadness.org 70 i 58211 ^C Err codemadness.org 70 i 58212 208 packets received by filter Err codemadness.org 70 i 58213 0 packets dropped by kernel Err codemadness.org 70 i 58214 ```

Err codemadness.org 70 i 58215 Err codemadness.org 70 i 58216
Err codemadness.org 70 i 58217

USB packets can be quite big, that's why I'm not using tcpdump(8)'s default packet size. In this case, I want to make sure I can dump the complete uaudio(4) frames. Err codemadness.org 70 i 58218 It is important to say that what is dumped to userland is what the USB stack sees. Packets sent on the wire might differ, especially when it comes to retries and timing. So this feature is not here to replace any USB analyser, however I hope that it will help people understand how things work and what the USB stack is doing. Even I found some interesting timing issues while implementing isochronous support.

Err codemadness.org 70 i 58219
Err codemadness.org 70 i 58220 Err codemadness.org 70 i 58221


Err codemadness.org 70 i 58222 Err codemadness.org 70 i 58223

Run OpenBSD on your web server

Err codemadness.org 70 i 58224 Err codemadness.org 70 i 58225 Err codemadness.org 70 i 58228 Err codemadness.org 70 i 58229
Err codemadness.org 70 i 58230

As soon as you're there you can enable an httpd(8) daemon, it's already installed on OpenBSD, you just need to configure it:

Err codemadness.org 70 i 58231
Err codemadness.org 70 i 58232 Err codemadness.org 70 i 58233

www# vi /etc/httpd.conf

Err codemadness.org 70 i 58234 Err codemadness.org 70 i 58235
    Err codemadness.org 70 i 58236
  • Add two server sections---one for www and another for naked domain (all requests are redirected to www).
  • Err codemadness.org 70 i 58237
Err codemadness.org 70 i 58238 Err codemadness.org 70 i 58239

``` Err codemadness.org 70 i 58240 server "www.example.com" { Err codemadness.org 70 i 58241 listen on * port 80 Err codemadness.org 70 i 58242 root "/htdocs/www.example.com" Err codemadness.org 70 i 58243 }

Err codemadness.org 70 i 58244 Err codemadness.org 70 i 58245

server "example.com" { Err codemadness.org 70 i 58246 listen on * port 80 Err codemadness.org 70 i 58247 block return 301 "http://www.example.com$REQUEST_URI" Err codemadness.org 70 i 58248 } Err codemadness.org 70 i 58249 ```

Err codemadness.org 70 i 58250 Err codemadness.org 70 i 58251
    Err codemadness.org 70 i 58252
  • httpd is chrooted to /var/www by default, so let's make a document root directory:
  • Err codemadness.org 70 i 58253
Err codemadness.org 70 i 58254 Err codemadness.org 70 i 58255

www# mkdir -p /var/www/htdocs/www.example.com

Err codemadness.org 70 i 58256 Err codemadness.org 70 i 58257
    Err codemadness.org 70 i 58258
  • Save and check this configuration:
  • Err codemadness.org 70 i 58259
Err codemadness.org 70 i 58260 Err codemadness.org 70 i 58261

Err codemadness.org 70 i 58262 www# httpd -n Err codemadness.org 70 i 58263 configuration ok Err codemadness.org 70 i 58264

Err codemadness.org 70 i 58265 Err codemadness.org 70 i 58266
    Err codemadness.org 70 i 58267
  • Enable httpd(8) daemon and start it.
  • Err codemadness.org 70 i 58268
Err codemadness.org 70 i 58269 Err codemadness.org 70 i 58270

Err codemadness.org 70 i 58271 www# rcctl enable httpd Err codemadness.org 70 i 58272 www# rcctl start httpd Err codemadness.org 70 i 58273

Err codemadness.org 70 i 58274 Err codemadness.org 70 i 58275
    Err codemadness.org 70 i 58276
  • Publish your website

  • Err codemadness.org 70 i 58277
  • Copy your website content into /var/www/htdocs/www.example.com and then test it your web browser.

  • Err codemadness.org 70 i 58278
Err codemadness.org 70 i 58279 Err codemadness.org 70 i 58280

http://XXX.XXX.XXX.XXX/

Err codemadness.org 70 i 58281 Err codemadness.org 70 i 58282
Err codemadness.org 70 i 58283

Your web server should be up and running.

Err codemadness.org 70 i 58284
Err codemadness.org 70 i 58285 Err codemadness.org 70 i 58286
    Err codemadness.org 70 i 58287
  • Update DNS records
  • Err codemadness.org 70 i 58288
Err codemadness.org 70 i 58289 Err codemadness.org 70 i 58290
Err codemadness.org 70 i 58291

If there is another HTTPS server using this domain, configure that server to redirect all HTTPS requests to HTTP.

Err codemadness.org 70 i 58292 Err codemadness.org 70 i 58293

Now as your new server is ready you can update DNS records accordingly.

Err codemadness.org 70 i 58294
Err codemadness.org 70 i 58295 Err codemadness.org 70 i 58296

Err codemadness.org 70 i 58297 example.com. 300 IN A XXX.XXX.XXX.XXX Err codemadness.org 70 i 58298 www.example.com. 300 IN A XXX.XXX.XXX.XXX Err codemadness.org 70 i 58299

Err codemadness.org 70 i 58300 Err codemadness.org 70 i 58301
    Err codemadness.org 70 i 58302
  • Examine your DNS is propagated.
  • Err codemadness.org 70 i 58303
Err codemadness.org 70 i 58304 Err codemadness.org 70 i 58305

$ dig example.com www.example.com

Err codemadness.org 70 i 58306 Err codemadness.org 70 i 58307
    Err codemadness.org 70 i 58308
  • Check IP addresses it answer sections. If they are correct, you should be able to access your new web server by its domain name.

  • Err codemadness.org 70 i 58309
  • What's next? Enable HTTPS on your server.

  • Err codemadness.org 70 i 58310
Err codemadness.org 70 i 58311 Err codemadness.org 70 i 58312


Err codemadness.org 70 i 58313 Err codemadness.org 70 i 58314

Modern Akonadi and KMail on FreeBSD

Err codemadness.org 70 i 58315 Err codemadness.org 70 i 58316
Err codemadness.org 70 i 58317

For, quite literally a year or more, KMail and Akonadi on FreeBSD have been only marginally useful, at best. KDE4 era KMail was pretty darn good, but everything after that has had a number of FreeBSD users tearing out their hair. Sure, you can go to Trojitá, which has its own special problems and is generally “meh”, or bail out entirely to webmail, but .. KMail is a really great mail client when it works. Which, on Linux desktops, is nearly always, and on FreeBSD, is was nearly never.

Err codemadness.org 70 i 58318 Err codemadness.org 70 i 58319

I looked at it with Dan and Volker last summer, briefly, and we got not much further than “hmm”. There’s a message about “The world is going to end!” which hardly makes sense, it means that a message has been truncated or corrupted while traversing a UNIX domain socket.

Err codemadness.org 70 i 58320 Err codemadness.org 70 i 58321

Now Alexandre Martins — praise be! — has wandered in with a likely solution. KDE Bug 381850 contains a suggestion, which deserves to be publicised (and tested):

Err codemadness.org 70 i 58322
Err codemadness.org 70 i 58323 Err codemadness.org 70 i 58324

sysctl net.local.stream.recvspace=65536 Err codemadness.org 70 i 58325 sysctl net.local.stream.sendspace=65536

Err codemadness.org 70 i 58326 Err codemadness.org 70 i 58327
Err codemadness.org 70 i 58328

The default FreeBSD UNIX local socket buffer space is 8kiB. Bumping the size up to 64kiB — which matches the size that Linux has by default — suddenly makes KMail and Akonadi shine again. No other changes, no recompiling, just .. bump the sysctls (perhaps also in /etc/sysctl.conf) and KMail from Area51 hums along all day without ending the world.

Err codemadness.org 70 i 58329 Err codemadness.org 70 i 58330

Since changing this value may have other effects, and Akonadi shouldn’t be dependent on a specific buffer size anyway, I’m looking into the Akonadi code (encouraged by Dan) to either automatically size the socket buffers, or to figure out where in the underlying code the assumption about buffer size lives. So for now, sysctl can make KMail users on FreeBSD happy, and later we hope to have things fully automatic (and if that doesn’t pan out, well, pkg-message exists).

Err codemadness.org 70 i 58331 Err codemadness.org 70 i 58332

PS. Modern KDE PIM applications — Akonadi, KMail — which live in the deskutils/ category of the official FreeBSD ports were added to the official tree April 10th, so you can get your fix now from the official tree.

Err codemadness.org 70 i 58333
Err codemadness.org 70 i 58334 Err codemadness.org 70 i 58335


Err codemadness.org 70 i 58336 Err codemadness.org 70 i 58337

Beastie Bits

Err codemadness.org 70 i 58338 Err codemadness.org 70 i 58339 Err codemadness.org 70 i 58348 Err codemadness.org 70 i 58349


Err codemadness.org 70 i 58350 Err codemadness.org 70 i 58351

Tarsnap ad

Err codemadness.org 70 i 58352 Err codemadness.org 70 i 58353

Feedback/Questions

Err codemadness.org 70 i 58354 Err codemadness.org 70 i 58355 Err codemadness.org 70 i 58361 Err codemadness.org 70 i 58362


Err codemadness.org 70 i 58363 Err codemadness.org 70 i 58364
    Err codemadness.org 70 i 58365
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 58366
]]> Err codemadness.org 70 i 58367
Err codemadness.org 70 i 58368 https://fireside.fm/player/v2/FYhhasNR+Cvcf3bp4 Err codemadness.org 70 i 58369 Err codemadness.org 70 i 58370 ]]> Err codemadness.org 70 i 58371 Err codemadness.org 70 i 58372
Err codemadness.org 70 i 58373 Err codemadness.org 70 i 58374 Episode 247: Interning for FreeBSD | BSD Now 247 Err codemadness.org 70 i 58375 https://www.bsdnow.tv/247 Err codemadness.org 70 i 58376 http://feed.jupiter.zone/bsdnow#entry-1994 Err codemadness.org 70 i 58377 Thu, 24 May 2018 12:00:00 -0700 Err codemadness.org 70 i 58378 Allan Jude Err codemadness.org 70 i 58379 Err codemadness.org 70 i 58380 full Err codemadness.org 70 i 58381 Allan Jude Err codemadness.org 70 i 58382 FreeBSD internship learnings, exciting developments coming to FreeBSD, running FreeNAS on DigitalOcean, Network Manager control for OpenBSD, OpenZFS User Conference Videos are here and batch editing files with ed. Err codemadness.org 70 i 58383 1:29:59 Err codemadness.org 70 i 58384 no Err codemadness.org 70 i 58385 Err codemadness.org 70 i 58386 FreeBSD internship learnings, exciting developments coming to FreeBSD, running FreeNAS on DigitalOcean, Network Manager control for OpenBSD, OpenZFS User Conference Videos are here and batch editing files with ed. Err codemadness.org 70 i 58387 <h2>Headlines</h2> Err codemadness.org 70 i 58388 <h3><a href="https://www.freebsdfoundation.org/blog/guest-blog-what-i-learned-during-my-freebsd-internship/">What I learned during my FreeBSD intership</a></h3> Err codemadness.org 70 i 58389 Err codemadness.org 70 i 58390 <blockquote> Err codemadness.org 70 i 58391 <p>Hi, my name is Mitchell Horne. I am a computer engineering student at the University of Waterloo, currently in my third year of studies, and fortunate to have been one of the FreeBSD Foundation’s co-op students this past term (January to April). During this time I worked under Ed Maste, in the Foundation’s small Kitchener office, along with another co-op student Arshan Khanifar. My term has now come to an end, and so I’d like to share a little bit about my experience as a newcomer to FreeBSD and open-source development.</p> Err codemadness.org 70 i 58392 Err codemadness.org 70 i 58393 <p>I’ll begin with some quick background — and a small admission of guilt. I have been an open-source user for a large part of my life. When I was a teenager I started playing around with Linux, which opened my eyes to the wider world of free software. Other than some small contributions to GNOME, my experience has been mostly as an end user; however, the value of these projects and the open-source philosophy was not lost on me, and is most of what motivated my interest in this position. Before beginning this term I had no personal experience with any of the BSDs, although I knew of their existence and was extremely excited to receive the position. I knew it would be a great opportunity for growth, but I must confess that my naivety about FreeBSD caused me to make the silent assumption that this would be a form of compromise — a stepping stone that would eventually allow me to work on open-source projects that are somehow “greater” or more “legitimate”. After four months spent immersed in this project I have learned how it operates, witnessed its community, and learned about its history. I am happy to admit that I was completely mistaken. Saying it now seems obvious, but FreeBSD is a project with its own distinct uses, goals, and identity. For many there may exist no greater opportunity than to work on FreeBSD full time, and with what I know now I would have a hard time coming up with a project that is more “legitimate”.</p> Err codemadness.org 70 i 58394 </blockquote> Err codemadness.org 70 i 58395 Err codemadness.org 70 i 58396 <ul> Err codemadness.org 70 i 58397 <li>What I Liked</li> Err codemadness.org 70 i 58398 </ul> Err codemadness.org 70 i 58399 Err codemadness.org 70 i 58400 <blockquote> Err codemadness.org 70 i 58401 <p>In all cases, the work I submitted this term was reviewed by no less than two people before being committed. The feedback and criticism I received was always both constructive and to the point, and it commented on everything from high-level ideas to small style issues. I appreciate having these thorough reviews in place, since I believe it ultimately encourages people to accept only their best work. It is indicative of the high quality that already exists within every aspect of this project, and this commitment to quality is something that should continue to be honored as a core value. As I’ve discovered in some of my previous work terms, it is all too easy cut corners in the name of a deadline or changing priorities, but the fact that FreeBSD doesn’t need to make these types of compromises is a testament to the power of free software.</p> Err codemadness.org 70 i 58402 Err codemadness.org 70 i 58403 <p>It’s a small thing, but the quality and completeness of the FreeBSD documentation was hugely helpful throughout my term. Everything you might need to know about utilities, library functions, the kernel, and more can be found in a man page; and the handbook is a great resource as both an introduction to the operating system and a reference. I only wish I had taken some time earlier in the term to explore the different documents more thoroughly, as they cover a wide range of interesting and useful topics. The effort people put into writing and maintaining FreeBSD’s documentation is easy to overlook, but its value cannot be overstated.</p> Err codemadness.org 70 i 58404 </blockquote> Err codemadness.org 70 i 58405 Err codemadness.org 70 i 58406 <ul> Err codemadness.org 70 i 58407 <li>What I Learned</li> Err codemadness.org 70 i 58408 </ul> Err codemadness.org 70 i 58409 Err codemadness.org 70 i 58410 <blockquote> Err codemadness.org 70 i 58411 <p>Although there was a lot I enjoyed, there were certainly many struggles I faced throughout the term, and lessons to be learned from them. I expect that some of issues I faced may be specific to FreeBSD, while others may be common to open-source projects in general. I don’t have enough experience to speculate on which is which, so I will leave this to the reader.</p> Err codemadness.org 70 i 58412 Err codemadness.org 70 i 58413 <p>The first lesson can be summed up simply: you have to advocate for your own work. FreeBSD is made up in large part by volunteer efforts, and in many cases there is more work to go around than people available to do it. A consequence of this is that there will not be anybody there to check up on you. Even in my position where I actually had a direct supervisor, Ed often had his plate full with so many other things that the responsibility to find someone to look at my work fell to me. Admittedly, a couple of smaller changes I worked on got left behind or stuck in review simply because there wasn’t a clear person/place to reach out to.</p> Err codemadness.org 70 i 58414 Err codemadness.org 70 i 58415 <p>I think this is both a barrier of entry to FreeBSD and a mental hurdle that I needed to get over. If there’s a change you want to see included or reviewed, then you may have to be the one to push for it, and there’s nothing wrong with that. Perhaps this process should be easier for newcomers or infrequent contributors (the disconnect between Bugzilla and Phabricator definitely leaves a lot to be desired), but we also have to be aware that this simply isn’t the reality right now. Getting your work looked at may require a little bit more self-motivation, but I’d argue that there are much worse problems a project like FreeBSD could have than this.</p> Err codemadness.org 70 i 58416 Err codemadness.org 70 i 58417 <p>I understand this a lot better now, but it is still something I struggle with. I’m not naturally the type of person who easily connects with others or asks for help, so I see this as an area for future growth rather than simply a struggle I encountered and overcame over the course of this work term. Certainly it is an important skill to understand the value of your own work, and equally important is the ability to communicate that value to others.</p> Err codemadness.org 70 i 58418 Err codemadness.org 70 i 58419 <p>I also learned the importance of starting small. My first week or two on the job mainly involved getting set up and comfortable with the workflow. After this initial stage, I began exploring the project and found myself overwhelmed by its scale. With so many possible areas to investigate, and so much work happening at once, I felt quite lost on where to begin. Many of the potential projects I found were too far beyond my experience level, and most small bugs were picked up and fixed quickly by more experienced contributors before I could even get to them.</p> Err codemadness.org 70 i 58420 Err codemadness.org 70 i 58421 <p>It’s easy to make the mistake that FreeBSD is made up solely of a few rock-star committers that do everything. This is how it appears at face-value, as reading through commits, bug reports, and mailing lists yields a few of the same names over and over. The reality is that just as important are the hundreds of users and infrequent contributors who take the time to submit bug reports, patches, or feedback. Even though there are some people who would fall under the umbrella of a rock-star committer, they didn’t get there overnight. Rather, they have built their skills and knowledge through many years of involvement in FreeBSD and similar projects.</p> Err codemadness.org 70 i 58422 Err codemadness.org 70 i 58423 <p>As a student coming into this project and having high expectations of myself, it was easy to set the bar too high by comparing myself against those big committers, and feel that my work was insignificant, inadequate, and simply too infrequent. In reality, there is no reason I should have felt this way. In a way, this comparison is disrespectful to those who have reached this level, as it took them a long time to get there, and it’s a humbling reminder that any skill worth learning requires time, patience, and dedication. It is easy to focus on an end product and simply wish to be there, but in order to be truly successful one must start small, and find satisfaction in the struggle of learning something new. I take pride in the many small successes I’ve had throughout my term here, and appreciate the fact that my journey into FreeBSD and open-source software is only just beginning.</p> Err codemadness.org 70 i 58424 </blockquote> Err codemadness.org 70 i 58425 Err codemadness.org 70 i 58426 <ul> Err codemadness.org 70 i 58427 <li>Closing Thoughts</li> Err codemadness.org 70 i 58428 </ul> Err codemadness.org 70 i 58429 Err codemadness.org 70 i 58430 <blockquote> Err codemadness.org 70 i 58431 <p>I would like to close with some brief thank-you’s. First, to everyone at the Foundation for being so helpful, and allowing this position to exist in the first place. I am extremely grateful to have been given this unique opportunity to learn about and give back to the open-source world. I’d also like to thank my office mates; Ed: for being an excellent mentor, who offered an endless wealth of knowledge and willingness to share it. My classmate and fellow intern Arshan: for giving me a sense of camaraderie and the comforting reminder that at many moments he was as lost as I was. Finally, a quick thanks to everyone else I crossed paths with who offered reviews and advice. I appreciate your help and look forward to working with you all further.</p> Err codemadness.org 70 i 58432 Err codemadness.org 70 i 58433 <p>I am walking away from this co-op with a much greater appreciation for this project, and have made it a goal to remain involved in some capacity. I feel that I’ve gained a little bit of a wider perspective on my place in the software world, something I never really got from my previous co-ops. Whether it ends up being just a stepping stone, or the beginning of much larger involvement, I thoroughly enjoyed my time here.</p> Err codemadness.org 70 i 58434 </blockquote> Err codemadness.org 70 i 58435 Err codemadness.org 70 i 58436 <hr /> Err codemadness.org 70 i 58437 <h3>Recent Developments in FreeBSD</h3> Err codemadness.org 70 i 58438 Err codemadness.org 70 i 58439 <ul> Err codemadness.org 70 i 58440 <li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=333890">Support for encrypted, compressed (gzip and zstd), and network crash dumps enabled by default on most platforms</a></li> Err codemadness.org 70 i 58441 <li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=333649">Intel Microcode Splitter</a></li> Err codemadness.org 70 i 58442 <li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=334005">Intel Spec Store Bypass Disable control</a></li> Err codemadness.org 70 i 58443 <li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=333713">Raspberry Pi 3B+ Ethernet Driver</a></li> Err codemadness.org 70 i 58444 <li><a href="https://reviews.freebsd.org/D15522">IBRS for i386</a></li> Err codemadness.org 70 i 58445 <li>Upcoming:</li> Err codemadness.org 70 i 58446 <li><a href="https://reviews.freebsd.org/D15523">Microcode updater for AMD CPUs</a></li> Err codemadness.org 70 i 58447 <li><a href="https://reviews.freebsd.org/D15525">the RACK TCP/IP stack, from Netflix</a></li> Err codemadness.org 70 i 58448 <li>Voting in the FreeBSD Core Election begins today:</li> Err codemadness.org 70 i 58449 </ul> Err codemadness.org 70 i 58450 Err codemadness.org 70 i 58451 <hr /> Err codemadness.org 70 i 58452 <p><strong>DigitalOcean</strong> Err codemadness.org 70 i 58453 <a href="http://do.co/bsdnow">Digital Ocean Promo Link for BSD Now Listeners</a></p> Err codemadness.org 70 i 58454 Err codemadness.org 70 i 58455 <hr /> Err codemadness.org 70 i 58456 <h3><a href="http://www.shlomimarco.com/blog/running-freenas-on-a-digitalocean-droplet">Running FreeNAS on a DigitalOcean Droplet</a></h3> Err codemadness.org 70 i 58457 Err codemadness.org 70 i 58458 <ul> Err codemadness.org 70 i 58459 <li>Need to backup your FreeNAS offsite? Run a locked down instance in the cloud, and replicate to it</li> Err codemadness.org 70 i 58460 <li>The tutorial walks though the steps of converting a fresh FreeBSD based droplet into a FreeNAS</li> Err codemadness.org 70 i 58461 <li>Create a droplet, and add a small secondary block-storage device</li> Err codemadness.org 70 i 58462 <li>Boot the droplet, login, and download FreeNAS</li> Err codemadness.org 70 i 58463 <li>Disable swap, enable ‘foot shooting’ mode in GEOM</li> Err codemadness.org 70 i 58464 <li>use dd to write the FreeNAS installer to the boot disk</li> Err codemadness.org 70 i 58465 <li>Reboot the droplet, and use the FreeNAS installer to install FreeNAS to the secondary block storage device</li> Err codemadness.org 70 i 58466 <li>Now, reimage the droplet with FreeBSD again, to replace the FreeNAS installer</li> Err codemadness.org 70 i 58467 <li>Boot, and dd FreeNAS from the secondary block storage device back to the boot disk</li> Err codemadness.org 70 i 58468 <li>You can now destroy the secondary block device</li> Err codemadness.org 70 i 58469 <li>Now you have a FreeNAS, and can take it from there.</li> Err codemadness.org 70 i 58470 <li>Use the FreeNAS replication wizard to configure sending snapshots from your home NAS to your cloud NAS</li> Err codemadness.org 70 i 58471 <li>Note: You might consider creating a new block storage device to create a larger pool, that you can more easily grow over time, rather than using the boot device in the droplet as your main pool.</li> Err codemadness.org 70 i 58472 </ul> Err codemadness.org 70 i 58473 Err codemadness.org 70 i 58474 <hr /> Err codemadness.org 70 i 58475 <h2>News Roundup</h2> Err codemadness.org 70 i 58476 Err codemadness.org 70 i 58477 <h3><a href="http://www.vincentdelft.be/post/post_20180411">Network Manager Control for OpenBSD (Updated)</a></h3> Err codemadness.org 70 i 58478 Err codemadness.org 70 i 58479 <ul> Err codemadness.org 70 i 58480 <li>Generalities</li> Err codemadness.org 70 i 58481 <li><p>I just remind the scope of this small tool:</p> Err codemadness.org 70 i 58482 Err codemadness.org 70 i 58483 <ul><li>allow you to pre-define several cable or wifi connections</li> Err codemadness.org 70 i 58484 <li>let nmctl to connect automatically to the first available one</li> Err codemadness.org 70 i 58485 <li>allow you to easily switch from one network connection to an other one</li> Err codemadness.org 70 i 58486 <li>create openbox dynamic menus</li></ul></li> Err codemadness.org 70 i 58487 <li><p>Enhancements in this version</p></li> Err codemadness.org 70 i 58488 </ul> Err codemadness.org 70 i 58489 Err codemadness.org 70 i 58490 <blockquote> Err codemadness.org 70 i 58491 <p>This is my second development version: 0.2. Err codemadness.org 70 i 58492 I've added performed several changes in the code:</p> Err codemadness.org 70 i 58493 </blockquote> Err codemadness.org 70 i 58494 Err codemadness.org 70 i 58495 <ul> Err codemadness.org 70 i 58496 <li>code style cleanup, to better match the python recommendations</li> Err codemadness.org 70 i 58497 <li>adapt the tool to allow to connect to an Open-wifi having blancs in the name. This happens in some hotels</li> Err codemadness.org 70 i 58498 <li>implement a loop as work-around concerning the arp table issue.</li> Err codemadness.org 70 i 58499 </ul> Err codemadness.org 70 i 58500 Err codemadness.org 70 i 58501 <blockquote> Err codemadness.org 70 i 58502 <p>The source code is still on the git of Sourceforge.net. Err codemadness.org 70 i 58503 You can see the files <a href="https://sourceforge.net/p/nmctl/code/ci/master/tree/">here</a></p> Err codemadness.org 70 i 58504 Err codemadness.org 70 i 58505 <p>And you can download the last version <a href="https://sourceforge.net/p/nmctl/code/ci/master/tarball">here</a></p> Err codemadness.org 70 i 58506 </blockquote> Err codemadness.org 70 i 58507 Err codemadness.org 70 i 58508 <ul> Err codemadness.org 70 i 58509 <li>Feedbacks after few months</li> Err codemadness.org 70 i 58510 </ul> Err codemadness.org 70 i 58511 Err codemadness.org 70 i 58512 <blockquote> Err codemadness.org 70 i 58513 <p>I'm using this script on my OpenBSD laptop since about 5 months. In my case, I'm mainly using the openbox menus and the --restart option.</p> Err codemadness.org 70 i 58514 </blockquote> Err codemadness.org 70 i 58515 Err codemadness.org 70 i 58516 <ul> Err codemadness.org 70 i 58517 <li>The Openbox menus</li> Err codemadness.org 70 i 58518 </ul> Err codemadness.org 70 i 58519 Err codemadness.org 70 i 58520 <blockquote> Err codemadness.org 70 i 58521 <p>The openbox menus are working fine. As explain in my previous blog, I just have to create 2 entries in my openbox's menu.xml file, and all the rest comes automatically from nmctl itself thanks to the --list and --scan options. Err codemadness.org 70 i 58522 I've not changed this part of nmctl since it works as expected (for me :-) ).</p> Err codemadness.org 70 i 58523 </blockquote> Err codemadness.org 70 i 58524 Err codemadness.org 70 i 58525 <ul> Err codemadness.org 70 i 58526 <li>The --restart option</li> Err codemadness.org 70 i 58527 </ul> Err codemadness.org 70 i 58528 Err codemadness.org 70 i 58529 <blockquote> Err codemadness.org 70 i 58530 <p>Because I'm very lazy, and because OpenBSD is very simple to use, I've added the command "nmctl --restart" in the /etc/apm/resume script. Thanks to apmd, this script will be used each time I'm opening the lid of my laptop. Err codemadness.org 70 i 58531 In other words, each time I'll opening my laptop, nmctl will search the optimum network connection for me. Err codemadness.org 70 i 58532 But I had several issues in this scenario. Err codemadness.org 70 i 58533 Most of the problems were linked to the arp table issues. Indeed, in some circumstances, my proxy IP address was associated to the cable interface instead of the wifi interface or vice-versa. As consequence I'm not able to connect to the proxy, thus not able to connect to internet. So the ping to google (final test nmctl perform) is failing. Err codemadness.org 70 i 58534 Knowing that anyhow, I'm doing a full arp cleanup, it's not clear for me from where this problem come from. To solve this situation I've implemented a "retry" concept. In other words, before testing an another possible network connection (as listed in my /etc/nmctl.conf file), the script try 3x the current connection's parameters. Err codemadness.org 70 i 58535 If you want to reduce or increase this figures, you can do it via the --retry parameter.</p> Err codemadness.org 70 i 58536 </blockquote> Err codemadness.org 70 i 58537 Err codemadness.org 70 i 58538 <ul> Err codemadness.org 70 i 58539 <li>Results of my expertise with this small tool</li> Err codemadness.org 70 i 58540 </ul> Err codemadness.org 70 i 58541 Err codemadness.org 70 i 58542 <blockquote> Err codemadness.org 70 i 58543 <p>Where ever I'm located, my laptop is now connecting automatically to the wifi / cable connection previously identified for this location. Err codemadness.org 70 i 58544 Currently I have 3 places where I have Wifi credentials and 2 offices places where I just have to plug the network cable. Err codemadness.org 70 i 58545 Since the /etc/apm/resume scripts is triggered when I open the lid of the laptop, I just have to make sure that I plug the RJ45 before opening the laptop. For the rest, I do not have to type any commands, OpenBSD do all what is needed ;-). Err codemadness.org 70 i 58546 I hotels or restaurants, I can just connect to the Open Wifi thanks to the openbox menu created by "nmctl --scan".</p> Err codemadness.org 70 i 58547 </blockquote> Err codemadness.org 70 i 58548 Err codemadness.org 70 i 58549 <ul> Err codemadness.org 70 i 58550 <li><p>Next steps</p></li> Err codemadness.org 70 i 58551 <li><p>Documentation</p></li> Err codemadness.org 70 i 58552 </ul> Err codemadness.org 70 i 58553 Err codemadness.org 70 i 58554 <blockquote> Err codemadness.org 70 i 58555 <p>The tool is missing lot of documentation. I appreciate OpenBSD for his great documentation, so I have to do the same. Err codemadness.org 70 i 58556 I plan to write a README and a man page at first instances. Err codemadness.org 70 i 58557 But since my laziness, I will do it as soon as I see some interest for this tool from other persons.</p> Err codemadness.org 70 i 58558 </blockquote> Err codemadness.org 70 i 58559 Err codemadness.org 70 i 58560 <ul> Err codemadness.org 70 i 58561 <li>Tests</li> Err codemadness.org 70 i 58562 </ul> Err codemadness.org 70 i 58563 Err codemadness.org 70 i 58564 <blockquote> Err codemadness.org 70 i 58565 <p>I now have to travel and see how to see the script react on the different situations. Err codemadness.org 70 i 58566 Interested persons are welcome to share with me the outcome of their tests. Err codemadness.org 70 i 58567 I'm curious how it work.</p> Err codemadness.org 70 i 58568 </blockquote> Err codemadness.org 70 i 58569 Err codemadness.org 70 i 58570 <hr /> Err codemadness.org 70 i 58571 <h3><a href="https://an.undulating.space/post/180411-erl-openbsd-upgrade/">OpenBSD 6.3 on EdgeRouter Lite simple upgrade method</a></h3> Err codemadness.org 70 i 58572 Err codemadness.org 70 i 58573 <ul> Err codemadness.org 70 i 58574 <li>TL;DR</li> Err codemadness.org 70 i 58575 </ul> Err codemadness.org 70 i 58576 Err codemadness.org 70 i 58577 <blockquote> Err codemadness.org 70 i 58578 <p>OpenBSD 6.3 oceton upgrade instructions may not factor that your ERL is running from the USB key they want wiped with the miniroot63.fs image loaded on. Err codemadness.org 70 i 58579 Place the bsd.rd for OpenBSD 6.3 on the sd0i slice used by U-Boot for the kernel, and then edit the boot command to run it.</p> Err codemadness.org 70 i 58580 </blockquote> Err codemadness.org 70 i 58581 Err codemadness.org 70 i 58582 <ul> Err codemadness.org 70 i 58583 <li>a tiny upgrade</li> Err codemadness.org 70 i 58584 </ul> Err codemadness.org 70 i 58585 Err codemadness.org 70 i 58586 <blockquote> Err codemadness.org 70 i 58587 <p>The OpenBSD documentation is comprehensive, but there might be rough corners around what are probably edge cases in their user base. People running EdgeRouter Lite hardware for example, who are looking to upgrade from 6.2 to 6.3. Err codemadness.org 70 i 58588 The documentation, which gave us everything we needed last time, left me with some questions about how to upgrade. In INSTALL.octeon, the Upgrading section does mention: Err codemadness.org 70 i 58589 The best solution, whenever possible, is to backup your data and reinstall from scratch Err codemadness.org 70 i 58590 I had to check if that directive existed in the documentation for other architectures. I wondered if oceton users were getting singled out. We were not. Just simplicity and pragmatism.</p> Err codemadness.org 70 i 58591 </blockquote> Err codemadness.org 70 i 58592 Err codemadness.org 70 i 58593 <ul> Err codemadness.org 70 i 58594 <li>Reading on:</li> Err codemadness.org 70 i 58595 </ul> Err codemadness.org 70 i 58596 Err codemadness.org 70 i 58597 <blockquote> Err codemadness.org 70 i 58598 <p>To upgrade OpenBSD 6.3 from a previous version, start with the general instructions in the section "Installing OpenBSD". Err codemadness.org 70 i 58599 But that section requires us to boot off of TFTP or NFS. Which I don’t want to do right now. Could also use a USB stick with the miniroot63.fs installed on it. Err codemadness.org 70 i 58600 But as the ERL only has a single USB port, we would have to remove the USB stick with the current install on it. Once we get to the Install or Upgrade prompt, there would be nothing to upgrade. Err codemadness.org 70 i 58601 Well, I guess I could use a USB hub. But the ERL’s USB port is inside the case. With all the screws in. And the tools are neatly put away. And I’d have to pull the USB hub from behind a workstation. And it’s two am. And I cleaned up the cabling in the lab this past weekend. Looks nice for once. Err codemadness.org 70 i 58602 So I don’t want to futz around with all that. Err codemadness.org 70 i 58603 There must be an almost imperceptibly easier way of doing this than setting up a TFTP server or NFS share in five minutes… Right?</p> Err codemadness.org 70 i 58604 </blockquote> Err codemadness.org 70 i 58605 Err codemadness.org 70 i 58606 <hr /> Err codemadness.org 70 i 58607 <p><strong>iXsystems</strong> Err codemadness.org 70 i 58608 <a href="https://www.ixsystems.com/blog/boisetechshow-2018/">Boise Technology Show 2018 Recap</a></p> Err codemadness.org 70 i 58609 Err codemadness.org 70 i 58610 <h3><a href="http://zfs.datto.com/">OpenZFS User Conference Slides &amp; Videos</a></h3> Err codemadness.org 70 i 58611 Err codemadness.org 70 i 58612 <ul> Err codemadness.org 70 i 58613 <li><a href="https://vimeo.com/album/5150026/video/266112599">Thank you ZFS</a></li> Err codemadness.org 70 i 58614 <li><a href="https://vimeo.com/album/5150026/video/266112475">ZSTD Compression</a></li> Err codemadness.org 70 i 58615 <li><a href="https://vimeo.com/album/5150026/video/266111164">Pool Layout Considerations</a></li> Err codemadness.org 70 i 58616 <li><a href="https://vimeo.com/album/5150026/video/266111346">ZFS Releases</a></li> Err codemadness.org 70 i 58617 <li><a href="https://vimeo.com/album/5150026/video/266112077">Helping Developers Help You</a></li> Err codemadness.org 70 i 58618 <li><a href="https://vimeo.com/album/5150026/video/266112233">ZFS and MySQL on Linux</a></li> Err codemadness.org 70 i 58619 <li><a href="https://vimeo.com/album/5150026/video/266110985">Micron</a></li> Err codemadness.org 70 i 58620 <li><a href="https://vimeo.com/album/5150026/video/266108105">OSNEXUS</a></li> Err codemadness.org 70 i 58621 <li><a href="https://vimeo.com/album/5150026/video/266107946">ZFS at Six Feet Up</a></li> Err codemadness.org 70 i 58622 <li><a href="https://vimeo.com/album/5150026/video/266107372">Flexible Disk Use with OpenZFS</a></li> Err codemadness.org 70 i 58623 </ul> Err codemadness.org 70 i 58624 Err codemadness.org 70 i 58625 <hr /> Err codemadness.org 70 i 58626 <h3><a href="https://jvns.ca/blog/2018/05/11/batch-editing-files-with-ed/">Batch editing files with ed</a></h3> Err codemadness.org 70 i 58627 Err codemadness.org 70 i 58628 <ul> Err codemadness.org 70 i 58629 <li>what’s ‘ed’?</li> Err codemadness.org 70 i 58630 </ul> Err codemadness.org 70 i 58631 Err codemadness.org 70 i 58632 <blockquote> Err codemadness.org 70 i 58633 <p>ed is this sort of terrifying text editor. A typical interaction with ed for me in the past has gone something like this:</p> Err codemadness.org 70 i 58634 </blockquote> Err codemadness.org 70 i 58635 Err codemadness.org 70 i 58636 <p><code> Err codemadness.org 70 i 58637 $ ed Err codemadness.org 70 i 58638 help Err codemadness.org 70 i 58639 ? Err codemadness.org 70 i 58640 h Err codemadness.org 70 i 58641 ? Err codemadness.org 70 i 58642 asdfasdfasdfsadf Err codemadness.org 70 i 58643 ? Err codemadness.org 70 i 58644 &lt;close terminal in frustration&gt; Err codemadness.org 70 i 58645 </code></p> Err codemadness.org 70 i 58646 Err codemadness.org 70 i 58647 <blockquote> Err codemadness.org 70 i 58648 <p>Basically if you do something wrong, ed will just print out a single, unhelpful, ?. So I’d basically dismissed ed as an old arcane Unix tool that had no practical use today. Err codemadness.org 70 i 58649 vi is a successor to ed, except with a visual interface instead of this ?</p> Err codemadness.org 70 i 58650 </blockquote> Err codemadness.org 70 i 58651 Err codemadness.org 70 i 58652 <ul> Err codemadness.org 70 i 58653 <li>surprise: Ed is actually sort of cool and fun</li> Err codemadness.org 70 i 58654 </ul> Err codemadness.org 70 i 58655 Err codemadness.org 70 i 58656 <blockquote> Err codemadness.org 70 i 58657 <p>So if Ed is a terrifying thing that only prints ? at you, why am I writing a blog post about it? WELL!!!! Err codemadness.org 70 i 58658 On April 1 this year, Michael W Lucas published a new short book called Ed Mastery. I like his writing, and even though it was sort of an april fool’s joke, it was ALSO a legitimate actual real book, and so I bought it and read it to see if his claims that Ed is actually interesting were true. Err codemadness.org 70 i 58659 And it was so cool!!!! I found out:</p> Err codemadness.org 70 i 58660 </blockquote> Err codemadness.org 70 i 58661 Err codemadness.org 70 i 58662 <ul> Err codemadness.org 70 i 58663 <li>how to get Ed to give you better error messages than just ?</li> Err codemadness.org 70 i 58664 <li>that the name of the grep command comes from ed syntax (g/re/p)</li> Err codemadness.org 70 i 58665 <li>the basics of how to navigate and edit files using ed</li> Err codemadness.org 70 i 58666 </ul> Err codemadness.org 70 i 58667 Err codemadness.org 70 i 58668 <blockquote> Err codemadness.org 70 i 58669 <p>All of that was a cool Unix history lesson, but did not make me want to actually use Ed in real life. But!!!</p> Err codemadness.org 70 i 58670 Err codemadness.org 70 i 58671 <p>The other neat thing about Ed (that did make me want to use it!) is that any Ed session corresponds to a script that you can replay! So if I know Ed, then I can use Ed basically as a way to easily apply vim-macro-like programs to my files.</p> Err codemadness.org 70 i 58672 </blockquote> Err codemadness.org 70 i 58673 Err codemadness.org 70 i 58674 <hr /> Err codemadness.org 70 i 58675 <h2>Beastie Bits</h2> Err codemadness.org 70 i 58676 Err codemadness.org 70 i 58677 <ul> Err codemadness.org 70 i 58678 <li><a href="https://blather.michaelwlucas.com/archives/3186">FreeBSD Mastery: Jails -- Help make it happen </a></li> Err codemadness.org 70 i 58679 <li><a href="https://www.youtube.com/watch?v=MsY-BafQgj4">Video: OpenZFS Basics presented by George Wilson and Matt Ahrens at Scale 16x back in March 2018</a></li> Err codemadness.org 70 i 58680 <li><a href="https://www.dragonflydigest.com/2018/05/17/21257.html">DragonFlyBSD’s IPFW gets highspeed lockless in-kernel NAT</a></li> Err codemadness.org 70 i 58681 <li><a href="https://www.reddit.com/r/openbsd/comments/8ei00k/a_love_letter_to_openbsd/">A Love Letter to OpenBSD</a></li> Err codemadness.org 70 i 58682 <li><a href="https://blather.michaelwlucas.com/archives/3176">New talks, and the F-bomb</a></li> Err codemadness.org 70 i 58683 <li><a href="https://manpages.bsd.lv/mdoc.html">Practical UNIX Manuals: mdoc</a></li> Err codemadness.org 70 i 58684 <li><a href="https://lists.freebsd.org/pipermail/freebsd-advocacy/2018-May/004758.html">BSD Meetup in Zurich: May 24th</a></li> Err codemadness.org 70 i 58685 <li><a href="https://www.eventbrite.com/e/the-polish-bsd-user-group-1-meetup-tickets-45941857332">BSD Meetup in Warsaw: May 24th</a></li> Err codemadness.org 70 i 58686 <li><a href="http://meetbsd.com/">MeetBSD 2018</a></li> Err codemadness.org 70 i 58687 </ul> Err codemadness.org 70 i 58688 Err codemadness.org 70 i 58689 <hr /> Err codemadness.org 70 i 58690 <p><strong>Tarsnap</strong></p> Err codemadness.org 70 i 58691 Err codemadness.org 70 i 58692 <h2>Feedback/Questions</h2> Err codemadness.org 70 i 58693 Err codemadness.org 70 i 58694 <ul> Err codemadness.org 70 i 58695 <li>Seth - <a href="http://dpaste.com/12R65X4#wrap">First time poudriere Builder</a></li> Err codemadness.org 70 i 58696 <li>Farhan - <a href="http://dpaste.com/1GHCGY5#wrap">Why we didn't go FreeBSD</a></li> Err codemadness.org 70 i 58697 <li>architech - <a href="http://dpaste.com/1H72FGE#wrap">Encryption Feedback</a></li> Err codemadness.org 70 i 58698 <li>Dave - <a href="http://dpaste.com/27YH93Y#wrap">Handy Tip on setting up automated coredump handling for FreeBSD</a></li> Err codemadness.org 70 i 58699 </ul> Err codemadness.org 70 i 58700 Err codemadness.org 70 i 58701 <hr /> Err codemadness.org 70 i 58702 <ul> Err codemadness.org 70 i 58703 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 58704 </ul> Err codemadness.org 70 i 58705 Err codemadness.org 70 i 58706 freebsd, openbsd, netbsd, dragonflybsd, trueos, tutorial, howto, guide, bsd, interview, FreeBSD Internship, FreeNAS, Digital Ocean, Network Manager, EdgeRouter Lite, OpenZFS, ed Err codemadness.org 70 i 58707 Err codemadness.org 70 i 58708 FreeBSD internship learnings, exciting developments coming to FreeBSD, running FreeNAS on DigitalOcean, Network Manager control for OpenBSD, OpenZFS User Conference Videos are here and batch editing files with ed.

Err codemadness.org 70 i 58709 Err codemadness.org 70 i 58710

Headlines

Err codemadness.org 70 i 58711 Err codemadness.org 70 i 58712

What I learned during my FreeBSD intership

Err codemadness.org 70 i 58713 Err codemadness.org 70 i 58714
Err codemadness.org 70 i 58715

Hi, my name is Mitchell Horne. I am a computer engineering student at the University of Waterloo, currently in my third year of studies, and fortunate to have been one of the FreeBSD Foundation’s co-op students this past term (January to April). During this time I worked under Ed Maste, in the Foundation’s small Kitchener office, along with another co-op student Arshan Khanifar. My term has now come to an end, and so I’d like to share a little bit about my experience as a newcomer to FreeBSD and open-source development.

Err codemadness.org 70 i 58716 Err codemadness.org 70 i 58717

I’ll begin with some quick background — and a small admission of guilt. I have been an open-source user for a large part of my life. When I was a teenager I started playing around with Linux, which opened my eyes to the wider world of free software. Other than some small contributions to GNOME, my experience has been mostly as an end user; however, the value of these projects and the open-source philosophy was not lost on me, and is most of what motivated my interest in this position. Before beginning this term I had no personal experience with any of the BSDs, although I knew of their existence and was extremely excited to receive the position. I knew it would be a great opportunity for growth, but I must confess that my naivety about FreeBSD caused me to make the silent assumption that this would be a form of compromise — a stepping stone that would eventually allow me to work on open-source projects that are somehow “greater” or more “legitimate”. After four months spent immersed in this project I have learned how it operates, witnessed its community, and learned about its history. I am happy to admit that I was completely mistaken. Saying it now seems obvious, but FreeBSD is a project with its own distinct uses, goals, and identity. For many there may exist no greater opportunity than to work on FreeBSD full time, and with what I know now I would have a hard time coming up with a project that is more “legitimate”.

Err codemadness.org 70 i 58718
Err codemadness.org 70 i 58719 Err codemadness.org 70 i 58720
    Err codemadness.org 70 i 58721
  • What I Liked
  • Err codemadness.org 70 i 58722
Err codemadness.org 70 i 58723 Err codemadness.org 70 i 58724
Err codemadness.org 70 i 58725

In all cases, the work I submitted this term was reviewed by no less than two people before being committed. The feedback and criticism I received was always both constructive and to the point, and it commented on everything from high-level ideas to small style issues. I appreciate having these thorough reviews in place, since I believe it ultimately encourages people to accept only their best work. It is indicative of the high quality that already exists within every aspect of this project, and this commitment to quality is something that should continue to be honored as a core value. As I’ve discovered in some of my previous work terms, it is all too easy cut corners in the name of a deadline or changing priorities, but the fact that FreeBSD doesn’t need to make these types of compromises is a testament to the power of free software.

Err codemadness.org 70 i 58726 Err codemadness.org 70 i 58727

It’s a small thing, but the quality and completeness of the FreeBSD documentation was hugely helpful throughout my term. Everything you might need to know about utilities, library functions, the kernel, and more can be found in a man page; and the handbook is a great resource as both an introduction to the operating system and a reference. I only wish I had taken some time earlier in the term to explore the different documents more thoroughly, as they cover a wide range of interesting and useful topics. The effort people put into writing and maintaining FreeBSD’s documentation is easy to overlook, but its value cannot be overstated.

Err codemadness.org 70 i 58728
Err codemadness.org 70 i 58729 Err codemadness.org 70 i 58730
    Err codemadness.org 70 i 58731
  • What I Learned
  • Err codemadness.org 70 i 58732
Err codemadness.org 70 i 58733 Err codemadness.org 70 i 58734
Err codemadness.org 70 i 58735

Although there was a lot I enjoyed, there were certainly many struggles I faced throughout the term, and lessons to be learned from them. I expect that some of issues I faced may be specific to FreeBSD, while others may be common to open-source projects in general. I don’t have enough experience to speculate on which is which, so I will leave this to the reader.

Err codemadness.org 70 i 58736 Err codemadness.org 70 i 58737

The first lesson can be summed up simply: you have to advocate for your own work. FreeBSD is made up in large part by volunteer efforts, and in many cases there is more work to go around than people available to do it. A consequence of this is that there will not be anybody there to check up on you. Even in my position where I actually had a direct supervisor, Ed often had his plate full with so many other things that the responsibility to find someone to look at my work fell to me. Admittedly, a couple of smaller changes I worked on got left behind or stuck in review simply because there wasn’t a clear person/place to reach out to.

Err codemadness.org 70 i 58738 Err codemadness.org 70 i 58739

I think this is both a barrier of entry to FreeBSD and a mental hurdle that I needed to get over. If there’s a change you want to see included or reviewed, then you may have to be the one to push for it, and there’s nothing wrong with that. Perhaps this process should be easier for newcomers or infrequent contributors (the disconnect between Bugzilla and Phabricator definitely leaves a lot to be desired), but we also have to be aware that this simply isn’t the reality right now. Getting your work looked at may require a little bit more self-motivation, but I’d argue that there are much worse problems a project like FreeBSD could have than this.

Err codemadness.org 70 i 58740 Err codemadness.org 70 i 58741

I understand this a lot better now, but it is still something I struggle with. I’m not naturally the type of person who easily connects with others or asks for help, so I see this as an area for future growth rather than simply a struggle I encountered and overcame over the course of this work term. Certainly it is an important skill to understand the value of your own work, and equally important is the ability to communicate that value to others.

Err codemadness.org 70 i 58742 Err codemadness.org 70 i 58743

I also learned the importance of starting small. My first week or two on the job mainly involved getting set up and comfortable with the workflow. After this initial stage, I began exploring the project and found myself overwhelmed by its scale. With so many possible areas to investigate, and so much work happening at once, I felt quite lost on where to begin. Many of the potential projects I found were too far beyond my experience level, and most small bugs were picked up and fixed quickly by more experienced contributors before I could even get to them.

Err codemadness.org 70 i 58744 Err codemadness.org 70 i 58745

It’s easy to make the mistake that FreeBSD is made up solely of a few rock-star committers that do everything. This is how it appears at face-value, as reading through commits, bug reports, and mailing lists yields a few of the same names over and over. The reality is that just as important are the hundreds of users and infrequent contributors who take the time to submit bug reports, patches, or feedback. Even though there are some people who would fall under the umbrella of a rock-star committer, they didn’t get there overnight. Rather, they have built their skills and knowledge through many years of involvement in FreeBSD and similar projects.

Err codemadness.org 70 i 58746 Err codemadness.org 70 i 58747

As a student coming into this project and having high expectations of myself, it was easy to set the bar too high by comparing myself against those big committers, and feel that my work was insignificant, inadequate, and simply too infrequent. In reality, there is no reason I should have felt this way. In a way, this comparison is disrespectful to those who have reached this level, as it took them a long time to get there, and it’s a humbling reminder that any skill worth learning requires time, patience, and dedication. It is easy to focus on an end product and simply wish to be there, but in order to be truly successful one must start small, and find satisfaction in the struggle of learning something new. I take pride in the many small successes I’ve had throughout my term here, and appreciate the fact that my journey into FreeBSD and open-source software is only just beginning.

Err codemadness.org 70 i 58748
Err codemadness.org 70 i 58749 Err codemadness.org 70 i 58750
    Err codemadness.org 70 i 58751
  • Closing Thoughts
  • Err codemadness.org 70 i 58752
Err codemadness.org 70 i 58753 Err codemadness.org 70 i 58754
Err codemadness.org 70 i 58755

I would like to close with some brief thank-you’s. First, to everyone at the Foundation for being so helpful, and allowing this position to exist in the first place. I am extremely grateful to have been given this unique opportunity to learn about and give back to the open-source world. I’d also like to thank my office mates; Ed: for being an excellent mentor, who offered an endless wealth of knowledge and willingness to share it. My classmate and fellow intern Arshan: for giving me a sense of camaraderie and the comforting reminder that at many moments he was as lost as I was. Finally, a quick thanks to everyone else I crossed paths with who offered reviews and advice. I appreciate your help and look forward to working with you all further.

Err codemadness.org 70 i 58756 Err codemadness.org 70 i 58757

I am walking away from this co-op with a much greater appreciation for this project, and have made it a goal to remain involved in some capacity. I feel that I’ve gained a little bit of a wider perspective on my place in the software world, something I never really got from my previous co-ops. Whether it ends up being just a stepping stone, or the beginning of much larger involvement, I thoroughly enjoyed my time here.

Err codemadness.org 70 i 58758
Err codemadness.org 70 i 58759 Err codemadness.org 70 i 58760


Err codemadness.org 70 i 58761 Err codemadness.org 70 i 58762

Recent Developments in FreeBSD

Err codemadness.org 70 i 58763 Err codemadness.org 70 i 58764 Err codemadness.org 70 i 58775 Err codemadness.org 70 i 58776


Err codemadness.org 70 i 58777 Err codemadness.org 70 i 58778

DigitalOcean Err codemadness.org 70 i 58779 Digital Ocean Promo Link for BSD Now Listeners

Err codemadness.org 70 i 58780 Err codemadness.org 70 i 58781


Err codemadness.org 70 i 58782 Err codemadness.org 70 i 58783

Running FreeNAS on a DigitalOcean Droplet

Err codemadness.org 70 i 58784 Err codemadness.org 70 i 58785
    Err codemadness.org 70 i 58786
  • Need to backup your FreeNAS offsite? Run a locked down instance in the cloud, and replicate to it
  • Err codemadness.org 70 i 58787
  • The tutorial walks though the steps of converting a fresh FreeBSD based droplet into a FreeNAS
  • Err codemadness.org 70 i 58788
  • Create a droplet, and add a small secondary block-storage device
  • Err codemadness.org 70 i 58789
  • Boot the droplet, login, and download FreeNAS
  • Err codemadness.org 70 i 58790
  • Disable swap, enable ‘foot shooting’ mode in GEOM
  • Err codemadness.org 70 i 58791
  • use dd to write the FreeNAS installer to the boot disk
  • Err codemadness.org 70 i 58792
  • Reboot the droplet, and use the FreeNAS installer to install FreeNAS to the secondary block storage device
  • Err codemadness.org 70 i 58793
  • Now, reimage the droplet with FreeBSD again, to replace the FreeNAS installer
  • Err codemadness.org 70 i 58794
  • Boot, and dd FreeNAS from the secondary block storage device back to the boot disk
  • Err codemadness.org 70 i 58795
  • You can now destroy the secondary block device
  • Err codemadness.org 70 i 58796
  • Now you have a FreeNAS, and can take it from there.
  • Err codemadness.org 70 i 58797
  • Use the FreeNAS replication wizard to configure sending snapshots from your home NAS to your cloud NAS
  • Err codemadness.org 70 i 58798
  • Note: You might consider creating a new block storage device to create a larger pool, that you can more easily grow over time, rather than using the boot device in the droplet as your main pool.
  • Err codemadness.org 70 i 58799
Err codemadness.org 70 i 58800 Err codemadness.org 70 i 58801


Err codemadness.org 70 i 58802 Err codemadness.org 70 i 58803

News Roundup

Err codemadness.org 70 i 58804 Err codemadness.org 70 i 58805

Network Manager Control for OpenBSD (Updated)

Err codemadness.org 70 i 58806 Err codemadness.org 70 i 58807
    Err codemadness.org 70 i 58808
  • Generalities
  • Err codemadness.org 70 i 58809
  • I just remind the scope of this small tool:

    Err codemadness.org 70 i 58810 Err codemadness.org 70 i 58811
    • allow you to pre-define several cable or wifi connections
    • Err codemadness.org 70 i 58812
    • let nmctl to connect automatically to the first available one
    • Err codemadness.org 70 i 58813
    • allow you to easily switch from one network connection to an other one
    • Err codemadness.org 70 i 58814
    • create openbox dynamic menus
  • Err codemadness.org 70 i 58815
  • Enhancements in this version

  • Err codemadness.org 70 i 58816
Err codemadness.org 70 i 58817 Err codemadness.org 70 i 58818
Err codemadness.org 70 i 58819

This is my second development version: 0.2. Err codemadness.org 70 i 58820 I've added performed several changes in the code:

Err codemadness.org 70 i 58821
Err codemadness.org 70 i 58822 Err codemadness.org 70 i 58823
    Err codemadness.org 70 i 58824
  • code style cleanup, to better match the python recommendations
  • Err codemadness.org 70 i 58825
  • adapt the tool to allow to connect to an Open-wifi having blancs in the name. This happens in some hotels
  • Err codemadness.org 70 i 58826
  • implement a loop as work-around concerning the arp table issue.
  • Err codemadness.org 70 i 58827
Err codemadness.org 70 i 58828 Err codemadness.org 70 i 58829
Err codemadness.org 70 i 58830

The source code is still on the git of Sourceforge.net. Err codemadness.org 70 i 58831 You can see the files here

Err codemadness.org 70 i 58832 Err codemadness.org 70 i 58833

And you can download the last version here

Err codemadness.org 70 i 58834
Err codemadness.org 70 i 58835 Err codemadness.org 70 i 58836
    Err codemadness.org 70 i 58837
  • Feedbacks after few months
  • Err codemadness.org 70 i 58838
Err codemadness.org 70 i 58839 Err codemadness.org 70 i 58840
Err codemadness.org 70 i 58841

I'm using this script on my OpenBSD laptop since about 5 months. In my case, I'm mainly using the openbox menus and the --restart option.

Err codemadness.org 70 i 58842
Err codemadness.org 70 i 58843 Err codemadness.org 70 i 58844
    Err codemadness.org 70 i 58845
  • The Openbox menus
  • Err codemadness.org 70 i 58846
Err codemadness.org 70 i 58847 Err codemadness.org 70 i 58848
Err codemadness.org 70 i 58849

The openbox menus are working fine. As explain in my previous blog, I just have to create 2 entries in my openbox's menu.xml file, and all the rest comes automatically from nmctl itself thanks to the --list and --scan options. Err codemadness.org 70 i 58850 I've not changed this part of nmctl since it works as expected (for me :-) ).

Err codemadness.org 70 i 58851
Err codemadness.org 70 i 58852 Err codemadness.org 70 i 58853
    Err codemadness.org 70 i 58854
  • The --restart option
  • Err codemadness.org 70 i 58855
Err codemadness.org 70 i 58856 Err codemadness.org 70 i 58857
Err codemadness.org 70 i 58858

Because I'm very lazy, and because OpenBSD is very simple to use, I've added the command "nmctl --restart" in the /etc/apm/resume script. Thanks to apmd, this script will be used each time I'm opening the lid of my laptop. Err codemadness.org 70 i 58859 In other words, each time I'll opening my laptop, nmctl will search the optimum network connection for me. Err codemadness.org 70 i 58860 But I had several issues in this scenario. Err codemadness.org 70 i 58861 Most of the problems were linked to the arp table issues. Indeed, in some circumstances, my proxy IP address was associated to the cable interface instead of the wifi interface or vice-versa. As consequence I'm not able to connect to the proxy, thus not able to connect to internet. So the ping to google (final test nmctl perform) is failing. Err codemadness.org 70 i 58862 Knowing that anyhow, I'm doing a full arp cleanup, it's not clear for me from where this problem come from. To solve this situation I've implemented a "retry" concept. In other words, before testing an another possible network connection (as listed in my /etc/nmctl.conf file), the script try 3x the current connection's parameters. Err codemadness.org 70 i 58863 If you want to reduce or increase this figures, you can do it via the --retry parameter.

Err codemadness.org 70 i 58864
Err codemadness.org 70 i 58865 Err codemadness.org 70 i 58866
    Err codemadness.org 70 i 58867
  • Results of my expertise with this small tool
  • Err codemadness.org 70 i 58868
Err codemadness.org 70 i 58869 Err codemadness.org 70 i 58870
Err codemadness.org 70 i 58871

Where ever I'm located, my laptop is now connecting automatically to the wifi / cable connection previously identified for this location. Err codemadness.org 70 i 58872 Currently I have 3 places where I have Wifi credentials and 2 offices places where I just have to plug the network cable. Err codemadness.org 70 i 58873 Since the /etc/apm/resume scripts is triggered when I open the lid of the laptop, I just have to make sure that I plug the RJ45 before opening the laptop. For the rest, I do not have to type any commands, OpenBSD do all what is needed ;-). Err codemadness.org 70 i 58874 I hotels or restaurants, I can just connect to the Open Wifi thanks to the openbox menu created by "nmctl --scan".

Err codemadness.org 70 i 58875
Err codemadness.org 70 i 58876 Err codemadness.org 70 i 58877
    Err codemadness.org 70 i 58878
  • Next steps

  • Err codemadness.org 70 i 58879
  • Documentation

  • Err codemadness.org 70 i 58880
Err codemadness.org 70 i 58881 Err codemadness.org 70 i 58882
Err codemadness.org 70 i 58883

The tool is missing lot of documentation. I appreciate OpenBSD for his great documentation, so I have to do the same. Err codemadness.org 70 i 58884 I plan to write a README and a man page at first instances. Err codemadness.org 70 i 58885 But since my laziness, I will do it as soon as I see some interest for this tool from other persons.

Err codemadness.org 70 i 58886
Err codemadness.org 70 i 58887 Err codemadness.org 70 i 58888
    Err codemadness.org 70 i 58889
  • Tests
  • Err codemadness.org 70 i 58890
Err codemadness.org 70 i 58891 Err codemadness.org 70 i 58892
Err codemadness.org 70 i 58893

I now have to travel and see how to see the script react on the different situations. Err codemadness.org 70 i 58894 Interested persons are welcome to share with me the outcome of their tests. Err codemadness.org 70 i 58895 I'm curious how it work.

Err codemadness.org 70 i 58896
Err codemadness.org 70 i 58897 Err codemadness.org 70 i 58898


Err codemadness.org 70 i 58899 Err codemadness.org 70 i 58900

OpenBSD 6.3 on EdgeRouter Lite simple upgrade method

Err codemadness.org 70 i 58901 Err codemadness.org 70 i 58902
    Err codemadness.org 70 i 58903
  • TL;DR
  • Err codemadness.org 70 i 58904
Err codemadness.org 70 i 58905 Err codemadness.org 70 i 58906
Err codemadness.org 70 i 58907

OpenBSD 6.3 oceton upgrade instructions may not factor that your ERL is running from the USB key they want wiped with the miniroot63.fs image loaded on. Err codemadness.org 70 i 58908 Place the bsd.rd for OpenBSD 6.3 on the sd0i slice used by U-Boot for the kernel, and then edit the boot command to run it.

Err codemadness.org 70 i 58909
Err codemadness.org 70 i 58910 Err codemadness.org 70 i 58911
    Err codemadness.org 70 i 58912
  • a tiny upgrade
  • Err codemadness.org 70 i 58913
Err codemadness.org 70 i 58914 Err codemadness.org 70 i 58915
Err codemadness.org 70 i 58916

The OpenBSD documentation is comprehensive, but there might be rough corners around what are probably edge cases in their user base. People running EdgeRouter Lite hardware for example, who are looking to upgrade from 6.2 to 6.3. Err codemadness.org 70 i 58917 The documentation, which gave us everything we needed last time, left me with some questions about how to upgrade. In INSTALL.octeon, the Upgrading section does mention: Err codemadness.org 70 i 58918 The best solution, whenever possible, is to backup your data and reinstall from scratch Err codemadness.org 70 i 58919 I had to check if that directive existed in the documentation for other architectures. I wondered if oceton users were getting singled out. We were not. Just simplicity and pragmatism.

Err codemadness.org 70 i 58920
Err codemadness.org 70 i 58921 Err codemadness.org 70 i 58922
    Err codemadness.org 70 i 58923
  • Reading on:
  • Err codemadness.org 70 i 58924
Err codemadness.org 70 i 58925 Err codemadness.org 70 i 58926
Err codemadness.org 70 i 58927

To upgrade OpenBSD 6.3 from a previous version, start with the general instructions in the section "Installing OpenBSD". Err codemadness.org 70 i 58928 But that section requires us to boot off of TFTP or NFS. Which I don’t want to do right now. Could also use a USB stick with the miniroot63.fs installed on it. Err codemadness.org 70 i 58929 But as the ERL only has a single USB port, we would have to remove the USB stick with the current install on it. Once we get to the Install or Upgrade prompt, there would be nothing to upgrade. Err codemadness.org 70 i 58930 Well, I guess I could use a USB hub. But the ERL’s USB port is inside the case. With all the screws in. And the tools are neatly put away. And I’d have to pull the USB hub from behind a workstation. And it’s two am. And I cleaned up the cabling in the lab this past weekend. Looks nice for once. Err codemadness.org 70 i 58931 So I don’t want to futz around with all that. Err codemadness.org 70 i 58932 There must be an almost imperceptibly easier way of doing this than setting up a TFTP server or NFS share in five minutes… Right?

Err codemadness.org 70 i 58933
Err codemadness.org 70 i 58934 Err codemadness.org 70 i 58935


Err codemadness.org 70 i 58936 Err codemadness.org 70 i 58937

iXsystems Err codemadness.org 70 i 58938 Boise Technology Show 2018 Recap

Err codemadness.org 70 i 58939 Err codemadness.org 70 i 58940

OpenZFS User Conference Slides & Videos

Err codemadness.org 70 i 58941 Err codemadness.org 70 i 58942 Err codemadness.org 70 i 58954 Err codemadness.org 70 i 58955


Err codemadness.org 70 i 58956 Err codemadness.org 70 i 58957

Batch editing files with ed

Err codemadness.org 70 i 58958 Err codemadness.org 70 i 58959
    Err codemadness.org 70 i 58960
  • what’s ‘ed’?
  • Err codemadness.org 70 i 58961
Err codemadness.org 70 i 58962 Err codemadness.org 70 i 58963
Err codemadness.org 70 i 58964

ed is this sort of terrifying text editor. A typical interaction with ed for me in the past has gone something like this:

Err codemadness.org 70 i 58965
Err codemadness.org 70 i 58966 Err codemadness.org 70 i 58967

Err codemadness.org 70 i 58968 $ ed Err codemadness.org 70 i 58969 help Err codemadness.org 70 i 58970 ? Err codemadness.org 70 i 58971 h Err codemadness.org 70 i 58972 ? Err codemadness.org 70 i 58973 asdfasdfasdfsadf Err codemadness.org 70 i 58974 ? Err codemadness.org 70 i 58975 <close terminal in frustration> Err codemadness.org 70 i 58976

Err codemadness.org 70 i 58977 Err codemadness.org 70 i 58978
Err codemadness.org 70 i 58979

Basically if you do something wrong, ed will just print out a single, unhelpful, ?. So I’d basically dismissed ed as an old arcane Unix tool that had no practical use today. Err codemadness.org 70 i 58980 vi is a successor to ed, except with a visual interface instead of this ?

Err codemadness.org 70 i 58981
Err codemadness.org 70 i 58982 Err codemadness.org 70 i 58983
    Err codemadness.org 70 i 58984
  • surprise: Ed is actually sort of cool and fun
  • Err codemadness.org 70 i 58985
Err codemadness.org 70 i 58986 Err codemadness.org 70 i 58987
Err codemadness.org 70 i 58988

So if Ed is a terrifying thing that only prints ? at you, why am I writing a blog post about it? WELL!!!! Err codemadness.org 70 i 58989 On April 1 this year, Michael W Lucas published a new short book called Ed Mastery. I like his writing, and even though it was sort of an april fool’s joke, it was ALSO a legitimate actual real book, and so I bought it and read it to see if his claims that Ed is actually interesting were true. Err codemadness.org 70 i 58990 And it was so cool!!!! I found out:

Err codemadness.org 70 i 58991
Err codemadness.org 70 i 58992 Err codemadness.org 70 i 58993
    Err codemadness.org 70 i 58994
  • how to get Ed to give you better error messages than just ?
  • Err codemadness.org 70 i 58995
  • that the name of the grep command comes from ed syntax (g/re/p)
  • Err codemadness.org 70 i 58996
  • the basics of how to navigate and edit files using ed
  • Err codemadness.org 70 i 58997
Err codemadness.org 70 i 58998 Err codemadness.org 70 i 58999
Err codemadness.org 70 i 59000

All of that was a cool Unix history lesson, but did not make me want to actually use Ed in real life. But!!!

Err codemadness.org 70 i 59001 Err codemadness.org 70 i 59002

The other neat thing about Ed (that did make me want to use it!) is that any Ed session corresponds to a script that you can replay! So if I know Ed, then I can use Ed basically as a way to easily apply vim-macro-like programs to my files.

Err codemadness.org 70 i 59003
Err codemadness.org 70 i 59004 Err codemadness.org 70 i 59005


Err codemadness.org 70 i 59006 Err codemadness.org 70 i 59007

Beastie Bits

Err codemadness.org 70 i 59008 Err codemadness.org 70 i 59009 Err codemadness.org 70 i 59020 Err codemadness.org 70 i 59021


Err codemadness.org 70 i 59022 Err codemadness.org 70 i 59023

Tarsnap

Err codemadness.org 70 i 59024 Err codemadness.org 70 i 59025

Feedback/Questions

Err codemadness.org 70 i 59026 Err codemadness.org 70 i 59027 Err codemadness.org 70 i 59033 Err codemadness.org 70 i 59034


Err codemadness.org 70 i 59035 Err codemadness.org 70 i 59036
    Err codemadness.org 70 i 59037
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 59038
]]> Err codemadness.org 70 i 59039
Err codemadness.org 70 i 59040 Err codemadness.org 70 i 59041 FreeBSD internship learnings, exciting developments coming to FreeBSD, running FreeNAS on DigitalOcean, Network Manager control for OpenBSD, OpenZFS User Conference Videos are here and batch editing files with ed.

Err codemadness.org 70 i 59042 Err codemadness.org 70 i 59043

Headlines

Err codemadness.org 70 i 59044 Err codemadness.org 70 i 59045

What I learned during my FreeBSD intership

Err codemadness.org 70 i 59046 Err codemadness.org 70 i 59047
Err codemadness.org 70 i 59048

Hi, my name is Mitchell Horne. I am a computer engineering student at the University of Waterloo, currently in my third year of studies, and fortunate to have been one of the FreeBSD Foundation’s co-op students this past term (January to April). During this time I worked under Ed Maste, in the Foundation’s small Kitchener office, along with another co-op student Arshan Khanifar. My term has now come to an end, and so I’d like to share a little bit about my experience as a newcomer to FreeBSD and open-source development.

Err codemadness.org 70 i 59049 Err codemadness.org 70 i 59050

I’ll begin with some quick background — and a small admission of guilt. I have been an open-source user for a large part of my life. When I was a teenager I started playing around with Linux, which opened my eyes to the wider world of free software. Other than some small contributions to GNOME, my experience has been mostly as an end user; however, the value of these projects and the open-source philosophy was not lost on me, and is most of what motivated my interest in this position. Before beginning this term I had no personal experience with any of the BSDs, although I knew of their existence and was extremely excited to receive the position. I knew it would be a great opportunity for growth, but I must confess that my naivety about FreeBSD caused me to make the silent assumption that this would be a form of compromise — a stepping stone that would eventually allow me to work on open-source projects that are somehow “greater” or more “legitimate”. After four months spent immersed in this project I have learned how it operates, witnessed its community, and learned about its history. I am happy to admit that I was completely mistaken. Saying it now seems obvious, but FreeBSD is a project with its own distinct uses, goals, and identity. For many there may exist no greater opportunity than to work on FreeBSD full time, and with what I know now I would have a hard time coming up with a project that is more “legitimate”.

Err codemadness.org 70 i 59051
Err codemadness.org 70 i 59052 Err codemadness.org 70 i 59053
    Err codemadness.org 70 i 59054
  • What I Liked
  • Err codemadness.org 70 i 59055
Err codemadness.org 70 i 59056 Err codemadness.org 70 i 59057
Err codemadness.org 70 i 59058

In all cases, the work I submitted this term was reviewed by no less than two people before being committed. The feedback and criticism I received was always both constructive and to the point, and it commented on everything from high-level ideas to small style issues. I appreciate having these thorough reviews in place, since I believe it ultimately encourages people to accept only their best work. It is indicative of the high quality that already exists within every aspect of this project, and this commitment to quality is something that should continue to be honored as a core value. As I’ve discovered in some of my previous work terms, it is all too easy cut corners in the name of a deadline or changing priorities, but the fact that FreeBSD doesn’t need to make these types of compromises is a testament to the power of free software.

Err codemadness.org 70 i 59059 Err codemadness.org 70 i 59060

It’s a small thing, but the quality and completeness of the FreeBSD documentation was hugely helpful throughout my term. Everything you might need to know about utilities, library functions, the kernel, and more can be found in a man page; and the handbook is a great resource as both an introduction to the operating system and a reference. I only wish I had taken some time earlier in the term to explore the different documents more thoroughly, as they cover a wide range of interesting and useful topics. The effort people put into writing and maintaining FreeBSD’s documentation is easy to overlook, but its value cannot be overstated.

Err codemadness.org 70 i 59061
Err codemadness.org 70 i 59062 Err codemadness.org 70 i 59063
    Err codemadness.org 70 i 59064
  • What I Learned
  • Err codemadness.org 70 i 59065
Err codemadness.org 70 i 59066 Err codemadness.org 70 i 59067
Err codemadness.org 70 i 59068

Although there was a lot I enjoyed, there were certainly many struggles I faced throughout the term, and lessons to be learned from them. I expect that some of issues I faced may be specific to FreeBSD, while others may be common to open-source projects in general. I don’t have enough experience to speculate on which is which, so I will leave this to the reader.

Err codemadness.org 70 i 59069 Err codemadness.org 70 i 59070

The first lesson can be summed up simply: you have to advocate for your own work. FreeBSD is made up in large part by volunteer efforts, and in many cases there is more work to go around than people available to do it. A consequence of this is that there will not be anybody there to check up on you. Even in my position where I actually had a direct supervisor, Ed often had his plate full with so many other things that the responsibility to find someone to look at my work fell to me. Admittedly, a couple of smaller changes I worked on got left behind or stuck in review simply because there wasn’t a clear person/place to reach out to.

Err codemadness.org 70 i 59071 Err codemadness.org 70 i 59072

I think this is both a barrier of entry to FreeBSD and a mental hurdle that I needed to get over. If there’s a change you want to see included or reviewed, then you may have to be the one to push for it, and there’s nothing wrong with that. Perhaps this process should be easier for newcomers or infrequent contributors (the disconnect between Bugzilla and Phabricator definitely leaves a lot to be desired), but we also have to be aware that this simply isn’t the reality right now. Getting your work looked at may require a little bit more self-motivation, but I’d argue that there are much worse problems a project like FreeBSD could have than this.

Err codemadness.org 70 i 59073 Err codemadness.org 70 i 59074

I understand this a lot better now, but it is still something I struggle with. I’m not naturally the type of person who easily connects with others or asks for help, so I see this as an area for future growth rather than simply a struggle I encountered and overcame over the course of this work term. Certainly it is an important skill to understand the value of your own work, and equally important is the ability to communicate that value to others.

Err codemadness.org 70 i 59075 Err codemadness.org 70 i 59076

I also learned the importance of starting small. My first week or two on the job mainly involved getting set up and comfortable with the workflow. After this initial stage, I began exploring the project and found myself overwhelmed by its scale. With so many possible areas to investigate, and so much work happening at once, I felt quite lost on where to begin. Many of the potential projects I found were too far beyond my experience level, and most small bugs were picked up and fixed quickly by more experienced contributors before I could even get to them.

Err codemadness.org 70 i 59077 Err codemadness.org 70 i 59078

It’s easy to make the mistake that FreeBSD is made up solely of a few rock-star committers that do everything. This is how it appears at face-value, as reading through commits, bug reports, and mailing lists yields a few of the same names over and over. The reality is that just as important are the hundreds of users and infrequent contributors who take the time to submit bug reports, patches, or feedback. Even though there are some people who would fall under the umbrella of a rock-star committer, they didn’t get there overnight. Rather, they have built their skills and knowledge through many years of involvement in FreeBSD and similar projects.

Err codemadness.org 70 i 59079 Err codemadness.org 70 i 59080

As a student coming into this project and having high expectations of myself, it was easy to set the bar too high by comparing myself against those big committers, and feel that my work was insignificant, inadequate, and simply too infrequent. In reality, there is no reason I should have felt this way. In a way, this comparison is disrespectful to those who have reached this level, as it took them a long time to get there, and it’s a humbling reminder that any skill worth learning requires time, patience, and dedication. It is easy to focus on an end product and simply wish to be there, but in order to be truly successful one must start small, and find satisfaction in the struggle of learning something new. I take pride in the many small successes I’ve had throughout my term here, and appreciate the fact that my journey into FreeBSD and open-source software is only just beginning.

Err codemadness.org 70 i 59081
Err codemadness.org 70 i 59082 Err codemadness.org 70 i 59083
    Err codemadness.org 70 i 59084
  • Closing Thoughts
  • Err codemadness.org 70 i 59085
Err codemadness.org 70 i 59086 Err codemadness.org 70 i 59087
Err codemadness.org 70 i 59088

I would like to close with some brief thank-you’s. First, to everyone at the Foundation for being so helpful, and allowing this position to exist in the first place. I am extremely grateful to have been given this unique opportunity to learn about and give back to the open-source world. I’d also like to thank my office mates; Ed: for being an excellent mentor, who offered an endless wealth of knowledge and willingness to share it. My classmate and fellow intern Arshan: for giving me a sense of camaraderie and the comforting reminder that at many moments he was as lost as I was. Finally, a quick thanks to everyone else I crossed paths with who offered reviews and advice. I appreciate your help and look forward to working with you all further.

Err codemadness.org 70 i 59089 Err codemadness.org 70 i 59090

I am walking away from this co-op with a much greater appreciation for this project, and have made it a goal to remain involved in some capacity. I feel that I’ve gained a little bit of a wider perspective on my place in the software world, something I never really got from my previous co-ops. Whether it ends up being just a stepping stone, or the beginning of much larger involvement, I thoroughly enjoyed my time here.

Err codemadness.org 70 i 59091
Err codemadness.org 70 i 59092 Err codemadness.org 70 i 59093


Err codemadness.org 70 i 59094 Err codemadness.org 70 i 59095

Recent Developments in FreeBSD

Err codemadness.org 70 i 59096 Err codemadness.org 70 i 59097 Err codemadness.org 70 i 59108 Err codemadness.org 70 i 59109


Err codemadness.org 70 i 59110 Err codemadness.org 70 i 59111

DigitalOcean Err codemadness.org 70 i 59112 Digital Ocean Promo Link for BSD Now Listeners

Err codemadness.org 70 i 59113 Err codemadness.org 70 i 59114


Err codemadness.org 70 i 59115 Err codemadness.org 70 i 59116

Running FreeNAS on a DigitalOcean Droplet

Err codemadness.org 70 i 59117 Err codemadness.org 70 i 59118
    Err codemadness.org 70 i 59119
  • Need to backup your FreeNAS offsite? Run a locked down instance in the cloud, and replicate to it
  • Err codemadness.org 70 i 59120
  • The tutorial walks though the steps of converting a fresh FreeBSD based droplet into a FreeNAS
  • Err codemadness.org 70 i 59121
  • Create a droplet, and add a small secondary block-storage device
  • Err codemadness.org 70 i 59122
  • Boot the droplet, login, and download FreeNAS
  • Err codemadness.org 70 i 59123
  • Disable swap, enable ‘foot shooting’ mode in GEOM
  • Err codemadness.org 70 i 59124
  • use dd to write the FreeNAS installer to the boot disk
  • Err codemadness.org 70 i 59125
  • Reboot the droplet, and use the FreeNAS installer to install FreeNAS to the secondary block storage device
  • Err codemadness.org 70 i 59126
  • Now, reimage the droplet with FreeBSD again, to replace the FreeNAS installer
  • Err codemadness.org 70 i 59127
  • Boot, and dd FreeNAS from the secondary block storage device back to the boot disk
  • Err codemadness.org 70 i 59128
  • You can now destroy the secondary block device
  • Err codemadness.org 70 i 59129
  • Now you have a FreeNAS, and can take it from there.
  • Err codemadness.org 70 i 59130
  • Use the FreeNAS replication wizard to configure sending snapshots from your home NAS to your cloud NAS
  • Err codemadness.org 70 i 59131
  • Note: You might consider creating a new block storage device to create a larger pool, that you can more easily grow over time, rather than using the boot device in the droplet as your main pool.
  • Err codemadness.org 70 i 59132
Err codemadness.org 70 i 59133 Err codemadness.org 70 i 59134


Err codemadness.org 70 i 59135 Err codemadness.org 70 i 59136

News Roundup

Err codemadness.org 70 i 59137 Err codemadness.org 70 i 59138

Network Manager Control for OpenBSD (Updated)

Err codemadness.org 70 i 59139 Err codemadness.org 70 i 59140
    Err codemadness.org 70 i 59141
  • Generalities
  • Err codemadness.org 70 i 59142
  • I just remind the scope of this small tool:

    Err codemadness.org 70 i 59143 Err codemadness.org 70 i 59144
    • allow you to pre-define several cable or wifi connections
    • Err codemadness.org 70 i 59145
    • let nmctl to connect automatically to the first available one
    • Err codemadness.org 70 i 59146
    • allow you to easily switch from one network connection to an other one
    • Err codemadness.org 70 i 59147
    • create openbox dynamic menus
  • Err codemadness.org 70 i 59148
  • Enhancements in this version

  • Err codemadness.org 70 i 59149
Err codemadness.org 70 i 59150 Err codemadness.org 70 i 59151
Err codemadness.org 70 i 59152

This is my second development version: 0.2. Err codemadness.org 70 i 59153 I've added performed several changes in the code:

Err codemadness.org 70 i 59154
Err codemadness.org 70 i 59155 Err codemadness.org 70 i 59156
    Err codemadness.org 70 i 59157
  • code style cleanup, to better match the python recommendations
  • Err codemadness.org 70 i 59158
  • adapt the tool to allow to connect to an Open-wifi having blancs in the name. This happens in some hotels
  • Err codemadness.org 70 i 59159
  • implement a loop as work-around concerning the arp table issue.
  • Err codemadness.org 70 i 59160
Err codemadness.org 70 i 59161 Err codemadness.org 70 i 59162
Err codemadness.org 70 i 59163

The source code is still on the git of Sourceforge.net. Err codemadness.org 70 i 59164 You can see the files here

Err codemadness.org 70 i 59165 Err codemadness.org 70 i 59166

And you can download the last version here

Err codemadness.org 70 i 59167
Err codemadness.org 70 i 59168 Err codemadness.org 70 i 59169
    Err codemadness.org 70 i 59170
  • Feedbacks after few months
  • Err codemadness.org 70 i 59171
Err codemadness.org 70 i 59172 Err codemadness.org 70 i 59173
Err codemadness.org 70 i 59174

I'm using this script on my OpenBSD laptop since about 5 months. In my case, I'm mainly using the openbox menus and the --restart option.

Err codemadness.org 70 i 59175
Err codemadness.org 70 i 59176 Err codemadness.org 70 i 59177
    Err codemadness.org 70 i 59178
  • The Openbox menus
  • Err codemadness.org 70 i 59179
Err codemadness.org 70 i 59180 Err codemadness.org 70 i 59181
Err codemadness.org 70 i 59182

The openbox menus are working fine. As explain in my previous blog, I just have to create 2 entries in my openbox's menu.xml file, and all the rest comes automatically from nmctl itself thanks to the --list and --scan options. Err codemadness.org 70 i 59183 I've not changed this part of nmctl since it works as expected (for me :-) ).

Err codemadness.org 70 i 59184
Err codemadness.org 70 i 59185 Err codemadness.org 70 i 59186
    Err codemadness.org 70 i 59187
  • The --restart option
  • Err codemadness.org 70 i 59188
Err codemadness.org 70 i 59189 Err codemadness.org 70 i 59190
Err codemadness.org 70 i 59191

Because I'm very lazy, and because OpenBSD is very simple to use, I've added the command "nmctl --restart" in the /etc/apm/resume script. Thanks to apmd, this script will be used each time I'm opening the lid of my laptop. Err codemadness.org 70 i 59192 In other words, each time I'll opening my laptop, nmctl will search the optimum network connection for me. Err codemadness.org 70 i 59193 But I had several issues in this scenario. Err codemadness.org 70 i 59194 Most of the problems were linked to the arp table issues. Indeed, in some circumstances, my proxy IP address was associated to the cable interface instead of the wifi interface or vice-versa. As consequence I'm not able to connect to the proxy, thus not able to connect to internet. So the ping to google (final test nmctl perform) is failing. Err codemadness.org 70 i 59195 Knowing that anyhow, I'm doing a full arp cleanup, it's not clear for me from where this problem come from. To solve this situation I've implemented a "retry" concept. In other words, before testing an another possible network connection (as listed in my /etc/nmctl.conf file), the script try 3x the current connection's parameters. Err codemadness.org 70 i 59196 If you want to reduce or increase this figures, you can do it via the --retry parameter.

Err codemadness.org 70 i 59197
Err codemadness.org 70 i 59198 Err codemadness.org 70 i 59199
    Err codemadness.org 70 i 59200
  • Results of my expertise with this small tool
  • Err codemadness.org 70 i 59201
Err codemadness.org 70 i 59202 Err codemadness.org 70 i 59203
Err codemadness.org 70 i 59204

Where ever I'm located, my laptop is now connecting automatically to the wifi / cable connection previously identified for this location. Err codemadness.org 70 i 59205 Currently I have 3 places where I have Wifi credentials and 2 offices places where I just have to plug the network cable. Err codemadness.org 70 i 59206 Since the /etc/apm/resume scripts is triggered when I open the lid of the laptop, I just have to make sure that I plug the RJ45 before opening the laptop. For the rest, I do not have to type any commands, OpenBSD do all what is needed ;-). Err codemadness.org 70 i 59207 I hotels or restaurants, I can just connect to the Open Wifi thanks to the openbox menu created by "nmctl --scan".

Err codemadness.org 70 i 59208
Err codemadness.org 70 i 59209 Err codemadness.org 70 i 59210
    Err codemadness.org 70 i 59211
  • Next steps

  • Err codemadness.org 70 i 59212
  • Documentation

  • Err codemadness.org 70 i 59213
Err codemadness.org 70 i 59214 Err codemadness.org 70 i 59215
Err codemadness.org 70 i 59216

The tool is missing lot of documentation. I appreciate OpenBSD for his great documentation, so I have to do the same. Err codemadness.org 70 i 59217 I plan to write a README and a man page at first instances. Err codemadness.org 70 i 59218 But since my laziness, I will do it as soon as I see some interest for this tool from other persons.

Err codemadness.org 70 i 59219
Err codemadness.org 70 i 59220 Err codemadness.org 70 i 59221
    Err codemadness.org 70 i 59222
  • Tests
  • Err codemadness.org 70 i 59223
Err codemadness.org 70 i 59224 Err codemadness.org 70 i 59225
Err codemadness.org 70 i 59226

I now have to travel and see how to see the script react on the different situations. Err codemadness.org 70 i 59227 Interested persons are welcome to share with me the outcome of their tests. Err codemadness.org 70 i 59228 I'm curious how it work.

Err codemadness.org 70 i 59229
Err codemadness.org 70 i 59230 Err codemadness.org 70 i 59231


Err codemadness.org 70 i 59232 Err codemadness.org 70 i 59233

OpenBSD 6.3 on EdgeRouter Lite simple upgrade method

Err codemadness.org 70 i 59234 Err codemadness.org 70 i 59235
    Err codemadness.org 70 i 59236
  • TL;DR
  • Err codemadness.org 70 i 59237
Err codemadness.org 70 i 59238 Err codemadness.org 70 i 59239
Err codemadness.org 70 i 59240

OpenBSD 6.3 oceton upgrade instructions may not factor that your ERL is running from the USB key they want wiped with the miniroot63.fs image loaded on. Err codemadness.org 70 i 59241 Place the bsd.rd for OpenBSD 6.3 on the sd0i slice used by U-Boot for the kernel, and then edit the boot command to run it.

Err codemadness.org 70 i 59242
Err codemadness.org 70 i 59243 Err codemadness.org 70 i 59244
    Err codemadness.org 70 i 59245
  • a tiny upgrade
  • Err codemadness.org 70 i 59246
Err codemadness.org 70 i 59247 Err codemadness.org 70 i 59248
Err codemadness.org 70 i 59249

The OpenBSD documentation is comprehensive, but there might be rough corners around what are probably edge cases in their user base. People running EdgeRouter Lite hardware for example, who are looking to upgrade from 6.2 to 6.3. Err codemadness.org 70 i 59250 The documentation, which gave us everything we needed last time, left me with some questions about how to upgrade. In INSTALL.octeon, the Upgrading section does mention: Err codemadness.org 70 i 59251 The best solution, whenever possible, is to backup your data and reinstall from scratch Err codemadness.org 70 i 59252 I had to check if that directive existed in the documentation for other architectures. I wondered if oceton users were getting singled out. We were not. Just simplicity and pragmatism.

Err codemadness.org 70 i 59253
Err codemadness.org 70 i 59254 Err codemadness.org 70 i 59255
    Err codemadness.org 70 i 59256
  • Reading on:
  • Err codemadness.org 70 i 59257
Err codemadness.org 70 i 59258 Err codemadness.org 70 i 59259
Err codemadness.org 70 i 59260

To upgrade OpenBSD 6.3 from a previous version, start with the general instructions in the section "Installing OpenBSD". Err codemadness.org 70 i 59261 But that section requires us to boot off of TFTP or NFS. Which I don’t want to do right now. Could also use a USB stick with the miniroot63.fs installed on it. Err codemadness.org 70 i 59262 But as the ERL only has a single USB port, we would have to remove the USB stick with the current install on it. Once we get to the Install or Upgrade prompt, there would be nothing to upgrade. Err codemadness.org 70 i 59263 Well, I guess I could use a USB hub. But the ERL’s USB port is inside the case. With all the screws in. And the tools are neatly put away. And I’d have to pull the USB hub from behind a workstation. And it’s two am. And I cleaned up the cabling in the lab this past weekend. Looks nice for once. Err codemadness.org 70 i 59264 So I don’t want to futz around with all that. Err codemadness.org 70 i 59265 There must be an almost imperceptibly easier way of doing this than setting up a TFTP server or NFS share in five minutes… Right?

Err codemadness.org 70 i 59266
Err codemadness.org 70 i 59267 Err codemadness.org 70 i 59268


Err codemadness.org 70 i 59269 Err codemadness.org 70 i 59270

iXsystems Err codemadness.org 70 i 59271 Boise Technology Show 2018 Recap

Err codemadness.org 70 i 59272 Err codemadness.org 70 i 59273

OpenZFS User Conference Slides & Videos

Err codemadness.org 70 i 59274 Err codemadness.org 70 i 59275 Err codemadness.org 70 i 59287 Err codemadness.org 70 i 59288


Err codemadness.org 70 i 59289 Err codemadness.org 70 i 59290

Batch editing files with ed

Err codemadness.org 70 i 59291 Err codemadness.org 70 i 59292
    Err codemadness.org 70 i 59293
  • what’s ‘ed’?
  • Err codemadness.org 70 i 59294
Err codemadness.org 70 i 59295 Err codemadness.org 70 i 59296
Err codemadness.org 70 i 59297

ed is this sort of terrifying text editor. A typical interaction with ed for me in the past has gone something like this:

Err codemadness.org 70 i 59298
Err codemadness.org 70 i 59299 Err codemadness.org 70 i 59300

Err codemadness.org 70 i 59301 $ ed Err codemadness.org 70 i 59302 help Err codemadness.org 70 i 59303 ? Err codemadness.org 70 i 59304 h Err codemadness.org 70 i 59305 ? Err codemadness.org 70 i 59306 asdfasdfasdfsadf Err codemadness.org 70 i 59307 ? Err codemadness.org 70 i 59308 <close terminal in frustration> Err codemadness.org 70 i 59309

Err codemadness.org 70 i 59310 Err codemadness.org 70 i 59311
Err codemadness.org 70 i 59312

Basically if you do something wrong, ed will just print out a single, unhelpful, ?. So I’d basically dismissed ed as an old arcane Unix tool that had no practical use today. Err codemadness.org 70 i 59313 vi is a successor to ed, except with a visual interface instead of this ?

Err codemadness.org 70 i 59314
Err codemadness.org 70 i 59315 Err codemadness.org 70 i 59316
    Err codemadness.org 70 i 59317
  • surprise: Ed is actually sort of cool and fun
  • Err codemadness.org 70 i 59318
Err codemadness.org 70 i 59319 Err codemadness.org 70 i 59320
Err codemadness.org 70 i 59321

So if Ed is a terrifying thing that only prints ? at you, why am I writing a blog post about it? WELL!!!! Err codemadness.org 70 i 59322 On April 1 this year, Michael W Lucas published a new short book called Ed Mastery. I like his writing, and even though it was sort of an april fool’s joke, it was ALSO a legitimate actual real book, and so I bought it and read it to see if his claims that Ed is actually interesting were true. Err codemadness.org 70 i 59323 And it was so cool!!!! I found out:

Err codemadness.org 70 i 59324
Err codemadness.org 70 i 59325 Err codemadness.org 70 i 59326
    Err codemadness.org 70 i 59327
  • how to get Ed to give you better error messages than just ?
  • Err codemadness.org 70 i 59328
  • that the name of the grep command comes from ed syntax (g/re/p)
  • Err codemadness.org 70 i 59329
  • the basics of how to navigate and edit files using ed
  • Err codemadness.org 70 i 59330
Err codemadness.org 70 i 59331 Err codemadness.org 70 i 59332
Err codemadness.org 70 i 59333

All of that was a cool Unix history lesson, but did not make me want to actually use Ed in real life. But!!!

Err codemadness.org 70 i 59334 Err codemadness.org 70 i 59335

The other neat thing about Ed (that did make me want to use it!) is that any Ed session corresponds to a script that you can replay! So if I know Ed, then I can use Ed basically as a way to easily apply vim-macro-like programs to my files.

Err codemadness.org 70 i 59336
Err codemadness.org 70 i 59337 Err codemadness.org 70 i 59338


Err codemadness.org 70 i 59339 Err codemadness.org 70 i 59340

Beastie Bits

Err codemadness.org 70 i 59341 Err codemadness.org 70 i 59342 Err codemadness.org 70 i 59353 Err codemadness.org 70 i 59354


Err codemadness.org 70 i 59355 Err codemadness.org 70 i 59356

Tarsnap

Err codemadness.org 70 i 59357 Err codemadness.org 70 i 59358

Feedback/Questions

Err codemadness.org 70 i 59359 Err codemadness.org 70 i 59360 Err codemadness.org 70 i 59366 Err codemadness.org 70 i 59367


Err codemadness.org 70 i 59368 Err codemadness.org 70 i 59369
    Err codemadness.org 70 i 59370
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 59371
]]> Err codemadness.org 70 i 59372
Err codemadness.org 70 i 59373 https://fireside.fm/player/v2/FYhhasNR+RvyyE9D2 Err codemadness.org 70 i 59374 Err codemadness.org 70 i 59375 ]]> Err codemadness.org 70 i 59376 Err codemadness.org 70 i 59377
Err codemadness.org 70 i 59378 Err codemadness.org 70 i 59379 Episode 246: Properly Coordinated Disclosure | BSD Now 246 Err codemadness.org 70 i 59380 https://www.bsdnow.tv/246 Err codemadness.org 70 i 59381 http://feed.jupiter.zone/bsdnow#entry-1954 Err codemadness.org 70 i 59382 Wed, 16 May 2018 22:00:00 -0700 Err codemadness.org 70 i 59383 Allan Jude Err codemadness.org 70 i 59384 Err codemadness.org 70 i 59385 full Err codemadness.org 70 i 59386 Allan Jude Err codemadness.org 70 i 59387 How Intel docs were misinterpreted by almost any OS, a look at the mininet SDN emulator, do’s and don’ts for FreeBSD, OpenBSD community going gold, ed mastery is a must read, and the distributed object store minio on FreeBSD. Err codemadness.org 70 i 59388 1:29:54 Err codemadness.org 70 i 59389 no Err codemadness.org 70 i 59390 Err codemadness.org 70 i 59391 How Intel docs were misinterpreted by almost any OS, a look at the mininet SDN emulator, do’s and don’ts for FreeBSD, OpenBSD community going gold, ed mastery is a must read, and the distributed object store minio on FreeBSD. Err codemadness.org 70 i 59392 <h2>Headlines</h2> Err codemadness.org 70 i 59393 <h3><a href="https://www.triplefault.io/2018/05/spurious-db-exceptions-with-pop-ss.html">Intel documentation flaw sees instruction misimplemented in almost every OS</a></h3> Err codemadness.org 70 i 59394 Err codemadness.org 70 i 59395 <blockquote> Err codemadness.org 70 i 59396 <p>A statement in the System Programming Guide of the Intel 64 and IA-32 Architectures Software Developer's Manual (SDM) was mishandled in the development of some or all operating-system kernels, resulting in unexpected behavior for #DB exceptions that are deferred by MOV SS or POP SS, as demonstrated by (for example) privilege escalation in Windows, macOS, some Xen configurations, or FreeBSD, or a Linux kernel crash. Err codemadness.org 70 i 59397 OS kernels may not expect this order of events and may therefore experience unexpected behavior when it occurs. Err codemadness.org 70 i 59398 + A detailed white paper describes this behavior <a href="http://everdox.net/popss.pdf">here</a> Err codemadness.org 70 i 59399 + <a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=333368">FreeBSD Commit</a> Err codemadness.org 70 i 59400 Thank you to the MSRC Incident Response Team, and in particular Greg Lenti and Nate Warfield, for coordinating the response to this issue across multiple vendors. Err codemadness.org 70 i 59401 Thanks to Computer Recycling at The Working Center of Kitchener for making hardware available to allow us to test the patch on additional CPU families. Err codemadness.org 70 i 59402 + <a href="https://www.freebsd.org/security/advisories/FreeBSD-SA-18:06.debugreg.asc">FreeBSD Security Advisory</a> Err codemadness.org 70 i 59403 + <a href="https://www.dragonflydigest.com/2018/05/09/21231.html">DragonFlyBSD Post</a> Err codemadness.org 70 i 59404 + <a href="https://www.kb.cert.org/vuls/id/CHEU-AYC3MZ">NetBSD does not support debug register and so is not affected.</a> Err codemadness.org 70 i 59405 + <a href="https://www.kb.cert.org/vuls/id/CHEU-AYC3MR">OpenBSD also appears to not be affected, “We are not aware of further vendor information regarding this vulnerability.”</a> Err codemadness.org 70 i 59406 + <a href="https://illumos.topicbox.com/groups/developer/T9cd475bd5497caa9">IllumOS Not Impacted</a></p> Err codemadness.org 70 i 59407 </blockquote> Err codemadness.org 70 i 59408 Err codemadness.org 70 i 59409 <hr /> Err codemadness.org 70 i 59410 <h3><a href="https://www.freebsdfoundation.org/blog/guest-post-a-look-at-sdn-emulator-mininet/">Guest Post – A Look at SDN Emulator Mininet</a></h3> Err codemadness.org 70 i 59411 Err codemadness.org 70 i 59412 <ul> Err codemadness.org 70 i 59413 <li>A guest post on the FreeBSD Foundation’s blog by developer Ayaka Koshibe Err codemadness.org 70 i 59414 Err codemadness.org 70 i 59415 Err codemadness.org 70 i 59416 <blockquote> Err codemadness.org 70 i 59417 At this year’s AsiaBSDCon, I presented a talk about a SDN network emulator called Mininet, and my ongoing work to make it more portable. That presentation was focused on the OpenBSD version of the port, and I breezed past the detail that I also had a version or Mininet working on FreeBSD. Because I was given the opportunity, I’d like to share a bit about the FreeBSD version of Mininet. It will not only be about what Mininet is and why it might be interesting, but also a recounting of my experience as a user making a first-time attempt at porting an application to FreeBSD. Err codemadness.org 70 i 59418 Mininet started off as a tool used by academic researchers to emulate OpenFlow networks when they didn’t have convenient access to actual networks. Because of its history, Mininet became associated strongly with networks that use OpenFlow for their control channels. But, it has also become fairly popular among developers working in, and among several universities for research and teaching about, SDN (Software Defined Networking) Err codemadness.org 70 i 59419 I began using Mininet as an intern at my university’s network research lab. I was using FreeBSD by that time, and wasn’t too happy to learn that Mininet wouldn’t work on anything but Linux. I gradually got tired of having to run a Linux VM just to use Mininet, and one day it clicked in my mind that I can actually try porting it to FreeBSD. Err codemadness.org 70 i 59420 Mininet creates a topology using the resource virtualization features that Linux has. Specifically, nodes are bash processes running in network namespaces, and the nodes are interconnected using veth virtual Ethernet links. Switches and controllers are just nodes whose shells have run the right commands to configure a software switch or start a controller application. Mininet can therefore be viewed as a series of Python libraries that run the system commands necessary to create network namespaces and veth interfaces, assemble a specified topology, and coordinate how user commands aimed at nodes (since they are just shells) are run. Err codemadness.org 70 i 59421 Coming back to the port, I chose to use vnet jails to replace the network namespaces, and epair(4) links to replace the veth links. For the SDN functionality, I needed at least one switch and controller that can be run on FreeBSD. I chose OpenvSwitch(OVS) for the switch, since it was available in ports and is well-known by the SDN world, and Ryu for the controller since it’s being actively developed and used and supports more recent versions of OpenFlow. Err codemadness.org 70 i 59422 I have discussed the possibility of upstreaming my work. Although they were excited about it, I was asked about a script for creating VMs with Mininet preinstalled, and continuous integration support for my fork of the repository. I started taking a look at the release scripts for creating a VM, and after seeing that it would be much easier to use the scripts if I can get Mininet and Ryu added to the ports tree, I also tried a hand at submitting some ports. For CI support, Mininet uses Travis, which unfortunately doesn’t support FreeBSD. For this, I plan to look at a minimalistic CI tool called contbuild, which looks simple enough to get running and is written portably. Err codemadness.org 70 i 59423 This is very much a work-in-progress, and one going at a glacial pace. Even though the company that I work for does use Mininet, but doesn’t use FreeBSD, so this is something that I’ve been working on in my free time. Earlier on, it was the learning curve that made progress slow. When I started, I hadn’t done anything more than run FreeBSD on a laptop, and uneventfully build a few applications from the ports tree. Right off the bat, using vnet jails meant learning how to build and run a custom kernel. This was the easy part, as the handbook was clear about how to do this. When I moved from using FreeBSD 10.3 to 11, I found that I can panic my machine by quickly creating and destroying OVS switches and jails. I submitted a bug report, but decided to go one step further and actually try to debug the panic for myself. With the help of a few people well-versed in systems programming and the developer’s handbook, I was able to come up with a fix, and get it accepted. This pretty much brings my porting experiment to the present day, where I’m slowly working out the pieces that I mentioned earlier. Err codemadness.org 70 i 59424 In the beginning, I thought that this Mininet port would be a weekend project where I come out knowing thing or two about using vnet jails and with one less VM to run. Instead, it became a crash course in building and debugging kernels and submitting bug reports, patches, and ports. It’d like to mention that I wouldn’t have gotten far at all if it weren’t for the helpful folks, the documentation, and how debuggable FreeBSD is. I enjoy good challenges and learning experiences, and this has definitely been both.</li> Err codemadness.org 70 i 59425 <li>Thank you to Ayaka for working to port Mininet to the BSDs, and for sharing her experiences with us.</li> Err codemadness.org 70 i 59426 <li>If you want to see the OpenBSD version of the talk, the video from <a href="https://www.youtube.com/watch?v=Vg9Czjm9aV8">AsiaBSDCon is here</a>, and it will be presented again at BSDCan.</li> Err codemadness.org 70 i 59427 </ul> Err codemadness.org 70 i 59428 <hr /> Err codemadness.org 70 i 59429 </blockquote> Err codemadness.org 70 i 59430 Err codemadness.org 70 i 59431 **iXsystems** Err codemadness.org 70 i 59432 [iXsystems LFNW Recap](https://www.ixsystems.com/blog/lfnw-2018-recap/) Err codemadness.org 70 i 59433 Err codemadness.org 70 i 59434 Err codemadness.org 70 i 59435 <hr /> Err codemadness.org 70 i 59436 Err codemadness.org 70 i 59437 Err codemadness.org 70 i 59438 Err codemadness.org 70 i 59439 Err codemadness.org 70 i 59440 Err codemadness.org 70 i 59441 <h3><a href="https://forums.freebsd.org/threads/10-dos-and-dont-for-freebsd.65618/">10 Beginner Do's and Don't for FreeBSD</a></h3> Err codemadness.org 70 i 59442 Err codemadness.org 70 i 59443 <ul> Err codemadness.org 70 i 59444 <li>1) Don't mix ports and binary packages</li> Err codemadness.org 70 i 59445 <li>2) Don't edit 'default' files</li> Err codemadness.org 70 i 59446 <li>3) Don't mess with /etc/crontab</li> Err codemadness.org 70 i 59447 <li>4) Don't mess with /etc/passwd and /etc/groups either!</li> Err codemadness.org 70 i 59448 <li>5) Reconsider the removal of any options from your customized kernel configuration</li> Err codemadness.org 70 i 59449 <li>6) Don't change the root shell to something else</li> Err codemadness.org 70 i 59450 <li>7) Don't use the root user all the time</li> Err codemadness.org 70 i 59451 <li>8) /var/backups is a thing</li> Err codemadness.org 70 i 59452 <li>9) Check system integrity using /etc/mtree</li> Err codemadness.org 70 i 59453 <li>10) What works for me doesn't have to work for you!</li> Err codemadness.org 70 i 59454 </ul> Err codemadness.org 70 i 59455 Err codemadness.org 70 i 59456 <hr /> Err codemadness.org 70 i 59457 <h2>News Roundup</h2> Err codemadness.org 70 i 59458 Err codemadness.org 70 i 59459 <h3><a href="https://undeadly.org/cgi?action=article;sid=20180419060427">OpenBSD Community Goes Gold for 2018!</a></h3> Err codemadness.org 70 i 59460 Err codemadness.org 70 i 59461 <ul> Err codemadness.org 70 i 59462 <li>Ken Westerback (krw@ when wearing his developer hat) writes:</li> Err codemadness.org 70 i 59463 </ul> Err codemadness.org 70 i 59464 Err codemadness.org 70 i 59465 <p>``` Err codemadness.org 70 i 59466 Monthly paypal donations from the OpenBSD community have made the community the OpenBSD Foundation's first Gold level contributor for 2018!</p> Err codemadness.org 70 i 59467 Err codemadness.org 70 i 59468 <p>2018 is the third consecutive year that the community has reached Gold status or better.</p> Err codemadness.org 70 i 59469 Err codemadness.org 70 i 59470 <p>These monthly paypal commitments by the community are our most reliable source of funds and thus the most useful for financial planning purposes. We are extremely thankful for the continuing support and hope the community matches their 2017 achievement of Platinum status. Or even their 2016 achievement of Iridium status.</p> Err codemadness.org 70 i 59471 Err codemadness.org 70 i 59472 <p>Sign up now for a monthly donation!</p> Err codemadness.org 70 i 59473 Err codemadness.org 70 i 59474 <p>Note that Bitcoin contributions have been re-enabled now that our Bitcoin intermediary has re-certified our Canadian paperwork.</p> Err codemadness.org 70 i 59475 Err codemadness.org 70 i 59476 <p>https://www.openbsdfoundation.org/donations.html Err codemadness.org 70 i 59477 ```</p> Err codemadness.org 70 i 59478 Err codemadness.org 70 i 59479 <hr /> Err codemadness.org 70 i 59480 <h3><a href="http://bsdly.blogspot.com/2018/04/ed1-mastery-is-must-for-real-unix-person.html">ed(1) mastery is a must read for real unix people</a></h3> Err codemadness.org 70 i 59481 Err codemadness.org 70 i 59482 <blockquote> Err codemadness.org 70 i 59483 <p>In some circles on the Internet, your choice of text editor is a serious matter.</p> Err codemadness.org 70 i 59484 Err codemadness.org 70 i 59485 <p>We've all seen the threads on mailing lits, USENET news groups and web forums about the relative merits of Emacs vs vi, including endless iterations of flame wars, and sometimes even involving lesser known or non-portable editing environments.</p> Err codemadness.org 70 i 59486 Err codemadness.org 70 i 59487 <p>And then of course, from the Linux newbies we have seen an endless stream of tweeted graphical 'memes' about the editor vim (aka 'vi Improved') versus the various apparently friendlier-to-some options such as GNU nano. Apparently even the 'improved' version of the classical and ubiquitous vi(1) editor is a challenge even to exit for a significant subset of the younger generation.</p> Err codemadness.org 70 i 59488 Err codemadness.org 70 i 59489 <p>Yes, your choice of text editor or editing environment is a serious matter. Mainly because text processing is so fundamental to our interactions with computers.</p> Err codemadness.org 70 i 59490 Err codemadness.org 70 i 59491 <p>But for those of us who keep our systems on a real Unix (such as OpenBSD or FreeBSD), there is no real contest. The OpenBSD base system contains several text editors including vi(1) and the almost-emacs mg(1), but ed(1) remains the standard editor.</p> Err codemadness.org 70 i 59492 Err codemadness.org 70 i 59493 <p>Now Michael Lucas has written a book to guide the as yet uninitiated to the fundamentals of the original Unix text editor. It is worth keeping in mind that much of Unix and its original standard text editor written back when the standard output and default user interface was more likely than not a printing terminal.</p> Err codemadness.org 70 i 59494 Err codemadness.org 70 i 59495 <p>To some of us, reading and following the narrative of Ed Mastery is a trip down memory lane. To others, following along the text will illustrate the horror of the world of pre-graphic computer interfaces. For others again, the fact that ed(1) doesn't use your terminal settings much at all offers hope of fixing things when something or somebody screwed up your system so you don't have a working terminal for that visual editor.</p> Err codemadness.org 70 i 59496 </blockquote> Err codemadness.org 70 i 59497 Err codemadness.org 70 i 59498 <hr /> Err codemadness.org 70 i 59499 <p><strong>DigitalOcean</strong> Err codemadness.org 70 i 59500 <a href="http://do.co/bsdnow">Digital Ocean Promo Link for BSD Now Listeners</a></p> Err codemadness.org 70 i 59501 Err codemadness.org 70 i 59502 <hr /> Err codemadness.org 70 i 59503 <h3><a href="https://vermaden.wordpress.com/2018/04/16/distributed-object-storage-with-minio-on-freebsd/">Distributed Object Storage with Minio on FreeBSD</a></h3> Err codemadness.org 70 i 59504 Err codemadness.org 70 i 59505 <blockquote> Err codemadness.org 70 i 59506 <p>Free and open source distributed object storage server compatible with Amazon S3 v2/v4 API. Offers data protection against hardware failures using erasure code and bitrot detection. Supports highly available distributed setup. Provides confidentiality, integrity and authenticity assurances for encrypted data with negligible performance overhead. Both server side and client side encryption are supported. Below is the image of example Minio setup.</p> Err codemadness.org 70 i 59507 </blockquote> Err codemadness.org 70 i 59508 Err codemadness.org 70 i 59509 <ul> Err codemadness.org 70 i 59510 <li><a href="https://vermaden.files.wordpress.com/2018/04/minio-architecture-diagram-distributed.jpg?w=960">Architecture Diagram </a></li> Err codemadness.org 70 i 59511 </ul> Err codemadness.org 70 i 59512 Err codemadness.org 70 i 59513 <p>The Minio identifies itself as the ZFS of Cloud Object Storage. This guide will show You how to setup highly available distributed Minio storage on the FreeBSD operating system with ZFS as backend for Minio data. For convenience we will use FreeBSD Jails operating system level virtualization.</p> Err codemadness.org 70 i 59514 Err codemadness.org 70 i 59515 <ul> Err codemadness.org 70 i 59516 <li>Setup</li> Err codemadness.org 70 i 59517 </ul> Err codemadness.org 70 i 59518 Err codemadness.org 70 i 59519 <blockquote> Err codemadness.org 70 i 59520 <p>The setup will assume that You have 3 datacenters and assumption that you have two datacenters in whose the most of the data must reside and that the third datacenter is used as a ‘quorum/witness’ role. Distributed Minio supports up to 16 nodes/drives total, so we may juggle with that number to balance data between desired datacenters. As we have 16 drives to allocate resources on 3 sites we will use 7 + 7 + 2 approach here. The datacenters where most of the data must reside have 7/16 ratio while the ‘quorum/witness’ datacenter have only 2/16 ratio. Thanks to built in Minio redundancy we may loose (turn off for example) any one of those machines and our object storage will still be available and ready to use for any purpose.</p> Err codemadness.org 70 i 59521 </blockquote> Err codemadness.org 70 i 59522 Err codemadness.org 70 i 59523 <ul> Err codemadness.org 70 i 59524 <li>Jails</li> Err codemadness.org 70 i 59525 </ul> Err codemadness.org 70 i 59526 Err codemadness.org 70 i 59527 <blockquote> Err codemadness.org 70 i 59528 <p>First we will create 3 jails for our proof of concept Minio setup, storage1 will have the ‘quorum/witness’ role while storage2 and storage3 will have the ‘data’ role. To distinguish commands I type on the host system and storageX Jail I use two different prompts, this way it should be obvious what command to execute and where.</p> Err codemadness.org 70 i 59529 </blockquote> Err codemadness.org 70 i 59530 Err codemadness.org 70 i 59531 <ul> Err codemadness.org 70 i 59532 <li>WeI know the FreeNAS people have been working on integrating this</li> Err codemadness.org 70 i 59533 </ul> Err codemadness.org 70 i 59534 Err codemadness.org 70 i 59535 <hr /> Err codemadness.org 70 i 59536 <h3><a href="https://kristaps.bsd.lv/kcgi/tutorial6.html">Best practises for pledge(2) security</a></h3> Err codemadness.org 70 i 59537 Err codemadness.org 70 i 59538 <blockquote> Err codemadness.org 70 i 59539 <p>Let's set the record straight for securing kcgi CGI and FastCGI applications with pledge(2). This is focussed on secure OpenBSD deployments.</p> Err codemadness.org 70 i 59540 </blockquote> Err codemadness.org 70 i 59541 Err codemadness.org 70 i 59542 <ul> Err codemadness.org 70 i 59543 <li>Theory</li> Err codemadness.org 70 i 59544 </ul> Err codemadness.org 70 i 59545 Err codemadness.org 70 i 59546 <blockquote> Err codemadness.org 70 i 59547 <p>Internally, kcgi makes considerable use of available security tools. But it's also designed to be invoked in a secure environment. We'll start with pledge(2), which has been around on OpenBSD since version 5.9. If you're reading this tutorial, you're probably on OpenBSD, and you probably have knowledge of pledge(2).</p> Err codemadness.org 70 i 59548 Err codemadness.org 70 i 59549 <p>How to begin? Read kcgi(3). It includes canonical information on which pledge(2) promises you'll need for each function in the library. This is just a tutorial—the manpage is canonical and overrides what you may read here.</p> Err codemadness.org 70 i 59550 Err codemadness.org 70 i 59551 <p>Next, assess the promises that your application needs. From kcgi(3), it's easy to see which promises we'll need to start. You'll need to augment this list with whichever tools you're also using. The general push is to start with the broadest set of required promises, then restrict as quickly as possible. Sometimes this can be done in a single pledge(2), but other times it takes a few.</p> Err codemadness.org 70 i 59552 </blockquote> Err codemadness.org 70 i 59553 Err codemadness.org 70 i 59554 <hr /> Err codemadness.org 70 i 59555 <h2>Beastie Bits</h2> Err codemadness.org 70 i 59556 Err codemadness.org 70 i 59557 <ul> Err codemadness.org 70 i 59558 <li><a href="http://mailman.uk.freebsd.org/pipermail/ukfreebsd/2018-April/014194.html">April's London *BSD meetup - notes</a></li> Err codemadness.org 70 i 59559 <li><a href="http://mailman.uk.freebsd.org/pipermail/ukfreebsd/2018-May/014198.html">May’s London *BSD Meetup: May 22nd </a></li> Err codemadness.org 70 i 59560 <li><a href="https://2018.eurobsdcon.org/call-for-papers/">Call for Papers for EuroBSDcon 2018</a></li> Err codemadness.org 70 i 59561 <li><a href="https://www.freebsdfoundation.org/journal/">FreeBSD Journal March/April Desktop/Laptop issue</a></li> Err codemadness.org 70 i 59562 <li><a href="https://lwn.net/Articles/752063/">LWN followup on the PostgreSQL fsync() issue</a></li> Err codemadness.org 70 i 59563 <li><a href="https://awards.acm.org/outstanding-contribution">The Association for Computing Machinery recognizes Steve Bourne for outstanding contributions</a></li> Err codemadness.org 70 i 59564 </ul> Err codemadness.org 70 i 59565 Err codemadness.org 70 i 59566 <hr /> Err codemadness.org 70 i 59567 <h2>Feedback/Questions</h2> Err codemadness.org 70 i 59568 Err codemadness.org 70 i 59569 <ul> Err codemadness.org 70 i 59570 <li>Ray - <a href="http://dpaste.com/1F8RX6H#wrap">Speaking at Conferences</a></li> Err codemadness.org 70 i 59571 <li>Casey - <a href="http://dpaste.com/364FTMM#wrap">Questions</a></li> Err codemadness.org 70 i 59572 <li>Jeremy - <a href="http://dpaste.com/3GWHP9N#wrap">zfs in the enterprise</a> Err codemadness.org 70 i 59573 <ul><li><a href="https://wiki.freebsd.org/HAST">HAST + ZFS</a></li></ul></li> Err codemadness.org 70 i 59574 <li>Lars - <a href="http://dpaste.com/1HDZFA3">Civil Infrastructure Platform use of *BSD</a></li> Err codemadness.org 70 i 59575 </ul> Err codemadness.org 70 i 59576 Err codemadness.org 70 i 59577 <hr /> Err codemadness.org 70 i 59578 <ul> Err codemadness.org 70 i 59579 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 59580 </ul> Err codemadness.org 70 i 59581 Err codemadness.org 70 i 59582 freebsd, openbsd, netbsd, dragonflybsd, trueos, tutorial, howto, guide, bsd, interview, MinIO, SDN Emulator Mininet, PostgresQL Err codemadness.org 70 i 59583 Err codemadness.org 70 i 59584 How Intel docs were misinterpreted by almost any OS, a look at the mininet SDN emulator, do’s and don’ts for FreeBSD, OpenBSD community going gold, ed mastery is a must read, and the distributed object store minio on FreeBSD.

Err codemadness.org 70 i 59585 Err codemadness.org 70 i 59586

Headlines

Err codemadness.org 70 i 59587 Err codemadness.org 70 i 59588

Intel documentation flaw sees instruction misimplemented in almost every OS

Err codemadness.org 70 i 59589 Err codemadness.org 70 i 59590
Err codemadness.org 70 i 59591

A statement in the System Programming Guide of the Intel 64 and IA-32 Architectures Software Developer's Manual (SDM) was mishandled in the development of some or all operating-system kernels, resulting in unexpected behavior for #DB exceptions that are deferred by MOV SS or POP SS, as demonstrated by (for example) privilege escalation in Windows, macOS, some Xen configurations, or FreeBSD, or a Linux kernel crash. Err codemadness.org 70 i 59592 OS kernels may not expect this order of events and may therefore experience unexpected behavior when it occurs. Err codemadness.org 70 i 59593 + A detailed white paper describes this behavior here Err codemadness.org 70 i 59594 + FreeBSD Commit Err codemadness.org 70 i 59595 Thank you to the MSRC Incident Response Team, and in particular Greg Lenti and Nate Warfield, for coordinating the response to this issue across multiple vendors. Err codemadness.org 70 i 59596 Thanks to Computer Recycling at The Working Center of Kitchener for making hardware available to allow us to test the patch on additional CPU families. Err codemadness.org 70 i 59597 + FreeBSD Security Advisory Err codemadness.org 70 i 59598 + DragonFlyBSD Post Err codemadness.org 70 i 59599 + NetBSD does not support debug register and so is not affected. Err codemadness.org 70 i 59600 + OpenBSD also appears to not be affected, “We are not aware of further vendor information regarding this vulnerability.” Err codemadness.org 70 i 59601 + IllumOS Not Impacted

Err codemadness.org 70 i 59602
Err codemadness.org 70 i 59603 Err codemadness.org 70 i 59604


Err codemadness.org 70 i 59605 Err codemadness.org 70 i 59606

Guest Post – A Look at SDN Emulator Mininet

Err codemadness.org 70 i 59607 Err codemadness.org 70 i 59608
    Err codemadness.org 70 i 59609
  • A guest post on the FreeBSD Foundation’s blog by developer Ayaka Koshibe Err codemadness.org 70 i 59610 Err codemadness.org 70 i 59611 Err codemadness.org 70 i 59612
    Err codemadness.org 70 i 59613 At this year’s AsiaBSDCon, I presented a talk about a SDN network emulator called Mininet, and my ongoing work to make it more portable. That presentation was focused on the OpenBSD version of the port, and I breezed past the detail that I also had a version or Mininet working on FreeBSD. Because I was given the opportunity, I’d like to share a bit about the FreeBSD version of Mininet. It will not only be about what Mininet is and why it might be interesting, but also a recounting of my experience as a user making a first-time attempt at porting an application to FreeBSD. Err codemadness.org 70 i 59614 Mininet started off as a tool used by academic researchers to emulate OpenFlow networks when they didn’t have convenient access to actual networks. Because of its history, Mininet became associated strongly with networks that use OpenFlow for their control channels. But, it has also become fairly popular among developers working in, and among several universities for research and teaching about, SDN (Software Defined Networking) Err codemadness.org 70 i 59615 I began using Mininet as an intern at my university’s network research lab. I was using FreeBSD by that time, and wasn’t too happy to learn that Mininet wouldn’t work on anything but Linux. I gradually got tired of having to run a Linux VM just to use Mininet, and one day it clicked in my mind that I can actually try porting it to FreeBSD. Err codemadness.org 70 i 59616 Mininet creates a topology using the resource virtualization features that Linux has. Specifically, nodes are bash processes running in network namespaces, and the nodes are interconnected using veth virtual Ethernet links. Switches and controllers are just nodes whose shells have run the right commands to configure a software switch or start a controller application. Mininet can therefore be viewed as a series of Python libraries that run the system commands necessary to create network namespaces and veth interfaces, assemble a specified topology, and coordinate how user commands aimed at nodes (since they are just shells) are run. Err codemadness.org 70 i 59617 Coming back to the port, I chose to use vnet jails to replace the network namespaces, and epair(4) links to replace the veth links. For the SDN functionality, I needed at least one switch and controller that can be run on FreeBSD. I chose OpenvSwitch(OVS) for the switch, since it was available in ports and is well-known by the SDN world, and Ryu for the controller since it’s being actively developed and used and supports more recent versions of OpenFlow. Err codemadness.org 70 i 59618 I have discussed the possibility of upstreaming my work. Although they were excited about it, I was asked about a script for creating VMs with Mininet preinstalled, and continuous integration support for my fork of the repository. I started taking a look at the release scripts for creating a VM, and after seeing that it would be much easier to use the scripts if I can get Mininet and Ryu added to the ports tree, I also tried a hand at submitting some ports. For CI support, Mininet uses Travis, which unfortunately doesn’t support FreeBSD. For this, I plan to look at a minimalistic CI tool called contbuild, which looks simple enough to get running and is written portably. Err codemadness.org 70 i 59619 This is very much a work-in-progress, and one going at a glacial pace. Even though the company that I work for does use Mininet, but doesn’t use FreeBSD, so this is something that I’ve been working on in my free time. Earlier on, it was the learning curve that made progress slow. When I started, I hadn’t done anything more than run FreeBSD on a laptop, and uneventfully build a few applications from the ports tree. Right off the bat, using vnet jails meant learning how to build and run a custom kernel. This was the easy part, as the handbook was clear about how to do this. When I moved from using FreeBSD 10.3 to 11, I found that I can panic my machine by quickly creating and destroying OVS switches and jails. I submitted a bug report, but decided to go one step further and actually try to debug the panic for myself. With the help of a few people well-versed in systems programming and the developer’s handbook, I was able to come up with a fix, and get it accepted. This pretty much brings my porting experiment to the present day, where I’m slowly working out the pieces that I mentioned earlier. Err codemadness.org 70 i 59620 In the beginning, I thought that this Mininet port would be a weekend project where I come out knowing thing or two about using vnet jails and with one less VM to run. Instead, it became a crash course in building and debugging kernels and submitting bug reports, patches, and ports. It’d like to mention that I wouldn’t have gotten far at all if it weren’t for the helpful folks, the documentation, and how debuggable FreeBSD is. I enjoy good challenges and learning experiences, and this has definitely been both.
  • Err codemadness.org 70 i 59621
  • Thank you to Ayaka for working to port Mininet to the BSDs, and for sharing her experiences with us.
  • Err codemadness.org 70 i 59622
  • If you want to see the OpenBSD version of the talk, the video from AsiaBSDCon is here, and it will be presented again at BSDCan.
  • Err codemadness.org 70 i 59623
Err codemadness.org 70 i 59624
Err codemadness.org 70 i 59625 Err codemadness.org 70 i 59626 Err codemadness.org 70 i 59627 **iXsystems** Err codemadness.org 70 i 59628 [iXsystems LFNW Recap](https://www.ixsystems.com/blog/lfnw-2018-recap/) Err codemadness.org 70 i 59629 Err codemadness.org 70 i 59630 Err codemadness.org 70 i 59631
Err codemadness.org 70 i 59632 Err codemadness.org 70 i 59633 Err codemadness.org 70 i 59634 Err codemadness.org 70 i 59635 Err codemadness.org 70 i 59636 Err codemadness.org 70 i 59637

10 Beginner Do's and Don't for FreeBSD

Err codemadness.org 70 i 59638 Err codemadness.org 70 i 59639
    Err codemadness.org 70 i 59640
  • 1) Don't mix ports and binary packages
  • Err codemadness.org 70 i 59641
  • 2) Don't edit 'default' files
  • Err codemadness.org 70 i 59642
  • 3) Don't mess with /etc/crontab
  • Err codemadness.org 70 i 59643
  • 4) Don't mess with /etc/passwd and /etc/groups either!
  • Err codemadness.org 70 i 59644
  • 5) Reconsider the removal of any options from your customized kernel configuration
  • Err codemadness.org 70 i 59645
  • 6) Don't change the root shell to something else
  • Err codemadness.org 70 i 59646
  • 7) Don't use the root user all the time
  • Err codemadness.org 70 i 59647
  • 8) /var/backups is a thing
  • Err codemadness.org 70 i 59648
  • 9) Check system integrity using /etc/mtree
  • Err codemadness.org 70 i 59649
  • 10) What works for me doesn't have to work for you!
  • Err codemadness.org 70 i 59650
Err codemadness.org 70 i 59651 Err codemadness.org 70 i 59652


Err codemadness.org 70 i 59653 Err codemadness.org 70 i 59654

News Roundup

Err codemadness.org 70 i 59655 Err codemadness.org 70 i 59656

OpenBSD Community Goes Gold for 2018!

Err codemadness.org 70 i 59657 Err codemadness.org 70 i 59658
    Err codemadness.org 70 i 59659
  • Ken Westerback (krw@ when wearing his developer hat) writes:
  • Err codemadness.org 70 i 59660
Err codemadness.org 70 i 59661 Err codemadness.org 70 i 59662

``` Err codemadness.org 70 i 59663 Monthly paypal donations from the OpenBSD community have made the community the OpenBSD Foundation's first Gold level contributor for 2018!

Err codemadness.org 70 i 59664 Err codemadness.org 70 i 59665

2018 is the third consecutive year that the community has reached Gold status or better.

Err codemadness.org 70 i 59666 Err codemadness.org 70 i 59667

These monthly paypal commitments by the community are our most reliable source of funds and thus the most useful for financial planning purposes. We are extremely thankful for the continuing support and hope the community matches their 2017 achievement of Platinum status. Or even their 2016 achievement of Iridium status.

Err codemadness.org 70 i 59668 Err codemadness.org 70 i 59669

Sign up now for a monthly donation!

Err codemadness.org 70 i 59670 Err codemadness.org 70 i 59671

Note that Bitcoin contributions have been re-enabled now that our Bitcoin intermediary has re-certified our Canadian paperwork.

Err codemadness.org 70 i 59672 Err codemadness.org 70 i 59673

https://www.openbsdfoundation.org/donations.html Err codemadness.org 70 i 59674 ```

Err codemadness.org 70 i 59675 Err codemadness.org 70 i 59676


Err codemadness.org 70 i 59677 Err codemadness.org 70 i 59678

ed(1) mastery is a must read for real unix people

Err codemadness.org 70 i 59679 Err codemadness.org 70 i 59680
Err codemadness.org 70 i 59681

In some circles on the Internet, your choice of text editor is a serious matter.

Err codemadness.org 70 i 59682 Err codemadness.org 70 i 59683

We've all seen the threads on mailing lits, USENET news groups and web forums about the relative merits of Emacs vs vi, including endless iterations of flame wars, and sometimes even involving lesser known or non-portable editing environments.

Err codemadness.org 70 i 59684 Err codemadness.org 70 i 59685

And then of course, from the Linux newbies we have seen an endless stream of tweeted graphical 'memes' about the editor vim (aka 'vi Improved') versus the various apparently friendlier-to-some options such as GNU nano. Apparently even the 'improved' version of the classical and ubiquitous vi(1) editor is a challenge even to exit for a significant subset of the younger generation.

Err codemadness.org 70 i 59686 Err codemadness.org 70 i 59687

Yes, your choice of text editor or editing environment is a serious matter. Mainly because text processing is so fundamental to our interactions with computers.

Err codemadness.org 70 i 59688 Err codemadness.org 70 i 59689

But for those of us who keep our systems on a real Unix (such as OpenBSD or FreeBSD), there is no real contest. The OpenBSD base system contains several text editors including vi(1) and the almost-emacs mg(1), but ed(1) remains the standard editor.

Err codemadness.org 70 i 59690 Err codemadness.org 70 i 59691

Now Michael Lucas has written a book to guide the as yet uninitiated to the fundamentals of the original Unix text editor. It is worth keeping in mind that much of Unix and its original standard text editor written back when the standard output and default user interface was more likely than not a printing terminal.

Err codemadness.org 70 i 59692 Err codemadness.org 70 i 59693

To some of us, reading and following the narrative of Ed Mastery is a trip down memory lane. To others, following along the text will illustrate the horror of the world of pre-graphic computer interfaces. For others again, the fact that ed(1) doesn't use your terminal settings much at all offers hope of fixing things when something or somebody screwed up your system so you don't have a working terminal for that visual editor.

Err codemadness.org 70 i 59694
Err codemadness.org 70 i 59695 Err codemadness.org 70 i 59696


Err codemadness.org 70 i 59697 Err codemadness.org 70 i 59698

DigitalOcean Err codemadness.org 70 i 59699 Digital Ocean Promo Link for BSD Now Listeners

Err codemadness.org 70 i 59700 Err codemadness.org 70 i 59701


Err codemadness.org 70 i 59702 Err codemadness.org 70 i 59703

Distributed Object Storage with Minio on FreeBSD

Err codemadness.org 70 i 59704 Err codemadness.org 70 i 59705
Err codemadness.org 70 i 59706

Free and open source distributed object storage server compatible with Amazon S3 v2/v4 API. Offers data protection against hardware failures using erasure code and bitrot detection. Supports highly available distributed setup. Provides confidentiality, integrity and authenticity assurances for encrypted data with negligible performance overhead. Both server side and client side encryption are supported. Below is the image of example Minio setup.

Err codemadness.org 70 i 59707
Err codemadness.org 70 i 59708 Err codemadness.org 70 i 59709 Err codemadness.org 70 i 59712 Err codemadness.org 70 i 59713

The Minio identifies itself as the ZFS of Cloud Object Storage. This guide will show You how to setup highly available distributed Minio storage on the FreeBSD operating system with ZFS as backend for Minio data. For convenience we will use FreeBSD Jails operating system level virtualization.

Err codemadness.org 70 i 59714 Err codemadness.org 70 i 59715
    Err codemadness.org 70 i 59716
  • Setup
  • Err codemadness.org 70 i 59717
Err codemadness.org 70 i 59718 Err codemadness.org 70 i 59719
Err codemadness.org 70 i 59720

The setup will assume that You have 3 datacenters and assumption that you have two datacenters in whose the most of the data must reside and that the third datacenter is used as a ‘quorum/witness’ role. Distributed Minio supports up to 16 nodes/drives total, so we may juggle with that number to balance data between desired datacenters. As we have 16 drives to allocate resources on 3 sites we will use 7 + 7 + 2 approach here. The datacenters where most of the data must reside have 7/16 ratio while the ‘quorum/witness’ datacenter have only 2/16 ratio. Thanks to built in Minio redundancy we may loose (turn off for example) any one of those machines and our object storage will still be available and ready to use for any purpose.

Err codemadness.org 70 i 59721
Err codemadness.org 70 i 59722 Err codemadness.org 70 i 59723
    Err codemadness.org 70 i 59724
  • Jails
  • Err codemadness.org 70 i 59725
Err codemadness.org 70 i 59726 Err codemadness.org 70 i 59727
Err codemadness.org 70 i 59728

First we will create 3 jails for our proof of concept Minio setup, storage1 will have the ‘quorum/witness’ role while storage2 and storage3 will have the ‘data’ role. To distinguish commands I type on the host system and storageX Jail I use two different prompts, this way it should be obvious what command to execute and where.

Err codemadness.org 70 i 59729
Err codemadness.org 70 i 59730 Err codemadness.org 70 i 59731
    Err codemadness.org 70 i 59732
  • WeI know the FreeNAS people have been working on integrating this
  • Err codemadness.org 70 i 59733
Err codemadness.org 70 i 59734 Err codemadness.org 70 i 59735


Err codemadness.org 70 i 59736 Err codemadness.org 70 i 59737

Best practises for pledge(2) security

Err codemadness.org 70 i 59738 Err codemadness.org 70 i 59739
Err codemadness.org 70 i 59740

Let's set the record straight for securing kcgi CGI and FastCGI applications with pledge(2). This is focussed on secure OpenBSD deployments.

Err codemadness.org 70 i 59741
Err codemadness.org 70 i 59742 Err codemadness.org 70 i 59743
    Err codemadness.org 70 i 59744
  • Theory
  • Err codemadness.org 70 i 59745
Err codemadness.org 70 i 59746 Err codemadness.org 70 i 59747
Err codemadness.org 70 i 59748

Internally, kcgi makes considerable use of available security tools. But it's also designed to be invoked in a secure environment. We'll start with pledge(2), which has been around on OpenBSD since version 5.9. If you're reading this tutorial, you're probably on OpenBSD, and you probably have knowledge of pledge(2).

Err codemadness.org 70 i 59749 Err codemadness.org 70 i 59750

How to begin? Read kcgi(3). It includes canonical information on which pledge(2) promises you'll need for each function in the library. This is just a tutorial—the manpage is canonical and overrides what you may read here.

Err codemadness.org 70 i 59751 Err codemadness.org 70 i 59752

Next, assess the promises that your application needs. From kcgi(3), it's easy to see which promises we'll need to start. You'll need to augment this list with whichever tools you're also using. The general push is to start with the broadest set of required promises, then restrict as quickly as possible. Sometimes this can be done in a single pledge(2), but other times it takes a few.

Err codemadness.org 70 i 59753
Err codemadness.org 70 i 59754 Err codemadness.org 70 i 59755


Err codemadness.org 70 i 59756 Err codemadness.org 70 i 59757

Beastie Bits

Err codemadness.org 70 i 59758 Err codemadness.org 70 i 59759 Err codemadness.org 70 i 59767 Err codemadness.org 70 i 59768


Err codemadness.org 70 i 59769 Err codemadness.org 70 i 59770

Feedback/Questions

Err codemadness.org 70 i 59771 Err codemadness.org 70 i 59772 Err codemadness.org 70 i 59779 Err codemadness.org 70 i 59780


Err codemadness.org 70 i 59781 Err codemadness.org 70 i 59782
    Err codemadness.org 70 i 59783
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 59784
]]> Err codemadness.org 70 i 59785
Err codemadness.org 70 i 59786 Err codemadness.org 70 i 59787 How Intel docs were misinterpreted by almost any OS, a look at the mininet SDN emulator, do’s and don’ts for FreeBSD, OpenBSD community going gold, ed mastery is a must read, and the distributed object store minio on FreeBSD.

Err codemadness.org 70 i 59788 Err codemadness.org 70 i 59789

Headlines

Err codemadness.org 70 i 59790 Err codemadness.org 70 i 59791

Intel documentation flaw sees instruction misimplemented in almost every OS

Err codemadness.org 70 i 59792 Err codemadness.org 70 i 59793
Err codemadness.org 70 i 59794

A statement in the System Programming Guide of the Intel 64 and IA-32 Architectures Software Developer's Manual (SDM) was mishandled in the development of some or all operating-system kernels, resulting in unexpected behavior for #DB exceptions that are deferred by MOV SS or POP SS, as demonstrated by (for example) privilege escalation in Windows, macOS, some Xen configurations, or FreeBSD, or a Linux kernel crash. Err codemadness.org 70 i 59795 OS kernels may not expect this order of events and may therefore experience unexpected behavior when it occurs. Err codemadness.org 70 i 59796 + A detailed white paper describes this behavior here Err codemadness.org 70 i 59797 + FreeBSD Commit Err codemadness.org 70 i 59798 Thank you to the MSRC Incident Response Team, and in particular Greg Lenti and Nate Warfield, for coordinating the response to this issue across multiple vendors. Err codemadness.org 70 i 59799 Thanks to Computer Recycling at The Working Center of Kitchener for making hardware available to allow us to test the patch on additional CPU families. Err codemadness.org 70 i 59800 + FreeBSD Security Advisory Err codemadness.org 70 i 59801 + DragonFlyBSD Post Err codemadness.org 70 i 59802 + NetBSD does not support debug register and so is not affected. Err codemadness.org 70 i 59803 + OpenBSD also appears to not be affected, “We are not aware of further vendor information regarding this vulnerability.” Err codemadness.org 70 i 59804 + IllumOS Not Impacted

Err codemadness.org 70 i 59805
Err codemadness.org 70 i 59806 Err codemadness.org 70 i 59807


Err codemadness.org 70 i 59808 Err codemadness.org 70 i 59809

Guest Post – A Look at SDN Emulator Mininet

Err codemadness.org 70 i 59810 Err codemadness.org 70 i 59811
    Err codemadness.org 70 i 59812
  • A guest post on the FreeBSD Foundation’s blog by developer Ayaka Koshibe Err codemadness.org 70 i 59813 Err codemadness.org 70 i 59814 Err codemadness.org 70 i 59815
    Err codemadness.org 70 i 59816 At this year’s AsiaBSDCon, I presented a talk about a SDN network emulator called Mininet, and my ongoing work to make it more portable. That presentation was focused on the OpenBSD version of the port, and I breezed past the detail that I also had a version or Mininet working on FreeBSD. Because I was given the opportunity, I’d like to share a bit about the FreeBSD version of Mininet. It will not only be about what Mininet is and why it might be interesting, but also a recounting of my experience as a user making a first-time attempt at porting an application to FreeBSD. Err codemadness.org 70 i 59817 Mininet started off as a tool used by academic researchers to emulate OpenFlow networks when they didn’t have convenient access to actual networks. Because of its history, Mininet became associated strongly with networks that use OpenFlow for their control channels. But, it has also become fairly popular among developers working in, and among several universities for research and teaching about, SDN (Software Defined Networking) Err codemadness.org 70 i 59818 I began using Mininet as an intern at my university’s network research lab. I was using FreeBSD by that time, and wasn’t too happy to learn that Mininet wouldn’t work on anything but Linux. I gradually got tired of having to run a Linux VM just to use Mininet, and one day it clicked in my mind that I can actually try porting it to FreeBSD. Err codemadness.org 70 i 59819 Mininet creates a topology using the resource virtualization features that Linux has. Specifically, nodes are bash processes running in network namespaces, and the nodes are interconnected using veth virtual Ethernet links. Switches and controllers are just nodes whose shells have run the right commands to configure a software switch or start a controller application. Mininet can therefore be viewed as a series of Python libraries that run the system commands necessary to create network namespaces and veth interfaces, assemble a specified topology, and coordinate how user commands aimed at nodes (since they are just shells) are run. Err codemadness.org 70 i 59820 Coming back to the port, I chose to use vnet jails to replace the network namespaces, and epair(4) links to replace the veth links. For the SDN functionality, I needed at least one switch and controller that can be run on FreeBSD. I chose OpenvSwitch(OVS) for the switch, since it was available in ports and is well-known by the SDN world, and Ryu for the controller since it’s being actively developed and used and supports more recent versions of OpenFlow. Err codemadness.org 70 i 59821 I have discussed the possibility of upstreaming my work. Although they were excited about it, I was asked about a script for creating VMs with Mininet preinstalled, and continuous integration support for my fork of the repository. I started taking a look at the release scripts for creating a VM, and after seeing that it would be much easier to use the scripts if I can get Mininet and Ryu added to the ports tree, I also tried a hand at submitting some ports. For CI support, Mininet uses Travis, which unfortunately doesn’t support FreeBSD. For this, I plan to look at a minimalistic CI tool called contbuild, which looks simple enough to get running and is written portably. Err codemadness.org 70 i 59822 This is very much a work-in-progress, and one going at a glacial pace. Even though the company that I work for does use Mininet, but doesn’t use FreeBSD, so this is something that I’ve been working on in my free time. Earlier on, it was the learning curve that made progress slow. When I started, I hadn’t done anything more than run FreeBSD on a laptop, and uneventfully build a few applications from the ports tree. Right off the bat, using vnet jails meant learning how to build and run a custom kernel. This was the easy part, as the handbook was clear about how to do this. When I moved from using FreeBSD 10.3 to 11, I found that I can panic my machine by quickly creating and destroying OVS switches and jails. I submitted a bug report, but decided to go one step further and actually try to debug the panic for myself. With the help of a few people well-versed in systems programming and the developer’s handbook, I was able to come up with a fix, and get it accepted. This pretty much brings my porting experiment to the present day, where I’m slowly working out the pieces that I mentioned earlier. Err codemadness.org 70 i 59823 In the beginning, I thought that this Mininet port would be a weekend project where I come out knowing thing or two about using vnet jails and with one less VM to run. Instead, it became a crash course in building and debugging kernels and submitting bug reports, patches, and ports. It’d like to mention that I wouldn’t have gotten far at all if it weren’t for the helpful folks, the documentation, and how debuggable FreeBSD is. I enjoy good challenges and learning experiences, and this has definitely been both.
  • Err codemadness.org 70 i 59824
  • Thank you to Ayaka for working to port Mininet to the BSDs, and for sharing her experiences with us.
  • Err codemadness.org 70 i 59825
  • If you want to see the OpenBSD version of the talk, the video from AsiaBSDCon is here, and it will be presented again at BSDCan.
  • Err codemadness.org 70 i 59826
Err codemadness.org 70 i 59827
Err codemadness.org 70 i 59828 Err codemadness.org 70 i 59829 Err codemadness.org 70 i 59830 **iXsystems** Err codemadness.org 70 i 59831 [iXsystems LFNW Recap](https://www.ixsystems.com/blog/lfnw-2018-recap/) Err codemadness.org 70 i 59832 Err codemadness.org 70 i 59833 Err codemadness.org 70 i 59834
Err codemadness.org 70 i 59835 Err codemadness.org 70 i 59836 Err codemadness.org 70 i 59837 Err codemadness.org 70 i 59838 Err codemadness.org 70 i 59839 Err codemadness.org 70 i 59840

10 Beginner Do's and Don't for FreeBSD

Err codemadness.org 70 i 59841 Err codemadness.org 70 i 59842
    Err codemadness.org 70 i 59843
  • 1) Don't mix ports and binary packages
  • Err codemadness.org 70 i 59844
  • 2) Don't edit 'default' files
  • Err codemadness.org 70 i 59845
  • 3) Don't mess with /etc/crontab
  • Err codemadness.org 70 i 59846
  • 4) Don't mess with /etc/passwd and /etc/groups either!
  • Err codemadness.org 70 i 59847
  • 5) Reconsider the removal of any options from your customized kernel configuration
  • Err codemadness.org 70 i 59848
  • 6) Don't change the root shell to something else
  • Err codemadness.org 70 i 59849
  • 7) Don't use the root user all the time
  • Err codemadness.org 70 i 59850
  • 8) /var/backups is a thing
  • Err codemadness.org 70 i 59851
  • 9) Check system integrity using /etc/mtree
  • Err codemadness.org 70 i 59852
  • 10) What works for me doesn't have to work for you!
  • Err codemadness.org 70 i 59853
Err codemadness.org 70 i 59854 Err codemadness.org 70 i 59855


Err codemadness.org 70 i 59856 Err codemadness.org 70 i 59857

News Roundup

Err codemadness.org 70 i 59858 Err codemadness.org 70 i 59859

OpenBSD Community Goes Gold for 2018!

Err codemadness.org 70 i 59860 Err codemadness.org 70 i 59861
    Err codemadness.org 70 i 59862
  • Ken Westerback (krw@ when wearing his developer hat) writes:
  • Err codemadness.org 70 i 59863
Err codemadness.org 70 i 59864 Err codemadness.org 70 i 59865

``` Err codemadness.org 70 i 59866 Monthly paypal donations from the OpenBSD community have made the community the OpenBSD Foundation's first Gold level contributor for 2018!

Err codemadness.org 70 i 59867 Err codemadness.org 70 i 59868

2018 is the third consecutive year that the community has reached Gold status or better.

Err codemadness.org 70 i 59869 Err codemadness.org 70 i 59870

These monthly paypal commitments by the community are our most reliable source of funds and thus the most useful for financial planning purposes. We are extremely thankful for the continuing support and hope the community matches their 2017 achievement of Platinum status. Or even their 2016 achievement of Iridium status.

Err codemadness.org 70 i 59871 Err codemadness.org 70 i 59872

Sign up now for a monthly donation!

Err codemadness.org 70 i 59873 Err codemadness.org 70 i 59874

Note that Bitcoin contributions have been re-enabled now that our Bitcoin intermediary has re-certified our Canadian paperwork.

Err codemadness.org 70 i 59875 Err codemadness.org 70 i 59876

https://www.openbsdfoundation.org/donations.html Err codemadness.org 70 i 59877 ```

Err codemadness.org 70 i 59878 Err codemadness.org 70 i 59879


Err codemadness.org 70 i 59880 Err codemadness.org 70 i 59881

ed(1) mastery is a must read for real unix people

Err codemadness.org 70 i 59882 Err codemadness.org 70 i 59883
Err codemadness.org 70 i 59884

In some circles on the Internet, your choice of text editor is a serious matter.

Err codemadness.org 70 i 59885 Err codemadness.org 70 i 59886

We've all seen the threads on mailing lits, USENET news groups and web forums about the relative merits of Emacs vs vi, including endless iterations of flame wars, and sometimes even involving lesser known or non-portable editing environments.

Err codemadness.org 70 i 59887 Err codemadness.org 70 i 59888

And then of course, from the Linux newbies we have seen an endless stream of tweeted graphical 'memes' about the editor vim (aka 'vi Improved') versus the various apparently friendlier-to-some options such as GNU nano. Apparently even the 'improved' version of the classical and ubiquitous vi(1) editor is a challenge even to exit for a significant subset of the younger generation.

Err codemadness.org 70 i 59889 Err codemadness.org 70 i 59890

Yes, your choice of text editor or editing environment is a serious matter. Mainly because text processing is so fundamental to our interactions with computers.

Err codemadness.org 70 i 59891 Err codemadness.org 70 i 59892

But for those of us who keep our systems on a real Unix (such as OpenBSD or FreeBSD), there is no real contest. The OpenBSD base system contains several text editors including vi(1) and the almost-emacs mg(1), but ed(1) remains the standard editor.

Err codemadness.org 70 i 59893 Err codemadness.org 70 i 59894

Now Michael Lucas has written a book to guide the as yet uninitiated to the fundamentals of the original Unix text editor. It is worth keeping in mind that much of Unix and its original standard text editor written back when the standard output and default user interface was more likely than not a printing terminal.

Err codemadness.org 70 i 59895 Err codemadness.org 70 i 59896

To some of us, reading and following the narrative of Ed Mastery is a trip down memory lane. To others, following along the text will illustrate the horror of the world of pre-graphic computer interfaces. For others again, the fact that ed(1) doesn't use your terminal settings much at all offers hope of fixing things when something or somebody screwed up your system so you don't have a working terminal for that visual editor.

Err codemadness.org 70 i 59897
Err codemadness.org 70 i 59898 Err codemadness.org 70 i 59899


Err codemadness.org 70 i 59900 Err codemadness.org 70 i 59901

DigitalOcean Err codemadness.org 70 i 59902 Digital Ocean Promo Link for BSD Now Listeners

Err codemadness.org 70 i 59903 Err codemadness.org 70 i 59904


Err codemadness.org 70 i 59905 Err codemadness.org 70 i 59906

Distributed Object Storage with Minio on FreeBSD

Err codemadness.org 70 i 59907 Err codemadness.org 70 i 59908
Err codemadness.org 70 i 59909

Free and open source distributed object storage server compatible with Amazon S3 v2/v4 API. Offers data protection against hardware failures using erasure code and bitrot detection. Supports highly available distributed setup. Provides confidentiality, integrity and authenticity assurances for encrypted data with negligible performance overhead. Both server side and client side encryption are supported. Below is the image of example Minio setup.

Err codemadness.org 70 i 59910
Err codemadness.org 70 i 59911 Err codemadness.org 70 i 59912 Err codemadness.org 70 i 59915 Err codemadness.org 70 i 59916

The Minio identifies itself as the ZFS of Cloud Object Storage. This guide will show You how to setup highly available distributed Minio storage on the FreeBSD operating system with ZFS as backend for Minio data. For convenience we will use FreeBSD Jails operating system level virtualization.

Err codemadness.org 70 i 59917 Err codemadness.org 70 i 59918
    Err codemadness.org 70 i 59919
  • Setup
  • Err codemadness.org 70 i 59920
Err codemadness.org 70 i 59921 Err codemadness.org 70 i 59922
Err codemadness.org 70 i 59923

The setup will assume that You have 3 datacenters and assumption that you have two datacenters in whose the most of the data must reside and that the third datacenter is used as a ‘quorum/witness’ role. Distributed Minio supports up to 16 nodes/drives total, so we may juggle with that number to balance data between desired datacenters. As we have 16 drives to allocate resources on 3 sites we will use 7 + 7 + 2 approach here. The datacenters where most of the data must reside have 7/16 ratio while the ‘quorum/witness’ datacenter have only 2/16 ratio. Thanks to built in Minio redundancy we may loose (turn off for example) any one of those machines and our object storage will still be available and ready to use for any purpose.

Err codemadness.org 70 i 59924
Err codemadness.org 70 i 59925 Err codemadness.org 70 i 59926
    Err codemadness.org 70 i 59927
  • Jails
  • Err codemadness.org 70 i 59928
Err codemadness.org 70 i 59929 Err codemadness.org 70 i 59930
Err codemadness.org 70 i 59931

First we will create 3 jails for our proof of concept Minio setup, storage1 will have the ‘quorum/witness’ role while storage2 and storage3 will have the ‘data’ role. To distinguish commands I type on the host system and storageX Jail I use two different prompts, this way it should be obvious what command to execute and where.

Err codemadness.org 70 i 59932
Err codemadness.org 70 i 59933 Err codemadness.org 70 i 59934
    Err codemadness.org 70 i 59935
  • WeI know the FreeNAS people have been working on integrating this
  • Err codemadness.org 70 i 59936
Err codemadness.org 70 i 59937 Err codemadness.org 70 i 59938


Err codemadness.org 70 i 59939 Err codemadness.org 70 i 59940

Best practises for pledge(2) security

Err codemadness.org 70 i 59941 Err codemadness.org 70 i 59942
Err codemadness.org 70 i 59943

Let's set the record straight for securing kcgi CGI and FastCGI applications with pledge(2). This is focussed on secure OpenBSD deployments.

Err codemadness.org 70 i 59944
Err codemadness.org 70 i 59945 Err codemadness.org 70 i 59946
    Err codemadness.org 70 i 59947
  • Theory
  • Err codemadness.org 70 i 59948
Err codemadness.org 70 i 59949 Err codemadness.org 70 i 59950
Err codemadness.org 70 i 59951

Internally, kcgi makes considerable use of available security tools. But it's also designed to be invoked in a secure environment. We'll start with pledge(2), which has been around on OpenBSD since version 5.9. If you're reading this tutorial, you're probably on OpenBSD, and you probably have knowledge of pledge(2).

Err codemadness.org 70 i 59952 Err codemadness.org 70 i 59953

How to begin? Read kcgi(3). It includes canonical information on which pledge(2) promises you'll need for each function in the library. This is just a tutorial—the manpage is canonical and overrides what you may read here.

Err codemadness.org 70 i 59954 Err codemadness.org 70 i 59955

Next, assess the promises that your application needs. From kcgi(3), it's easy to see which promises we'll need to start. You'll need to augment this list with whichever tools you're also using. The general push is to start with the broadest set of required promises, then restrict as quickly as possible. Sometimes this can be done in a single pledge(2), but other times it takes a few.

Err codemadness.org 70 i 59956
Err codemadness.org 70 i 59957 Err codemadness.org 70 i 59958


Err codemadness.org 70 i 59959 Err codemadness.org 70 i 59960

Beastie Bits

Err codemadness.org 70 i 59961 Err codemadness.org 70 i 59962 Err codemadness.org 70 i 59970 Err codemadness.org 70 i 59971


Err codemadness.org 70 i 59972 Err codemadness.org 70 i 59973

Feedback/Questions

Err codemadness.org 70 i 59974 Err codemadness.org 70 i 59975 Err codemadness.org 70 i 59982 Err codemadness.org 70 i 59983


Err codemadness.org 70 i 59984 Err codemadness.org 70 i 59985
    Err codemadness.org 70 i 59986
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 59987
]]> Err codemadness.org 70 i 59988
Err codemadness.org 70 i 59989 https://fireside.fm/player/v2/FYhhasNR+gazKr6Uh Err codemadness.org 70 i 59990 Err codemadness.org 70 i 59991 ]]> Err codemadness.org 70 i 59992 Err codemadness.org 70 i 59993
Err codemadness.org 70 i 59994 Err codemadness.org 70 i 59995 Episode 245: ZFS User Conf 2018 | BSD Now 245 Err codemadness.org 70 i 59996 https://www.bsdnow.tv/245 Err codemadness.org 70 i 59997 http://feed.jupiter.zone/bsdnow#entry-1913 Err codemadness.org 70 i 59998 Thu, 10 May 2018 05:00:00 -0700 Err codemadness.org 70 i 59999 Allan Jude Err codemadness.org 70 i 60000 Err codemadness.org 70 i 60001 full Err codemadness.org 70 i 60002 Allan Jude Err codemadness.org 70 i 60003 Allan’s recap of the ZFS User conference, first impressions of OmniOS by a BSD user, Nextcloud 13 setup on FreeBSD, OpenBSD on a fanless desktop computer, an intro to HardenedBSD, and DragonFlyBSD getting some SMP improvements. Err codemadness.org 70 i 60004 1:24:37 Err codemadness.org 70 i 60005 no Err codemadness.org 70 i 60006 Err codemadness.org 70 i 60007 Allan’s recap of the ZFS User conference, first impressions of OmniOS by a BSD user, Nextcloud 13 setup on FreeBSD, OpenBSD on a fanless desktop computer, an intro to HardenedBSD, and DragonFlyBSD getting some SMP improvements. Err codemadness.org 70 i 60008 <hr /> Err codemadness.org 70 i 60009 <h2>Headlines</h2> Err codemadness.org 70 i 60010 Err codemadness.org 70 i 60011 <h3>ZFS User Conference Recap</h3> Err codemadness.org 70 i 60012 Err codemadness.org 70 i 60013 <ul> Err codemadness.org 70 i 60014 <li>Attendees met for breakfast on the fourth floor, in a lunchroom type area just outside of the theatre. One entire wall was made of lego base plates, and there were buckets of different coloured lego embedded in the wall.</li> Err codemadness.org 70 i 60015 <li>The talks started with Matt Ahrens discussing how the 2nd most requested feature of ZFS, Device Removal, has now landed, then pivoting into the MOST requested feature, RAID-Z expansion, and his work on that so far, which included the first functional prototype, on FreeBSD.</li> Err codemadness.org 70 i 60016 <li>Then our friend Calvin Hendryx-Parker presented how he solves all of his backup headaches with ZFS. I provided him some helpful hints to optimize his setup and improve the throughput of his backups</li> Err codemadness.org 70 i 60017 <li>Then Steven Umbehocker of OSNEXUS talked about their products, and how they manage large numbers of ZFS nodes</li> Err codemadness.org 70 i 60018 <li>After a very nice lunch, Orlando Pichardo of Micron talked about the future of flash, and their new 7.5TB SATA SSDs. Discussion of these devices after the talk may lead to enhancements to ZFS to better support these new larger flash devices that use larger logical sector sizes.</li> Err codemadness.org 70 i 60019 <li>Alek Pinchuk of Datto talked about Pool Layout Considerations</li> Err codemadness.org 70 i 60020 <li>then Tony Hutter of LLNL talked about the release process for ZFS on Linux</li> Err codemadness.org 70 i 60021 <li>Then Tom Caputi of Datto presented: Helping Developers Help You, guidance for users submitting bug reports, with some good and bad examples</li> Err codemadness.org 70 i 60022 <li>Then we had a nice cocktail party and dinner, and stayed late into the night talked about ZFS</li> Err codemadness.org 70 i 60023 <li>The next day, Jervin Real of Percona, presented: ZFS and MySQL on Linux, the Sweet Spots. Mostly outlining some benchmark they had done, some of the results were curious and some additional digging may turn up enhancements that can be made to ZFS, or just better tuning advice for high traffic MySQL servers.</li> Err codemadness.org 70 i 60024 <li>Then I presented my ZSTD compression work, which had been referenced in 2 of the previous talks, as people are anxious to get their hands on this code.</li> Err codemadness.org 70 i 60025 <li>Lastly, Eric Sproul of Circonus, gave his talk: Thank You, ZFS. It thanked ZFS and its Community for making their companies product possible, and then provided an update to his presentation from last year, where they were having problems with extremely high levels of ZFS fragmentation. This also sparked a longer conversation after the talk was over.</li> Err codemadness.org 70 i 60026 <li>Then we had a BBQ lunch, and after some more talking, the conference broke up.</li> Err codemadness.org 70 i 60027 </ul> Err codemadness.org 70 i 60028 Err codemadness.org 70 i 60029 <hr /> Err codemadness.org 70 i 60030 <h3><a href="https://www.linuxquestions.org/questions/solaris-opensolaris-20/initial-omnios-impressions-by-a-bsd-user-4175626757/">Initial OmniOS impressions by a BSD user</a></h3> Err codemadness.org 70 i 60031 Err codemadness.org 70 i 60032 <blockquote> Err codemadness.org 70 i 60033 <p>I had been using FreeBSD as my main web server OS since 2012 and I liked it so much that I even contributed money and code to it. However, since the FreeBSD guys (and gals) decided to install anti-tech feminism, I have been considering to move away from it for quite some time now.</p> Err codemadness.org 70 i 60034 Err codemadness.org 70 i 60035 <p>As my growing needs require stronger hardware, it was finally time to rent a new server. I do not intend to run FreeBSD on it. Although the most obvious choice would be OpenBSD (I run it on another server and it works just fine), I plan to have a couple of databases running on the new machine, and database throughput has never been one of OpenBSD's strong points. This is my chance to give illumos another try. As neither WiFi nor desktop environments are relevant on a no-X11 server, the server-focused OmniOS seemed to fit my needs.</p> Err codemadness.org 70 i 60036 Err codemadness.org 70 i 60037 <p>My current (to be phased out) setup on FreeBSD is:</p> Err codemadness.org 70 i 60038 </blockquote> Err codemadness.org 70 i 60039 Err codemadness.org 70 i 60040 <ul> Err codemadness.org 70 i 60041 <li>apache24 with SSL support, running five websites on six domains (both HTTP and HTTPS)</li> Err codemadness.org 70 i 60042 <li>a (somewhat large) Tiny Tiny RSS installation from git, updated via cronjob</li> Err codemadness.org 70 i 60043 <li>sbcl running a daily cronjob of my Web-to-RSS parser</li> Err codemadness.org 70 i 60044 <li>an FTP server where I share stuff with friends</li> Err codemadness.org 70 i 60045 <li>an IRC bouncer</li> Err codemadness.org 70 i 60046 <li>MariaDB and PostgreSQL for some of the hosted services</li> Err codemadness.org 70 i 60047 </ul> Err codemadness.org 70 i 60048 Err codemadness.org 70 i 60049 <blockquote> Err codemadness.org 70 i 60050 <p>I would not consider anything of that too esoteric for a modern operating system. Since I was not really using anything mod_rewrite-related, I was perfectly ready to replace apache24 by nginx, remembering that the prepackaged apache24 on FreeBSD did not support HTTPS out of the box and I had ended up installing it from the ports. That is the only change in my setup which I am actively planning.</p> Err codemadness.org 70 i 60051 Err codemadness.org 70 i 60052 <p>So here's what I noticed.</p> Err codemadness.org 70 i 60053 </blockquote> Err codemadness.org 70 i 60054 Err codemadness.org 70 i 60055 <ul> Err codemadness.org 70 i 60056 <li>First impressions:</li> Err codemadness.org 70 i 60057 </ul> Err codemadness.org 70 i 60058 Err codemadness.org 70 i 60059 <blockquote> Err codemadness.org 70 i 60060 <p>Hooray, a BSD boot loader! Finally an operating system without grub - I made my experiences with that and I don't want to repeat them too often.</p> Err codemadness.org 70 i 60061 Err codemadness.org 70 i 60062 <p>It is weird that the installer won't accept "mydomain.org" as a hostname but sendmail complains that "mydomain" is not a valid hostname right from the start, OmniOS sent me into Maintenance Mode to fix that. A good start, right? So the first completely new thing I had to find out on my new shiny toy was how to change the hostname. There is no /etc/rc.conf in it and hostname mydomain.org was only valid for one login session. I found out that the hostname has to be changed in three different files under /etc on Solaris - the third one did not even exist for me. Changing the other two files seems to have solved this problem for me.</p> Err codemadness.org 70 i 60063 </blockquote> Err codemadness.org 70 i 60064 Err codemadness.org 70 i 60065 <ul> Err codemadness.org 70 i 60066 <li>Random findings:</li> Err codemadness.org 70 i 60067 </ul> Err codemadness.org 70 i 60068 Err codemadness.org 70 i 60069 <blockquote> Err codemadness.org 70 i 60070 <p>~ I was wondering how many resources my (mostly idle) new web server was using - I always thought Solaris was rather fat, but it still felt fast to me.</p> Err codemadness.org 70 i 60071 Err codemadness.org 70 i 60072 <p>Ah, right - we're in Unixland and we need to think outside of the box. This table was really helpful: although a number of things are different between OmniOS and SmartOS, I found out that the *stat tools do what top does. I could probably just install top from one of the package managers, but I failed to find a reason to do so. I had 99% idle CPU and RAM - that's all I wanted to know.</p> Err codemadness.org 70 i 60073 Err codemadness.org 70 i 60074 <p>~ Trying to set up twtxt informed me that Python 3.6 (from pkgin) expects LANG and LC_ALL to be set. Weird - did FreeBSD do that for me? It's been a while ... at least that was easy to fix.</p> Err codemadness.org 70 i 60075 Err codemadness.org 70 i 60076 <p>~ SMF - Solaris's version of init - confuses me. It has "levels" similar to Gentoo's OpenRC, but it mostly shuts up during the boot process. Stuff from pkgsrc, e.g. nginx, comes with a description how to set up the particular service, but I should probably read more about it. What if, one day, I install a package which is not made ready for OmniOS? I'll have to find out how to write SMF scripts. But that should not be my highest priority.</p> Err codemadness.org 70 i 60077 Err codemadness.org 70 i 60078 <p>~ The OmniOS documentation talks a lot about "zones" which, if I understand that correctly, mostly equal FreeBSD's "jails". This could be my chance to try to respect a better separation between my various services - if my lazyness won't take over again. (It probably will.)</p> Err codemadness.org 70 i 60079 Err codemadness.org 70 i 60080 <p>~ OmniOS's default shell - rather un-unixy - seems to be the bash. Update: I was informed about a mistake here: the default shell is ksh93, there are bogus .bashrc files lying around though.</p> Err codemadness.org 70 i 60081 Err codemadness.org 70 i 60082 <p>~ Somewhere in between, my sshd had a hiccup or, at least, logging into it took longer than usual. If that happens again, I should investigate.</p> Err codemadness.org 70 i 60083 </blockquote> Err codemadness.org 70 i 60084 Err codemadness.org 70 i 60085 <ul> Err codemadness.org 70 i 60086 <li>Conclusion:</li> Err codemadness.org 70 i 60087 </ul> Err codemadness.org 70 i 60088 Err codemadness.org 70 i 60089 <blockquote> Err codemadness.org 70 i 60090 <p>By the time of me writing this, I have a basic web server with an awesome performance and a lot of applications ready to be configured only one click away. The more I play with it, the more I have the feeling that I have missed a lot while wasting my time with FreeBSD. For a system that is said to be "dying", OmniOS feels well-thought and, when equipped with a reasonable package management, comes with everything I need to reproduce my FreeBSD setup without losing functionality.</p> Err codemadness.org 70 i 60091 Err codemadness.org 70 i 60092 <p>I'm looking forward to what will happen with it.</p> Err codemadness.org 70 i 60093 </blockquote> Err codemadness.org 70 i 60094 Err codemadness.org 70 i 60095 <hr /> Err codemadness.org 70 i 60096 <p><strong>DigitalOcean</strong> Err codemadness.org 70 i 60097 http://do.co/bsdnow</p> Err codemadness.org 70 i 60098 Err codemadness.org 70 i 60099 <h3>[Open Source Hardware Camp 2018 — Sat 30/06 &amp; Sun 01/07, Lincoln, UK</h3> Err codemadness.org 70 i 60100 Err codemadness.org 70 i 60101 <p>(includes 'Open-source RISC-V core quickstart' and 'An introductory workshop to NetBSD on embedded platforms')](http://oshug.org/pipermail/oshug/2018-April/000635.html)</p> Err codemadness.org 70 i 60102 Err codemadness.org 70 i 60103 <p>``` Err codemadness.org 70 i 60104 Hi All,</p> Err codemadness.org 70 i 60105 Err codemadness.org 70 i 60106 <p>I'm pleased to announce that we have 10 talks and 7 workshops confirmed Err codemadness.org 70 i 60107 for Open Source Hardware Camp 2018, with the possibility of one or two Err codemadness.org 70 i 60108 more. Registration is now open!</p> Err codemadness.org 70 i 60109 Err codemadness.org 70 i 60110 <p>For the first time ever we will be hosting OSHCamp in Lincoln and a huge Err codemadness.org 70 i 60111 thanks to Sarah Markall for helping to make this happen.</p> Err codemadness.org 70 i 60112 Err codemadness.org 70 i 60113 <p>As in previous years, there will be a social event on the Saturday Err codemadness.org 70 i 60114 evening and we have a room booked at the Wig and Mitre. Food will be Err codemadness.org 70 i 60115 available.</p> Err codemadness.org 70 i 60116 Err codemadness.org 70 i 60117 <p>There will likely be a few of us meeting up for pre-conference drinks on Err codemadness.org 70 i 60118 the Friday evening also.</p> Err codemadness.org 70 i 60119 Err codemadness.org 70 i 60120 <p>Details of the programme can be found below and, as ever, we have an Err codemadness.org 70 i 60121 excellent mix of topics being covered.</p> Err codemadness.org 70 i 60122 Err codemadness.org 70 i 60123 <p>Cheers,</p> Err codemadness.org 70 i 60124 Err codemadness.org 70 i 60125 <p>Andrew Err codemadness.org 70 i 60126 ```</p> Err codemadness.org 70 i 60127 Err codemadness.org 70 i 60128 <ul> Err codemadness.org 70 i 60129 <li>Open Source Hardware Camp 2018</li> Err codemadness.org 70 i 60130 </ul> Err codemadness.org 70 i 60131 Err codemadness.org 70 i 60132 <blockquote> Err codemadness.org 70 i 60133 <p>On the 30th June 2018, 09:00 Saturday morning - 16:00 on the Sunday Err codemadness.org 70 i 60134 afternoon at The Blue Room, The Lawn, Union Rd, Lincoln, LN1 3BU.</p> Err codemadness.org 70 i 60135 </blockquote> Err codemadness.org 70 i 60136 Err codemadness.org 70 i 60137 <ul> Err codemadness.org 70 i 60138 <li>Registration: http://oshug.org/event/oshcamp2018</li> Err codemadness.org 70 i 60139 <li>Open Source Hardware Camp 2018 will be hosted in the historic county Err codemadness.org 70 i 60140 town of Lincoln — home to, amongst others, noted engine builders Ruston Err codemadness.org 70 i 60141 &amp; Hornsby (now Siemens, via GEC and English Electric).</li> Err codemadness.org 70 i 60142 <li>Lincoln is well served by rail, reachable from Leeds and London within Err codemadness.org 70 i 60143 2-2.5 hours, and 4-5 hours from Edinburgh and Southampton.</li> Err codemadness.org 70 i 60144 <li>There will be a social at the Wig and Mitre on the Saturday evening.</li> Err codemadness.org 70 i 60145 <li>For travel and accommodation information information please see the Err codemadness.org 70 i 60146 event page on oshug.org.</li> Err codemadness.org 70 i 60147 </ul> Err codemadness.org 70 i 60148 Err codemadness.org 70 i 60149 <hr /> Err codemadness.org 70 i 60150 <h2>News Roundup</h2> Err codemadness.org 70 i 60151 Err codemadness.org 70 i 60152 <h3><a href="https://vermaden.wordpress.com/2018/04/04/nextcloud-13-on-freebsd/">Nextcloud 13 on FreeBSD</a></h3> Err codemadness.org 70 i 60153 Err codemadness.org 70 i 60154 <blockquote> Err codemadness.org 70 i 60155 <p>Today I would like to share a setup of Nextcloud 13 running on a FreeBSD system. To make things more interesting it would be running inside a FreeBSD Jail. I will not describe the Nextcloud setup itself here as its large enough for several blog posts.</p> Err codemadness.org 70 i 60156 Err codemadness.org 70 i 60157 <p>Official Nextcloud 13 documentation recommends following setup:</p> Err codemadness.org 70 i 60158 </blockquote> Err codemadness.org 70 i 60159 Err codemadness.org 70 i 60160 <ul> Err codemadness.org 70 i 60161 <li>MySQL/MariaDB</li> Err codemadness.org 70 i 60162 <li>PHP 7.0 (or newer)</li> Err codemadness.org 70 i 60163 <li>Apache 2.4 (with mod_php)</li> Err codemadness.org 70 i 60164 </ul> Err codemadness.org 70 i 60165 Err codemadness.org 70 i 60166 <blockquote> Err codemadness.org 70 i 60167 <p>I prefer PostgreSQL database to MySQL/MariaDB and I prefer fast and lean Nginx web server to Apache, so my setup is based on these components:</p> Err codemadness.org 70 i 60168 </blockquote> Err codemadness.org 70 i 60169 Err codemadness.org 70 i 60170 <ul> Err codemadness.org 70 i 60171 <li>PostgreSQL 10.3</li> Err codemadness.org 70 i 60172 <li>PHP 7.2.4</li> Err codemadness.org 70 i 60173 <li>Nginx 1.12.2 (with php-fpm)</li> Err codemadness.org 70 i 60174 <li>Memcached 1.5.7</li> Err codemadness.org 70 i 60175 </ul> Err codemadness.org 70 i 60176 Err codemadness.org 70 i 60177 <blockquote> Err codemadness.org 70 i 60178 <p>The Memcached subsystem is least important, it can be easily changed into something more modern like Redis for example. I prefer not to use any third party tools for FreeBSD Jails management. Not because they are bad or something like that. There are just many choices for good FreeBSD Jails management and I want to provide a GENERIC example for Nextcloud 13 in a Jail, not for a specific management tool.</p> Err codemadness.org 70 i 60179 </blockquote> Err codemadness.org 70 i 60180 Err codemadness.org 70 i 60181 <ul> Err codemadness.org 70 i 60182 <li>Host</li> Err codemadness.org 70 i 60183 </ul> Err codemadness.org 70 i 60184 Err codemadness.org 70 i 60185 <blockquote> Err codemadness.org 70 i 60186 <p>Lets start with preparing the FreeBSD Host with needed settings. We need to allow using raw sockets in Jails. For the future optional upgrades of the Jail we will also allow using chflags(1) in Jails.</p> Err codemadness.org 70 i 60187 </blockquote> Err codemadness.org 70 i 60188 Err codemadness.org 70 i 60189 <hr /> Err codemadness.org 70 i 60190 <h3><a href="https://www.romanzolotarev.com/setup.html">OpenBSD on my fanless desktop computer</a></h3> Err codemadness.org 70 i 60191 Err codemadness.org 70 i 60192 <blockquote> Err codemadness.org 70 i 60193 <p>You asked me about my setup. Here you go.</p> Err codemadness.org 70 i 60194 Err codemadness.org 70 i 60195 <p>I’ve been using OpenBSD on servers for years as a web developer, but never had a chance to dive in to system administration before. If you appreciate the simplicity of OpenBSD and you have to give it a try on your desktop.</p> Err codemadness.org 70 i 60196 Err codemadness.org 70 i 60197 <p>Bear in mind, this is a relatively cheap ergonomic setup, because all I need is xterm(1) with Vim and Firefox, I don’t care about CPU/GPU performance or mobility too much, but I want a large screen and a good keyboard.</p> Err codemadness.org 70 i 60198 </blockquote> Err codemadness.org 70 i 60199 Err codemadness.org 70 i 60200 <p><code> Err codemadness.org 70 i 60201 Item Price, USD Err codemadness.org 70 i 60202 Zotac CI527 NANO-BE $371 Err codemadness.org 70 i 60203 16GB RAM Crucial DDR4-2133 $127 Err codemadness.org 70 i 60204 250GB SSD Samsung 850 EVO $104 Err codemadness.org 70 i 60205 Asus VZ249HE 23.8" IPS Full HD $129 Err codemadness.org 70 i 60206 ErgoDox EZ V3, Cherry MX Brown, blank DCS $325 Err codemadness.org 70 i 60207 Kensington Orbit Trackball $33 Err codemadness.org 70 i 60208 Total $1,107 Err codemadness.org 70 i 60209 </code></p> Err codemadness.org 70 i 60210 Err codemadness.org 70 i 60211 <ul> Err codemadness.org 70 i 60212 <li>OpenBSD</li> Err codemadness.org 70 i 60213 </ul> Err codemadness.org 70 i 60214 Err codemadness.org 70 i 60215 <blockquote> Err codemadness.org 70 i 60216 <p>I tried few times to install OpenBSD on my MacBooks—I heard some models are compatible with it,—but in my case it was a bit of a fiasco (thanks to Nvidia and Broadcom). That’s why I bought a new computer, just to be able to run this wonderful operating system.</p> Err codemadness.org 70 i 60217 Err codemadness.org 70 i 60218 <p>Now I run -stable on my desktop and servers. Servers are supposed to be reliable, that’s obvious, why not run -current on a desktop? Because -stable is shipped every six months and I that’s is often enough for me. I prefer slow fashion.</p> Err codemadness.org 70 i 60219 </blockquote> Err codemadness.org 70 i 60220 Err codemadness.org 70 i 60221 <hr /> Err codemadness.org 70 i 60222 <p><strong>iXsystems</strong> Err codemadness.org 70 i 60223 iX Ad Spot <a href="https://www.ixsystems.com/blog/nab-2018-recap-2/">NAB 2018 – Michael Dexter’s Recap</a></p> Err codemadness.org 70 i 60224 Err codemadness.org 70 i 60225 <h3><a href="https://vermaden.wordpress.com/2018/04/06/introduction-to-hardenedbsd-world/">Introduction to HardenedBSD World</a></h3> Err codemadness.org 70 i 60226 Err codemadness.org 70 i 60227 <blockquote> Err codemadness.org 70 i 60228 <p>HardenedBSD is a security enhanced fork of FreeBSD which happened in 2014. HardenedBSD is implementing many exploit mitigation and security technologies on top of FreeBSD which all started with implementation of Address Space Layout Randomization (ASLR). The fork has been created for ease of development.</p> Err codemadness.org 70 i 60229 Err codemadness.org 70 i 60230 <p>To cite the https://hardenedbsd.org/content/about page – “HardenedBSD aims to implement innovative exploit mitigation and security solutions for the FreeBSD community. (…) HardenedBSD takes a holistic approach to security by hardening the system and implementing exploit mitigation technologies.”</p> Err codemadness.org 70 i 60231 Err codemadness.org 70 i 60232 <p>Most FreeBSD enthusiasts know mfsBSD project by Martin Matuska – http://mfsbsd.vx.sk/ – FreeBSD system loaded completely into memory. The mfsBSD synonym for the HardenedBSD world is SoloBSD – http://www.solobsd.org/ – which is based on HardenedBSD sources.</p> Err codemadness.org 70 i 60233 Err codemadness.org 70 i 60234 <p>One may ask how HardenedBSD project compared to more well know for its security OpenBSD system and it is very important question. The OpenBSD developers try to write ‘good’ code without dirty hacks for performance or other reasons. Clean and secure code is most important in OpenBSD world. The OpenBSD project even made security audit of all OpenBSD code available, line by line. This was easier to achieve in FreeBSD or HardenedBSD because OpenBSD code base its about ten times smaller. This has also other implications, possibilities. While FreeBSD (and HardenedBSD) offer many new features like mature SMP subsystem even with some NUMA support, ZFS filesystem, GEOM storage framework, Bhyve virtualization, Virtualbox option and many other new modern features the OpenBSD remains classic UNIX system with UFS filesystem and with very ‘theoretical’ SMP support. The vmm project tried to implement new hypervisor in OpenBSD world, but because of lack of support for graphics its for OpenBSD, Illumos and Linux currently, You will not virtualize Windows or Mac OS X there. This is also only virtualization option for OpenBSD as there are no Jails on OpenBSD. Current Bhyve implementation allows one even to boot latest Windows 2019 Technology Preview.</p> Err codemadness.org 70 i 60235 Err codemadness.org 70 i 60236 <p>A HardenedBSD project is FreeBSD system code base with LOTS of security mechanisms and mitigations that are not available on FreeBSD system. For example entire lib32 tree has been disabled by default on HardenedBSD to make it more secure. Also LibreSSL is the default SSL library on HardenedBSD, same as OpenBSD while FreeBSD uses OpenSSL for compatibility reasons.</p> Err codemadness.org 70 i 60237 Err codemadness.org 70 i 60238 <p>Comparison between LibreSSL and OpenSSL vulnerabilities.</p> Err codemadness.org 70 i 60239 </blockquote> Err codemadness.org 70 i 60240 Err codemadness.org 70 i 60241 <ul> Err codemadness.org 70 i 60242 <li>https://en.wikipedia.org/wiki/LibreSSL#Security</li> Err codemadness.org 70 i 60243 <li>https://wiki.freebsd.org/LibreSSL#LibreSSL<em>.28and</em>OpenSSL.29<em>Security</em>Vulnerabilities</li> Err codemadness.org 70 i 60244 </ul> Err codemadness.org 70 i 60245 Err codemadness.org 70 i 60246 <blockquote> Err codemadness.org 70 i 60247 <p>One may see HardenedBSD as FreeBSD being successfully pulled up to the OpenBSD level (at least that is the goal), but as FreeBSD has tons more code and features it will be harder and longer process to achieve the goal.</p> Err codemadness.org 70 i 60248 Err codemadness.org 70 i 60249 <p>As I do not have that much competence on the security field I will just repost the comparison from the HardenedBSD project versus other BSD systems. The comparison is also available here – https://hardenedbsd.org/content/easy-feature-comparison – on the HardenedBSD website.</p> Err codemadness.org 70 i 60250 </blockquote> Err codemadness.org 70 i 60251 Err codemadness.org 70 i 60252 <hr /> Err codemadness.org 70 i 60253 <h3><a href="https://www.tomatkinson.uk/git.html">Running my own git server</a></h3> Err codemadness.org 70 i 60254 Err codemadness.org 70 i 60255 <blockquote> Err codemadness.org 70 i 60256 <p>Note: This article is predominantly based on work by Hiltjo Posthuma who you should read because I would have spent far too much time failing to set things up if it wasn’t for their post. Not only have they written lots of very interesting posts, they write some really brilliant programs</p> Err codemadness.org 70 i 60257 Err codemadness.org 70 i 60258 <p>Since I started university 3 years ago, I started using lots of services from lots of different companies. The “cloud” trend led me to believe that I wanted other people to look after my data for me. I was wrong. Since finding myself loving the ethos of OpenBSD, I found myself wanting to apply this ethos to the services I use as well. Not only is it important to me because of the security benefits, but also because I like the minimalist style OpenBSD portrays. This is the first in a mini-series documenting my move from bloated, hosted, sometimes proprietary services to minimal, well-written, free, self-hosted services.</p> Err codemadness.org 70 i 60259 </blockquote> Err codemadness.org 70 i 60260 Err codemadness.org 70 i 60261 <ul> Err codemadness.org 70 i 60262 <li>Tools &amp; applications</li> Err codemadness.org 70 i 60263 </ul> Err codemadness.org 70 i 60264 Err codemadness.org 70 i 60265 <blockquote> Err codemadness.org 70 i 60266 <p>These are the programs I am going to be using to get my git server up and running:</p> Err codemadness.org 70 i 60267 </blockquote> Err codemadness.org 70 i 60268 Err codemadness.org 70 i 60269 <p><code> Err codemadness.org 70 i 60270 httpd(8) Err codemadness.org 70 i 60271 acme-client(1) Err codemadness.org 70 i 60272 git(1) Err codemadness.org 70 i 60273 cgit(1) Err codemadness.org 70 i 60274 slowcgi(8) Err codemadness.org 70 i 60275 </code></p> Err codemadness.org 70 i 60276 Err codemadness.org 70 i 60277 <ul> Err codemadness.org 70 i 60278 <li>Setting up httpd</li> Err codemadness.org 70 i 60279 </ul> Err codemadness.org 70 i 60280 Err codemadness.org 70 i 60281 <blockquote> Err codemadness.org 70 i 60282 <p>Ensure you have the necessary flags enabled in your /etc/rc.conf.local:</p> Err codemadness.org 70 i 60283 </blockquote> Err codemadness.org 70 i 60284 Err codemadness.org 70 i 60285 <ul> Err codemadness.org 70 i 60286 <li>Configuring cgit</li> Err codemadness.org 70 i 60287 </ul> Err codemadness.org 70 i 60288 Err codemadness.org 70 i 60289 <blockquote> Err codemadness.org 70 i 60290 <p>When using the OpenBSD httpd(8), it will serve it’s content in a chrooted environment,which defaults to the home directory of the user it runs as, which is www in this case. This means that the chroot is limited to the directory /var/www and it’s contents.</p> Err codemadness.org 70 i 60291 Err codemadness.org 70 i 60292 <p>In order to configure cgit, there must be a cgitrc file available to cgit. This is found at the location stored in $CGIT_CONFIG, which defaults to /conf/cgitrc. Because of the chroot, this file is actually stored at /var/www/conf/cgitrc.</p> Err codemadness.org 70 i 60293 </blockquote> Err codemadness.org 70 i 60294 Err codemadness.org 70 i 60295 <hr /> Err codemadness.org 70 i 60296 <h2>Beastie Bits</h2> Err codemadness.org 70 i 60297 Err codemadness.org 70 i 60298 <ul> Err codemadness.org 70 i 60299 <li><a href="https://blather.michaelwlucas.com/archives/3173">My Penguicon 2018 Schedule</a></li> Err codemadness.org 70 i 60300 <li><a href="https://rachelbythebay.com/w/2018/04/16/signal/">sigaction: see who killed you (and more)</a></li> Err codemadness.org 70 i 60301 <li><a href="http://mail-index.netbsd.org/netbsd-announce/2018/04/20/msg000284.html">Takeshi steps down from NetBSD core team after 13 years</a></li> Err codemadness.org 70 i 60302 <li><a href="https://www.phoronix.com/scan.php?page=news_item&amp;px=DragonFlyBSD-More-Perf-For-5.4">DragonFlyBSD Kernel Gets Some SMP Improvements – Phoronix</a></li> Err codemadness.org 70 i 60303 <li><a href="https://m.youtube.com/watch?v=bT_k06Xg-BE">Writing FreeBSD Malware</a></li> Err codemadness.org 70 i 60304 </ul> Err codemadness.org 70 i 60305 Err codemadness.org 70 i 60306 <p><strong>Tarsnap ad</strong></p> Err codemadness.org 70 i 60307 Err codemadness.org 70 i 60308 <h2>Feedback/Questions</h2> Err codemadness.org 70 i 60309 Err codemadness.org 70 i 60310 <ul> Err codemadness.org 70 i 60311 <li>Troels - <a href="http://dpaste.com/35K0BD7#wrap">Question regarding ZFS xattr</a></li> Err codemadness.org 70 i 60312 <li>Mike - <a href="http://dpaste.com/33X1K80#wrap">Sharing your screen</a></li> Err codemadness.org 70 i 60313 <li>Wilyarti - <a href="http://dpaste.com/0D452Q0#wrap">Adlocking on FreeBSD</a></li> Err codemadness.org 70 i 60314 <li>Brad - <a href="http://dpaste.com/08XAHNY#wrap">Recommendations for snapshot strategy</a></li> Err codemadness.org 70 i 60315 </ul> Err codemadness.org 70 i 60316 Err codemadness.org 70 i 60317 <hr /> Err codemadness.org 70 i 60318 <ul> Err codemadness.org 70 i 60319 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 60320 </ul> Err codemadness.org 70 i 60321 Err codemadness.org 70 i 60322 <hr /> Err codemadness.org 70 i 60323 Err codemadness.org 70 i 60324 freebsd, openbsd, netbsd, dragonflybsd, trueos, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 60325 Err codemadness.org 70 i 60326 Allan’s recap of the ZFS User conference, first impressions of OmniOS by a BSD user, Nextcloud 13 setup on FreeBSD, OpenBSD on a fanless desktop computer, an intro to HardenedBSD, and DragonFlyBSD getting some SMP improvements.
Err codemadness.org 70 i 60327

Err codemadness.org 70 i 60328 Err codemadness.org 70 i 60329

Headlines

Err codemadness.org 70 i 60330 Err codemadness.org 70 i 60331

ZFS User Conference Recap

Err codemadness.org 70 i 60332 Err codemadness.org 70 i 60333
    Err codemadness.org 70 i 60334
  • Attendees met for breakfast on the fourth floor, in a lunchroom type area just outside of the theatre. One entire wall was made of lego base plates, and there were buckets of different coloured lego embedded in the wall.
  • Err codemadness.org 70 i 60335
  • The talks started with Matt Ahrens discussing how the 2nd most requested feature of ZFS, Device Removal, has now landed, then pivoting into the MOST requested feature, RAID-Z expansion, and his work on that so far, which included the first functional prototype, on FreeBSD.
  • Err codemadness.org 70 i 60336
  • Then our friend Calvin Hendryx-Parker presented how he solves all of his backup headaches with ZFS. I provided him some helpful hints to optimize his setup and improve the throughput of his backups
  • Err codemadness.org 70 i 60337
  • Then Steven Umbehocker of OSNEXUS talked about their products, and how they manage large numbers of ZFS nodes
  • Err codemadness.org 70 i 60338
  • After a very nice lunch, Orlando Pichardo of Micron talked about the future of flash, and their new 7.5TB SATA SSDs. Discussion of these devices after the talk may lead to enhancements to ZFS to better support these new larger flash devices that use larger logical sector sizes.
  • Err codemadness.org 70 i 60339
  • Alek Pinchuk of Datto talked about Pool Layout Considerations
  • Err codemadness.org 70 i 60340
  • then Tony Hutter of LLNL talked about the release process for ZFS on Linux
  • Err codemadness.org 70 i 60341
  • Then Tom Caputi of Datto presented: Helping Developers Help You, guidance for users submitting bug reports, with some good and bad examples
  • Err codemadness.org 70 i 60342
  • Then we had a nice cocktail party and dinner, and stayed late into the night talked about ZFS
  • Err codemadness.org 70 i 60343
  • The next day, Jervin Real of Percona, presented: ZFS and MySQL on Linux, the Sweet Spots. Mostly outlining some benchmark they had done, some of the results were curious and some additional digging may turn up enhancements that can be made to ZFS, or just better tuning advice for high traffic MySQL servers.
  • Err codemadness.org 70 i 60344
  • Then I presented my ZSTD compression work, which had been referenced in 2 of the previous talks, as people are anxious to get their hands on this code.
  • Err codemadness.org 70 i 60345
  • Lastly, Eric Sproul of Circonus, gave his talk: Thank You, ZFS. It thanked ZFS and its Community for making their companies product possible, and then provided an update to his presentation from last year, where they were having problems with extremely high levels of ZFS fragmentation. This also sparked a longer conversation after the talk was over.
  • Err codemadness.org 70 i 60346
  • Then we had a BBQ lunch, and after some more talking, the conference broke up.
  • Err codemadness.org 70 i 60347
Err codemadness.org 70 i 60348 Err codemadness.org 70 i 60349


Err codemadness.org 70 i 60350 Err codemadness.org 70 i 60351

Initial OmniOS impressions by a BSD user

Err codemadness.org 70 i 60352 Err codemadness.org 70 i 60353
Err codemadness.org 70 i 60354

I had been using FreeBSD as my main web server OS since 2012 and I liked it so much that I even contributed money and code to it. However, since the FreeBSD guys (and gals) decided to install anti-tech feminism, I have been considering to move away from it for quite some time now.

Err codemadness.org 70 i 60355 Err codemadness.org 70 i 60356

As my growing needs require stronger hardware, it was finally time to rent a new server. I do not intend to run FreeBSD on it. Although the most obvious choice would be OpenBSD (I run it on another server and it works just fine), I plan to have a couple of databases running on the new machine, and database throughput has never been one of OpenBSD's strong points. This is my chance to give illumos another try. As neither WiFi nor desktop environments are relevant on a no-X11 server, the server-focused OmniOS seemed to fit my needs.

Err codemadness.org 70 i 60357 Err codemadness.org 70 i 60358

My current (to be phased out) setup on FreeBSD is:

Err codemadness.org 70 i 60359
Err codemadness.org 70 i 60360 Err codemadness.org 70 i 60361
    Err codemadness.org 70 i 60362
  • apache24 with SSL support, running five websites on six domains (both HTTP and HTTPS)
  • Err codemadness.org 70 i 60363
  • a (somewhat large) Tiny Tiny RSS installation from git, updated via cronjob
  • Err codemadness.org 70 i 60364
  • sbcl running a daily cronjob of my Web-to-RSS parser
  • Err codemadness.org 70 i 60365
  • an FTP server where I share stuff with friends
  • Err codemadness.org 70 i 60366
  • an IRC bouncer
  • Err codemadness.org 70 i 60367
  • MariaDB and PostgreSQL for some of the hosted services
  • Err codemadness.org 70 i 60368
Err codemadness.org 70 i 60369 Err codemadness.org 70 i 60370
Err codemadness.org 70 i 60371

I would not consider anything of that too esoteric for a modern operating system. Since I was not really using anything mod_rewrite-related, I was perfectly ready to replace apache24 by nginx, remembering that the prepackaged apache24 on FreeBSD did not support HTTPS out of the box and I had ended up installing it from the ports. That is the only change in my setup which I am actively planning.

Err codemadness.org 70 i 60372 Err codemadness.org 70 i 60373

So here's what I noticed.

Err codemadness.org 70 i 60374
Err codemadness.org 70 i 60375 Err codemadness.org 70 i 60376
    Err codemadness.org 70 i 60377
  • First impressions:
  • Err codemadness.org 70 i 60378
Err codemadness.org 70 i 60379 Err codemadness.org 70 i 60380
Err codemadness.org 70 i 60381

Hooray, a BSD boot loader! Finally an operating system without grub - I made my experiences with that and I don't want to repeat them too often.

Err codemadness.org 70 i 60382 Err codemadness.org 70 i 60383

It is weird that the installer won't accept "mydomain.org" as a hostname but sendmail complains that "mydomain" is not a valid hostname right from the start, OmniOS sent me into Maintenance Mode to fix that. A good start, right? So the first completely new thing I had to find out on my new shiny toy was how to change the hostname. There is no /etc/rc.conf in it and hostname mydomain.org was only valid for one login session. I found out that the hostname has to be changed in three different files under /etc on Solaris - the third one did not even exist for me. Changing the other two files seems to have solved this problem for me.

Err codemadness.org 70 i 60384
Err codemadness.org 70 i 60385 Err codemadness.org 70 i 60386
    Err codemadness.org 70 i 60387
  • Random findings:
  • Err codemadness.org 70 i 60388
Err codemadness.org 70 i 60389 Err codemadness.org 70 i 60390
Err codemadness.org 70 i 60391

~ I was wondering how many resources my (mostly idle) new web server was using - I always thought Solaris was rather fat, but it still felt fast to me.

Err codemadness.org 70 i 60392 Err codemadness.org 70 i 60393

Ah, right - we're in Unixland and we need to think outside of the box. This table was really helpful: although a number of things are different between OmniOS and SmartOS, I found out that the *stat tools do what top does. I could probably just install top from one of the package managers, but I failed to find a reason to do so. I had 99% idle CPU and RAM - that's all I wanted to know.

Err codemadness.org 70 i 60394 Err codemadness.org 70 i 60395

~ Trying to set up twtxt informed me that Python 3.6 (from pkgin) expects LANG and LC_ALL to be set. Weird - did FreeBSD do that for me? It's been a while ... at least that was easy to fix.

Err codemadness.org 70 i 60396 Err codemadness.org 70 i 60397

~ SMF - Solaris's version of init - confuses me. It has "levels" similar to Gentoo's OpenRC, but it mostly shuts up during the boot process. Stuff from pkgsrc, e.g. nginx, comes with a description how to set up the particular service, but I should probably read more about it. What if, one day, I install a package which is not made ready for OmniOS? I'll have to find out how to write SMF scripts. But that should not be my highest priority.

Err codemadness.org 70 i 60398 Err codemadness.org 70 i 60399

~ The OmniOS documentation talks a lot about "zones" which, if I understand that correctly, mostly equal FreeBSD's "jails". This could be my chance to try to respect a better separation between my various services - if my lazyness won't take over again. (It probably will.)

Err codemadness.org 70 i 60400 Err codemadness.org 70 i 60401

~ OmniOS's default shell - rather un-unixy - seems to be the bash. Update: I was informed about a mistake here: the default shell is ksh93, there are bogus .bashrc files lying around though.

Err codemadness.org 70 i 60402 Err codemadness.org 70 i 60403

~ Somewhere in between, my sshd had a hiccup or, at least, logging into it took longer than usual. If that happens again, I should investigate.

Err codemadness.org 70 i 60404
Err codemadness.org 70 i 60405 Err codemadness.org 70 i 60406
    Err codemadness.org 70 i 60407
  • Conclusion:
  • Err codemadness.org 70 i 60408
Err codemadness.org 70 i 60409 Err codemadness.org 70 i 60410
Err codemadness.org 70 i 60411

By the time of me writing this, I have a basic web server with an awesome performance and a lot of applications ready to be configured only one click away. The more I play with it, the more I have the feeling that I have missed a lot while wasting my time with FreeBSD. For a system that is said to be "dying", OmniOS feels well-thought and, when equipped with a reasonable package management, comes with everything I need to reproduce my FreeBSD setup without losing functionality.

Err codemadness.org 70 i 60412 Err codemadness.org 70 i 60413

I'm looking forward to what will happen with it.

Err codemadness.org 70 i 60414
Err codemadness.org 70 i 60415 Err codemadness.org 70 i 60416


Err codemadness.org 70 i 60417 Err codemadness.org 70 i 60418

DigitalOcean Err codemadness.org 70 i 60419 http://do.co/bsdnow

Err codemadness.org 70 i 60420 Err codemadness.org 70 i 60421

[Open Source Hardware Camp 2018 — Sat 30/06 & Sun 01/07, Lincoln, UK

Err codemadness.org 70 i 60422 Err codemadness.org 70 i 60423

(includes 'Open-source RISC-V core quickstart' and 'An introductory workshop to NetBSD on embedded platforms')](http://oshug.org/pipermail/oshug/2018-April/000635.html)

Err codemadness.org 70 i 60424 Err codemadness.org 70 i 60425

``` Err codemadness.org 70 i 60426 Hi All,

Err codemadness.org 70 i 60427 Err codemadness.org 70 i 60428

I'm pleased to announce that we have 10 talks and 7 workshops confirmed Err codemadness.org 70 i 60429 for Open Source Hardware Camp 2018, with the possibility of one or two Err codemadness.org 70 i 60430 more. Registration is now open!

Err codemadness.org 70 i 60431 Err codemadness.org 70 i 60432

For the first time ever we will be hosting OSHCamp in Lincoln and a huge Err codemadness.org 70 i 60433 thanks to Sarah Markall for helping to make this happen.

Err codemadness.org 70 i 60434 Err codemadness.org 70 i 60435

As in previous years, there will be a social event on the Saturday Err codemadness.org 70 i 60436 evening and we have a room booked at the Wig and Mitre. Food will be Err codemadness.org 70 i 60437 available.

Err codemadness.org 70 i 60438 Err codemadness.org 70 i 60439

There will likely be a few of us meeting up for pre-conference drinks on Err codemadness.org 70 i 60440 the Friday evening also.

Err codemadness.org 70 i 60441 Err codemadness.org 70 i 60442

Details of the programme can be found below and, as ever, we have an Err codemadness.org 70 i 60443 excellent mix of topics being covered.

Err codemadness.org 70 i 60444 Err codemadness.org 70 i 60445

Cheers,

Err codemadness.org 70 i 60446 Err codemadness.org 70 i 60447

Andrew Err codemadness.org 70 i 60448 ```

Err codemadness.org 70 i 60449 Err codemadness.org 70 i 60450
    Err codemadness.org 70 i 60451
  • Open Source Hardware Camp 2018
  • Err codemadness.org 70 i 60452
Err codemadness.org 70 i 60453 Err codemadness.org 70 i 60454
Err codemadness.org 70 i 60455

On the 30th June 2018, 09:00 Saturday morning - 16:00 on the Sunday Err codemadness.org 70 i 60456 afternoon at The Blue Room, The Lawn, Union Rd, Lincoln, LN1 3BU.

Err codemadness.org 70 i 60457
Err codemadness.org 70 i 60458 Err codemadness.org 70 i 60459
    Err codemadness.org 70 i 60460
  • Registration: http://oshug.org/event/oshcamp2018
  • Err codemadness.org 70 i 60461
  • Open Source Hardware Camp 2018 will be hosted in the historic county Err codemadness.org 70 i 60462 town of Lincoln — home to, amongst others, noted engine builders Ruston Err codemadness.org 70 i 60463 & Hornsby (now Siemens, via GEC and English Electric).
  • Err codemadness.org 70 i 60464
  • Lincoln is well served by rail, reachable from Leeds and London within Err codemadness.org 70 i 60465 2-2.5 hours, and 4-5 hours from Edinburgh and Southampton.
  • Err codemadness.org 70 i 60466
  • There will be a social at the Wig and Mitre on the Saturday evening.
  • Err codemadness.org 70 i 60467
  • For travel and accommodation information information please see the Err codemadness.org 70 i 60468 event page on oshug.org.
  • Err codemadness.org 70 i 60469
Err codemadness.org 70 i 60470 Err codemadness.org 70 i 60471


Err codemadness.org 70 i 60472 Err codemadness.org 70 i 60473

News Roundup

Err codemadness.org 70 i 60474 Err codemadness.org 70 i 60475

Nextcloud 13 on FreeBSD

Err codemadness.org 70 i 60476 Err codemadness.org 70 i 60477
Err codemadness.org 70 i 60478

Today I would like to share a setup of Nextcloud 13 running on a FreeBSD system. To make things more interesting it would be running inside a FreeBSD Jail. I will not describe the Nextcloud setup itself here as its large enough for several blog posts.

Err codemadness.org 70 i 60479 Err codemadness.org 70 i 60480

Official Nextcloud 13 documentation recommends following setup:

Err codemadness.org 70 i 60481
Err codemadness.org 70 i 60482 Err codemadness.org 70 i 60483
    Err codemadness.org 70 i 60484
  • MySQL/MariaDB
  • Err codemadness.org 70 i 60485
  • PHP 7.0 (or newer)
  • Err codemadness.org 70 i 60486
  • Apache 2.4 (with mod_php)
  • Err codemadness.org 70 i 60487
Err codemadness.org 70 i 60488 Err codemadness.org 70 i 60489
Err codemadness.org 70 i 60490

I prefer PostgreSQL database to MySQL/MariaDB and I prefer fast and lean Nginx web server to Apache, so my setup is based on these components:

Err codemadness.org 70 i 60491
Err codemadness.org 70 i 60492 Err codemadness.org 70 i 60493
    Err codemadness.org 70 i 60494
  • PostgreSQL 10.3
  • Err codemadness.org 70 i 60495
  • PHP 7.2.4
  • Err codemadness.org 70 i 60496
  • Nginx 1.12.2 (with php-fpm)
  • Err codemadness.org 70 i 60497
  • Memcached 1.5.7
  • Err codemadness.org 70 i 60498
Err codemadness.org 70 i 60499 Err codemadness.org 70 i 60500
Err codemadness.org 70 i 60501

The Memcached subsystem is least important, it can be easily changed into something more modern like Redis for example. I prefer not to use any third party tools for FreeBSD Jails management. Not because they are bad or something like that. There are just many choices for good FreeBSD Jails management and I want to provide a GENERIC example for Nextcloud 13 in a Jail, not for a specific management tool.

Err codemadness.org 70 i 60502
Err codemadness.org 70 i 60503 Err codemadness.org 70 i 60504
    Err codemadness.org 70 i 60505
  • Host
  • Err codemadness.org 70 i 60506
Err codemadness.org 70 i 60507 Err codemadness.org 70 i 60508
Err codemadness.org 70 i 60509

Lets start with preparing the FreeBSD Host with needed settings. We need to allow using raw sockets in Jails. For the future optional upgrades of the Jail we will also allow using chflags(1) in Jails.

Err codemadness.org 70 i 60510
Err codemadness.org 70 i 60511 Err codemadness.org 70 i 60512


Err codemadness.org 70 i 60513 Err codemadness.org 70 i 60514

OpenBSD on my fanless desktop computer

Err codemadness.org 70 i 60515 Err codemadness.org 70 i 60516
Err codemadness.org 70 i 60517

You asked me about my setup. Here you go.

Err codemadness.org 70 i 60518 Err codemadness.org 70 i 60519

I’ve been using OpenBSD on servers for years as a web developer, but never had a chance to dive in to system administration before. If you appreciate the simplicity of OpenBSD and you have to give it a try on your desktop.

Err codemadness.org 70 i 60520 Err codemadness.org 70 i 60521

Bear in mind, this is a relatively cheap ergonomic setup, because all I need is xterm(1) with Vim and Firefox, I don’t care about CPU/GPU performance or mobility too much, but I want a large screen and a good keyboard.

Err codemadness.org 70 i 60522
Err codemadness.org 70 i 60523 Err codemadness.org 70 i 60524

Err codemadness.org 70 i 60525 Item Price, USD Err codemadness.org 70 i 60526 Zotac CI527 NANO-BE $371 Err codemadness.org 70 i 60527 16GB RAM Crucial DDR4-2133 $127 Err codemadness.org 70 i 60528 250GB SSD Samsung 850 EVO $104 Err codemadness.org 70 i 60529 Asus VZ249HE 23.8" IPS Full HD $129 Err codemadness.org 70 i 60530 ErgoDox EZ V3, Cherry MX Brown, blank DCS $325 Err codemadness.org 70 i 60531 Kensington Orbit Trackball $33 Err codemadness.org 70 i 60532 Total $1,107 Err codemadness.org 70 i 60533

Err codemadness.org 70 i 60534 Err codemadness.org 70 i 60535
    Err codemadness.org 70 i 60536
  • OpenBSD
  • Err codemadness.org 70 i 60537
Err codemadness.org 70 i 60538 Err codemadness.org 70 i 60539
Err codemadness.org 70 i 60540

I tried few times to install OpenBSD on my MacBooks—I heard some models are compatible with it,—but in my case it was a bit of a fiasco (thanks to Nvidia and Broadcom). That’s why I bought a new computer, just to be able to run this wonderful operating system.

Err codemadness.org 70 i 60541 Err codemadness.org 70 i 60542

Now I run -stable on my desktop and servers. Servers are supposed to be reliable, that’s obvious, why not run -current on a desktop? Because -stable is shipped every six months and I that’s is often enough for me. I prefer slow fashion.

Err codemadness.org 70 i 60543
Err codemadness.org 70 i 60544 Err codemadness.org 70 i 60545


Err codemadness.org 70 i 60546 Err codemadness.org 70 i 60547

iXsystems Err codemadness.org 70 i 60548 iX Ad Spot NAB 2018 – Michael Dexter’s Recap

Err codemadness.org 70 i 60549 Err codemadness.org 70 i 60550

Introduction to HardenedBSD World

Err codemadness.org 70 i 60551 Err codemadness.org 70 i 60552
Err codemadness.org 70 i 60553

HardenedBSD is a security enhanced fork of FreeBSD which happened in 2014. HardenedBSD is implementing many exploit mitigation and security technologies on top of FreeBSD which all started with implementation of Address Space Layout Randomization (ASLR). The fork has been created for ease of development.

Err codemadness.org 70 i 60554 Err codemadness.org 70 i 60555

To cite the https://hardenedbsd.org/content/about page – “HardenedBSD aims to implement innovative exploit mitigation and security solutions for the FreeBSD community. (…) HardenedBSD takes a holistic approach to security by hardening the system and implementing exploit mitigation technologies.”

Err codemadness.org 70 i 60556 Err codemadness.org 70 i 60557

Most FreeBSD enthusiasts know mfsBSD project by Martin Matuska – http://mfsbsd.vx.sk/ – FreeBSD system loaded completely into memory. The mfsBSD synonym for the HardenedBSD world is SoloBSD – http://www.solobsd.org/ – which is based on HardenedBSD sources.

Err codemadness.org 70 i 60558 Err codemadness.org 70 i 60559

One may ask how HardenedBSD project compared to more well know for its security OpenBSD system and it is very important question. The OpenBSD developers try to write ‘good’ code without dirty hacks for performance or other reasons. Clean and secure code is most important in OpenBSD world. The OpenBSD project even made security audit of all OpenBSD code available, line by line. This was easier to achieve in FreeBSD or HardenedBSD because OpenBSD code base its about ten times smaller. This has also other implications, possibilities. While FreeBSD (and HardenedBSD) offer many new features like mature SMP subsystem even with some NUMA support, ZFS filesystem, GEOM storage framework, Bhyve virtualization, Virtualbox option and many other new modern features the OpenBSD remains classic UNIX system with UFS filesystem and with very ‘theoretical’ SMP support. The vmm project tried to implement new hypervisor in OpenBSD world, but because of lack of support for graphics its for OpenBSD, Illumos and Linux currently, You will not virtualize Windows or Mac OS X there. This is also only virtualization option for OpenBSD as there are no Jails on OpenBSD. Current Bhyve implementation allows one even to boot latest Windows 2019 Technology Preview.

Err codemadness.org 70 i 60560 Err codemadness.org 70 i 60561

A HardenedBSD project is FreeBSD system code base with LOTS of security mechanisms and mitigations that are not available on FreeBSD system. For example entire lib32 tree has been disabled by default on HardenedBSD to make it more secure. Also LibreSSL is the default SSL library on HardenedBSD, same as OpenBSD while FreeBSD uses OpenSSL for compatibility reasons.

Err codemadness.org 70 i 60562 Err codemadness.org 70 i 60563

Comparison between LibreSSL and OpenSSL vulnerabilities.

Err codemadness.org 70 i 60564
Err codemadness.org 70 i 60565 Err codemadness.org 70 i 60566
    Err codemadness.org 70 i 60567
  • https://en.wikipedia.org/wiki/LibreSSL#Security
  • Err codemadness.org 70 i 60568
  • https://wiki.freebsd.org/LibreSSL#LibreSSL.28andOpenSSL.29SecurityVulnerabilities
  • Err codemadness.org 70 i 60569
Err codemadness.org 70 i 60570 Err codemadness.org 70 i 60571
Err codemadness.org 70 i 60572

One may see HardenedBSD as FreeBSD being successfully pulled up to the OpenBSD level (at least that is the goal), but as FreeBSD has tons more code and features it will be harder and longer process to achieve the goal.

Err codemadness.org 70 i 60573 Err codemadness.org 70 i 60574

As I do not have that much competence on the security field I will just repost the comparison from the HardenedBSD project versus other BSD systems. The comparison is also available here – https://hardenedbsd.org/content/easy-feature-comparison – on the HardenedBSD website.

Err codemadness.org 70 i 60575
Err codemadness.org 70 i 60576 Err codemadness.org 70 i 60577


Err codemadness.org 70 i 60578 Err codemadness.org 70 i 60579

Running my own git server

Err codemadness.org 70 i 60580 Err codemadness.org 70 i 60581
Err codemadness.org 70 i 60582

Note: This article is predominantly based on work by Hiltjo Posthuma who you should read because I would have spent far too much time failing to set things up if it wasn’t for their post. Not only have they written lots of very interesting posts, they write some really brilliant programs

Err codemadness.org 70 i 60583 Err codemadness.org 70 i 60584

Since I started university 3 years ago, I started using lots of services from lots of different companies. The “cloud” trend led me to believe that I wanted other people to look after my data for me. I was wrong. Since finding myself loving the ethos of OpenBSD, I found myself wanting to apply this ethos to the services I use as well. Not only is it important to me because of the security benefits, but also because I like the minimalist style OpenBSD portrays. This is the first in a mini-series documenting my move from bloated, hosted, sometimes proprietary services to minimal, well-written, free, self-hosted services.

Err codemadness.org 70 i 60585
Err codemadness.org 70 i 60586 Err codemadness.org 70 i 60587
    Err codemadness.org 70 i 60588
  • Tools & applications
  • Err codemadness.org 70 i 60589
Err codemadness.org 70 i 60590 Err codemadness.org 70 i 60591
Err codemadness.org 70 i 60592

These are the programs I am going to be using to get my git server up and running:

Err codemadness.org 70 i 60593
Err codemadness.org 70 i 60594 Err codemadness.org 70 i 60595

Err codemadness.org 70 i 60596 httpd(8) Err codemadness.org 70 i 60597 acme-client(1) Err codemadness.org 70 i 60598 git(1) Err codemadness.org 70 i 60599 cgit(1) Err codemadness.org 70 i 60600 slowcgi(8) Err codemadness.org 70 i 60601

Err codemadness.org 70 i 60602 Err codemadness.org 70 i 60603
    Err codemadness.org 70 i 60604
  • Setting up httpd
  • Err codemadness.org 70 i 60605
Err codemadness.org 70 i 60606 Err codemadness.org 70 i 60607
Err codemadness.org 70 i 60608

Ensure you have the necessary flags enabled in your /etc/rc.conf.local:

Err codemadness.org 70 i 60609
Err codemadness.org 70 i 60610 Err codemadness.org 70 i 60611
    Err codemadness.org 70 i 60612
  • Configuring cgit
  • Err codemadness.org 70 i 60613
Err codemadness.org 70 i 60614 Err codemadness.org 70 i 60615
Err codemadness.org 70 i 60616

When using the OpenBSD httpd(8), it will serve it’s content in a chrooted environment,which defaults to the home directory of the user it runs as, which is www in this case. This means that the chroot is limited to the directory /var/www and it’s contents.

Err codemadness.org 70 i 60617 Err codemadness.org 70 i 60618

In order to configure cgit, there must be a cgitrc file available to cgit. This is found at the location stored in $CGIT_CONFIG, which defaults to /conf/cgitrc. Because of the chroot, this file is actually stored at /var/www/conf/cgitrc.

Err codemadness.org 70 i 60619
Err codemadness.org 70 i 60620 Err codemadness.org 70 i 60621


Err codemadness.org 70 i 60622 Err codemadness.org 70 i 60623

Beastie Bits

Err codemadness.org 70 i 60624 Err codemadness.org 70 i 60625 Err codemadness.org 70 i 60632 Err codemadness.org 70 i 60633

Tarsnap ad

Err codemadness.org 70 i 60634 Err codemadness.org 70 i 60635

Feedback/Questions

Err codemadness.org 70 i 60636 Err codemadness.org 70 i 60637 Err codemadness.org 70 i 60643 Err codemadness.org 70 i 60644


Err codemadness.org 70 i 60645 Err codemadness.org 70 i 60646
    Err codemadness.org 70 i 60647
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 60648
Err codemadness.org 70 i 60649 Err codemadness.org 70 i 60650


]]> Err codemadness.org 70 i 60651
Err codemadness.org 70 i 60652 Err codemadness.org 70 i 60653 Allan’s recap of the ZFS User conference, first impressions of OmniOS by a BSD user, Nextcloud 13 setup on FreeBSD, OpenBSD on a fanless desktop computer, an intro to HardenedBSD, and DragonFlyBSD getting some SMP improvements.
Err codemadness.org 70 i 60654

Err codemadness.org 70 i 60655 Err codemadness.org 70 i 60656

Headlines

Err codemadness.org 70 i 60657 Err codemadness.org 70 i 60658

ZFS User Conference Recap

Err codemadness.org 70 i 60659 Err codemadness.org 70 i 60660
    Err codemadness.org 70 i 60661
  • Attendees met for breakfast on the fourth floor, in a lunchroom type area just outside of the theatre. One entire wall was made of lego base plates, and there were buckets of different coloured lego embedded in the wall.
  • Err codemadness.org 70 i 60662
  • The talks started with Matt Ahrens discussing how the 2nd most requested feature of ZFS, Device Removal, has now landed, then pivoting into the MOST requested feature, RAID-Z expansion, and his work on that so far, which included the first functional prototype, on FreeBSD.
  • Err codemadness.org 70 i 60663
  • Then our friend Calvin Hendryx-Parker presented how he solves all of his backup headaches with ZFS. I provided him some helpful hints to optimize his setup and improve the throughput of his backups
  • Err codemadness.org 70 i 60664
  • Then Steven Umbehocker of OSNEXUS talked about their products, and how they manage large numbers of ZFS nodes
  • Err codemadness.org 70 i 60665
  • After a very nice lunch, Orlando Pichardo of Micron talked about the future of flash, and their new 7.5TB SATA SSDs. Discussion of these devices after the talk may lead to enhancements to ZFS to better support these new larger flash devices that use larger logical sector sizes.
  • Err codemadness.org 70 i 60666
  • Alek Pinchuk of Datto talked about Pool Layout Considerations
  • Err codemadness.org 70 i 60667
  • then Tony Hutter of LLNL talked about the release process for ZFS on Linux
  • Err codemadness.org 70 i 60668
  • Then Tom Caputi of Datto presented: Helping Developers Help You, guidance for users submitting bug reports, with some good and bad examples
  • Err codemadness.org 70 i 60669
  • Then we had a nice cocktail party and dinner, and stayed late into the night talked about ZFS
  • Err codemadness.org 70 i 60670
  • The next day, Jervin Real of Percona, presented: ZFS and MySQL on Linux, the Sweet Spots. Mostly outlining some benchmark they had done, some of the results were curious and some additional digging may turn up enhancements that can be made to ZFS, or just better tuning advice for high traffic MySQL servers.
  • Err codemadness.org 70 i 60671
  • Then I presented my ZSTD compression work, which had been referenced in 2 of the previous talks, as people are anxious to get their hands on this code.
  • Err codemadness.org 70 i 60672
  • Lastly, Eric Sproul of Circonus, gave his talk: Thank You, ZFS. It thanked ZFS and its Community for making their companies product possible, and then provided an update to his presentation from last year, where they were having problems with extremely high levels of ZFS fragmentation. This also sparked a longer conversation after the talk was over.
  • Err codemadness.org 70 i 60673
  • Then we had a BBQ lunch, and after some more talking, the conference broke up.
  • Err codemadness.org 70 i 60674
Err codemadness.org 70 i 60675 Err codemadness.org 70 i 60676


Err codemadness.org 70 i 60677 Err codemadness.org 70 i 60678

Initial OmniOS impressions by a BSD user

Err codemadness.org 70 i 60679 Err codemadness.org 70 i 60680
Err codemadness.org 70 i 60681

I had been using FreeBSD as my main web server OS since 2012 and I liked it so much that I even contributed money and code to it. However, since the FreeBSD guys (and gals) decided to install anti-tech feminism, I have been considering to move away from it for quite some time now.

Err codemadness.org 70 i 60682 Err codemadness.org 70 i 60683

As my growing needs require stronger hardware, it was finally time to rent a new server. I do not intend to run FreeBSD on it. Although the most obvious choice would be OpenBSD (I run it on another server and it works just fine), I plan to have a couple of databases running on the new machine, and database throughput has never been one of OpenBSD's strong points. This is my chance to give illumos another try. As neither WiFi nor desktop environments are relevant on a no-X11 server, the server-focused OmniOS seemed to fit my needs.

Err codemadness.org 70 i 60684 Err codemadness.org 70 i 60685

My current (to be phased out) setup on FreeBSD is:

Err codemadness.org 70 i 60686
Err codemadness.org 70 i 60687 Err codemadness.org 70 i 60688
    Err codemadness.org 70 i 60689
  • apache24 with SSL support, running five websites on six domains (both HTTP and HTTPS)
  • Err codemadness.org 70 i 60690
  • a (somewhat large) Tiny Tiny RSS installation from git, updated via cronjob
  • Err codemadness.org 70 i 60691
  • sbcl running a daily cronjob of my Web-to-RSS parser
  • Err codemadness.org 70 i 60692
  • an FTP server where I share stuff with friends
  • Err codemadness.org 70 i 60693
  • an IRC bouncer
  • Err codemadness.org 70 i 60694
  • MariaDB and PostgreSQL for some of the hosted services
  • Err codemadness.org 70 i 60695
Err codemadness.org 70 i 60696 Err codemadness.org 70 i 60697
Err codemadness.org 70 i 60698

I would not consider anything of that too esoteric for a modern operating system. Since I was not really using anything mod_rewrite-related, I was perfectly ready to replace apache24 by nginx, remembering that the prepackaged apache24 on FreeBSD did not support HTTPS out of the box and I had ended up installing it from the ports. That is the only change in my setup which I am actively planning.

Err codemadness.org 70 i 60699 Err codemadness.org 70 i 60700

So here's what I noticed.

Err codemadness.org 70 i 60701
Err codemadness.org 70 i 60702 Err codemadness.org 70 i 60703
    Err codemadness.org 70 i 60704
  • First impressions:
  • Err codemadness.org 70 i 60705
Err codemadness.org 70 i 60706 Err codemadness.org 70 i 60707
Err codemadness.org 70 i 60708

Hooray, a BSD boot loader! Finally an operating system without grub - I made my experiences with that and I don't want to repeat them too often.

Err codemadness.org 70 i 60709 Err codemadness.org 70 i 60710

It is weird that the installer won't accept "mydomain.org" as a hostname but sendmail complains that "mydomain" is not a valid hostname right from the start, OmniOS sent me into Maintenance Mode to fix that. A good start, right? So the first completely new thing I had to find out on my new shiny toy was how to change the hostname. There is no /etc/rc.conf in it and hostname mydomain.org was only valid for one login session. I found out that the hostname has to be changed in three different files under /etc on Solaris - the third one did not even exist for me. Changing the other two files seems to have solved this problem for me.

Err codemadness.org 70 i 60711
Err codemadness.org 70 i 60712 Err codemadness.org 70 i 60713
    Err codemadness.org 70 i 60714
  • Random findings:
  • Err codemadness.org 70 i 60715
Err codemadness.org 70 i 60716 Err codemadness.org 70 i 60717
Err codemadness.org 70 i 60718

~ I was wondering how many resources my (mostly idle) new web server was using - I always thought Solaris was rather fat, but it still felt fast to me.

Err codemadness.org 70 i 60719 Err codemadness.org 70 i 60720

Ah, right - we're in Unixland and we need to think outside of the box. This table was really helpful: although a number of things are different between OmniOS and SmartOS, I found out that the *stat tools do what top does. I could probably just install top from one of the package managers, but I failed to find a reason to do so. I had 99% idle CPU and RAM - that's all I wanted to know.

Err codemadness.org 70 i 60721 Err codemadness.org 70 i 60722

~ Trying to set up twtxt informed me that Python 3.6 (from pkgin) expects LANG and LC_ALL to be set. Weird - did FreeBSD do that for me? It's been a while ... at least that was easy to fix.

Err codemadness.org 70 i 60723 Err codemadness.org 70 i 60724

~ SMF - Solaris's version of init - confuses me. It has "levels" similar to Gentoo's OpenRC, but it mostly shuts up during the boot process. Stuff from pkgsrc, e.g. nginx, comes with a description how to set up the particular service, but I should probably read more about it. What if, one day, I install a package which is not made ready for OmniOS? I'll have to find out how to write SMF scripts. But that should not be my highest priority.

Err codemadness.org 70 i 60725 Err codemadness.org 70 i 60726

~ The OmniOS documentation talks a lot about "zones" which, if I understand that correctly, mostly equal FreeBSD's "jails". This could be my chance to try to respect a better separation between my various services - if my lazyness won't take over again. (It probably will.)

Err codemadness.org 70 i 60727 Err codemadness.org 70 i 60728

~ OmniOS's default shell - rather un-unixy - seems to be the bash. Update: I was informed about a mistake here: the default shell is ksh93, there are bogus .bashrc files lying around though.

Err codemadness.org 70 i 60729 Err codemadness.org 70 i 60730

~ Somewhere in between, my sshd had a hiccup or, at least, logging into it took longer than usual. If that happens again, I should investigate.

Err codemadness.org 70 i 60731
Err codemadness.org 70 i 60732 Err codemadness.org 70 i 60733
    Err codemadness.org 70 i 60734
  • Conclusion:
  • Err codemadness.org 70 i 60735
Err codemadness.org 70 i 60736 Err codemadness.org 70 i 60737
Err codemadness.org 70 i 60738

By the time of me writing this, I have a basic web server with an awesome performance and a lot of applications ready to be configured only one click away. The more I play with it, the more I have the feeling that I have missed a lot while wasting my time with FreeBSD. For a system that is said to be "dying", OmniOS feels well-thought and, when equipped with a reasonable package management, comes with everything I need to reproduce my FreeBSD setup without losing functionality.

Err codemadness.org 70 i 60739 Err codemadness.org 70 i 60740

I'm looking forward to what will happen with it.

Err codemadness.org 70 i 60741
Err codemadness.org 70 i 60742 Err codemadness.org 70 i 60743


Err codemadness.org 70 i 60744 Err codemadness.org 70 i 60745

DigitalOcean Err codemadness.org 70 i 60746 http://do.co/bsdnow

Err codemadness.org 70 i 60747 Err codemadness.org 70 i 60748

[Open Source Hardware Camp 2018 — Sat 30/06 & Sun 01/07, Lincoln, UK

Err codemadness.org 70 i 60749 Err codemadness.org 70 i 60750

(includes 'Open-source RISC-V core quickstart' and 'An introductory workshop to NetBSD on embedded platforms')](http://oshug.org/pipermail/oshug/2018-April/000635.html)

Err codemadness.org 70 i 60751 Err codemadness.org 70 i 60752

``` Err codemadness.org 70 i 60753 Hi All,

Err codemadness.org 70 i 60754 Err codemadness.org 70 i 60755

I'm pleased to announce that we have 10 talks and 7 workshops confirmed Err codemadness.org 70 i 60756 for Open Source Hardware Camp 2018, with the possibility of one or two Err codemadness.org 70 i 60757 more. Registration is now open!

Err codemadness.org 70 i 60758 Err codemadness.org 70 i 60759

For the first time ever we will be hosting OSHCamp in Lincoln and a huge Err codemadness.org 70 i 60760 thanks to Sarah Markall for helping to make this happen.

Err codemadness.org 70 i 60761 Err codemadness.org 70 i 60762

As in previous years, there will be a social event on the Saturday Err codemadness.org 70 i 60763 evening and we have a room booked at the Wig and Mitre. Food will be Err codemadness.org 70 i 60764 available.

Err codemadness.org 70 i 60765 Err codemadness.org 70 i 60766

There will likely be a few of us meeting up for pre-conference drinks on Err codemadness.org 70 i 60767 the Friday evening also.

Err codemadness.org 70 i 60768 Err codemadness.org 70 i 60769

Details of the programme can be found below and, as ever, we have an Err codemadness.org 70 i 60770 excellent mix of topics being covered.

Err codemadness.org 70 i 60771 Err codemadness.org 70 i 60772

Cheers,

Err codemadness.org 70 i 60773 Err codemadness.org 70 i 60774

Andrew Err codemadness.org 70 i 60775 ```

Err codemadness.org 70 i 60776 Err codemadness.org 70 i 60777
    Err codemadness.org 70 i 60778
  • Open Source Hardware Camp 2018
  • Err codemadness.org 70 i 60779
Err codemadness.org 70 i 60780 Err codemadness.org 70 i 60781
Err codemadness.org 70 i 60782

On the 30th June 2018, 09:00 Saturday morning - 16:00 on the Sunday Err codemadness.org 70 i 60783 afternoon at The Blue Room, The Lawn, Union Rd, Lincoln, LN1 3BU.

Err codemadness.org 70 i 60784
Err codemadness.org 70 i 60785 Err codemadness.org 70 i 60786
    Err codemadness.org 70 i 60787
  • Registration: http://oshug.org/event/oshcamp2018
  • Err codemadness.org 70 i 60788
  • Open Source Hardware Camp 2018 will be hosted in the historic county Err codemadness.org 70 i 60789 town of Lincoln — home to, amongst others, noted engine builders Ruston Err codemadness.org 70 i 60790 & Hornsby (now Siemens, via GEC and English Electric).
  • Err codemadness.org 70 i 60791
  • Lincoln is well served by rail, reachable from Leeds and London within Err codemadness.org 70 i 60792 2-2.5 hours, and 4-5 hours from Edinburgh and Southampton.
  • Err codemadness.org 70 i 60793
  • There will be a social at the Wig and Mitre on the Saturday evening.
  • Err codemadness.org 70 i 60794
  • For travel and accommodation information information please see the Err codemadness.org 70 i 60795 event page on oshug.org.
  • Err codemadness.org 70 i 60796
Err codemadness.org 70 i 60797 Err codemadness.org 70 i 60798


Err codemadness.org 70 i 60799 Err codemadness.org 70 i 60800

News Roundup

Err codemadness.org 70 i 60801 Err codemadness.org 70 i 60802

Nextcloud 13 on FreeBSD

Err codemadness.org 70 i 60803 Err codemadness.org 70 i 60804
Err codemadness.org 70 i 60805

Today I would like to share a setup of Nextcloud 13 running on a FreeBSD system. To make things more interesting it would be running inside a FreeBSD Jail. I will not describe the Nextcloud setup itself here as its large enough for several blog posts.

Err codemadness.org 70 i 60806 Err codemadness.org 70 i 60807

Official Nextcloud 13 documentation recommends following setup:

Err codemadness.org 70 i 60808
Err codemadness.org 70 i 60809 Err codemadness.org 70 i 60810
    Err codemadness.org 70 i 60811
  • MySQL/MariaDB
  • Err codemadness.org 70 i 60812
  • PHP 7.0 (or newer)
  • Err codemadness.org 70 i 60813
  • Apache 2.4 (with mod_php)
  • Err codemadness.org 70 i 60814
Err codemadness.org 70 i 60815 Err codemadness.org 70 i 60816
Err codemadness.org 70 i 60817

I prefer PostgreSQL database to MySQL/MariaDB and I prefer fast and lean Nginx web server to Apache, so my setup is based on these components:

Err codemadness.org 70 i 60818
Err codemadness.org 70 i 60819 Err codemadness.org 70 i 60820
    Err codemadness.org 70 i 60821
  • PostgreSQL 10.3
  • Err codemadness.org 70 i 60822
  • PHP 7.2.4
  • Err codemadness.org 70 i 60823
  • Nginx 1.12.2 (with php-fpm)
  • Err codemadness.org 70 i 60824
  • Memcached 1.5.7
  • Err codemadness.org 70 i 60825
Err codemadness.org 70 i 60826 Err codemadness.org 70 i 60827
Err codemadness.org 70 i 60828

The Memcached subsystem is least important, it can be easily changed into something more modern like Redis for example. I prefer not to use any third party tools for FreeBSD Jails management. Not because they are bad or something like that. There are just many choices for good FreeBSD Jails management and I want to provide a GENERIC example for Nextcloud 13 in a Jail, not for a specific management tool.

Err codemadness.org 70 i 60829
Err codemadness.org 70 i 60830 Err codemadness.org 70 i 60831
    Err codemadness.org 70 i 60832
  • Host
  • Err codemadness.org 70 i 60833
Err codemadness.org 70 i 60834 Err codemadness.org 70 i 60835
Err codemadness.org 70 i 60836

Lets start with preparing the FreeBSD Host with needed settings. We need to allow using raw sockets in Jails. For the future optional upgrades of the Jail we will also allow using chflags(1) in Jails.

Err codemadness.org 70 i 60837
Err codemadness.org 70 i 60838 Err codemadness.org 70 i 60839


Err codemadness.org 70 i 60840 Err codemadness.org 70 i 60841

OpenBSD on my fanless desktop computer

Err codemadness.org 70 i 60842 Err codemadness.org 70 i 60843
Err codemadness.org 70 i 60844

You asked me about my setup. Here you go.

Err codemadness.org 70 i 60845 Err codemadness.org 70 i 60846

I’ve been using OpenBSD on servers for years as a web developer, but never had a chance to dive in to system administration before. If you appreciate the simplicity of OpenBSD and you have to give it a try on your desktop.

Err codemadness.org 70 i 60847 Err codemadness.org 70 i 60848

Bear in mind, this is a relatively cheap ergonomic setup, because all I need is xterm(1) with Vim and Firefox, I don’t care about CPU/GPU performance or mobility too much, but I want a large screen and a good keyboard.

Err codemadness.org 70 i 60849
Err codemadness.org 70 i 60850 Err codemadness.org 70 i 60851

Err codemadness.org 70 i 60852 Item Price, USD Err codemadness.org 70 i 60853 Zotac CI527 NANO-BE $371 Err codemadness.org 70 i 60854 16GB RAM Crucial DDR4-2133 $127 Err codemadness.org 70 i 60855 250GB SSD Samsung 850 EVO $104 Err codemadness.org 70 i 60856 Asus VZ249HE 23.8" IPS Full HD $129 Err codemadness.org 70 i 60857 ErgoDox EZ V3, Cherry MX Brown, blank DCS $325 Err codemadness.org 70 i 60858 Kensington Orbit Trackball $33 Err codemadness.org 70 i 60859 Total $1,107 Err codemadness.org 70 i 60860

Err codemadness.org 70 i 60861 Err codemadness.org 70 i 60862
    Err codemadness.org 70 i 60863
  • OpenBSD
  • Err codemadness.org 70 i 60864
Err codemadness.org 70 i 60865 Err codemadness.org 70 i 60866
Err codemadness.org 70 i 60867

I tried few times to install OpenBSD on my MacBooks—I heard some models are compatible with it,—but in my case it was a bit of a fiasco (thanks to Nvidia and Broadcom). That’s why I bought a new computer, just to be able to run this wonderful operating system.

Err codemadness.org 70 i 60868 Err codemadness.org 70 i 60869

Now I run -stable on my desktop and servers. Servers are supposed to be reliable, that’s obvious, why not run -current on a desktop? Because -stable is shipped every six months and I that’s is often enough for me. I prefer slow fashion.

Err codemadness.org 70 i 60870
Err codemadness.org 70 i 60871 Err codemadness.org 70 i 60872


Err codemadness.org 70 i 60873 Err codemadness.org 70 i 60874

iXsystems Err codemadness.org 70 i 60875 iX Ad Spot NAB 2018 – Michael Dexter’s Recap

Err codemadness.org 70 i 60876 Err codemadness.org 70 i 60877

Introduction to HardenedBSD World

Err codemadness.org 70 i 60878 Err codemadness.org 70 i 60879
Err codemadness.org 70 i 60880

HardenedBSD is a security enhanced fork of FreeBSD which happened in 2014. HardenedBSD is implementing many exploit mitigation and security technologies on top of FreeBSD which all started with implementation of Address Space Layout Randomization (ASLR). The fork has been created for ease of development.

Err codemadness.org 70 i 60881 Err codemadness.org 70 i 60882

To cite the https://hardenedbsd.org/content/about page – “HardenedBSD aims to implement innovative exploit mitigation and security solutions for the FreeBSD community. (…) HardenedBSD takes a holistic approach to security by hardening the system and implementing exploit mitigation technologies.”

Err codemadness.org 70 i 60883 Err codemadness.org 70 i 60884

Most FreeBSD enthusiasts know mfsBSD project by Martin Matuska – http://mfsbsd.vx.sk/ – FreeBSD system loaded completely into memory. The mfsBSD synonym for the HardenedBSD world is SoloBSD – http://www.solobsd.org/ – which is based on HardenedBSD sources.

Err codemadness.org 70 i 60885 Err codemadness.org 70 i 60886

One may ask how HardenedBSD project compared to more well know for its security OpenBSD system and it is very important question. The OpenBSD developers try to write ‘good’ code without dirty hacks for performance or other reasons. Clean and secure code is most important in OpenBSD world. The OpenBSD project even made security audit of all OpenBSD code available, line by line. This was easier to achieve in FreeBSD or HardenedBSD because OpenBSD code base its about ten times smaller. This has also other implications, possibilities. While FreeBSD (and HardenedBSD) offer many new features like mature SMP subsystem even with some NUMA support, ZFS filesystem, GEOM storage framework, Bhyve virtualization, Virtualbox option and many other new modern features the OpenBSD remains classic UNIX system with UFS filesystem and with very ‘theoretical’ SMP support. The vmm project tried to implement new hypervisor in OpenBSD world, but because of lack of support for graphics its for OpenBSD, Illumos and Linux currently, You will not virtualize Windows or Mac OS X there. This is also only virtualization option for OpenBSD as there are no Jails on OpenBSD. Current Bhyve implementation allows one even to boot latest Windows 2019 Technology Preview.

Err codemadness.org 70 i 60887 Err codemadness.org 70 i 60888

A HardenedBSD project is FreeBSD system code base with LOTS of security mechanisms and mitigations that are not available on FreeBSD system. For example entire lib32 tree has been disabled by default on HardenedBSD to make it more secure. Also LibreSSL is the default SSL library on HardenedBSD, same as OpenBSD while FreeBSD uses OpenSSL for compatibility reasons.

Err codemadness.org 70 i 60889 Err codemadness.org 70 i 60890

Comparison between LibreSSL and OpenSSL vulnerabilities.

Err codemadness.org 70 i 60891
Err codemadness.org 70 i 60892 Err codemadness.org 70 i 60893
    Err codemadness.org 70 i 60894
  • https://en.wikipedia.org/wiki/LibreSSL#Security
  • Err codemadness.org 70 i 60895
  • https://wiki.freebsd.org/LibreSSL#LibreSSL.28andOpenSSL.29SecurityVulnerabilities
  • Err codemadness.org 70 i 60896
Err codemadness.org 70 i 60897 Err codemadness.org 70 i 60898
Err codemadness.org 70 i 60899

One may see HardenedBSD as FreeBSD being successfully pulled up to the OpenBSD level (at least that is the goal), but as FreeBSD has tons more code and features it will be harder and longer process to achieve the goal.

Err codemadness.org 70 i 60900 Err codemadness.org 70 i 60901

As I do not have that much competence on the security field I will just repost the comparison from the HardenedBSD project versus other BSD systems. The comparison is also available here – https://hardenedbsd.org/content/easy-feature-comparison – on the HardenedBSD website.

Err codemadness.org 70 i 60902
Err codemadness.org 70 i 60903 Err codemadness.org 70 i 60904


Err codemadness.org 70 i 60905 Err codemadness.org 70 i 60906

Running my own git server

Err codemadness.org 70 i 60907 Err codemadness.org 70 i 60908
Err codemadness.org 70 i 60909

Note: This article is predominantly based on work by Hiltjo Posthuma who you should read because I would have spent far too much time failing to set things up if it wasn’t for their post. Not only have they written lots of very interesting posts, they write some really brilliant programs

Err codemadness.org 70 i 60910 Err codemadness.org 70 i 60911

Since I started university 3 years ago, I started using lots of services from lots of different companies. The “cloud” trend led me to believe that I wanted other people to look after my data for me. I was wrong. Since finding myself loving the ethos of OpenBSD, I found myself wanting to apply this ethos to the services I use as well. Not only is it important to me because of the security benefits, but also because I like the minimalist style OpenBSD portrays. This is the first in a mini-series documenting my move from bloated, hosted, sometimes proprietary services to minimal, well-written, free, self-hosted services.

Err codemadness.org 70 i 60912
Err codemadness.org 70 i 60913 Err codemadness.org 70 i 60914
    Err codemadness.org 70 i 60915
  • Tools & applications
  • Err codemadness.org 70 i 60916
Err codemadness.org 70 i 60917 Err codemadness.org 70 i 60918
Err codemadness.org 70 i 60919

These are the programs I am going to be using to get my git server up and running:

Err codemadness.org 70 i 60920
Err codemadness.org 70 i 60921 Err codemadness.org 70 i 60922

Err codemadness.org 70 i 60923 httpd(8) Err codemadness.org 70 i 60924 acme-client(1) Err codemadness.org 70 i 60925 git(1) Err codemadness.org 70 i 60926 cgit(1) Err codemadness.org 70 i 60927 slowcgi(8) Err codemadness.org 70 i 60928

Err codemadness.org 70 i 60929 Err codemadness.org 70 i 60930
    Err codemadness.org 70 i 60931
  • Setting up httpd
  • Err codemadness.org 70 i 60932
Err codemadness.org 70 i 60933 Err codemadness.org 70 i 60934
Err codemadness.org 70 i 60935

Ensure you have the necessary flags enabled in your /etc/rc.conf.local:

Err codemadness.org 70 i 60936
Err codemadness.org 70 i 60937 Err codemadness.org 70 i 60938
    Err codemadness.org 70 i 60939
  • Configuring cgit
  • Err codemadness.org 70 i 60940
Err codemadness.org 70 i 60941 Err codemadness.org 70 i 60942
Err codemadness.org 70 i 60943

When using the OpenBSD httpd(8), it will serve it’s content in a chrooted environment,which defaults to the home directory of the user it runs as, which is www in this case. This means that the chroot is limited to the directory /var/www and it’s contents.

Err codemadness.org 70 i 60944 Err codemadness.org 70 i 60945

In order to configure cgit, there must be a cgitrc file available to cgit. This is found at the location stored in $CGIT_CONFIG, which defaults to /conf/cgitrc. Because of the chroot, this file is actually stored at /var/www/conf/cgitrc.

Err codemadness.org 70 i 60946
Err codemadness.org 70 i 60947 Err codemadness.org 70 i 60948


Err codemadness.org 70 i 60949 Err codemadness.org 70 i 60950

Beastie Bits

Err codemadness.org 70 i 60951 Err codemadness.org 70 i 60952 Err codemadness.org 70 i 60959 Err codemadness.org 70 i 60960

Tarsnap ad

Err codemadness.org 70 i 60961 Err codemadness.org 70 i 60962

Feedback/Questions

Err codemadness.org 70 i 60963 Err codemadness.org 70 i 60964 Err codemadness.org 70 i 60970 Err codemadness.org 70 i 60971


Err codemadness.org 70 i 60972 Err codemadness.org 70 i 60973
    Err codemadness.org 70 i 60974
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 60975
Err codemadness.org 70 i 60976 Err codemadness.org 70 i 60977


]]> Err codemadness.org 70 i 60978
Err codemadness.org 70 i 60979 https://fireside.fm/player/v2/FYhhasNR+WTK4Au1G Err codemadness.org 70 i 60980 Err codemadness.org 70 i 60981 ]]> Err codemadness.org 70 i 60982 Err codemadness.org 70 i 60983
Err codemadness.org 70 i 60984 Err codemadness.org 70 i 60985 Episode 244: C is a Lie | BSD Now 244 Err codemadness.org 70 i 60986 https://www.bsdnow.tv/244 Err codemadness.org 70 i 60987 http://feed.jupiter.zone/bsdnow#entry-1868 Err codemadness.org 70 i 60988 Thu, 03 May 2018 00:00:00 -0700 Err codemadness.org 70 i 60989 Allan Jude Err codemadness.org 70 i 60990 Err codemadness.org 70 i 60991 full Err codemadness.org 70 i 60992 Allan Jude Err codemadness.org 70 i 60993 Arcan and OpenBSD, running OpenBSD 6.3 on RPI 3, why C is not a low-level language, HardenedBSD switching back to OpenSSL, how the Internet was almost broken, EuroBSDcon CfP is out, and the BSDCan 2018 schedule is available. Err codemadness.org 70 i 60994 1:25:32 Err codemadness.org 70 i 60995 no Err codemadness.org 70 i 60996 Err codemadness.org 70 i 60997 Arcan and OpenBSD, running OpenBSD 6.3 on RPI 3, why C is not a low-level language, HardenedBSD switching back to OpenSSL, how the Internet was almost broken, EuroBSDcon CfP is out, and the BSDCan 2018 schedule is available. Err codemadness.org 70 i 60998 <h2>Headlines</h2> Err codemadness.org 70 i 60999 <h3><a href="https://arcan-fe.com/2018/04/25/towards-secure-system-graphics-arcan-and-openbsd/">Towards Secure System Graphics: Arcan and OpenBSD</a></h3> Err codemadness.org 70 i 61000 Err codemadness.org 70 i 61001 <blockquote> Err codemadness.org 70 i 61002 <p>Let me preface this by saying that this is a (very) long and medium-rare technical article about the security considerations and minutiae of porting (most of) the Arcan ecosystem to work under OpenBSD. The main point of this article is not so much flirting with the OpenBSD crowd or adding further noise to software engineering topics, but to go through the special considerations that had to be taken, as notes to anyone else that decides to go down this overgrown and lonesome trail, or are curious about some less than obvious differences between how these things “work” on Linux vs. other parts of the world.</p> Err codemadness.org 70 i 61003 Err codemadness.org 70 i 61004 <p>A disclaimer is also that most of this have been discovered by experimentation and combining bits and pieces scattered in everything from Xorg code to man pages, there may be smarter ways to solve some of the problems mentioned – this is just the best I could find within the time allotted. I’d be happy to be corrected, in patch/pull request form that is &#x1f609;</p> Err codemadness.org 70 i 61005 Err codemadness.org 70 i 61006 <p>Each section will start with a short rant-like explanation of how it works in Linux, and what the translation to OpenBSD involved or, in the cases that are still partly or fully missing, will require. The topics that will be covered this time are:</p> Err codemadness.org 70 i 61007 </blockquote> Err codemadness.org 70 i 61008 Err codemadness.org 70 i 61009 <ul> Err codemadness.org 70 i 61010 <li>Graphics Device Access</li> Err codemadness.org 70 i 61011 <li>Hotplug</li> Err codemadness.org 70 i 61012 <li>Input</li> Err codemadness.org 70 i 61013 <li>Backlight</li> Err codemadness.org 70 i 61014 <li>Xorg</li> Err codemadness.org 70 i 61015 <li>Pledging</li> Err codemadness.org 70 i 61016 <li>Missing</li> Err codemadness.org 70 i 61017 </ul> Err codemadness.org 70 i 61018 Err codemadness.org 70 i 61019 <hr /> Err codemadness.org 70 i 61020 <h3><a href="https://bijanebrahimi.github.io/blog/installing-openbsd-63-on-raspberry-pi-3.html">Installing OpenBSD 6.3 (snapshots) on Raspberry pi 3</a></h3> Err codemadness.org 70 i 61021 Err codemadness.org 70 i 61022 <ul> Err codemadness.org 70 i 61023 <li>The Easy way</li> Err codemadness.org 70 i 61024 </ul> Err codemadness.org 70 i 61025 Err codemadness.org 70 i 61026 <blockquote> Err codemadness.org 70 i 61027 <p>Installing the OpenBSD on raspberry pi 3 is very easy and well documented which almost convinced me of not writing about it, but still I felt like it may help somebody new to the project (But again I really recommend reading the document if you are interested and have the time).</p> Err codemadness.org 70 i 61028 Err codemadness.org 70 i 61029 <p>Note: I'm always running snapshots and recommend anybody to do it as well. But the snapshots links will change to the next version every 6 month, so I changed the links to the 6.3 version to keep the blog post valid over times. If you're familiar to the OpenBSD flavors, feel free to use the snapshots links instead.</p> Err codemadness.org 70 i 61030 </blockquote> Err codemadness.org 70 i 61031 Err codemadness.org 70 i 61032 <ul> Err codemadness.org 70 i 61033 <li>Requirements</li> Err codemadness.org 70 i 61034 </ul> Err codemadness.org 70 i 61035 Err codemadness.org 70 i 61036 <blockquote> Err codemadness.org 70 i 61037 <p>Due to the lack of driver, the OpenBSD can not boot directly from the SD Card yet, So we'll need an USB Stick for the installtion target aside the SD Card for the U-Boot and installer. Also, a Serial Console connection is required. I Used a PL2303 USB to Serial (TTL) adapter connected to my Laptop via USB port and connected to the Raspberry via TX, RX and GND pins.</p> Err codemadness.org 70 i 61038 </blockquote> Err codemadness.org 70 i 61039 Err codemadness.org 70 i 61040 <hr /> Err codemadness.org 70 i 61041 <p><strong>iXsystems</strong> Err codemadness.org 70 i 61042 https://www.ixsystems.com/blog/truenas-m-series-veeam-pr-2018/</p> Err codemadness.org 70 i 61043 Err codemadness.org 70 i 61044 <h3><a href="http://tomforsyth1000.github.io/blog.wiki.html#%5B%5BWhydidn%27tLarrabeefail?%5D%5D">Why Didn’t Larrabee Fail?</a></h3> Err codemadness.org 70 i 61045 Err codemadness.org 70 i 61046 <blockquote> Err codemadness.org 70 i 61047 <p>Every month or so, someone will ask me what happened to Larrabee and why it failed so badly. And I then try to explain to them that not only didn't it fail, it was a pretty huge success. And they are understandably very puzzled by this, because in the public consciousness Larrabee was like the Itanic and the SPU rolled into one, wasn't it? Well, not quite. So rather than explain it in person a whole bunch more times, I thought I should write it down.</p> Err codemadness.org 70 i 61048 Err codemadness.org 70 i 61049 <p>This is not a history, and I'm going to skip a TON of details for brevity. One day I'll write the whole story down, because it's a pretty decent escapade with lots of fun characters. But not today. Today you just get the very start and the very end.</p> Err codemadness.org 70 i 61050 Err codemadness.org 70 i 61051 <p>When I say "Larrabee" I mean all of Knights, all of MIC, all of Xeon Phi, all of the "Isle" cards - they're all exactly the same chip and the same people and the same software effort. Marketing seemed to dream up a new codeword every week, but there was only ever three chips:</p> Err codemadness.org 70 i 61052 </blockquote> Err codemadness.org 70 i 61053 Err codemadness.org 70 i 61054 <ul> Err codemadness.org 70 i 61055 <li>Knights Ferry / Aubrey Isle / LRB1 - mostly a prototype, had some performance gotchas, but did work, and shipped to partners.</li> Err codemadness.org 70 i 61056 <li>Knights Corner / Xeon Phi / LRB2 - the thing we actually shipped in bulk.</li> Err codemadness.org 70 i 61057 <li>Knights Landing - the new version that is shipping any day now (mid 2016).</li> Err codemadness.org 70 i 61058 </ul> Err codemadness.org 70 i 61059 Err codemadness.org 70 i 61060 <blockquote> Err codemadness.org 70 i 61061 <p>That's it. There were some other codenames I've forgotten over the years, but they're all of one of the above chips. Behind all the marketing smoke and mirrors there were only three chips ever made (so far), and only four planned in total (we had a thing called LRB3 planned between KNC and KNL for a while). All of them are "Larrabee", whether they do graphics or not.</p> Err codemadness.org 70 i 61062 Err codemadness.org 70 i 61063 <p>When Larrabee was originally conceived back in about 2005, it was called "SMAC", and its original goals were, from most to least important:</p> Err codemadness.org 70 i 61064 </blockquote> Err codemadness.org 70 i 61065 Err codemadness.org 70 i 61066 <ul> Err codemadness.org 70 i 61067 <li><ol><li>Make the most powerful flops-per-watt machine for real-world workloads using a huge array of simple cores, on systems and boards that could be built into bazillo-core supercomputers.</li></ol></li> Err codemadness.org 70 i 61068 <li><ol><li>Make it from x86 cores. That means memory coherency, store ordering, memory protection, real OSes, no ugly scratchpads, it runs legacy code, and so on. No funky DSPs or windowed register files or wacky programming models allowed. Do not build another Itanium or SPU!</li></ol></li> Err codemadness.org 70 i 61069 <li><ol><li>Make it soon. That means keeping it simple.</li></ol></li> Err codemadness.org 70 i 61070 <li><ol><li>Support the emerging GPGPU market with that same chip. Intel were absolutely not going to build a 150W PCIe card version of their embedded graphics chip (known as "Gen"), so we had to cover those programming models. As a bonus, run normal graphics well.</li></ol></li> Err codemadness.org 70 i 61071 <li><ol><li>Add as little graphics-specific hardware as you can get away with.</li></ol></li> Err codemadness.org 70 i 61072 </ul> Err codemadness.org 70 i 61073 Err codemadness.org 70 i 61074 <blockquote> Err codemadness.org 70 i 61075 <p>That ordering is important - in terms of engineering and focus, Larrabee was never primarily a graphics card. If Intel had wanted a kick-ass graphics card, they already had a very good graphics team begging to be allowed to build a nice big fat hot discrete GPU - and the Gen architecture is such that they'd build a great one, too. But Intel management didn't want one, and still doesn't. But if we were going to build Larrabee anyway, they wanted us to cover that market as well.</p> Err codemadness.org 70 i 61076 Err codemadness.org 70 i 61077 <p>... the design of Larrabee was of a CPU with a very wide SIMD unit, designed above all to be a real grown-up CPU - coherent caches, well-ordered memory rules, good memory protection, true multitasking, real threads, runs Linux/FreeBSD, etc. Larrabee, in the form of KNC, went on to become the fastest supercomputer in the world for a couple of years, and it's still making a ton of money for Intel in the HPC market that it was designed for, fighting very nicely against the GPUs and other custom architectures. Its successor, KNL, is just being released right now (mid 2016) and should do very nicely in that space too. Remember - KNC is literally the same chip as LRB2. It has texture samplers and a video out port sitting on the die. They don't test them or turn them on or expose them to software, but they're still there - it's still a graphics-capable part.</p> Err codemadness.org 70 i 61078 Err codemadness.org 70 i 61079 <p>But it's still actually running FreeBSD on that card, and under FreeBSD it's just running an x86 program called DirectXGfx (248 threads of it).</p> Err codemadness.org 70 i 61080 </blockquote> Err codemadness.org 70 i 61081 Err codemadness.org 70 i 61082 <hr /> Err codemadness.org 70 i 61083 <h2>News Roundup</h2> Err codemadness.org 70 i 61084 Err codemadness.org 70 i 61085 <h3><a href="https://queue.acm.org/detail.cfm?id=3212479">C Is Not a Low-level Language : Your computer is not a fast PDP-11.</a></h3> Err codemadness.org 70 i 61086 Err codemadness.org 70 i 61087 <blockquote> Err codemadness.org 70 i 61088 <p>In the wake of the recent Meltdown and Spectre vulnerabilities, it's worth spending some time looking at root causes. Both of these vulnerabilities involved processors speculatively executing instructions past some kind of access check and allowing the attacker to observe the results via a side channel. The features that led to these vulnerabilities, along with several others, were added to let C programmers continue to believe they were programming in a low-level language, when this hasn't been the case for decades.</p> Err codemadness.org 70 i 61089 Err codemadness.org 70 i 61090 <p>Processor vendors are not alone in this. Those of us working on C/C++ compilers have also participated.</p> Err codemadness.org 70 i 61091 </blockquote> Err codemadness.org 70 i 61092 Err codemadness.org 70 i 61093 <ul> Err codemadness.org 70 i 61094 <li>What Is a Low-Level Language?</li> Err codemadness.org 70 i 61095 </ul> Err codemadness.org 70 i 61096 Err codemadness.org 70 i 61097 <blockquote> Err codemadness.org 70 i 61098 <p>Computer science pioneer Alan Perlis defined low-level languages this way: "A programming language is low level when its programs require attention to the irrelevant."</p> Err codemadness.org 70 i 61099 Err codemadness.org 70 i 61100 <p>While, yes, this definition applies to C, it does not capture what people desire in a low-level language. Various attributes cause people to regard a language as low-level. Think of programming languages as belonging on a continuum, with assembly at one end and the interface to the Starship Enterprise's computer at the other. Low-level languages are "close to the metal," whereas high-level languages are closer to how humans think.</p> Err codemadness.org 70 i 61101 Err codemadness.org 70 i 61102 <p>For a language to be "close to the metal," it must provide an abstract machine that maps easily to the abstractions exposed by the target platform. It's easy to argue that C was a low-level language for the PDP-11. They both described a model in which programs executed sequentially, in which memory was a flat space, and even the pre- and post-increment operators cleanly lined up with the PDP-11 addressing modes.</p> Err codemadness.org 70 i 61103 </blockquote> Err codemadness.org 70 i 61104 Err codemadness.org 70 i 61105 <p>Fast PDP-11 Emulators</p> Err codemadness.org 70 i 61106 Err codemadness.org 70 i 61107 <blockquote> Err codemadness.org 70 i 61108 <p>The root cause of the Spectre and Meltdown vulnerabilities was that processor architects were trying to build not just fast processors, but fast processors that expose the same abstract machine as a PDP-11. This is essential because it allows C programmers to continue in the belief that their language is close to the underlying hardware.</p> Err codemadness.org 70 i 61109 Err codemadness.org 70 i 61110 <p>C code provides a mostly serial abstract machine (until C11, an entirely serial machine if nonstandard vendor extensions were excluded). Creating a new thread is a library operation known to be expensive, so processors wishing to keep their execution units busy running C code rely on ILP (instruction-level parallelism). They inspect adjacent operations and issue independent ones in parallel. This adds a significant amount of complexity (and power consumption) to allow programmers to write mostly sequential code. In contrast, GPUs achieve very high performance without any of this logic, at the expense of requiring explicitly parallel programs.</p> Err codemadness.org 70 i 61111 Err codemadness.org 70 i 61112 <p>The quest for high ILP was the direct cause of Spectre and Meltdown. A modern Intel processor has up to 180 instructions in flight at a time (in stark contrast to a sequential C abstract machine, which expects each operation to complete before the next one begins). A typical heuristic for C code is that there is a branch, on average, every seven instructions. If you wish to keep such a pipeline full from a single thread, then you must guess the targets of the next 25 branches. This, again, adds complexity; it also means that an incorrect guess results in work being done and then discarded, which is not ideal for power consumption. This discarded work has visible side effects, which the Spectre and Meltdown attacks could exploit.</p> Err codemadness.org 70 i 61113 Err codemadness.org 70 i 61114 <p>On a modern high-end core, the register rename engine is one of the largest consumers of die area and power. To make matters worse, it cannot be turned off or power gated while any instructions are running, which makes it inconvenient in a dark silicon era when transistors are cheap but powered transistors are an expensive resource. This unit is conspicuously absent on GPUs, where parallelism again comes from multiple threads rather than trying to extract instruction-level parallelism from intrinsically scalar code. If instructions do not have dependencies that need to be reordered, then register renaming is not necessary.</p> Err codemadness.org 70 i 61115 Err codemadness.org 70 i 61116 <p>Consider another core part of the C abstract machine's memory model: flat memory. This hasn't been true for more than two decades. A modern processor often has three levels of cache in between registers and main memory, which attempt to hide latency.</p> Err codemadness.org 70 i 61117 Err codemadness.org 70 i 61118 <p>The cache is, as its name implies, hidden from the programmer and so is not visible to C. Efficient use of the cache is one of the most important ways of making code run quickly on a modern processor, yet this is completely hidden by the abstract machine, and programmers must rely on knowing implementation details of the cache (for example, two values that are 64-byte-aligned may end up in the same cache line) to write efficient code.</p> Err codemadness.org 70 i 61119 </blockquote> Err codemadness.org 70 i 61120 Err codemadness.org 70 i 61121 <ul> Err codemadness.org 70 i 61122 <li><a href="https://web.archive.org/web/20180501170011/https://queue.acm.org/detail.cfm?id=3212479">Backup URL</a></li> Err codemadness.org 70 i 61123 <li><a href="https://news.ycombinator.com/item?id=16967675">Hacker News Commentary</a></li> Err codemadness.org 70 i 61124 </ul> Err codemadness.org 70 i 61125 Err codemadness.org 70 i 61126 <hr /> Err codemadness.org 70 i 61127 <h3><a href="https://hardenedbsd.org/article/shawn-webb/2018-04-30/hardenedbsd-switching-back-openssl">HardenedBSD Switching Back to OpenSSL</a></h3> Err codemadness.org 70 i 61128 Err codemadness.org 70 i 61129 <blockquote> Err codemadness.org 70 i 61130 <p>Over a year ago, HardenedBSD switched to LibreSSL as the default cryptographic library in base for 12-CURRENT. 11-STABLE followed suit later on. Bernard Spil has done an excellent job at keeping our users up-to-date with the latest security patches from LibreSSL.</p> Err codemadness.org 70 i 61131 Err codemadness.org 70 i 61132 <p>After recently updating 12-CURRENT to LibreSSL 2.7.2 from 2.6.4, it has become increasingly clear to us that performing major upgrades requires a team larger than a single person. Upgrading to 2.7.2 caused a lot of fallout in our ports tree. As of 28 Apr 2018, several ports we consider high priority are still broken. As it stands right now, it would take Bernard a significant amount of his spare personal time to fix these issues.</p> Err codemadness.org 70 i 61133 Err codemadness.org 70 i 61134 <p>Until we have a multi-person team dedicated to maintaining LibreSSL in base along with the patches required in ports, HardenedBSD will use OpenSSL going forward as the default cryptographic library in base. LibreSSL will co-exist with OpenSSL in the source tree, as it does now. However, MK_LIBRESSL will default to "no" instead of the current "yes". Bernard will continue maintaining LibreSSL in base along with addressing the various problematic ports entries.</p> Err codemadness.org 70 i 61135 Err codemadness.org 70 i 61136 <p>To provide our users with ample time to plan and perform updates, we will wait a period of two months prior to making the switch. The switch will occur on 01 Jul 2018 and will be performed simultaneously in 12-CURRENT and 11-STABLE. HardenedBSD will archive a copy of the LibreSSL-centric package repositories and binary updates for base for a period of six months after the switch (expiring the package repos on 01 Jan 2019). This essentially gives our users eight full months for an upgrade path.</p> Err codemadness.org 70 i 61137 Err codemadness.org 70 i 61138 <p>As part of the switch back to OpenSSL, the default NTP daemon in base will switch back from OpenNTPd to ISC NTP. Users who have local<em>openntpd</em>enable="YES" set in rc.conf will need to switch back to ntpd_enable="YES".</p> Err codemadness.org 70 i 61139 Err codemadness.org 70 i 61140 <p>Users who build base from source will want to fully clean their object directories. Any and all packages that link with libcrypto or libssl will need to be rebuilt or reinstalled.</p> Err codemadness.org 70 i 61141 Err codemadness.org 70 i 61142 <p>With the community's help, we look forward to the day when we can make the switch back to LibreSSL. We at HardenedBSD believe that providing our users options to rid themselves of software monocultures can better increase security and manage risk.</p> Err codemadness.org 70 i 61143 </blockquote> Err codemadness.org 70 i 61144 Err codemadness.org 70 i 61145 <hr /> Err codemadness.org 70 i 61146 <p><strong>DigitalOcean</strong> Err codemadness.org 70 i 61147 http://do.co/bsdnow -- $100 credit for 60 days</p> Err codemadness.org 70 i 61148 Err codemadness.org 70 i 61149 <h3><a href="https://duo.com/decipher/hacker-history-how-dan-kaminsky-almost-broke-the-internet">How Dan Kaminsky Almost Broke the Internet</a></h3> Err codemadness.org 70 i 61150 Err codemadness.org 70 i 61151 <blockquote> Err codemadness.org 70 i 61152 <p>In the summer of 2008, security researcher Dan Kaminsky disclosed how he had found a huge flaw in the Internet that could let attackers redirect web traffic to alternate servers and disrupt normal operations. In this Hacker History video, Kaminsky describes the flaw and notes the issue remains unfixed.</p> Err codemadness.org 70 i 61153 Err codemadness.org 70 i 61154 <p>“We were really concerned about web pages and emails 'cause that’s what you get to compromise when you compromise DNS,” Kaminsky says. “You think you’re sending an email to IBM but it really goes to the bad guy.”</p> Err codemadness.org 70 i 61155 Err codemadness.org 70 i 61156 <p>As the phone book of the Internet, DNS translates easy-to-remember domain names into IP addresses so that users don’t have to remember strings of numbers to reach web applications and services. Authoritative nameservers publish the IP addresses of domain names. Recursive nameservers talk to authoritative servers to find addresses for those domain names and saves the information into its cache to speed up the response time the next time it is asked about that site. While anyone can set up a nameserver and configure an authoritative zone for any site, if recursive nameservers don’t point to it to ask questions, no one will get those wrong answers.</p> Err codemadness.org 70 i 61157 Err codemadness.org 70 i 61158 <p>We made the Internet less flammable.</p> Err codemadness.org 70 i 61159 Err codemadness.org 70 i 61160 <p>Kaminsky found a fundamental design flaw in DNS that made it possible to inject incorrect information into the nameserver's cache, or DNS cache poisoning. In this case, if an attacker crafted DNS queries looking for sibling names to existing domains, such as 1.example.com, 2.example.com, and 3.example.com, while claiming to be the official "www" server for example.com, the nameserver will save that server IP address for “www” in its cache.</p> Err codemadness.org 70 i 61161 Err codemadness.org 70 i 61162 <p>“The server will go, ‘You are the official. Go right ahead. Tell me what it’s supposed to be,’” Kaminsky says in the video.</p> Err codemadness.org 70 i 61163 Err codemadness.org 70 i 61164 <p>Since the issue affected nearly every DNS server on the planet, it required a coordinated response to address it. Kaminsky informed Paul Vixie, creator of several DNS protocol extensions and application, and Vixie called an emergency summit of major IT vendors at Microsoft’s headquarters to figure out what to do.</p> Err codemadness.org 70 i 61165 Err codemadness.org 70 i 61166 <p>The “fix” involved combining the 16-bit transaction identifier that DNS lookups used with UDP source ports to create 32-bit transaction identifiers. Instead of fixing the flaw so that it can’t be exploited, the resolution focused on making it take more than ten seconds, eliminating the instantaneous attack.</p> Err codemadness.org 70 i 61167 Err codemadness.org 70 i 61168 <p>“[It’s] not like we repaired DNS,” Kaminsky says. “We made the Internet less flammable.”</p> Err codemadness.org 70 i 61169 Err codemadness.org 70 i 61170 <p>DNSSEC (Domain Name System Security Extensions), is intended to secure DNS by adding a cryptographic layer to DNS information. The root zone of the internet was signed for DNSSEC in July 2010 and the .com Top Level Domain (TLD) was finally signed for DNSSEC in April 2011. Unfortunately, adoption has been slow, even ten years after Kaminsky first raised the alarm about DNS, as less than 15 percent of users pass their queries to DNSSEC validating resolvers.</p> Err codemadness.org 70 i 61171 Err codemadness.org 70 i 61172 <p>The Internet was never designed to be secure. The Internet was designed to move pictures of cats.</p> Err codemadness.org 70 i 61173 Err codemadness.org 70 i 61174 <p>No one expected the Internet to be used for commerce and critical communications. If people lose faith in DNS, then all the things that depend on it are at risk.</p> Err codemadness.org 70 i 61175 Err codemadness.org 70 i 61176 <p>“What are we going to do? Here is the answer. Some of us gotta go out fix it,” Kaminsky says.</p> Err codemadness.org 70 i 61177 </blockquote> Err codemadness.org 70 i 61178 Err codemadness.org 70 i 61179 <hr /> Err codemadness.org 70 i 61180 <h3><a href="https://www.openindiana.org/2018/04/28/openindiana-hipster-2018-04-is-here/">OpenIndiana Hipster 2018.04 is here</a></h3> Err codemadness.org 70 i 61181 Err codemadness.org 70 i 61182 <ul> Err codemadness.org 70 i 61183 <li><p>We have released a new OpenIndiana Hipster snapshot 2018.04. The noticeable changes:</p> Err codemadness.org 70 i 61184 Err codemadness.org 70 i 61185 <ul><li>Userland software is rebuilt with GCC 6.</li> Err codemadness.org 70 i 61186 <li>KPTI was enabled to mitigate recent security issues in Intel CPUs.</li> Err codemadness.org 70 i 61187 <li>Support of Gnome 2 desktop was removed.</li> Err codemadness.org 70 i 61188 <li>Linked images now support zoneproxy service.</li> Err codemadness.org 70 i 61189 <li>Mate desktop applications are delivered as 64-bit-only.</li> Err codemadness.org 70 i 61190 <li>Upower support was integrated.</li> Err codemadness.org 70 i 61191 <li>IIIM was removed.</li></ul></li> Err codemadness.org 70 i 61192 <li><p>More information can be found in <a href="https://wiki.openindiana.org/oi/2018.04+Release+notes">2018.04 Release notes</a> and new medias can be downloaded from <a href="http://dlc.openindiana.org/">http://dlc.openindiana.org</a>.</p></li> Err codemadness.org 70 i 61193 </ul> Err codemadness.org 70 i 61194 Err codemadness.org 70 i 61195 <hr /> Err codemadness.org 70 i 61196 <h2>Beastie Bits</h2> Err codemadness.org 70 i 61197 Err codemadness.org 70 i 61198 <ul> Err codemadness.org 70 i 61199 <li><a href="https://2018.eurobsdcon.org/call-for-papers/">EuroBSDCon - Call for Papers</a></li> Err codemadness.org 70 i 61200 <li><a href="https://www.openssh.com/txt/release-7.7">OpenSSH 7.7</a></li> Err codemadness.org 70 i 61201 <li><a href="https://mail-index.netbsd.org/pkgsrc-users/2018/04/05/msg026461.html">pkgsrc-2018Q1 released</a></li> Err codemadness.org 70 i 61202 <li><a href="https://www.bsdcan.org/2018/schedule/">BSDCan Schedule</a></li> Err codemadness.org 70 i 61203 <li><a href="https://www.youtube.com/watch?v=CehSeSVgEUA&amp;feature=youtu.be">Michael Dexter's LFNW talk</a></li> Err codemadness.org 70 i 61204 </ul> Err codemadness.org 70 i 61205 Err codemadness.org 70 i 61206 <hr /> Err codemadness.org 70 i 61207 <hr /> Err codemadness.org 70 i 61208 <p>Tarsnap ad</p> Err codemadness.org 70 i 61209 Err codemadness.org 70 i 61210 <hr /> Err codemadness.org 70 i 61211 <h2>Feedback/Questions</h2> Err codemadness.org 70 i 61212 Err codemadness.org 70 i 61213 <ul> Err codemadness.org 70 i 61214 <li>Bob - <a href="http://dpaste.com/02T6P91#wrap">Help locating FreeBSD Help</a></li> Err codemadness.org 70 i 61215 <li>Alex - <a href="http://dpaste.com/04RQ46X#wrap">Convert directory to dataset</a></li> Err codemadness.org 70 i 61216 <li>Adam - <a href="http://dpaste.com/3GT988W#wrap">FreeNAS Question</a></li> Err codemadness.org 70 i 61217 <li>Florian - <a href="http://dpaste.com/3RGQRVR#wrap">Three Questions</a></li> Err codemadness.org 70 i 61218 </ul> Err codemadness.org 70 i 61219 Err codemadness.org 70 i 61220 <hr /> Err codemadness.org 70 i 61221 <ul> Err codemadness.org 70 i 61222 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 61223 </ul> Err codemadness.org 70 i 61224 Err codemadness.org 70 i 61225 <hr /> Err codemadness.org 70 i 61226 <p>iX Ad spot: <a href="https://www.ixsystems.com/blog/truenas-m-series-veeam-pr-2018/">iXsystems TrueNAS M-Series Blows Away Veeam Backup Certification Tests</a></p> Err codemadness.org 70 i 61227 Err codemadness.org 70 i 61228 Err codemadness.org 70 i 61229 Arcan and OpenBSD, running OpenBSD 6.3 on RPI 3, why C is not a low-level language, HardenedBSD switching back to OpenSSL, how the Internet was almost broken, EuroBSDcon CfP is out, and the BSDCan 2018 schedule is available.

Err codemadness.org 70 i 61230 Err codemadness.org 70 i 61231

Headlines

Err codemadness.org 70 i 61232 Err codemadness.org 70 i 61233

Towards Secure System Graphics: Arcan and OpenBSD

Err codemadness.org 70 i 61234 Err codemadness.org 70 i 61235
Err codemadness.org 70 i 61236

Let me preface this by saying that this is a (very) long and medium-rare technical article about the security considerations and minutiae of porting (most of) the Arcan ecosystem to work under OpenBSD. The main point of this article is not so much flirting with the OpenBSD crowd or adding further noise to software engineering topics, but to go through the special considerations that had to be taken, as notes to anyone else that decides to go down this overgrown and lonesome trail, or are curious about some less than obvious differences between how these things “work” on Linux vs. other parts of the world.

Err codemadness.org 70 i 61237 Err codemadness.org 70 i 61238

A disclaimer is also that most of this have been discovered by experimentation and combining bits and pieces scattered in everything from Xorg code to man pages, there may be smarter ways to solve some of the problems mentioned – this is just the best I could find within the time allotted. I’d be happy to be corrected, in patch/pull request form that is 😉

Err codemadness.org 70 i 61239 Err codemadness.org 70 i 61240

Each section will start with a short rant-like explanation of how it works in Linux, and what the translation to OpenBSD involved or, in the cases that are still partly or fully missing, will require. The topics that will be covered this time are:

Err codemadness.org 70 i 61241
Err codemadness.org 70 i 61242 Err codemadness.org 70 i 61243
    Err codemadness.org 70 i 61244
  • Graphics Device Access
  • Err codemadness.org 70 i 61245
  • Hotplug
  • Err codemadness.org 70 i 61246
  • Input
  • Err codemadness.org 70 i 61247
  • Backlight
  • Err codemadness.org 70 i 61248
  • Xorg
  • Err codemadness.org 70 i 61249
  • Pledging
  • Err codemadness.org 70 i 61250
  • Missing
  • Err codemadness.org 70 i 61251
Err codemadness.org 70 i 61252 Err codemadness.org 70 i 61253


Err codemadness.org 70 i 61254 Err codemadness.org 70 i 61255

Installing OpenBSD 6.3 (snapshots) on Raspberry pi 3

Err codemadness.org 70 i 61256 Err codemadness.org 70 i 61257
    Err codemadness.org 70 i 61258
  • The Easy way
  • Err codemadness.org 70 i 61259
Err codemadness.org 70 i 61260 Err codemadness.org 70 i 61261
Err codemadness.org 70 i 61262

Installing the OpenBSD on raspberry pi 3 is very easy and well documented which almost convinced me of not writing about it, but still I felt like it may help somebody new to the project (But again I really recommend reading the document if you are interested and have the time).

Err codemadness.org 70 i 61263 Err codemadness.org 70 i 61264

Note: I'm always running snapshots and recommend anybody to do it as well. But the snapshots links will change to the next version every 6 month, so I changed the links to the 6.3 version to keep the blog post valid over times. If you're familiar to the OpenBSD flavors, feel free to use the snapshots links instead.

Err codemadness.org 70 i 61265
Err codemadness.org 70 i 61266 Err codemadness.org 70 i 61267
    Err codemadness.org 70 i 61268
  • Requirements
  • Err codemadness.org 70 i 61269
Err codemadness.org 70 i 61270 Err codemadness.org 70 i 61271
Err codemadness.org 70 i 61272

Due to the lack of driver, the OpenBSD can not boot directly from the SD Card yet, So we'll need an USB Stick for the installtion target aside the SD Card for the U-Boot and installer. Also, a Serial Console connection is required. I Used a PL2303 USB to Serial (TTL) adapter connected to my Laptop via USB port and connected to the Raspberry via TX, RX and GND pins.

Err codemadness.org 70 i 61273
Err codemadness.org 70 i 61274 Err codemadness.org 70 i 61275


Err codemadness.org 70 i 61276 Err codemadness.org 70 i 61277

iXsystems Err codemadness.org 70 i 61278 https://www.ixsystems.com/blog/truenas-m-series-veeam-pr-2018/

Err codemadness.org 70 i 61279 Err codemadness.org 70 i 61280

Why Didn’t Larrabee Fail?

Err codemadness.org 70 i 61281 Err codemadness.org 70 i 61282
Err codemadness.org 70 i 61283

Every month or so, someone will ask me what happened to Larrabee and why it failed so badly. And I then try to explain to them that not only didn't it fail, it was a pretty huge success. And they are understandably very puzzled by this, because in the public consciousness Larrabee was like the Itanic and the SPU rolled into one, wasn't it? Well, not quite. So rather than explain it in person a whole bunch more times, I thought I should write it down.

Err codemadness.org 70 i 61284 Err codemadness.org 70 i 61285

This is not a history, and I'm going to skip a TON of details for brevity. One day I'll write the whole story down, because it's a pretty decent escapade with lots of fun characters. But not today. Today you just get the very start and the very end.

Err codemadness.org 70 i 61286 Err codemadness.org 70 i 61287

When I say "Larrabee" I mean all of Knights, all of MIC, all of Xeon Phi, all of the "Isle" cards - they're all exactly the same chip and the same people and the same software effort. Marketing seemed to dream up a new codeword every week, but there was only ever three chips:

Err codemadness.org 70 i 61288
Err codemadness.org 70 i 61289 Err codemadness.org 70 i 61290
    Err codemadness.org 70 i 61291
  • Knights Ferry / Aubrey Isle / LRB1 - mostly a prototype, had some performance gotchas, but did work, and shipped to partners.
  • Err codemadness.org 70 i 61292
  • Knights Corner / Xeon Phi / LRB2 - the thing we actually shipped in bulk.
  • Err codemadness.org 70 i 61293
  • Knights Landing - the new version that is shipping any day now (mid 2016).
  • Err codemadness.org 70 i 61294
Err codemadness.org 70 i 61295 Err codemadness.org 70 i 61296
Err codemadness.org 70 i 61297

That's it. There were some other codenames I've forgotten over the years, but they're all of one of the above chips. Behind all the marketing smoke and mirrors there were only three chips ever made (so far), and only four planned in total (we had a thing called LRB3 planned between KNC and KNL for a while). All of them are "Larrabee", whether they do graphics or not.

Err codemadness.org 70 i 61298 Err codemadness.org 70 i 61299

When Larrabee was originally conceived back in about 2005, it was called "SMAC", and its original goals were, from most to least important:

Err codemadness.org 70 i 61300
Err codemadness.org 70 i 61301 Err codemadness.org 70 i 61302
    Err codemadness.org 70 i 61303
    1. Make the most powerful flops-per-watt machine for real-world workloads using a huge array of simple cores, on systems and boards that could be built into bazillo-core supercomputers.
  • Err codemadness.org 70 i 61304
    1. Make it from x86 cores. That means memory coherency, store ordering, memory protection, real OSes, no ugly scratchpads, it runs legacy code, and so on. No funky DSPs or windowed register files or wacky programming models allowed. Do not build another Itanium or SPU!
  • Err codemadness.org 70 i 61305
    1. Make it soon. That means keeping it simple.
  • Err codemadness.org 70 i 61306
    1. Support the emerging GPGPU market with that same chip. Intel were absolutely not going to build a 150W PCIe card version of their embedded graphics chip (known as "Gen"), so we had to cover those programming models. As a bonus, run normal graphics well.
  • Err codemadness.org 70 i 61307
    1. Add as little graphics-specific hardware as you can get away with.
  • Err codemadness.org 70 i 61308
Err codemadness.org 70 i 61309 Err codemadness.org 70 i 61310
Err codemadness.org 70 i 61311

That ordering is important - in terms of engineering and focus, Larrabee was never primarily a graphics card. If Intel had wanted a kick-ass graphics card, they already had a very good graphics team begging to be allowed to build a nice big fat hot discrete GPU - and the Gen architecture is such that they'd build a great one, too. But Intel management didn't want one, and still doesn't. But if we were going to build Larrabee anyway, they wanted us to cover that market as well.

Err codemadness.org 70 i 61312 Err codemadness.org 70 i 61313

... the design of Larrabee was of a CPU with a very wide SIMD unit, designed above all to be a real grown-up CPU - coherent caches, well-ordered memory rules, good memory protection, true multitasking, real threads, runs Linux/FreeBSD, etc. Larrabee, in the form of KNC, went on to become the fastest supercomputer in the world for a couple of years, and it's still making a ton of money for Intel in the HPC market that it was designed for, fighting very nicely against the GPUs and other custom architectures. Its successor, KNL, is just being released right now (mid 2016) and should do very nicely in that space too. Remember - KNC is literally the same chip as LRB2. It has texture samplers and a video out port sitting on the die. They don't test them or turn them on or expose them to software, but they're still there - it's still a graphics-capable part.

Err codemadness.org 70 i 61314 Err codemadness.org 70 i 61315

But it's still actually running FreeBSD on that card, and under FreeBSD it's just running an x86 program called DirectXGfx (248 threads of it).

Err codemadness.org 70 i 61316
Err codemadness.org 70 i 61317 Err codemadness.org 70 i 61318


Err codemadness.org 70 i 61319 Err codemadness.org 70 i 61320

News Roundup

Err codemadness.org 70 i 61321 Err codemadness.org 70 i 61322

C Is Not a Low-level Language : Your computer is not a fast PDP-11.

Err codemadness.org 70 i 61323 Err codemadness.org 70 i 61324
Err codemadness.org 70 i 61325

In the wake of the recent Meltdown and Spectre vulnerabilities, it's worth spending some time looking at root causes. Both of these vulnerabilities involved processors speculatively executing instructions past some kind of access check and allowing the attacker to observe the results via a side channel. The features that led to these vulnerabilities, along with several others, were added to let C programmers continue to believe they were programming in a low-level language, when this hasn't been the case for decades.

Err codemadness.org 70 i 61326 Err codemadness.org 70 i 61327

Processor vendors are not alone in this. Those of us working on C/C++ compilers have also participated.

Err codemadness.org 70 i 61328
Err codemadness.org 70 i 61329 Err codemadness.org 70 i 61330
    Err codemadness.org 70 i 61331
  • What Is a Low-Level Language?
  • Err codemadness.org 70 i 61332
Err codemadness.org 70 i 61333 Err codemadness.org 70 i 61334
Err codemadness.org 70 i 61335

Computer science pioneer Alan Perlis defined low-level languages this way: "A programming language is low level when its programs require attention to the irrelevant."

Err codemadness.org 70 i 61336 Err codemadness.org 70 i 61337

While, yes, this definition applies to C, it does not capture what people desire in a low-level language. Various attributes cause people to regard a language as low-level. Think of programming languages as belonging on a continuum, with assembly at one end and the interface to the Starship Enterprise's computer at the other. Low-level languages are "close to the metal," whereas high-level languages are closer to how humans think.

Err codemadness.org 70 i 61338 Err codemadness.org 70 i 61339

For a language to be "close to the metal," it must provide an abstract machine that maps easily to the abstractions exposed by the target platform. It's easy to argue that C was a low-level language for the PDP-11. They both described a model in which programs executed sequentially, in which memory was a flat space, and even the pre- and post-increment operators cleanly lined up with the PDP-11 addressing modes.

Err codemadness.org 70 i 61340
Err codemadness.org 70 i 61341 Err codemadness.org 70 i 61342

Fast PDP-11 Emulators

Err codemadness.org 70 i 61343 Err codemadness.org 70 i 61344
Err codemadness.org 70 i 61345

The root cause of the Spectre and Meltdown vulnerabilities was that processor architects were trying to build not just fast processors, but fast processors that expose the same abstract machine as a PDP-11. This is essential because it allows C programmers to continue in the belief that their language is close to the underlying hardware.

Err codemadness.org 70 i 61346 Err codemadness.org 70 i 61347

C code provides a mostly serial abstract machine (until C11, an entirely serial machine if nonstandard vendor extensions were excluded). Creating a new thread is a library operation known to be expensive, so processors wishing to keep their execution units busy running C code rely on ILP (instruction-level parallelism). They inspect adjacent operations and issue independent ones in parallel. This adds a significant amount of complexity (and power consumption) to allow programmers to write mostly sequential code. In contrast, GPUs achieve very high performance without any of this logic, at the expense of requiring explicitly parallel programs.

Err codemadness.org 70 i 61348 Err codemadness.org 70 i 61349

The quest for high ILP was the direct cause of Spectre and Meltdown. A modern Intel processor has up to 180 instructions in flight at a time (in stark contrast to a sequential C abstract machine, which expects each operation to complete before the next one begins). A typical heuristic for C code is that there is a branch, on average, every seven instructions. If you wish to keep such a pipeline full from a single thread, then you must guess the targets of the next 25 branches. This, again, adds complexity; it also means that an incorrect guess results in work being done and then discarded, which is not ideal for power consumption. This discarded work has visible side effects, which the Spectre and Meltdown attacks could exploit.

Err codemadness.org 70 i 61350 Err codemadness.org 70 i 61351

On a modern high-end core, the register rename engine is one of the largest consumers of die area and power. To make matters worse, it cannot be turned off or power gated while any instructions are running, which makes it inconvenient in a dark silicon era when transistors are cheap but powered transistors are an expensive resource. This unit is conspicuously absent on GPUs, where parallelism again comes from multiple threads rather than trying to extract instruction-level parallelism from intrinsically scalar code. If instructions do not have dependencies that need to be reordered, then register renaming is not necessary.

Err codemadness.org 70 i 61352 Err codemadness.org 70 i 61353

Consider another core part of the C abstract machine's memory model: flat memory. This hasn't been true for more than two decades. A modern processor often has three levels of cache in between registers and main memory, which attempt to hide latency.

Err codemadness.org 70 i 61354 Err codemadness.org 70 i 61355

The cache is, as its name implies, hidden from the programmer and so is not visible to C. Efficient use of the cache is one of the most important ways of making code run quickly on a modern processor, yet this is completely hidden by the abstract machine, and programmers must rely on knowing implementation details of the cache (for example, two values that are 64-byte-aligned may end up in the same cache line) to write efficient code.

Err codemadness.org 70 i 61356
Err codemadness.org 70 i 61357 Err codemadness.org 70 i 61358 Err codemadness.org 70 i 61362 Err codemadness.org 70 i 61363


Err codemadness.org 70 i 61364 Err codemadness.org 70 i 61365

HardenedBSD Switching Back to OpenSSL

Err codemadness.org 70 i 61366 Err codemadness.org 70 i 61367
Err codemadness.org 70 i 61368

Over a year ago, HardenedBSD switched to LibreSSL as the default cryptographic library in base for 12-CURRENT. 11-STABLE followed suit later on. Bernard Spil has done an excellent job at keeping our users up-to-date with the latest security patches from LibreSSL.

Err codemadness.org 70 i 61369 Err codemadness.org 70 i 61370

After recently updating 12-CURRENT to LibreSSL 2.7.2 from 2.6.4, it has become increasingly clear to us that performing major upgrades requires a team larger than a single person. Upgrading to 2.7.2 caused a lot of fallout in our ports tree. As of 28 Apr 2018, several ports we consider high priority are still broken. As it stands right now, it would take Bernard a significant amount of his spare personal time to fix these issues.

Err codemadness.org 70 i 61371 Err codemadness.org 70 i 61372

Until we have a multi-person team dedicated to maintaining LibreSSL in base along with the patches required in ports, HardenedBSD will use OpenSSL going forward as the default cryptographic library in base. LibreSSL will co-exist with OpenSSL in the source tree, as it does now. However, MK_LIBRESSL will default to "no" instead of the current "yes". Bernard will continue maintaining LibreSSL in base along with addressing the various problematic ports entries.

Err codemadness.org 70 i 61373 Err codemadness.org 70 i 61374

To provide our users with ample time to plan and perform updates, we will wait a period of two months prior to making the switch. The switch will occur on 01 Jul 2018 and will be performed simultaneously in 12-CURRENT and 11-STABLE. HardenedBSD will archive a copy of the LibreSSL-centric package repositories and binary updates for base for a period of six months after the switch (expiring the package repos on 01 Jan 2019). This essentially gives our users eight full months for an upgrade path.

Err codemadness.org 70 i 61375 Err codemadness.org 70 i 61376

As part of the switch back to OpenSSL, the default NTP daemon in base will switch back from OpenNTPd to ISC NTP. Users who have localopenntpdenable="YES" set in rc.conf will need to switch back to ntpd_enable="YES".

Err codemadness.org 70 i 61377 Err codemadness.org 70 i 61378

Users who build base from source will want to fully clean their object directories. Any and all packages that link with libcrypto or libssl will need to be rebuilt or reinstalled.

Err codemadness.org 70 i 61379 Err codemadness.org 70 i 61380

With the community's help, we look forward to the day when we can make the switch back to LibreSSL. We at HardenedBSD believe that providing our users options to rid themselves of software monocultures can better increase security and manage risk.

Err codemadness.org 70 i 61381
Err codemadness.org 70 i 61382 Err codemadness.org 70 i 61383


Err codemadness.org 70 i 61384 Err codemadness.org 70 i 61385

DigitalOcean Err codemadness.org 70 i 61386 http://do.co/bsdnow -- $100 credit for 60 days

Err codemadness.org 70 i 61387 Err codemadness.org 70 i 61388

How Dan Kaminsky Almost Broke the Internet

Err codemadness.org 70 i 61389 Err codemadness.org 70 i 61390
Err codemadness.org 70 i 61391

In the summer of 2008, security researcher Dan Kaminsky disclosed how he had found a huge flaw in the Internet that could let attackers redirect web traffic to alternate servers and disrupt normal operations. In this Hacker History video, Kaminsky describes the flaw and notes the issue remains unfixed.

Err codemadness.org 70 i 61392 Err codemadness.org 70 i 61393

“We were really concerned about web pages and emails 'cause that’s what you get to compromise when you compromise DNS,” Kaminsky says. “You think you’re sending an email to IBM but it really goes to the bad guy.”

Err codemadness.org 70 i 61394 Err codemadness.org 70 i 61395

As the phone book of the Internet, DNS translates easy-to-remember domain names into IP addresses so that users don’t have to remember strings of numbers to reach web applications and services. Authoritative nameservers publish the IP addresses of domain names. Recursive nameservers talk to authoritative servers to find addresses for those domain names and saves the information into its cache to speed up the response time the next time it is asked about that site. While anyone can set up a nameserver and configure an authoritative zone for any site, if recursive nameservers don’t point to it to ask questions, no one will get those wrong answers.

Err codemadness.org 70 i 61396 Err codemadness.org 70 i 61397

We made the Internet less flammable.

Err codemadness.org 70 i 61398 Err codemadness.org 70 i 61399

Kaminsky found a fundamental design flaw in DNS that made it possible to inject incorrect information into the nameserver's cache, or DNS cache poisoning. In this case, if an attacker crafted DNS queries looking for sibling names to existing domains, such as 1.example.com, 2.example.com, and 3.example.com, while claiming to be the official "www" server for example.com, the nameserver will save that server IP address for “www” in its cache.

Err codemadness.org 70 i 61400 Err codemadness.org 70 i 61401

“The server will go, ‘You are the official. Go right ahead. Tell me what it’s supposed to be,’” Kaminsky says in the video.

Err codemadness.org 70 i 61402 Err codemadness.org 70 i 61403

Since the issue affected nearly every DNS server on the planet, it required a coordinated response to address it. Kaminsky informed Paul Vixie, creator of several DNS protocol extensions and application, and Vixie called an emergency summit of major IT vendors at Microsoft’s headquarters to figure out what to do.

Err codemadness.org 70 i 61404 Err codemadness.org 70 i 61405

The “fix” involved combining the 16-bit transaction identifier that DNS lookups used with UDP source ports to create 32-bit transaction identifiers. Instead of fixing the flaw so that it can’t be exploited, the resolution focused on making it take more than ten seconds, eliminating the instantaneous attack.

Err codemadness.org 70 i 61406 Err codemadness.org 70 i 61407

“[It’s] not like we repaired DNS,” Kaminsky says. “We made the Internet less flammable.”

Err codemadness.org 70 i 61408 Err codemadness.org 70 i 61409

DNSSEC (Domain Name System Security Extensions), is intended to secure DNS by adding a cryptographic layer to DNS information. The root zone of the internet was signed for DNSSEC in July 2010 and the .com Top Level Domain (TLD) was finally signed for DNSSEC in April 2011. Unfortunately, adoption has been slow, even ten years after Kaminsky first raised the alarm about DNS, as less than 15 percent of users pass their queries to DNSSEC validating resolvers.

Err codemadness.org 70 i 61410 Err codemadness.org 70 i 61411

The Internet was never designed to be secure. The Internet was designed to move pictures of cats.

Err codemadness.org 70 i 61412 Err codemadness.org 70 i 61413

No one expected the Internet to be used for commerce and critical communications. If people lose faith in DNS, then all the things that depend on it are at risk.

Err codemadness.org 70 i 61414 Err codemadness.org 70 i 61415

“What are we going to do? Here is the answer. Some of us gotta go out fix it,” Kaminsky says.

Err codemadness.org 70 i 61416
Err codemadness.org 70 i 61417 Err codemadness.org 70 i 61418


Err codemadness.org 70 i 61419 Err codemadness.org 70 i 61420

OpenIndiana Hipster 2018.04 is here

Err codemadness.org 70 i 61421 Err codemadness.org 70 i 61422
    Err codemadness.org 70 i 61423
  • We have released a new OpenIndiana Hipster snapshot 2018.04. The noticeable changes:

    Err codemadness.org 70 i 61424 Err codemadness.org 70 i 61425
    • Userland software is rebuilt with GCC 6.
    • Err codemadness.org 70 i 61426
    • KPTI was enabled to mitigate recent security issues in Intel CPUs.
    • Err codemadness.org 70 i 61427
    • Support of Gnome 2 desktop was removed.
    • Err codemadness.org 70 i 61428
    • Linked images now support zoneproxy service.
    • Err codemadness.org 70 i 61429
    • Mate desktop applications are delivered as 64-bit-only.
    • Err codemadness.org 70 i 61430
    • Upower support was integrated.
    • Err codemadness.org 70 i 61431
    • IIIM was removed.
  • Err codemadness.org 70 i 61432
  • More information can be found in 2018.04 Release notes and new medias can be downloaded from http://dlc.openindiana.org.

  • Err codemadness.org 70 i 61433
Err codemadness.org 70 i 61434 Err codemadness.org 70 i 61435


Err codemadness.org 70 i 61436 Err codemadness.org 70 i 61437

Beastie Bits

Err codemadness.org 70 i 61438 Err codemadness.org 70 i 61439 Err codemadness.org 70 i 61446 Err codemadness.org 70 i 61447


Err codemadness.org 70 i 61448 Err codemadness.org 70 i 61449


Err codemadness.org 70 i 61450 Err codemadness.org 70 i 61451

Tarsnap ad

Err codemadness.org 70 i 61452 Err codemadness.org 70 i 61453


Err codemadness.org 70 i 61454 Err codemadness.org 70 i 61455

Feedback/Questions

Err codemadness.org 70 i 61456 Err codemadness.org 70 i 61457 Err codemadness.org 70 i 61463 Err codemadness.org 70 i 61464


Err codemadness.org 70 i 61465 Err codemadness.org 70 i 61466
    Err codemadness.org 70 i 61467
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 61468
Err codemadness.org 70 i 61469 Err codemadness.org 70 i 61470


Err codemadness.org 70 i 61471 Err codemadness.org 70 i 61472

iX Ad spot: iXsystems TrueNAS M-Series Blows Away Veeam Backup Certification Tests

]]> Err codemadness.org 70 i 61473
Err codemadness.org 70 i 61474 Err codemadness.org 70 i 61475 Arcan and OpenBSD, running OpenBSD 6.3 on RPI 3, why C is not a low-level language, HardenedBSD switching back to OpenSSL, how the Internet was almost broken, EuroBSDcon CfP is out, and the BSDCan 2018 schedule is available.

Err codemadness.org 70 i 61476 Err codemadness.org 70 i 61477

Headlines

Err codemadness.org 70 i 61478 Err codemadness.org 70 i 61479

Towards Secure System Graphics: Arcan and OpenBSD

Err codemadness.org 70 i 61480 Err codemadness.org 70 i 61481
Err codemadness.org 70 i 61482

Let me preface this by saying that this is a (very) long and medium-rare technical article about the security considerations and minutiae of porting (most of) the Arcan ecosystem to work under OpenBSD. The main point of this article is not so much flirting with the OpenBSD crowd or adding further noise to software engineering topics, but to go through the special considerations that had to be taken, as notes to anyone else that decides to go down this overgrown and lonesome trail, or are curious about some less than obvious differences between how these things “work” on Linux vs. other parts of the world.

Err codemadness.org 70 i 61483 Err codemadness.org 70 i 61484

A disclaimer is also that most of this have been discovered by experimentation and combining bits and pieces scattered in everything from Xorg code to man pages, there may be smarter ways to solve some of the problems mentioned – this is just the best I could find within the time allotted. I’d be happy to be corrected, in patch/pull request form that is 😉

Err codemadness.org 70 i 61485 Err codemadness.org 70 i 61486

Each section will start with a short rant-like explanation of how it works in Linux, and what the translation to OpenBSD involved or, in the cases that are still partly or fully missing, will require. The topics that will be covered this time are:

Err codemadness.org 70 i 61487
Err codemadness.org 70 i 61488 Err codemadness.org 70 i 61489
    Err codemadness.org 70 i 61490
  • Graphics Device Access
  • Err codemadness.org 70 i 61491
  • Hotplug
  • Err codemadness.org 70 i 61492
  • Input
  • Err codemadness.org 70 i 61493
  • Backlight
  • Err codemadness.org 70 i 61494
  • Xorg
  • Err codemadness.org 70 i 61495
  • Pledging
  • Err codemadness.org 70 i 61496
  • Missing
  • Err codemadness.org 70 i 61497
Err codemadness.org 70 i 61498 Err codemadness.org 70 i 61499


Err codemadness.org 70 i 61500 Err codemadness.org 70 i 61501

Installing OpenBSD 6.3 (snapshots) on Raspberry pi 3

Err codemadness.org 70 i 61502 Err codemadness.org 70 i 61503
    Err codemadness.org 70 i 61504
  • The Easy way
  • Err codemadness.org 70 i 61505
Err codemadness.org 70 i 61506 Err codemadness.org 70 i 61507
Err codemadness.org 70 i 61508

Installing the OpenBSD on raspberry pi 3 is very easy and well documented which almost convinced me of not writing about it, but still I felt like it may help somebody new to the project (But again I really recommend reading the document if you are interested and have the time).

Err codemadness.org 70 i 61509 Err codemadness.org 70 i 61510

Note: I'm always running snapshots and recommend anybody to do it as well. But the snapshots links will change to the next version every 6 month, so I changed the links to the 6.3 version to keep the blog post valid over times. If you're familiar to the OpenBSD flavors, feel free to use the snapshots links instead.

Err codemadness.org 70 i 61511
Err codemadness.org 70 i 61512 Err codemadness.org 70 i 61513
    Err codemadness.org 70 i 61514
  • Requirements
  • Err codemadness.org 70 i 61515
Err codemadness.org 70 i 61516 Err codemadness.org 70 i 61517
Err codemadness.org 70 i 61518

Due to the lack of driver, the OpenBSD can not boot directly from the SD Card yet, So we'll need an USB Stick for the installtion target aside the SD Card for the U-Boot and installer. Also, a Serial Console connection is required. I Used a PL2303 USB to Serial (TTL) adapter connected to my Laptop via USB port and connected to the Raspberry via TX, RX and GND pins.

Err codemadness.org 70 i 61519
Err codemadness.org 70 i 61520 Err codemadness.org 70 i 61521


Err codemadness.org 70 i 61522 Err codemadness.org 70 i 61523

iXsystems Err codemadness.org 70 i 61524 https://www.ixsystems.com/blog/truenas-m-series-veeam-pr-2018/

Err codemadness.org 70 i 61525 Err codemadness.org 70 i 61526

Why Didn’t Larrabee Fail?

Err codemadness.org 70 i 61527 Err codemadness.org 70 i 61528
Err codemadness.org 70 i 61529

Every month or so, someone will ask me what happened to Larrabee and why it failed so badly. And I then try to explain to them that not only didn't it fail, it was a pretty huge success. And they are understandably very puzzled by this, because in the public consciousness Larrabee was like the Itanic and the SPU rolled into one, wasn't it? Well, not quite. So rather than explain it in person a whole bunch more times, I thought I should write it down.

Err codemadness.org 70 i 61530 Err codemadness.org 70 i 61531

This is not a history, and I'm going to skip a TON of details for brevity. One day I'll write the whole story down, because it's a pretty decent escapade with lots of fun characters. But not today. Today you just get the very start and the very end.

Err codemadness.org 70 i 61532 Err codemadness.org 70 i 61533

When I say "Larrabee" I mean all of Knights, all of MIC, all of Xeon Phi, all of the "Isle" cards - they're all exactly the same chip and the same people and the same software effort. Marketing seemed to dream up a new codeword every week, but there was only ever three chips:

Err codemadness.org 70 i 61534
Err codemadness.org 70 i 61535 Err codemadness.org 70 i 61536
    Err codemadness.org 70 i 61537
  • Knights Ferry / Aubrey Isle / LRB1 - mostly a prototype, had some performance gotchas, but did work, and shipped to partners.
  • Err codemadness.org 70 i 61538
  • Knights Corner / Xeon Phi / LRB2 - the thing we actually shipped in bulk.
  • Err codemadness.org 70 i 61539
  • Knights Landing - the new version that is shipping any day now (mid 2016).
  • Err codemadness.org 70 i 61540
Err codemadness.org 70 i 61541 Err codemadness.org 70 i 61542
Err codemadness.org 70 i 61543

That's it. There were some other codenames I've forgotten over the years, but they're all of one of the above chips. Behind all the marketing smoke and mirrors there were only three chips ever made (so far), and only four planned in total (we had a thing called LRB3 planned between KNC and KNL for a while). All of them are "Larrabee", whether they do graphics or not.

Err codemadness.org 70 i 61544 Err codemadness.org 70 i 61545

When Larrabee was originally conceived back in about 2005, it was called "SMAC", and its original goals were, from most to least important:

Err codemadness.org 70 i 61546
Err codemadness.org 70 i 61547 Err codemadness.org 70 i 61548
    Err codemadness.org 70 i 61549
    1. Make the most powerful flops-per-watt machine for real-world workloads using a huge array of simple cores, on systems and boards that could be built into bazillo-core supercomputers.
  • Err codemadness.org 70 i 61550
    1. Make it from x86 cores. That means memory coherency, store ordering, memory protection, real OSes, no ugly scratchpads, it runs legacy code, and so on. No funky DSPs or windowed register files or wacky programming models allowed. Do not build another Itanium or SPU!
  • Err codemadness.org 70 i 61551
    1. Make it soon. That means keeping it simple.
  • Err codemadness.org 70 i 61552
    1. Support the emerging GPGPU market with that same chip. Intel were absolutely not going to build a 150W PCIe card version of their embedded graphics chip (known as "Gen"), so we had to cover those programming models. As a bonus, run normal graphics well.
  • Err codemadness.org 70 i 61553
    1. Add as little graphics-specific hardware as you can get away with.
  • Err codemadness.org 70 i 61554
Err codemadness.org 70 i 61555 Err codemadness.org 70 i 61556
Err codemadness.org 70 i 61557

That ordering is important - in terms of engineering and focus, Larrabee was never primarily a graphics card. If Intel had wanted a kick-ass graphics card, they already had a very good graphics team begging to be allowed to build a nice big fat hot discrete GPU - and the Gen architecture is such that they'd build a great one, too. But Intel management didn't want one, and still doesn't. But if we were going to build Larrabee anyway, they wanted us to cover that market as well.

Err codemadness.org 70 i 61558 Err codemadness.org 70 i 61559

... the design of Larrabee was of a CPU with a very wide SIMD unit, designed above all to be a real grown-up CPU - coherent caches, well-ordered memory rules, good memory protection, true multitasking, real threads, runs Linux/FreeBSD, etc. Larrabee, in the form of KNC, went on to become the fastest supercomputer in the world for a couple of years, and it's still making a ton of money for Intel in the HPC market that it was designed for, fighting very nicely against the GPUs and other custom architectures. Its successor, KNL, is just being released right now (mid 2016) and should do very nicely in that space too. Remember - KNC is literally the same chip as LRB2. It has texture samplers and a video out port sitting on the die. They don't test them or turn them on or expose them to software, but they're still there - it's still a graphics-capable part.

Err codemadness.org 70 i 61560 Err codemadness.org 70 i 61561

But it's still actually running FreeBSD on that card, and under FreeBSD it's just running an x86 program called DirectXGfx (248 threads of it).

Err codemadness.org 70 i 61562
Err codemadness.org 70 i 61563 Err codemadness.org 70 i 61564


Err codemadness.org 70 i 61565 Err codemadness.org 70 i 61566

News Roundup

Err codemadness.org 70 i 61567 Err codemadness.org 70 i 61568

C Is Not a Low-level Language : Your computer is not a fast PDP-11.

Err codemadness.org 70 i 61569 Err codemadness.org 70 i 61570
Err codemadness.org 70 i 61571

In the wake of the recent Meltdown and Spectre vulnerabilities, it's worth spending some time looking at root causes. Both of these vulnerabilities involved processors speculatively executing instructions past some kind of access check and allowing the attacker to observe the results via a side channel. The features that led to these vulnerabilities, along with several others, were added to let C programmers continue to believe they were programming in a low-level language, when this hasn't been the case for decades.

Err codemadness.org 70 i 61572 Err codemadness.org 70 i 61573

Processor vendors are not alone in this. Those of us working on C/C++ compilers have also participated.

Err codemadness.org 70 i 61574
Err codemadness.org 70 i 61575 Err codemadness.org 70 i 61576
    Err codemadness.org 70 i 61577
  • What Is a Low-Level Language?
  • Err codemadness.org 70 i 61578
Err codemadness.org 70 i 61579 Err codemadness.org 70 i 61580
Err codemadness.org 70 i 61581

Computer science pioneer Alan Perlis defined low-level languages this way: "A programming language is low level when its programs require attention to the irrelevant."

Err codemadness.org 70 i 61582 Err codemadness.org 70 i 61583

While, yes, this definition applies to C, it does not capture what people desire in a low-level language. Various attributes cause people to regard a language as low-level. Think of programming languages as belonging on a continuum, with assembly at one end and the interface to the Starship Enterprise's computer at the other. Low-level languages are "close to the metal," whereas high-level languages are closer to how humans think.

Err codemadness.org 70 i 61584 Err codemadness.org 70 i 61585

For a language to be "close to the metal," it must provide an abstract machine that maps easily to the abstractions exposed by the target platform. It's easy to argue that C was a low-level language for the PDP-11. They both described a model in which programs executed sequentially, in which memory was a flat space, and even the pre- and post-increment operators cleanly lined up with the PDP-11 addressing modes.

Err codemadness.org 70 i 61586
Err codemadness.org 70 i 61587 Err codemadness.org 70 i 61588

Fast PDP-11 Emulators

Err codemadness.org 70 i 61589 Err codemadness.org 70 i 61590
Err codemadness.org 70 i 61591

The root cause of the Spectre and Meltdown vulnerabilities was that processor architects were trying to build not just fast processors, but fast processors that expose the same abstract machine as a PDP-11. This is essential because it allows C programmers to continue in the belief that their language is close to the underlying hardware.

Err codemadness.org 70 i 61592 Err codemadness.org 70 i 61593

C code provides a mostly serial abstract machine (until C11, an entirely serial machine if nonstandard vendor extensions were excluded). Creating a new thread is a library operation known to be expensive, so processors wishing to keep their execution units busy running C code rely on ILP (instruction-level parallelism). They inspect adjacent operations and issue independent ones in parallel. This adds a significant amount of complexity (and power consumption) to allow programmers to write mostly sequential code. In contrast, GPUs achieve very high performance without any of this logic, at the expense of requiring explicitly parallel programs.

Err codemadness.org 70 i 61594 Err codemadness.org 70 i 61595

The quest for high ILP was the direct cause of Spectre and Meltdown. A modern Intel processor has up to 180 instructions in flight at a time (in stark contrast to a sequential C abstract machine, which expects each operation to complete before the next one begins). A typical heuristic for C code is that there is a branch, on average, every seven instructions. If you wish to keep such a pipeline full from a single thread, then you must guess the targets of the next 25 branches. This, again, adds complexity; it also means that an incorrect guess results in work being done and then discarded, which is not ideal for power consumption. This discarded work has visible side effects, which the Spectre and Meltdown attacks could exploit.

Err codemadness.org 70 i 61596 Err codemadness.org 70 i 61597

On a modern high-end core, the register rename engine is one of the largest consumers of die area and power. To make matters worse, it cannot be turned off or power gated while any instructions are running, which makes it inconvenient in a dark silicon era when transistors are cheap but powered transistors are an expensive resource. This unit is conspicuously absent on GPUs, where parallelism again comes from multiple threads rather than trying to extract instruction-level parallelism from intrinsically scalar code. If instructions do not have dependencies that need to be reordered, then register renaming is not necessary.

Err codemadness.org 70 i 61598 Err codemadness.org 70 i 61599

Consider another core part of the C abstract machine's memory model: flat memory. This hasn't been true for more than two decades. A modern processor often has three levels of cache in between registers and main memory, which attempt to hide latency.

Err codemadness.org 70 i 61600 Err codemadness.org 70 i 61601

The cache is, as its name implies, hidden from the programmer and so is not visible to C. Efficient use of the cache is one of the most important ways of making code run quickly on a modern processor, yet this is completely hidden by the abstract machine, and programmers must rely on knowing implementation details of the cache (for example, two values that are 64-byte-aligned may end up in the same cache line) to write efficient code.

Err codemadness.org 70 i 61602
Err codemadness.org 70 i 61603 Err codemadness.org 70 i 61604 Err codemadness.org 70 i 61608 Err codemadness.org 70 i 61609


Err codemadness.org 70 i 61610 Err codemadness.org 70 i 61611

HardenedBSD Switching Back to OpenSSL

Err codemadness.org 70 i 61612 Err codemadness.org 70 i 61613
Err codemadness.org 70 i 61614

Over a year ago, HardenedBSD switched to LibreSSL as the default cryptographic library in base for 12-CURRENT. 11-STABLE followed suit later on. Bernard Spil has done an excellent job at keeping our users up-to-date with the latest security patches from LibreSSL.

Err codemadness.org 70 i 61615 Err codemadness.org 70 i 61616

After recently updating 12-CURRENT to LibreSSL 2.7.2 from 2.6.4, it has become increasingly clear to us that performing major upgrades requires a team larger than a single person. Upgrading to 2.7.2 caused a lot of fallout in our ports tree. As of 28 Apr 2018, several ports we consider high priority are still broken. As it stands right now, it would take Bernard a significant amount of his spare personal time to fix these issues.

Err codemadness.org 70 i 61617 Err codemadness.org 70 i 61618

Until we have a multi-person team dedicated to maintaining LibreSSL in base along with the patches required in ports, HardenedBSD will use OpenSSL going forward as the default cryptographic library in base. LibreSSL will co-exist with OpenSSL in the source tree, as it does now. However, MK_LIBRESSL will default to "no" instead of the current "yes". Bernard will continue maintaining LibreSSL in base along with addressing the various problematic ports entries.

Err codemadness.org 70 i 61619 Err codemadness.org 70 i 61620

To provide our users with ample time to plan and perform updates, we will wait a period of two months prior to making the switch. The switch will occur on 01 Jul 2018 and will be performed simultaneously in 12-CURRENT and 11-STABLE. HardenedBSD will archive a copy of the LibreSSL-centric package repositories and binary updates for base for a period of six months after the switch (expiring the package repos on 01 Jan 2019). This essentially gives our users eight full months for an upgrade path.

Err codemadness.org 70 i 61621 Err codemadness.org 70 i 61622

As part of the switch back to OpenSSL, the default NTP daemon in base will switch back from OpenNTPd to ISC NTP. Users who have localopenntpdenable="YES" set in rc.conf will need to switch back to ntpd_enable="YES".

Err codemadness.org 70 i 61623 Err codemadness.org 70 i 61624

Users who build base from source will want to fully clean their object directories. Any and all packages that link with libcrypto or libssl will need to be rebuilt or reinstalled.

Err codemadness.org 70 i 61625 Err codemadness.org 70 i 61626

With the community's help, we look forward to the day when we can make the switch back to LibreSSL. We at HardenedBSD believe that providing our users options to rid themselves of software monocultures can better increase security and manage risk.

Err codemadness.org 70 i 61627
Err codemadness.org 70 i 61628 Err codemadness.org 70 i 61629


Err codemadness.org 70 i 61630 Err codemadness.org 70 i 61631

DigitalOcean Err codemadness.org 70 i 61632 http://do.co/bsdnow -- $100 credit for 60 days

Err codemadness.org 70 i 61633 Err codemadness.org 70 i 61634

How Dan Kaminsky Almost Broke the Internet

Err codemadness.org 70 i 61635 Err codemadness.org 70 i 61636
Err codemadness.org 70 i 61637

In the summer of 2008, security researcher Dan Kaminsky disclosed how he had found a huge flaw in the Internet that could let attackers redirect web traffic to alternate servers and disrupt normal operations. In this Hacker History video, Kaminsky describes the flaw and notes the issue remains unfixed.

Err codemadness.org 70 i 61638 Err codemadness.org 70 i 61639

“We were really concerned about web pages and emails 'cause that’s what you get to compromise when you compromise DNS,” Kaminsky says. “You think you’re sending an email to IBM but it really goes to the bad guy.”

Err codemadness.org 70 i 61640 Err codemadness.org 70 i 61641

As the phone book of the Internet, DNS translates easy-to-remember domain names into IP addresses so that users don’t have to remember strings of numbers to reach web applications and services. Authoritative nameservers publish the IP addresses of domain names. Recursive nameservers talk to authoritative servers to find addresses for those domain names and saves the information into its cache to speed up the response time the next time it is asked about that site. While anyone can set up a nameserver and configure an authoritative zone for any site, if recursive nameservers don’t point to it to ask questions, no one will get those wrong answers.

Err codemadness.org 70 i 61642 Err codemadness.org 70 i 61643

We made the Internet less flammable.

Err codemadness.org 70 i 61644 Err codemadness.org 70 i 61645

Kaminsky found a fundamental design flaw in DNS that made it possible to inject incorrect information into the nameserver's cache, or DNS cache poisoning. In this case, if an attacker crafted DNS queries looking for sibling names to existing domains, such as 1.example.com, 2.example.com, and 3.example.com, while claiming to be the official "www" server for example.com, the nameserver will save that server IP address for “www” in its cache.

Err codemadness.org 70 i 61646 Err codemadness.org 70 i 61647

“The server will go, ‘You are the official. Go right ahead. Tell me what it’s supposed to be,’” Kaminsky says in the video.

Err codemadness.org 70 i 61648 Err codemadness.org 70 i 61649

Since the issue affected nearly every DNS server on the planet, it required a coordinated response to address it. Kaminsky informed Paul Vixie, creator of several DNS protocol extensions and application, and Vixie called an emergency summit of major IT vendors at Microsoft’s headquarters to figure out what to do.

Err codemadness.org 70 i 61650 Err codemadness.org 70 i 61651

The “fix” involved combining the 16-bit transaction identifier that DNS lookups used with UDP source ports to create 32-bit transaction identifiers. Instead of fixing the flaw so that it can’t be exploited, the resolution focused on making it take more than ten seconds, eliminating the instantaneous attack.

Err codemadness.org 70 i 61652 Err codemadness.org 70 i 61653

“[It’s] not like we repaired DNS,” Kaminsky says. “We made the Internet less flammable.”

Err codemadness.org 70 i 61654 Err codemadness.org 70 i 61655

DNSSEC (Domain Name System Security Extensions), is intended to secure DNS by adding a cryptographic layer to DNS information. The root zone of the internet was signed for DNSSEC in July 2010 and the .com Top Level Domain (TLD) was finally signed for DNSSEC in April 2011. Unfortunately, adoption has been slow, even ten years after Kaminsky first raised the alarm about DNS, as less than 15 percent of users pass their queries to DNSSEC validating resolvers.

Err codemadness.org 70 i 61656 Err codemadness.org 70 i 61657

The Internet was never designed to be secure. The Internet was designed to move pictures of cats.

Err codemadness.org 70 i 61658 Err codemadness.org 70 i 61659

No one expected the Internet to be used for commerce and critical communications. If people lose faith in DNS, then all the things that depend on it are at risk.

Err codemadness.org 70 i 61660 Err codemadness.org 70 i 61661

“What are we going to do? Here is the answer. Some of us gotta go out fix it,” Kaminsky says.

Err codemadness.org 70 i 61662
Err codemadness.org 70 i 61663 Err codemadness.org 70 i 61664


Err codemadness.org 70 i 61665 Err codemadness.org 70 i 61666

OpenIndiana Hipster 2018.04 is here

Err codemadness.org 70 i 61667 Err codemadness.org 70 i 61668
    Err codemadness.org 70 i 61669
  • We have released a new OpenIndiana Hipster snapshot 2018.04. The noticeable changes:

    Err codemadness.org 70 i 61670 Err codemadness.org 70 i 61671
    • Userland software is rebuilt with GCC 6.
    • Err codemadness.org 70 i 61672
    • KPTI was enabled to mitigate recent security issues in Intel CPUs.
    • Err codemadness.org 70 i 61673
    • Support of Gnome 2 desktop was removed.
    • Err codemadness.org 70 i 61674
    • Linked images now support zoneproxy service.
    • Err codemadness.org 70 i 61675
    • Mate desktop applications are delivered as 64-bit-only.
    • Err codemadness.org 70 i 61676
    • Upower support was integrated.
    • Err codemadness.org 70 i 61677
    • IIIM was removed.
  • Err codemadness.org 70 i 61678
  • More information can be found in 2018.04 Release notes and new medias can be downloaded from http://dlc.openindiana.org.

  • Err codemadness.org 70 i 61679
Err codemadness.org 70 i 61680 Err codemadness.org 70 i 61681


Err codemadness.org 70 i 61682 Err codemadness.org 70 i 61683

Beastie Bits

Err codemadness.org 70 i 61684 Err codemadness.org 70 i 61685 Err codemadness.org 70 i 61692 Err codemadness.org 70 i 61693


Err codemadness.org 70 i 61694 Err codemadness.org 70 i 61695


Err codemadness.org 70 i 61696 Err codemadness.org 70 i 61697

Tarsnap ad

Err codemadness.org 70 i 61698 Err codemadness.org 70 i 61699


Err codemadness.org 70 i 61700 Err codemadness.org 70 i 61701

Feedback/Questions

Err codemadness.org 70 i 61702 Err codemadness.org 70 i 61703 Err codemadness.org 70 i 61709 Err codemadness.org 70 i 61710


Err codemadness.org 70 i 61711 Err codemadness.org 70 i 61712
    Err codemadness.org 70 i 61713
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 61714
Err codemadness.org 70 i 61715 Err codemadness.org 70 i 61716


Err codemadness.org 70 i 61717 Err codemadness.org 70 i 61718

iX Ad spot: iXsystems TrueNAS M-Series Blows Away Veeam Backup Certification Tests

]]> Err codemadness.org 70 i 61719
Err codemadness.org 70 i 61720 https://fireside.fm/player/v2/FYhhasNR+3ns2pzlX Err codemadness.org 70 i 61721 Err codemadness.org 70 i 61722 ]]> Err codemadness.org 70 i 61723 Err codemadness.org 70 i 61724
Err codemadness.org 70 i 61725 Err codemadness.org 70 i 61726 Episode 243: Understanding The Scheduler | BSD Now 243 Err codemadness.org 70 i 61727 https://www.bsdnow.tv/243 Err codemadness.org 70 i 61728 http://feed.jupiter.zone/bsdnow#entry-1826 Err codemadness.org 70 i 61729 Wed, 25 Apr 2018 13:00:00 -0700 Err codemadness.org 70 i 61730 Allan Jude Err codemadness.org 70 i 61731 Err codemadness.org 70 i 61732 full Err codemadness.org 70 i 61733 Allan Jude Err codemadness.org 70 i 61734 OpenBSD 6.3 and DragonflyBSD 5.2 are released, bug fix for disappearing files in OpenZFS on Linux (and only Linux), understanding the FreeBSD CPU scheduler, NetBSD on RPI3, thoughts on being a committer for 20 years, and 5 reasons to use FreeBSD in 2018. Err codemadness.org 70 i 61735 1:25:24 Err codemadness.org 70 i 61736 no Err codemadness.org 70 i 61737 Err codemadness.org 70 i 61738 OpenBSD 6.3 and DragonflyBSD 5.2 are released, bug fix for disappearing files in OpenZFS on Linux (and only Linux), understanding the FreeBSD CPU scheduler, NetBSD on RPI3, thoughts on being a committer for 20 years, and 5 reasons to use FreeBSD in 2018. Err codemadness.org 70 i 61739 <h2>Headlines</h2> Err codemadness.org 70 i 61740 <h3><a href="https://www.openbsd.org/63.html">OpenBSD 6.3 released</a></h3> Err codemadness.org 70 i 61741 Err codemadness.org 70 i 61742 <ul> Err codemadness.org 70 i 61743 <li>Punctual as ever, OpenBSD 6.3 has been releases with the following features/changes: Err codemadness.org 70 i 61744 Err codemadness.org 70 i 61745 Err codemadness.org 70 i 61746 <blockquote> Err codemadness.org 70 i 61747 Improved HW support, including: Err codemadness.org 70 i 61748 SMP support on OpenBSD/arm64 platforms Err codemadness.org 70 i 61749 vmm/vmd improvements: Err codemadness.org 70 i 61750 IEEE 802.11 wireless stack improvements Err codemadness.org 70 i 61751 Generic network stack improvements Err codemadness.org 70 i 61752 Installer improvements Err codemadness.org 70 i 61753 Routing daemons and other userland network improvements Err codemadness.org 70 i 61754 Security improvements Err codemadness.org 70 i 61755 dhclient(8) improvements Err codemadness.org 70 i 61756 Assorted improvements Err codemadness.org 70 i 61757 OpenSMTPD 6.0.4 Err codemadness.org 70 i 61758 OpenSSH 7.7 Err codemadness.org 70 i 61759 LibreSSL 2.7.2</li> Err codemadness.org 70 i 61760 </ul> Err codemadness.org 70 i 61761 <hr /> Err codemadness.org 70 i 61762 </blockquote> Err codemadness.org 70 i 61763 Err codemadness.org 70 i 61764 <h3><a href="https://www.dragonflybsd.org/release52/">DragonFlyBSD 5.2 released</a></h3> Err codemadness.org 70 i 61765 Err codemadness.org 70 i 61766 Err codemadness.org 70 i 61767 Err codemadness.org 70 i 61768 <blockquote> Err codemadness.org 70 i 61769 <p>Big-ticket items Err codemadness.org 70 i 61770 Meltdown and Spectre mitigation support Err codemadness.org 70 i 61771 Meltdown isolation and spectre mitigation support added. Meltdown mitigation is automatically enabled for all Intel cpus. Spectre mitigation must be enabled manually via sysctl if desired, using sysctls machdep.spectre<em>mitigation and machdep.meltdown</em>mitigation. Err codemadness.org 70 i 61772 HAMMER2 Err codemadness.org 70 i 61773 H2 has received a very large number of bug fixes and performance improvements. We can now recommend H2 as the default root filesystem in non-clustered mode. Err codemadness.org 70 i 61774 Clustered support is not yet available. Err codemadness.org 70 i 61775 ipfw Updates Err codemadness.org 70 i 61776 Implement state based "redirect", i.e. without using libalias. Err codemadness.org 70 i 61777 ipfw now supports all possible ICMP types. Err codemadness.org 70 i 61778 Fix ICMP<em>MAXTYPE assumptions (now 40 as of this release). Err codemadness.org 70 i 61779 Improved graphics support Err codemadness.org 70 i 61780 The drm/i915 kernel driver has been updated to support Intel Coffeelake GPUs Err codemadness.org 70 i 61781 Add 24-bit pixel format support to the EFI frame buffer code. Err codemadness.org 70 i 61782 Significantly improve fbio support for the "scfb" XOrg driver. This allows EFI frame buffers to be used by X in situations where we do not otherwise support the GPU. Err codemadness.org 70 i 61783 Partly implement the FBIO</em>BLANK ioctl for display powersaving. Err codemadness.org 70 i 61784 Syscons waits for drm modesetting at appropriate places, avoiding races. Err codemadness.org 70 i 61785 + For more details, check out the “All changes since DragonFly 5.0” section.</p> Err codemadness.org 70 i 61786 </blockquote> Err codemadness.org 70 i 61787 Err codemadness.org 70 i 61788 <hr /> Err codemadness.org 70 i 61789 Err codemadness.org 70 i 61790 Err codemadness.org 70 i 61791 Err codemadness.org 70 i 61792 Err codemadness.org 70 i 61793 Err codemadness.org 70 i 61794 Err codemadness.org 70 i 61795 <h3><a href="https://github.com/zfsonlinux/zfs/issues/7401">ZFS on Linux bug causes files to disappear</a></h3> Err codemadness.org 70 i 61796 Err codemadness.org 70 i 61797 <ul> Err codemadness.org 70 i 61798 <li>A bug in ZoL 0.7.7 caused 0.7.8 to be released just 3 days after the release</li> Err codemadness.org 70 i 61799 <li>The bug only impacts Linux, the change that caused the problem was not upstreamed yet, so does not impact ZFS on illumos, FreeBSD, OS X, or Windows</li> Err codemadness.org 70 i 61800 <li>The bug can cause files being copied into a directory to not be properly linked to the directory, so they will no longer be listed in the contents of the directory</li> Err codemadness.org 70 i 61801 <li>ZoL developers are working on a tool to allow you to recover the data, since no data was actually lost, the files were just not properly registered as part of the directory</li> Err codemadness.org 70 i 61802 <li>The bug was introduced in a commit made in February, that attempted to improve performance of datasets created with the case insensitivity option. In an effort to improve performance, they introduced a limit to cap to give up (return ENOSPC) if growing the directory ZAP failed twice.</li> Err codemadness.org 70 i 61803 <li>The ZAP is the key-value pair data structure that contains metadata for a directory, including a hash table of the files that are in a directory. When a directory has a large number of files, the ZAP is converted to a FatZAP, and additional space may need to be allocated as additional files are added. Err codemadness.org 70 i 61804 Err codemadness.org 70 i 61805 Err codemadness.org 70 i 61806 <blockquote> Err codemadness.org 70 i 61807 Commit cc63068 caused ENOSPC error when copy a large amount of files between two directories. The reason is that the patch limits zap leaf expansion to 2 retries, and return ENOSPC when failed.</li> Err codemadness.org 70 i 61808 <li>Finding the root cause of this issue was somewhat hampered by the fact that many people were not able to reproduce the issue. It turns out this was caused by an entirely unrelated change to GNU coreutils.</li> Err codemadness.org 70 i 61809 <li>On later versions of GNU Coreutils, the files were returned in a sorted order, resulting in them hitting different buckets in the hash table, and not tripping the retry limit</li> Err codemadness.org 70 i 61810 <li>Tools like rsync were unaffected, because they always sort the files before copying</li> Err codemadness.org 70 i 61811 <li>If you did not see any ENOSPC errors, you were likely not impacted Err codemadness.org 70 i 61812 The intent for limiting retries is to prevent pointlessly growing table to max size when adding a block full of entries with same name in different case in mixed mode. However, it turns out we cannot use any limit on the retry. When we copy files from one directory in readdir order, we are copying in hash order, one leaf block at a time. Which means that if the leaf block in source directory has expanded 6 times, and you copy those entries in that block, by the time you need to expand the leaf in destination directory, you need to expand it 6 times in one go. So any limit on the retry will result in error where it shouldn't.</li> Err codemadness.org 70 i 61813 <li>Recommendations for Users from Ryan Yao: Err codemadness.org 70 i 61814 The regression makes it so that creating a new file could fail with ENOSPC after which files created in that directory could become orphaned. Existing files seem okay, but I have yet to confirm that myself and I cannot speak for what others know. It is incredibly difficult to reproduce on systems running coreutils 8.23 or later. So far, reports have only come from people using coreutils 8.22 or older. The directory size actually gets incremented for each orphaned file, which makes it wrong after orphan files happen. Err codemadness.org 70 i 61815 We will likely have some way to recover the orphaned files (like ext4’s lost+found) and fix the directory sizes in the very near future. Snapshots of the damaged datasets are problematic though. Until we have a subcommand to fix it (not including the snapshots, which we would have to list), the damage can be removed from a system that has it either by rolling back to a snapshot before it happened or creating a new dataset with 0.7.6 (or another release other than 0.7.7), moving everything to the new dataset and destroying the old. That will restore things to pristine condition. Err codemadness.org 70 i 61816 It should also be possible to check for pools that are affected, but I have yet to finish my analysis to be certain that no false negatives occur when checking, so I will avoid saying how for now.</li> Err codemadness.org 70 i 61817 <li>Writes to existing files cannot trigger this bug, only adding new files to a directory in bulk</li> Err codemadness.org 70 i 61818 </ul> Err codemadness.org 70 i 61819 <hr /> Err codemadness.org 70 i 61820 </blockquote> Err codemadness.org 70 i 61821 Err codemadness.org 70 i 61822 <h2>News Roundup</h2> Err codemadness.org 70 i 61823 Err codemadness.org 70 i 61824 Err codemadness.org 70 i 61825 Err codemadness.org 70 i 61826 <h3><a href="https://blog.des.no/2018/04/twenty-years/">des@’s thoughts on being a FreeBSD committer for 20 years</a></h3> Err codemadness.org 70 i 61827 Err codemadness.org 70 i 61828 Err codemadness.org 70 i 61829 Err codemadness.org 70 i 61830 <blockquote> Err codemadness.org 70 i 61831 <p>Yesterday was the twentieth anniversary of my FreeBSD commit bit, and tomorrow will be the twentieth anniversary of my first commit. I figured I’d split the difference and write a few words about it today.</p> Err codemadness.org 70 i 61832 Err codemadness.org 70 i 61833 <p>My level of engagement with the FreeBSD project has varied greatly over the twenty years I’ve been a committer. There have been times when I worked on it full-time, and times when I did not touch it for months. The last few years, health issues and life events have consumed my time and sapped my energy, and my contributions have come in bursts. Commit statistics do not tell the whole story, though: even when not working on FreeBSD directly, I have worked on side projects which, like OpenPAM, may one day find their way into FreeBSD.</p> Err codemadness.org 70 i 61834 Err codemadness.org 70 i 61835 <p>My contributions have not been limited to code. I was the project’s first Bugmeister; I’ve served on the Security Team for a long time, and have been both Security Officer and Deputy Security Officer; I managed the last four Core Team elections and am doing so again this year.</p> Err codemadness.org 70 i 61836 Err codemadness.org 70 i 61837 <p>In return, the project has taught me much about programming and software engineering. It taught me code hygiene and the importance of clarity over cleverness; it taught me the ins and outs of revision control; it taught me the importance of good documentation, and how to write it; and it taught me good release engineering practices.</p> Err codemadness.org 70 i 61838 Err codemadness.org 70 i 61839 <p>Last but not least, it has provided me with the opportunity to work with some of the best people in the field. I have the privilege today to count several of them among my friends.</p> Err codemadness.org 70 i 61840 Err codemadness.org 70 i 61841 <p>For better or worse, the FreeBSD project has shaped my career and my life. It set me on the path to information security in general and IAA in particular, and opened many a door for me. I would not be where I am now without it.</p> Err codemadness.org 70 i 61842 Err codemadness.org 70 i 61843 <p>I won’t pretend to be able to tell the future. I don’t know how long I will remain active in the FreeBSD project and community. It could be another twenty years; or it could be ten, or five, or less. All I know is that FreeBSD and I still have things to teach each other, and I don’t intend to call it quits any time soon.</p> Err codemadness.org 70 i 61844 </blockquote> Err codemadness.org 70 i 61845 Err codemadness.org 70 i 61846 <hr /> Err codemadness.org 70 i 61847 Err codemadness.org 70 i 61848 Err codemadness.org 70 i 61849 Err codemadness.org 70 i 61850 Err codemadness.org 70 i 61851 Err codemadness.org 70 i 61852 Err codemadness.org 70 i 61853 <h3><a href="https://www.ixsystems.com/blog/truenas-m-series/?utm_source=twitter.com&amp;utm_medium=bsdnow&amp;utm_campaign=truenas+m+series">iXsystems unveils new TrueNAS M-Series Unified Storage Line</a></h3> Err codemadness.org 70 i 61854 Err codemadness.org 70 i 61855 Err codemadness.org 70 i 61856 Err codemadness.org 70 i 61857 <blockquote> Err codemadness.org 70 i 61858 <p>San Jose, Calif., April 10, 2018 — iXsystems, the leader in Enterprise Open Source servers and software-defined storage, announced the TrueNAS M40 and M50 as the newest high-performance models in its hybrid, unified storage product line. The TrueNAS M-Series harnesses NVMe and NVDIMM to bring all-flash array performance to the award-winning TrueNAS hybrid arrays. It also includes the Intel® Xeon® Scalable Family of Processors and supports up to 100GbE and 32Gb Fibre Channel networking. Sitting between the all-flash TrueNAS Z50 and the hybrid TrueNAS X-Series in the product line, the TrueNAS M-Series delivers up to 10 Petabytes of highly-available and flash-powered network attached storage and rounds out a comprehensive product set that has a capacity and performance option for every storage budget.</p> Err codemadness.org 70 i 61859 </blockquote> Err codemadness.org 70 i 61860 Err codemadness.org 70 i 61861 <ul> Err codemadness.org 70 i 61862 <li>Designed for On-Premises &amp; Enterprise Cloud Environments</li> Err codemadness.org 70 i 61863 </ul> Err codemadness.org 70 i 61864 Err codemadness.org 70 i 61865 <blockquote> Err codemadness.org 70 i 61866 <p>As a unified file, block, and object sharing solution, TrueNAS can meet the needs of file serving, backup, virtualization, media production, and private cloud users thanks to its support for the SMB, NFS, AFP, iSCSI, Fibre Channel, and S3 protocols.</p> Err codemadness.org 70 i 61867 Err codemadness.org 70 i 61868 <p>At the heart of the TrueNAS M-Series is a custom 4U, dual-controller head unit that supports up to 24 3.5” drives and comes in two models, the M40 and M50, for maximum flexibility and scalability. The TrueNAS M40 uses NVDIMMs for write cache, SSDs for read cache, and up to two external 60-bay expansion shelves that unlock up to 2PB in capacity. The TrueNAS M50 uses NVDIMMs for write caching, NVMe drives for read caching, and up to twelve external 60-bay expansion shelves to scale upwards of 10PB. The dual-controller design provides high-availability failover and non-disruptive upgrades for mission-critical enterprise environments.</p> Err codemadness.org 70 i 61869 Err codemadness.org 70 i 61870 <p>By design, the TrueNAS M-Series unleashes cutting-edge persistent memory technology for demanding performance and capacity workloads, enabling businesses to accelerate enterprise applications and deploy enterprise private clouds that are twice the capacity of previous TrueNAS models. It also supports replication to the Amazon S3, BackBlaze B2, Google Cloud, and Microsoft Azure cloud platforms and can deliver an object store using the ubiquitous S3 object storage protocol at a fraction of the cost of the public cloud.</p> Err codemadness.org 70 i 61871 </blockquote> Err codemadness.org 70 i 61872 Err codemadness.org 70 i 61873 <ul> Err codemadness.org 70 i 61874 <li>Fast</li> Err codemadness.org 70 i 61875 </ul> Err codemadness.org 70 i 61876 Err codemadness.org 70 i 61877 <blockquote> Err codemadness.org 70 i 61878 <p>As a true enterprise storage platform, the TrueNAS M50 supports very demanding performance workloads with up to four active 100GbE ports, 3TB of RAM, 32GB of NVDIMM write cache and up to 15TB of NVMe flash read cache. The TrueNAS M40 and M50 include up to 24/7 and global next-business-day support, putting IT at ease. The modular and tool-less design of the M-Series allows for easy, non-disruptive servicing and upgrading by end-users and support technicians for guaranteed uptime. TrueNAS has US-Based support provided by the engineering team that developed it, offering the rapid response that every enterprise needs.</p> Err codemadness.org 70 i 61879 </blockquote> Err codemadness.org 70 i 61880 Err codemadness.org 70 i 61881 <ul> Err codemadness.org 70 i 61882 <li><p>Award-Winning TrueNAS Features</p> Err codemadness.org 70 i 61883 Err codemadness.org 70 i 61884 <ul><li>Enterprise: Perfectly suited for private clouds and enterprise workloads such as file sharing, backups, M&amp;E, surveillance, and hosting virtual machines.</li> Err codemadness.org 70 i 61885 <li>Unified: Utilizes SMB, AFP, NFS for file storage, iSCSI, Fibre Channel and OpenStack Cinder for block storage, and S3-compatible APIs for object storage. Supports every common operating system, hypervisor, and application.</li> Err codemadness.org 70 i 61886 <li>Economical: Deploy an enterprise private cloud and reduce storage TCO by 70% over AWS with built-in enterprise-class features such as in-line compression, deduplication, clones, and thin-provisioning.</li> Err codemadness.org 70 i 61887 <li>Safe: The OpenZFS file system ensures data integrity with best-in-class replication and snapshotting. Customers can replicate data to the rest of the iXsystems storage lineup and to the public cloud.</li> Err codemadness.org 70 i 61888 <li>Reliable: High Availability option with dual hot-swappable controllers for continuous data availability and 99.999% uptime.</li> Err codemadness.org 70 i 61889 <li>Familiar: Provision and manage storage with the same simple and powerful WebUI and REST APIs used in all iXsystems storage products, as well as iXsystems’ FreeNAS Software.</li> Err codemadness.org 70 i 61890 <li>Certified: TrueNAS has passed the Citrix Ready, VMware Ready, and Veeam Ready certifications, reducing the risk of deploying a virtualized infrastructure.</li> Err codemadness.org 70 i 61891 <li>Open: By using industry-standard sharing protocols, the OpenZFS Open Source enterprise file system and FreeNAS, the world’s #1 Open Source storage operating system (and also engineered by iXsystems), TrueNAS is the most open enterprise storage solution on the market.</li></ul></li> Err codemadness.org 70 i 61892 <li><p>Availability</p></li> Err codemadness.org 70 i 61893 </ul> Err codemadness.org 70 i 61894 Err codemadness.org 70 i 61895 <blockquote> Err codemadness.org 70 i 61896 <p>The TrueNAS M40 and M50 will be generally available in April 2018 through the iXsystems global channel partner network. The TrueNAS M-Series starts at under $20,000 USD and can be easily expanded using a linear “per terabyte” pricing model. With typical compression, a Petabtye can be stored for under $100,000 USD. TrueNAS comes with an all-inclusive software suite that provides NFS, Windows SMB, iSCSI, snapshots, clones and replication.</p> Err codemadness.org 70 i 61897 </blockquote> Err codemadness.org 70 i 61898 Err codemadness.org 70 i 61899 <ul> Err codemadness.org 70 i 61900 <li>For more information, visit www.ixsystems.com/TrueNAS </li> Err codemadness.org 70 i 61901 <li><a href="TrueNAS M-Series What's New">TrueNAS M-Series What's New Video</a></li> Err codemadness.org 70 i 61902 </ul> Err codemadness.org 70 i 61903 Err codemadness.org 70 i 61904 <hr /> Err codemadness.org 70 i 61905 <h3><a href="https://lists.freebsd.org/pipermail/freebsd-stable/2018-April/088678.html">Understanding and tuning the FreeBSD Scheduler </a></h3> Err codemadness.org 70 i 61906 Err codemadness.org 70 i 61907 <p>``` Err codemadness.org 70 i 61908 Occasionally I noticed that the system would not quickly process the Err codemadness.org 70 i 61909 tasks i need done, but instead prefer other, longrunning tasks. I Err codemadness.org 70 i 61910 figured it must be related to the scheduler, and decided it hates me.</p> Err codemadness.org 70 i 61911 Err codemadness.org 70 i 61912 <p>A closer look shows the behaviour as follows (single CPU):</p> Err codemadness.org 70 i 61913 Err codemadness.org 70 i 61914 <p>Lets run an I/O-active task, e.g, postgres VACUUM that would Err codemadness.org 70 i 61915 continuously read from big files (while doing compute as well [1]):</p> Err codemadness.org 70 i 61916 Err codemadness.org 70 i 61917 <blockquote> Err codemadness.org 70 i 61918 <p>pool alloc free read write read write Err codemadness.org 70 i 61919 cache - - - - - - Err codemadness.org 70 i 61920 ada1s4 7.08G 10.9G 1.58K 0 12.9M 0</p> Err codemadness.org 70 i 61921 </blockquote> Err codemadness.org 70 i 61922 Err codemadness.org 70 i 61923 <p>Now start an endless loop:</p> Err codemadness.org 70 i 61924 Err codemadness.org 70 i 61925 <h1>while true; do :; done</h1> Err codemadness.org 70 i 61926 Err codemadness.org 70 i 61927 <p>And the effect is:</p> Err codemadness.org 70 i 61928 Err codemadness.org 70 i 61929 <blockquote> Err codemadness.org 70 i 61930 <p>pool alloc free read write read write Err codemadness.org 70 i 61931 cache - - - - - - Err codemadness.org 70 i 61932 ada1s4 7.08G 10.9G 9 0 76.8K 0</p> Err codemadness.org 70 i 61933 </blockquote> Err codemadness.org 70 i 61934 Err codemadness.org 70 i 61935 <p>The VACUUM gets almost stuck! This figures with WCPU in "top":</p> Err codemadness.org 70 i 61936 Err codemadness.org 70 i 61937 <blockquote> Err codemadness.org 70 i 61938 <p>PID USERNAME PRI NICE SIZE RES STATE TIME WCPU COMMAND Err codemadness.org 70 i 61939 85583 root 99 0 7044K 1944K RUN 1:06 92.21% bash Err codemadness.org 70 i 61940 53005 pgsql 52 0 620M 91856K RUN 5:47 0.50% postgres</p> Err codemadness.org 70 i 61941 </blockquote> Err codemadness.org 70 i 61942 Err codemadness.org 70 i 61943 <p>Hacking on kern.sched.quantum makes it quite a bit better:</p> Err codemadness.org 70 i 61944 Err codemadness.org 70 i 61945 <h1>sysctl kern.sched.quantum=1</h1> Err codemadness.org 70 i 61946 Err codemadness.org 70 i 61947 <p>kern.sched.quantum: 94488 -> 7874</p> Err codemadness.org 70 i 61948 Err codemadness.org 70 i 61949 <blockquote> Err codemadness.org 70 i 61950 <p>pool alloc free read write read write Err codemadness.org 70 i 61951 cache - - - - - - Err codemadness.org 70 i 61952 ada1s4 7.08G 10.9G 395 0 3.12M 0</p> Err codemadness.org 70 i 61953 Err codemadness.org 70 i 61954 <p>PID USERNAME PRI NICE SIZE RES STATE TIME WCPU COMMAND Err codemadness.org 70 i 61955 85583 root 94 0 7044K 1944K RUN 4:13 70.80% bash Err codemadness.org 70 i 61956 53005 pgsql 52 0 276M 91856K RUN 5:52 11.83% postgres</p> Err codemadness.org 70 i 61957 </blockquote> Err codemadness.org 70 i 61958 Err codemadness.org 70 i 61959 <p>Now, as usual, the "root-cause" questions arise: What exactly does Err codemadness.org 70 i 61960 this "quantum"? Is this solution a workaround, i.e. actually something Err codemadness.org 70 i 61961 else is wrong, and has it tradeoff in other situations? Or otherwise, Err codemadness.org 70 i 61962 why is such a default value chosen, which appears to be ill-deceived?</p> Err codemadness.org 70 i 61963 Err codemadness.org 70 i 61964 <p>The docs for the quantum parameter are a bit unsatisfying - they say Err codemadness.org 70 i 61965 its the max num of ticks a process gets - and what happens when Err codemadness.org 70 i 61966 they're exhausted? If by default the endless loop is actually allowed Err codemadness.org 70 i 61967 to continue running for 94k ticks (or 94ms, more likely) uninterrupted, Err codemadness.org 70 i 61968 then that explains the perceived behaviour - buts thats certainly not Err codemadness.org 70 i 61969 what a scheduler should do when other procs are ready to run.</p> Err codemadness.org 70 i 61970 Err codemadness.org 70 i 61971 <p>11.1-RELEASE-p7, kern.hz=200. Switching tickless mode on or off does Err codemadness.org 70 i 61972 not influence the matter. Starting the endless loop with "nice" does Err codemadness.org 70 i 61973 not influence the matter.</p> Err codemadness.org 70 i 61974 Err codemadness.org 70 i 61975 <p>[1] Err codemadness.org 70 i 61976 A pure-I/O job without compute load, like "dd", does not show Err codemadness.org 70 i 61977 this behaviour. Also, when other tasks are running, the unjust Err codemadness.org 70 i 61978 behaviour is not so stongly pronounced. Err codemadness.org 70 i 61979 ```</p> Err codemadness.org 70 i 61980 Err codemadness.org 70 i 61981 <hr /> Err codemadness.org 70 i 61982 <h3><a href="https://mail-index.netbsd.org/port-arm/2018/04/01/msg004702.html">aarch64 support added</a></h3> Err codemadness.org 70 i 61983 Err codemadness.org 70 i 61984 <blockquote> Err codemadness.org 70 i 61985 <p>I have committed about adding initial support for aarch64.</p> Err codemadness.org 70 i 61986 </blockquote> Err codemadness.org 70 i 61987 Err codemadness.org 70 i 61988 <ul> Err codemadness.org 70 i 61989 <li>booting log on RaspberryPI3:</li> Err codemadness.org 70 i 61990 </ul> Err codemadness.org 70 i 61991 Err codemadness.org 70 i 61992 <p>``` Err codemadness.org 70 i 61993 boot NetBSD/evbarm (aarch64) Err codemadness.org 70 i 61994 Drop to EL1...OK Err codemadness.org 70 i 61995 Creating VA=PA tables Err codemadness.org 70 i 61996 Creating KSEG tables Err codemadness.org 70 i 61997 Creating KVA=PA tables Err codemadness.org 70 i 61998 Creating devmap tables Err codemadness.org 70 i 61999 MMU Enable...OK Err codemadness.org 70 i 62000 VSTART = ffffffc000001ff4 Err codemadness.org 70 i 62001 FDT&lt;3ab46000> devmap cpufunc bootstrap consinit ok Err codemadness.org 70 i 62002 uboot: args 0x3ab46000, 0, 0, 0</p> Err codemadness.org 70 i 62003 Err codemadness.org 70 i 62004 <pre><code>NetBSD/evbarm (fdt) booting ... Err codemadness.org 70 i 62005 FDT /memory [0] @ 0x0 size 0x3b000000 Err codemadness.org 70 i 62006 MEM: add 0-3b000000 Err codemadness.org 70 i 62007 MEM: res 0-1000 Err codemadness.org 70 i 62008 MEM: res 3ab46000-3ab4a000 Err codemadness.org 70 i 62009 Usable memory: Err codemadness.org 70 i 62010 1000 - 3ab45fff Err codemadness.org 70 i 62011 3ab4a000 - 3affffff Err codemadness.org 70 i 62012 initarm: kernel phys start 1000000 end 17bd000 Err codemadness.org 70 i 62013 MEM: res 1000000-17bd000 Err codemadness.org 70 i 62014 bootargs: root=axe0 Err codemadness.org 70 i 62015 1000 - ffffff Err codemadness.org 70 i 62016 17bd000 - 3ab45fff Err codemadness.org 70 i 62017 3ab4a000 - 3affffff Err codemadness.org 70 i 62018 ------------------------------------------ Err codemadness.org 70 i 62019 kern_vtopdiff = 0xffffffbfff000000 Err codemadness.org 70 i 62020 physical_start = 0x0000000000001000 Err codemadness.org 70 i 62021 kernel_start_phys = 0x0000000001000000 Err codemadness.org 70 i 62022 kernel_end_phys = 0x00000000017bd000 Err codemadness.org 70 i 62023 physical_end = 0x000000003ab45000 Err codemadness.org 70 i 62024 VM_MIN_KERNEL_ADDRESS = 0xffffffc000000000 Err codemadness.org 70 i 62025 kernel_start_l2 = 0xffffffc000000000 Err codemadness.org 70 i 62026 kernel_start = 0xffffffc000000000 Err codemadness.org 70 i 62027 kernel_end = 0xffffffc0007bd000 Err codemadness.org 70 i 62028 kernel_end_l2 = 0xffffffc000800000 Err codemadness.org 70 i 62029 (kernel va area) Err codemadness.org 70 i 62030 (devmap va area) Err codemadness.org 70 i 62031 VM_MAX_KERNEL_ADDRESS = 0xffffffffffe00000 Err codemadness.org 70 i 62032 ------------------------------------------ Err codemadness.org 70 i 62033 Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, Err codemadness.org 70 i 62034 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, Err codemadness.org 70 i 62035 2018 The NetBSD Foundation, Inc. All rights reserved. Err codemadness.org 70 i 62036 Copyright (c) 1982, 1986, 1989, 1991, 1993 Err codemadness.org 70 i 62037 The Regents of the University of California. All rights reserved. Err codemadness.org 70 i 62038 Err codemadness.org 70 i 62039 NetBSD 8.99.14 (RPI64) #11: Fri Mar 30 12:34:19 JST 2018 Err codemadness.org 70 i 62040 ryo@moveq:/usr/home/ryo/tmp/netbsd-src-ryo-wip/sys/arch/evbarm/compile/RPI64 Err codemadness.org 70 i 62041 total memory = 936 MB Err codemadness.org 70 i 62042 avail memory = 877 MB Err codemadness.org 70 i 62043 </code></pre> Err codemadness.org 70 i 62044 Err codemadness.org 70 i 62045 <p>…</p> Err codemadness.org 70 i 62046 Err codemadness.org 70 i 62047 <pre><code>Starting local daemons:. Err codemadness.org 70 i 62048 Updating motd. Err codemadness.org 70 i 62049 Starting sshd. Err codemadness.org 70 i 62050 Starting inetd. Err codemadness.org 70 i 62051 Starting cron. Err codemadness.org 70 i 62052 The following components reported failures: Err codemadness.org 70 i 62053 /etc/rc.d/swap2 Err codemadness.org 70 i 62054 See /var/run/rc.log for more information. Err codemadness.org 70 i 62055 Fri Mar 30 12:35:31 JST 2018 Err codemadness.org 70 i 62056 Err codemadness.org 70 i 62057 NetBSD/evbarm (rpi3) (console) Err codemadness.org 70 i 62058 Err codemadness.org 70 i 62059 login: root Err codemadness.org 70 i 62060 Last login: Fri Mar 30 12:30:24 2018 on console Err codemadness.org 70 i 62061 Err codemadness.org 70 i 62062 rpi3# uname -ap Err codemadness.org 70 i 62063 NetBSD rpi3 8.99.14 NetBSD 8.99.14 (RPI64) #11: Fri Mar 30 12:34:19 JST 2018 ryo@moveq:/usr/home/ryo/tmp/netbsd-src-ryo-wip/sys/arch/evbarm/compile/RPI64 evbarm aarch64 Err codemadness.org 70 i 62064 rpi3# Err codemadness.org 70 i 62065 </code></pre> Err codemadness.org 70 i 62066 Err codemadness.org 70 i 62067 <p>```</p> Err codemadness.org 70 i 62068 Err codemadness.org 70 i 62069 <blockquote> Err codemadness.org 70 i 62070 <p>Now, multiuser mode works stably on fdt based boards (RPI3,SUNXI,TEGRA). But there are still some problems, more time is required for release. also SMP is not yet. See sys/arch/aarch64/aarch64/TODO for more detail. Especially the problems around TLS of rtld, and C++ stack unwindings are too difficult for me to solve, I give up and need someone's help (^o^)/ Since C++ doesn't work, ATF also doesn't work. If the ATF works, it will clarify more issues.</p> Err codemadness.org 70 i 62071 Err codemadness.org 70 i 62072 <p>sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. One evbarm/conf/GENERIC64 kernel binary supports all fdt (bcm2837,sunxi,tegra) based boards. While on 32bit, sys/arch/evbarm/conf/GENERIC will support all fdt based boards...but doesn't work yet. (WIP)</p> Err codemadness.org 70 i 62073 Err codemadness.org 70 i 62074 <p>My deepest appreciation goes to Tohru Nishimura (nisimura@) whose writes vector handlers, context switchings, and so on. and his comments and suggestions were innumerably valuable. I would also like to thank Nick Hudson (skrll@) and Jared McNeill (jmcneill@) whose added support FDT and integrated into evbarm. Finally, I would like to thank Matt Thomas (matt@) whose commited aarch64 Err codemadness.org 70 i 62075 toolchains and preliminary support for aarch64.</p> Err codemadness.org 70 i 62076 </blockquote> Err codemadness.org 70 i 62077 Err codemadness.org 70 i 62078 <hr /> Err codemadness.org 70 i 62079 <h2>Beastie Bits</h2> Err codemadness.org 70 i 62080 Err codemadness.org 70 i 62081 <ul> Err codemadness.org 70 i 62082 <li><a href="https://www.youtube.com/watch?v=hvuWI5hzD5U">5 Reasons to Use FreeBSD in 2018</a></li> Err codemadness.org 70 i 62083 <li><a href="https://twitter.com/johalun/status/983645780509712384">Rewriting Intel gigabit network driver in Rust</a></li> Err codemadness.org 70 i 62084 <li><a href="https://twitter.com/DLangille/status/983360090240684034">Recruiting to make Elastic Search on FreeBSD better</a></li> Err codemadness.org 70 i 62085 <li><a href="https://twitter.com/Tubsta/status/981058685219688448">Windows Server 2019 Preview, in bhyve on FreeBSD</a></li> Err codemadness.org 70 i 62086 <li><a href="https://blather.michaelwlucas.com/archives/3126">“SSH Mastery, 2nd ed” in hardcover</a></li> Err codemadness.org 70 i 62087 </ul> Err codemadness.org 70 i 62088 Err codemadness.org 70 i 62089 <hr /> Err codemadness.org 70 i 62090 <h2>Feedback/Questions</h2> Err codemadness.org 70 i 62091 Err codemadness.org 70 i 62092 <ul> Err codemadness.org 70 i 62093 <li>Jason - <a href="http://dpaste.com/0JN4V1K#wrap">ZFS Transfer option</a></li> Err codemadness.org 70 i 62094 <li>Luis - <a href="http://dpaste.com/3MH4QRF#wrap">ZFS Pools</a></li> Err codemadness.org 70 i 62095 <li><a href="https://clonos.tekroutine.com/">ClonOS </a></li> Err codemadness.org 70 i 62096 <li>Michael - <a href="http://dpaste.com/3MN5F74#wrap">Tech Conferences</a></li> Err codemadness.org 70 i 62097 <li>anonymous - <a href="http://dpaste.com/18J24QJ#wrap">BSD trash on removable drives</a></li> Err codemadness.org 70 i 62098 </ul> Err codemadness.org 70 i 62099 Err codemadness.org 70 i 62100 <hr /> Err codemadness.org 70 i 62101 <ul> Err codemadness.org 70 i 62102 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 62103 </ul> Err codemadness.org 70 i 62104 Err codemadness.org 70 i 62105 <hr /> Err codemadness.org 70 i 62106 Err codemadness.org 70 i 62107 BSD,DragonflyBSD,freebsd,guide,howto,Interview,NetBSD,OpenBSD,trueos,tutorial Err codemadness.org 70 i 62108 Err codemadness.org 70 i 62109 OpenBSD 6.3 and DragonflyBSD 5.2 are released, bug fix for disappearing files in OpenZFS on Linux (and only Linux), understanding the FreeBSD CPU scheduler, NetBSD on RPI3, thoughts on being a committer for 20 years, and 5 reasons to use FreeBSD in 2018.

Err codemadness.org 70 i 62110 Err codemadness.org 70 i 62111

Headlines

Err codemadness.org 70 i 62112 Err codemadness.org 70 i 62113

OpenBSD 6.3 released

Err codemadness.org 70 i 62114 Err codemadness.org 70 i 62115
    Err codemadness.org 70 i 62116
  • Punctual as ever, OpenBSD 6.3 has been releases with the following features/changes: Err codemadness.org 70 i 62117 Err codemadness.org 70 i 62118 Err codemadness.org 70 i 62119
    Err codemadness.org 70 i 62120 Improved HW support, including: Err codemadness.org 70 i 62121 SMP support on OpenBSD/arm64 platforms Err codemadness.org 70 i 62122 vmm/vmd improvements: Err codemadness.org 70 i 62123 IEEE 802.11 wireless stack improvements Err codemadness.org 70 i 62124 Generic network stack improvements Err codemadness.org 70 i 62125 Installer improvements Err codemadness.org 70 i 62126 Routing daemons and other userland network improvements Err codemadness.org 70 i 62127 Security improvements Err codemadness.org 70 i 62128 dhclient(8) improvements Err codemadness.org 70 i 62129 Assorted improvements Err codemadness.org 70 i 62130 OpenSMTPD 6.0.4 Err codemadness.org 70 i 62131 OpenSSH 7.7 Err codemadness.org 70 i 62132 LibreSSL 2.7.2
  • Err codemadness.org 70 i 62133
Err codemadness.org 70 i 62134
Err codemadness.org 70 i 62135 Err codemadness.org 70 i 62136 Err codemadness.org 70 i 62137

DragonFlyBSD 5.2 released

Err codemadness.org 70 i 62138 Err codemadness.org 70 i 62139 Err codemadness.org 70 i 62140 Err codemadness.org 70 i 62141
Err codemadness.org 70 i 62142

Big-ticket items Err codemadness.org 70 i 62143 Meltdown and Spectre mitigation support Err codemadness.org 70 i 62144 Meltdown isolation and spectre mitigation support added. Meltdown mitigation is automatically enabled for all Intel cpus. Spectre mitigation must be enabled manually via sysctl if desired, using sysctls machdep.spectremitigation and machdep.meltdownmitigation. Err codemadness.org 70 i 62145 HAMMER2 Err codemadness.org 70 i 62146 H2 has received a very large number of bug fixes and performance improvements. We can now recommend H2 as the default root filesystem in non-clustered mode. Err codemadness.org 70 i 62147 Clustered support is not yet available. Err codemadness.org 70 i 62148 ipfw Updates Err codemadness.org 70 i 62149 Implement state based "redirect", i.e. without using libalias. Err codemadness.org 70 i 62150 ipfw now supports all possible ICMP types. Err codemadness.org 70 i 62151 Fix ICMPMAXTYPE assumptions (now 40 as of this release). Err codemadness.org 70 i 62152 Improved graphics support Err codemadness.org 70 i 62153 The drm/i915 kernel driver has been updated to support Intel Coffeelake GPUs Err codemadness.org 70 i 62154 Add 24-bit pixel format support to the EFI frame buffer code. Err codemadness.org 70 i 62155 Significantly improve fbio support for the "scfb" XOrg driver. This allows EFI frame buffers to be used by X in situations where we do not otherwise support the GPU. Err codemadness.org 70 i 62156 Partly implement the FBIOBLANK ioctl for display powersaving. Err codemadness.org 70 i 62157 Syscons waits for drm modesetting at appropriate places, avoiding races. Err codemadness.org 70 i 62158 + For more details, check out the “All changes since DragonFly 5.0” section.

Err codemadness.org 70 i 62159
Err codemadness.org 70 i 62160 Err codemadness.org 70 i 62161
Err codemadness.org 70 i 62162 Err codemadness.org 70 i 62163 Err codemadness.org 70 i 62164 Err codemadness.org 70 i 62165 Err codemadness.org 70 i 62166 Err codemadness.org 70 i 62167 Err codemadness.org 70 i 62168

ZFS on Linux bug causes files to disappear

Err codemadness.org 70 i 62169 Err codemadness.org 70 i 62170
    Err codemadness.org 70 i 62171
  • A bug in ZoL 0.7.7 caused 0.7.8 to be released just 3 days after the release
  • Err codemadness.org 70 i 62172
  • The bug only impacts Linux, the change that caused the problem was not upstreamed yet, so does not impact ZFS on illumos, FreeBSD, OS X, or Windows
  • Err codemadness.org 70 i 62173
  • The bug can cause files being copied into a directory to not be properly linked to the directory, so they will no longer be listed in the contents of the directory
  • Err codemadness.org 70 i 62174
  • ZoL developers are working on a tool to allow you to recover the data, since no data was actually lost, the files were just not properly registered as part of the directory
  • Err codemadness.org 70 i 62175
  • The bug was introduced in a commit made in February, that attempted to improve performance of datasets created with the case insensitivity option. In an effort to improve performance, they introduced a limit to cap to give up (return ENOSPC) if growing the directory ZAP failed twice.
  • Err codemadness.org 70 i 62176
  • The ZAP is the key-value pair data structure that contains metadata for a directory, including a hash table of the files that are in a directory. When a directory has a large number of files, the ZAP is converted to a FatZAP, and additional space may need to be allocated as additional files are added. Err codemadness.org 70 i 62177 Err codemadness.org 70 i 62178 Err codemadness.org 70 i 62179
    Err codemadness.org 70 i 62180 Commit cc63068 caused ENOSPC error when copy a large amount of files between two directories. The reason is that the patch limits zap leaf expansion to 2 retries, and return ENOSPC when failed.
  • Err codemadness.org 70 i 62181
  • Finding the root cause of this issue was somewhat hampered by the fact that many people were not able to reproduce the issue. It turns out this was caused by an entirely unrelated change to GNU coreutils.
  • Err codemadness.org 70 i 62182
  • On later versions of GNU Coreutils, the files were returned in a sorted order, resulting in them hitting different buckets in the hash table, and not tripping the retry limit
  • Err codemadness.org 70 i 62183
  • Tools like rsync were unaffected, because they always sort the files before copying
  • Err codemadness.org 70 i 62184
  • If you did not see any ENOSPC errors, you were likely not impacted Err codemadness.org 70 i 62185 The intent for limiting retries is to prevent pointlessly growing table to max size when adding a block full of entries with same name in different case in mixed mode. However, it turns out we cannot use any limit on the retry. When we copy files from one directory in readdir order, we are copying in hash order, one leaf block at a time. Which means that if the leaf block in source directory has expanded 6 times, and you copy those entries in that block, by the time you need to expand the leaf in destination directory, you need to expand it 6 times in one go. So any limit on the retry will result in error where it shouldn't.
  • Err codemadness.org 70 i 62186
  • Recommendations for Users from Ryan Yao: Err codemadness.org 70 i 62187 The regression makes it so that creating a new file could fail with ENOSPC after which files created in that directory could become orphaned. Existing files seem okay, but I have yet to confirm that myself and I cannot speak for what others know. It is incredibly difficult to reproduce on systems running coreutils 8.23 or later. So far, reports have only come from people using coreutils 8.22 or older. The directory size actually gets incremented for each orphaned file, which makes it wrong after orphan files happen. Err codemadness.org 70 i 62188 We will likely have some way to recover the orphaned files (like ext4’s lost+found) and fix the directory sizes in the very near future. Snapshots of the damaged datasets are problematic though. Until we have a subcommand to fix it (not including the snapshots, which we would have to list), the damage can be removed from a system that has it either by rolling back to a snapshot before it happened or creating a new dataset with 0.7.6 (or another release other than 0.7.7), moving everything to the new dataset and destroying the old. That will restore things to pristine condition. Err codemadness.org 70 i 62189 It should also be possible to check for pools that are affected, but I have yet to finish my analysis to be certain that no false negatives occur when checking, so I will avoid saying how for now.
  • Err codemadness.org 70 i 62190
  • Writes to existing files cannot trigger this bug, only adding new files to a directory in bulk
  • Err codemadness.org 70 i 62191
Err codemadness.org 70 i 62192
Err codemadness.org 70 i 62193 Err codemadness.org 70 i 62194 Err codemadness.org 70 i 62195

News Roundup

Err codemadness.org 70 i 62196 Err codemadness.org 70 i 62197 Err codemadness.org 70 i 62198 Err codemadness.org 70 i 62199

des@’s thoughts on being a FreeBSD committer for 20 years

Err codemadness.org 70 i 62200 Err codemadness.org 70 i 62201 Err codemadness.org 70 i 62202 Err codemadness.org 70 i 62203
Err codemadness.org 70 i 62204

Yesterday was the twentieth anniversary of my FreeBSD commit bit, and tomorrow will be the twentieth anniversary of my first commit. I figured I’d split the difference and write a few words about it today.

Err codemadness.org 70 i 62205 Err codemadness.org 70 i 62206

My level of engagement with the FreeBSD project has varied greatly over the twenty years I’ve been a committer. There have been times when I worked on it full-time, and times when I did not touch it for months. The last few years, health issues and life events have consumed my time and sapped my energy, and my contributions have come in bursts. Commit statistics do not tell the whole story, though: even when not working on FreeBSD directly, I have worked on side projects which, like OpenPAM, may one day find their way into FreeBSD.

Err codemadness.org 70 i 62207 Err codemadness.org 70 i 62208

My contributions have not been limited to code. I was the project’s first Bugmeister; I’ve served on the Security Team for a long time, and have been both Security Officer and Deputy Security Officer; I managed the last four Core Team elections and am doing so again this year.

Err codemadness.org 70 i 62209 Err codemadness.org 70 i 62210

In return, the project has taught me much about programming and software engineering. It taught me code hygiene and the importance of clarity over cleverness; it taught me the ins and outs of revision control; it taught me the importance of good documentation, and how to write it; and it taught me good release engineering practices.

Err codemadness.org 70 i 62211 Err codemadness.org 70 i 62212

Last but not least, it has provided me with the opportunity to work with some of the best people in the field. I have the privilege today to count several of them among my friends.

Err codemadness.org 70 i 62213 Err codemadness.org 70 i 62214

For better or worse, the FreeBSD project has shaped my career and my life. It set me on the path to information security in general and IAA in particular, and opened many a door for me. I would not be where I am now without it.

Err codemadness.org 70 i 62215 Err codemadness.org 70 i 62216

I won’t pretend to be able to tell the future. I don’t know how long I will remain active in the FreeBSD project and community. It could be another twenty years; or it could be ten, or five, or less. All I know is that FreeBSD and I still have things to teach each other, and I don’t intend to call it quits any time soon.

Err codemadness.org 70 i 62217
Err codemadness.org 70 i 62218 Err codemadness.org 70 i 62219
Err codemadness.org 70 i 62220 Err codemadness.org 70 i 62221 Err codemadness.org 70 i 62222 Err codemadness.org 70 i 62223 Err codemadness.org 70 i 62224 Err codemadness.org 70 i 62225 Err codemadness.org 70 i 62226

iXsystems unveils new TrueNAS M-Series Unified Storage Line

Err codemadness.org 70 i 62227 Err codemadness.org 70 i 62228 Err codemadness.org 70 i 62229 Err codemadness.org 70 i 62230
Err codemadness.org 70 i 62231

San Jose, Calif., April 10, 2018 — iXsystems, the leader in Enterprise Open Source servers and software-defined storage, announced the TrueNAS M40 and M50 as the newest high-performance models in its hybrid, unified storage product line. The TrueNAS M-Series harnesses NVMe and NVDIMM to bring all-flash array performance to the award-winning TrueNAS hybrid arrays. It also includes the Intel® Xeon® Scalable Family of Processors and supports up to 100GbE and 32Gb Fibre Channel networking. Sitting between the all-flash TrueNAS Z50 and the hybrid TrueNAS X-Series in the product line, the TrueNAS M-Series delivers up to 10 Petabytes of highly-available and flash-powered network attached storage and rounds out a comprehensive product set that has a capacity and performance option for every storage budget.

Err codemadness.org 70 i 62232
Err codemadness.org 70 i 62233 Err codemadness.org 70 i 62234
    Err codemadness.org 70 i 62235
  • Designed for On-Premises & Enterprise Cloud Environments
  • Err codemadness.org 70 i 62236
Err codemadness.org 70 i 62237 Err codemadness.org 70 i 62238
Err codemadness.org 70 i 62239

As a unified file, block, and object sharing solution, TrueNAS can meet the needs of file serving, backup, virtualization, media production, and private cloud users thanks to its support for the SMB, NFS, AFP, iSCSI, Fibre Channel, and S3 protocols.

Err codemadness.org 70 i 62240 Err codemadness.org 70 i 62241

At the heart of the TrueNAS M-Series is a custom 4U, dual-controller head unit that supports up to 24 3.5” drives and comes in two models, the M40 and M50, for maximum flexibility and scalability. The TrueNAS M40 uses NVDIMMs for write cache, SSDs for read cache, and up to two external 60-bay expansion shelves that unlock up to 2PB in capacity. The TrueNAS M50 uses NVDIMMs for write caching, NVMe drives for read caching, and up to twelve external 60-bay expansion shelves to scale upwards of 10PB. The dual-controller design provides high-availability failover and non-disruptive upgrades for mission-critical enterprise environments.

Err codemadness.org 70 i 62242 Err codemadness.org 70 i 62243

By design, the TrueNAS M-Series unleashes cutting-edge persistent memory technology for demanding performance and capacity workloads, enabling businesses to accelerate enterprise applications and deploy enterprise private clouds that are twice the capacity of previous TrueNAS models. It also supports replication to the Amazon S3, BackBlaze B2, Google Cloud, and Microsoft Azure cloud platforms and can deliver an object store using the ubiquitous S3 object storage protocol at a fraction of the cost of the public cloud.

Err codemadness.org 70 i 62244
Err codemadness.org 70 i 62245 Err codemadness.org 70 i 62246
    Err codemadness.org 70 i 62247
  • Fast
  • Err codemadness.org 70 i 62248
Err codemadness.org 70 i 62249 Err codemadness.org 70 i 62250
Err codemadness.org 70 i 62251

As a true enterprise storage platform, the TrueNAS M50 supports very demanding performance workloads with up to four active 100GbE ports, 3TB of RAM, 32GB of NVDIMM write cache and up to 15TB of NVMe flash read cache. The TrueNAS M40 and M50 include up to 24/7 and global next-business-day support, putting IT at ease. The modular and tool-less design of the M-Series allows for easy, non-disruptive servicing and upgrading by end-users and support technicians for guaranteed uptime. TrueNAS has US-Based support provided by the engineering team that developed it, offering the rapid response that every enterprise needs.

Err codemadness.org 70 i 62252
Err codemadness.org 70 i 62253 Err codemadness.org 70 i 62254
    Err codemadness.org 70 i 62255
  • Award-Winning TrueNAS Features

    Err codemadness.org 70 i 62256 Err codemadness.org 70 i 62257
    • Enterprise: Perfectly suited for private clouds and enterprise workloads such as file sharing, backups, M&E, surveillance, and hosting virtual machines.
    • Err codemadness.org 70 i 62258
    • Unified: Utilizes SMB, AFP, NFS for file storage, iSCSI, Fibre Channel and OpenStack Cinder for block storage, and S3-compatible APIs for object storage. Supports every common operating system, hypervisor, and application.
    • Err codemadness.org 70 i 62259
    • Economical: Deploy an enterprise private cloud and reduce storage TCO by 70% over AWS with built-in enterprise-class features such as in-line compression, deduplication, clones, and thin-provisioning.
    • Err codemadness.org 70 i 62260
    • Safe: The OpenZFS file system ensures data integrity with best-in-class replication and snapshotting. Customers can replicate data to the rest of the iXsystems storage lineup and to the public cloud.
    • Err codemadness.org 70 i 62261
    • Reliable: High Availability option with dual hot-swappable controllers for continuous data availability and 99.999% uptime.
    • Err codemadness.org 70 i 62262
    • Familiar: Provision and manage storage with the same simple and powerful WebUI and REST APIs used in all iXsystems storage products, as well as iXsystems’ FreeNAS Software.
    • Err codemadness.org 70 i 62263
    • Certified: TrueNAS has passed the Citrix Ready, VMware Ready, and Veeam Ready certifications, reducing the risk of deploying a virtualized infrastructure.
    • Err codemadness.org 70 i 62264
    • Open: By using industry-standard sharing protocols, the OpenZFS Open Source enterprise file system and FreeNAS, the world’s #1 Open Source storage operating system (and also engineered by iXsystems), TrueNAS is the most open enterprise storage solution on the market.
  • Err codemadness.org 70 i 62265
  • Availability

  • Err codemadness.org 70 i 62266
Err codemadness.org 70 i 62267 Err codemadness.org 70 i 62268
Err codemadness.org 70 i 62269

The TrueNAS M40 and M50 will be generally available in April 2018 through the iXsystems global channel partner network. The TrueNAS M-Series starts at under $20,000 USD and can be easily expanded using a linear “per terabyte” pricing model. With typical compression, a Petabtye can be stored for under $100,000 USD. TrueNAS comes with an all-inclusive software suite that provides NFS, Windows SMB, iSCSI, snapshots, clones and replication.

Err codemadness.org 70 i 62270
Err codemadness.org 70 i 62271 Err codemadness.org 70 i 62272
    Err codemadness.org 70 i 62273
  • For more information, visit www.ixsystems.com/TrueNAS
  • Err codemadness.org 70 i 62274
  • TrueNAS M-Series What's New Video
  • Err codemadness.org 70 i 62275
Err codemadness.org 70 i 62276 Err codemadness.org 70 i 62277


Err codemadness.org 70 i 62278 Err codemadness.org 70 i 62279

Understanding and tuning the FreeBSD Scheduler

Err codemadness.org 70 i 62280 Err codemadness.org 70 i 62281

``` Err codemadness.org 70 i 62282 Occasionally I noticed that the system would not quickly process the Err codemadness.org 70 i 62283 tasks i need done, but instead prefer other, longrunning tasks. I Err codemadness.org 70 i 62284 figured it must be related to the scheduler, and decided it hates me.

Err codemadness.org 70 i 62285 Err codemadness.org 70 i 62286

A closer look shows the behaviour as follows (single CPU):

Err codemadness.org 70 i 62287 Err codemadness.org 70 i 62288

Lets run an I/O-active task, e.g, postgres VACUUM that would Err codemadness.org 70 i 62289 continuously read from big files (while doing compute as well [1]):

Err codemadness.org 70 i 62290 Err codemadness.org 70 i 62291
Err codemadness.org 70 i 62292

pool alloc free read write read write Err codemadness.org 70 i 62293 cache - - - - - - Err codemadness.org 70 i 62294 ada1s4 7.08G 10.9G 1.58K 0 12.9M 0

Err codemadness.org 70 i 62295
Err codemadness.org 70 i 62296 Err codemadness.org 70 i 62297

Now start an endless loop:

Err codemadness.org 70 i 62298 Err codemadness.org 70 i 62299

while true; do :; done

Err codemadness.org 70 i 62300 Err codemadness.org 70 i 62301

And the effect is:

Err codemadness.org 70 i 62302 Err codemadness.org 70 i 62303
Err codemadness.org 70 i 62304

pool alloc free read write read write Err codemadness.org 70 i 62305 cache - - - - - - Err codemadness.org 70 i 62306 ada1s4 7.08G 10.9G 9 0 76.8K 0

Err codemadness.org 70 i 62307
Err codemadness.org 70 i 62308 Err codemadness.org 70 i 62309

The VACUUM gets almost stuck! This figures with WCPU in "top":

Err codemadness.org 70 i 62310 Err codemadness.org 70 i 62311
Err codemadness.org 70 i 62312

PID USERNAME PRI NICE SIZE RES STATE TIME WCPU COMMAND Err codemadness.org 70 i 62313 85583 root 99 0 7044K 1944K RUN 1:06 92.21% bash Err codemadness.org 70 i 62314 53005 pgsql 52 0 620M 91856K RUN 5:47 0.50% postgres

Err codemadness.org 70 i 62315
Err codemadness.org 70 i 62316 Err codemadness.org 70 i 62317

Hacking on kern.sched.quantum makes it quite a bit better:

Err codemadness.org 70 i 62318 Err codemadness.org 70 i 62319

sysctl kern.sched.quantum=1

Err codemadness.org 70 i 62320 Err codemadness.org 70 i 62321

kern.sched.quantum: 94488 -> 7874

Err codemadness.org 70 i 62322 Err codemadness.org 70 i 62323
Err codemadness.org 70 i 62324

pool alloc free read write read write Err codemadness.org 70 i 62325 cache - - - - - - Err codemadness.org 70 i 62326 ada1s4 7.08G 10.9G 395 0 3.12M 0

Err codemadness.org 70 i 62327 Err codemadness.org 70 i 62328

PID USERNAME PRI NICE SIZE RES STATE TIME WCPU COMMAND Err codemadness.org 70 i 62329 85583 root 94 0 7044K 1944K RUN 4:13 70.80% bash Err codemadness.org 70 i 62330 53005 pgsql 52 0 276M 91856K RUN 5:52 11.83% postgres

Err codemadness.org 70 i 62331
Err codemadness.org 70 i 62332 Err codemadness.org 70 i 62333

Now, as usual, the "root-cause" questions arise: What exactly does Err codemadness.org 70 i 62334 this "quantum"? Is this solution a workaround, i.e. actually something Err codemadness.org 70 i 62335 else is wrong, and has it tradeoff in other situations? Or otherwise, Err codemadness.org 70 i 62336 why is such a default value chosen, which appears to be ill-deceived?

Err codemadness.org 70 i 62337 Err codemadness.org 70 i 62338

The docs for the quantum parameter are a bit unsatisfying - they say Err codemadness.org 70 i 62339 its the max num of ticks a process gets - and what happens when Err codemadness.org 70 i 62340 they're exhausted? If by default the endless loop is actually allowed Err codemadness.org 70 i 62341 to continue running for 94k ticks (or 94ms, more likely) uninterrupted, Err codemadness.org 70 i 62342 then that explains the perceived behaviour - buts thats certainly not Err codemadness.org 70 i 62343 what a scheduler should do when other procs are ready to run.

Err codemadness.org 70 i 62344 Err codemadness.org 70 i 62345

11.1-RELEASE-p7, kern.hz=200. Switching tickless mode on or off does Err codemadness.org 70 i 62346 not influence the matter. Starting the endless loop with "nice" does Err codemadness.org 70 i 62347 not influence the matter.

Err codemadness.org 70 i 62348 Err codemadness.org 70 i 62349

[1] Err codemadness.org 70 i 62350 A pure-I/O job without compute load, like "dd", does not show Err codemadness.org 70 i 62351 this behaviour. Also, when other tasks are running, the unjust Err codemadness.org 70 i 62352 behaviour is not so stongly pronounced. Err codemadness.org 70 i 62353 ```

Err codemadness.org 70 i 62354 Err codemadness.org 70 i 62355


Err codemadness.org 70 i 62356 Err codemadness.org 70 i 62357

aarch64 support added

Err codemadness.org 70 i 62358 Err codemadness.org 70 i 62359
Err codemadness.org 70 i 62360

I have committed about adding initial support for aarch64.

Err codemadness.org 70 i 62361
Err codemadness.org 70 i 62362 Err codemadness.org 70 i 62363
    Err codemadness.org 70 i 62364
  • booting log on RaspberryPI3:
  • Err codemadness.org 70 i 62365
Err codemadness.org 70 i 62366 Err codemadness.org 70 i 62367

``` Err codemadness.org 70 i 62368 boot NetBSD/evbarm (aarch64) Err codemadness.org 70 i 62369 Drop to EL1...OK Err codemadness.org 70 i 62370 Creating VA=PA tables Err codemadness.org 70 i 62371 Creating KSEG tables Err codemadness.org 70 i 62372 Creating KVA=PA tables Err codemadness.org 70 i 62373 Creating devmap tables Err codemadness.org 70 i 62374 MMU Enable...OK Err codemadness.org 70 i 62375 VSTART = ffffffc000001ff4 Err codemadness.org 70 i 62376 FDT<3ab46000> devmap cpufunc bootstrap consinit ok Err codemadness.org 70 i 62377 uboot: args 0x3ab46000, 0, 0, 0

Err codemadness.org 70 i 62378 Err codemadness.org 70 i 62379
NetBSD/evbarm (fdt) booting ...	Err	codemadness.org	70
i 62380 FDT /memory [0] @ 0x0 size 0x3b000000	Err	codemadness.org	70
i 62381 MEM: add 0-3b000000	Err	codemadness.org	70
i 62382 MEM: res 0-1000	Err	codemadness.org	70
i 62383 MEM: res 3ab46000-3ab4a000	Err	codemadness.org	70
i 62384 Usable memory:	Err	codemadness.org	70
i 62385   1000 - 3ab45fff	Err	codemadness.org	70
i 62386   3ab4a000 - 3affffff	Err	codemadness.org	70
i 62387 initarm: kernel phys start 1000000 end 17bd000	Err	codemadness.org	70
i 62388 MEM: res 1000000-17bd000	Err	codemadness.org	70
i 62389 bootargs: root=axe0	Err	codemadness.org	70
i 62390   1000 - ffffff	Err	codemadness.org	70
i 62391   17bd000 - 3ab45fff	Err	codemadness.org	70
i 62392   3ab4a000 - 3affffff	Err	codemadness.org	70
i 62393 ------------------------------------------	Err	codemadness.org	70
i 62394 kern_vtopdiff         = 0xffffffbfff000000	Err	codemadness.org	70
i 62395 physical_start        = 0x0000000000001000	Err	codemadness.org	70
i 62396 kernel_start_phys     = 0x0000000001000000	Err	codemadness.org	70
i 62397 kernel_end_phys       = 0x00000000017bd000	Err	codemadness.org	70
i 62398 physical_end          = 0x000000003ab45000	Err	codemadness.org	70
i 62399 VM_MIN_KERNEL_ADDRESS = 0xffffffc000000000	Err	codemadness.org	70
i 62400 kernel_start_l2       = 0xffffffc000000000	Err	codemadness.org	70
i 62401 kernel_start          = 0xffffffc000000000	Err	codemadness.org	70
i 62402 kernel_end            = 0xffffffc0007bd000	Err	codemadness.org	70
i 62403 kernel_end_l2         = 0xffffffc000800000	Err	codemadness.org	70
i 62404 (kernel va area)	Err	codemadness.org	70
i 62405 (devmap va area)	Err	codemadness.org	70
i 62406 VM_MAX_KERNEL_ADDRESS = 0xffffffffffe00000	Err	codemadness.org	70
i 62407 ------------------------------------------	Err	codemadness.org	70
i 62408 Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,	Err	codemadness.org	70
i 62409     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,	Err	codemadness.org	70
i 62410     2018 The NetBSD Foundation, Inc.  All rights reserved.	Err	codemadness.org	70
i 62411 Copyright (c) 1982, 1986, 1989, 1991, 1993	Err	codemadness.org	70
i 62412     The Regents of the University of California.  All rights reserved.	Err	codemadness.org	70
i 62413 	Err	codemadness.org	70
i 62414 NetBSD 8.99.14 (RPI64) #11: Fri Mar 30 12:34:19 JST 2018	Err	codemadness.org	70
i 62415         ryo@moveq:/usr/home/ryo/tmp/netbsd-src-ryo-wip/sys/arch/evbarm/compile/RPI64	Err	codemadness.org	70
i 62416 total memory = 936 MB	Err	codemadness.org	70
i 62417 avail memory = 877 MB	Err	codemadness.org	70
i 62418 
Err codemadness.org 70 i 62419 Err codemadness.org 70 i 62420

Err codemadness.org 70 i 62421 Err codemadness.org 70 i 62422
Starting local daemons:.	Err	codemadness.org	70
i 62423 Updating motd.	Err	codemadness.org	70
i 62424 Starting sshd.	Err	codemadness.org	70
i 62425 Starting inetd.	Err	codemadness.org	70
i 62426 Starting cron.	Err	codemadness.org	70
i 62427 The following components reported failures:	Err	codemadness.org	70
i 62428     /etc/rc.d/swap2	Err	codemadness.org	70
i 62429 See /var/run/rc.log for more information.	Err	codemadness.org	70
i 62430 Fri Mar 30 12:35:31 JST 2018	Err	codemadness.org	70
i 62431 	Err	codemadness.org	70
i 62432 NetBSD/evbarm (rpi3) (console)	Err	codemadness.org	70
i 62433 	Err	codemadness.org	70
i 62434 login: root	Err	codemadness.org	70
i 62435 Last login: Fri Mar 30 12:30:24 2018 on console	Err	codemadness.org	70
i 62436 	Err	codemadness.org	70
i 62437 rpi3# uname -ap	Err	codemadness.org	70
i 62438 NetBSD rpi3 8.99.14 NetBSD 8.99.14 (RPI64) #11: Fri Mar 30 12:34:19 JST 2018  ryo@moveq:/usr/home/ryo/tmp/netbsd-src-ryo-wip/sys/arch/evbarm/compile/RPI64 evbarm aarch64	Err	codemadness.org	70
i 62439 rpi3#	Err	codemadness.org	70
i 62440 
Err codemadness.org 70 i 62441 Err codemadness.org 70 i 62442

```

Err codemadness.org 70 i 62443 Err codemadness.org 70 i 62444
Err codemadness.org 70 i 62445

Now, multiuser mode works stably on fdt based boards (RPI3,SUNXI,TEGRA). But there are still some problems, more time is required for release. also SMP is not yet. See sys/arch/aarch64/aarch64/TODO for more detail. Especially the problems around TLS of rtld, and C++ stack unwindings are too difficult for me to solve, I give up and need someone's help (^o^)/ Since C++ doesn't work, ATF also doesn't work. If the ATF works, it will clarify more issues.

Err codemadness.org 70 i 62446 Err codemadness.org 70 i 62447

sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. One evbarm/conf/GENERIC64 kernel binary supports all fdt (bcm2837,sunxi,tegra) based boards. While on 32bit, sys/arch/evbarm/conf/GENERIC will support all fdt based boards...but doesn't work yet. (WIP)

Err codemadness.org 70 i 62448 Err codemadness.org 70 i 62449

My deepest appreciation goes to Tohru Nishimura (nisimura@) whose writes vector handlers, context switchings, and so on. and his comments and suggestions were innumerably valuable. I would also like to thank Nick Hudson (skrll@) and Jared McNeill (jmcneill@) whose added support FDT and integrated into evbarm. Finally, I would like to thank Matt Thomas (matt@) whose commited aarch64 Err codemadness.org 70 i 62450 toolchains and preliminary support for aarch64.

Err codemadness.org 70 i 62451
Err codemadness.org 70 i 62452 Err codemadness.org 70 i 62453


Err codemadness.org 70 i 62454 Err codemadness.org 70 i 62455

Beastie Bits

Err codemadness.org 70 i 62456 Err codemadness.org 70 i 62457 Err codemadness.org 70 i 62464 Err codemadness.org 70 i 62465


Err codemadness.org 70 i 62466 Err codemadness.org 70 i 62467

Feedback/Questions

Err codemadness.org 70 i 62468 Err codemadness.org 70 i 62469 Err codemadness.org 70 i 62476 Err codemadness.org 70 i 62477


Err codemadness.org 70 i 62478 Err codemadness.org 70 i 62479
    Err codemadness.org 70 i 62480
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 62481
Err codemadness.org 70 i 62482 Err codemadness.org 70 i 62483


]]> Err codemadness.org 70 i 62484
Err codemadness.org 70 i 62485 Err codemadness.org 70 i 62486 OpenBSD 6.3 and DragonflyBSD 5.2 are released, bug fix for disappearing files in OpenZFS on Linux (and only Linux), understanding the FreeBSD CPU scheduler, NetBSD on RPI3, thoughts on being a committer for 20 years, and 5 reasons to use FreeBSD in 2018.

Err codemadness.org 70 i 62487 Err codemadness.org 70 i 62488

Headlines

Err codemadness.org 70 i 62489 Err codemadness.org 70 i 62490

OpenBSD 6.3 released

Err codemadness.org 70 i 62491 Err codemadness.org 70 i 62492
    Err codemadness.org 70 i 62493
  • Punctual as ever, OpenBSD 6.3 has been releases with the following features/changes: Err codemadness.org 70 i 62494 Err codemadness.org 70 i 62495 Err codemadness.org 70 i 62496
    Err codemadness.org 70 i 62497 Improved HW support, including: Err codemadness.org 70 i 62498 SMP support on OpenBSD/arm64 platforms Err codemadness.org 70 i 62499 vmm/vmd improvements: Err codemadness.org 70 i 62500 IEEE 802.11 wireless stack improvements Err codemadness.org 70 i 62501 Generic network stack improvements Err codemadness.org 70 i 62502 Installer improvements Err codemadness.org 70 i 62503 Routing daemons and other userland network improvements Err codemadness.org 70 i 62504 Security improvements Err codemadness.org 70 i 62505 dhclient(8) improvements Err codemadness.org 70 i 62506 Assorted improvements Err codemadness.org 70 i 62507 OpenSMTPD 6.0.4 Err codemadness.org 70 i 62508 OpenSSH 7.7 Err codemadness.org 70 i 62509 LibreSSL 2.7.2
  • Err codemadness.org 70 i 62510
Err codemadness.org 70 i 62511
Err codemadness.org 70 i 62512 Err codemadness.org 70 i 62513 Err codemadness.org 70 i 62514

DragonFlyBSD 5.2 released

Err codemadness.org 70 i 62515 Err codemadness.org 70 i 62516 Err codemadness.org 70 i 62517 Err codemadness.org 70 i 62518
Err codemadness.org 70 i 62519

Big-ticket items Err codemadness.org 70 i 62520 Meltdown and Spectre mitigation support Err codemadness.org 70 i 62521 Meltdown isolation and spectre mitigation support added. Meltdown mitigation is automatically enabled for all Intel cpus. Spectre mitigation must be enabled manually via sysctl if desired, using sysctls machdep.spectremitigation and machdep.meltdownmitigation. Err codemadness.org 70 i 62522 HAMMER2 Err codemadness.org 70 i 62523 H2 has received a very large number of bug fixes and performance improvements. We can now recommend H2 as the default root filesystem in non-clustered mode. Err codemadness.org 70 i 62524 Clustered support is not yet available. Err codemadness.org 70 i 62525 ipfw Updates Err codemadness.org 70 i 62526 Implement state based "redirect", i.e. without using libalias. Err codemadness.org 70 i 62527 ipfw now supports all possible ICMP types. Err codemadness.org 70 i 62528 Fix ICMPMAXTYPE assumptions (now 40 as of this release). Err codemadness.org 70 i 62529 Improved graphics support Err codemadness.org 70 i 62530 The drm/i915 kernel driver has been updated to support Intel Coffeelake GPUs Err codemadness.org 70 i 62531 Add 24-bit pixel format support to the EFI frame buffer code. Err codemadness.org 70 i 62532 Significantly improve fbio support for the "scfb" XOrg driver. This allows EFI frame buffers to be used by X in situations where we do not otherwise support the GPU. Err codemadness.org 70 i 62533 Partly implement the FBIOBLANK ioctl for display powersaving. Err codemadness.org 70 i 62534 Syscons waits for drm modesetting at appropriate places, avoiding races. Err codemadness.org 70 i 62535 + For more details, check out the “All changes since DragonFly 5.0” section.

Err codemadness.org 70 i 62536
Err codemadness.org 70 i 62537 Err codemadness.org 70 i 62538
Err codemadness.org 70 i 62539 Err codemadness.org 70 i 62540 Err codemadness.org 70 i 62541 Err codemadness.org 70 i 62542 Err codemadness.org 70 i 62543 Err codemadness.org 70 i 62544 Err codemadness.org 70 i 62545

ZFS on Linux bug causes files to disappear

Err codemadness.org 70 i 62546 Err codemadness.org 70 i 62547
    Err codemadness.org 70 i 62548
  • A bug in ZoL 0.7.7 caused 0.7.8 to be released just 3 days after the release
  • Err codemadness.org 70 i 62549
  • The bug only impacts Linux, the change that caused the problem was not upstreamed yet, so does not impact ZFS on illumos, FreeBSD, OS X, or Windows
  • Err codemadness.org 70 i 62550
  • The bug can cause files being copied into a directory to not be properly linked to the directory, so they will no longer be listed in the contents of the directory
  • Err codemadness.org 70 i 62551
  • ZoL developers are working on a tool to allow you to recover the data, since no data was actually lost, the files were just not properly registered as part of the directory
  • Err codemadness.org 70 i 62552
  • The bug was introduced in a commit made in February, that attempted to improve performance of datasets created with the case insensitivity option. In an effort to improve performance, they introduced a limit to cap to give up (return ENOSPC) if growing the directory ZAP failed twice.
  • Err codemadness.org 70 i 62553
  • The ZAP is the key-value pair data structure that contains metadata for a directory, including a hash table of the files that are in a directory. When a directory has a large number of files, the ZAP is converted to a FatZAP, and additional space may need to be allocated as additional files are added. Err codemadness.org 70 i 62554 Err codemadness.org 70 i 62555 Err codemadness.org 70 i 62556
    Err codemadness.org 70 i 62557 Commit cc63068 caused ENOSPC error when copy a large amount of files between two directories. The reason is that the patch limits zap leaf expansion to 2 retries, and return ENOSPC when failed.
  • Err codemadness.org 70 i 62558
  • Finding the root cause of this issue was somewhat hampered by the fact that many people were not able to reproduce the issue. It turns out this was caused by an entirely unrelated change to GNU coreutils.
  • Err codemadness.org 70 i 62559
  • On later versions of GNU Coreutils, the files were returned in a sorted order, resulting in them hitting different buckets in the hash table, and not tripping the retry limit
  • Err codemadness.org 70 i 62560
  • Tools like rsync were unaffected, because they always sort the files before copying
  • Err codemadness.org 70 i 62561
  • If you did not see any ENOSPC errors, you were likely not impacted Err codemadness.org 70 i 62562 The intent for limiting retries is to prevent pointlessly growing table to max size when adding a block full of entries with same name in different case in mixed mode. However, it turns out we cannot use any limit on the retry. When we copy files from one directory in readdir order, we are copying in hash order, one leaf block at a time. Which means that if the leaf block in source directory has expanded 6 times, and you copy those entries in that block, by the time you need to expand the leaf in destination directory, you need to expand it 6 times in one go. So any limit on the retry will result in error where it shouldn't.
  • Err codemadness.org 70 i 62563
  • Recommendations for Users from Ryan Yao: Err codemadness.org 70 i 62564 The regression makes it so that creating a new file could fail with ENOSPC after which files created in that directory could become orphaned. Existing files seem okay, but I have yet to confirm that myself and I cannot speak for what others know. It is incredibly difficult to reproduce on systems running coreutils 8.23 or later. So far, reports have only come from people using coreutils 8.22 or older. The directory size actually gets incremented for each orphaned file, which makes it wrong after orphan files happen. Err codemadness.org 70 i 62565 We will likely have some way to recover the orphaned files (like ext4’s lost+found) and fix the directory sizes in the very near future. Snapshots of the damaged datasets are problematic though. Until we have a subcommand to fix it (not including the snapshots, which we would have to list), the damage can be removed from a system that has it either by rolling back to a snapshot before it happened or creating a new dataset with 0.7.6 (or another release other than 0.7.7), moving everything to the new dataset and destroying the old. That will restore things to pristine condition. Err codemadness.org 70 i 62566 It should also be possible to check for pools that are affected, but I have yet to finish my analysis to be certain that no false negatives occur when checking, so I will avoid saying how for now.
  • Err codemadness.org 70 i 62567
  • Writes to existing files cannot trigger this bug, only adding new files to a directory in bulk
  • Err codemadness.org 70 i 62568
Err codemadness.org 70 i 62569
Err codemadness.org 70 i 62570 Err codemadness.org 70 i 62571 Err codemadness.org 70 i 62572

News Roundup

Err codemadness.org 70 i 62573 Err codemadness.org 70 i 62574 Err codemadness.org 70 i 62575 Err codemadness.org 70 i 62576

des@’s thoughts on being a FreeBSD committer for 20 years

Err codemadness.org 70 i 62577 Err codemadness.org 70 i 62578 Err codemadness.org 70 i 62579 Err codemadness.org 70 i 62580
Err codemadness.org 70 i 62581

Yesterday was the twentieth anniversary of my FreeBSD commit bit, and tomorrow will be the twentieth anniversary of my first commit. I figured I’d split the difference and write a few words about it today.

Err codemadness.org 70 i 62582 Err codemadness.org 70 i 62583

My level of engagement with the FreeBSD project has varied greatly over the twenty years I’ve been a committer. There have been times when I worked on it full-time, and times when I did not touch it for months. The last few years, health issues and life events have consumed my time and sapped my energy, and my contributions have come in bursts. Commit statistics do not tell the whole story, though: even when not working on FreeBSD directly, I have worked on side projects which, like OpenPAM, may one day find their way into FreeBSD.

Err codemadness.org 70 i 62584 Err codemadness.org 70 i 62585

My contributions have not been limited to code. I was the project’s first Bugmeister; I’ve served on the Security Team for a long time, and have been both Security Officer and Deputy Security Officer; I managed the last four Core Team elections and am doing so again this year.

Err codemadness.org 70 i 62586 Err codemadness.org 70 i 62587

In return, the project has taught me much about programming and software engineering. It taught me code hygiene and the importance of clarity over cleverness; it taught me the ins and outs of revision control; it taught me the importance of good documentation, and how to write it; and it taught me good release engineering practices.

Err codemadness.org 70 i 62588 Err codemadness.org 70 i 62589

Last but not least, it has provided me with the opportunity to work with some of the best people in the field. I have the privilege today to count several of them among my friends.

Err codemadness.org 70 i 62590 Err codemadness.org 70 i 62591

For better or worse, the FreeBSD project has shaped my career and my life. It set me on the path to information security in general and IAA in particular, and opened many a door for me. I would not be where I am now without it.

Err codemadness.org 70 i 62592 Err codemadness.org 70 i 62593

I won’t pretend to be able to tell the future. I don’t know how long I will remain active in the FreeBSD project and community. It could be another twenty years; or it could be ten, or five, or less. All I know is that FreeBSD and I still have things to teach each other, and I don’t intend to call it quits any time soon.

Err codemadness.org 70 i 62594
Err codemadness.org 70 i 62595 Err codemadness.org 70 i 62596
Err codemadness.org 70 i 62597 Err codemadness.org 70 i 62598 Err codemadness.org 70 i 62599 Err codemadness.org 70 i 62600 Err codemadness.org 70 i 62601 Err codemadness.org 70 i 62602 Err codemadness.org 70 i 62603

iXsystems unveils new TrueNAS M-Series Unified Storage Line

Err codemadness.org 70 i 62604 Err codemadness.org 70 i 62605 Err codemadness.org 70 i 62606 Err codemadness.org 70 i 62607
Err codemadness.org 70 i 62608

San Jose, Calif., April 10, 2018 — iXsystems, the leader in Enterprise Open Source servers and software-defined storage, announced the TrueNAS M40 and M50 as the newest high-performance models in its hybrid, unified storage product line. The TrueNAS M-Series harnesses NVMe and NVDIMM to bring all-flash array performance to the award-winning TrueNAS hybrid arrays. It also includes the Intel® Xeon® Scalable Family of Processors and supports up to 100GbE and 32Gb Fibre Channel networking. Sitting between the all-flash TrueNAS Z50 and the hybrid TrueNAS X-Series in the product line, the TrueNAS M-Series delivers up to 10 Petabytes of highly-available and flash-powered network attached storage and rounds out a comprehensive product set that has a capacity and performance option for every storage budget.

Err codemadness.org 70 i 62609
Err codemadness.org 70 i 62610 Err codemadness.org 70 i 62611
    Err codemadness.org 70 i 62612
  • Designed for On-Premises & Enterprise Cloud Environments
  • Err codemadness.org 70 i 62613
Err codemadness.org 70 i 62614 Err codemadness.org 70 i 62615
Err codemadness.org 70 i 62616

As a unified file, block, and object sharing solution, TrueNAS can meet the needs of file serving, backup, virtualization, media production, and private cloud users thanks to its support for the SMB, NFS, AFP, iSCSI, Fibre Channel, and S3 protocols.

Err codemadness.org 70 i 62617 Err codemadness.org 70 i 62618

At the heart of the TrueNAS M-Series is a custom 4U, dual-controller head unit that supports up to 24 3.5” drives and comes in two models, the M40 and M50, for maximum flexibility and scalability. The TrueNAS M40 uses NVDIMMs for write cache, SSDs for read cache, and up to two external 60-bay expansion shelves that unlock up to 2PB in capacity. The TrueNAS M50 uses NVDIMMs for write caching, NVMe drives for read caching, and up to twelve external 60-bay expansion shelves to scale upwards of 10PB. The dual-controller design provides high-availability failover and non-disruptive upgrades for mission-critical enterprise environments.

Err codemadness.org 70 i 62619 Err codemadness.org 70 i 62620

By design, the TrueNAS M-Series unleashes cutting-edge persistent memory technology for demanding performance and capacity workloads, enabling businesses to accelerate enterprise applications and deploy enterprise private clouds that are twice the capacity of previous TrueNAS models. It also supports replication to the Amazon S3, BackBlaze B2, Google Cloud, and Microsoft Azure cloud platforms and can deliver an object store using the ubiquitous S3 object storage protocol at a fraction of the cost of the public cloud.

Err codemadness.org 70 i 62621
Err codemadness.org 70 i 62622 Err codemadness.org 70 i 62623
    Err codemadness.org 70 i 62624
  • Fast
  • Err codemadness.org 70 i 62625
Err codemadness.org 70 i 62626 Err codemadness.org 70 i 62627
Err codemadness.org 70 i 62628

As a true enterprise storage platform, the TrueNAS M50 supports very demanding performance workloads with up to four active 100GbE ports, 3TB of RAM, 32GB of NVDIMM write cache and up to 15TB of NVMe flash read cache. The TrueNAS M40 and M50 include up to 24/7 and global next-business-day support, putting IT at ease. The modular and tool-less design of the M-Series allows for easy, non-disruptive servicing and upgrading by end-users and support technicians for guaranteed uptime. TrueNAS has US-Based support provided by the engineering team that developed it, offering the rapid response that every enterprise needs.

Err codemadness.org 70 i 62629
Err codemadness.org 70 i 62630 Err codemadness.org 70 i 62631
    Err codemadness.org 70 i 62632
  • Award-Winning TrueNAS Features

    Err codemadness.org 70 i 62633 Err codemadness.org 70 i 62634
    • Enterprise: Perfectly suited for private clouds and enterprise workloads such as file sharing, backups, M&E, surveillance, and hosting virtual machines.
    • Err codemadness.org 70 i 62635
    • Unified: Utilizes SMB, AFP, NFS for file storage, iSCSI, Fibre Channel and OpenStack Cinder for block storage, and S3-compatible APIs for object storage. Supports every common operating system, hypervisor, and application.
    • Err codemadness.org 70 i 62636
    • Economical: Deploy an enterprise private cloud and reduce storage TCO by 70% over AWS with built-in enterprise-class features such as in-line compression, deduplication, clones, and thin-provisioning.
    • Err codemadness.org 70 i 62637
    • Safe: The OpenZFS file system ensures data integrity with best-in-class replication and snapshotting. Customers can replicate data to the rest of the iXsystems storage lineup and to the public cloud.
    • Err codemadness.org 70 i 62638
    • Reliable: High Availability option with dual hot-swappable controllers for continuous data availability and 99.999% uptime.
    • Err codemadness.org 70 i 62639
    • Familiar: Provision and manage storage with the same simple and powerful WebUI and REST APIs used in all iXsystems storage products, as well as iXsystems’ FreeNAS Software.
    • Err codemadness.org 70 i 62640
    • Certified: TrueNAS has passed the Citrix Ready, VMware Ready, and Veeam Ready certifications, reducing the risk of deploying a virtualized infrastructure.
    • Err codemadness.org 70 i 62641
    • Open: By using industry-standard sharing protocols, the OpenZFS Open Source enterprise file system and FreeNAS, the world’s #1 Open Source storage operating system (and also engineered by iXsystems), TrueNAS is the most open enterprise storage solution on the market.
  • Err codemadness.org 70 i 62642
  • Availability

  • Err codemadness.org 70 i 62643
Err codemadness.org 70 i 62644 Err codemadness.org 70 i 62645
Err codemadness.org 70 i 62646

The TrueNAS M40 and M50 will be generally available in April 2018 through the iXsystems global channel partner network. The TrueNAS M-Series starts at under $20,000 USD and can be easily expanded using a linear “per terabyte” pricing model. With typical compression, a Petabtye can be stored for under $100,000 USD. TrueNAS comes with an all-inclusive software suite that provides NFS, Windows SMB, iSCSI, snapshots, clones and replication.

Err codemadness.org 70 i 62647
Err codemadness.org 70 i 62648 Err codemadness.org 70 i 62649
    Err codemadness.org 70 i 62650
  • For more information, visit www.ixsystems.com/TrueNAS
  • Err codemadness.org 70 i 62651
  • TrueNAS M-Series What's New Video
  • Err codemadness.org 70 i 62652
Err codemadness.org 70 i 62653 Err codemadness.org 70 i 62654


Err codemadness.org 70 i 62655 Err codemadness.org 70 i 62656

Understanding and tuning the FreeBSD Scheduler

Err codemadness.org 70 i 62657 Err codemadness.org 70 i 62658

``` Err codemadness.org 70 i 62659 Occasionally I noticed that the system would not quickly process the Err codemadness.org 70 i 62660 tasks i need done, but instead prefer other, longrunning tasks. I Err codemadness.org 70 i 62661 figured it must be related to the scheduler, and decided it hates me.

Err codemadness.org 70 i 62662 Err codemadness.org 70 i 62663

A closer look shows the behaviour as follows (single CPU):

Err codemadness.org 70 i 62664 Err codemadness.org 70 i 62665

Lets run an I/O-active task, e.g, postgres VACUUM that would Err codemadness.org 70 i 62666 continuously read from big files (while doing compute as well [1]):

Err codemadness.org 70 i 62667 Err codemadness.org 70 i 62668
Err codemadness.org 70 i 62669

pool alloc free read write read write Err codemadness.org 70 i 62670 cache - - - - - - Err codemadness.org 70 i 62671 ada1s4 7.08G 10.9G 1.58K 0 12.9M 0

Err codemadness.org 70 i 62672
Err codemadness.org 70 i 62673 Err codemadness.org 70 i 62674

Now start an endless loop:

Err codemadness.org 70 i 62675 Err codemadness.org 70 i 62676

while true; do :; done

Err codemadness.org 70 i 62677 Err codemadness.org 70 i 62678

And the effect is:

Err codemadness.org 70 i 62679 Err codemadness.org 70 i 62680
Err codemadness.org 70 i 62681

pool alloc free read write read write Err codemadness.org 70 i 62682 cache - - - - - - Err codemadness.org 70 i 62683 ada1s4 7.08G 10.9G 9 0 76.8K 0

Err codemadness.org 70 i 62684
Err codemadness.org 70 i 62685 Err codemadness.org 70 i 62686

The VACUUM gets almost stuck! This figures with WCPU in "top":

Err codemadness.org 70 i 62687 Err codemadness.org 70 i 62688
Err codemadness.org 70 i 62689

PID USERNAME PRI NICE SIZE RES STATE TIME WCPU COMMAND Err codemadness.org 70 i 62690 85583 root 99 0 7044K 1944K RUN 1:06 92.21% bash Err codemadness.org 70 i 62691 53005 pgsql 52 0 620M 91856K RUN 5:47 0.50% postgres

Err codemadness.org 70 i 62692
Err codemadness.org 70 i 62693 Err codemadness.org 70 i 62694

Hacking on kern.sched.quantum makes it quite a bit better:

Err codemadness.org 70 i 62695 Err codemadness.org 70 i 62696

sysctl kern.sched.quantum=1

Err codemadness.org 70 i 62697 Err codemadness.org 70 i 62698

kern.sched.quantum: 94488 -> 7874

Err codemadness.org 70 i 62699 Err codemadness.org 70 i 62700
Err codemadness.org 70 i 62701

pool alloc free read write read write Err codemadness.org 70 i 62702 cache - - - - - - Err codemadness.org 70 i 62703 ada1s4 7.08G 10.9G 395 0 3.12M 0

Err codemadness.org 70 i 62704 Err codemadness.org 70 i 62705

PID USERNAME PRI NICE SIZE RES STATE TIME WCPU COMMAND Err codemadness.org 70 i 62706 85583 root 94 0 7044K 1944K RUN 4:13 70.80% bash Err codemadness.org 70 i 62707 53005 pgsql 52 0 276M 91856K RUN 5:52 11.83% postgres

Err codemadness.org 70 i 62708
Err codemadness.org 70 i 62709 Err codemadness.org 70 i 62710

Now, as usual, the "root-cause" questions arise: What exactly does Err codemadness.org 70 i 62711 this "quantum"? Is this solution a workaround, i.e. actually something Err codemadness.org 70 i 62712 else is wrong, and has it tradeoff in other situations? Or otherwise, Err codemadness.org 70 i 62713 why is such a default value chosen, which appears to be ill-deceived?

Err codemadness.org 70 i 62714 Err codemadness.org 70 i 62715

The docs for the quantum parameter are a bit unsatisfying - they say Err codemadness.org 70 i 62716 its the max num of ticks a process gets - and what happens when Err codemadness.org 70 i 62717 they're exhausted? If by default the endless loop is actually allowed Err codemadness.org 70 i 62718 to continue running for 94k ticks (or 94ms, more likely) uninterrupted, Err codemadness.org 70 i 62719 then that explains the perceived behaviour - buts thats certainly not Err codemadness.org 70 i 62720 what a scheduler should do when other procs are ready to run.

Err codemadness.org 70 i 62721 Err codemadness.org 70 i 62722

11.1-RELEASE-p7, kern.hz=200. Switching tickless mode on or off does Err codemadness.org 70 i 62723 not influence the matter. Starting the endless loop with "nice" does Err codemadness.org 70 i 62724 not influence the matter.

Err codemadness.org 70 i 62725 Err codemadness.org 70 i 62726

[1] Err codemadness.org 70 i 62727 A pure-I/O job without compute load, like "dd", does not show Err codemadness.org 70 i 62728 this behaviour. Also, when other tasks are running, the unjust Err codemadness.org 70 i 62729 behaviour is not so stongly pronounced. Err codemadness.org 70 i 62730 ```

Err codemadness.org 70 i 62731 Err codemadness.org 70 i 62732


Err codemadness.org 70 i 62733 Err codemadness.org 70 i 62734

aarch64 support added

Err codemadness.org 70 i 62735 Err codemadness.org 70 i 62736
Err codemadness.org 70 i 62737

I have committed about adding initial support for aarch64.

Err codemadness.org 70 i 62738
Err codemadness.org 70 i 62739 Err codemadness.org 70 i 62740
    Err codemadness.org 70 i 62741
  • booting log on RaspberryPI3:
  • Err codemadness.org 70 i 62742
Err codemadness.org 70 i 62743 Err codemadness.org 70 i 62744

``` Err codemadness.org 70 i 62745 boot NetBSD/evbarm (aarch64) Err codemadness.org 70 i 62746 Drop to EL1...OK Err codemadness.org 70 i 62747 Creating VA=PA tables Err codemadness.org 70 i 62748 Creating KSEG tables Err codemadness.org 70 i 62749 Creating KVA=PA tables Err codemadness.org 70 i 62750 Creating devmap tables Err codemadness.org 70 i 62751 MMU Enable...OK Err codemadness.org 70 i 62752 VSTART = ffffffc000001ff4 Err codemadness.org 70 i 62753 FDT<3ab46000> devmap cpufunc bootstrap consinit ok Err codemadness.org 70 i 62754 uboot: args 0x3ab46000, 0, 0, 0

Err codemadness.org 70 i 62755 Err codemadness.org 70 i 62756
NetBSD/evbarm (fdt) booting ...	Err	codemadness.org	70
i 62757 FDT /memory [0] @ 0x0 size 0x3b000000	Err	codemadness.org	70
i 62758 MEM: add 0-3b000000	Err	codemadness.org	70
i 62759 MEM: res 0-1000	Err	codemadness.org	70
i 62760 MEM: res 3ab46000-3ab4a000	Err	codemadness.org	70
i 62761 Usable memory:	Err	codemadness.org	70
i 62762   1000 - 3ab45fff	Err	codemadness.org	70
i 62763   3ab4a000 - 3affffff	Err	codemadness.org	70
i 62764 initarm: kernel phys start 1000000 end 17bd000	Err	codemadness.org	70
i 62765 MEM: res 1000000-17bd000	Err	codemadness.org	70
i 62766 bootargs: root=axe0	Err	codemadness.org	70
i 62767   1000 - ffffff	Err	codemadness.org	70
i 62768   17bd000 - 3ab45fff	Err	codemadness.org	70
i 62769   3ab4a000 - 3affffff	Err	codemadness.org	70
i 62770 ------------------------------------------	Err	codemadness.org	70
i 62771 kern_vtopdiff         = 0xffffffbfff000000	Err	codemadness.org	70
i 62772 physical_start        = 0x0000000000001000	Err	codemadness.org	70
i 62773 kernel_start_phys     = 0x0000000001000000	Err	codemadness.org	70
i 62774 kernel_end_phys       = 0x00000000017bd000	Err	codemadness.org	70
i 62775 physical_end          = 0x000000003ab45000	Err	codemadness.org	70
i 62776 VM_MIN_KERNEL_ADDRESS = 0xffffffc000000000	Err	codemadness.org	70
i 62777 kernel_start_l2       = 0xffffffc000000000	Err	codemadness.org	70
i 62778 kernel_start          = 0xffffffc000000000	Err	codemadness.org	70
i 62779 kernel_end            = 0xffffffc0007bd000	Err	codemadness.org	70
i 62780 kernel_end_l2         = 0xffffffc000800000	Err	codemadness.org	70
i 62781 (kernel va area)	Err	codemadness.org	70
i 62782 (devmap va area)	Err	codemadness.org	70
i 62783 VM_MAX_KERNEL_ADDRESS = 0xffffffffffe00000	Err	codemadness.org	70
i 62784 ------------------------------------------	Err	codemadness.org	70
i 62785 Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,	Err	codemadness.org	70
i 62786     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,	Err	codemadness.org	70
i 62787     2018 The NetBSD Foundation, Inc.  All rights reserved.	Err	codemadness.org	70
i 62788 Copyright (c) 1982, 1986, 1989, 1991, 1993	Err	codemadness.org	70
i 62789     The Regents of the University of California.  All rights reserved.	Err	codemadness.org	70
i 62790 	Err	codemadness.org	70
i 62791 NetBSD 8.99.14 (RPI64) #11: Fri Mar 30 12:34:19 JST 2018	Err	codemadness.org	70
i 62792         ryo@moveq:/usr/home/ryo/tmp/netbsd-src-ryo-wip/sys/arch/evbarm/compile/RPI64	Err	codemadness.org	70
i 62793 total memory = 936 MB	Err	codemadness.org	70
i 62794 avail memory = 877 MB	Err	codemadness.org	70
i 62795 
Err codemadness.org 70 i 62796 Err codemadness.org 70 i 62797

Err codemadness.org 70 i 62798 Err codemadness.org 70 i 62799
Starting local daemons:.	Err	codemadness.org	70
i 62800 Updating motd.	Err	codemadness.org	70
i 62801 Starting sshd.	Err	codemadness.org	70
i 62802 Starting inetd.	Err	codemadness.org	70
i 62803 Starting cron.	Err	codemadness.org	70
i 62804 The following components reported failures:	Err	codemadness.org	70
i 62805     /etc/rc.d/swap2	Err	codemadness.org	70
i 62806 See /var/run/rc.log for more information.	Err	codemadness.org	70
i 62807 Fri Mar 30 12:35:31 JST 2018	Err	codemadness.org	70
i 62808 	Err	codemadness.org	70
i 62809 NetBSD/evbarm (rpi3) (console)	Err	codemadness.org	70
i 62810 	Err	codemadness.org	70
i 62811 login: root	Err	codemadness.org	70
i 62812 Last login: Fri Mar 30 12:30:24 2018 on console	Err	codemadness.org	70
i 62813 	Err	codemadness.org	70
i 62814 rpi3# uname -ap	Err	codemadness.org	70
i 62815 NetBSD rpi3 8.99.14 NetBSD 8.99.14 (RPI64) #11: Fri Mar 30 12:34:19 JST 2018  ryo@moveq:/usr/home/ryo/tmp/netbsd-src-ryo-wip/sys/arch/evbarm/compile/RPI64 evbarm aarch64	Err	codemadness.org	70
i 62816 rpi3#	Err	codemadness.org	70
i 62817 
Err codemadness.org 70 i 62818 Err codemadness.org 70 i 62819

```

Err codemadness.org 70 i 62820 Err codemadness.org 70 i 62821
Err codemadness.org 70 i 62822

Now, multiuser mode works stably on fdt based boards (RPI3,SUNXI,TEGRA). But there are still some problems, more time is required for release. also SMP is not yet. See sys/arch/aarch64/aarch64/TODO for more detail. Especially the problems around TLS of rtld, and C++ stack unwindings are too difficult for me to solve, I give up and need someone's help (^o^)/ Since C++ doesn't work, ATF also doesn't work. If the ATF works, it will clarify more issues.

Err codemadness.org 70 i 62823 Err codemadness.org 70 i 62824

sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. One evbarm/conf/GENERIC64 kernel binary supports all fdt (bcm2837,sunxi,tegra) based boards. While on 32bit, sys/arch/evbarm/conf/GENERIC will support all fdt based boards...but doesn't work yet. (WIP)

Err codemadness.org 70 i 62825 Err codemadness.org 70 i 62826

My deepest appreciation goes to Tohru Nishimura (nisimura@) whose writes vector handlers, context switchings, and so on. and his comments and suggestions were innumerably valuable. I would also like to thank Nick Hudson (skrll@) and Jared McNeill (jmcneill@) whose added support FDT and integrated into evbarm. Finally, I would like to thank Matt Thomas (matt@) whose commited aarch64 Err codemadness.org 70 i 62827 toolchains and preliminary support for aarch64.

Err codemadness.org 70 i 62828
Err codemadness.org 70 i 62829 Err codemadness.org 70 i 62830


Err codemadness.org 70 i 62831 Err codemadness.org 70 i 62832

Beastie Bits

Err codemadness.org 70 i 62833 Err codemadness.org 70 i 62834 Err codemadness.org 70 i 62841 Err codemadness.org 70 i 62842


Err codemadness.org 70 i 62843 Err codemadness.org 70 i 62844

Feedback/Questions

Err codemadness.org 70 i 62845 Err codemadness.org 70 i 62846 Err codemadness.org 70 i 62853 Err codemadness.org 70 i 62854


Err codemadness.org 70 i 62855 Err codemadness.org 70 i 62856
    Err codemadness.org 70 i 62857
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 62858
Err codemadness.org 70 i 62859 Err codemadness.org 70 i 62860


]]> Err codemadness.org 70 i 62861
Err codemadness.org 70 i 62862 https://fireside.fm/player/v2/FYhhasNR+WKQYxDQ7 Err codemadness.org 70 i 62863 Err codemadness.org 70 i 62864 ]]> Err codemadness.org 70 i 62865 Err codemadness.org 70 i 62866
Err codemadness.org 70 i 62867 Err codemadness.org 70 i 62868 Episode 242: Linux Takes The Fastpath | BSD Now 242 Err codemadness.org 70 i 62869 https://www.bsdnow.tv/242 Err codemadness.org 70 i 62870 http://feed.jupiter.zone/bsdnow#entry-1788 Err codemadness.org 70 i 62871 Wed, 18 Apr 2018 11:00:00 -0700 Err codemadness.org 70 i 62872 Allan Jude Err codemadness.org 70 i 62873 Err codemadness.org 70 i 62874 full Err codemadness.org 70 i 62875 Allan Jude Err codemadness.org 70 i 62876 TrueOS Stable 18.03 released, a look at F-stack, the secret to an open source business model, intro to jails and jail networking, FreeBSD Foundation March update, and the ipsec Errata. Err codemadness.org 70 i 62877 1:23:20 Err codemadness.org 70 i 62878 no Err codemadness.org 70 i 62879 Err codemadness.org 70 i 62880 TrueOS Stable 18.03 released, a look at F-stack, the secret to an open source business model, intro to jails and jail networking, FreeBSD Foundation March update, and the ipsec Errata. Err codemadness.org 70 i 62881 <h2>Headlines</h2> Err codemadness.org 70 i 62882 <h3><a href="https://trueos.org/blog/trueos-stable-18-03-release/">TrueOS STABLE 18.03 Release</a></h3> Err codemadness.org 70 i 62883 Err codemadness.org 70 i 62884 <blockquote> Err codemadness.org 70 i 62885 <p>The TrueOS team is pleased to announce the availability of a new STABLE release of the TrueOS project (version 18.03). This is a special release due to the security issues impacting the computing world since the beginning of 2018. In particular, mitigating the “Meltdown” and “Spectre” system exploits make it necessary to update the entire package ecosystem for TrueOS. This release does not replace the scheduled June STABLE update, but provides the necessary and expected security updates for the STABLE release branch of TrueOS, even though this is part-way through our normal release cycle.</p> Err codemadness.org 70 i 62886 </blockquote> Err codemadness.org 70 i 62887 Err codemadness.org 70 i 62888 <ul> Err codemadness.org 70 i 62889 <li><p>Important changes between version 17.12 and 18.03</p> Err codemadness.org 70 i 62890 Err codemadness.org 70 i 62891 <ul><li>“Meltdown” security fixes: This release contains all the fixes to FreeBSD which mitigate the security issues for systems that utilize Intel-based processors when running virtual machines such as FreeBSD jails. Please note that virtual machines or jails must also be updated to a version of FreeBSD or TrueOS which contains these security fixes.</li> Err codemadness.org 70 i 62892 <li>“Spectre” security mitigations: This release contains all current mitigations from FreeBSD HEAD for the Spectre memory-isolation attacks (Variant 2). All 3rd-party packages for this release are also compiled with LLVM/Clang 6 (the “retpoline” mitigation strategy). This fixes many memory allocation issues and enforces stricter requirements for code completeness and memory usage within applications. Unfortunately, some 3rd-party applications became unavailable as pre-compiled packages due to non-compliance with these updated standards. These applications are currently being fixed either by the upstream authors or the FreeBSD port maintainers. If there are any concerns about the availability of a critical application for a specific workflow, please search through the changelog of packages between TrueOS 17.12 and 18.03 to verify the status of the application.</li></ul></li> Err codemadness.org 70 i 62893 </ul> Err codemadness.org 70 i 62894 Err codemadness.org 70 i 62895 <blockquote> Err codemadness.org 70 i 62896 <p>Most systems will need microcode updates for additional Spectre mitigations. The microcode updates are not enabled by default. This work is considered experimental because it is in active development by the upstream vendors. If desired, the microcode updates are available with the new devcpu-data package, which is available in the Appcafe. Install this package and enable the new microcode_update service to apply the latest runtime code when booting the system.</p> Err codemadness.org 70 i 62897 </blockquote> Err codemadness.org 70 i 62898 Err codemadness.org 70 i 62899 <ul> Err codemadness.org 70 i 62900 <li><p>Important security-based package updates</p> Err codemadness.org 70 i 62901 Err codemadness.org 70 i 62902 <ul><li>LibreSSL is updated from version 2.6.3 -> 2.6.4</li> Err codemadness.org 70 i 62903 <li>Reminder: LibreSSL is used on TrueOS to build any package which does not explicitly require OpenSSL. All applications that utilize the SSL transport layer are now running with the latest security updates.</li> Err codemadness.org 70 i 62904 <li>Browser updates: (Keep in mind that many browsers have also implemented their own security mitigations in the aftermath of the Spectre exploit.)</li> Err codemadness.org 70 i 62905 <li>Firefox: 57.0.1 -> 58.0.2</li> Err codemadness.org 70 i 62906 <li>Chromium: 61.0.3163.100 -> 63.0.3239.132</li> Err codemadness.org 70 i 62907 <li>Qt5 Webengine (QupZilla, Falkon, many others): 5.7.1 -> 5.9.4</li></ul></li> Err codemadness.org 70 i 62908 <li><p>All pre-compiled packages for this release are built with the latest versions of LLVM/Clang, unless the package explicitly requires GCC. These packages also utilize the latest compile-time mitigations for memory-access security concerns.</p></li> Err codemadness.org 70 i 62909 </ul> Err codemadness.org 70 i 62910 Err codemadness.org 70 i 62911 <hr /> Err codemadness.org 70 i 62912 <h3><a href="https://github.com/F-Stack/f-stack">F-Stack</a></h3> Err codemadness.org 70 i 62913 Err codemadness.org 70 i 62914 <blockquote> Err codemadness.org 70 i 62915 <p>F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API. http://www.f-stack.org</p> Err codemadness.org 70 i 62916 </blockquote> Err codemadness.org 70 i 62917 Err codemadness.org 70 i 62918 <ul> Err codemadness.org 70 i 62919 <li><p>Introduction Err codemadness.org 70 i 62920 With the rapid development of NIC, the poor performance of data packets processing with Linux kernel has become the bottleneck. However, the rapid development of the Internet needs high performance of network processing, kernel bypass has caught more and more attentions. There are various similar technologies appear, such as DPDK, NETMAP and PF_RING. The main idea of kernel bypass is that Linux is only used to deal with control flow, all data streams are processed in user space. Therefore, kernel bypass can avoid performance bottlenecks caused by kernel packet copying, thread scheduling, system calls and interrupts. Furthermore, kernel bypass can achieve higher performance with multi optimizing methods. Within various techniques, DPDK has been widely used because of its more thorough isolation from kernel scheduling and active community support.</p></li> Err codemadness.org 70 i 62921 <li><p>F-Stack is an open source network framework with high performance based on DPDK. With following characteristics</p> Err codemadness.org 70 i 62922 Err codemadness.org 70 i 62923 <ul><li>Ultra high network performance which can achieve network card under full load, 10 million concurrent connections, 5 million RPS, 1 million CPS.</li> Err codemadness.org 70 i 62924 <li>Transplant FreeBSD 11.01 user space stack, provides a complete stack function, cut a great amount of irrelevant features. Therefore greatly enhance the performance.</li> Err codemadness.org 70 i 62925 <li>Support Nginx, Redis and other mature applications, service can easily use F-Stack</li> Err codemadness.org 70 i 62926 <li>With Multi-process architecture, easy to extend</li> Err codemadness.org 70 i 62927 <li>Provide micro thread interface. Various applications with stateful app can easily use F-Stack to get high performance without processing complex asynchronous logic.</li> Err codemadness.org 70 i 62928 <li>Provide Epoll/Kqueue interface that allow many kinds of applications easily use F-Stack</li></ul></li> Err codemadness.org 70 i 62929 <li><p>History</p></li> Err codemadness.org 70 i 62930 </ul> Err codemadness.org 70 i 62931 Err codemadness.org 70 i 62932 <blockquote> Err codemadness.org 70 i 62933 <p>In order to deal with the increasingly severe DDoS attacks, authorized DNS server of Tencent Cloud DNSPod switched from Gigabit Ethernet to 10-Gigabit at the end of 2012. We faced several options, one is to continue to use the original model another is to use kernel bypass technology. After several rounds of investigation, we finally chose to develop our next generation of DNS server based on DPDK. The reason is DPDK provides ultra-high performance and can be seamlessly extended to 40G, or even 100G NIC in the future.</p> Err codemadness.org 70 i 62934 Err codemadness.org 70 i 62935 <p>After several months of development and testing, DKDNS, high-performance DNS server based on DPDK officially released in October 2013. It's capable of achieving up to 11 million QPS with a single 10GE port and 18.2 million QPS with two 10GE ports. And then we developed a user-space TCP/IP stack called F-Stack that can process 0.6 million RPS with a single 10GE port.</p> Err codemadness.org 70 i 62936 Err codemadness.org 70 i 62937 <p>With the fast growth of Tencent Cloud, more and more services need higher network access performance. Meanwhile, F-Stack was continuous improving driven by the business growth, and ultimately developed into a general network access framework. But this TCP/IP stack couldn't meet the needs of these services while continue to develop and maintain a complete network stack will cost high, we've tried several plans and finally determined to port FreeBSD(11.0 stable) TCP/IP stack into F-Stack. Thus, we can reduce the cost of maintenance and follow up the improvement from community quickly.Thanks to libplebnet and libuinet, this work becomes a lot easier.</p> Err codemadness.org 70 i 62938 Err codemadness.org 70 i 62939 <p>With the rapid development of all kinds of application, in order to help different APPs quick and easily use F-Stack, F-Stack has integrated Nginx, Redis and other commonly used APPs, and a micro thread framework, and provides a standard Epoll/Kqueue interface.</p> Err codemadness.org 70 i 62940 Err codemadness.org 70 i 62941 <p>Currently, besides authorized DNS server of DNSPod, there are various products in Tencent Cloud has used the F-Stack, such as HttpDNS (D+), COS access module, CDN access module, etc..</p> Err codemadness.org 70 i 62942 </blockquote> Err codemadness.org 70 i 62943 Err codemadness.org 70 i 62944 <hr /> Err codemadness.org 70 i 62945 <p><strong>iXsystems</strong></p> Err codemadness.org 70 i 62946 Err codemadness.org 70 i 62947 <h3><a href="https://www.forbes.com/sites/forbestechcouncil/2018/04/02/leadership-is-the-secret-to-an-open-source-business-model/#a2beca765c78">Leadership Is The Secret To An Open Source Business Model</a></h3> Err codemadness.org 70 i 62948 Err codemadness.org 70 i 62949 <ul> Err codemadness.org 70 i 62950 <li>A Forbes article by Mike Lauth, CEO of iXsystems Err codemadness.org 70 i 62951 Err codemadness.org 70 i 62952 Err codemadness.org 70 i 62953 <blockquote> Err codemadness.org 70 i 62954 There is a good chance you’ve never heard of open source software and an even greater one that you’re using it every day without even realizing it. Open source software is computer software that is available under a variety of licenses that all encourage the sharing of the software and its underlying source code. Open source has powered the internet from day one and today powers the cloud and just about everything connected to it from your mobile phone to virtually every internet of things device. Err codemadness.org 70 i 62955 FreeNAS is one of two open source operating systems that my company, iXsystems, develops and distributes free of charge and is at the heart of our line of TrueNAS enterprise storage products. While some of our competitors sell storage software similar to FreeNAS, we not only give it away but also do so with truly no strings attached -- competitors can and do take FreeNAS and build products based on it with zero obligation to share their changes. The freedom to do so is the fundamental tenet of permissively licensed open source software, and while it sounds self-defeating to be this generous, we’ve proven that leadership, not licensing, is the true secret to a successful open source business model. Err codemadness.org 70 i 62956 We each have our own personal definition of what is fair when it comes to open source. At iXsystems, we made a conscious decision to base FreeNAS and TrueOS on the FreeBSD operating system developed by the FreeBSD project. We stand on the shoulders of giants by using FreeBSD and we consider it quite reasonable to give back on the same generous terms that the FreeBSD project offers us. We could be selective in what we provide free of charge, but we believe that doing so would be short-sighted. In the long game we’re playing, the leadership we provide over the open source projects we produce is infinitely more important than any restrictions provided by the licenses of those and other open source projects. Err codemadness.org 70 i 62957 Twenty years in, we have no reason to change our free-software-on-great-hardware business model and giving away the software has brought an unexpected side-benefit: the largest Q/A department in the world, staffed by our passionate users who volunteer to let us know every thought they have about our software. We wouldn’t change a thing, and I encourage you to find exactly what win-win goodwill you and your company can provide to your constituents to make them not just a customer base but a community.</li> Err codemadness.org 70 i 62958 <li>Drive The Conversation Err codemadness.org 70 i 62959 It took a leap of faith for us to give away the heart of our products in exchange for a passionate community, but doing so changes your customer's relationship with your brand from priced to priceless. This kind of relationship leverages a social contract instead of a legal one. Taking this approach empowers your users in ways they will not experience with other companies and it is your responsibility to lead, rather than control them with a project like FreeNAS</li> Err codemadness.org 70 i 62960 <li>Relieve Customer Pain Points With Every New Release Err codemadness.org 70 i 62961 Responsiveness to the needs of your constituents is what distinguishes project leadership from project dictatorship. Be sure to balance your vision for your products and projects with the “real world” needs of your users. While our competition can use the software we develop, they will at best wow users with specific features rather than project-wide ones. Never underestimate how grateful a user will be when you make their job easier.</li> Err codemadness.org 70 i 62962 <li>Accept That A Patent Is Not A Business Model Err codemadness.org 70 i 62963 Patents are considered the ultimate control mechanism in the technology industry, but they only provide a business model if you have a monopoly and monopolies are illegal. Resist getting hung up on the control you can establish over your customers and spend your time acquiring and empowering them. The moment you both realize that your success is mutual, you have a relationship that will last longer than any single sale. You’ll be pleasantly surprised how the relationships you build will transcend the specific companies that friends you make work for.</li> Err codemadness.org 70 i 62964 <li>Distinguish Leadership From Management Err codemadness.org 70 i 62965 Every company has various levels of management, but leadership is the magic that creates markets where they did not exist and aligns paying customers with value that you can deliver in a profitable manner. Leadership and vision are ultimately the most proprietary aspects of a technology business, over every patentable piece of hardware or licensable piece of software. Whether you create a new market or bring efficiency to an existing one, your leadership is your secret weapon -- not your level of control.</li> Err codemadness.org 70 i 62966 </ul> Err codemadness.org 70 i 62967 <hr /> Err codemadness.org 70 i 62968 </blockquote> Err codemadness.org 70 i 62969 Err codemadness.org 70 i 62970 <h2>News Roundup</h2> Err codemadness.org 70 i 62971 Err codemadness.org 70 i 62972 Err codemadness.org 70 i 62973 Err codemadness.org 70 i 62974 <h3><a href="https://www.skyforge.at/posts/an-introduction-to-jails-and-jail-networking/">Introduction to Jails and Jail Networking on FreeBSD</a></h3> Err codemadness.org 70 i 62975 Err codemadness.org 70 i 62976 Err codemadness.org 70 i 62977 Err codemadness.org 70 i 62978 <blockquote> Err codemadness.org 70 i 62979 <p>Jails basically partition a FreeBSD system into various isolated sub-systems called jails. The syscall and userspace tools first appeared in FreeBSD 4.0 (~ March 2000) with subsequent releases expanding functionality and improving existing features as well as usability. Err codemadness.org 70 i 62980 + For Linux users, jails are similar to LXC, used for resource/process isolation. Unlike LXC however, jails are a first-class concept and are well integrated into the base system. Essentially however, both offer a chroot-with-extra-separation feeling. Err codemadness.org 70 i 62981 Setting up a jail is a fairly simple process, which can essentially be split into three steps: Err codemadness.org 70 i 62982 + Place the stuff you want to run and the stuff it needs to run somewhere on your filesystem. Err codemadness.org 70 i 62983 + Add some basic configuration for the jail in jail.conf. Err codemadness.org 70 i 62984 + Fire up the jail. Err codemadness.org 70 i 62985 To confirm that the jail started successfully we can use the jls utility: Err codemadness.org 70 i 62986 We can now enter the jailed environment by using jexec, which will by default execute a root shell inside the named jail Err codemadness.org 70 i 62987 A jail can only see and use addresses that have been passed down to it by the parent system. This creates a slight problem with the loopback address: The host would probably like to keep that address to itself and not share it with any jail. Err codemadness.org 70 i 62988 Because of this, the loopback-address inside a jail is emulated by the system: Err codemadness.org 70 i 62989 + 127.0.0.1 is an alias for the first IPv4-address assigned to the jail. Err codemadness.org 70 i 62990 + ::1 is an alias for the first IPv6-address assigned to the jail. Err codemadness.org 70 i 62991 While this looks simple enough and usually works just fine[tm], it is also a source of many problems. Just imagine if your jail has only one single global IPv4 assigned to it. A daemon binding its (possibly unsecured) control port to the loopback-address would then unwillingly be exposed to the rest of the internet, which is hardly ever a good idea. Err codemadness.org 70 i 62992 + So, create an extra loopback adapter, and make the first IP in each jail a private loopback address Err codemadness.org 70 i 62993 + The tutorial goes on to cover making multiple jails share a single public IP address using NAT Err codemadness.org 70 i 62994 + It also covers more advanced concepts like ‘thin’ jails, to save some disk space if you are going to create a large number of jails, and how to upgrade them after the fact Err codemadness.org 70 i 62995 + Finally, it covers the integration with a lot of common tools, like identifying and filter jailed processes using top and ps, or using the package managers support for jails to install packages in a jail from the outside.</p> Err codemadness.org 70 i 62996 </blockquote> Err codemadness.org 70 i 62997 Err codemadness.org 70 i 62998 <hr /> Err codemadness.org 70 i 62999 Err codemadness.org 70 i 63000 Err codemadness.org 70 i 63001 Err codemadness.org 70 i 63002 **DigitalOcean** Err codemadness.org 70 i 63003 Err codemadness.org 70 i 63004 Err codemadness.org 70 i 63005 Err codemadness.org 70 i 63006 <h3>SmartOS release-20180315</h3> Err codemadness.org 70 i 63007 Err codemadness.org 70 i 63008 ``` Err codemadness.org 70 i 63009 Err codemadness.org 70 i 63010 Hello All, Err codemadness.org 70 i 63011 Err codemadness.org 70 i 63012 The latest bi-weekly "release" branch build of SmartOS is up: Err codemadness.org 70 i 63013 Err codemadness.org 70 i 63014 Err codemadness.org 70 i 63015 <pre><code>curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos-latest.iso Err codemadness.org 70 i 63016 curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos-latest-USB.img.bz2 Err codemadness.org 70 i 63017 curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos-latest.vmwarevm.tar.bz2 Err codemadness.org 70 i 63018 </code></pre> Err codemadness.org 70 i 63019 Err codemadness.org 70 i 63020 A generated changelog is here: Err codemadness.org 70 i 63021 Err codemadness.org 70 i 63022 <pre><code>https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos.html#20180329T002644Z Err codemadness.org 70 i 63023 </code></pre> Err codemadness.org 70 i 63024 Err codemadness.org 70 i 63025 The full build bits directory, for those interested, is here in Manta: Err codemadness.org 70 i 63026 Err codemadness.org 70 i 63027 <pre><code>/Joyent_Dev/public/SmartOS/20180329T002644Z Err codemadness.org 70 i 63028 </code></pre> Err codemadness.org 70 i 63029 Err codemadness.org 70 i 63030 <h1>Highlights</h1> Err codemadness.org 70 i 63031 Err codemadness.org 70 i 63032 Firewall rules created with fwadm(1M) can now use the PRIORITY keyword to Err codemadness.org 70 i 63033 specify a higher precedence for a rule. Err codemadness.org 70 i 63034 Err codemadness.org 70 i 63035 This release has includes mitigation of the Intel Meltdown vulnerability in the Err codemadness.org 70 i 63036 form of kpti (kernel page table isolation) with PCID (process context Err codemadness.org 70 i 63037 identifier) support Err codemadness.org 70 i 63038 Err codemadness.org 70 i 63039 This release also includes experimental support for bhyve branded zones. Err codemadness.org 70 i 63040 Err codemadness.org 70 i 63041 Err codemadness.org 70 i 63042 Err codemadness.org 70 i 63043 Err codemadness.org 70 i 63044 <h1>General Info</h1> Err codemadness.org 70 i 63045 Err codemadness.org 70 i 63046 Every second Thursday we roll a "release-YYYYMMDD" release branch and Err codemadness.org 70 i 63047 builds for SmartOS (and Triton DataCenter and Manta, as well). Err codemadness.org 70 i 63048 Err codemadness.org 70 i 63049 Cheers, Err codemadness.org 70 i 63050 Josh Wilsdon, on behalf of the SmartOS developers Err codemadness.org 70 i 63051 https://smartos.org Err codemadness.org 70 i 63052 ``` Err codemadness.org 70 i 63053 Err codemadness.org 70 i 63054 <ul> Err codemadness.org 70 i 63055 <li>Here's a screencap from q5sys' machine showing the output of sysinfo: https://i.imgur.com/MFkNi76.jpg</li> Err codemadness.org 70 i 63056 </ul> Err codemadness.org 70 i 63057 Err codemadness.org 70 i 63058 <hr /> Err codemadness.org 70 i 63059 <h3><a href="https://www.freebsdfoundation.org/wp-content/uploads/2018/03/FreeBSD-Foundation-March-2018-Update-1.pdf">FreeBSD Foundation March 2018 Update</a></h3> Err codemadness.org 70 i 63060 Err codemadness.org 70 i 63061 <ul> Err codemadness.org 70 i 63062 <li>> Syzkaller update: Syzkaller is a coverage-guided system call fuzzer. It invokes syscalls with arbitrary and changing inputs, and is intended to use code coverage data to guide changes to system call inputs in order to access larger and larger portions of the kernel in the search for bugs.</li> Err codemadness.org 70 i 63063 <li>> Last term’s student focused largely on scripts to deploy and configure Syzkaller on Packet.net’s hosting infrastructure, but did not get to the code coverage integration required for Syzkaller to be effective. This term co-op student Mitchell Horne has been adding code coverage support in FreeBSD for Syzkaller.</li> Err codemadness.org 70 i 63064 <li>> The Linux code coverage support for Syzkaller is known as kcov and was submitted by Dmitry Vyukov, Syzkaller’s author. Kcov is purposebuilt for Syzkaller: Err codemadness.org 70 i 63065 <ul><li>> kcov provides code coverage collection for coverage-guided fuzzing (randomized testing). Coverage-guided fuzzing is a testing technique that uses coverage feedback to determine new interesting inputs to a system.</li> Err codemadness.org 70 i 63066 <li>> kcov does not aim to collect as much coverage as possible. It aims to collect more or less stable coverage that is function of syscall inputs. To achieve this goal it does not collect coverage in soft/hard interrupts and instrumentation of some inherently non-deterministic or non-interesting parts of kernel is disabled (e.g. scheduler, locking).</li></ul></li> Err codemadness.org 70 i 63067 <li>> Mitchell implemented equivalent functionality for FreeBSD - a distinct implementation, but modelled on the one in Linux. These patches are currently in review, as are minor changes to Syzkaller to use the new interface on FreeBSD.</li> Err codemadness.org 70 i 63068 <li>> We still have some additional work to fully integrate Syzkaller and run it on a consistent basis, but the brief testing that has been completed suggests this work will provide a very valuable improvement in test coverage and opportunities for system hardening: we tested Syzkaller with Mitchell's code coverage patch over a weekend. It provoked kernel crashes hundreds of times faster than without his work.</li> Err codemadness.org 70 i 63069 <li>> I want to say thank you to NetApp for becoming an Iridium Partner again this Err codemadness.org 70 i 63070 year! (Donations between $100,000 - $249,999) It’s companies like NetApp, who recognize the importance of supporting our efforts, that allow us to continue to provide software improvements, advocate for FreeBSD, and help lead the release engineering and security efforts.</li> Err codemadness.org 70 i 63071 <li>> Conference Recap: FOSSASIA 2018</li> Err codemadness.org 70 i 63072 <li>Foundation Director Philip Paeps went to FOSSASIA, which is possibly the largest open source event in Asia. The FreeBSD Foundation sponsored the conference.</li> Err codemadness.org 70 i 63073 <li>Our booth had a constant stream of traffic over the weekend and we handed out hundreds of FreeBSD stickers, pens and flyers. Many attendees of FOSSASIA had never heard of FreeBSD before and are now keen to start exploring and perhaps even contributing. By the end of the conference, there were FreeBSD stickers everywhere!</li> Err codemadness.org 70 i 63074 <li>> One particular hallway-track conversation led to an invitation to present FreeBSD at a "Women Who Code" evening in Kuala Lumpur later this week (Thursday 29th March). I spent the days after the conference meeting companies who use (or want to use) FreeBSD in Singapore.</li> Err codemadness.org 70 i 63075 <li>> SCaLE 16x: The Foundation sponsored a FreeBSD table in the expo hall that was Err codemadness.org 70 i 63076 staffed by Dru Lavigne, Warren Block, and Deb Goodkin. Our purpose was to promote FreeBSD, and attract more users and contributors to the Project. We had a steady flow of people stopping by our table, asking inquisitive questions, and picking up some cool swag and FreeBSD handouts.</li> Err codemadness.org 70 i 63077 <li>Deb Goodkin took some tutorials/trainings there and talked to a lot of other open source projects.</li> Err codemadness.org 70 i 63078 <li><blockquote> Err codemadness.org 70 i 63079 <p>Next year, we have the opportunity to have a BSD track, similar to the BSD Devroom at FOSDEM. We are looking for some volunteers in Southern California who can help organize this one or two-day event and help us educate more people about the BSDs. Let us know if you Err codemadness.org 70 i 63080 would like to help with this effort.</p> Err codemadness.org 70 i 63081 </blockquote></li> Err codemadness.org 70 i 63082 <li><blockquote> Err codemadness.org 70 i 63083 <p>Roll Call: #WhoUsesFreeBSD</p> Err codemadness.org 70 i 63084 </blockquote></li> Err codemadness.org 70 i 63085 <li><blockquote> Err codemadness.org 70 i 63086 <p>Many of you probably saw our post on social media asking Who Uses FreeBSD. Please help us answer this question to assist us in determining FreeBSD market share data, promote how companies are successfully using FreeBSD to encourage more companies to embrace Err codemadness.org 70 i 63087 FreeBSD, and to update the list of users on our website. Knowing who uses FreeBSD helps our contributors know where to look for jobs; knowing what universities teach with FreeBSD, helps companies know where to recruit, and knowing what products use FreeBSD helps us determine what features and technologies to support.</p> Err codemadness.org 70 i 63088 </blockquote></li> Err codemadness.org 70 i 63089 <li><blockquote> Err codemadness.org 70 i 63090 <p>New Hosting Partner: Oregon State University Open Source Lab</p> Err codemadness.org 70 i 63091 </blockquote></li> Err codemadness.org 70 i 63092 <li>> We are pleased to announce that the Oregon State University (OSU) Open Source Lab (OSL), which hosts infrastructure for over 160 different open source projects, has agreed to host some of our servers for FreeBSD development. The first server, which should be arriving shortly, is an HP Enterprise Proliant DL360 Gen10 configured with NVDIMM memory which will be initially used for further development and testing of permanent memory support in the kernel.</li> Err codemadness.org 70 i 63093 <li>Stay tuned for more news from the FreeBSD Foundation in May (next newsletter).</li> Err codemadness.org 70 i 63094 </ul> Err codemadness.org 70 i 63095 Err codemadness.org 70 i 63096 <hr /> Err codemadness.org 70 i 63097 <h2>Beastie Bits</h2> Err codemadness.org 70 i 63098 Err codemadness.org 70 i 63099 <ul> Err codemadness.org 70 i 63100 <li><a href="https://daniel.haxx.se/blog/2018/03/20/twenty-years-1998-2018/">cURL is 20 today</a></li> Err codemadness.org 70 i 63101 <li><a href="https://www.skyforge.at/posts/a-note-in-sysvipc-and-jails-on-freebsd/">A Note on SYSVIPC and Jails on FreeBSD</a></li> Err codemadness.org 70 i 63102 <li><a href="https://marc.info/?l=openbsd-announce&amp;m=152149507725894&amp;w=2">OpenBSD Errata: March 20th, 2018 (ipsec)</a></li> Err codemadness.org 70 i 63103 <li><a href="https://www.freebsd.org/security/advisories.html">FreeBSD Security Advisories for IPSEC and vt </a></li> Err codemadness.org 70 i 63104 <li><a href="https://www.tecmint.com/pkg-command-examples-to-manage-packages-in-freebsd/">23 Useful PKG Command Examples to Manage Packages in FreeBSD</a></li> Err codemadness.org 70 i 63105 </ul> Err codemadness.org 70 i 63106 Err codemadness.org 70 i 63107 <hr /> Err codemadness.org 70 i 63108 <p><strong>Tarsnap</strong></p> Err codemadness.org 70 i 63109 Err codemadness.org 70 i 63110 <h2>Feedback/Questions</h2> Err codemadness.org 70 i 63111 Err codemadness.org 70 i 63112 <ul> Err codemadness.org 70 i 63113 <li>Casey - <a href="http://dpaste.com/2VMH555#wrap">Cool Editor</a></li> Err codemadness.org 70 i 63114 <li>Nelson - <a href="http://dpaste.com/2NTE4SD#wrap">New article on FreeBSD vs MacOS</a></li> Err codemadness.org 70 i 63115 <li>Damian - <a href="http://dpaste.com/0FYWVHD#wrap">Mysterious Reverse Proxy 504</a></li> Err codemadness.org 70 i 63116 <li>Nelson - <a href="http://dpaste.com/0BTGTVP#wrap">FreeBSD, rsync, nasty bug, now fixed</a></li> Err codemadness.org 70 i 63117 </ul> Err codemadness.org 70 i 63118 Err codemadness.org 70 i 63119 <hr /> Err codemadness.org 70 i 63120 <ul> Err codemadness.org 70 i 63121 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 63122 </ul> Err codemadness.org 70 i 63123 Err codemadness.org 70 i 63124 <hr /> Err codemadness.org 70 i 63125 Err codemadness.org 70 i 63126 freebsd, openbsd, netbsd, dragonflybsd, trueos, tutorial, howto, guide, bsd, interview Err codemadness.org 70 i 63127 Err codemadness.org 70 i 63128 TrueOS Stable 18.03 released, a look at F-stack, the secret to an open source business model, intro to jails and jail networking, FreeBSD Foundation March update, and the ipsec Errata.

Err codemadness.org 70 i 63129 Err codemadness.org 70 i 63130

Headlines

Err codemadness.org 70 i 63131 Err codemadness.org 70 i 63132

TrueOS STABLE 18.03 Release

Err codemadness.org 70 i 63133 Err codemadness.org 70 i 63134
Err codemadness.org 70 i 63135

The TrueOS team is pleased to announce the availability of a new STABLE release of the TrueOS project (version 18.03). This is a special release due to the security issues impacting the computing world since the beginning of 2018. In particular, mitigating the “Meltdown” and “Spectre” system exploits make it necessary to update the entire package ecosystem for TrueOS. This release does not replace the scheduled June STABLE update, but provides the necessary and expected security updates for the STABLE release branch of TrueOS, even though this is part-way through our normal release cycle.

Err codemadness.org 70 i 63136
Err codemadness.org 70 i 63137 Err codemadness.org 70 i 63138
    Err codemadness.org 70 i 63139
  • Important changes between version 17.12 and 18.03

    Err codemadness.org 70 i 63140 Err codemadness.org 70 i 63141
    • “Meltdown” security fixes: This release contains all the fixes to FreeBSD which mitigate the security issues for systems that utilize Intel-based processors when running virtual machines such as FreeBSD jails. Please note that virtual machines or jails must also be updated to a version of FreeBSD or TrueOS which contains these security fixes.
    • Err codemadness.org 70 i 63142
    • “Spectre” security mitigations: This release contains all current mitigations from FreeBSD HEAD for the Spectre memory-isolation attacks (Variant 2). All 3rd-party packages for this release are also compiled with LLVM/Clang 6 (the “retpoline” mitigation strategy). This fixes many memory allocation issues and enforces stricter requirements for code completeness and memory usage within applications. Unfortunately, some 3rd-party applications became unavailable as pre-compiled packages due to non-compliance with these updated standards. These applications are currently being fixed either by the upstream authors or the FreeBSD port maintainers. If there are any concerns about the availability of a critical application for a specific workflow, please search through the changelog of packages between TrueOS 17.12 and 18.03 to verify the status of the application.
  • Err codemadness.org 70 i 63143
Err codemadness.org 70 i 63144 Err codemadness.org 70 i 63145
Err codemadness.org 70 i 63146

Most systems will need microcode updates for additional Spectre mitigations. The microcode updates are not enabled by default. This work is considered experimental because it is in active development by the upstream vendors. If desired, the microcode updates are available with the new devcpu-data package, which is available in the Appcafe. Install this package and enable the new microcode_update service to apply the latest runtime code when booting the system.

Err codemadness.org 70 i 63147
Err codemadness.org 70 i 63148 Err codemadness.org 70 i 63149
    Err codemadness.org 70 i 63150
  • Important security-based package updates

    Err codemadness.org 70 i 63151 Err codemadness.org 70 i 63152
    • LibreSSL is updated from version 2.6.3 -> 2.6.4
    • Err codemadness.org 70 i 63153
    • Reminder: LibreSSL is used on TrueOS to build any package which does not explicitly require OpenSSL. All applications that utilize the SSL transport layer are now running with the latest security updates.
    • Err codemadness.org 70 i 63154
    • Browser updates: (Keep in mind that many browsers have also implemented their own security mitigations in the aftermath of the Spectre exploit.)
    • Err codemadness.org 70 i 63155
    • Firefox: 57.0.1 -> 58.0.2
    • Err codemadness.org 70 i 63156
    • Chromium: 61.0.3163.100 -> 63.0.3239.132
    • Err codemadness.org 70 i 63157
    • Qt5 Webengine (QupZilla, Falkon, many others): 5.7.1 -> 5.9.4
  • Err codemadness.org 70 i 63158
  • All pre-compiled packages for this release are built with the latest versions of LLVM/Clang, unless the package explicitly requires GCC. These packages also utilize the latest compile-time mitigations for memory-access security concerns.

  • Err codemadness.org 70 i 63159
Err codemadness.org 70 i 63160 Err codemadness.org 70 i 63161


Err codemadness.org 70 i 63162 Err codemadness.org 70 i 63163

F-Stack

Err codemadness.org 70 i 63164 Err codemadness.org 70 i 63165
Err codemadness.org 70 i 63166

F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API. http://www.f-stack.org

Err codemadness.org 70 i 63167
Err codemadness.org 70 i 63168 Err codemadness.org 70 i 63169
    Err codemadness.org 70 i 63170
  • Introduction Err codemadness.org 70 i 63171 With the rapid development of NIC, the poor performance of data packets processing with Linux kernel has become the bottleneck. However, the rapid development of the Internet needs high performance of network processing, kernel bypass has caught more and more attentions. There are various similar technologies appear, such as DPDK, NETMAP and PF_RING. The main idea of kernel bypass is that Linux is only used to deal with control flow, all data streams are processed in user space. Therefore, kernel bypass can avoid performance bottlenecks caused by kernel packet copying, thread scheduling, system calls and interrupts. Furthermore, kernel bypass can achieve higher performance with multi optimizing methods. Within various techniques, DPDK has been widely used because of its more thorough isolation from kernel scheduling and active community support.

  • Err codemadness.org 70 i 63172
  • F-Stack is an open source network framework with high performance based on DPDK. With following characteristics

    Err codemadness.org 70 i 63173 Err codemadness.org 70 i 63174
    • Ultra high network performance which can achieve network card under full load, 10 million concurrent connections, 5 million RPS, 1 million CPS.
    • Err codemadness.org 70 i 63175
    • Transplant FreeBSD 11.01 user space stack, provides a complete stack function, cut a great amount of irrelevant features. Therefore greatly enhance the performance.
    • Err codemadness.org 70 i 63176
    • Support Nginx, Redis and other mature applications, service can easily use F-Stack
    • Err codemadness.org 70 i 63177
    • With Multi-process architecture, easy to extend
    • Err codemadness.org 70 i 63178
    • Provide micro thread interface. Various applications with stateful app can easily use F-Stack to get high performance without processing complex asynchronous logic.
    • Err codemadness.org 70 i 63179
    • Provide Epoll/Kqueue interface that allow many kinds of applications easily use F-Stack
  • Err codemadness.org 70 i 63180
  • History

  • Err codemadness.org 70 i 63181
Err codemadness.org 70 i 63182 Err codemadness.org 70 i 63183
Err codemadness.org 70 i 63184

In order to deal with the increasingly severe DDoS attacks, authorized DNS server of Tencent Cloud DNSPod switched from Gigabit Ethernet to 10-Gigabit at the end of 2012. We faced several options, one is to continue to use the original model another is to use kernel bypass technology. After several rounds of investigation, we finally chose to develop our next generation of DNS server based on DPDK. The reason is DPDK provides ultra-high performance and can be seamlessly extended to 40G, or even 100G NIC in the future.

Err codemadness.org 70 i 63185 Err codemadness.org 70 i 63186

After several months of development and testing, DKDNS, high-performance DNS server based on DPDK officially released in October 2013. It's capable of achieving up to 11 million QPS with a single 10GE port and 18.2 million QPS with two 10GE ports. And then we developed a user-space TCP/IP stack called F-Stack that can process 0.6 million RPS with a single 10GE port.

Err codemadness.org 70 i 63187 Err codemadness.org 70 i 63188

With the fast growth of Tencent Cloud, more and more services need higher network access performance. Meanwhile, F-Stack was continuous improving driven by the business growth, and ultimately developed into a general network access framework. But this TCP/IP stack couldn't meet the needs of these services while continue to develop and maintain a complete network stack will cost high, we've tried several plans and finally determined to port FreeBSD(11.0 stable) TCP/IP stack into F-Stack. Thus, we can reduce the cost of maintenance and follow up the improvement from community quickly.Thanks to libplebnet and libuinet, this work becomes a lot easier.

Err codemadness.org 70 i 63189 Err codemadness.org 70 i 63190

With the rapid development of all kinds of application, in order to help different APPs quick and easily use F-Stack, F-Stack has integrated Nginx, Redis and other commonly used APPs, and a micro thread framework, and provides a standard Epoll/Kqueue interface.

Err codemadness.org 70 i 63191 Err codemadness.org 70 i 63192

Currently, besides authorized DNS server of DNSPod, there are various products in Tencent Cloud has used the F-Stack, such as HttpDNS (D+), COS access module, CDN access module, etc..

Err codemadness.org 70 i 63193
Err codemadness.org 70 i 63194 Err codemadness.org 70 i 63195


Err codemadness.org 70 i 63196 Err codemadness.org 70 i 63197

iXsystems

Err codemadness.org 70 i 63198 Err codemadness.org 70 i 63199

Leadership Is The Secret To An Open Source Business Model

Err codemadness.org 70 i 63200 Err codemadness.org 70 i 63201
    Err codemadness.org 70 i 63202
  • A Forbes article by Mike Lauth, CEO of iXsystems Err codemadness.org 70 i 63203 Err codemadness.org 70 i 63204 Err codemadness.org 70 i 63205
    Err codemadness.org 70 i 63206 There is a good chance you’ve never heard of open source software and an even greater one that you’re using it every day without even realizing it. Open source software is computer software that is available under a variety of licenses that all encourage the sharing of the software and its underlying source code. Open source has powered the internet from day one and today powers the cloud and just about everything connected to it from your mobile phone to virtually every internet of things device. Err codemadness.org 70 i 63207 FreeNAS is one of two open source operating systems that my company, iXsystems, develops and distributes free of charge and is at the heart of our line of TrueNAS enterprise storage products. While some of our competitors sell storage software similar to FreeNAS, we not only give it away but also do so with truly no strings attached -- competitors can and do take FreeNAS and build products based on it with zero obligation to share their changes. The freedom to do so is the fundamental tenet of permissively licensed open source software, and while it sounds self-defeating to be this generous, we’ve proven that leadership, not licensing, is the true secret to a successful open source business model. Err codemadness.org 70 i 63208 We each have our own personal definition of what is fair when it comes to open source. At iXsystems, we made a conscious decision to base FreeNAS and TrueOS on the FreeBSD operating system developed by the FreeBSD project. We stand on the shoulders of giants by using FreeBSD and we consider it quite reasonable to give back on the same generous terms that the FreeBSD project offers us. We could be selective in what we provide free of charge, but we believe that doing so would be short-sighted. In the long game we’re playing, the leadership we provide over the open source projects we produce is infinitely more important than any restrictions provided by the licenses of those and other open source projects. Err codemadness.org 70 i 63209 Twenty years in, we have no reason to change our free-software-on-great-hardware business model and giving away the software has brought an unexpected side-benefit: the largest Q/A department in the world, staffed by our passionate users who volunteer to let us know every thought they have about our software. We wouldn’t change a thing, and I encourage you to find exactly what win-win goodwill you and your company can provide to your constituents to make them not just a customer base but a community.
  • Err codemadness.org 70 i 63210
  • Drive The Conversation Err codemadness.org 70 i 63211 It took a leap of faith for us to give away the heart of our products in exchange for a passionate community, but doing so changes your customer's relationship with your brand from priced to priceless. This kind of relationship leverages a social contract instead of a legal one. Taking this approach empowers your users in ways they will not experience with other companies and it is your responsibility to lead, rather than control them with a project like FreeNAS
  • Err codemadness.org 70 i 63212
  • Relieve Customer Pain Points With Every New Release Err codemadness.org 70 i 63213 Responsiveness to the needs of your constituents is what distinguishes project leadership from project dictatorship. Be sure to balance your vision for your products and projects with the “real world” needs of your users. While our competition can use the software we develop, they will at best wow users with specific features rather than project-wide ones. Never underestimate how grateful a user will be when you make their job easier.
  • Err codemadness.org 70 i 63214
  • Accept That A Patent Is Not A Business Model Err codemadness.org 70 i 63215 Patents are considered the ultimate control mechanism in the technology industry, but they only provide a business model if you have a monopoly and monopolies are illegal. Resist getting hung up on the control you can establish over your customers and spend your time acquiring and empowering them. The moment you both realize that your success is mutual, you have a relationship that will last longer than any single sale. You’ll be pleasantly surprised how the relationships you build will transcend the specific companies that friends you make work for.
  • Err codemadness.org 70 i 63216
  • Distinguish Leadership From Management Err codemadness.org 70 i 63217 Every company has various levels of management, but leadership is the magic that creates markets where they did not exist and aligns paying customers with value that you can deliver in a profitable manner. Leadership and vision are ultimately the most proprietary aspects of a technology business, over every patentable piece of hardware or licensable piece of software. Whether you create a new market or bring efficiency to an existing one, your leadership is your secret weapon -- not your level of control.
  • Err codemadness.org 70 i 63218
Err codemadness.org 70 i 63219
Err codemadness.org 70 i 63220 Err codemadness.org 70 i 63221 Err codemadness.org 70 i 63222

News Roundup

Err codemadness.org 70 i 63223 Err codemadness.org 70 i 63224 Err codemadness.org 70 i 63225 Err codemadness.org 70 i 63226

Introduction to Jails and Jail Networking on FreeBSD

Err codemadness.org 70 i 63227 Err codemadness.org 70 i 63228 Err codemadness.org 70 i 63229 Err codemadness.org 70 i 63230
Err codemadness.org 70 i 63231

Jails basically partition a FreeBSD system into various isolated sub-systems called jails. The syscall and userspace tools first appeared in FreeBSD 4.0 (~ March 2000) with subsequent releases expanding functionality and improving existing features as well as usability. Err codemadness.org 70 i 63232 + For Linux users, jails are similar to LXC, used for resource/process isolation. Unlike LXC however, jails are a first-class concept and are well integrated into the base system. Essentially however, both offer a chroot-with-extra-separation feeling. Err codemadness.org 70 i 63233 Setting up a jail is a fairly simple process, which can essentially be split into three steps: Err codemadness.org 70 i 63234 + Place the stuff you want to run and the stuff it needs to run somewhere on your filesystem. Err codemadness.org 70 i 63235 + Add some basic configuration for the jail in jail.conf. Err codemadness.org 70 i 63236 + Fire up the jail. Err codemadness.org 70 i 63237 To confirm that the jail started successfully we can use the jls utility: Err codemadness.org 70 i 63238 We can now enter the jailed environment by using jexec, which will by default execute a root shell inside the named jail Err codemadness.org 70 i 63239 A jail can only see and use addresses that have been passed down to it by the parent system. This creates a slight problem with the loopback address: The host would probably like to keep that address to itself and not share it with any jail. Err codemadness.org 70 i 63240 Because of this, the loopback-address inside a jail is emulated by the system: Err codemadness.org 70 i 63241 + 127.0.0.1 is an alias for the first IPv4-address assigned to the jail. Err codemadness.org 70 i 63242 + ::1 is an alias for the first IPv6-address assigned to the jail. Err codemadness.org 70 i 63243 While this looks simple enough and usually works just fine[tm], it is also a source of many problems. Just imagine if your jail has only one single global IPv4 assigned to it. A daemon binding its (possibly unsecured) control port to the loopback-address would then unwillingly be exposed to the rest of the internet, which is hardly ever a good idea. Err codemadness.org 70 i 63244 + So, create an extra loopback adapter, and make the first IP in each jail a private loopback address Err codemadness.org 70 i 63245 + The tutorial goes on to cover making multiple jails share a single public IP address using NAT Err codemadness.org 70 i 63246 + It also covers more advanced concepts like ‘thin’ jails, to save some disk space if you are going to create a large number of jails, and how to upgrade them after the fact Err codemadness.org 70 i 63247 + Finally, it covers the integration with a lot of common tools, like identifying and filter jailed processes using top and ps, or using the package managers support for jails to install packages in a jail from the outside.

Err codemadness.org 70 i 63248
Err codemadness.org 70 i 63249 Err codemadness.org 70 i 63250
Err codemadness.org 70 i 63251 Err codemadness.org 70 i 63252 Err codemadness.org 70 i 63253 Err codemadness.org 70 i 63254 **DigitalOcean** Err codemadness.org 70 i 63255 Err codemadness.org 70 i 63256 Err codemadness.org 70 i 63257 Err codemadness.org 70 i 63258

SmartOS release-20180315

Err codemadness.org 70 i 63259 Err codemadness.org 70 i 63260 ``` Err codemadness.org 70 i 63261 Err codemadness.org 70 i 63262 Hello All, Err codemadness.org 70 i 63263 Err codemadness.org 70 i 63264 The latest bi-weekly "release" branch build of SmartOS is up: Err codemadness.org 70 i 63265 Err codemadness.org 70 i 63266 Err codemadness.org 70 i 63267
curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos-latest.iso	Err	codemadness.org	70
i 63268 curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos-latest-USB.img.bz2	Err	codemadness.org	70
i 63269 curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos-latest.vmwarevm.tar.bz2	Err	codemadness.org	70
i 63270 
Err codemadness.org 70 i 63271 Err codemadness.org 70 i 63272 A generated changelog is here: Err codemadness.org 70 i 63273 Err codemadness.org 70 i 63274
https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos.html#20180329T002644Z	Err	codemadness.org	70
i 63275 
Err codemadness.org 70 i 63276 Err codemadness.org 70 i 63277 The full build bits directory, for those interested, is here in Manta: Err codemadness.org 70 i 63278 Err codemadness.org 70 i 63279
/Joyent_Dev/public/SmartOS/20180329T002644Z	Err	codemadness.org	70
i 63280 
Err codemadness.org 70 i 63281 Err codemadness.org 70 i 63282

Highlights

Err codemadness.org 70 i 63283 Err codemadness.org 70 i 63284 Firewall rules created with fwadm(1M) can now use the PRIORITY keyword to Err codemadness.org 70 i 63285 specify a higher precedence for a rule. Err codemadness.org 70 i 63286 Err codemadness.org 70 i 63287 This release has includes mitigation of the Intel Meltdown vulnerability in the Err codemadness.org 70 i 63288 form of kpti (kernel page table isolation) with PCID (process context Err codemadness.org 70 i 63289 identifier) support Err codemadness.org 70 i 63290 Err codemadness.org 70 i 63291 This release also includes experimental support for bhyve branded zones. Err codemadness.org 70 i 63292 Err codemadness.org 70 i 63293 Err codemadness.org 70 i 63294 Err codemadness.org 70 i 63295 Err codemadness.org 70 i 63296

General Info

Err codemadness.org 70 i 63297 Err codemadness.org 70 i 63298 Every second Thursday we roll a "release-YYYYMMDD" release branch and Err codemadness.org 70 i 63299 builds for SmartOS (and Triton DataCenter and Manta, as well). Err codemadness.org 70 i 63300 Err codemadness.org 70 i 63301 Cheers, Err codemadness.org 70 i 63302 Josh Wilsdon, on behalf of the SmartOS developers Err codemadness.org 70 i 63303 https://smartos.org Err codemadness.org 70 i 63304 ``` Err codemadness.org 70 i 63305 Err codemadness.org 70 i 63306
    Err codemadness.org 70 i 63307
  • Here's a screencap from q5sys' machine showing the output of sysinfo: https://i.imgur.com/MFkNi76.jpg
  • Err codemadness.org 70 i 63308
Err codemadness.org 70 i 63309 Err codemadness.org 70 i 63310


Err codemadness.org 70 i 63311 Err codemadness.org 70 i 63312

FreeBSD Foundation March 2018 Update

Err codemadness.org 70 i 63313 Err codemadness.org 70 i 63314
    Err codemadness.org 70 i 63315
  • > Syzkaller update: Syzkaller is a coverage-guided system call fuzzer. It invokes syscalls with arbitrary and changing inputs, and is intended to use code coverage data to guide changes to system call inputs in order to access larger and larger portions of the kernel in the search for bugs.
  • Err codemadness.org 70 i 63316
  • > Last term’s student focused largely on scripts to deploy and configure Syzkaller on Packet.net’s hosting infrastructure, but did not get to the code coverage integration required for Syzkaller to be effective. This term co-op student Mitchell Horne has been adding code coverage support in FreeBSD for Syzkaller.
  • Err codemadness.org 70 i 63317
  • > The Linux code coverage support for Syzkaller is known as kcov and was submitted by Dmitry Vyukov, Syzkaller’s author. Kcov is purposebuilt for Syzkaller: Err codemadness.org 70 i 63318
    • > kcov provides code coverage collection for coverage-guided fuzzing (randomized testing). Coverage-guided fuzzing is a testing technique that uses coverage feedback to determine new interesting inputs to a system.
    • Err codemadness.org 70 i 63319
    • > kcov does not aim to collect as much coverage as possible. It aims to collect more or less stable coverage that is function of syscall inputs. To achieve this goal it does not collect coverage in soft/hard interrupts and instrumentation of some inherently non-deterministic or non-interesting parts of kernel is disabled (e.g. scheduler, locking).
  • Err codemadness.org 70 i 63320
  • > Mitchell implemented equivalent functionality for FreeBSD - a distinct implementation, but modelled on the one in Linux. These patches are currently in review, as are minor changes to Syzkaller to use the new interface on FreeBSD.
  • Err codemadness.org 70 i 63321
  • > We still have some additional work to fully integrate Syzkaller and run it on a consistent basis, but the brief testing that has been completed suggests this work will provide a very valuable improvement in test coverage and opportunities for system hardening: we tested Syzkaller with Mitchell's code coverage patch over a weekend. It provoked kernel crashes hundreds of times faster than without his work.
  • Err codemadness.org 70 i 63322
  • > I want to say thank you to NetApp for becoming an Iridium Partner again this Err codemadness.org 70 i 63323 year! (Donations between $100,000 - $249,999) It’s companies like NetApp, who recognize the importance of supporting our efforts, that allow us to continue to provide software improvements, advocate for FreeBSD, and help lead the release engineering and security efforts.
  • Err codemadness.org 70 i 63324
  • > Conference Recap: FOSSASIA 2018
  • Err codemadness.org 70 i 63325
  • Foundation Director Philip Paeps went to FOSSASIA, which is possibly the largest open source event in Asia. The FreeBSD Foundation sponsored the conference.
  • Err codemadness.org 70 i 63326
  • Our booth had a constant stream of traffic over the weekend and we handed out hundreds of FreeBSD stickers, pens and flyers. Many attendees of FOSSASIA had never heard of FreeBSD before and are now keen to start exploring and perhaps even contributing. By the end of the conference, there were FreeBSD stickers everywhere!
  • Err codemadness.org 70 i 63327
  • > One particular hallway-track conversation led to an invitation to present FreeBSD at a "Women Who Code" evening in Kuala Lumpur later this week (Thursday 29th March). I spent the days after the conference meeting companies who use (or want to use) FreeBSD in Singapore.
  • Err codemadness.org 70 i 63328
  • > SCaLE 16x: The Foundation sponsored a FreeBSD table in the expo hall that was Err codemadness.org 70 i 63329 staffed by Dru Lavigne, Warren Block, and Deb Goodkin. Our purpose was to promote FreeBSD, and attract more users and contributors to the Project. We had a steady flow of people stopping by our table, asking inquisitive questions, and picking up some cool swag and FreeBSD handouts.
  • Err codemadness.org 70 i 63330
  • Deb Goodkin took some tutorials/trainings there and talked to a lot of other open source projects.
  • Err codemadness.org 70 i 63331
  • Err codemadness.org 70 i 63332

    Next year, we have the opportunity to have a BSD track, similar to the BSD Devroom at FOSDEM. We are looking for some volunteers in Southern California who can help organize this one or two-day event and help us educate more people about the BSDs. Let us know if you Err codemadness.org 70 i 63333 would like to help with this effort.

    Err codemadness.org 70 i 63334
  • Err codemadness.org 70 i 63335
  • Err codemadness.org 70 i 63336

    Roll Call: #WhoUsesFreeBSD

    Err codemadness.org 70 i 63337
  • Err codemadness.org 70 i 63338
  • Err codemadness.org 70 i 63339

    Many of you probably saw our post on social media asking Who Uses FreeBSD. Please help us answer this question to assist us in determining FreeBSD market share data, promote how companies are successfully using FreeBSD to encourage more companies to embrace Err codemadness.org 70 i 63340 FreeBSD, and to update the list of users on our website. Knowing who uses FreeBSD helps our contributors know where to look for jobs; knowing what universities teach with FreeBSD, helps companies know where to recruit, and knowing what products use FreeBSD helps us determine what features and technologies to support.

    Err codemadness.org 70 i 63341
  • Err codemadness.org 70 i 63342
  • Err codemadness.org 70 i 63343

    New Hosting Partner: Oregon State University Open Source Lab

    Err codemadness.org 70 i 63344
  • Err codemadness.org 70 i 63345
  • > We are pleased to announce that the Oregon State University (OSU) Open Source Lab (OSL), which hosts infrastructure for over 160 different open source projects, has agreed to host some of our servers for FreeBSD development. The first server, which should be arriving shortly, is an HP Enterprise Proliant DL360 Gen10 configured with NVDIMM memory which will be initially used for further development and testing of permanent memory support in the kernel.
  • Err codemadness.org 70 i 63346
  • Stay tuned for more news from the FreeBSD Foundation in May (next newsletter).
  • Err codemadness.org 70 i 63347
Err codemadness.org 70 i 63348 Err codemadness.org 70 i 63349


Err codemadness.org 70 i 63350 Err codemadness.org 70 i 63351

Beastie Bits

Err codemadness.org 70 i 63352 Err codemadness.org 70 i 63353 Err codemadness.org 70 i 63360 Err codemadness.org 70 i 63361


Err codemadness.org 70 i 63362 Err codemadness.org 70 i 63363

Tarsnap

Err codemadness.org 70 i 63364 Err codemadness.org 70 i 63365

Feedback/Questions

Err codemadness.org 70 i 63366 Err codemadness.org 70 i 63367 Err codemadness.org 70 i 63373 Err codemadness.org 70 i 63374


Err codemadness.org 70 i 63375 Err codemadness.org 70 i 63376
    Err codemadness.org 70 i 63377
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 63378
Err codemadness.org 70 i 63379 Err codemadness.org 70 i 63380


]]> Err codemadness.org 70 i 63381
Err codemadness.org 70 i 63382 Err codemadness.org 70 i 63383 TrueOS Stable 18.03 released, a look at F-stack, the secret to an open source business model, intro to jails and jail networking, FreeBSD Foundation March update, and the ipsec Errata.

Err codemadness.org 70 i 63384 Err codemadness.org 70 i 63385

Headlines

Err codemadness.org 70 i 63386 Err codemadness.org 70 i 63387

TrueOS STABLE 18.03 Release

Err codemadness.org 70 i 63388 Err codemadness.org 70 i 63389
Err codemadness.org 70 i 63390

The TrueOS team is pleased to announce the availability of a new STABLE release of the TrueOS project (version 18.03). This is a special release due to the security issues impacting the computing world since the beginning of 2018. In particular, mitigating the “Meltdown” and “Spectre” system exploits make it necessary to update the entire package ecosystem for TrueOS. This release does not replace the scheduled June STABLE update, but provides the necessary and expected security updates for the STABLE release branch of TrueOS, even though this is part-way through our normal release cycle.

Err codemadness.org 70 i 63391
Err codemadness.org 70 i 63392 Err codemadness.org 70 i 63393
    Err codemadness.org 70 i 63394
  • Important changes between version 17.12 and 18.03

    Err codemadness.org 70 i 63395 Err codemadness.org 70 i 63396
    • “Meltdown” security fixes: This release contains all the fixes to FreeBSD which mitigate the security issues for systems that utilize Intel-based processors when running virtual machines such as FreeBSD jails. Please note that virtual machines or jails must also be updated to a version of FreeBSD or TrueOS which contains these security fixes.
    • Err codemadness.org 70 i 63397
    • “Spectre” security mitigations: This release contains all current mitigations from FreeBSD HEAD for the Spectre memory-isolation attacks (Variant 2). All 3rd-party packages for this release are also compiled with LLVM/Clang 6 (the “retpoline” mitigation strategy). This fixes many memory allocation issues and enforces stricter requirements for code completeness and memory usage within applications. Unfortunately, some 3rd-party applications became unavailable as pre-compiled packages due to non-compliance with these updated standards. These applications are currently being fixed either by the upstream authors or the FreeBSD port maintainers. If there are any concerns about the availability of a critical application for a specific workflow, please search through the changelog of packages between TrueOS 17.12 and 18.03 to verify the status of the application.
  • Err codemadness.org 70 i 63398
Err codemadness.org 70 i 63399 Err codemadness.org 70 i 63400
Err codemadness.org 70 i 63401

Most systems will need microcode updates for additional Spectre mitigations. The microcode updates are not enabled by default. This work is considered experimental because it is in active development by the upstream vendors. If desired, the microcode updates are available with the new devcpu-data package, which is available in the Appcafe. Install this package and enable the new microcode_update service to apply the latest runtime code when booting the system.

Err codemadness.org 70 i 63402
Err codemadness.org 70 i 63403 Err codemadness.org 70 i 63404
    Err codemadness.org 70 i 63405
  • Important security-based package updates

    Err codemadness.org 70 i 63406 Err codemadness.org 70 i 63407
    • LibreSSL is updated from version 2.6.3 -> 2.6.4
    • Err codemadness.org 70 i 63408
    • Reminder: LibreSSL is used on TrueOS to build any package which does not explicitly require OpenSSL. All applications that utilize the SSL transport layer are now running with the latest security updates.
    • Err codemadness.org 70 i 63409
    • Browser updates: (Keep in mind that many browsers have also implemented their own security mitigations in the aftermath of the Spectre exploit.)
    • Err codemadness.org 70 i 63410
    • Firefox: 57.0.1 -> 58.0.2
    • Err codemadness.org 70 i 63411
    • Chromium: 61.0.3163.100 -> 63.0.3239.132
    • Err codemadness.org 70 i 63412
    • Qt5 Webengine (QupZilla, Falkon, many others): 5.7.1 -> 5.9.4
  • Err codemadness.org 70 i 63413
  • All pre-compiled packages for this release are built with the latest versions of LLVM/Clang, unless the package explicitly requires GCC. These packages also utilize the latest compile-time mitigations for memory-access security concerns.

  • Err codemadness.org 70 i 63414
Err codemadness.org 70 i 63415 Err codemadness.org 70 i 63416


Err codemadness.org 70 i 63417 Err codemadness.org 70 i 63418

F-Stack

Err codemadness.org 70 i 63419 Err codemadness.org 70 i 63420
Err codemadness.org 70 i 63421

F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API. http://www.f-stack.org

Err codemadness.org 70 i 63422
Err codemadness.org 70 i 63423 Err codemadness.org 70 i 63424
    Err codemadness.org 70 i 63425
  • Introduction Err codemadness.org 70 i 63426 With the rapid development of NIC, the poor performance of data packets processing with Linux kernel has become the bottleneck. However, the rapid development of the Internet needs high performance of network processing, kernel bypass has caught more and more attentions. There are various similar technologies appear, such as DPDK, NETMAP and PF_RING. The main idea of kernel bypass is that Linux is only used to deal with control flow, all data streams are processed in user space. Therefore, kernel bypass can avoid performance bottlenecks caused by kernel packet copying, thread scheduling, system calls and interrupts. Furthermore, kernel bypass can achieve higher performance with multi optimizing methods. Within various techniques, DPDK has been widely used because of its more thorough isolation from kernel scheduling and active community support.

  • Err codemadness.org 70 i 63427
  • F-Stack is an open source network framework with high performance based on DPDK. With following characteristics

    Err codemadness.org 70 i 63428 Err codemadness.org 70 i 63429
    • Ultra high network performance which can achieve network card under full load, 10 million concurrent connections, 5 million RPS, 1 million CPS.
    • Err codemadness.org 70 i 63430
    • Transplant FreeBSD 11.01 user space stack, provides a complete stack function, cut a great amount of irrelevant features. Therefore greatly enhance the performance.
    • Err codemadness.org 70 i 63431
    • Support Nginx, Redis and other mature applications, service can easily use F-Stack
    • Err codemadness.org 70 i 63432
    • With Multi-process architecture, easy to extend
    • Err codemadness.org 70 i 63433
    • Provide micro thread interface. Various applications with stateful app can easily use F-Stack to get high performance without processing complex asynchronous logic.
    • Err codemadness.org 70 i 63434
    • Provide Epoll/Kqueue interface that allow many kinds of applications easily use F-Stack
  • Err codemadness.org 70 i 63435
  • History

  • Err codemadness.org 70 i 63436
Err codemadness.org 70 i 63437 Err codemadness.org 70 i 63438
Err codemadness.org 70 i 63439

In order to deal with the increasingly severe DDoS attacks, authorized DNS server of Tencent Cloud DNSPod switched from Gigabit Ethernet to 10-Gigabit at the end of 2012. We faced several options, one is to continue to use the original model another is to use kernel bypass technology. After several rounds of investigation, we finally chose to develop our next generation of DNS server based on DPDK. The reason is DPDK provides ultra-high performance and can be seamlessly extended to 40G, or even 100G NIC in the future.

Err codemadness.org 70 i 63440 Err codemadness.org 70 i 63441

After several months of development and testing, DKDNS, high-performance DNS server based on DPDK officially released in October 2013. It's capable of achieving up to 11 million QPS with a single 10GE port and 18.2 million QPS with two 10GE ports. And then we developed a user-space TCP/IP stack called F-Stack that can process 0.6 million RPS with a single 10GE port.

Err codemadness.org 70 i 63442 Err codemadness.org 70 i 63443

With the fast growth of Tencent Cloud, more and more services need higher network access performance. Meanwhile, F-Stack was continuous improving driven by the business growth, and ultimately developed into a general network access framework. But this TCP/IP stack couldn't meet the needs of these services while continue to develop and maintain a complete network stack will cost high, we've tried several plans and finally determined to port FreeBSD(11.0 stable) TCP/IP stack into F-Stack. Thus, we can reduce the cost of maintenance and follow up the improvement from community quickly.Thanks to libplebnet and libuinet, this work becomes a lot easier.

Err codemadness.org 70 i 63444 Err codemadness.org 70 i 63445

With the rapid development of all kinds of application, in order to help different APPs quick and easily use F-Stack, F-Stack has integrated Nginx, Redis and other commonly used APPs, and a micro thread framework, and provides a standard Epoll/Kqueue interface.

Err codemadness.org 70 i 63446 Err codemadness.org 70 i 63447

Currently, besides authorized DNS server of DNSPod, there are various products in Tencent Cloud has used the F-Stack, such as HttpDNS (D+), COS access module, CDN access module, etc..

Err codemadness.org 70 i 63448
Err codemadness.org 70 i 63449 Err codemadness.org 70 i 63450


Err codemadness.org 70 i 63451 Err codemadness.org 70 i 63452

iXsystems

Err codemadness.org 70 i 63453 Err codemadness.org 70 i 63454

Leadership Is The Secret To An Open Source Business Model

Err codemadness.org 70 i 63455 Err codemadness.org 70 i 63456
    Err codemadness.org 70 i 63457
  • A Forbes article by Mike Lauth, CEO of iXsystems Err codemadness.org 70 i 63458 Err codemadness.org 70 i 63459 Err codemadness.org 70 i 63460
    Err codemadness.org 70 i 63461 There is a good chance you’ve never heard of open source software and an even greater one that you’re using it every day without even realizing it. Open source software is computer software that is available under a variety of licenses that all encourage the sharing of the software and its underlying source code. Open source has powered the internet from day one and today powers the cloud and just about everything connected to it from your mobile phone to virtually every internet of things device. Err codemadness.org 70 i 63462 FreeNAS is one of two open source operating systems that my company, iXsystems, develops and distributes free of charge and is at the heart of our line of TrueNAS enterprise storage products. While some of our competitors sell storage software similar to FreeNAS, we not only give it away but also do so with truly no strings attached -- competitors can and do take FreeNAS and build products based on it with zero obligation to share their changes. The freedom to do so is the fundamental tenet of permissively licensed open source software, and while it sounds self-defeating to be this generous, we’ve proven that leadership, not licensing, is the true secret to a successful open source business model. Err codemadness.org 70 i 63463 We each have our own personal definition of what is fair when it comes to open source. At iXsystems, we made a conscious decision to base FreeNAS and TrueOS on the FreeBSD operating system developed by the FreeBSD project. We stand on the shoulders of giants by using FreeBSD and we consider it quite reasonable to give back on the same generous terms that the FreeBSD project offers us. We could be selective in what we provide free of charge, but we believe that doing so would be short-sighted. In the long game we’re playing, the leadership we provide over the open source projects we produce is infinitely more important than any restrictions provided by the licenses of those and other open source projects. Err codemadness.org 70 i 63464 Twenty years in, we have no reason to change our free-software-on-great-hardware business model and giving away the software has brought an unexpected side-benefit: the largest Q/A department in the world, staffed by our passionate users who volunteer to let us know every thought they have about our software. We wouldn’t change a thing, and I encourage you to find exactly what win-win goodwill you and your company can provide to your constituents to make them not just a customer base but a community.
  • Err codemadness.org 70 i 63465
  • Drive The Conversation Err codemadness.org 70 i 63466 It took a leap of faith for us to give away the heart of our products in exchange for a passionate community, but doing so changes your customer's relationship with your brand from priced to priceless. This kind of relationship leverages a social contract instead of a legal one. Taking this approach empowers your users in ways they will not experience with other companies and it is your responsibility to lead, rather than control them with a project like FreeNAS
  • Err codemadness.org 70 i 63467
  • Relieve Customer Pain Points With Every New Release Err codemadness.org 70 i 63468 Responsiveness to the needs of your constituents is what distinguishes project leadership from project dictatorship. Be sure to balance your vision for your products and projects with the “real world” needs of your users. While our competition can use the software we develop, they will at best wow users with specific features rather than project-wide ones. Never underestimate how grateful a user will be when you make their job easier.
  • Err codemadness.org 70 i 63469
  • Accept That A Patent Is Not A Business Model Err codemadness.org 70 i 63470 Patents are considered the ultimate control mechanism in the technology industry, but they only provide a business model if you have a monopoly and monopolies are illegal. Resist getting hung up on the control you can establish over your customers and spend your time acquiring and empowering them. The moment you both realize that your success is mutual, you have a relationship that will last longer than any single sale. You’ll be pleasantly surprised how the relationships you build will transcend the specific companies that friends you make work for.
  • Err codemadness.org 70 i 63471
  • Distinguish Leadership From Management Err codemadness.org 70 i 63472 Every company has various levels of management, but leadership is the magic that creates markets where they did not exist and aligns paying customers with value that you can deliver in a profitable manner. Leadership and vision are ultimately the most proprietary aspects of a technology business, over every patentable piece of hardware or licensable piece of software. Whether you create a new market or bring efficiency to an existing one, your leadership is your secret weapon -- not your level of control.
  • Err codemadness.org 70 i 63473
Err codemadness.org 70 i 63474
Err codemadness.org 70 i 63475 Err codemadness.org 70 i 63476 Err codemadness.org 70 i 63477

News Roundup

Err codemadness.org 70 i 63478 Err codemadness.org 70 i 63479 Err codemadness.org 70 i 63480 Err codemadness.org 70 i 63481

Introduction to Jails and Jail Networking on FreeBSD

Err codemadness.org 70 i 63482 Err codemadness.org 70 i 63483 Err codemadness.org 70 i 63484 Err codemadness.org 70 i 63485
Err codemadness.org 70 i 63486

Jails basically partition a FreeBSD system into various isolated sub-systems called jails. The syscall and userspace tools first appeared in FreeBSD 4.0 (~ March 2000) with subsequent releases expanding functionality and improving existing features as well as usability. Err codemadness.org 70 i 63487 + For Linux users, jails are similar to LXC, used for resource/process isolation. Unlike LXC however, jails are a first-class concept and are well integrated into the base system. Essentially however, both offer a chroot-with-extra-separation feeling. Err codemadness.org 70 i 63488 Setting up a jail is a fairly simple process, which can essentially be split into three steps: Err codemadness.org 70 i 63489 + Place the stuff you want to run and the stuff it needs to run somewhere on your filesystem. Err codemadness.org 70 i 63490 + Add some basic configuration for the jail in jail.conf. Err codemadness.org 70 i 63491 + Fire up the jail. Err codemadness.org 70 i 63492 To confirm that the jail started successfully we can use the jls utility: Err codemadness.org 70 i 63493 We can now enter the jailed environment by using jexec, which will by default execute a root shell inside the named jail Err codemadness.org 70 i 63494 A jail can only see and use addresses that have been passed down to it by the parent system. This creates a slight problem with the loopback address: The host would probably like to keep that address to itself and not share it with any jail. Err codemadness.org 70 i 63495 Because of this, the loopback-address inside a jail is emulated by the system: Err codemadness.org 70 i 63496 + 127.0.0.1 is an alias for the first IPv4-address assigned to the jail. Err codemadness.org 70 i 63497 + ::1 is an alias for the first IPv6-address assigned to the jail. Err codemadness.org 70 i 63498 While this looks simple enough and usually works just fine[tm], it is also a source of many problems. Just imagine if your jail has only one single global IPv4 assigned to it. A daemon binding its (possibly unsecured) control port to the loopback-address would then unwillingly be exposed to the rest of the internet, which is hardly ever a good idea. Err codemadness.org 70 i 63499 + So, create an extra loopback adapter, and make the first IP in each jail a private loopback address Err codemadness.org 70 i 63500 + The tutorial goes on to cover making multiple jails share a single public IP address using NAT Err codemadness.org 70 i 63501 + It also covers more advanced concepts like ‘thin’ jails, to save some disk space if you are going to create a large number of jails, and how to upgrade them after the fact Err codemadness.org 70 i 63502 + Finally, it covers the integration with a lot of common tools, like identifying and filter jailed processes using top and ps, or using the package managers support for jails to install packages in a jail from the outside.

Err codemadness.org 70 i 63503
Err codemadness.org 70 i 63504 Err codemadness.org 70 i 63505
Err codemadness.org 70 i 63506 Err codemadness.org 70 i 63507 Err codemadness.org 70 i 63508 Err codemadness.org 70 i 63509 **DigitalOcean** Err codemadness.org 70 i 63510 Err codemadness.org 70 i 63511 Err codemadness.org 70 i 63512 Err codemadness.org 70 i 63513

SmartOS release-20180315

Err codemadness.org 70 i 63514 Err codemadness.org 70 i 63515 ``` Err codemadness.org 70 i 63516 Err codemadness.org 70 i 63517 Hello All, Err codemadness.org 70 i 63518 Err codemadness.org 70 i 63519 The latest bi-weekly "release" branch build of SmartOS is up: Err codemadness.org 70 i 63520 Err codemadness.org 70 i 63521 Err codemadness.org 70 i 63522
curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos-latest.iso	Err	codemadness.org	70
i 63523 curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos-latest-USB.img.bz2	Err	codemadness.org	70
i 63524 curl -C - -O https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos-latest.vmwarevm.tar.bz2	Err	codemadness.org	70
i 63525 
Err codemadness.org 70 i 63526 Err codemadness.org 70 i 63527 A generated changelog is here: Err codemadness.org 70 i 63528 Err codemadness.org 70 i 63529
https://us-east.manta.joyent.com/Joyent_Dev/public/SmartOS/smartos.html#20180329T002644Z	Err	codemadness.org	70
i 63530 
Err codemadness.org 70 i 63531 Err codemadness.org 70 i 63532 The full build bits directory, for those interested, is here in Manta: Err codemadness.org 70 i 63533 Err codemadness.org 70 i 63534
/Joyent_Dev/public/SmartOS/20180329T002644Z	Err	codemadness.org	70
i 63535 
Err codemadness.org 70 i 63536 Err codemadness.org 70 i 63537

Highlights

Err codemadness.org 70 i 63538 Err codemadness.org 70 i 63539 Firewall rules created with fwadm(1M) can now use the PRIORITY keyword to Err codemadness.org 70 i 63540 specify a higher precedence for a rule. Err codemadness.org 70 i 63541 Err codemadness.org 70 i 63542 This release has includes mitigation of the Intel Meltdown vulnerability in the Err codemadness.org 70 i 63543 form of kpti (kernel page table isolation) with PCID (process context Err codemadness.org 70 i 63544 identifier) support Err codemadness.org 70 i 63545 Err codemadness.org 70 i 63546 This release also includes experimental support for bhyve branded zones. Err codemadness.org 70 i 63547 Err codemadness.org 70 i 63548 Err codemadness.org 70 i 63549 Err codemadness.org 70 i 63550 Err codemadness.org 70 i 63551

General Info

Err codemadness.org 70 i 63552 Err codemadness.org 70 i 63553 Every second Thursday we roll a "release-YYYYMMDD" release branch and Err codemadness.org 70 i 63554 builds for SmartOS (and Triton DataCenter and Manta, as well). Err codemadness.org 70 i 63555 Err codemadness.org 70 i 63556 Cheers, Err codemadness.org 70 i 63557 Josh Wilsdon, on behalf of the SmartOS developers Err codemadness.org 70 i 63558 https://smartos.org Err codemadness.org 70 i 63559 ``` Err codemadness.org 70 i 63560 Err codemadness.org 70 i 63561
    Err codemadness.org 70 i 63562
  • Here's a screencap from q5sys' machine showing the output of sysinfo: https://i.imgur.com/MFkNi76.jpg
  • Err codemadness.org 70 i 63563
Err codemadness.org 70 i 63564 Err codemadness.org 70 i 63565


Err codemadness.org 70 i 63566 Err codemadness.org 70 i 63567

FreeBSD Foundation March 2018 Update

Err codemadness.org 70 i 63568 Err codemadness.org 70 i 63569
    Err codemadness.org 70 i 63570
  • > Syzkaller update: Syzkaller is a coverage-guided system call fuzzer. It invokes syscalls with arbitrary and changing inputs, and is intended to use code coverage data to guide changes to system call inputs in order to access larger and larger portions of the kernel in the search for bugs.
  • Err codemadness.org 70 i 63571
  • > Last term’s student focused largely on scripts to deploy and configure Syzkaller on Packet.net’s hosting infrastructure, but did not get to the code coverage integration required for Syzkaller to be effective. This term co-op student Mitchell Horne has been adding code coverage support in FreeBSD for Syzkaller.
  • Err codemadness.org 70 i 63572
  • > The Linux code coverage support for Syzkaller is known as kcov and was submitted by Dmitry Vyukov, Syzkaller’s author. Kcov is purposebuilt for Syzkaller: Err codemadness.org 70 i 63573
    • > kcov provides code coverage collection for coverage-guided fuzzing (randomized testing). Coverage-guided fuzzing is a testing technique that uses coverage feedback to determine new interesting inputs to a system.
    • Err codemadness.org 70 i 63574
    • > kcov does not aim to collect as much coverage as possible. It aims to collect more or less stable coverage that is function of syscall inputs. To achieve this goal it does not collect coverage in soft/hard interrupts and instrumentation of some inherently non-deterministic or non-interesting parts of kernel is disabled (e.g. scheduler, locking).
  • Err codemadness.org 70 i 63575
  • > Mitchell implemented equivalent functionality for FreeBSD - a distinct implementation, but modelled on the one in Linux. These patches are currently in review, as are minor changes to Syzkaller to use the new interface on FreeBSD.
  • Err codemadness.org 70 i 63576
  • > We still have some additional work to fully integrate Syzkaller and run it on a consistent basis, but the brief testing that has been completed suggests this work will provide a very valuable improvement in test coverage and opportunities for system hardening: we tested Syzkaller with Mitchell's code coverage patch over a weekend. It provoked kernel crashes hundreds of times faster than without his work.
  • Err codemadness.org 70 i 63577
  • > I want to say thank you to NetApp for becoming an Iridium Partner again this Err codemadness.org 70 i 63578 year! (Donations between $100,000 - $249,999) It’s companies like NetApp, who recognize the importance of supporting our efforts, that allow us to continue to provide software improvements, advocate for FreeBSD, and help lead the release engineering and security efforts.
  • Err codemadness.org 70 i 63579
  • > Conference Recap: FOSSASIA 2018
  • Err codemadness.org 70 i 63580
  • Foundation Director Philip Paeps went to FOSSASIA, which is possibly the largest open source event in Asia. The FreeBSD Foundation sponsored the conference.
  • Err codemadness.org 70 i 63581
  • Our booth had a constant stream of traffic over the weekend and we handed out hundreds of FreeBSD stickers, pens and flyers. Many attendees of FOSSASIA had never heard of FreeBSD before and are now keen to start exploring and perhaps even contributing. By the end of the conference, there were FreeBSD stickers everywhere!
  • Err codemadness.org 70 i 63582
  • > One particular hallway-track conversation led to an invitation to present FreeBSD at a "Women Who Code" evening in Kuala Lumpur later this week (Thursday 29th March). I spent the days after the conference meeting companies who use (or want to use) FreeBSD in Singapore.
  • Err codemadness.org 70 i 63583
  • > SCaLE 16x: The Foundation sponsored a FreeBSD table in the expo hall that was Err codemadness.org 70 i 63584 staffed by Dru Lavigne, Warren Block, and Deb Goodkin. Our purpose was to promote FreeBSD, and attract more users and contributors to the Project. We had a steady flow of people stopping by our table, asking inquisitive questions, and picking up some cool swag and FreeBSD handouts.
  • Err codemadness.org 70 i 63585
  • Deb Goodkin took some tutorials/trainings there and talked to a lot of other open source projects.
  • Err codemadness.org 70 i 63586
  • Err codemadness.org 70 i 63587

    Next year, we have the opportunity to have a BSD track, similar to the BSD Devroom at FOSDEM. We are looking for some volunteers in Southern California who can help organize this one or two-day event and help us educate more people about the BSDs. Let us know if you Err codemadness.org 70 i 63588 would like to help with this effort.

    Err codemadness.org 70 i 63589
  • Err codemadness.org 70 i 63590
  • Err codemadness.org 70 i 63591

    Roll Call: #WhoUsesFreeBSD

    Err codemadness.org 70 i 63592
  • Err codemadness.org 70 i 63593
  • Err codemadness.org 70 i 63594

    Many of you probably saw our post on social media asking Who Uses FreeBSD. Please help us answer this question to assist us in determining FreeBSD market share data, promote how companies are successfully using FreeBSD to encourage more companies to embrace Err codemadness.org 70 i 63595 FreeBSD, and to update the list of users on our website. Knowing who uses FreeBSD helps our contributors know where to look for jobs; knowing what universities teach with FreeBSD, helps companies know where to recruit, and knowing what products use FreeBSD helps us determine what features and technologies to support.

    Err codemadness.org 70 i 63596
  • Err codemadness.org 70 i 63597
  • Err codemadness.org 70 i 63598

    New Hosting Partner: Oregon State University Open Source Lab

    Err codemadness.org 70 i 63599
  • Err codemadness.org 70 i 63600
  • > We are pleased to announce that the Oregon State University (OSU) Open Source Lab (OSL), which hosts infrastructure for over 160 different open source projects, has agreed to host some of our servers for FreeBSD development. The first server, which should be arriving shortly, is an HP Enterprise Proliant DL360 Gen10 configured with NVDIMM memory which will be initially used for further development and testing of permanent memory support in the kernel.
  • Err codemadness.org 70 i 63601
  • Stay tuned for more news from the FreeBSD Foundation in May (next newsletter).
  • Err codemadness.org 70 i 63602
Err codemadness.org 70 i 63603 Err codemadness.org 70 i 63604


Err codemadness.org 70 i 63605 Err codemadness.org 70 i 63606

Beastie Bits

Err codemadness.org 70 i 63607 Err codemadness.org 70 i 63608 Err codemadness.org 70 i 63615 Err codemadness.org 70 i 63616


Err codemadness.org 70 i 63617 Err codemadness.org 70 i 63618

Tarsnap

Err codemadness.org 70 i 63619 Err codemadness.org 70 i 63620

Feedback/Questions

Err codemadness.org 70 i 63621 Err codemadness.org 70 i 63622 Err codemadness.org 70 i 63628 Err codemadness.org 70 i 63629


Err codemadness.org 70 i 63630 Err codemadness.org 70 i 63631
    Err codemadness.org 70 i 63632
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 63633
Err codemadness.org 70 i 63634 Err codemadness.org 70 i 63635


]]> Err codemadness.org 70 i 63636
Err codemadness.org 70 i 63637 https://fireside.fm/player/v2/FYhhasNR+ZgIsVF3j Err codemadness.org 70 i 63638 Err codemadness.org 70 i 63639 ]]> Err codemadness.org 70 i 63640 Err codemadness.org 70 i 63641
Err codemadness.org 70 i 63642 Err codemadness.org 70 i 63643 Episode 241: Bowling in the LimeLight | BSD Now 241 Err codemadness.org 70 i 63644 https://www.bsdnow.tv/241 Err codemadness.org 70 i 63645 http://feed.jupiter.zone/bsdnow#entry-1749 Err codemadness.org 70 i 63646 Thu, 12 Apr 2018 06:00:00 -0700 Err codemadness.org 70 i 63647 Allan Jude Err codemadness.org 70 i 63648 Err codemadness.org 70 i 63649 full Err codemadness.org 70 i 63650 Allan Jude Err codemadness.org 70 i 63651 Second round of ZFS improvements in FreeBSD, Postgres finds that non-FreeBSD/non-Illumos systems are corrupting data, interview with Kevin Bowling, BSDCan list of talks, and cryptographic right answers. Err codemadness.org 70 i 63652 2:01:00 Err codemadness.org 70 i 63653 no Err codemadness.org 70 i 63654 Err codemadness.org 70 i 63655 Second round of ZFS improvements in FreeBSD, Postgres finds that non-FreeBSD/non-Illumos systems are corrupting data, interview with Kevin Bowling, BSDCan list of talks, and cryptographic right answers. Err codemadness.org 70 i 63656 <h2>Headlines</h2> Err codemadness.org 70 i 63657 <h3>[Other big ZFS improvements you might have missed]</h3> Err codemadness.org 70 i 63658 Err codemadness.org 70 i 63659 <ul> Err codemadness.org 70 i 63660 <li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=329798">9075 Improve ZFS pool import/load process and corrupted pool recovery</a> Err codemadness.org 70 i 63661 Err codemadness.org 70 i 63662 Err codemadness.org 70 i 63663 <blockquote> Err codemadness.org 70 i 63664 <p>One of the first tasks during the pool load process is to parse a config provided from userland that describes what devices the pool is composed of. A vdev tree is generated from that config, and then all the vdevs are opened. Err codemadness.org 70 i 63665 The Meta Object Set (MOS) of the pool is accessed, and several metadata objects that are necessary to load the pool are read. The exact configuration of the pool is also stored inside the MOS. Since the configuration provided from userland is external and might not accurately describe the vdev tree of the pool at the txg that is being loaded, it cannot be relied upon to safely operate the pool. For that reason, the configuration in the MOS is read early on. In the past, the two configurations were compared together and if there was a mismatch then the load process was aborted and an error was returned. Err codemadness.org 70 i 63666 The latter was a good way to ensure a pool does not get corrupted, however it made the pool load process needlessly fragile in cases where the vdev configuration changed or the userland configuration was outdated. Since the MOS is stored in 3 copies, the configuration provided by userland doesn't have to be perfect in order to read its contents. Hence, a new approach has been adopted: The pool is first opened with the untrusted userland configuration just so that the real configuration can be read from the MOS. The trusted MOS configuration is then used to generate a new vdev tree and the pool is re-opened. Err codemadness.org 70 i 63667 When the pool is opened with an untrusted configuration, writes are disabled to avoid accidentally damaging it. During reads, some sanity checks are performed on block pointers to see if each DVA points to a known vdev; when the configuration is untrusted, instead of panicking the system if those checks fail we simply avoid issuing reads to the invalid DVAs. Err codemadness.org 70 i 63668 This new two-step pool load process now allows rewinding pools across vdev tree changes such as device replacement, addition, etc. Loading a pool from an external config file in a clustering environment also becomes much safer now since the pool will import even if the config is outdated and didn't, for instance, register a recent device addition. Err codemadness.org 70 i 63669 With this code in place, it became relatively easy to implement a long-sought-after feature: the ability to import a pool with missing top level (i.e. non-redundant) devices. Note that since this almost guarantees some loss Of data, this feature is for now restricted to a read-only import.</li> Err codemadness.org 70 i 63670 <li></p> Err codemadness.org 70 i 63671 Err codemadness.org 70 i 63672 <ul><li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=329732">7614 zfs device evacuation/removal</a> Err codemadness.org 70 i 63673 This project allows top-level vdevs to be removed from the storage pool with “zpool remove”, reducing the total amount of storage in the pool. This operation copies all allocated regions of the device to be removed onto other devices, recording the mapping from old to new location. After the removal is complete, read and free operations to the removed (now “indirect”) vdev must be remapped and performed at the new location on disk. The indirect mapping table is kept in memory whenever the pool is loaded, so there is minimal performance overhead when doing operations on the indirect vdev. Err codemadness.org 70 i 63674 The size of the in-memory mapping table will be reduced when its entries become “obsolete” because they are no longer used by any block pointers in the pool. An entry becomes obsolete when all the blocks that use it are freed. An entry can also become obsolete when all the snapshots that reference it are deleted, and the block pointers that reference it have been “remapped” in all filesystems/zvols (and clones). Whenever an indirect block is written, all the block pointers in it will be “remapped” to their new (concrete) locations if possible. This process can be accelerated by using the “zfs remap” command to proactively rewrite all indirect blocks that reference indirect (removed) vdevs. Err codemadness.org 70 i 63675 Note that when a device is removed, we do not verify the checksum of the data that is copied. This makes the process much faster, but if it were used on redundant vdevs (i.e. mirror or raidz vdevs), it would be possible to copy the wrong data, when we have the correct data on e.g. the other side of the mirror. Therefore, mirror and raidz devices can not be removed.</li></ul></li> Err codemadness.org 70 i 63676 <li>You can use ‘zpool detach’ to downgrade a mirror to a single top-level device, so that you can then remove it</li> Err codemadness.org 70 i 63677 <li> Err codemadness.org 70 i 63678 <ul><li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=329681">7446 zpool create should support efi system partition</a></li></ul></li> Err codemadness.org 70 i 63679 <li>This one was not actually merged into FreeBSD, as it doesn’t apply currently, but I would like to switch the way FreeBSD deals with full disks to be closer to IllumOS to make automatic spare replacement a hands-off operation. Err codemadness.org 70 i 63680 Since we support whole-disk configuration for boot pool, we also will need whole disk support with UEFI boot and for this, zpool create should create efi-system partition. I have borrowed the idea from oracle solaris, and introducing zpool create -B switch to provide an way to specify that boot partition should be created. However, there is still an question, how big should the system partition be. For time being, I have set default size 256MB (thats minimum size for FAT32 with 4k blocks). To support custom size, the set on creation "bootsize" property is created and so the custom size can be set as: zpool create -B -o bootsize=34MB rpool c0t0d0. After the pool is created, the "bootsize" property is read only. When -B switch is not used, the bootsize defaults to 0 and is shown in zpool get output with no value. Older zfs/zpool implementations can ignore this property.</li> Err codemadness.org 70 i 63681 </ul> Err codemadness.org 70 i 63682 Err codemadness.org 70 i 63683 <hr /> Err codemadness.org 70 i 63684 </blockquote> Err codemadness.org 70 i 63685 Err codemadness.org 70 i 63686 **Digital Ocean** Err codemadness.org 70 i 63687 Err codemadness.org 70 i 63688 Err codemadness.org 70 i 63689 Err codemadness.org 70 i 63690 <h3><a href="https://www.postgresql.org/message-id/flat/CAEepm%3D0B9f0O7jLE3ipUTqC3V6NO2LNbwE9Hp%3D3BxGbZPqEyQg%40mail.gmail.com#CAEepm=0B9f0O7jLE3ipUTqC3V6NO2LNbwE9Hp=3BxGbZPqEyQg@mail.gmail.com">PostgreSQL developers find that every operating system other than FreeBSD and IllumOS might corrupt your data</a></h3> Err codemadness.org 70 i 63691 Err codemadness.org 70 i 63692 Err codemadness.org 70 i 63693 Err codemadness.org 70 i 63694 <blockquote> Err codemadness.org 70 i 63695 <p>Some time ago I ran into an issue where a user encountered data corruption after a storage error. PostgreSQL played a part in that corruption by allowing checkpoint what should've been a fatal error. Err codemadness.org 70 i 63696 TL;DR: Pg should PANIC on fsync() EIO return. Retrying fsync() is not OK at least on Linux. When fsync() returns success it means "all writes since the last fsync have hit disk" but we assume it means "all writes since the last SUCCESSFUL fsync have hit disk". Err codemadness.org 70 i 63697 Pg wrote some blocks, which went to OS dirty buffers for writeback. Writeback failed due to an underlying storage error. The block I/O layer and XFS marked the writeback page as failed (AS<em>EIO), but had no way to tell the app about the failure. When Pg called fsync() on the FD during the next checkpoint, fsync() returned EIO because of the flagged page, to tell Pg that a previous async write failed. Pg treated the checkpoint as failed and didn't advance the redo start position in the control file. Err codemadness.org 70 i 63698 + All good so far. Err codemadness.org 70 i 63699 But then we retried the checkpoint, which retried the fsync(). The retry succeeded, because the prior fsync() *cleared the AS</em>EIO bad page flag*. Err codemadness.org 70 i 63700 The write never made it to disk, but we completed the checkpoint, and merrily carried on our way. Whoops, data loss. Err codemadness.org 70 i 63701 The clear-error-and-continue behaviour of fsync is not documented as far as I can tell. Nor is fsync() returning EIO unless you have a very new linux man-pages with the patch I wrote to add it. But from what I can see in the POSIX standard we are not given any guarantees about what happens on fsync() failure at all, so we're probably wrong to assume that retrying fsync() is safe. Err codemadness.org 70 i 63702 We already PANIC on fsync() failure for WAL segments. We just need to do the same for data forks at least for EIO. This isn't as bad as it seems because AFAICS fsync only returns EIO in cases where we should be stopping the world anyway, and many FSes will do that for us. Err codemadness.org 70 i 63703 + Upon further looking, it turns out it is not just Linux brain damage: Err codemadness.org 70 i 63704 Apparently I was too optimistic. I had looked only at FreeBSD, which keeps the page around and dirties it so we can retry, but the other BSDs apparently don't (<a href="https://github.com/freebsd/freebsd/commit/e4e8fec98ae986357cdc208b04557dba55a59266">FreeBSD changed that in 1999</a>). Err codemadness.org 70 i 63705 From what I can tell from the sources below, we have: Linux, OpenBSD, NetBSD: retrying fsync() after EIO lies Err codemadness.org 70 i 63706 FreeBSD, Illumos: retrying fsync() after EIO tells the truth Err codemadness.org 70 i 63707 + <a href="http://gnats.netbsd.org/53152">NetBSD PR to solve the issues </a> Err codemadness.org 70 i 63708 + I/O errors are not reported back to fsync at all. Err codemadness.org 70 i 63709 + Write errors during genfs_putpages that fail for any reason other than ENOMEM cause the data to be semi-silently discarded. Err codemadness.org 70 i 63710 + It appears that UVM pages are marked clean when they're selected to be written out, not after the write succeeds; so there are a bunch of potential races when writes fail. Err codemadness.org 70 i 63711 + It appears that write errors for buffercache buffers are semi-silently discarded as well.</p> Err codemadness.org 70 i 63712 </blockquote> Err codemadness.org 70 i 63713 Err codemadness.org 70 i 63714 <hr /> Err codemadness.org 70 i 63715 Err codemadness.org 70 i 63716 Err codemadness.org 70 i 63717 Err codemadness.org 70 i 63718 Err codemadness.org 70 i 63719 Err codemadness.org 70 i 63720 <h2>Interview - Kevin Bowling: Senior Manager Engineering of LimeLight Networks - <a href="mailto:kbowling@llnw.com">kbowling@llnw.com</a> / <a href="https://twitter.com/kevinbowling1">@kevinbowling1</a></h2> Err codemadness.org 70 i 63721 Err codemadness.org 70 i 63722 <ul> Err codemadness.org 70 i 63723 <li>BR: How did you first get introduced to UNIX and BSD?</li> Err codemadness.org 70 i 63724 <li>AJ: What got you started contributing to an open source project?</li> Err codemadness.org 70 i 63725 <li>BR: What sorts of things have you worked on it the past?</li> Err codemadness.org 70 i 63726 <li>AJ: Tell us a bit about LimeLight and how they use FreeBSD.</li> Err codemadness.org 70 i 63727 <li>BR: What are the biggest advantages of FreeBSD for LimeLight?</li> Err codemadness.org 70 i 63728 <li>AJ: What could FreeBSD do better that would benefit LimeLight?</li> Err codemadness.org 70 i 63729 <li>BR: What has LimeLight given back to FreeBSD?</li> Err codemadness.org 70 i 63730 <li>AJ: What have you been working on more recently?</li> Err codemadness.org 70 i 63731 <li>BR: What do you find to be the most valuable part of open source?</li> Err codemadness.org 70 i 63732 <li>AJ: Where do you think the most improvement in open source is needed?</li> Err codemadness.org 70 i 63733 <li>BR: Tell us a bit about your computing history collection. What are your three favourite pieces?</li> Err codemadness.org 70 i 63734 <li>AJ: How do you keep motivated to work on Open Source?</li> Err codemadness.org 70 i 63735 <li>BR: What do you do for fun?</li> Err codemadness.org 70 i 63736 <li>AJ: Anything else you want to mention?</li> Err codemadness.org 70 i 63737 </ul> Err codemadness.org 70 i 63738 Err codemadness.org 70 i 63739 <hr /> Err codemadness.org 70 i 63740 <h2>News Roundup</h2> Err codemadness.org 70 i 63741 Err codemadness.org 70 i 63742 <h3><a href="http://www.bsdcan.org/2018/schedule/">BSDCan 2018 Selected Talks</a></h3> Err codemadness.org 70 i 63743 Err codemadness.org 70 i 63744 <ul> Err codemadness.org 70 i 63745 <li>The schedule for BSDCan is up</li> Err codemadness.org 70 i 63746 <li>Lots of interesting content, we are looking forward to it</li> Err codemadness.org 70 i 63747 <li>We hope to see lots of you there. Make sure you come introduce yourselves to us. Don’t be shy.</li> Err codemadness.org 70 i 63748 <li>Remember, if this is your first BSDCan, checkout the newbie session on Thursday night. It’ll help you get to know a few people so you have someone you can ask for guidance.</li> Err codemadness.org 70 i 63749 <li>Also, check out the hallway track, the tables, and come to the hacker lounge.</li> Err codemadness.org 70 i 63750 </ul> Err codemadness.org 70 i 63751 Err codemadness.org 70 i 63752 <hr /> Err codemadness.org 70 i 63753 <p><strong>iXsystems</strong></p> Err codemadness.org 70 i 63754 Err codemadness.org 70 i 63755 <h3><a href="http://latacora.singles/2018/04/03/cryptographic-right-answers.html">Cryptographic Right Answers</a></h3> Err codemadness.org 70 i 63756 Err codemadness.org 70 i 63757 <ul> Err codemadness.org 70 i 63758 <li>Crypto can be confusing. We all know we shouldn’t roll our own, but what should we use?</li> Err codemadness.org 70 i 63759 <li>Well, some developers have tried to answer that question over the years, keeping an updated list of “Right Answers”</li> Err codemadness.org 70 i 63760 <li>2009: <a href="https://twitter.com/cperciva">Colin Percival</a> of FreeBSD</li> Err codemadness.org 70 i 63761 <li>2015: <a href="https://twitter.com/tqbf">Thomas H. Ptacek</a></li> Err codemadness.org 70 i 63762 <li>2018: <a href="https://twitter.com/latacora_team">Latacora</a> A consultancy that provides “Retained security teams for startups”, where Thomas Ptacek works. Err codemadness.org 70 i 63763 Err codemadness.org 70 i 63764 Err codemadness.org 70 i 63765 <blockquote> Err codemadness.org 70 i 63766 <p>We’re less interested in empowering developers and a lot more pessimistic about the prospects of getting this stuff right.</li> Err codemadness.org 70 i 63767 </ul> Err codemadness.org 70 i 63768 There are, in the literature and in the most sophisticated modern systems, “better” answers for many of these items. If you’re building for low-footprint embedded systems, you can use STROBE and a sound, modern, authenticated encryption stack entirely out of a single SHA-3-like sponge constructions. You can use NOISE to build a secure transport protocol with its own AKE. Speaking of AKEs, there are, like, 30 different password AKEs you could choose from.</p> Err codemadness.org 70 i 63769 Err codemadness.org 70 i 63770 <p>But if you’re a developer and not a cryptography engineer, you shouldn’t do any of that. You should keep things simple and conventional and easy to analyze; “boring”, as the Google TLS people would say.</p> Err codemadness.org 70 i 63771 </blockquote> Err codemadness.org 70 i 63772 Err codemadness.org 70 i 63773 <ul> Err codemadness.org 70 i 63774 <li><p>Cryptographic Right Answers</p></li> Err codemadness.org 70 i 63775 <li><p>Encrypting Data</p></li> Err codemadness.org 70 i 63776 </ul> Err codemadness.org 70 i 63777 Err codemadness.org 70 i 63778 <blockquote> Err codemadness.org 70 i 63779 <p>Percival, 2009: AES-CTR with HMAC. Err codemadness.org 70 i 63780 Ptacek, 2015: (1) NaCl/libsodium’s default, (2) ChaCha20-Poly1305, or (3) AES-GCM. Err codemadness.org 70 i 63781 Latacora, 2018: KMS or XSalsa20+Poly1305</p> Err codemadness.org 70 i 63782 </blockquote> Err codemadness.org 70 i 63783 Err codemadness.org 70 i 63784 <ul> Err codemadness.org 70 i 63785 <li>Symmetric key length</li> Err codemadness.org 70 i 63786 </ul> Err codemadness.org 70 i 63787 Err codemadness.org 70 i 63788 <blockquote> Err codemadness.org 70 i 63789 <p>Percival, 2009: Use 256-bit keys. Err codemadness.org 70 i 63790 Ptacek, 2015: Use 256-bit keys. Err codemadness.org 70 i 63791 Latacora, 2018: Go ahead and use 256 bit keys.</p> Err codemadness.org 70 i 63792 </blockquote> Err codemadness.org 70 i 63793 Err codemadness.org 70 i 63794 <ul> Err codemadness.org 70 i 63795 <li>Symmetric “Signatures”</li> Err codemadness.org 70 i 63796 </ul> Err codemadness.org 70 i 63797 Err codemadness.org 70 i 63798 <blockquote> Err codemadness.org 70 i 63799 <p>Percival, 2009: Use HMAC. Err codemadness.org 70 i 63800 Ptacek, 2015: Yep, use HMAC. Err codemadness.org 70 i 63801 Latacora, 2018: Still HMAC.</p> Err codemadness.org 70 i 63802 </blockquote> Err codemadness.org 70 i 63803 Err codemadness.org 70 i 63804 <ul> Err codemadness.org 70 i 63805 <li>Hashing algorithm</li> Err codemadness.org 70 i 63806 </ul> Err codemadness.org 70 i 63807 Err codemadness.org 70 i 63808 <blockquote> Err codemadness.org 70 i 63809 <p>Percival, 2009: Use SHA256 (SHA-2). Err codemadness.org 70 i 63810 Ptacek, 2015: Use SHA-2. Err codemadness.org 70 i 63811 Latacora, 2018: Still SHA-2.</p> Err codemadness.org 70 i 63812 </blockquote> Err codemadness.org 70 i 63813 Err codemadness.org 70 i 63814 <ul> Err codemadness.org 70 i 63815 <li>Random IDs</li> Err codemadness.org 70 i 63816 </ul> Err codemadness.org 70 i 63817 Err codemadness.org 70 i 63818 <blockquote> Err codemadness.org 70 i 63819 <p>Percival, 2009: Use 256-bit random numbers. Err codemadness.org 70 i 63820 Ptacek, 2015: Use 256-bit random numbers. Err codemadness.org 70 i 63821 Latacora, 2018: Use 256-bit random numbers.</p> Err codemadness.org 70 i 63822 </blockquote> Err codemadness.org 70 i 63823 Err codemadness.org 70 i 63824 <ul> Err codemadness.org 70 i 63825 <li>Password handling</li> Err codemadness.org 70 i 63826 </ul> Err codemadness.org 70 i 63827 Err codemadness.org 70 i 63828 <blockquote> Err codemadness.org 70 i 63829 <p>Percival, 2009: scrypt or PBKDF2. Err codemadness.org 70 i 63830 Ptacek, 2015: In order of preference, use scrypt, bcrypt, and then if nothing else is available PBKDF2. Err codemadness.org 70 i 63831 Latacora, 2018: In order of preference, use scrypt, argon2, bcrypt, and then if nothing else is available PBKDF2.</p> Err codemadness.org 70 i 63832 </blockquote> Err codemadness.org 70 i 63833 Err codemadness.org 70 i 63834 <ul> Err codemadness.org 70 i 63835 <li>Asymmetric encryption</li> Err codemadness.org 70 i 63836 </ul> Err codemadness.org 70 i 63837 Err codemadness.org 70 i 63838 <blockquote> Err codemadness.org 70 i 63839 <p>Percival, 2009: Use RSAES-OAEP with SHA256 and MGF1+SHA256 bzzrt pop ffssssssst exponent 65537. Err codemadness.org 70 i 63840 Ptacek, 2015: Use NaCl/libsodium (box / crypto<em>box). Err codemadness.org 70 i 63841 Latacora, 2018: Use Nacl/libsodium (box / crypto</em>box).</p> Err codemadness.org 70 i 63842 </blockquote> Err codemadness.org 70 i 63843 Err codemadness.org 70 i 63844 <ul> Err codemadness.org 70 i 63845 <li>Asymmetric signatures</li> Err codemadness.org 70 i 63846 </ul> Err codemadness.org 70 i 63847 Err codemadness.org 70 i 63848 <blockquote> Err codemadness.org 70 i 63849 <p>Percival, 2009: Use RSASSA-PSS with SHA256 then MGF1+SHA256 in tricolor systemic silicate orientation. Err codemadness.org 70 i 63850 Ptacek, 2015: Use Nacl, Ed25519, or RFC6979. Err codemadness.org 70 i 63851 Latacora, 2018: Use Nacl or Ed25519.</p> Err codemadness.org 70 i 63852 </blockquote> Err codemadness.org 70 i 63853 Err codemadness.org 70 i 63854 <ul> Err codemadness.org 70 i 63855 <li>Diffie-Hellman</li> Err codemadness.org 70 i 63856 </ul> Err codemadness.org 70 i 63857 Err codemadness.org 70 i 63858 <blockquote> Err codemadness.org 70 i 63859 <p>Percival, 2009: Operate over the 2048-bit Group #14 with a generator of 2. Err codemadness.org 70 i 63860 Ptacek, 2015: Probably still DH-2048, or Nacl. Err codemadness.org 70 i 63861 Latacora, 2018: Probably nothing. Or use Curve25519.</p> Err codemadness.org 70 i 63862 </blockquote> Err codemadness.org 70 i 63863 Err codemadness.org 70 i 63864 <ul> Err codemadness.org 70 i 63865 <li>Website security</li> Err codemadness.org 70 i 63866 </ul> Err codemadness.org 70 i 63867 Err codemadness.org 70 i 63868 <blockquote> Err codemadness.org 70 i 63869 <p>Percival, 2009: Use OpenSSL. Err codemadness.org 70 i 63870 Ptacek, 2015: Remains: OpenSSL, or BoringSSL if you can. Or just use AWS ELBs Err codemadness.org 70 i 63871 Latacora, 2018: Use AWS ALB/ELB or OpenSSL, with LetsEncrypt</p> Err codemadness.org 70 i 63872 </blockquote> Err codemadness.org 70 i 63873 Err codemadness.org 70 i 63874 <ul> Err codemadness.org 70 i 63875 <li>Client-server application security</li> Err codemadness.org 70 i 63876 </ul> Err codemadness.org 70 i 63877 Err codemadness.org 70 i 63878 <blockquote> Err codemadness.org 70 i 63879 <p>Percival, 2009: Distribute the server’s public RSA key with the client code, and do not use SSL. Err codemadness.org 70 i 63880 Ptacek, 2015: Use OpenSSL, or BoringSSL if you can. Or just use AWS ELBs Err codemadness.org 70 i 63881 Latacora, 2018: Use AWS ALB/ELB or OpenSSL, with LetsEncrypt</p> Err codemadness.org 70 i 63882 </blockquote> Err codemadness.org 70 i 63883 Err codemadness.org 70 i 63884 <ul> Err codemadness.org 70 i 63885 <li>Online backups</li> Err codemadness.org 70 i 63886 </ul> Err codemadness.org 70 i 63887 Err codemadness.org 70 i 63888 <blockquote> Err codemadness.org 70 i 63889 <p>Percival, 2009: Use Tarsnap. Err codemadness.org 70 i 63890 Ptacek, 2015: Use Tarsnap. Err codemadness.org 70 i 63891 Latacora, 2018: Store PMAC-SIV-encrypted arc files to S3 and save fingerprints of your backups to an ERC20-compatible blockchain. Just kidding. You should still use Tarsnap.</p> Err codemadness.org 70 i 63892 </blockquote> Err codemadness.org 70 i 63893 Err codemadness.org 70 i 63894 <ul> Err codemadness.org 70 i 63895 <li>Seriously though, use Tarsnap.</li> Err codemadness.org 70 i 63896 </ul> Err codemadness.org 70 i 63897 Err codemadness.org 70 i 63898 <hr /> Err codemadness.org 70 i 63899 <h3><a href="https://dan.langille.org/2018/03/19/adding-ipv6-to-an-existing-server/">Adding IPv6 to an existing server</a></h3> Err codemadness.org 70 i 63900 Err codemadness.org 70 i 63901 <blockquote> Err codemadness.org 70 i 63902 <p>I am adding IPv6 addresses to each of my servers. This post assumes the server is up and running FreeBSD 11.1 and you already have an IPv6 address block. This does not cover the creation of an IPv6 tunnel, such as that provided by HE.net. This assumes native IPv6.</p> Err codemadness.org 70 i 63903 Err codemadness.org 70 i 63904 <p>In this post, I am using the IPv6 addresses from the IPv6 Address Prefix Reserved for Documentation (i.e. 2001:DB8::/32). You should use your own addresses.</p> Err codemadness.org 70 i 63905 Err codemadness.org 70 i 63906 <p>The IPv6 block I have been assigned is 2001:DB8:1001:8d00/64.</p> Err codemadness.org 70 i 63907 Err codemadness.org 70 i 63908 <p>I added this to /etc/rc.conf:</p> Err codemadness.org 70 i 63909 </blockquote> Err codemadness.org 70 i 63910 Err codemadness.org 70 i 63911 <p><code> Err codemadness.org 70 i 63912 ipv6_activate_all_interfaces="YES" Err codemadness.org 70 i 63913 ipv6_defaultrouter="2001:DB8:1001:8d00::1" Err codemadness.org 70 i 63914 ifconfig_em1_ipv6="inet6 2001:DB8:1001:8d00:d389:119c:9b57:396b prefixlen 64 accept_rtadv" # ns1 Err codemadness.org 70 i 63915 </code></p> Err codemadness.org 70 i 63916 Err codemadness.org 70 i 63917 <blockquote> Err codemadness.org 70 i 63918 <p>The IPv6 address I have assigned to this host is completely random (with the given block). I found a random IPv6 address generator and used it to select d389:119c:9b57:396b as the address for this service within my address block.</p> Err codemadness.org 70 i 63919 Err codemadness.org 70 i 63920 <p>I don’t have the reference, but I did read that randomly selecting addresses within your block is a better approach.</p> Err codemadness.org 70 i 63921 Err codemadness.org 70 i 63922 <p>In order to invoke these changes without rebooting, I issued these commands:</p> Err codemadness.org 70 i 63923 </blockquote> Err codemadness.org 70 i 63924 Err codemadness.org 70 i 63925 <p>``` Err codemadness.org 70 i 63926 [dan@tallboy:~] $ sudo ifconfig em1 inet6 2001:DB8:1001:8d00:d389:119c:9b57:396b prefixlen 64 accept_rtadv Err codemadness.org 70 i 63927 [dan@tallboy:~] $ </p> Err codemadness.org 70 i 63928 Err codemadness.org 70 i 63929 <p>[dan@tallboy:~] $ sudo route add -inet6 default 2001:DB8:1001:8d00::1 Err codemadness.org 70 i 63930 add net default: gateway 2001:DB8:1001:8d00::1 Err codemadness.org 70 i 63931 ```</p> Err codemadness.org 70 i 63932 Err codemadness.org 70 i 63933 <blockquote> Err codemadness.org 70 i 63934 <p>If you do the route add first, you will get this error:</p> Err codemadness.org 70 i 63935 </blockquote> Err codemadness.org 70 i 63936 Err codemadness.org 70 i 63937 <p><code> Err codemadness.org 70 i 63938 [dan@tallboy:~] $ sudo route add -inet6 default 2001:DB8:1001:8d00::1 Err codemadness.org 70 i 63939 route: writing to routing socket: Network is unreachable Err codemadness.org 70 i 63940 add net default: gateway 2001:DB8:1001:8d00::1 fib 0: Network is unreachable Err codemadness.org 70 i 63941 </code></p> Err codemadness.org 70 i 63942 Err codemadness.org 70 i 63943 <hr /> Err codemadness.org 70 i 63944 <h2>Beastie Bits</h2> Err codemadness.org 70 i 63945 Err codemadness.org 70 i 63946 <ul> Err codemadness.org 70 i 63947 <li><a href="https://vermaden.wordpress.com/2018/03/15/ghost-in-the-shell-part-1/">Ghost in the Shell – Part 1</a></li> Err codemadness.org 70 i 63948 <li><a href="https://gist.github.com/dlangille/bcf918b22aaf9b3fd17408b39c97e8ce">Enabling compression on ZFS - a practical example</a></li> Err codemadness.org 70 i 63949 <li><a href="https://0x7e2.bsidesljubljana.si/modern-secure-devops-freebsd-goran-mekic/">Modern and secure DevOps on FreeBSD (Goran Mekić)</a></li> Err codemadness.org 70 i 63950 <li><a href="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.7.0-relnotes.txt">LibreSSL 2.7.0 Released</a></li> Err codemadness.org 70 i 63951 <li><a href="https://zrepl.github.io/changelog.html">zrepl version 0.0.3 is out!</a></li> Err codemadness.org 70 i 63952 <li>[ZFS User Conference](http://zfs.datto.com/]</li> Err codemadness.org 70 i 63953 </ul> Err codemadness.org 70 i 63954 Err codemadness.org 70 i 63955 <hr /> Err codemadness.org 70 i 63956 <p><strong>Tarsnap</strong></p> Err codemadness.org 70 i 63957 Err codemadness.org 70 i 63958 <h2>Feedback/Questions</h2> Err codemadness.org 70 i 63959 Err codemadness.org 70 i 63960 <ul> Err codemadness.org 70 i 63961 <li>Benjamin - <a href="http://dpaste.com/1SXE1B9#wrap">BSD Personal Mailserver</a></li> Err codemadness.org 70 i 63962 <li>Warren - <a href="http://dpaste.com/0RN0S8X#wrap">ZFS volume size limit (show #233)</a></li> Err codemadness.org 70 i 63963 <li>Lars - <a href="http://dpaste.com/3RAM4Z7#wrap">AFRINIC</a></li> Err codemadness.org 70 i 63964 <li>Brad - <a href="http://dpaste.com/0M7XD71#wrap">OpenZFS vs OracleZFS</a></li> Err codemadness.org 70 i 63965 </ul> Err codemadness.org 70 i 63966 Err codemadness.org 70 i 63967 <hr /> Err codemadness.org 70 i 63968 <ul> Err codemadness.org 70 i 63969 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 63970 </ul> Err codemadness.org 70 i 63971 Err codemadness.org 70 i 63972 Err codemadness.org 70 i 63973 Second round of ZFS improvements in FreeBSD, Postgres finds that non-FreeBSD/non-Illumos systems are corrupting data, interview with Kevin Bowling, BSDCan list of talks, and cryptographic right answers.

Err codemadness.org 70 i 63974 Err codemadness.org 70 i 63975

Headlines

Err codemadness.org 70 i 63976 Err codemadness.org 70 i 63977

[Other big ZFS improvements you might have missed]

Err codemadness.org 70 i 63978 Err codemadness.org 70 i 63979
    Err codemadness.org 70 i 63980
  • 9075 Improve ZFS pool import/load process and corrupted pool recovery Err codemadness.org 70 i 63981 Err codemadness.org 70 i 63982 Err codemadness.org 70 i 63983
    Err codemadness.org 70 i 63984

    One of the first tasks during the pool load process is to parse a config provided from userland that describes what devices the pool is composed of. A vdev tree is generated from that config, and then all the vdevs are opened. Err codemadness.org 70 i 63985 The Meta Object Set (MOS) of the pool is accessed, and several metadata objects that are necessary to load the pool are read. The exact configuration of the pool is also stored inside the MOS. Since the configuration provided from userland is external and might not accurately describe the vdev tree of the pool at the txg that is being loaded, it cannot be relied upon to safely operate the pool. For that reason, the configuration in the MOS is read early on. In the past, the two configurations were compared together and if there was a mismatch then the load process was aborted and an error was returned. Err codemadness.org 70 i 63986 The latter was a good way to ensure a pool does not get corrupted, however it made the pool load process needlessly fragile in cases where the vdev configuration changed or the userland configuration was outdated. Since the MOS is stored in 3 copies, the configuration provided by userland doesn't have to be perfect in order to read its contents. Hence, a new approach has been adopted: The pool is first opened with the untrusted userland configuration just so that the real configuration can be read from the MOS. The trusted MOS configuration is then used to generate a new vdev tree and the pool is re-opened. Err codemadness.org 70 i 63987 When the pool is opened with an untrusted configuration, writes are disabled to avoid accidentally damaging it. During reads, some sanity checks are performed on block pointers to see if each DVA points to a known vdev; when the configuration is untrusted, instead of panicking the system if those checks fail we simply avoid issuing reads to the invalid DVAs. Err codemadness.org 70 i 63988 This new two-step pool load process now allows rewinding pools across vdev tree changes such as device replacement, addition, etc. Loading a pool from an external config file in a clustering environment also becomes much safer now since the pool will import even if the config is outdated and didn't, for instance, register a recent device addition. Err codemadness.org 70 i 63989 With this code in place, it became relatively easy to implement a long-sought-after feature: the ability to import a pool with missing top level (i.e. non-redundant) devices. Note that since this almost guarantees some loss Of data, this feature is for now restricted to a read-only import.

  • Err codemadness.org 70 i 63990
  • Err codemadness.org 70 i 63991 Err codemadness.org 70 i 63992
    • 7614 zfs device evacuation/removal Err codemadness.org 70 i 63993 This project allows top-level vdevs to be removed from the storage pool with “zpool remove”, reducing the total amount of storage in the pool. This operation copies all allocated regions of the device to be removed onto other devices, recording the mapping from old to new location. After the removal is complete, read and free operations to the removed (now “indirect”) vdev must be remapped and performed at the new location on disk. The indirect mapping table is kept in memory whenever the pool is loaded, so there is minimal performance overhead when doing operations on the indirect vdev. Err codemadness.org 70 i 63994 The size of the in-memory mapping table will be reduced when its entries become “obsolete” because they are no longer used by any block pointers in the pool. An entry becomes obsolete when all the blocks that use it are freed. An entry can also become obsolete when all the snapshots that reference it are deleted, and the block pointers that reference it have been “remapped” in all filesystems/zvols (and clones). Whenever an indirect block is written, all the block pointers in it will be “remapped” to their new (concrete) locations if possible. This process can be accelerated by using the “zfs remap” command to proactively rewrite all indirect blocks that reference indirect (removed) vdevs. Err codemadness.org 70 i 63995 Note that when a device is removed, we do not verify the checksum of the data that is copied. This makes the process much faster, but if it were used on redundant vdevs (i.e. mirror or raidz vdevs), it would be possible to copy the wrong data, when we have the correct data on e.g. the other side of the mirror. Therefore, mirror and raidz devices can not be removed.
  • Err codemadness.org 70 i 63996
  • You can use ‘zpool detach’ to downgrade a mirror to a single top-level device, so that you can then remove it
  • Err codemadness.org 70 i 63997
  • Err codemadness.org 70 i 63998
  • Err codemadness.org 70 i 63999
  • This one was not actually merged into FreeBSD, as it doesn’t apply currently, but I would like to switch the way FreeBSD deals with full disks to be closer to IllumOS to make automatic spare replacement a hands-off operation. Err codemadness.org 70 i 64000 Since we support whole-disk configuration for boot pool, we also will need whole disk support with UEFI boot and for this, zpool create should create efi-system partition. I have borrowed the idea from oracle solaris, and introducing zpool create -B switch to provide an way to specify that boot partition should be created. However, there is still an question, how big should the system partition be. For time being, I have set default size 256MB (thats minimum size for FAT32 with 4k blocks). To support custom size, the set on creation "bootsize" property is created and so the custom size can be set as: zpool create -B -o bootsize=34MB rpool c0t0d0. After the pool is created, the "bootsize" property is read only. When -B switch is not used, the bootsize defaults to 0 and is shown in zpool get output with no value. Older zfs/zpool implementations can ignore this property.
  • Err codemadness.org 70 i 64001
Err codemadness.org 70 i 64002 Err codemadness.org 70 i 64003
Err codemadness.org 70 i 64004 Err codemadness.org 70 i 64005 Err codemadness.org 70 i 64006 **Digital Ocean** Err codemadness.org 70 i 64007 Err codemadness.org 70 i 64008 Err codemadness.org 70 i 64009 Err codemadness.org 70 i 64010

PostgreSQL developers find that every operating system other than FreeBSD and IllumOS might corrupt your data

Err codemadness.org 70 i 64011 Err codemadness.org 70 i 64012 Err codemadness.org 70 i 64013 Err codemadness.org 70 i 64014
Err codemadness.org 70 i 64015

Some time ago I ran into an issue where a user encountered data corruption after a storage error. PostgreSQL played a part in that corruption by allowing checkpoint what should've been a fatal error. Err codemadness.org 70 i 64016 TL;DR: Pg should PANIC on fsync() EIO return. Retrying fsync() is not OK at least on Linux. When fsync() returns success it means "all writes since the last fsync have hit disk" but we assume it means "all writes since the last SUCCESSFUL fsync have hit disk". Err codemadness.org 70 i 64017 Pg wrote some blocks, which went to OS dirty buffers for writeback. Writeback failed due to an underlying storage error. The block I/O layer and XFS marked the writeback page as failed (ASEIO), but had no way to tell the app about the failure. When Pg called fsync() on the FD during the next checkpoint, fsync() returned EIO because of the flagged page, to tell Pg that a previous async write failed. Pg treated the checkpoint as failed and didn't advance the redo start position in the control file. Err codemadness.org 70 i 64018 + All good so far. Err codemadness.org 70 i 64019 But then we retried the checkpoint, which retried the fsync(). The retry succeeded, because the prior fsync() *cleared the ASEIO bad page flag*. Err codemadness.org 70 i 64020 The write never made it to disk, but we completed the checkpoint, and merrily carried on our way. Whoops, data loss. Err codemadness.org 70 i 64021 The clear-error-and-continue behaviour of fsync is not documented as far as I can tell. Nor is fsync() returning EIO unless you have a very new linux man-pages with the patch I wrote to add it. But from what I can see in the POSIX standard we are not given any guarantees about what happens on fsync() failure at all, so we're probably wrong to assume that retrying fsync() is safe. Err codemadness.org 70 i 64022 We already PANIC on fsync() failure for WAL segments. We just need to do the same for data forks at least for EIO. This isn't as bad as it seems because AFAICS fsync only returns EIO in cases where we should be stopping the world anyway, and many FSes will do that for us. Err codemadness.org 70 i 64023 + Upon further looking, it turns out it is not just Linux brain damage: Err codemadness.org 70 i 64024 Apparently I was too optimistic. I had looked only at FreeBSD, which keeps the page around and dirties it so we can retry, but the other BSDs apparently don't (FreeBSD changed that in 1999). Err codemadness.org 70 i 64025 From what I can tell from the sources below, we have: Linux, OpenBSD, NetBSD: retrying fsync() after EIO lies Err codemadness.org 70 i 64026 FreeBSD, Illumos: retrying fsync() after EIO tells the truth Err codemadness.org 70 i 64027 + NetBSD PR to solve the issues Err codemadness.org 70 i 64028 + I/O errors are not reported back to fsync at all. Err codemadness.org 70 i 64029 + Write errors during genfs_putpages that fail for any reason other than ENOMEM cause the data to be semi-silently discarded. Err codemadness.org 70 i 64030 + It appears that UVM pages are marked clean when they're selected to be written out, not after the write succeeds; so there are a bunch of potential races when writes fail. Err codemadness.org 70 i 64031 + It appears that write errors for buffercache buffers are semi-silently discarded as well.

Err codemadness.org 70 i 64032
Err codemadness.org 70 i 64033 Err codemadness.org 70 i 64034
Err codemadness.org 70 i 64035 Err codemadness.org 70 i 64036 Err codemadness.org 70 i 64037 Err codemadness.org 70 i 64038 Err codemadness.org 70 i 64039 Err codemadness.org 70 i 64040

Interview - Kevin Bowling: Senior Manager Engineering of LimeLight Networks - kbowling@llnw.com / @kevinbowling1

Err codemadness.org 70 i 64041 Err codemadness.org 70 i 64042
    Err codemadness.org 70 i 64043
  • BR: How did you first get introduced to UNIX and BSD?
  • Err codemadness.org 70 i 64044
  • AJ: What got you started contributing to an open source project?
  • Err codemadness.org 70 i 64045
  • BR: What sorts of things have you worked on it the past?
  • Err codemadness.org 70 i 64046
  • AJ: Tell us a bit about LimeLight and how they use FreeBSD.
  • Err codemadness.org 70 i 64047
  • BR: What are the biggest advantages of FreeBSD for LimeLight?
  • Err codemadness.org 70 i 64048
  • AJ: What could FreeBSD do better that would benefit LimeLight?
  • Err codemadness.org 70 i 64049
  • BR: What has LimeLight given back to FreeBSD?
  • Err codemadness.org 70 i 64050
  • AJ: What have you been working on more recently?
  • Err codemadness.org 70 i 64051
  • BR: What do you find to be the most valuable part of open source?
  • Err codemadness.org 70 i 64052
  • AJ: Where do you think the most improvement in open source is needed?
  • Err codemadness.org 70 i 64053
  • BR: Tell us a bit about your computing history collection. What are your three favourite pieces?
  • Err codemadness.org 70 i 64054
  • AJ: How do you keep motivated to work on Open Source?
  • Err codemadness.org 70 i 64055
  • BR: What do you do for fun?
  • Err codemadness.org 70 i 64056
  • AJ: Anything else you want to mention?
  • Err codemadness.org 70 i 64057
Err codemadness.org 70 i 64058 Err codemadness.org 70 i 64059


Err codemadness.org 70 i 64060 Err codemadness.org 70 i 64061

News Roundup

Err codemadness.org 70 i 64062 Err codemadness.org 70 i 64063

BSDCan 2018 Selected Talks

Err codemadness.org 70 i 64064 Err codemadness.org 70 i 64065
    Err codemadness.org 70 i 64066
  • The schedule for BSDCan is up
  • Err codemadness.org 70 i 64067
  • Lots of interesting content, we are looking forward to it
  • Err codemadness.org 70 i 64068
  • We hope to see lots of you there. Make sure you come introduce yourselves to us. Don’t be shy.
  • Err codemadness.org 70 i 64069
  • Remember, if this is your first BSDCan, checkout the newbie session on Thursday night. It’ll help you get to know a few people so you have someone you can ask for guidance.
  • Err codemadness.org 70 i 64070
  • Also, check out the hallway track, the tables, and come to the hacker lounge.
  • Err codemadness.org 70 i 64071
Err codemadness.org 70 i 64072 Err codemadness.org 70 i 64073


Err codemadness.org 70 i 64074 Err codemadness.org 70 i 64075

iXsystems

Err codemadness.org 70 i 64076 Err codemadness.org 70 i 64077

Cryptographic Right Answers

Err codemadness.org 70 i 64078 Err codemadness.org 70 i 64079
    Err codemadness.org 70 i 64080
  • Crypto can be confusing. We all know we shouldn’t roll our own, but what should we use?
  • Err codemadness.org 70 i 64081
  • Well, some developers have tried to answer that question over the years, keeping an updated list of “Right Answers”
  • Err codemadness.org 70 i 64082
  • 2009: Colin Percival of FreeBSD
  • Err codemadness.org 70 i 64083
  • 2015: Thomas H. Ptacek
  • Err codemadness.org 70 i 64084
  • 2018: Latacora A consultancy that provides “Retained security teams for startups”, where Thomas Ptacek works. Err codemadness.org 70 i 64085 Err codemadness.org 70 i 64086 Err codemadness.org 70 i 64087
    Err codemadness.org 70 i 64088

    We’re less interested in empowering developers and a lot more pessimistic about the prospects of getting this stuff right.

  • Err codemadness.org 70 i 64089
Err codemadness.org 70 i 64090 There are, in the literature and in the most sophisticated modern systems, “better” answers for many of these items. If you’re building for low-footprint embedded systems, you can use STROBE and a sound, modern, authenticated encryption stack entirely out of a single SHA-3-like sponge constructions. You can use NOISE to build a secure transport protocol with its own AKE. Speaking of AKEs, there are, like, 30 different password AKEs you could choose from.

Err codemadness.org 70 i 64091 Err codemadness.org 70 i 64092

But if you’re a developer and not a cryptography engineer, you shouldn’t do any of that. You should keep things simple and conventional and easy to analyze; “boring”, as the Google TLS people would say.

Err codemadness.org 70 i 64093 Err codemadness.org 70 i 64094 Err codemadness.org 70 i 64095
    Err codemadness.org 70 i 64096
  • Cryptographic Right Answers

  • Err codemadness.org 70 i 64097
  • Encrypting Data

  • Err codemadness.org 70 i 64098
Err codemadness.org 70 i 64099 Err codemadness.org 70 i 64100
Err codemadness.org 70 i 64101

Percival, 2009: AES-CTR with HMAC. Err codemadness.org 70 i 64102 Ptacek, 2015: (1) NaCl/libsodium’s default, (2) ChaCha20-Poly1305, or (3) AES-GCM. Err codemadness.org 70 i 64103 Latacora, 2018: KMS or XSalsa20+Poly1305

Err codemadness.org 70 i 64104
Err codemadness.org 70 i 64105 Err codemadness.org 70 i 64106
    Err codemadness.org 70 i 64107
  • Symmetric key length
  • Err codemadness.org 70 i 64108
Err codemadness.org 70 i 64109 Err codemadness.org 70 i 64110
Err codemadness.org 70 i 64111

Percival, 2009: Use 256-bit keys. Err codemadness.org 70 i 64112 Ptacek, 2015: Use 256-bit keys. Err codemadness.org 70 i 64113 Latacora, 2018: Go ahead and use 256 bit keys.

Err codemadness.org 70 i 64114
Err codemadness.org 70 i 64115 Err codemadness.org 70 i 64116
    Err codemadness.org 70 i 64117
  • Symmetric “Signatures”
  • Err codemadness.org 70 i 64118
Err codemadness.org 70 i 64119 Err codemadness.org 70 i 64120
Err codemadness.org 70 i 64121

Percival, 2009: Use HMAC. Err codemadness.org 70 i 64122 Ptacek, 2015: Yep, use HMAC. Err codemadness.org 70 i 64123 Latacora, 2018: Still HMAC.

Err codemadness.org 70 i 64124
Err codemadness.org 70 i 64125 Err codemadness.org 70 i 64126
    Err codemadness.org 70 i 64127
  • Hashing algorithm
  • Err codemadness.org 70 i 64128
Err codemadness.org 70 i 64129 Err codemadness.org 70 i 64130
Err codemadness.org 70 i 64131

Percival, 2009: Use SHA256 (SHA-2). Err codemadness.org 70 i 64132 Ptacek, 2015: Use SHA-2. Err codemadness.org 70 i 64133 Latacora, 2018: Still SHA-2.

Err codemadness.org 70 i 64134
Err codemadness.org 70 i 64135 Err codemadness.org 70 i 64136
    Err codemadness.org 70 i 64137
  • Random IDs
  • Err codemadness.org 70 i 64138
Err codemadness.org 70 i 64139 Err codemadness.org 70 i 64140
Err codemadness.org 70 i 64141

Percival, 2009: Use 256-bit random numbers. Err codemadness.org 70 i 64142 Ptacek, 2015: Use 256-bit random numbers. Err codemadness.org 70 i 64143 Latacora, 2018: Use 256-bit random numbers.

Err codemadness.org 70 i 64144
Err codemadness.org 70 i 64145 Err codemadness.org 70 i 64146
    Err codemadness.org 70 i 64147
  • Password handling
  • Err codemadness.org 70 i 64148
Err codemadness.org 70 i 64149 Err codemadness.org 70 i 64150
Err codemadness.org 70 i 64151

Percival, 2009: scrypt or PBKDF2. Err codemadness.org 70 i 64152 Ptacek, 2015: In order of preference, use scrypt, bcrypt, and then if nothing else is available PBKDF2. Err codemadness.org 70 i 64153 Latacora, 2018: In order of preference, use scrypt, argon2, bcrypt, and then if nothing else is available PBKDF2.

Err codemadness.org 70 i 64154
Err codemadness.org 70 i 64155 Err codemadness.org 70 i 64156
    Err codemadness.org 70 i 64157
  • Asymmetric encryption
  • Err codemadness.org 70 i 64158
Err codemadness.org 70 i 64159 Err codemadness.org 70 i 64160
Err codemadness.org 70 i 64161

Percival, 2009: Use RSAES-OAEP with SHA256 and MGF1+SHA256 bzzrt pop ffssssssst exponent 65537. Err codemadness.org 70 i 64162 Ptacek, 2015: Use NaCl/libsodium (box / cryptobox). Err codemadness.org 70 i 64163 Latacora, 2018: Use Nacl/libsodium (box / cryptobox).

Err codemadness.org 70 i 64164
Err codemadness.org 70 i 64165 Err codemadness.org 70 i 64166
    Err codemadness.org 70 i 64167
  • Asymmetric signatures
  • Err codemadness.org 70 i 64168
Err codemadness.org 70 i 64169 Err codemadness.org 70 i 64170
Err codemadness.org 70 i 64171

Percival, 2009: Use RSASSA-PSS with SHA256 then MGF1+SHA256 in tricolor systemic silicate orientation. Err codemadness.org 70 i 64172 Ptacek, 2015: Use Nacl, Ed25519, or RFC6979. Err codemadness.org 70 i 64173 Latacora, 2018: Use Nacl or Ed25519.

Err codemadness.org 70 i 64174
Err codemadness.org 70 i 64175 Err codemadness.org 70 i 64176
    Err codemadness.org 70 i 64177
  • Diffie-Hellman
  • Err codemadness.org 70 i 64178
Err codemadness.org 70 i 64179 Err codemadness.org 70 i 64180
Err codemadness.org 70 i 64181

Percival, 2009: Operate over the 2048-bit Group #14 with a generator of 2. Err codemadness.org 70 i 64182 Ptacek, 2015: Probably still DH-2048, or Nacl. Err codemadness.org 70 i 64183 Latacora, 2018: Probably nothing. Or use Curve25519.

Err codemadness.org 70 i 64184
Err codemadness.org 70 i 64185 Err codemadness.org 70 i 64186
    Err codemadness.org 70 i 64187
  • Website security
  • Err codemadness.org 70 i 64188
Err codemadness.org 70 i 64189 Err codemadness.org 70 i 64190
Err codemadness.org 70 i 64191

Percival, 2009: Use OpenSSL. Err codemadness.org 70 i 64192 Ptacek, 2015: Remains: OpenSSL, or BoringSSL if you can. Or just use AWS ELBs Err codemadness.org 70 i 64193 Latacora, 2018: Use AWS ALB/ELB or OpenSSL, with LetsEncrypt

Err codemadness.org 70 i 64194
Err codemadness.org 70 i 64195 Err codemadness.org 70 i 64196
    Err codemadness.org 70 i 64197
  • Client-server application security
  • Err codemadness.org 70 i 64198
Err codemadness.org 70 i 64199 Err codemadness.org 70 i 64200
Err codemadness.org 70 i 64201

Percival, 2009: Distribute the server’s public RSA key with the client code, and do not use SSL. Err codemadness.org 70 i 64202 Ptacek, 2015: Use OpenSSL, or BoringSSL if you can. Or just use AWS ELBs Err codemadness.org 70 i 64203 Latacora, 2018: Use AWS ALB/ELB or OpenSSL, with LetsEncrypt

Err codemadness.org 70 i 64204
Err codemadness.org 70 i 64205 Err codemadness.org 70 i 64206
    Err codemadness.org 70 i 64207
  • Online backups
  • Err codemadness.org 70 i 64208
Err codemadness.org 70 i 64209 Err codemadness.org 70 i 64210
Err codemadness.org 70 i 64211

Percival, 2009: Use Tarsnap. Err codemadness.org 70 i 64212 Ptacek, 2015: Use Tarsnap. Err codemadness.org 70 i 64213 Latacora, 2018: Store PMAC-SIV-encrypted arc files to S3 and save fingerprints of your backups to an ERC20-compatible blockchain. Just kidding. You should still use Tarsnap.

Err codemadness.org 70 i 64214
Err codemadness.org 70 i 64215 Err codemadness.org 70 i 64216
    Err codemadness.org 70 i 64217
  • Seriously though, use Tarsnap.
  • Err codemadness.org 70 i 64218
Err codemadness.org 70 i 64219 Err codemadness.org 70 i 64220


Err codemadness.org 70 i 64221 Err codemadness.org 70 i 64222

Adding IPv6 to an existing server

Err codemadness.org 70 i 64223 Err codemadness.org 70 i 64224
Err codemadness.org 70 i 64225

I am adding IPv6 addresses to each of my servers. This post assumes the server is up and running FreeBSD 11.1 and you already have an IPv6 address block. This does not cover the creation of an IPv6 tunnel, such as that provided by HE.net. This assumes native IPv6.

Err codemadness.org 70 i 64226 Err codemadness.org 70 i 64227

In this post, I am using the IPv6 addresses from the IPv6 Address Prefix Reserved for Documentation (i.e. 2001:DB8::/32). You should use your own addresses.

Err codemadness.org 70 i 64228 Err codemadness.org 70 i 64229

The IPv6 block I have been assigned is 2001:DB8:1001:8d00/64.

Err codemadness.org 70 i 64230 Err codemadness.org 70 i 64231

I added this to /etc/rc.conf:

Err codemadness.org 70 i 64232
Err codemadness.org 70 i 64233 Err codemadness.org 70 i 64234

Err codemadness.org 70 i 64235 ipv6_activate_all_interfaces="YES" Err codemadness.org 70 i 64236 ipv6_defaultrouter="2001:DB8:1001:8d00::1" Err codemadness.org 70 i 64237 ifconfig_em1_ipv6="inet6 2001:DB8:1001:8d00:d389:119c:9b57:396b prefixlen 64 accept_rtadv" # ns1 Err codemadness.org 70 i 64238

Err codemadness.org 70 i 64239 Err codemadness.org 70 i 64240
Err codemadness.org 70 i 64241

The IPv6 address I have assigned to this host is completely random (with the given block). I found a random IPv6 address generator and used it to select d389:119c:9b57:396b as the address for this service within my address block.

Err codemadness.org 70 i 64242 Err codemadness.org 70 i 64243

I don’t have the reference, but I did read that randomly selecting addresses within your block is a better approach.

Err codemadness.org 70 i 64244 Err codemadness.org 70 i 64245

In order to invoke these changes without rebooting, I issued these commands:

Err codemadness.org 70 i 64246
Err codemadness.org 70 i 64247 Err codemadness.org 70 i 64248

``` Err codemadness.org 70 i 64249 [dan@tallboy:~] $ sudo ifconfig em1 inet6 2001:DB8:1001:8d00:d389:119c:9b57:396b prefixlen 64 accept_rtadv Err codemadness.org 70 i 64250 [dan@tallboy:~] $

Err codemadness.org 70 i 64251 Err codemadness.org 70 i 64252

[dan@tallboy:~] $ sudo route add -inet6 default 2001:DB8:1001:8d00::1 Err codemadness.org 70 i 64253 add net default: gateway 2001:DB8:1001:8d00::1 Err codemadness.org 70 i 64254 ```

Err codemadness.org 70 i 64255 Err codemadness.org 70 i 64256
Err codemadness.org 70 i 64257

If you do the route add first, you will get this error:

Err codemadness.org 70 i 64258
Err codemadness.org 70 i 64259 Err codemadness.org 70 i 64260

Err codemadness.org 70 i 64261 [dan@tallboy:~] $ sudo route add -inet6 default 2001:DB8:1001:8d00::1 Err codemadness.org 70 i 64262 route: writing to routing socket: Network is unreachable Err codemadness.org 70 i 64263 add net default: gateway 2001:DB8:1001:8d00::1 fib 0: Network is unreachable Err codemadness.org 70 i 64264

Err codemadness.org 70 i 64265 Err codemadness.org 70 i 64266


Err codemadness.org 70 i 64267 Err codemadness.org 70 i 64268

Beastie Bits

Err codemadness.org 70 i 64269 Err codemadness.org 70 i 64270 Err codemadness.org 70 i 64278 Err codemadness.org 70 i 64279


Err codemadness.org 70 i 64280 Err codemadness.org 70 i 64281

Tarsnap

Err codemadness.org 70 i 64282 Err codemadness.org 70 i 64283

Feedback/Questions

Err codemadness.org 70 i 64284 Err codemadness.org 70 i 64285 Err codemadness.org 70 i 64291 Err codemadness.org 70 i 64292


Err codemadness.org 70 i 64293 Err codemadness.org 70 i 64294
    Err codemadness.org 70 i 64295
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 64296
]]> Err codemadness.org 70 i 64297
Err codemadness.org 70 i 64298 Err codemadness.org 70 i 64299 Second round of ZFS improvements in FreeBSD, Postgres finds that non-FreeBSD/non-Illumos systems are corrupting data, interview with Kevin Bowling, BSDCan list of talks, and cryptographic right answers.

Err codemadness.org 70 i 64300 Err codemadness.org 70 i 64301

Headlines

Err codemadness.org 70 i 64302 Err codemadness.org 70 i 64303

[Other big ZFS improvements you might have missed]

Err codemadness.org 70 i 64304 Err codemadness.org 70 i 64305
    Err codemadness.org 70 i 64306
  • 9075 Improve ZFS pool import/load process and corrupted pool recovery Err codemadness.org 70 i 64307 Err codemadness.org 70 i 64308 Err codemadness.org 70 i 64309
    Err codemadness.org 70 i 64310

    One of the first tasks during the pool load process is to parse a config provided from userland that describes what devices the pool is composed of. A vdev tree is generated from that config, and then all the vdevs are opened. Err codemadness.org 70 i 64311 The Meta Object Set (MOS) of the pool is accessed, and several metadata objects that are necessary to load the pool are read. The exact configuration of the pool is also stored inside the MOS. Since the configuration provided from userland is external and might not accurately describe the vdev tree of the pool at the txg that is being loaded, it cannot be relied upon to safely operate the pool. For that reason, the configuration in the MOS is read early on. In the past, the two configurations were compared together and if there was a mismatch then the load process was aborted and an error was returned. Err codemadness.org 70 i 64312 The latter was a good way to ensure a pool does not get corrupted, however it made the pool load process needlessly fragile in cases where the vdev configuration changed or the userland configuration was outdated. Since the MOS is stored in 3 copies, the configuration provided by userland doesn't have to be perfect in order to read its contents. Hence, a new approach has been adopted: The pool is first opened with the untrusted userland configuration just so that the real configuration can be read from the MOS. The trusted MOS configuration is then used to generate a new vdev tree and the pool is re-opened. Err codemadness.org 70 i 64313 When the pool is opened with an untrusted configuration, writes are disabled to avoid accidentally damaging it. During reads, some sanity checks are performed on block pointers to see if each DVA points to a known vdev; when the configuration is untrusted, instead of panicking the system if those checks fail we simply avoid issuing reads to the invalid DVAs. Err codemadness.org 70 i 64314 This new two-step pool load process now allows rewinding pools across vdev tree changes such as device replacement, addition, etc. Loading a pool from an external config file in a clustering environment also becomes much safer now since the pool will import even if the config is outdated and didn't, for instance, register a recent device addition. Err codemadness.org 70 i 64315 With this code in place, it became relatively easy to implement a long-sought-after feature: the ability to import a pool with missing top level (i.e. non-redundant) devices. Note that since this almost guarantees some loss Of data, this feature is for now restricted to a read-only import.

  • Err codemadness.org 70 i 64316
  • Err codemadness.org 70 i 64317 Err codemadness.org 70 i 64318
    • 7614 zfs device evacuation/removal Err codemadness.org 70 i 64319 This project allows top-level vdevs to be removed from the storage pool with “zpool remove”, reducing the total amount of storage in the pool. This operation copies all allocated regions of the device to be removed onto other devices, recording the mapping from old to new location. After the removal is complete, read and free operations to the removed (now “indirect”) vdev must be remapped and performed at the new location on disk. The indirect mapping table is kept in memory whenever the pool is loaded, so there is minimal performance overhead when doing operations on the indirect vdev. Err codemadness.org 70 i 64320 The size of the in-memory mapping table will be reduced when its entries become “obsolete” because they are no longer used by any block pointers in the pool. An entry becomes obsolete when all the blocks that use it are freed. An entry can also become obsolete when all the snapshots that reference it are deleted, and the block pointers that reference it have been “remapped” in all filesystems/zvols (and clones). Whenever an indirect block is written, all the block pointers in it will be “remapped” to their new (concrete) locations if possible. This process can be accelerated by using the “zfs remap” command to proactively rewrite all indirect blocks that reference indirect (removed) vdevs. Err codemadness.org 70 i 64321 Note that when a device is removed, we do not verify the checksum of the data that is copied. This makes the process much faster, but if it were used on redundant vdevs (i.e. mirror or raidz vdevs), it would be possible to copy the wrong data, when we have the correct data on e.g. the other side of the mirror. Therefore, mirror and raidz devices can not be removed.
  • Err codemadness.org 70 i 64322
  • You can use ‘zpool detach’ to downgrade a mirror to a single top-level device, so that you can then remove it
  • Err codemadness.org 70 i 64323
  • Err codemadness.org 70 i 64324
  • Err codemadness.org 70 i 64325
  • This one was not actually merged into FreeBSD, as it doesn’t apply currently, but I would like to switch the way FreeBSD deals with full disks to be closer to IllumOS to make automatic spare replacement a hands-off operation. Err codemadness.org 70 i 64326 Since we support whole-disk configuration for boot pool, we also will need whole disk support with UEFI boot and for this, zpool create should create efi-system partition. I have borrowed the idea from oracle solaris, and introducing zpool create -B switch to provide an way to specify that boot partition should be created. However, there is still an question, how big should the system partition be. For time being, I have set default size 256MB (thats minimum size for FAT32 with 4k blocks). To support custom size, the set on creation "bootsize" property is created and so the custom size can be set as: zpool create -B -o bootsize=34MB rpool c0t0d0. After the pool is created, the "bootsize" property is read only. When -B switch is not used, the bootsize defaults to 0 and is shown in zpool get output with no value. Older zfs/zpool implementations can ignore this property.
  • Err codemadness.org 70 i 64327
Err codemadness.org 70 i 64328 Err codemadness.org 70 i 64329
Err codemadness.org 70 i 64330 Err codemadness.org 70 i 64331 Err codemadness.org 70 i 64332 **Digital Ocean** Err codemadness.org 70 i 64333 Err codemadness.org 70 i 64334 Err codemadness.org 70 i 64335 Err codemadness.org 70 i 64336

PostgreSQL developers find that every operating system other than FreeBSD and IllumOS might corrupt your data

Err codemadness.org 70 i 64337 Err codemadness.org 70 i 64338 Err codemadness.org 70 i 64339 Err codemadness.org 70 i 64340
Err codemadness.org 70 i 64341

Some time ago I ran into an issue where a user encountered data corruption after a storage error. PostgreSQL played a part in that corruption by allowing checkpoint what should've been a fatal error. Err codemadness.org 70 i 64342 TL;DR: Pg should PANIC on fsync() EIO return. Retrying fsync() is not OK at least on Linux. When fsync() returns success it means "all writes since the last fsync have hit disk" but we assume it means "all writes since the last SUCCESSFUL fsync have hit disk". Err codemadness.org 70 i 64343 Pg wrote some blocks, which went to OS dirty buffers for writeback. Writeback failed due to an underlying storage error. The block I/O layer and XFS marked the writeback page as failed (ASEIO), but had no way to tell the app about the failure. When Pg called fsync() on the FD during the next checkpoint, fsync() returned EIO because of the flagged page, to tell Pg that a previous async write failed. Pg treated the checkpoint as failed and didn't advance the redo start position in the control file. Err codemadness.org 70 i 64344 + All good so far. Err codemadness.org 70 i 64345 But then we retried the checkpoint, which retried the fsync(). The retry succeeded, because the prior fsync() *cleared the ASEIO bad page flag*. Err codemadness.org 70 i 64346 The write never made it to disk, but we completed the checkpoint, and merrily carried on our way. Whoops, data loss. Err codemadness.org 70 i 64347 The clear-error-and-continue behaviour of fsync is not documented as far as I can tell. Nor is fsync() returning EIO unless you have a very new linux man-pages with the patch I wrote to add it. But from what I can see in the POSIX standard we are not given any guarantees about what happens on fsync() failure at all, so we're probably wrong to assume that retrying fsync() is safe. Err codemadness.org 70 i 64348 We already PANIC on fsync() failure for WAL segments. We just need to do the same for data forks at least for EIO. This isn't as bad as it seems because AFAICS fsync only returns EIO in cases where we should be stopping the world anyway, and many FSes will do that for us. Err codemadness.org 70 i 64349 + Upon further looking, it turns out it is not just Linux brain damage: Err codemadness.org 70 i 64350 Apparently I was too optimistic. I had looked only at FreeBSD, which keeps the page around and dirties it so we can retry, but the other BSDs apparently don't (FreeBSD changed that in 1999). Err codemadness.org 70 i 64351 From what I can tell from the sources below, we have: Linux, OpenBSD, NetBSD: retrying fsync() after EIO lies Err codemadness.org 70 i 64352 FreeBSD, Illumos: retrying fsync() after EIO tells the truth Err codemadness.org 70 i 64353 + NetBSD PR to solve the issues Err codemadness.org 70 i 64354 + I/O errors are not reported back to fsync at all. Err codemadness.org 70 i 64355 + Write errors during genfs_putpages that fail for any reason other than ENOMEM cause the data to be semi-silently discarded. Err codemadness.org 70 i 64356 + It appears that UVM pages are marked clean when they're selected to be written out, not after the write succeeds; so there are a bunch of potential races when writes fail. Err codemadness.org 70 i 64357 + It appears that write errors for buffercache buffers are semi-silently discarded as well.

Err codemadness.org 70 i 64358
Err codemadness.org 70 i 64359 Err codemadness.org 70 i 64360
Err codemadness.org 70 i 64361 Err codemadness.org 70 i 64362 Err codemadness.org 70 i 64363 Err codemadness.org 70 i 64364 Err codemadness.org 70 i 64365 Err codemadness.org 70 i 64366

Interview - Kevin Bowling: Senior Manager Engineering of LimeLight Networks - kbowling@llnw.com / @kevinbowling1

Err codemadness.org 70 i 64367 Err codemadness.org 70 i 64368
    Err codemadness.org 70 i 64369
  • BR: How did you first get introduced to UNIX and BSD?
  • Err codemadness.org 70 i 64370
  • AJ: What got you started contributing to an open source project?
  • Err codemadness.org 70 i 64371
  • BR: What sorts of things have you worked on it the past?
  • Err codemadness.org 70 i 64372
  • AJ: Tell us a bit about LimeLight and how they use FreeBSD.
  • Err codemadness.org 70 i 64373
  • BR: What are the biggest advantages of FreeBSD for LimeLight?
  • Err codemadness.org 70 i 64374
  • AJ: What could FreeBSD do better that would benefit LimeLight?
  • Err codemadness.org 70 i 64375
  • BR: What has LimeLight given back to FreeBSD?
  • Err codemadness.org 70 i 64376
  • AJ: What have you been working on more recently?
  • Err codemadness.org 70 i 64377
  • BR: What do you find to be the most valuable part of open source?
  • Err codemadness.org 70 i 64378
  • AJ: Where do you think the most improvement in open source is needed?
  • Err codemadness.org 70 i 64379
  • BR: Tell us a bit about your computing history collection. What are your three favourite pieces?
  • Err codemadness.org 70 i 64380
  • AJ: How do you keep motivated to work on Open Source?
  • Err codemadness.org 70 i 64381
  • BR: What do you do for fun?
  • Err codemadness.org 70 i 64382
  • AJ: Anything else you want to mention?
  • Err codemadness.org 70 i 64383
Err codemadness.org 70 i 64384 Err codemadness.org 70 i 64385


Err codemadness.org 70 i 64386 Err codemadness.org 70 i 64387

News Roundup

Err codemadness.org 70 i 64388 Err codemadness.org 70 i 64389

BSDCan 2018 Selected Talks

Err codemadness.org 70 i 64390 Err codemadness.org 70 i 64391
    Err codemadness.org 70 i 64392
  • The schedule for BSDCan is up
  • Err codemadness.org 70 i 64393
  • Lots of interesting content, we are looking forward to it
  • Err codemadness.org 70 i 64394
  • We hope to see lots of you there. Make sure you come introduce yourselves to us. Don’t be shy.
  • Err codemadness.org 70 i 64395
  • Remember, if this is your first BSDCan, checkout the newbie session on Thursday night. It’ll help you get to know a few people so you have someone you can ask for guidance.
  • Err codemadness.org 70 i 64396
  • Also, check out the hallway track, the tables, and come to the hacker lounge.
  • Err codemadness.org 70 i 64397
Err codemadness.org 70 i 64398 Err codemadness.org 70 i 64399


Err codemadness.org 70 i 64400 Err codemadness.org 70 i 64401

iXsystems

Err codemadness.org 70 i 64402 Err codemadness.org 70 i 64403

Cryptographic Right Answers

Err codemadness.org 70 i 64404 Err codemadness.org 70 i 64405
    Err codemadness.org 70 i 64406
  • Crypto can be confusing. We all know we shouldn’t roll our own, but what should we use?
  • Err codemadness.org 70 i 64407
  • Well, some developers have tried to answer that question over the years, keeping an updated list of “Right Answers”
  • Err codemadness.org 70 i 64408
  • 2009: Colin Percival of FreeBSD
  • Err codemadness.org 70 i 64409
  • 2015: Thomas H. Ptacek
  • Err codemadness.org 70 i 64410
  • 2018: Latacora A consultancy that provides “Retained security teams for startups”, where Thomas Ptacek works. Err codemadness.org 70 i 64411 Err codemadness.org 70 i 64412 Err codemadness.org 70 i 64413
    Err codemadness.org 70 i 64414

    We’re less interested in empowering developers and a lot more pessimistic about the prospects of getting this stuff right.

  • Err codemadness.org 70 i 64415
Err codemadness.org 70 i 64416 There are, in the literature and in the most sophisticated modern systems, “better” answers for many of these items. If you’re building for low-footprint embedded systems, you can use STROBE and a sound, modern, authenticated encryption stack entirely out of a single SHA-3-like sponge constructions. You can use NOISE to build a secure transport protocol with its own AKE. Speaking of AKEs, there are, like, 30 different password AKEs you could choose from.

Err codemadness.org 70 i 64417 Err codemadness.org 70 i 64418

But if you’re a developer and not a cryptography engineer, you shouldn’t do any of that. You should keep things simple and conventional and easy to analyze; “boring”, as the Google TLS people would say.

Err codemadness.org 70 i 64419 Err codemadness.org 70 i 64420 Err codemadness.org 70 i 64421
    Err codemadness.org 70 i 64422
  • Cryptographic Right Answers

  • Err codemadness.org 70 i 64423
  • Encrypting Data

  • Err codemadness.org 70 i 64424
Err codemadness.org 70 i 64425 Err codemadness.org 70 i 64426
Err codemadness.org 70 i 64427

Percival, 2009: AES-CTR with HMAC. Err codemadness.org 70 i 64428 Ptacek, 2015: (1) NaCl/libsodium’s default, (2) ChaCha20-Poly1305, or (3) AES-GCM. Err codemadness.org 70 i 64429 Latacora, 2018: KMS or XSalsa20+Poly1305

Err codemadness.org 70 i 64430
Err codemadness.org 70 i 64431 Err codemadness.org 70 i 64432
    Err codemadness.org 70 i 64433
  • Symmetric key length
  • Err codemadness.org 70 i 64434
Err codemadness.org 70 i 64435 Err codemadness.org 70 i 64436
Err codemadness.org 70 i 64437

Percival, 2009: Use 256-bit keys. Err codemadness.org 70 i 64438 Ptacek, 2015: Use 256-bit keys. Err codemadness.org 70 i 64439 Latacora, 2018: Go ahead and use 256 bit keys.

Err codemadness.org 70 i 64440
Err codemadness.org 70 i 64441 Err codemadness.org 70 i 64442
    Err codemadness.org 70 i 64443
  • Symmetric “Signatures”
  • Err codemadness.org 70 i 64444
Err codemadness.org 70 i 64445 Err codemadness.org 70 i 64446
Err codemadness.org 70 i 64447

Percival, 2009: Use HMAC. Err codemadness.org 70 i 64448 Ptacek, 2015: Yep, use HMAC. Err codemadness.org 70 i 64449 Latacora, 2018: Still HMAC.

Err codemadness.org 70 i 64450
Err codemadness.org 70 i 64451 Err codemadness.org 70 i 64452
    Err codemadness.org 70 i 64453
  • Hashing algorithm
  • Err codemadness.org 70 i 64454
Err codemadness.org 70 i 64455 Err codemadness.org 70 i 64456
Err codemadness.org 70 i 64457

Percival, 2009: Use SHA256 (SHA-2). Err codemadness.org 70 i 64458 Ptacek, 2015: Use SHA-2. Err codemadness.org 70 i 64459 Latacora, 2018: Still SHA-2.

Err codemadness.org 70 i 64460
Err codemadness.org 70 i 64461 Err codemadness.org 70 i 64462
    Err codemadness.org 70 i 64463
  • Random IDs
  • Err codemadness.org 70 i 64464
Err codemadness.org 70 i 64465 Err codemadness.org 70 i 64466
Err codemadness.org 70 i 64467

Percival, 2009: Use 256-bit random numbers. Err codemadness.org 70 i 64468 Ptacek, 2015: Use 256-bit random numbers. Err codemadness.org 70 i 64469 Latacora, 2018: Use 256-bit random numbers.

Err codemadness.org 70 i 64470
Err codemadness.org 70 i 64471 Err codemadness.org 70 i 64472
    Err codemadness.org 70 i 64473
  • Password handling
  • Err codemadness.org 70 i 64474
Err codemadness.org 70 i 64475 Err codemadness.org 70 i 64476
Err codemadness.org 70 i 64477

Percival, 2009: scrypt or PBKDF2. Err codemadness.org 70 i 64478 Ptacek, 2015: In order of preference, use scrypt, bcrypt, and then if nothing else is available PBKDF2. Err codemadness.org 70 i 64479 Latacora, 2018: In order of preference, use scrypt, argon2, bcrypt, and then if nothing else is available PBKDF2.

Err codemadness.org 70 i 64480
Err codemadness.org 70 i 64481 Err codemadness.org 70 i 64482
    Err codemadness.org 70 i 64483
  • Asymmetric encryption
  • Err codemadness.org 70 i 64484
Err codemadness.org 70 i 64485 Err codemadness.org 70 i 64486
Err codemadness.org 70 i 64487

Percival, 2009: Use RSAES-OAEP with SHA256 and MGF1+SHA256 bzzrt pop ffssssssst exponent 65537. Err codemadness.org 70 i 64488 Ptacek, 2015: Use NaCl/libsodium (box / cryptobox). Err codemadness.org 70 i 64489 Latacora, 2018: Use Nacl/libsodium (box / cryptobox).

Err codemadness.org 70 i 64490
Err codemadness.org 70 i 64491 Err codemadness.org 70 i 64492
    Err codemadness.org 70 i 64493
  • Asymmetric signatures
  • Err codemadness.org 70 i 64494
Err codemadness.org 70 i 64495 Err codemadness.org 70 i 64496
Err codemadness.org 70 i 64497

Percival, 2009: Use RSASSA-PSS with SHA256 then MGF1+SHA256 in tricolor systemic silicate orientation. Err codemadness.org 70 i 64498 Ptacek, 2015: Use Nacl, Ed25519, or RFC6979. Err codemadness.org 70 i 64499 Latacora, 2018: Use Nacl or Ed25519.

Err codemadness.org 70 i 64500
Err codemadness.org 70 i 64501 Err codemadness.org 70 i 64502
    Err codemadness.org 70 i 64503
  • Diffie-Hellman
  • Err codemadness.org 70 i 64504
Err codemadness.org 70 i 64505 Err codemadness.org 70 i 64506
Err codemadness.org 70 i 64507

Percival, 2009: Operate over the 2048-bit Group #14 with a generator of 2. Err codemadness.org 70 i 64508 Ptacek, 2015: Probably still DH-2048, or Nacl. Err codemadness.org 70 i 64509 Latacora, 2018: Probably nothing. Or use Curve25519.

Err codemadness.org 70 i 64510
Err codemadness.org 70 i 64511 Err codemadness.org 70 i 64512
    Err codemadness.org 70 i 64513
  • Website security
  • Err codemadness.org 70 i 64514
Err codemadness.org 70 i 64515 Err codemadness.org 70 i 64516
Err codemadness.org 70 i 64517

Percival, 2009: Use OpenSSL. Err codemadness.org 70 i 64518 Ptacek, 2015: Remains: OpenSSL, or BoringSSL if you can. Or just use AWS ELBs Err codemadness.org 70 i 64519 Latacora, 2018: Use AWS ALB/ELB or OpenSSL, with LetsEncrypt

Err codemadness.org 70 i 64520
Err codemadness.org 70 i 64521 Err codemadness.org 70 i 64522
    Err codemadness.org 70 i 64523
  • Client-server application security
  • Err codemadness.org 70 i 64524
Err codemadness.org 70 i 64525 Err codemadness.org 70 i 64526
Err codemadness.org 70 i 64527

Percival, 2009: Distribute the server’s public RSA key with the client code, and do not use SSL. Err codemadness.org 70 i 64528 Ptacek, 2015: Use OpenSSL, or BoringSSL if you can. Or just use AWS ELBs Err codemadness.org 70 i 64529 Latacora, 2018: Use AWS ALB/ELB or OpenSSL, with LetsEncrypt

Err codemadness.org 70 i 64530
Err codemadness.org 70 i 64531 Err codemadness.org 70 i 64532
    Err codemadness.org 70 i 64533
  • Online backups
  • Err codemadness.org 70 i 64534
Err codemadness.org 70 i 64535 Err codemadness.org 70 i 64536
Err codemadness.org 70 i 64537

Percival, 2009: Use Tarsnap. Err codemadness.org 70 i 64538 Ptacek, 2015: Use Tarsnap. Err codemadness.org 70 i 64539 Latacora, 2018: Store PMAC-SIV-encrypted arc files to S3 and save fingerprints of your backups to an ERC20-compatible blockchain. Just kidding. You should still use Tarsnap.

Err codemadness.org 70 i 64540
Err codemadness.org 70 i 64541 Err codemadness.org 70 i 64542
    Err codemadness.org 70 i 64543
  • Seriously though, use Tarsnap.
  • Err codemadness.org 70 i 64544
Err codemadness.org 70 i 64545 Err codemadness.org 70 i 64546


Err codemadness.org 70 i 64547 Err codemadness.org 70 i 64548

Adding IPv6 to an existing server

Err codemadness.org 70 i 64549 Err codemadness.org 70 i 64550
Err codemadness.org 70 i 64551

I am adding IPv6 addresses to each of my servers. This post assumes the server is up and running FreeBSD 11.1 and you already have an IPv6 address block. This does not cover the creation of an IPv6 tunnel, such as that provided by HE.net. This assumes native IPv6.

Err codemadness.org 70 i 64552 Err codemadness.org 70 i 64553

In this post, I am using the IPv6 addresses from the IPv6 Address Prefix Reserved for Documentation (i.e. 2001:DB8::/32). You should use your own addresses.

Err codemadness.org 70 i 64554 Err codemadness.org 70 i 64555

The IPv6 block I have been assigned is 2001:DB8:1001:8d00/64.

Err codemadness.org 70 i 64556 Err codemadness.org 70 i 64557

I added this to /etc/rc.conf:

Err codemadness.org 70 i 64558
Err codemadness.org 70 i 64559 Err codemadness.org 70 i 64560

Err codemadness.org 70 i 64561 ipv6_activate_all_interfaces="YES" Err codemadness.org 70 i 64562 ipv6_defaultrouter="2001:DB8:1001:8d00::1" Err codemadness.org 70 i 64563 ifconfig_em1_ipv6="inet6 2001:DB8:1001:8d00:d389:119c:9b57:396b prefixlen 64 accept_rtadv" # ns1 Err codemadness.org 70 i 64564

Err codemadness.org 70 i 64565 Err codemadness.org 70 i 64566
Err codemadness.org 70 i 64567

The IPv6 address I have assigned to this host is completely random (with the given block). I found a random IPv6 address generator and used it to select d389:119c:9b57:396b as the address for this service within my address block.

Err codemadness.org 70 i 64568 Err codemadness.org 70 i 64569

I don’t have the reference, but I did read that randomly selecting addresses within your block is a better approach.

Err codemadness.org 70 i 64570 Err codemadness.org 70 i 64571

In order to invoke these changes without rebooting, I issued these commands:

Err codemadness.org 70 i 64572
Err codemadness.org 70 i 64573 Err codemadness.org 70 i 64574

``` Err codemadness.org 70 i 64575 [dan@tallboy:~] $ sudo ifconfig em1 inet6 2001:DB8:1001:8d00:d389:119c:9b57:396b prefixlen 64 accept_rtadv Err codemadness.org 70 i 64576 [dan@tallboy:~] $

Err codemadness.org 70 i 64577 Err codemadness.org 70 i 64578

[dan@tallboy:~] $ sudo route add -inet6 default 2001:DB8:1001:8d00::1 Err codemadness.org 70 i 64579 add net default: gateway 2001:DB8:1001:8d00::1 Err codemadness.org 70 i 64580 ```

Err codemadness.org 70 i 64581 Err codemadness.org 70 i 64582
Err codemadness.org 70 i 64583

If you do the route add first, you will get this error:

Err codemadness.org 70 i 64584
Err codemadness.org 70 i 64585 Err codemadness.org 70 i 64586

Err codemadness.org 70 i 64587 [dan@tallboy:~] $ sudo route add -inet6 default 2001:DB8:1001:8d00::1 Err codemadness.org 70 i 64588 route: writing to routing socket: Network is unreachable Err codemadness.org 70 i 64589 add net default: gateway 2001:DB8:1001:8d00::1 fib 0: Network is unreachable Err codemadness.org 70 i 64590

Err codemadness.org 70 i 64591 Err codemadness.org 70 i 64592


Err codemadness.org 70 i 64593 Err codemadness.org 70 i 64594

Beastie Bits

Err codemadness.org 70 i 64595 Err codemadness.org 70 i 64596 Err codemadness.org 70 i 64604 Err codemadness.org 70 i 64605


Err codemadness.org 70 i 64606 Err codemadness.org 70 i 64607

Tarsnap

Err codemadness.org 70 i 64608 Err codemadness.org 70 i 64609

Feedback/Questions

Err codemadness.org 70 i 64610 Err codemadness.org 70 i 64611 Err codemadness.org 70 i 64617 Err codemadness.org 70 i 64618


Err codemadness.org 70 i 64619 Err codemadness.org 70 i 64620
    Err codemadness.org 70 i 64621
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 64622
]]> Err codemadness.org 70 i 64623
Err codemadness.org 70 i 64624 https://fireside.fm/player/v2/FYhhasNR+egnnEVS3 Err codemadness.org 70 i 64625 Err codemadness.org 70 i 64626 ]]> Err codemadness.org 70 i 64627 Err codemadness.org 70 i 64628
Err codemadness.org 70 i 64629 Err codemadness.org 70 i 64630 Episode 240: TCP Blackbox Recording | BSD Now 240 Err codemadness.org 70 i 64631 https://www.bsdnow.tv/240 Err codemadness.org 70 i 64632 http://feed.jupiter.zone/bsdnow#entry-1717 Err codemadness.org 70 i 64633 Sat, 07 Apr 2018 12:00:00 -0700 Err codemadness.org 70 i 64634 Allan Jude Err codemadness.org 70 i 64635 Err codemadness.org 70 i 64636 full Err codemadness.org 70 i 64637 Allan Jude Err codemadness.org 70 i 64638 New ZFS features landing in FreeBSD, MAP_STACK for OpenBSD, how to write safer C code with Clang’s address sanitizer, Michael W. Lucas on sponsor gifts, TCP blackbox recorder, and Dell disk system hacking. Err codemadness.org 70 i 64639 1:39:18 Err codemadness.org 70 i 64640 no Err codemadness.org 70 i 64641 Err codemadness.org 70 i 64642 New ZFS features landing in FreeBSD, MAP_STACK for OpenBSD, how to write safer C code with Clang’s address sanitizer, Michael W. Lucas on sponsor gifts, TCP blackbox recorder, and Dell disk system hacking. Err codemadness.org 70 i 64643 <h2>Headlines</h2> Err codemadness.org 70 i 64644 <h3>[A number of Upstream ZFS features landed in FreeBSD this week]</h3> Err codemadness.org 70 i 64645 Err codemadness.org 70 i 64646 <ul> Err codemadness.org 70 i 64647 <li><p><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=331711">9188 increase size of dbuf cache to reduce indirect block decompression</a></p> Err codemadness.org 70 i 64648 Err codemadness.org 70 i 64649 <blockquote> Err codemadness.org 70 i 64650 <p>With compressed ARC (6950) we use up to 25% of our CPU to decompress indirect blocks, under a workload of random cached reads. To reduce this decompression cost, we would like to increase the size of the dbuf cache so that more indirect blocks can be stored uncompressed. Err codemadness.org 70 i 64651 If we are caching entire large files of recordsize=8K, the indirect blocks use 1/64th as much memory as the data blocks (assuming they have the same compression ratio). We suggest making the dbuf cache be 1/32nd of all memory, so that in this scenario we should be able to keep all the indirect blocks decompressed in the dbuf cache. (We want it to be more than the 1/64th that the indirect blocks would use because we need to cache other stuff in the dbuf cache as well.) Err codemadness.org 70 i 64652 In real world workloads, this won't help as dramatically as the example above, but we think it's still worth it because the risk of decreasing performance is low. The potential negative performance impact is that we will be slightly reducing the size of the ARC (by ~3%).</p> Err codemadness.org 70 i 64653 </blockquote></li> Err codemadness.org 70 i 64654 <li><p><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=331701">9166 zfs storage pool checkpoint</a></p> Err codemadness.org 70 i 64655 Err codemadness.org 70 i 64656 <blockquote> Err codemadness.org 70 i 64657 <p>The idea of Storage Pool Checkpoint (aka zpool checkpoint) deals with exactly that. It can be thought of as a “pool-wide snapshot” (or a variation of extreme rewind that doesn’t corrupt your data). It remembers the entire state of the pool at the point that it was taken and the user can revert back to it later or discard it. Its generic use case is an administrator that is about to perform a set of destructive actions to ZFS as part of a critical procedure. She takes a checkpoint of the pool before performing the actions, then rewinds back to it if one of them fails or puts the pool into an unexpected state. Otherwise, she discards it. With the assumption that no one else is making modifications to ZFS, she basically wraps all these actions into a “high-level transaction”.</p> Err codemadness.org 70 i 64658 </blockquote></li> Err codemadness.org 70 i 64659 <li><p><a href="https://sdimitro.github.io/post/zpool-checkpoint/">More information</a></p></li> Err codemadness.org 70 i 64660 <li><p><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=331404">8484 Implement aggregate sum and use for arc counters</a></p> Err codemadness.org 70 i 64661 Err codemadness.org 70 i 64662 <blockquote> Err codemadness.org 70 i 64663 <p>In pursuit of improving performance on multi-core systems, we should implements fanned out counters and use them to improve the performance of some of the arc statistics. These stats are updated extremely frequently, and can consume a significant amount of CPU time.</p> Err codemadness.org 70 i 64664 </blockquote></li> Err codemadness.org 70 i 64665 <li><p>And a small bug fix authored by me:</p></li> Err codemadness.org 70 i 64666 <li><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=331709">9321 arc<em>loan</em>compressed<em>buf() can increment arc</em>loaned<em>bytes by the wrong value</a> Err codemadness.org 70 i 64667 Err codemadness.org 70 i 64668 Err codemadness.org 70 i 64669 <blockquote> Err codemadness.org 70 i 64670 arc</em>loan<em>compressed</em>buf() increments arc<em>loaned</em>bytes by psize unconditionally In the case of zfs<em>compressed</em>arc<em>enabled=0, when the buf is returned via arc</em>return<em>buf(), if ARC</em>BUF<em>COMPRESSED(buf) is false, then arc</em>loaned<em>bytes is decremented by lsize, not psize. Err codemadness.org 70 i 64671 Switch to using arc</em>buf<em>size(buf), instead of psize, which will return psize or lsize, depending on the result of ARC</em>BUF_COMPRESSED(buf).</li> Err codemadness.org 70 i 64672 </ul> Err codemadness.org 70 i 64673 <hr /> Err codemadness.org 70 i 64674 </blockquote> Err codemadness.org 70 i 64675 Err codemadness.org 70 i 64676 <h3><a href="https://marc.info/?l=openbsd-tech&amp;m=152035796722258&amp;w=2">MAP_STACK for OpenBSD</a></h3> Err codemadness.org 70 i 64677 Err codemadness.org 70 i 64678 Err codemadness.org 70 i 64679 Err codemadness.org 70 i 64680 <blockquote> Err codemadness.org 70 i 64681 <p>Almost 2 decades ago we started work on W^X. The concept was simple. Pages that are writable, should not be executable. We applied this concept object by object, trying to seperate objects with different qualities to different pages. The first one we handled was the signal trampoline at the top of the stack. We just kept making changes in the same vein. Eventually W^X came to some of our kernel address spaces also. Err codemadness.org 70 i 64682 The fundamental concept is that an object should only have the Err codemadness.org 70 i 64683 permissions necessary, and any other operation should fault. The only permission separations we have are kernel vs userland, and then read, write, and execute. Err codemadness.org 70 i 64684 How about we add another new permission! This is not a hardware permission, but a software permission. It is opportunistically enforced by the kernel. Err codemadness.org 70 i 64685 the permission is MAP<em>STACK. If you want to use memory as a stack, you must mmap it with that flag bit. The kernel does so automatically for the stack region of a process's stack. Two other types of stack occur: thread stacks, and alternate signal stacks. Those are handled in clever ways. Err codemadness.org 70 i 64686 When a system call happens, we check if the stack-pointer register points to such a page. If it doesn't, the program is killed. We have tightened the ABI. You may no longer point your stack register at non-stack memory. You'll be killed. This checking code is MI, so it works for all platforms. Err codemadness.org 70 i 64687 Since page-permissions are generally done on page boundaries, there is caveat that thread and altstacks must now be page-sized and page-aligned, so that we can enforce the MAP</em>STACK attribute correctly. It is possible that a few ports need some massaging to satisfy this condition, but we haven't found any which break yet. A syslog_r has been added so that we can identify these failure cases. Also, the faulting cases are quite verbose for now, to help identify the programs we need to repair.</p> Err codemadness.org 70 i 64688 </blockquote> Err codemadness.org 70 i 64689 Err codemadness.org 70 i 64690 <hr /> Err codemadness.org 70 i 64691 Err codemadness.org 70 i 64692 Err codemadness.org 70 i 64693 Err codemadness.org 70 i 64694 **iXsystems** Err codemadness.org 70 i 64695 Err codemadness.org 70 i 64696 Err codemadness.org 70 i 64697 Err codemadness.org 70 i 64698 <h3><a href="https://dev.to/loderunner/writing-safer-c-with-clang-address-sanitizer">Writing Safer C with the Clang Address Sanitizer</a></h3> Err codemadness.org 70 i 64699 Err codemadness.org 70 i 64700 Err codemadness.org 70 i 64701 Err codemadness.org 70 i 64702 <blockquote> Err codemadness.org 70 i 64703 <p>We wanted to improve our password strength algorithm, and decided to go for the industry-standard zxcvbn, from the people at Dropbox. Our web front-end would use the default Javascript library, and for mobile and desktop, we chose to use the C implementation as it was the lowest common denominator for all platforms. Err codemadness.org 70 i 64704 Bootstrapping all of this together was done pretty fast. I had toyed around with a few sample passwords so I decided to run it through the test suite we had for the previous password strength evaluator. The test generates a large number of random passwords according to different rules and expects the strength to be in a given range. But the test runner kept crashing with segmentation faults. Err codemadness.org 70 i 64705 It turns out the library has a lot of buffer overflow cases that are usually "harmless", but eventually crash your program when you run the evaluator function too much. I started fixing the cases I could see, but reading someone else's algorithms to track down tiny memory errors got old pretty fast. I needed a tool to help me. Err codemadness.org 70 i 64706 That's when I thought of Clang's Address Sanitizer. Err codemadness.org 70 i 64707 AddressSanitizer is a fast memory error detector. It consists of a compiler instrumentation module and a run-time library Err codemadness.org 70 i 64708 Let's try the sanitizer on a simple program. We'll allocate a buffer on the heap, copy each character of a string into it, and print it to standard output. Err codemadness.org 70 i 64709 + The site walks through a simple example which contains an error, it writes past the end of a buffer Err codemadness.org 70 i 64710 + The code works as expected, and nothing bad happens. It must be fine… Err codemadness.org 70 i 64711 + Then they compile it again with the address sanitizer actived Err codemadness.org 70 i 64712 So what can we gather from that pile of hex? Let's go through it line by line. Err codemadness.org 70 i 64713 AddressSanitizer found a heap buffer overflow at 0x60200000ef3d, a seemingly valid address (not NULL or any other clearly faulty value). Err codemadness.org 70 i 64714 + ASAN points directly to the line of code that is causing the problem Err codemadness.org 70 i 64715 We're writing outside of the heap in this instruction. And AddressSanitizer isn't having it. Err codemadness.org 70 i 64716 This is definitely one of my favorite indications. In addition to telling which line in the code failed and where in the memory the failure happened, you get a complete description of the closest allocated region in memory (which is probably the region you were trying to access). Err codemadness.org 70 i 64717 + They then walk through combining this with lldb, the Clang debugger, to actually interactively inspect the state of the problem when an invalid memory access happens Err codemadness.org 70 i 64718 Back to my practical case, how did I put the address sanitizer to good use? I simply ran the test suite, compiled with the sanitizer, with lldb. Sure enough, it stopped on every line that could cause a crash. It turns out there were many cases where zxcvbn-c wrote past the end of allocated buffers, on the heap and on the stack. I fixed those cases in the C library and ran the tests again. Not a segfault in sight! Err codemadness.org 70 i 64719 I've used memory tools in the past, but they were usually unwieldy, or put such a toll on performance that they were useless in any real-life case. Clang's address sanitizer turned out to be detailed, reliable, and surprisingly easy to use. I've heard of the miracles of Valgrind but macOS hardly supports it, making it a pain to use on my MacBook Pro. Err codemadness.org 70 i 64720 Coupled with Clang's static analyzer, AddressSanitizer is going to become a mandatory stop for evaluating code quality. It's also going to be the first tool I grab when facing confusing memory issues. There are many more case where I could use early failure and memory history to debug my code. For example, if a program crashes when accessing member of a deallocated object, we could easily trace the event that caused the deallocation, saving hours of adding and reading logs to retrace just what happened.</p> Err codemadness.org 70 i 64721 </blockquote> Err codemadness.org 70 i 64722 Err codemadness.org 70 i 64723 <hr /> Err codemadness.org 70 i 64724 Err codemadness.org 70 i 64725 Err codemadness.org 70 i 64726 Err codemadness.org 70 i 64727 Err codemadness.org 70 i 64728 Err codemadness.org 70 i 64729 Err codemadness.org 70 i 64730 Err codemadness.org 70 i 64731 <h2>News Roundup</h2> Err codemadness.org 70 i 64732 Err codemadness.org 70 i 64733 Err codemadness.org 70 i 64734 Err codemadness.org 70 i 64735 <h3><a href="https://blather.michaelwlucas.com/archives/3131">On sponsor gifts</a></h3> Err codemadness.org 70 i 64736 Err codemadness.org 70 i 64737 Err codemadness.org 70 i 64738 Err codemadness.org 70 i 64739 <blockquote> Err codemadness.org 70 i 64740 <p>Note the little stack of customs forms off to the side. It’s like I’ve learned a lesson from standing at the post office counter filling out those stupid forms. Sponsors should get their books soon.</p> Err codemadness.org 70 i 64741 Err codemadness.org 70 i 64742 <p>This seems like an apropos moment to talk about what I do for print sponsors. I say I send them “a gift,” but what does that really mean? The obvious thing to ship them is a copy of the book I’ve written. Flat-out selling print books online has tax implications, though.</p> Err codemadness.org 70 i 64743 Err codemadness.org 70 i 64744 <p>Sponsors might have guessed that they’d get a copy of the book. But I shipped them the hardcover, which isn’t my usual practice.</p> Err codemadness.org 70 i 64745 Err codemadness.org 70 i 64746 <p>That’s because I send sponsors a gift. As it’s a gift, I get to choose what I send. I want to send them something nice, to encourage them to sponsor another book. It makes no sense for me to send a sponsor a Singing Wedgie-O-Gram. (Well, maybe a couple sponsors. You know who you are.)</p> Err codemadness.org 70 i 64747 Err codemadness.org 70 i 64748 <p>The poor bastards who bought into my scam–er, sponsored my untitled book–have no idea what’s coming. As of right now, their sensible guesses are woefully incomplete.</p> Err codemadness.org 70 i 64749 Err codemadness.org 70 i 64750 <p>Future books? They might get a copy of the book. They might get book plus something. They might just get the something. Folks who sponsor the jails book might get a cake with a file in it. Who knows?</p> Err codemadness.org 70 i 64751 Err codemadness.org 70 i 64752 <p>It’s a gift. It’s my job to make that gift worthwhile.</p> Err codemadness.org 70 i 64753 Err codemadness.org 70 i 64754 <p>And to amuse myself. Because otherwise, what’s the point?</p> Err codemadness.org 70 i 64755 </blockquote> Err codemadness.org 70 i 64756 Err codemadness.org 70 i 64757 <hr /> Err codemadness.org 70 i 64758 Err codemadness.org 70 i 64759 Err codemadness.org 70 i 64760 Err codemadness.org 70 i 64761 Err codemadness.org 70 i 64762 Err codemadness.org 70 i 64763 <h3><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=331347">TCP Blackbox Recorder</a></h3> Err codemadness.org 70 i 64764 Err codemadness.org 70 i 64765 ``` Err codemadness.org 70 i 64766 Add the "TCP Blackbox Recorder" which we discussed at the developer Err codemadness.org 70 i 64767 summits at BSDCan and BSDCam in 2017. Err codemadness.org 70 i 64768 Err codemadness.org 70 i 64769 The TCP Blackbox Recorder allows you to capture events on a TCP connection Err codemadness.org 70 i 64770 in a ring buffer. It stores metadata with the event. It optionally stores Err codemadness.org 70 i 64771 the TCP header associated with an event (if the event is associated with a Err codemadness.org 70 i 64772 packet) and also optionally stores information on the sockets. Err codemadness.org 70 i 64773 Err codemadness.org 70 i 64774 It supports setting a log ID on a TCP connection and using this to correlate Err codemadness.org 70 i 64775 multiple connections that share a common log ID. Err codemadness.org 70 i 64776 Err codemadness.org 70 i 64777 You can log connections in different modes. If you are doing a coordinated Err codemadness.org 70 i 64778 test with a particular connection, you may tell the system to put it in Err codemadness.org 70 i 64779 mode 4 (continuous dump). Or, if you just want to monitor for errors, you Err codemadness.org 70 i 64780 can put it in mode 1 (ring buffer) and dump all the ring buffers associated Err codemadness.org 70 i 64781 with the connection ID when we receive an error signal for that connection Err codemadness.org 70 i 64782 ID. You can set a default mode that will be applied to a particular ratio Err codemadness.org 70 i 64783 of incoming connections. You can also manually set a mode using a socket Err codemadness.org 70 i 64784 option. Err codemadness.org 70 i 64785 Err codemadness.org 70 i 64786 This commit includes only basic probes. rrs@ has added quite an abundance Err codemadness.org 70 i 64787 of probes in his TCP development work. He plans to commit those soon. Err codemadness.org 70 i 64788 Err codemadness.org 70 i 64789 There are user-space programs which we plan to commit as ports. These read Err codemadness.org 70 i 64790 the data from the log device and output pcapng files, and then let you Err codemadness.org 70 i 64791 analyze the data (and metadata) in the pcapng files. Err codemadness.org 70 i 64792 Err codemadness.org 70 i 64793 Reviewed by: gnn (previous version) Err codemadness.org 70 i 64794 Obtained from: Netflix, Inc. Err codemadness.org 70 i 64795 Relnotes: yes Err codemadness.org 70 i 64796 Differential Revision: https://reviews.freebsd.org/D11085 Err codemadness.org 70 i 64797 ``` Err codemadness.org 70 i 64798 Err codemadness.org 70 i 64799 Err codemadness.org 70 i 64800 Err codemadness.org 70 i 64801 <hr /> Err codemadness.org 70 i 64802 Err codemadness.org 70 i 64803 Err codemadness.org 70 i 64804 Err codemadness.org 70 i 64805 **Digital Ocean** Err codemadness.org 70 i 64806 Err codemadness.org 70 i 64807 Err codemadness.org 70 i 64808 Err codemadness.org 70 i 64809 <h3><a href="https://euroquis.nl/bobulate/?p=1812">Outta the way, KDE4</a></h3> Err codemadness.org 70 i 64810 Err codemadness.org 70 i 64811 Err codemadness.org 70 i 64812 Err codemadness.org 70 i 64813 <blockquote> Err codemadness.org 70 i 64814 <p>KDE4 has been rudely moved aside on FreeBSD. It still installs (use x11/kde4) and should update without a problem, but this is another step towards adding modern KDE (Plasma 5 and Applications) to the official FreeBSD Ports tree. Err codemadness.org 70 i 64815 This has taken a long time mostly for administrative reasons, getting all the bits lined up so that people sticking with KDE4 (which, right now, would be everyone using KDE from official ports and packages on FreeBSD) don’t end up with a broken desktop. We don’t want that. But now that everything Qt4 and kdelibs4-based has been moved aside by suffixing it with -kde4, we have the unsuffixed names free to indicate the latest-and-greatest from upstream.</p> Err codemadness.org 70 i 64816 Err codemadness.org 70 i 64817 <p>KDE4 users will see a lot of packages moving around and being renamed, but no functional changes. Curiously, the KDE4 desktop depends on Qt5 and KDE Frameworks 5 — and it has for quite some time already, because the Oxygen icons are shared with KDE Frameworks, but primarily because FileLight was updated to the modern KDE Applications version some time ago (the KDE4 version had some serious bugs, although I can not remember what they were). Now that the names are cleaned up, we could consider giving KDE4 users the buggy version back.</p> Err codemadness.org 70 i 64818 Err codemadness.org 70 i 64819 <p>From here on, we’ve got the following things lined up:</p> Err codemadness.org 70 i 64820 </blockquote> Err codemadness.org 70 i 64821 Err codemadness.org 70 i 64822 <ul> Err codemadness.org 70 i 64823 <li>Qt 5.10 is being worked on, except for WebEngine (it would slow down an update way too much), because Plasma is going to want Qt 5.10 soon.</li> Err codemadness.org 70 i 64824 <li>CMake 3.11 is in the -rc stage, so that is being lined up.</li> Err codemadness.org 70 i 64825 <li>The kde5-import branch in KDE-FreeBSD’s copy of the FreeBSD ports tree (e.g. Area51) is being prepped and polished for a few big SVN commits that will add all the new bits.</li> Err codemadness.org 70 i 64826 </ul> Err codemadness.org 70 i 64827 Err codemadness.org 70 i 64828 <blockquote> Err codemadness.org 70 i 64829 <p>So we’ve been saying Real Soon Now ™ for years, but things are Realer Sooner Nower ™ now.</p> Err codemadness.org 70 i 64830 </blockquote> Err codemadness.org 70 i 64831 Err codemadness.org 70 i 64832 <hr /> Err codemadness.org 70 i 64833 <h3><a href="http://blog.frankleonhardt.com/2017/del-fs12-nv7-and-other-2u-server-e-g-c6100-disk-system-hacking/">Dell FS12-NV7 and other 2U server (e.g. C6100) disk system hacking</a></h3> Err codemadness.org 70 i 64834 Err codemadness.org 70 i 64835 <blockquote> Err codemadness.org 70 i 64836 <p>A while back I reviewed the Dell FS12-NV7 – a 2U rack server being sold cheap by all and sundry. It’s a powerful box, even by modern standards, but one of its big drawbacks is the disk system it comes with. But it needn’t be.</p> Err codemadness.org 70 i 64837 Err codemadness.org 70 i 64838 <p>There are two viable solutions, depending on what you want to do. You can make use of the SAS backplane, using SAS and/or SATA drives, or you can go for fewer SATA drives and free up one or more PCIe slots as Plan B. You probably have an FS12 because it looks good for building a drive array (or even FreeNAS) so I’ll deal with Plan A first.</p> Err codemadness.org 70 i 64839 Err codemadness.org 70 i 64840 <p>Like most Dell servers, this comes with a Dell PERC RAID SAS controller – a PERC6/i to be precise. This ‘I’ means it has internal connectors; the /E is the same but its sockets are external.</p> Err codemadness.org 70 i 64841 Err codemadness.org 70 i 64842 <p>The PERC connects to a twelve-slot backplane forming a drive array at the front of the box. More on the backplane later; it’s the PERCs you need to worry about.</p> Err codemadness.org 70 i 64843 Err codemadness.org 70 i 64844 <p>The PERC6 is actually an LSI Megaraid 1078 card, which is just the thing you need if you’re running an operating system like Windows that doesn’t support a volume manager, striping and other grown-up stuff. Or if your OS does have these features, but you just don’t trust it. If you are running such an OS you may as well stick to the PERC6, and good luck to you. If you’re using BSD (including FreeNAS), Solaris or a Linux distribution that handles disk arrays, read on. The PERC6 is a solution to a problem you probably don’t have, but in all other respects its a turkey. You really want a straightforward HBA (Host Bus Adapter) that allows your clever operating system to talk directly with the drives.</p> Err codemadness.org 70 i 64845 Err codemadness.org 70 i 64846 <p>Any SAS card based on the 1078 (such as the PERC6) is likely to have problems with drives larger than 2Tb. I’m not completely sure why, but I suspect it only applies to SATA. Unfortunately I don’t have any very large SAS drives to test this theory. A 2Tb limit isn’t really such a problem when you’re talking about a high performance array, as lots of small drives are a better option anyway. But it does matter if you’re building a very large datastore and don’t mind slower access and very significant resilvering times when you replace a drive. And for large datastores, very large SATA drives save you a whole lot of cash. The best capacity/cost ratio is for 5Gb SATA drives</p> Err codemadness.org 70 i 64847 Err codemadness.org 70 i 64848 <p>Some Dell PERCs can be re-flashed with LSI firmware and used as a normal HBA. Unfortunately the PERC6 isn’t one of them. I believe the PERC6/R can be, but those I’ve seen in a FS12 are just a bit too old. So the first thing you’ll need to do is dump them in the recycling or try and sell them on eBay.</p> Err codemadness.org 70 i 64849 Err codemadness.org 70 i 64850 <p>There are actually two PERC6 cards in most machine, and they each support eight SAS channels through two SFF-8484 connectors on each card. Given there are twelve drives slots, one of the PERCs is only half used. Sometimes they have a cable going off to a battery located near the fans. This is used in a desperate attempt to keep the data in the card’s cache safe in order to avoid write holes corrupting NTFS during a power failure, although the data on the on-drive caches won’t be so lucky. If you’re using a file system like that, make sure you have a UPS for the whole lot.</p> Err codemadness.org 70 i 64851 Err codemadness.org 70 i 64852 <p>But we’re going to put the PERCs out of our misery and replace them with some nice new LSI HBAs that will do our operating system’s bidding and let it talk to the drives as it knows best. But which to pick? First we need to know what we’re connecting.</p> Err codemadness.org 70 i 64853 Err codemadness.org 70 i 64854 <p>Moving to the front of the case there are twelve metal drive slots with a backplane behind. Dell makes machines with either backplanes or expanders. A backplane has a 1:1 SAS channel to drive connection; an expander takes one SAS channel and multiplexes it to (usually) four drives. You could always swap the blackplane with an expander, but I like the 1:1 nature of a backplane. It’s faster, especially if you’re configured as an array. And besides, we don’t want to spend more money than we need to, otherwise we wouldn’t be hot-rodding a cheap 2U server in the first place – expanders are expensive. Bizarrely, HBAs are cheap in comparison. So we need twelve channels of SAS that will connect to the sockets on the backplane.</p> Err codemadness.org 70 i 64855 Err codemadness.org 70 i 64856 <p>The HBA you will probably want to go with is an LSI, as these have great OS support. Other cards are available, but check that the drivers are also available. The obvious choice for SAS aficionados is the LSI 9211-8i, which has eight internal channels. This is based on an LSI 2000 series chip, the 2008, which is the de-facto standard. There’s also four-channel -4i version, so you could get your twelve channels using one of each – but the price difference is small these days, so you might as well go for two -8i cards. If you want cheaper there are 1068-based equivalent cards, and these work just fine at about half the price. They probably won’t work with larger disks, only operate at 3Gb and the original SAS standard. However, the 2000 series is only about £25 extra and gives you more options for the future. A good investment. Conversely, the latest 3000 series cards can do some extra stuff (particularly to do with active cables) but I can’t see any great advantage in paying megabucks for one unless you’re going really high-end – in which case the NV12 isn’t the box for you anyway. And you’d need some very fast drives and a faster backplane to see any speed advantage. And probably a new motherboard….</p> Err codemadness.org 70 i 64857 Err codemadness.org 70 i 64858 <p>Whether the 6Gb SAS2 of the 9211-8i is any use on the backplane, which was designed for 3Gb, I don’t know. If it matters that much to you you probably need to spend a lot more money. A drive array with a direct 3Gb to each drive is going to shift fast enough for most purposes.</p> Err codemadness.org 70 i 64859 Err codemadness.org 70 i 64860 <p>Once you have removed the PERCs and plugged in your modern-ish 9211 HBAs, your next problem is going to be the cable. Both the PERCs and the backplane have SFF-8484 multi-lane connectors, which you might not recognise. SAS is a point-to-point system, the same as SATA, and a multi-lane cable is simply four single cables in a bundle with one plug. (Newer versions of SAS have more). SFF-8484 multi-lane connectors are somewhat rare, (but unfortunately this doesn’t make them valuable if you were hoping to flog them on eBay). The world switched quickly to the SFF-8087 for multi-lane SAS. The signals are electrically the same, but the connector is not.</p> Err codemadness.org 70 i 64861 Err codemadness.org 70 i 64862 <p>Please generate and paste your ad code here. If left empty, the ad location will be highlighted on your blog pages with a reminder to enter your code. Mid-Post Err codemadness.org 70 i 64863 So there are two snags with this backplane. Firstly it’s designed to work with PERC controllers; secondly it has the old SFF-8484 connectors on the back, and any SAS cables you find are likely to have SFF-8087.</p> Err codemadness.org 70 i 64864 Err codemadness.org 70 i 64865 <p>First things first – there is actually a jumper on the backplane to tell it whether it’s talking to a PERC or a standard LSI HBA. All you need to do is find it and change it. Fortunately there are very few jumpers to choose from (i.e. two), and you know the link is already in the wrong place. So try them one at a time until it works. The one you want may be labelled J15, but I wouldn’t like to say this was the same on every variant.</p> Err codemadness.org 70 i 64866 Err codemadness.org 70 i 64867 <p>Second problem: the cable. You can get cables with an SFF-8087 on one end and an SFF-8484 on the other. These should work. But they’re usually rather expensive. If you want to make your own, it’s a PITA but at least you have the connectors already (assuming you didn’t bin the ones on the PERC cables).</p> Err codemadness.org 70 i 64868 Err codemadness.org 70 i 64869 <p>I don’t know what committee designed SAS cable connectors, but ease of construction wasn’t foremost in their collective minds. You’re basically soldering twisted pair to a tiny PCB. This is mechanically rubbish, of course, as the slightest force on the cable will lift the track. Therefore its usual to cover the whole joint in solidified gunk (technical term) to protect it. Rewiring SAS connectors is definitely not easy.</p> Err codemadness.org 70 i 64870 Err codemadness.org 70 i 64871 <p>I’ve tried various ways of soldering to them, none of which were satisfactory or rewarding. One method is to clip the all bare wires you wish to solder using something like a bulldog clip so they’re at lined up horizontally and then press then adjust the clamp so they’re gently pressed to the tracks on the board, making final adjustments with a strong magnifying glass and a fine tweezers. You can then either solder them with a fine temperature-controlled iron, or have pre-coated the pads with solder paste and flash across it with an SMD rework station. I’d love to know how they’re actually manufactured – using a precision jig I assume.</p> Err codemadness.org 70 i 64872 Err codemadness.org 70 i 64873 <p>The “easy” way is to avoid soldering the connectors at all; simply cut existing cables in half and join one to the other. I’ve used prototyping matrix board for this. Strip and twist the conductors, push them through a hole and solder. This keeps things compact but manageable. We’re dealing with twisted pair here, so maintain the twists as close as possible to the board – it actually works quite well.</p> Err codemadness.org 70 i 64874 Err codemadness.org 70 i 64875 <p>However, I’ve now found a reasonably-priced source of the appropriate cable so I don’t do this any more. Contact me if you need some in the UK.</p> Err codemadness.org 70 i 64876 Err codemadness.org 70 i 64877 <p>So all that remains is to plug your HBAs to the backplane, shove in some drives and you’re away. If you’re at this stage, it “just works”. The access lights for all the drives do their thing as they should. The only mystery is how you can get the ident LED to come on; this may be controlled by the PERC when it detects a failure using the so-called sideband channel, or it may be operated by the electronics on the backplane. It’s workings are, I’m afraid, something of a mystery still – it’s got too much electronics on board to be a completely passive backplane.</p> Err codemadness.org 70 i 64878 Err codemadness.org 70 i 64879 <p>Plan B: SATA</p> Err codemadness.org 70 i 64880 Err codemadness.org 70 i 64881 <p>If you plan to use only SATA drives, especially if you don’t intend using more than six, it makes little sense to bother with SAS at all. The Gigabyte motherboard comes with half a dozen perfectly good 3Gb SATA channels, and if you need more you can always put another controller in a PCIe slot, or even USB. The advantages are lower cost and you get to free up two PCIe slots for more interesting things.</p> Err codemadness.org 70 i 64882 Err codemadness.org 70 i 64883 <p>The down-side is that you can’t use the SAS backplane, but you can still use the mounting bays.</p> Err codemadness.org 70 i 64884 Err codemadness.org 70 i 64885 <p>Removing the backplane looks tricky, but it really isn’t when you look a bit closer. Take out the fans first (held in place by rubber blocks), undo a couple of screws and it just lifts and slides out. You can then slot and lock in the drives and connect the SATA connectors directly to the back of the drives. You could even slide them out again without opening the case, as long as the cable was long enough and you manually detached the cable it when it was withdrawn. And let’s face it – drives are likely to last for years so even with half a dozen it’s not that great a hardship to open the case occasionally.</p> Err codemadness.org 70 i 64886 Err codemadness.org 70 i 64887 <p>Next comes power. The PSU has a special connector for the backplane and two standard SATA power plugs. You could split these three ways using an adapter, but if you have a lot of drives you might want to re-wire the cables going to the backplane plug. It can definitely power twelve drives.</p> Err codemadness.org 70 i 64888 Err codemadness.org 70 i 64889 <p>And that’s almost all there is to it. Unfortunately the main fans are connected to the backplane, which you’ve just removed. You can power them from an adapter on the drive power cables, but there are unused fan connectors on the motherboard. I’m doing a bit more research on cooling options, but this approach has promising possibilities for noise reduction.</p> Err codemadness.org 70 i 64890 </blockquote> Err codemadness.org 70 i 64891 Err codemadness.org 70 i 64892 <hr /> Err codemadness.org 70 i 64893 <h2>Beastie Bits</h2> Err codemadness.org 70 i 64894 Err codemadness.org 70 i 64895 <ul> Err codemadness.org 70 i 64896 <li><a href="https://euroquis.nl/bobulate/?p=1787">Adriaan de Groot’s post FOSDEM blog post</a></li> Err codemadness.org 70 i 64897 <li><a href="https://www.manios.ca/blog/2018/01/my-first-freenas/">My First FreeNAS</a></li> Err codemadness.org 70 i 64898 <li><a href="https://lists.freebsd.org/pipermail/freebsd-fs/2018-March/025997.html">smart(8) Call for Testing by Michael Dexter</a></li> Err codemadness.org 70 i 64899 <li><a href="https://www.freebsdfoundation.org/blog/bsdcan-2018-travel-grant-application-now-open/">BSDCan 2018 Travel Grant Application Now Open</a></li> Err codemadness.org 70 i 64900 <li><a href="https://divelog.blue/linus_torvalds.html">BSD Developer Kristaps Dzonsons interviews Linus Torvalds, about diving</a></li> Err codemadness.org 70 i 64901 <li><a href="https://twitter.com/michaeldexter/status/979236774667939840">Twitter vote - The secret to a faster FreeBSD default build world...</a></li> Err codemadness.org 70 i 64902 <li><a href="https://tmate.io/">tmate - Instant terminal sharing</a></li> Err codemadness.org 70 i 64903 </ul> Err codemadness.org 70 i 64904 Err codemadness.org 70 i 64905 <hr /> Err codemadness.org 70 i 64906 <p><strong>Tarsnap</strong></p> Err codemadness.org 70 i 64907 Err codemadness.org 70 i 64908 <h2>Feedback/Questions</h2> Err codemadness.org 70 i 64909 Err codemadness.org 70 i 64910 <ul> Err codemadness.org 70 i 64911 <li>Vikash - <a href="http://dpaste.com/05X35B1#wrap">Getting a port added</a></li> Err codemadness.org 70 i 64912 <li>Chris Wells - <a href="http://dpaste.com/05S7A6V#wrap">Quarterly Ports Branch</a></li> Err codemadness.org 70 i 64913 <li><a href="https://github.com/freebsd/freebsd-ci">FreeBSD-CI configs on Github</a></li> Err codemadness.org 70 i 64914 <li><a href="https://wiki.freebsd.org/Jenkins">Jenkins on the FreeBSD Wiki</a></li> Err codemadness.org 70 i 64915 <li>Gordon - <a href="http://dpaste.com/0HSVFE7#wrap">Centralised storage suggestions</a></li> Err codemadness.org 70 i 64916 </ul> Err codemadness.org 70 i 64917 Err codemadness.org 70 i 64918 <hr /> Err codemadness.org 70 i 64919 <ul> Err codemadness.org 70 i 64920 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 64921 </ul> Err codemadness.org 70 i 64922 Err codemadness.org 70 i 64923 <hr /> Err codemadness.org 70 i 64924 Err codemadness.org 70 i 64925 BSD,DragonflyBSD,freebsd,guide,howto,Interview,NetBSD,OpenBSD,trueos,tutorial Err codemadness.org 70 i 64926 Err codemadness.org 70 i 64927 New ZFS features landing in FreeBSD, MAP_STACK for OpenBSD, how to write safer C code with Clang’s address sanitizer, Michael W. Lucas on sponsor gifts, TCP blackbox recorder, and Dell disk system hacking.

Err codemadness.org 70 i 64928 Err codemadness.org 70 i 64929

Headlines

Err codemadness.org 70 i 64930 Err codemadness.org 70 i 64931

[A number of Upstream ZFS features landed in FreeBSD this week]

Err codemadness.org 70 i 64932 Err codemadness.org 70 i 64933
    Err codemadness.org 70 i 64934
  • 9188 increase size of dbuf cache to reduce indirect block decompression

    Err codemadness.org 70 i 64935 Err codemadness.org 70 i 64936
    Err codemadness.org 70 i 64937

    With compressed ARC (6950) we use up to 25% of our CPU to decompress indirect blocks, under a workload of random cached reads. To reduce this decompression cost, we would like to increase the size of the dbuf cache so that more indirect blocks can be stored uncompressed. Err codemadness.org 70 i 64938 If we are caching entire large files of recordsize=8K, the indirect blocks use 1/64th as much memory as the data blocks (assuming they have the same compression ratio). We suggest making the dbuf cache be 1/32nd of all memory, so that in this scenario we should be able to keep all the indirect blocks decompressed in the dbuf cache. (We want it to be more than the 1/64th that the indirect blocks would use because we need to cache other stuff in the dbuf cache as well.) Err codemadness.org 70 i 64939 In real world workloads, this won't help as dramatically as the example above, but we think it's still worth it because the risk of decreasing performance is low. The potential negative performance impact is that we will be slightly reducing the size of the ARC (by ~3%).

    Err codemadness.org 70 i 64940
  • Err codemadness.org 70 i 64941
  • 9166 zfs storage pool checkpoint

    Err codemadness.org 70 i 64942 Err codemadness.org 70 i 64943
    Err codemadness.org 70 i 64944

    The idea of Storage Pool Checkpoint (aka zpool checkpoint) deals with exactly that. It can be thought of as a “pool-wide snapshot” (or a variation of extreme rewind that doesn’t corrupt your data). It remembers the entire state of the pool at the point that it was taken and the user can revert back to it later or discard it. Its generic use case is an administrator that is about to perform a set of destructive actions to ZFS as part of a critical procedure. She takes a checkpoint of the pool before performing the actions, then rewinds back to it if one of them fails or puts the pool into an unexpected state. Otherwise, she discards it. With the assumption that no one else is making modifications to ZFS, she basically wraps all these actions into a “high-level transaction”.

    Err codemadness.org 70 i 64945
  • Err codemadness.org 70 i 64946
  • More information

  • Err codemadness.org 70 i 64947
  • 8484 Implement aggregate sum and use for arc counters

    Err codemadness.org 70 i 64948 Err codemadness.org 70 i 64949
    Err codemadness.org 70 i 64950

    In pursuit of improving performance on multi-core systems, we should implements fanned out counters and use them to improve the performance of some of the arc statistics. These stats are updated extremely frequently, and can consume a significant amount of CPU time.

    Err codemadness.org 70 i 64951
  • Err codemadness.org 70 i 64952
  • And a small bug fix authored by me:

  • Err codemadness.org 70 i 64953
  • 9321 arcloancompressedbuf() can increment arcloanedbytes by the wrong value Err codemadness.org 70 i 64954 Err codemadness.org 70 i 64955 Err codemadness.org 70 i 64956
    Err codemadness.org 70 i 64957 arcloancompressedbuf() increments arcloanedbytes by psize unconditionally In the case of zfscompressedarcenabled=0, when the buf is returned via arcreturnbuf(), if ARCBUFCOMPRESSED(buf) is false, then arcloanedbytes is decremented by lsize, not psize. Err codemadness.org 70 i 64958 Switch to using arcbufsize(buf), instead of psize, which will return psize or lsize, depending on the result of ARCBUF_COMPRESSED(buf).
  • Err codemadness.org 70 i 64959
Err codemadness.org 70 i 64960
Err codemadness.org 70 i 64961 Err codemadness.org 70 i 64962 Err codemadness.org 70 i 64963

MAP_STACK for OpenBSD

Err codemadness.org 70 i 64964 Err codemadness.org 70 i 64965 Err codemadness.org 70 i 64966 Err codemadness.org 70 i 64967
Err codemadness.org 70 i 64968

Almost 2 decades ago we started work on W^X. The concept was simple. Pages that are writable, should not be executable. We applied this concept object by object, trying to seperate objects with different qualities to different pages. The first one we handled was the signal trampoline at the top of the stack. We just kept making changes in the same vein. Eventually W^X came to some of our kernel address spaces also. Err codemadness.org 70 i 64969 The fundamental concept is that an object should only have the Err codemadness.org 70 i 64970 permissions necessary, and any other operation should fault. The only permission separations we have are kernel vs userland, and then read, write, and execute. Err codemadness.org 70 i 64971 How about we add another new permission! This is not a hardware permission, but a software permission. It is opportunistically enforced by the kernel. Err codemadness.org 70 i 64972 the permission is MAPSTACK. If you want to use memory as a stack, you must mmap it with that flag bit. The kernel does so automatically for the stack region of a process's stack. Two other types of stack occur: thread stacks, and alternate signal stacks. Those are handled in clever ways. Err codemadness.org 70 i 64973 When a system call happens, we check if the stack-pointer register points to such a page. If it doesn't, the program is killed. We have tightened the ABI. You may no longer point your stack register at non-stack memory. You'll be killed. This checking code is MI, so it works for all platforms. Err codemadness.org 70 i 64974 Since page-permissions are generally done on page boundaries, there is caveat that thread and altstacks must now be page-sized and page-aligned, so that we can enforce the MAPSTACK attribute correctly. It is possible that a few ports need some massaging to satisfy this condition, but we haven't found any which break yet. A syslog_r has been added so that we can identify these failure cases. Also, the faulting cases are quite verbose for now, to help identify the programs we need to repair.

Err codemadness.org 70 i 64975
Err codemadness.org 70 i 64976 Err codemadness.org 70 i 64977
Err codemadness.org 70 i 64978 Err codemadness.org 70 i 64979 Err codemadness.org 70 i 64980 Err codemadness.org 70 i 64981 **iXsystems** Err codemadness.org 70 i 64982 Err codemadness.org 70 i 64983 Err codemadness.org 70 i 64984 Err codemadness.org 70 i 64985

Writing Safer C with the Clang Address Sanitizer

Err codemadness.org 70 i 64986 Err codemadness.org 70 i 64987 Err codemadness.org 70 i 64988 Err codemadness.org 70 i 64989
Err codemadness.org 70 i 64990

We wanted to improve our password strength algorithm, and decided to go for the industry-standard zxcvbn, from the people at Dropbox. Our web front-end would use the default Javascript library, and for mobile and desktop, we chose to use the C implementation as it was the lowest common denominator for all platforms. Err codemadness.org 70 i 64991 Bootstrapping all of this together was done pretty fast. I had toyed around with a few sample passwords so I decided to run it through the test suite we had for the previous password strength evaluator. The test generates a large number of random passwords according to different rules and expects the strength to be in a given range. But the test runner kept crashing with segmentation faults. Err codemadness.org 70 i 64992 It turns out the library has a lot of buffer overflow cases that are usually "harmless", but eventually crash your program when you run the evaluator function too much. I started fixing the cases I could see, but reading someone else's algorithms to track down tiny memory errors got old pretty fast. I needed a tool to help me. Err codemadness.org 70 i 64993 That's when I thought of Clang's Address Sanitizer. Err codemadness.org 70 i 64994 AddressSanitizer is a fast memory error detector. It consists of a compiler instrumentation module and a run-time library Err codemadness.org 70 i 64995 Let's try the sanitizer on a simple program. We'll allocate a buffer on the heap, copy each character of a string into it, and print it to standard output. Err codemadness.org 70 i 64996 + The site walks through a simple example which contains an error, it writes past the end of a buffer Err codemadness.org 70 i 64997 + The code works as expected, and nothing bad happens. It must be fine… Err codemadness.org 70 i 64998 + Then they compile it again with the address sanitizer actived Err codemadness.org 70 i 64999 So what can we gather from that pile of hex? Let's go through it line by line. Err codemadness.org 70 i 65000 AddressSanitizer found a heap buffer overflow at 0x60200000ef3d, a seemingly valid address (not NULL or any other clearly faulty value). Err codemadness.org 70 i 65001 + ASAN points directly to the line of code that is causing the problem Err codemadness.org 70 i 65002 We're writing outside of the heap in this instruction. And AddressSanitizer isn't having it. Err codemadness.org 70 i 65003 This is definitely one of my favorite indications. In addition to telling which line in the code failed and where in the memory the failure happened, you get a complete description of the closest allocated region in memory (which is probably the region you were trying to access). Err codemadness.org 70 i 65004 + They then walk through combining this with lldb, the Clang debugger, to actually interactively inspect the state of the problem when an invalid memory access happens Err codemadness.org 70 i 65005 Back to my practical case, how did I put the address sanitizer to good use? I simply ran the test suite, compiled with the sanitizer, with lldb. Sure enough, it stopped on every line that could cause a crash. It turns out there were many cases where zxcvbn-c wrote past the end of allocated buffers, on the heap and on the stack. I fixed those cases in the C library and ran the tests again. Not a segfault in sight! Err codemadness.org 70 i 65006 I've used memory tools in the past, but they were usually unwieldy, or put such a toll on performance that they were useless in any real-life case. Clang's address sanitizer turned out to be detailed, reliable, and surprisingly easy to use. I've heard of the miracles of Valgrind but macOS hardly supports it, making it a pain to use on my MacBook Pro. Err codemadness.org 70 i 65007 Coupled with Clang's static analyzer, AddressSanitizer is going to become a mandatory stop for evaluating code quality. It's also going to be the first tool I grab when facing confusing memory issues. There are many more case where I could use early failure and memory history to debug my code. For example, if a program crashes when accessing member of a deallocated object, we could easily trace the event that caused the deallocation, saving hours of adding and reading logs to retrace just what happened.

Err codemadness.org 70 i 65008
Err codemadness.org 70 i 65009 Err codemadness.org 70 i 65010
Err codemadness.org 70 i 65011 Err codemadness.org 70 i 65012 Err codemadness.org 70 i 65013 Err codemadness.org 70 i 65014 Err codemadness.org 70 i 65015 Err codemadness.org 70 i 65016 Err codemadness.org 70 i 65017 Err codemadness.org 70 i 65018

News Roundup

Err codemadness.org 70 i 65019 Err codemadness.org 70 i 65020 Err codemadness.org 70 i 65021 Err codemadness.org 70 i 65022

On sponsor gifts

Err codemadness.org 70 i 65023 Err codemadness.org 70 i 65024 Err codemadness.org 70 i 65025 Err codemadness.org 70 i 65026
Err codemadness.org 70 i 65027

Note the little stack of customs forms off to the side. It’s like I’ve learned a lesson from standing at the post office counter filling out those stupid forms. Sponsors should get their books soon.

Err codemadness.org 70 i 65028 Err codemadness.org 70 i 65029

This seems like an apropos moment to talk about what I do for print sponsors. I say I send them “a gift,” but what does that really mean? The obvious thing to ship them is a copy of the book I’ve written. Flat-out selling print books online has tax implications, though.

Err codemadness.org 70 i 65030 Err codemadness.org 70 i 65031

Sponsors might have guessed that they’d get a copy of the book. But I shipped them the hardcover, which isn’t my usual practice.

Err codemadness.org 70 i 65032 Err codemadness.org 70 i 65033

That’s because I send sponsors a gift. As it’s a gift, I get to choose what I send. I want to send them something nice, to encourage them to sponsor another book. It makes no sense for me to send a sponsor a Singing Wedgie-O-Gram. (Well, maybe a couple sponsors. You know who you are.)

Err codemadness.org 70 i 65034 Err codemadness.org 70 i 65035

The poor bastards who bought into my scam–er, sponsored my untitled book–have no idea what’s coming. As of right now, their sensible guesses are woefully incomplete.

Err codemadness.org 70 i 65036 Err codemadness.org 70 i 65037

Future books? They might get a copy of the book. They might get book plus something. They might just get the something. Folks who sponsor the jails book might get a cake with a file in it. Who knows?

Err codemadness.org 70 i 65038 Err codemadness.org 70 i 65039

It’s a gift. It’s my job to make that gift worthwhile.

Err codemadness.org 70 i 65040 Err codemadness.org 70 i 65041

And to amuse myself. Because otherwise, what’s the point?

Err codemadness.org 70 i 65042
Err codemadness.org 70 i 65043 Err codemadness.org 70 i 65044
Err codemadness.org 70 i 65045 Err codemadness.org 70 i 65046 Err codemadness.org 70 i 65047 Err codemadness.org 70 i 65048 Err codemadness.org 70 i 65049 Err codemadness.org 70 i 65050

TCP Blackbox Recorder

Err codemadness.org 70 i 65051 Err codemadness.org 70 i 65052 ``` Err codemadness.org 70 i 65053 Add the "TCP Blackbox Recorder" which we discussed at the developer Err codemadness.org 70 i 65054 summits at BSDCan and BSDCam in 2017. Err codemadness.org 70 i 65055 Err codemadness.org 70 i 65056 The TCP Blackbox Recorder allows you to capture events on a TCP connection Err codemadness.org 70 i 65057 in a ring buffer. It stores metadata with the event. It optionally stores Err codemadness.org 70 i 65058 the TCP header associated with an event (if the event is associated with a Err codemadness.org 70 i 65059 packet) and also optionally stores information on the sockets. Err codemadness.org 70 i 65060 Err codemadness.org 70 i 65061 It supports setting a log ID on a TCP connection and using this to correlate Err codemadness.org 70 i 65062 multiple connections that share a common log ID. Err codemadness.org 70 i 65063 Err codemadness.org 70 i 65064 You can log connections in different modes. If you are doing a coordinated Err codemadness.org 70 i 65065 test with a particular connection, you may tell the system to put it in Err codemadness.org 70 i 65066 mode 4 (continuous dump). Or, if you just want to monitor for errors, you Err codemadness.org 70 i 65067 can put it in mode 1 (ring buffer) and dump all the ring buffers associated Err codemadness.org 70 i 65068 with the connection ID when we receive an error signal for that connection Err codemadness.org 70 i 65069 ID. You can set a default mode that will be applied to a particular ratio Err codemadness.org 70 i 65070 of incoming connections. You can also manually set a mode using a socket Err codemadness.org 70 i 65071 option. Err codemadness.org 70 i 65072 Err codemadness.org 70 i 65073 This commit includes only basic probes. rrs@ has added quite an abundance Err codemadness.org 70 i 65074 of probes in his TCP development work. He plans to commit those soon. Err codemadness.org 70 i 65075 Err codemadness.org 70 i 65076 There are user-space programs which we plan to commit as ports. These read Err codemadness.org 70 i 65077 the data from the log device and output pcapng files, and then let you Err codemadness.org 70 i 65078 analyze the data (and metadata) in the pcapng files. Err codemadness.org 70 i 65079 Err codemadness.org 70 i 65080 Reviewed by: gnn (previous version) Err codemadness.org 70 i 65081 Obtained from: Netflix, Inc. Err codemadness.org 70 i 65082 Relnotes: yes Err codemadness.org 70 i 65083 Differential Revision: https://reviews.freebsd.org/D11085 Err codemadness.org 70 i 65084 ``` Err codemadness.org 70 i 65085 Err codemadness.org 70 i 65086 Err codemadness.org 70 i 65087 Err codemadness.org 70 i 65088
Err codemadness.org 70 i 65089 Err codemadness.org 70 i 65090 Err codemadness.org 70 i 65091 Err codemadness.org 70 i 65092 **Digital Ocean** Err codemadness.org 70 i 65093 Err codemadness.org 70 i 65094 Err codemadness.org 70 i 65095 Err codemadness.org 70 i 65096

Outta the way, KDE4

Err codemadness.org 70 i 65097 Err codemadness.org 70 i 65098 Err codemadness.org 70 i 65099 Err codemadness.org 70 i 65100
Err codemadness.org 70 i 65101

KDE4 has been rudely moved aside on FreeBSD. It still installs (use x11/kde4) and should update without a problem, but this is another step towards adding modern KDE (Plasma 5 and Applications) to the official FreeBSD Ports tree. Err codemadness.org 70 i 65102 This has taken a long time mostly for administrative reasons, getting all the bits lined up so that people sticking with KDE4 (which, right now, would be everyone using KDE from official ports and packages on FreeBSD) don’t end up with a broken desktop. We don’t want that. But now that everything Qt4 and kdelibs4-based has been moved aside by suffixing it with -kde4, we have the unsuffixed names free to indicate the latest-and-greatest from upstream.

Err codemadness.org 70 i 65103 Err codemadness.org 70 i 65104

KDE4 users will see a lot of packages moving around and being renamed, but no functional changes. Curiously, the KDE4 desktop depends on Qt5 and KDE Frameworks 5 — and it has for quite some time already, because the Oxygen icons are shared with KDE Frameworks, but primarily because FileLight was updated to the modern KDE Applications version some time ago (the KDE4 version had some serious bugs, although I can not remember what they were). Now that the names are cleaned up, we could consider giving KDE4 users the buggy version back.

Err codemadness.org 70 i 65105 Err codemadness.org 70 i 65106

From here on, we’ve got the following things lined up:

Err codemadness.org 70 i 65107
Err codemadness.org 70 i 65108 Err codemadness.org 70 i 65109
    Err codemadness.org 70 i 65110
  • Qt 5.10 is being worked on, except for WebEngine (it would slow down an update way too much), because Plasma is going to want Qt 5.10 soon.
  • Err codemadness.org 70 i 65111
  • CMake 3.11 is in the -rc stage, so that is being lined up.
  • Err codemadness.org 70 i 65112
  • The kde5-import branch in KDE-FreeBSD’s copy of the FreeBSD ports tree (e.g. Area51) is being prepped and polished for a few big SVN commits that will add all the new bits.
  • Err codemadness.org 70 i 65113
Err codemadness.org 70 i 65114 Err codemadness.org 70 i 65115
Err codemadness.org 70 i 65116

So we’ve been saying Real Soon Now ™ for years, but things are Realer Sooner Nower ™ now.

Err codemadness.org 70 i 65117
Err codemadness.org 70 i 65118 Err codemadness.org 70 i 65119


Err codemadness.org 70 i 65120 Err codemadness.org 70 i 65121

Dell FS12-NV7 and other 2U server (e.g. C6100) disk system hacking

Err codemadness.org 70 i 65122 Err codemadness.org 70 i 65123
Err codemadness.org 70 i 65124

A while back I reviewed the Dell FS12-NV7 – a 2U rack server being sold cheap by all and sundry. It’s a powerful box, even by modern standards, but one of its big drawbacks is the disk system it comes with. But it needn’t be.

Err codemadness.org 70 i 65125 Err codemadness.org 70 i 65126

There are two viable solutions, depending on what you want to do. You can make use of the SAS backplane, using SAS and/or SATA drives, or you can go for fewer SATA drives and free up one or more PCIe slots as Plan B. You probably have an FS12 because it looks good for building a drive array (or even FreeNAS) so I’ll deal with Plan A first.

Err codemadness.org 70 i 65127 Err codemadness.org 70 i 65128

Like most Dell servers, this comes with a Dell PERC RAID SAS controller – a PERC6/i to be precise. This ‘I’ means it has internal connectors; the /E is the same but its sockets are external.

Err codemadness.org 70 i 65129 Err codemadness.org 70 i 65130

The PERC connects to a twelve-slot backplane forming a drive array at the front of the box. More on the backplane later; it’s the PERCs you need to worry about.

Err codemadness.org 70 i 65131 Err codemadness.org 70 i 65132

The PERC6 is actually an LSI Megaraid 1078 card, which is just the thing you need if you’re running an operating system like Windows that doesn’t support a volume manager, striping and other grown-up stuff. Or if your OS does have these features, but you just don’t trust it. If you are running such an OS you may as well stick to the PERC6, and good luck to you. If you’re using BSD (including FreeNAS), Solaris or a Linux distribution that handles disk arrays, read on. The PERC6 is a solution to a problem you probably don’t have, but in all other respects its a turkey. You really want a straightforward HBA (Host Bus Adapter) that allows your clever operating system to talk directly with the drives.

Err codemadness.org 70 i 65133 Err codemadness.org 70 i 65134

Any SAS card based on the 1078 (such as the PERC6) is likely to have problems with drives larger than 2Tb. I’m not completely sure why, but I suspect it only applies to SATA. Unfortunately I don’t have any very large SAS drives to test this theory. A 2Tb limit isn’t really such a problem when you’re talking about a high performance array, as lots of small drives are a better option anyway. But it does matter if you’re building a very large datastore and don’t mind slower access and very significant resilvering times when you replace a drive. And for large datastores, very large SATA drives save you a whole lot of cash. The best capacity/cost ratio is for 5Gb SATA drives

Err codemadness.org 70 i 65135 Err codemadness.org 70 i 65136

Some Dell PERCs can be re-flashed with LSI firmware and used as a normal HBA. Unfortunately the PERC6 isn’t one of them. I believe the PERC6/R can be, but those I’ve seen in a FS12 are just a bit too old. So the first thing you’ll need to do is dump them in the recycling or try and sell them on eBay.

Err codemadness.org 70 i 65137 Err codemadness.org 70 i 65138

There are actually two PERC6 cards in most machine, and they each support eight SAS channels through two SFF-8484 connectors on each card. Given there are twelve drives slots, one of the PERCs is only half used. Sometimes they have a cable going off to a battery located near the fans. This is used in a desperate attempt to keep the data in the card’s cache safe in order to avoid write holes corrupting NTFS during a power failure, although the data on the on-drive caches won’t be so lucky. If you’re using a file system like that, make sure you have a UPS for the whole lot.

Err codemadness.org 70 i 65139 Err codemadness.org 70 i 65140

But we’re going to put the PERCs out of our misery and replace them with some nice new LSI HBAs that will do our operating system’s bidding and let it talk to the drives as it knows best. But which to pick? First we need to know what we’re connecting.

Err codemadness.org 70 i 65141 Err codemadness.org 70 i 65142

Moving to the front of the case there are twelve metal drive slots with a backplane behind. Dell makes machines with either backplanes or expanders. A backplane has a 1:1 SAS channel to drive connection; an expander takes one SAS channel and multiplexes it to (usually) four drives. You could always swap the blackplane with an expander, but I like the 1:1 nature of a backplane. It’s faster, especially if you’re configured as an array. And besides, we don’t want to spend more money than we need to, otherwise we wouldn’t be hot-rodding a cheap 2U server in the first place – expanders are expensive. Bizarrely, HBAs are cheap in comparison. So we need twelve channels of SAS that will connect to the sockets on the backplane.

Err codemadness.org 70 i 65143 Err codemadness.org 70 i 65144

The HBA you will probably want to go with is an LSI, as these have great OS support. Other cards are available, but check that the drivers are also available. The obvious choice for SAS aficionados is the LSI 9211-8i, which has eight internal channels. This is based on an LSI 2000 series chip, the 2008, which is the de-facto standard. There’s also four-channel -4i version, so you could get your twelve channels using one of each – but the price difference is small these days, so you might as well go for two -8i cards. If you want cheaper there are 1068-based equivalent cards, and these work just fine at about half the price. They probably won’t work with larger disks, only operate at 3Gb and the original SAS standard. However, the 2000 series is only about £25 extra and gives you more options for the future. A good investment. Conversely, the latest 3000 series cards can do some extra stuff (particularly to do with active cables) but I can’t see any great advantage in paying megabucks for one unless you’re going really high-end – in which case the NV12 isn’t the box for you anyway. And you’d need some very fast drives and a faster backplane to see any speed advantage. And probably a new motherboard….

Err codemadness.org 70 i 65145 Err codemadness.org 70 i 65146

Whether the 6Gb SAS2 of the 9211-8i is any use on the backplane, which was designed for 3Gb, I don’t know. If it matters that much to you you probably need to spend a lot more money. A drive array with a direct 3Gb to each drive is going to shift fast enough for most purposes.

Err codemadness.org 70 i 65147 Err codemadness.org 70 i 65148

Once you have removed the PERCs and plugged in your modern-ish 9211 HBAs, your next problem is going to be the cable. Both the PERCs and the backplane have SFF-8484 multi-lane connectors, which you might not recognise. SAS is a point-to-point system, the same as SATA, and a multi-lane cable is simply four single cables in a bundle with one plug. (Newer versions of SAS have more). SFF-8484 multi-lane connectors are somewhat rare, (but unfortunately this doesn’t make them valuable if you were hoping to flog them on eBay). The world switched quickly to the SFF-8087 for multi-lane SAS. The signals are electrically the same, but the connector is not.

Err codemadness.org 70 i 65149 Err codemadness.org 70 i 65150

Please generate and paste your ad code here. If left empty, the ad location will be highlighted on your blog pages with a reminder to enter your code. Mid-Post Err codemadness.org 70 i 65151 So there are two snags with this backplane. Firstly it’s designed to work with PERC controllers; secondly it has the old SFF-8484 connectors on the back, and any SAS cables you find are likely to have SFF-8087.

Err codemadness.org 70 i 65152 Err codemadness.org 70 i 65153

First things first – there is actually a jumper on the backplane to tell it whether it’s talking to a PERC or a standard LSI HBA. All you need to do is find it and change it. Fortunately there are very few jumpers to choose from (i.e. two), and you know the link is already in the wrong place. So try them one at a time until it works. The one you want may be labelled J15, but I wouldn’t like to say this was the same on every variant.

Err codemadness.org 70 i 65154 Err codemadness.org 70 i 65155

Second problem: the cable. You can get cables with an SFF-8087 on one end and an SFF-8484 on the other. These should work. But they’re usually rather expensive. If you want to make your own, it’s a PITA but at least you have the connectors already (assuming you didn’t bin the ones on the PERC cables).

Err codemadness.org 70 i 65156 Err codemadness.org 70 i 65157

I don’t know what committee designed SAS cable connectors, but ease of construction wasn’t foremost in their collective minds. You’re basically soldering twisted pair to a tiny PCB. This is mechanically rubbish, of course, as the slightest force on the cable will lift the track. Therefore its usual to cover the whole joint in solidified gunk (technical term) to protect it. Rewiring SAS connectors is definitely not easy.

Err codemadness.org 70 i 65158 Err codemadness.org 70 i 65159

I’ve tried various ways of soldering to them, none of which were satisfactory or rewarding. One method is to clip the all bare wires you wish to solder using something like a bulldog clip so they’re at lined up horizontally and then press then adjust the clamp so they’re gently pressed to the tracks on the board, making final adjustments with a strong magnifying glass and a fine tweezers. You can then either solder them with a fine temperature-controlled iron, or have pre-coated the pads with solder paste and flash across it with an SMD rework station. I’d love to know how they’re actually manufactured – using a precision jig I assume.

Err codemadness.org 70 i 65160 Err codemadness.org 70 i 65161

The “easy” way is to avoid soldering the connectors at all; simply cut existing cables in half and join one to the other. I’ve used prototyping matrix board for this. Strip and twist the conductors, push them through a hole and solder. This keeps things compact but manageable. We’re dealing with twisted pair here, so maintain the twists as close as possible to the board – it actually works quite well.

Err codemadness.org 70 i 65162 Err codemadness.org 70 i 65163

However, I’ve now found a reasonably-priced source of the appropriate cable so I don’t do this any more. Contact me if you need some in the UK.

Err codemadness.org 70 i 65164 Err codemadness.org 70 i 65165

So all that remains is to plug your HBAs to the backplane, shove in some drives and you’re away. If you’re at this stage, it “just works”. The access lights for all the drives do their thing as they should. The only mystery is how you can get the ident LED to come on; this may be controlled by the PERC when it detects a failure using the so-called sideband channel, or it may be operated by the electronics on the backplane. It’s workings are, I’m afraid, something of a mystery still – it’s got too much electronics on board to be a completely passive backplane.

Err codemadness.org 70 i 65166 Err codemadness.org 70 i 65167

Plan B: SATA

Err codemadness.org 70 i 65168 Err codemadness.org 70 i 65169

If you plan to use only SATA drives, especially if you don’t intend using more than six, it makes little sense to bother with SAS at all. The Gigabyte motherboard comes with half a dozen perfectly good 3Gb SATA channels, and if you need more you can always put another controller in a PCIe slot, or even USB. The advantages are lower cost and you get to free up two PCIe slots for more interesting things.

Err codemadness.org 70 i 65170 Err codemadness.org 70 i 65171

The down-side is that you can’t use the SAS backplane, but you can still use the mounting bays.

Err codemadness.org 70 i 65172 Err codemadness.org 70 i 65173

Removing the backplane looks tricky, but it really isn’t when you look a bit closer. Take out the fans first (held in place by rubber blocks), undo a couple of screws and it just lifts and slides out. You can then slot and lock in the drives and connect the SATA connectors directly to the back of the drives. You could even slide them out again without opening the case, as long as the cable was long enough and you manually detached the cable it when it was withdrawn. And let’s face it – drives are likely to last for years so even with half a dozen it’s not that great a hardship to open the case occasionally.

Err codemadness.org 70 i 65174 Err codemadness.org 70 i 65175

Next comes power. The PSU has a special connector for the backplane and two standard SATA power plugs. You could split these three ways using an adapter, but if you have a lot of drives you might want to re-wire the cables going to the backplane plug. It can definitely power twelve drives.

Err codemadness.org 70 i 65176 Err codemadness.org 70 i 65177

And that’s almost all there is to it. Unfortunately the main fans are connected to the backplane, which you’ve just removed. You can power them from an adapter on the drive power cables, but there are unused fan connectors on the motherboard. I’m doing a bit more research on cooling options, but this approach has promising possibilities for noise reduction.

Err codemadness.org 70 i 65178
Err codemadness.org 70 i 65179 Err codemadness.org 70 i 65180


Err codemadness.org 70 i 65181 Err codemadness.org 70 i 65182

Beastie Bits

Err codemadness.org 70 i 65183 Err codemadness.org 70 i 65184 Err codemadness.org 70 i 65193 Err codemadness.org 70 i 65194


Err codemadness.org 70 i 65195 Err codemadness.org 70 i 65196

Tarsnap

Err codemadness.org 70 i 65197 Err codemadness.org 70 i 65198

Feedback/Questions

Err codemadness.org 70 i 65199 Err codemadness.org 70 i 65200 Err codemadness.org 70 i 65207 Err codemadness.org 70 i 65208


Err codemadness.org 70 i 65209 Err codemadness.org 70 i 65210
    Err codemadness.org 70 i 65211
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 65212
Err codemadness.org 70 i 65213 Err codemadness.org 70 i 65214


]]> Err codemadness.org 70 i 65215
Err codemadness.org 70 i 65216 Err codemadness.org 70 i 65217 New ZFS features landing in FreeBSD, MAP_STACK for OpenBSD, how to write safer C code with Clang’s address sanitizer, Michael W. Lucas on sponsor gifts, TCP blackbox recorder, and Dell disk system hacking.

Err codemadness.org 70 i 65218 Err codemadness.org 70 i 65219

Headlines

Err codemadness.org 70 i 65220 Err codemadness.org 70 i 65221

[A number of Upstream ZFS features landed in FreeBSD this week]

Err codemadness.org 70 i 65222 Err codemadness.org 70 i 65223
    Err codemadness.org 70 i 65224
  • 9188 increase size of dbuf cache to reduce indirect block decompression

    Err codemadness.org 70 i 65225 Err codemadness.org 70 i 65226
    Err codemadness.org 70 i 65227

    With compressed ARC (6950) we use up to 25% of our CPU to decompress indirect blocks, under a workload of random cached reads. To reduce this decompression cost, we would like to increase the size of the dbuf cache so that more indirect blocks can be stored uncompressed. Err codemadness.org 70 i 65228 If we are caching entire large files of recordsize=8K, the indirect blocks use 1/64th as much memory as the data blocks (assuming they have the same compression ratio). We suggest making the dbuf cache be 1/32nd of all memory, so that in this scenario we should be able to keep all the indirect blocks decompressed in the dbuf cache. (We want it to be more than the 1/64th that the indirect blocks would use because we need to cache other stuff in the dbuf cache as well.) Err codemadness.org 70 i 65229 In real world workloads, this won't help as dramatically as the example above, but we think it's still worth it because the risk of decreasing performance is low. The potential negative performance impact is that we will be slightly reducing the size of the ARC (by ~3%).

    Err codemadness.org 70 i 65230
  • Err codemadness.org 70 i 65231
  • 9166 zfs storage pool checkpoint

    Err codemadness.org 70 i 65232 Err codemadness.org 70 i 65233
    Err codemadness.org 70 i 65234

    The idea of Storage Pool Checkpoint (aka zpool checkpoint) deals with exactly that. It can be thought of as a “pool-wide snapshot” (or a variation of extreme rewind that doesn’t corrupt your data). It remembers the entire state of the pool at the point that it was taken and the user can revert back to it later or discard it. Its generic use case is an administrator that is about to perform a set of destructive actions to ZFS as part of a critical procedure. She takes a checkpoint of the pool before performing the actions, then rewinds back to it if one of them fails or puts the pool into an unexpected state. Otherwise, she discards it. With the assumption that no one else is making modifications to ZFS, she basically wraps all these actions into a “high-level transaction”.

    Err codemadness.org 70 i 65235
  • Err codemadness.org 70 i 65236
  • More information

  • Err codemadness.org 70 i 65237
  • 8484 Implement aggregate sum and use for arc counters

    Err codemadness.org 70 i 65238 Err codemadness.org 70 i 65239
    Err codemadness.org 70 i 65240

    In pursuit of improving performance on multi-core systems, we should implements fanned out counters and use them to improve the performance of some of the arc statistics. These stats are updated extremely frequently, and can consume a significant amount of CPU time.

    Err codemadness.org 70 i 65241
  • Err codemadness.org 70 i 65242
  • And a small bug fix authored by me:

  • Err codemadness.org 70 i 65243
  • 9321 arcloancompressedbuf() can increment arcloanedbytes by the wrong value Err codemadness.org 70 i 65244 Err codemadness.org 70 i 65245 Err codemadness.org 70 i 65246
    Err codemadness.org 70 i 65247 arcloancompressedbuf() increments arcloanedbytes by psize unconditionally In the case of zfscompressedarcenabled=0, when the buf is returned via arcreturnbuf(), if ARCBUFCOMPRESSED(buf) is false, then arcloanedbytes is decremented by lsize, not psize. Err codemadness.org 70 i 65248 Switch to using arcbufsize(buf), instead of psize, which will return psize or lsize, depending on the result of ARCBUF_COMPRESSED(buf).
  • Err codemadness.org 70 i 65249
Err codemadness.org 70 i 65250
Err codemadness.org 70 i 65251 Err codemadness.org 70 i 65252 Err codemadness.org 70 i 65253

MAP_STACK for OpenBSD

Err codemadness.org 70 i 65254 Err codemadness.org 70 i 65255 Err codemadness.org 70 i 65256 Err codemadness.org 70 i 65257
Err codemadness.org 70 i 65258

Almost 2 decades ago we started work on W^X. The concept was simple. Pages that are writable, should not be executable. We applied this concept object by object, trying to seperate objects with different qualities to different pages. The first one we handled was the signal trampoline at the top of the stack. We just kept making changes in the same vein. Eventually W^X came to some of our kernel address spaces also. Err codemadness.org 70 i 65259 The fundamental concept is that an object should only have the Err codemadness.org 70 i 65260 permissions necessary, and any other operation should fault. The only permission separations we have are kernel vs userland, and then read, write, and execute. Err codemadness.org 70 i 65261 How about we add another new permission! This is not a hardware permission, but a software permission. It is opportunistically enforced by the kernel. Err codemadness.org 70 i 65262 the permission is MAPSTACK. If you want to use memory as a stack, you must mmap it with that flag bit. The kernel does so automatically for the stack region of a process's stack. Two other types of stack occur: thread stacks, and alternate signal stacks. Those are handled in clever ways. Err codemadness.org 70 i 65263 When a system call happens, we check if the stack-pointer register points to such a page. If it doesn't, the program is killed. We have tightened the ABI. You may no longer point your stack register at non-stack memory. You'll be killed. This checking code is MI, so it works for all platforms. Err codemadness.org 70 i 65264 Since page-permissions are generally done on page boundaries, there is caveat that thread and altstacks must now be page-sized and page-aligned, so that we can enforce the MAPSTACK attribute correctly. It is possible that a few ports need some massaging to satisfy this condition, but we haven't found any which break yet. A syslog_r has been added so that we can identify these failure cases. Also, the faulting cases are quite verbose for now, to help identify the programs we need to repair.

Err codemadness.org 70 i 65265
Err codemadness.org 70 i 65266 Err codemadness.org 70 i 65267
Err codemadness.org 70 i 65268 Err codemadness.org 70 i 65269 Err codemadness.org 70 i 65270 Err codemadness.org 70 i 65271 **iXsystems** Err codemadness.org 70 i 65272 Err codemadness.org 70 i 65273 Err codemadness.org 70 i 65274 Err codemadness.org 70 i 65275

Writing Safer C with the Clang Address Sanitizer

Err codemadness.org 70 i 65276 Err codemadness.org 70 i 65277 Err codemadness.org 70 i 65278 Err codemadness.org 70 i 65279
Err codemadness.org 70 i 65280

We wanted to improve our password strength algorithm, and decided to go for the industry-standard zxcvbn, from the people at Dropbox. Our web front-end would use the default Javascript library, and for mobile and desktop, we chose to use the C implementation as it was the lowest common denominator for all platforms. Err codemadness.org 70 i 65281 Bootstrapping all of this together was done pretty fast. I had toyed around with a few sample passwords so I decided to run it through the test suite we had for the previous password strength evaluator. The test generates a large number of random passwords according to different rules and expects the strength to be in a given range. But the test runner kept crashing with segmentation faults. Err codemadness.org 70 i 65282 It turns out the library has a lot of buffer overflow cases that are usually "harmless", but eventually crash your program when you run the evaluator function too much. I started fixing the cases I could see, but reading someone else's algorithms to track down tiny memory errors got old pretty fast. I needed a tool to help me. Err codemadness.org 70 i 65283 That's when I thought of Clang's Address Sanitizer. Err codemadness.org 70 i 65284 AddressSanitizer is a fast memory error detector. It consists of a compiler instrumentation module and a run-time library Err codemadness.org 70 i 65285 Let's try the sanitizer on a simple program. We'll allocate a buffer on the heap, copy each character of a string into it, and print it to standard output. Err codemadness.org 70 i 65286 + The site walks through a simple example which contains an error, it writes past the end of a buffer Err codemadness.org 70 i 65287 + The code works as expected, and nothing bad happens. It must be fine… Err codemadness.org 70 i 65288 + Then they compile it again with the address sanitizer actived Err codemadness.org 70 i 65289 So what can we gather from that pile of hex? Let's go through it line by line. Err codemadness.org 70 i 65290 AddressSanitizer found a heap buffer overflow at 0x60200000ef3d, a seemingly valid address (not NULL or any other clearly faulty value). Err codemadness.org 70 i 65291 + ASAN points directly to the line of code that is causing the problem Err codemadness.org 70 i 65292 We're writing outside of the heap in this instruction. And AddressSanitizer isn't having it. Err codemadness.org 70 i 65293 This is definitely one of my favorite indications. In addition to telling which line in the code failed and where in the memory the failure happened, you get a complete description of the closest allocated region in memory (which is probably the region you were trying to access). Err codemadness.org 70 i 65294 + They then walk through combining this with lldb, the Clang debugger, to actually interactively inspect the state of the problem when an invalid memory access happens Err codemadness.org 70 i 65295 Back to my practical case, how did I put the address sanitizer to good use? I simply ran the test suite, compiled with the sanitizer, with lldb. Sure enough, it stopped on every line that could cause a crash. It turns out there were many cases where zxcvbn-c wrote past the end of allocated buffers, on the heap and on the stack. I fixed those cases in the C library and ran the tests again. Not a segfault in sight! Err codemadness.org 70 i 65296 I've used memory tools in the past, but they were usually unwieldy, or put such a toll on performance that they were useless in any real-life case. Clang's address sanitizer turned out to be detailed, reliable, and surprisingly easy to use. I've heard of the miracles of Valgrind but macOS hardly supports it, making it a pain to use on my MacBook Pro. Err codemadness.org 70 i 65297 Coupled with Clang's static analyzer, AddressSanitizer is going to become a mandatory stop for evaluating code quality. It's also going to be the first tool I grab when facing confusing memory issues. There are many more case where I could use early failure and memory history to debug my code. For example, if a program crashes when accessing member of a deallocated object, we could easily trace the event that caused the deallocation, saving hours of adding and reading logs to retrace just what happened.

Err codemadness.org 70 i 65298
Err codemadness.org 70 i 65299 Err codemadness.org 70 i 65300
Err codemadness.org 70 i 65301 Err codemadness.org 70 i 65302 Err codemadness.org 70 i 65303 Err codemadness.org 70 i 65304 Err codemadness.org 70 i 65305 Err codemadness.org 70 i 65306 Err codemadness.org 70 i 65307 Err codemadness.org 70 i 65308

News Roundup

Err codemadness.org 70 i 65309 Err codemadness.org 70 i 65310 Err codemadness.org 70 i 65311 Err codemadness.org 70 i 65312

On sponsor gifts

Err codemadness.org 70 i 65313 Err codemadness.org 70 i 65314 Err codemadness.org 70 i 65315 Err codemadness.org 70 i 65316
Err codemadness.org 70 i 65317

Note the little stack of customs forms off to the side. It’s like I’ve learned a lesson from standing at the post office counter filling out those stupid forms. Sponsors should get their books soon.

Err codemadness.org 70 i 65318 Err codemadness.org 70 i 65319

This seems like an apropos moment to talk about what I do for print sponsors. I say I send them “a gift,” but what does that really mean? The obvious thing to ship them is a copy of the book I’ve written. Flat-out selling print books online has tax implications, though.

Err codemadness.org 70 i 65320 Err codemadness.org 70 i 65321

Sponsors might have guessed that they’d get a copy of the book. But I shipped them the hardcover, which isn’t my usual practice.

Err codemadness.org 70 i 65322 Err codemadness.org 70 i 65323

That’s because I send sponsors a gift. As it’s a gift, I get to choose what I send. I want to send them something nice, to encourage them to sponsor another book. It makes no sense for me to send a sponsor a Singing Wedgie-O-Gram. (Well, maybe a couple sponsors. You know who you are.)

Err codemadness.org 70 i 65324 Err codemadness.org 70 i 65325

The poor bastards who bought into my scam–er, sponsored my untitled book–have no idea what’s coming. As of right now, their sensible guesses are woefully incomplete.

Err codemadness.org 70 i 65326 Err codemadness.org 70 i 65327

Future books? They might get a copy of the book. They might get book plus something. They might just get the something. Folks who sponsor the jails book might get a cake with a file in it. Who knows?

Err codemadness.org 70 i 65328 Err codemadness.org 70 i 65329

It’s a gift. It’s my job to make that gift worthwhile.

Err codemadness.org 70 i 65330 Err codemadness.org 70 i 65331

And to amuse myself. Because otherwise, what’s the point?

Err codemadness.org 70 i 65332
Err codemadness.org 70 i 65333 Err codemadness.org 70 i 65334
Err codemadness.org 70 i 65335 Err codemadness.org 70 i 65336 Err codemadness.org 70 i 65337 Err codemadness.org 70 i 65338 Err codemadness.org 70 i 65339 Err codemadness.org 70 i 65340

TCP Blackbox Recorder

Err codemadness.org 70 i 65341 Err codemadness.org 70 i 65342 ``` Err codemadness.org 70 i 65343 Add the "TCP Blackbox Recorder" which we discussed at the developer Err codemadness.org 70 i 65344 summits at BSDCan and BSDCam in 2017. Err codemadness.org 70 i 65345 Err codemadness.org 70 i 65346 The TCP Blackbox Recorder allows you to capture events on a TCP connection Err codemadness.org 70 i 65347 in a ring buffer. It stores metadata with the event. It optionally stores Err codemadness.org 70 i 65348 the TCP header associated with an event (if the event is associated with a Err codemadness.org 70 i 65349 packet) and also optionally stores information on the sockets. Err codemadness.org 70 i 65350 Err codemadness.org 70 i 65351 It supports setting a log ID on a TCP connection and using this to correlate Err codemadness.org 70 i 65352 multiple connections that share a common log ID. Err codemadness.org 70 i 65353 Err codemadness.org 70 i 65354 You can log connections in different modes. If you are doing a coordinated Err codemadness.org 70 i 65355 test with a particular connection, you may tell the system to put it in Err codemadness.org 70 i 65356 mode 4 (continuous dump). Or, if you just want to monitor for errors, you Err codemadness.org 70 i 65357 can put it in mode 1 (ring buffer) and dump all the ring buffers associated Err codemadness.org 70 i 65358 with the connection ID when we receive an error signal for that connection Err codemadness.org 70 i 65359 ID. You can set a default mode that will be applied to a particular ratio Err codemadness.org 70 i 65360 of incoming connections. You can also manually set a mode using a socket Err codemadness.org 70 i 65361 option. Err codemadness.org 70 i 65362 Err codemadness.org 70 i 65363 This commit includes only basic probes. rrs@ has added quite an abundance Err codemadness.org 70 i 65364 of probes in his TCP development work. He plans to commit those soon. Err codemadness.org 70 i 65365 Err codemadness.org 70 i 65366 There are user-space programs which we plan to commit as ports. These read Err codemadness.org 70 i 65367 the data from the log device and output pcapng files, and then let you Err codemadness.org 70 i 65368 analyze the data (and metadata) in the pcapng files. Err codemadness.org 70 i 65369 Err codemadness.org 70 i 65370 Reviewed by: gnn (previous version) Err codemadness.org 70 i 65371 Obtained from: Netflix, Inc. Err codemadness.org 70 i 65372 Relnotes: yes Err codemadness.org 70 i 65373 Differential Revision: https://reviews.freebsd.org/D11085 Err codemadness.org 70 i 65374 ``` Err codemadness.org 70 i 65375 Err codemadness.org 70 i 65376 Err codemadness.org 70 i 65377 Err codemadness.org 70 i 65378
Err codemadness.org 70 i 65379 Err codemadness.org 70 i 65380 Err codemadness.org 70 i 65381 Err codemadness.org 70 i 65382 **Digital Ocean** Err codemadness.org 70 i 65383 Err codemadness.org 70 i 65384 Err codemadness.org 70 i 65385 Err codemadness.org 70 i 65386

Outta the way, KDE4

Err codemadness.org 70 i 65387 Err codemadness.org 70 i 65388 Err codemadness.org 70 i 65389 Err codemadness.org 70 i 65390
Err codemadness.org 70 i 65391

KDE4 has been rudely moved aside on FreeBSD. It still installs (use x11/kde4) and should update without a problem, but this is another step towards adding modern KDE (Plasma 5 and Applications) to the official FreeBSD Ports tree. Err codemadness.org 70 i 65392 This has taken a long time mostly for administrative reasons, getting all the bits lined up so that people sticking with KDE4 (which, right now, would be everyone using KDE from official ports and packages on FreeBSD) don’t end up with a broken desktop. We don’t want that. But now that everything Qt4 and kdelibs4-based has been moved aside by suffixing it with -kde4, we have the unsuffixed names free to indicate the latest-and-greatest from upstream.

Err codemadness.org 70 i 65393 Err codemadness.org 70 i 65394

KDE4 users will see a lot of packages moving around and being renamed, but no functional changes. Curiously, the KDE4 desktop depends on Qt5 and KDE Frameworks 5 — and it has for quite some time already, because the Oxygen icons are shared with KDE Frameworks, but primarily because FileLight was updated to the modern KDE Applications version some time ago (the KDE4 version had some serious bugs, although I can not remember what they were). Now that the names are cleaned up, we could consider giving KDE4 users the buggy version back.

Err codemadness.org 70 i 65395 Err codemadness.org 70 i 65396

From here on, we’ve got the following things lined up:

Err codemadness.org 70 i 65397
Err codemadness.org 70 i 65398 Err codemadness.org 70 i 65399
    Err codemadness.org 70 i 65400
  • Qt 5.10 is being worked on, except for WebEngine (it would slow down an update way too much), because Plasma is going to want Qt 5.10 soon.
  • Err codemadness.org 70 i 65401
  • CMake 3.11 is in the -rc stage, so that is being lined up.
  • Err codemadness.org 70 i 65402
  • The kde5-import branch in KDE-FreeBSD’s copy of the FreeBSD ports tree (e.g. Area51) is being prepped and polished for a few big SVN commits that will add all the new bits.
  • Err codemadness.org 70 i 65403
Err codemadness.org 70 i 65404 Err codemadness.org 70 i 65405
Err codemadness.org 70 i 65406

So we’ve been saying Real Soon Now ™ for years, but things are Realer Sooner Nower ™ now.

Err codemadness.org 70 i 65407
Err codemadness.org 70 i 65408 Err codemadness.org 70 i 65409


Err codemadness.org 70 i 65410 Err codemadness.org 70 i 65411

Dell FS12-NV7 and other 2U server (e.g. C6100) disk system hacking

Err codemadness.org 70 i 65412 Err codemadness.org 70 i 65413
Err codemadness.org 70 i 65414

A while back I reviewed the Dell FS12-NV7 – a 2U rack server being sold cheap by all and sundry. It’s a powerful box, even by modern standards, but one of its big drawbacks is the disk system it comes with. But it needn’t be.

Err codemadness.org 70 i 65415 Err codemadness.org 70 i 65416

There are two viable solutions, depending on what you want to do. You can make use of the SAS backplane, using SAS and/or SATA drives, or you can go for fewer SATA drives and free up one or more PCIe slots as Plan B. You probably have an FS12 because it looks good for building a drive array (or even FreeNAS) so I’ll deal with Plan A first.

Err codemadness.org 70 i 65417 Err codemadness.org 70 i 65418

Like most Dell servers, this comes with a Dell PERC RAID SAS controller – a PERC6/i to be precise. This ‘I’ means it has internal connectors; the /E is the same but its sockets are external.

Err codemadness.org 70 i 65419 Err codemadness.org 70 i 65420

The PERC connects to a twelve-slot backplane forming a drive array at the front of the box. More on the backplane later; it’s the PERCs you need to worry about.

Err codemadness.org 70 i 65421 Err codemadness.org 70 i 65422

The PERC6 is actually an LSI Megaraid 1078 card, which is just the thing you need if you’re running an operating system like Windows that doesn’t support a volume manager, striping and other grown-up stuff. Or if your OS does have these features, but you just don’t trust it. If you are running such an OS you may as well stick to the PERC6, and good luck to you. If you’re using BSD (including FreeNAS), Solaris or a Linux distribution that handles disk arrays, read on. The PERC6 is a solution to a problem you probably don’t have, but in all other respects its a turkey. You really want a straightforward HBA (Host Bus Adapter) that allows your clever operating system to talk directly with the drives.

Err codemadness.org 70 i 65423 Err codemadness.org 70 i 65424

Any SAS card based on the 1078 (such as the PERC6) is likely to have problems with drives larger than 2Tb. I’m not completely sure why, but I suspect it only applies to SATA. Unfortunately I don’t have any very large SAS drives to test this theory. A 2Tb limit isn’t really such a problem when you’re talking about a high performance array, as lots of small drives are a better option anyway. But it does matter if you’re building a very large datastore and don’t mind slower access and very significant resilvering times when you replace a drive. And for large datastores, very large SATA drives save you a whole lot of cash. The best capacity/cost ratio is for 5Gb SATA drives

Err codemadness.org 70 i 65425 Err codemadness.org 70 i 65426

Some Dell PERCs can be re-flashed with LSI firmware and used as a normal HBA. Unfortunately the PERC6 isn’t one of them. I believe the PERC6/R can be, but those I’ve seen in a FS12 are just a bit too old. So the first thing you’ll need to do is dump them in the recycling or try and sell them on eBay.

Err codemadness.org 70 i 65427 Err codemadness.org 70 i 65428

There are actually two PERC6 cards in most machine, and they each support eight SAS channels through two SFF-8484 connectors on each card. Given there are twelve drives slots, one of the PERCs is only half used. Sometimes they have a cable going off to a battery located near the fans. This is used in a desperate attempt to keep the data in the card’s cache safe in order to avoid write holes corrupting NTFS during a power failure, although the data on the on-drive caches won’t be so lucky. If you’re using a file system like that, make sure you have a UPS for the whole lot.

Err codemadness.org 70 i 65429 Err codemadness.org 70 i 65430

But we’re going to put the PERCs out of our misery and replace them with some nice new LSI HBAs that will do our operating system’s bidding and let it talk to the drives as it knows best. But which to pick? First we need to know what we’re connecting.

Err codemadness.org 70 i 65431 Err codemadness.org 70 i 65432

Moving to the front of the case there are twelve metal drive slots with a backplane behind. Dell makes machines with either backplanes or expanders. A backplane has a 1:1 SAS channel to drive connection; an expander takes one SAS channel and multiplexes it to (usually) four drives. You could always swap the blackplane with an expander, but I like the 1:1 nature of a backplane. It’s faster, especially if you’re configured as an array. And besides, we don’t want to spend more money than we need to, otherwise we wouldn’t be hot-rodding a cheap 2U server in the first place – expanders are expensive. Bizarrely, HBAs are cheap in comparison. So we need twelve channels of SAS that will connect to the sockets on the backplane.

Err codemadness.org 70 i 65433 Err codemadness.org 70 i 65434

The HBA you will probably want to go with is an LSI, as these have great OS support. Other cards are available, but check that the drivers are also available. The obvious choice for SAS aficionados is the LSI 9211-8i, which has eight internal channels. This is based on an LSI 2000 series chip, the 2008, which is the de-facto standard. There’s also four-channel -4i version, so you could get your twelve channels using one of each – but the price difference is small these days, so you might as well go for two -8i cards. If you want cheaper there are 1068-based equivalent cards, and these work just fine at about half the price. They probably won’t work with larger disks, only operate at 3Gb and the original SAS standard. However, the 2000 series is only about £25 extra and gives you more options for the future. A good investment. Conversely, the latest 3000 series cards can do some extra stuff (particularly to do with active cables) but I can’t see any great advantage in paying megabucks for one unless you’re going really high-end – in which case the NV12 isn’t the box for you anyway. And you’d need some very fast drives and a faster backplane to see any speed advantage. And probably a new motherboard….

Err codemadness.org 70 i 65435 Err codemadness.org 70 i 65436

Whether the 6Gb SAS2 of the 9211-8i is any use on the backplane, which was designed for 3Gb, I don’t know. If it matters that much to you you probably need to spend a lot more money. A drive array with a direct 3Gb to each drive is going to shift fast enough for most purposes.

Err codemadness.org 70 i 65437 Err codemadness.org 70 i 65438

Once you have removed the PERCs and plugged in your modern-ish 9211 HBAs, your next problem is going to be the cable. Both the PERCs and the backplane have SFF-8484 multi-lane connectors, which you might not recognise. SAS is a point-to-point system, the same as SATA, and a multi-lane cable is simply four single cables in a bundle with one plug. (Newer versions of SAS have more). SFF-8484 multi-lane connectors are somewhat rare, (but unfortunately this doesn’t make them valuable if you were hoping to flog them on eBay). The world switched quickly to the SFF-8087 for multi-lane SAS. The signals are electrically the same, but the connector is not.

Err codemadness.org 70 i 65439 Err codemadness.org 70 i 65440

Please generate and paste your ad code here. If left empty, the ad location will be highlighted on your blog pages with a reminder to enter your code. Mid-Post Err codemadness.org 70 i 65441 So there are two snags with this backplane. Firstly it’s designed to work with PERC controllers; secondly it has the old SFF-8484 connectors on the back, and any SAS cables you find are likely to have SFF-8087.

Err codemadness.org 70 i 65442 Err codemadness.org 70 i 65443

First things first – there is actually a jumper on the backplane to tell it whether it’s talking to a PERC or a standard LSI HBA. All you need to do is find it and change it. Fortunately there are very few jumpers to choose from (i.e. two), and you know the link is already in the wrong place. So try them one at a time until it works. The one you want may be labelled J15, but I wouldn’t like to say this was the same on every variant.

Err codemadness.org 70 i 65444 Err codemadness.org 70 i 65445

Second problem: the cable. You can get cables with an SFF-8087 on one end and an SFF-8484 on the other. These should work. But they’re usually rather expensive. If you want to make your own, it’s a PITA but at least you have the connectors already (assuming you didn’t bin the ones on the PERC cables).

Err codemadness.org 70 i 65446 Err codemadness.org 70 i 65447

I don’t know what committee designed SAS cable connectors, but ease of construction wasn’t foremost in their collective minds. You’re basically soldering twisted pair to a tiny PCB. This is mechanically rubbish, of course, as the slightest force on the cable will lift the track. Therefore its usual to cover the whole joint in solidified gunk (technical term) to protect it. Rewiring SAS connectors is definitely not easy.

Err codemadness.org 70 i 65448 Err codemadness.org 70 i 65449

I’ve tried various ways of soldering to them, none of which were satisfactory or rewarding. One method is to clip the all bare wires you wish to solder using something like a bulldog clip so they’re at lined up horizontally and then press then adjust the clamp so they’re gently pressed to the tracks on the board, making final adjustments with a strong magnifying glass and a fine tweezers. You can then either solder them with a fine temperature-controlled iron, or have pre-coated the pads with solder paste and flash across it with an SMD rework station. I’d love to know how they’re actually manufactured – using a precision jig I assume.

Err codemadness.org 70 i 65450 Err codemadness.org 70 i 65451

The “easy” way is to avoid soldering the connectors at all; simply cut existing cables in half and join one to the other. I’ve used prototyping matrix board for this. Strip and twist the conductors, push them through a hole and solder. This keeps things compact but manageable. We’re dealing with twisted pair here, so maintain the twists as close as possible to the board – it actually works quite well.

Err codemadness.org 70 i 65452 Err codemadness.org 70 i 65453

However, I’ve now found a reasonably-priced source of the appropriate cable so I don’t do this any more. Contact me if you need some in the UK.

Err codemadness.org 70 i 65454 Err codemadness.org 70 i 65455

So all that remains is to plug your HBAs to the backplane, shove in some drives and you’re away. If you’re at this stage, it “just works”. The access lights for all the drives do their thing as they should. The only mystery is how you can get the ident LED to come on; this may be controlled by the PERC when it detects a failure using the so-called sideband channel, or it may be operated by the electronics on the backplane. It’s workings are, I’m afraid, something of a mystery still – it’s got too much electronics on board to be a completely passive backplane.

Err codemadness.org 70 i 65456 Err codemadness.org 70 i 65457

Plan B: SATA

Err codemadness.org 70 i 65458 Err codemadness.org 70 i 65459

If you plan to use only SATA drives, especially if you don’t intend using more than six, it makes little sense to bother with SAS at all. The Gigabyte motherboard comes with half a dozen perfectly good 3Gb SATA channels, and if you need more you can always put another controller in a PCIe slot, or even USB. The advantages are lower cost and you get to free up two PCIe slots for more interesting things.

Err codemadness.org 70 i 65460 Err codemadness.org 70 i 65461

The down-side is that you can’t use the SAS backplane, but you can still use the mounting bays.

Err codemadness.org 70 i 65462 Err codemadness.org 70 i 65463

Removing the backplane looks tricky, but it really isn’t when you look a bit closer. Take out the fans first (held in place by rubber blocks), undo a couple of screws and it just lifts and slides out. You can then slot and lock in the drives and connect the SATA connectors directly to the back of the drives. You could even slide them out again without opening the case, as long as the cable was long enough and you manually detached the cable it when it was withdrawn. And let’s face it – drives are likely to last for years so even with half a dozen it’s not that great a hardship to open the case occasionally.

Err codemadness.org 70 i 65464 Err codemadness.org 70 i 65465

Next comes power. The PSU has a special connector for the backplane and two standard SATA power plugs. You could split these three ways using an adapter, but if you have a lot of drives you might want to re-wire the cables going to the backplane plug. It can definitely power twelve drives.

Err codemadness.org 70 i 65466 Err codemadness.org 70 i 65467

And that’s almost all there is to it. Unfortunately the main fans are connected to the backplane, which you’ve just removed. You can power them from an adapter on the drive power cables, but there are unused fan connectors on the motherboard. I’m doing a bit more research on cooling options, but this approach has promising possibilities for noise reduction.

Err codemadness.org 70 i 65468
Err codemadness.org 70 i 65469 Err codemadness.org 70 i 65470


Err codemadness.org 70 i 65471 Err codemadness.org 70 i 65472

Beastie Bits

Err codemadness.org 70 i 65473 Err codemadness.org 70 i 65474 Err codemadness.org 70 i 65483 Err codemadness.org 70 i 65484


Err codemadness.org 70 i 65485 Err codemadness.org 70 i 65486

Tarsnap

Err codemadness.org 70 i 65487 Err codemadness.org 70 i 65488

Feedback/Questions

Err codemadness.org 70 i 65489 Err codemadness.org 70 i 65490 Err codemadness.org 70 i 65497 Err codemadness.org 70 i 65498


Err codemadness.org 70 i 65499 Err codemadness.org 70 i 65500
    Err codemadness.org 70 i 65501
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 65502
Err codemadness.org 70 i 65503 Err codemadness.org 70 i 65504


]]> Err codemadness.org 70 i 65505
Err codemadness.org 70 i 65506 https://fireside.fm/player/v2/FYhhasNR+RD42T0jn Err codemadness.org 70 i 65507 Err codemadness.org 70 i 65508 ]]> Err codemadness.org 70 i 65509 Err codemadness.org 70 i 65510
Err codemadness.org 70 i 65511 Err codemadness.org 70 i 65512 Episode 239: The Return To ptrace | BSD Now 239 Err codemadness.org 70 i 65513 https://www.bsdnow.tv/239 Err codemadness.org 70 i 65514 http://feed.jupiter.zone/bsdnow#entry-1668 Err codemadness.org 70 i 65515 Thu, 29 Mar 2018 08:00:00 -0700 Err codemadness.org 70 i 65516 Allan Jude Err codemadness.org 70 i 65517 Err codemadness.org 70 i 65518 full Err codemadness.org 70 i 65519 Allan Jude Err codemadness.org 70 i 65520 OpenBSD firewalling Windows 10, NetBSD’s return to ptrace, TCP Alternative Backoff, the BSD Poetic license, and AsiaBSDcon 2018 videos available. Err codemadness.org 70 i 65521 1:32:43 Err codemadness.org 70 i 65522 no Err codemadness.org 70 i 65523 Err codemadness.org 70 i 65524 OpenBSD firewalling Windows 10, NetBSD’s return to ptrace, TCP Alternative Backoff, the BSD Poetic license, and AsiaBSDcon 2018 videos available. Err codemadness.org 70 i 65525 <h3>RSS Feeds:</h3> Err codemadness.org 70 i 65526 <p><a href="http://feeds.feedburner.com/BsdNowMp3">MP3 Feed</a> <strong>|</strong> <a href="https://itunes.apple.com/us/podcast/bsd-now-mp3/id701045710?mt=2">iTunes Feed</a> <strong>|</strong> <a href="http://feeds.feedburner.com/BsdNowHd">HD Vid Feed</a> <strong>|</strong> <a href="http://bitlove.org/jupiterbroadcasting/bsdnowhd/feed">HD Torrent Feed</a></p> Err codemadness.org 70 i 65527 Err codemadness.org 70 i 65528 <h3><a href="http://www.patreon.com/jupitersignal">Become a supporter on Patreon</a>:</h3> Err codemadness.org 70 i 65529 Err codemadness.org 70 i 65530 <p><a href="http://www.patreon.com/jupitersignal" rel="Support us on Patreon"><img src="http://i.imgur.com/2ioAf3Q.png" alt="Patreon" /></a></p> Err codemadness.org 70 i 65531 Err codemadness.org 70 i 65532 <h3>- Show Notes: -</h3> Err codemadness.org 70 i 65533 Err codemadness.org 70 i 65534 <h2>Headlines</h2> Err codemadness.org 70 i 65535 Err codemadness.org 70 i 65536 <h3><a href="https://www.ibm.com/developerworks/community/blogs/karsten/entry/Preventing_Windows_10_and_untrusted_software_from_having_full_access_to_the_internet?lang=en">Preventing Windows 10 and untrusted software from having full access to the internet using OpenBSD</a></h3> Err codemadness.org 70 i 65537 Err codemadness.org 70 i 65538 <blockquote> Err codemadness.org 70 i 65539 <p>Whilst setting up one of my development laptops to port some software to Windows I noticed Windows 10 doing crazy things like installing or updating apps and games by default after initial setup. The one I noticed in particular was Candy Crush Soda Saga which for those who don't know of it is some cheesy little puzzle game originally for consumer devices. I honestly did not want software like this near to a development machine. It has also been reported that Windows 10 now also updates core system software without notifying the user. Surely this destroys any vaguely deterministic behaviour, in my opinion making Windows 10 by default almost useless for development testbeds.</p> Err codemadness.org 70 i 65540 Err codemadness.org 70 i 65541 <p>Deciding instead to start from scratch but this time to set the inbuilt Windows Firewall to be very restrictive and only allow a few select programs to communicate. In this case all I really needed to be online was Firefox, Subversion and Putty. To my amusement (and astonishment) I found out that the Windows firewall could be modified to give access very easily by programs during installation (usually because this task needs to be done with admin privileges). It also seems that Windows store Apps can change the windows firewall settings at any point. One way to get around this issue could be to install a 3rd party firewall that most software will not have knowledge about and thus not attempt to break through. However the only decent firewall I have used was Sygate Pro which unfortunately is no longer supported by recent operating systems. The last supported versions was 2003, XP and 2000. In short, I avoid 3rd party firewalls.</p> Err codemadness.org 70 i 65542 Err codemadness.org 70 i 65543 <p>Instead I decided to trap Windows 10 (and all of it's rogue updaters) behind a virtual machine running OpenBSD. This effectively provided me with a full blown firewall appliance. From here I could then allow specific software I trusted through the firewall (via a proxy) in a safe, controlled and deterministic manner. For other interested developers (and security conscious users) and for my own reference, I have listed the steps taken here:</p> Err codemadness.org 70 i 65544 </blockquote> Err codemadness.org 70 i 65545 Err codemadness.org 70 i 65546 <ul> Err codemadness.org 70 i 65547 <li><p>1) First and foremost disable the Windows DHCP service - this is so no IP can be obtained on any interface. This effectively stops any communication with any network on the host system. This can be done by running services.msc with admin privileges and stopping and disabling the service called DHCP Client.</p></li> Err codemadness.org 70 i 65548 <li><p>2) Install or enable your favorite virtualization software - I have tested this with both VirtualBox and Hyper-V. Note that on non-server versions of Windows, in order to get Hyper-V working, your processor also needs to support SLAT which is daft so to avoid faffing about, I recommend using VirtualBox to get round this seemingly arbitrary restriction.</p></li> Err codemadness.org 70 i 65549 <li><p>3) Install OpenBSD on the VM - Note, if you decide to use Hyper-V, its hardware support isn't 100% perfect to run OpenBSD and you will need to disable a couple of things in the kernel. At the initial boot prompt, run the following commands.</p></li> Err codemadness.org 70 i 65550 </ul> Err codemadness.org 70 i 65551 Err codemadness.org 70 i 65552 <p><code> Err codemadness.org 70 i 65553 config -e -o /bsd /bsd Err codemadness.org 70 i 65554 disable acpi Err codemadness.org 70 i 65555 disable mpbios Err codemadness.org 70 i 65556 </code></p> Err codemadness.org 70 i 65557 Err codemadness.org 70 i 65558 <ul> Err codemadness.org 70 i 65559 <li><p>4) Add a host only virtual adapter to the VM - This is the one which we are going to connect through the VM with. Look at the IP that VirtualBox assigns this in network manager on the host machine. Mine was [b]192.168.56.1[/b]. Set up the adapter in the OpenBSD VM to have a static address on the same subnet. For example [b]192.168.56.2[/b]. If you are using Hyper-V and OpenBSD, make sure you add a "Legacy Interface" because no guest additions are available. Then set up a virtual switch which is host only.</p></li> Err codemadness.org 70 i 65560 <li><p>5) Add a bridged adapter to the VM - then assign it to whichever interface you wanted to connect to the external network with. Note that if using Wireless, set the bridged adapters MAC address to the same as your physical device or the access point will reject it. This is not needed (or possible) on Hyper-V because the actual device is "shared" rather than bridged so the same MAC address is used. Again, if you use Hyper-V, then add another virtual switch and attach it to your chosen external interface. VMs in Hyper-V "share" an adapter within a virtual switch and there is the option to also disable the hosts ability to use this interface at the same time which is fine for an additional level of security if those pesky rogue apps and updaters can also enable / disable DHCP service one day which wouldn't be too surprising.</p></li> Err codemadness.org 70 i 65561 <li><p>6) Connect to your network in the host OS - In case of Wireless, select the correct network from the list and type in a password if needed. Windows will probably say "no internet available", it also does not assign an IP address which is fine.</p></li> Err codemadness.org 70 i 65562 <li><p>7) Install the Squid proxy package on the OpenBSD guest and enable the daemon</p></li> Err codemadness.org 70 i 65563 </ul> Err codemadness.org 70 i 65564 Err codemadness.org 70 i 65565 <p>```</p> Err codemadness.org 70 i 65566 Err codemadness.org 70 i 65567 <h4>pkg_add squid</h4> Err codemadness.org 70 i 65568 Err codemadness.org 70 i 65569 <h4>echo 'squid_flags=""' >> /etc/rc.conf.local</h4> Err codemadness.org 70 i 65570 Err codemadness.org 70 i 65571 <h4>/etc/rc.d/squid start</h4> Err codemadness.org 70 i 65572 Err codemadness.org 70 i 65573 <p>```</p> Err codemadness.org 70 i 65574 Err codemadness.org 70 i 65575 <blockquote> Err codemadness.org 70 i 65576 <p>We will use this service for a limited selection of "safe and trusted" programs to connect to the outside world from within the Windows 10 host. You can also use putty on the host to connect to the VM via SSH and create a SOCKS proxy which software like Firefox can also use to connect externally.</p> Err codemadness.org 70 i 65577 </blockquote> Err codemadness.org 70 i 65578 Err codemadness.org 70 i 65579 <ul> Err codemadness.org 70 i 65580 <li><p>8) Configure the software you want to be able to access the external network with</p> Err codemadness.org 70 i 65581 Err codemadness.org 70 i 65582 <ul><li>Firefox - go to the connection settings and specify the VMs IP address for the proxy.</li> Err codemadness.org 70 i 65583 <li>Subversion - modify the %HOME%\AppData\Roaming\Subversion\servers file and change the HTTP proxy field to the VMs IP. This is important to communicate with GitHub via https:// (Yes, GitHub also supports Subversion). For svn:// addresses you can use Putty to port forward.</li> Err codemadness.org 70 i 65584 <li>Chromium/Chrome - unfortunately uses the global Windows proxy settings which defeats much of the purpose of this exercise if we were going to allow <em>all</em> of Windows access to the internet via the proxy. It would become mayhem again. However we can still use Putty to create a SOCKS proxy and then launch the browser with the following flags:</li></ul></li> Err codemadness.org 70 i 65585 </ul> Err codemadness.org 70 i 65586 Err codemadness.org 70 i 65587 <p><code> Err codemadness.org 70 i 65588 --proxy-server="socks5://&lt;VM IP&gt;:&lt;SOCKS PORT&gt;" Err codemadness.org 70 i 65589 --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE &lt;VM IP&gt;" Err codemadness.org 70 i 65590 </code></p> Err codemadness.org 70 i 65591 Err codemadness.org 70 i 65592 <ul> Err codemadness.org 70 i 65593 <li>9) Congratulations, you are now done - Admittedly this process can be a bit fiddly to set up but it completely prevents Windows 10 from making a complete mess. This solution is probably also useful for those who like privacy or don't like the idea of their software "phoning home". Hope you find this useful and if you have any issues, please feel free to leave questions in the comments.</li> Err codemadness.org 70 i 65594 </ul> Err codemadness.org 70 i 65595 Err codemadness.org 70 i 65596 <hr /> Err codemadness.org 70 i 65597 <h3><a href="https://blog.netbsd.org/tnf/entry/lldb_restoration_and_return_to">LLDB restoration and return to ptrace(2)</a></h3> Err codemadness.org 70 i 65598 Err codemadness.org 70 i 65599 <blockquote> Err codemadness.org 70 i 65600 <p>I've managed to unbreak the LLDB debugger as much as possible with the current kernel and hit problems with ptrace(2) that are causing issues with further work on proper NetBSD support. Meanwhile, I've upstreamed all the planned NetBSD patches to sanitizers and helped other BSDs to gain better or initial support.</p> Err codemadness.org 70 i 65601 </blockquote> Err codemadness.org 70 i 65602 Err codemadness.org 70 i 65603 <ul> Err codemadness.org 70 i 65604 <li>LLDB</li> Err codemadness.org 70 i 65605 </ul> Err codemadness.org 70 i 65606 Err codemadness.org 70 i 65607 <blockquote> Err codemadness.org 70 i 65608 <p>Since the last time I worked on LLDB, we have introduced many changes to the kernel interfaces (most notably related to signals) that apparently fixed some bugs in Go and introduced regressions in ptrace(2). Part of the regressions were noted by the existing ATF tests. However, the breakage was only marked as a new problem to resolve. For completeness, the ptrace(2) code was also cleaned up by Christos Zoulas, and we fixed some bugs with compat32.</p> Err codemadness.org 70 i 65609 Err codemadness.org 70 i 65610 <p>I've fixed a crash in *NetBSD::Factory::Launch(), triggered on startup of the lldb-server application.</p> Err codemadness.org 70 i 65611 Err codemadness.org 70 i 65612 <p>Here is the commit message:</p> Err codemadness.org 70 i 65613 </blockquote> Err codemadness.org 70 i 65614 Err codemadness.org 70 i 65615 <p>``` Err codemadness.org 70 i 65616 We cannot call process_up->SetState() inside Err codemadness.org 70 i 65617 the NativeProcessNetBSD::Factory::Launch Err codemadness.org 70 i 65618 function because it triggers a NULL pointer Err codemadness.org 70 i 65619 deference.</p> Err codemadness.org 70 i 65620 Err codemadness.org 70 i 65621 <p>The generic code for launching a process in: Err codemadness.org 70 i 65622 GDBRemoteCommunicationServerLLGS::LaunchProcess Err codemadness.org 70 i 65623 sets the m<em>debugged</em>process<em>up pointer after Err codemadness.org 70 i 65624 a successful call to m</em>process<em>factory.Launch(). Err codemadness.org 70 i 65625 If we attempt to call process</em>up->SetState() Err codemadness.org 70 i 65626 inside a platform specific Launch function we Err codemadness.org 70 i 65627 end up dereferencing a NULL pointer in Err codemadness.org 70 i 65628 NativeProcessProtocol::GetCurrentThreadID().</p> Err codemadness.org 70 i 65629 Err codemadness.org 70 i 65630 <p>Use the proper call process<em>up->SetState(,false) Err codemadness.org 70 i 65631 that sets notify</em>delegates to false. Err codemadness.org 70 i 65632 ```</p> Err codemadness.org 70 i 65633 Err codemadness.org 70 i 65634 <ul> Err codemadness.org 70 i 65635 <li>Sanitizers</li> Err codemadness.org 70 i 65636 </ul> Err codemadness.org 70 i 65637 Err codemadness.org 70 i 65638 <blockquote> Err codemadness.org 70 i 65639 <p>I suspended development of new features in sanitizers last month, but I was still in the process of upstreaming of local patches. This process was time-consuming as it required rebasing patches, adding dedicated tests, and addressing all other requests and comments from the upstream developers.</p> Err codemadness.org 70 i 65640 Err codemadness.org 70 i 65641 <p>I'm not counting hot fixes, as some changes were triggering build or test issues on !NetBSD hosts. Thankfully all these issues were addressed quickly. The final result is a reduction of local delta size of almost 1MB to less than 100KB (1205 lines of diff). The remaining patches are rescheduled for later, mostly because they depend on extra work with cross-OS tests and prior integration of sanitizers with the basesystem distribution. I didn't want to put extra work here in the current state of affairs and, I've registered as a mentor for Google Summer of Code for the NetBSD Foundation and prepared Software Quality improvement tasks in order to outsource part of the labour.</p> Err codemadness.org 70 i 65642 </blockquote> Err codemadness.org 70 i 65643 Err codemadness.org 70 i 65644 <ul> Err codemadness.org 70 i 65645 <li>Userland changes</li> Err codemadness.org 70 i 65646 </ul> Err codemadness.org 70 i 65647 Err codemadness.org 70 i 65648 <blockquote> Err codemadness.org 70 i 65649 <p>I've also improved documentation for some of the features of NetBSD, described in man-pages. These pieces of information were sometimes wrong or incomplete, and this makes covering the NetBSD system with features such as sanitizers harder as there is a mismatch between the actual code and the documented code.</p> Err codemadness.org 70 i 65650 Err codemadness.org 70 i 65651 <p>Some pieces of software also require better namespacing support, these days mostly for the POSIX standard. I've fixed few low-hanging fruits there and requested pullups to NetBSD-8(BETA).</p> Err codemadness.org 70 i 65652 Err codemadness.org 70 i 65653 <p>I thank the developers for improving the landed code in order to ship the best solutions for users.</p> Err codemadness.org 70 i 65654 </blockquote> Err codemadness.org 70 i 65655 Err codemadness.org 70 i 65656 <ul> Err codemadness.org 70 i 65657 <li>BSD collaboration in LLVM</li> Err codemadness.org 70 i 65658 </ul> Err codemadness.org 70 i 65659 Err codemadness.org 70 i 65660 <blockquote> Err codemadness.org 70 i 65661 <p>A One-man-show in human activity is usually less fun and productive than collaboration in a team. This is also true in software development. Last month I was helping as a reviewer to port LLVM features to FreeBSD and when possible to OpenBSD. This included MSan/FreeBSD, libFuzzer/FreeBSD, XRay/FreeBSD and UBSan/OpenBSD.</p> Err codemadness.org 70 i 65662 Err codemadness.org 70 i 65663 <p>I've landed most of the submitted and reviewed code to the mainstream LLVM tree.</p> Err codemadness.org 70 i 65664 Err codemadness.org 70 i 65665 <p>Part of the code also verified the correctness of NetBSD routes in the existing porting efforts and showed new options for improvement. This is the reason why I've landed preliminary XRay/NetBSD code and added missing NetBSD bits to ToolChain::getOSLibName(). The latter produced setup issues with the prebuilt LLVM toolchain, as the directory name with compiler-rt goodies were located in a path like ./lib/clang/7.0.0/lib/netbsd8.99.12 with a varying OS version. This could stop working after upgrades, so I've simplified it to "netbsd", similar to FreeBSD and Solaris.</p> Err codemadness.org 70 i 65666 </blockquote> Err codemadness.org 70 i 65667 Err codemadness.org 70 i 65668 <ul> Err codemadness.org 70 i 65669 <li>Prebuilt toolchain for testers</li> Err codemadness.org 70 i 65670 </ul> Err codemadness.org 70 i 65671 Err codemadness.org 70 i 65672 <blockquote> Err codemadness.org 70 i 65673 <p>I've prepared a build of Clang/LLVM with LLDB and compiler-rt features prebuilt on NetBSD/amd64 v. 8.99.12:</p> Err codemadness.org 70 i 65674 </blockquote> Err codemadness.org 70 i 65675 Err codemadness.org 70 i 65676 <p><code>llvm-clang-compilerrt-lldb-7.0.0beta_2018-02-28.tar.bz2</code></p> Err codemadness.org 70 i 65677 Err codemadness.org 70 i 65678 <ul> Err codemadness.org 70 i 65679 <li>Plan for the next milestone</li> Err codemadness.org 70 i 65680 </ul> Err codemadness.org 70 i 65681 Err codemadness.org 70 i 65682 <blockquote> Err codemadness.org 70 i 65683 <p>With the approaching NetBSD 8.0 release I plan to finish backporting a few changes there from HEAD:</p> Err codemadness.org 70 i 65684 </blockquote> Err codemadness.org 70 i 65685 Err codemadness.org 70 i 65686 <ul> Err codemadness.org 70 i 65687 <li>Remove one unused feature from ptrace(2), PT<em>SET</em>SIGMASK &amp; PT<em>GET</em>SIGMASK. I've originally introduced these operations with criu/rr-like software in mind, but they are misusing or even abusing ptrace(2) and are not regular process debuggers. I plan to remove this operation from HEAD and backport this to NetBSD-8(BETA), before the release, so no compat will be required for this call. Future ports of criu/rr should involve dedicated kernel support for such requirements. Err codemadness.org 70 i 65688 Finish the backport of <em>UC</em>MACHINE_FP() to NetBSD-8. This will allow use of the same code in sanitizers in HEAD and NetBSD-8.0.</li> Err codemadness.org 70 i 65689 <li>By popular demand, improve the regnsub(3) and regasub(3) API, adding support for more or less substitutions than 10.</li> Err codemadness.org 70 i 65690 </ul> Err codemadness.org 70 i 65691 Err codemadness.org 70 i 65692 <blockquote> Err codemadness.org 70 i 65693 <p>Once done, I will return to ptrace(2) debugging and corrections.</p> Err codemadness.org 70 i 65694 </blockquote> Err codemadness.org 70 i 65695 Err codemadness.org 70 i 65696 <hr /> Err codemadness.org 70 i 65697 <p><strong>DigitalOcean</strong></p> Err codemadness.org 70 i 65698 Err codemadness.org 70 i 65699 <h3><a href="https://t.pagef.lt/working-with-the-netbsd-kernel/">Working with the NetBSD kernel</a></h3> Err codemadness.org 70 i 65700 Err codemadness.org 70 i 65701 <ul> Err codemadness.org 70 i 65702 <li>Overview</li> Err codemadness.org 70 i 65703 </ul> Err codemadness.org 70 i 65704 Err codemadness.org 70 i 65705 <blockquote> Err codemadness.org 70 i 65706 <p>When working on complex systems, such as OS kernels, your attention span and cognitive energy are too valuable to be wasted on inefficiencies pertaining to ancillary tasks. After experimenting with different environmental setups for kernel debugging, some of which were awkward and distracting from my main objectives, I have arrived to my current workflow, which is described here. This approach is mainly oriented towards security research and the study of kernel internals.</p> Err codemadness.org 70 i 65707 Err codemadness.org 70 i 65708 <p>Before delving into the details, this is the general outline of my environment:</p> Err codemadness.org 70 i 65709 Err codemadness.org 70 i 65710 <p>My host system runs Linux. My target system is a QEMU guest.</p> Err codemadness.org 70 i 65711 Err codemadness.org 70 i 65712 <p>I’m tracing and debugging on my host system by attaching GDB (with NetBSD x86-64 ABI support) to QEMU’s built-in GDB server. Err codemadness.org 70 i 65713 I work with NetBSD-current. All sources are built on my host system with the cross-compilation toolchain produced by build.sh. Err codemadness.org 70 i 65714 I use NFS to share the source tree and the build artifacts between the target and the host. Err codemadness.org 70 i 65715 I find IDEs awkward, so for codebase navigation I mainly rely on vim, tmux and ctags. Err codemadness.org 70 i 65716 For non-intrusive instrumentation, such as figuring out control flow, I’m using dtrace.</p> Err codemadness.org 70 i 65717 </blockquote> Err codemadness.org 70 i 65718 Err codemadness.org 70 i 65719 <ul> Err codemadness.org 70 i 65720 <li><p>Preparing the host system</p> Err codemadness.org 70 i 65721 Err codemadness.org 70 i 65722 <ul><li>QEMU</li> Err codemadness.org 70 i 65723 <li>GDB</li> Err codemadness.org 70 i 65724 <li>NFS Exports</li></ul></li> Err codemadness.org 70 i 65725 <li><p>Building NetBSD-current</p></li> Err codemadness.org 70 i 65726 <li><p>A word of warning</p> Err codemadness.org 70 i 65727 Err codemadness.org 70 i 65728 <ul><li>Now is a great time to familiarize yourself with the build.sh tool and its options. Be especially carefull with the following options:</li></ul></li> Err codemadness.org 70 i 65729 </ul> Err codemadness.org 70 i 65730 Err codemadness.org 70 i 65731 <p><code> Err codemadness.org 70 i 65732 -r Remove contents of TOOLDIR and DESTDIR before building. Err codemadness.org 70 i 65733 -u Set MKUPDATE=yes; do not run "make clean" first. Err codemadness.org 70 i 65734 Without this, everything is rebuilt, including the tools. Err codemadness.org 70 i 65735 </code></p> Err codemadness.org 70 i 65736 Err codemadness.org 70 i 65737 <blockquote> Err codemadness.org 70 i 65738 <p>Chance are, you do not want to use these options once you’ve successfully built the cross-compilation toolchain and your entire userland, because building those takes time and there aren’t many good reasons to recompile them from scratch. Here’s what to expect:</p> Err codemadness.org 70 i 65739 Err codemadness.org 70 i 65740 <p>On my desktop, running a quad-core Intel i5-3470 at 3.20GHz with 24GB of RAM and underlying directory structure residing on a SSD drive, the entire process took about 55 minutes. I was running make with -j12, so the machine was quite busy. Err codemadness.org 70 i 65741 On an old Dell D630 laptop, running Intel Core 2 Duo T7500 at 2.20GHz with 4GB of RAM and a slow hard drive (5400RPM), the process took approximatelly 2.5 hours. I was running make with -j4. Based on the temperature alerts and CPU clock throttling messages, it was quite a struggle.</p> Err codemadness.org 70 i 65742 </blockquote> Err codemadness.org 70 i 65743 Err codemadness.org 70 i 65744 <ul> Err codemadness.org 70 i 65745 <li>Acquiring the sources</li> Err codemadness.org 70 i 65746 <li><p>Compiling the sources</p> Err codemadness.org 70 i 65747 Err codemadness.org 70 i 65748 <ul><li>Preparing the guest system</li></ul></li> Err codemadness.org 70 i 65749 <li>Provisioning your guest</li> Err codemadness.org 70 i 65750 <li>Pkgin and NFS shares</li> Err codemadness.org 70 i 65751 <li>Tailoring the kernel for debugging</li> Err codemadness.org 70 i 65752 <li>Installing the new kernel</li> Err codemadness.org 70 i 65753 <li>Configuring DTrace</li> Err codemadness.org 70 i 65754 <li>Debugging the guest’s kernel</li> Err codemadness.org 70 i 65755 </ul> Err codemadness.org 70 i 65756 Err codemadness.org 70 i 65757 <hr /> Err codemadness.org 70 i 65758 <h2>News Roundup</h2> Err codemadness.org 70 i 65759 Err codemadness.org 70 i 65760 <h3><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=331214">Add support for the experimental Internet-Draft "TCP Alternative Backoff”</a></h3> Err codemadness.org 70 i 65761 Err codemadness.org 70 i 65762 <p>``` Err codemadness.org 70 i 65763 Add support for the experimental Internet-Draft "TCP Alternative Backoff with Err codemadness.org 70 i 65764 ECN (ABE)" proposal to the New Reno congestion control algorithm module. Err codemadness.org 70 i 65765 ABE reduces the amount of congestion window reduction in response to Err codemadness.org 70 i 65766 ECN-signalled congestion relative to the loss-inferred congestion response.</p> Err codemadness.org 70 i 65767 Err codemadness.org 70 i 65768 <p>More details about ABE can be found in the Internet-Draft: Err codemadness.org 70 i 65769 https://tools.ietf.org/html/draft-ietf-tcpm-alternativebackoff-ecn</p> Err codemadness.org 70 i 65770 Err codemadness.org 70 i 65771 <p>The implementation introduces four new sysctls:</p> Err codemadness.org 70 i 65772 Err codemadness.org 70 i 65773 <ul> Err codemadness.org 70 i 65774 <li><p>net.inet.tcp.cc.abe defaults to 0 (disabled) and can be set to non-zero to Err codemadness.org 70 i 65775 enable ABE for ECN-enabled TCP connections.</p></li> Err codemadness.org 70 i 65776 <li><p>net.inet.tcp.cc.newreno.beta and net.inet.tcp.cc.newreno.beta<em>ecn set the Err codemadness.org 70 i 65777 multiplicative window decrease factor, specified as a percentage, applied to Err codemadness.org 70 i 65778 the congestion window in response to a loss-based or ECN-based congestion Err codemadness.org 70 i 65779 signal respectively. They default to the values specified in the draft i.e. Err codemadness.org 70 i 65780 beta=50 and beta</em>ecn=80.</p></li> Err codemadness.org 70 i 65781 <li><p>net.inet.tcp.cc.abe_frlossreduce defaults to 0 (disabled) and can be set to Err codemadness.org 70 i 65782 non-zero to enable the use of standard beta (50% by default) when repairing Err codemadness.org 70 i 65783 loss during an ECN-signalled congestion recovery episode. It enables a more Err codemadness.org 70 i 65784 conservative congestion response and is provided for the purposes of Err codemadness.org 70 i 65785 experimentation as a result of some discussion at IETF 100 in Singapore.</p></li> Err codemadness.org 70 i 65786 </ul> Err codemadness.org 70 i 65787 Err codemadness.org 70 i 65788 <p>The values of beta and beta<em>ecn can also be set per-connection by way of the Err codemadness.org 70 i 65789 TCP</em>CCALGOOPT TCP-level socket option and the new CC<em>NEWRENO</em>BETA or Err codemadness.org 70 i 65790 CC<em>NEWRENO</em>BETA_ECN CC algo sub-options.</p> Err codemadness.org 70 i 65791 Err codemadness.org 70 i 65792 <p>Submitted by: Tom Jones <a href="&#x6D;&#x61;i&#x6C;&#x74;&#111;:&#x74;&#x6A;&#64;&#x65;&#x6E;&#x6F;&#x74;&#105;.&#x6D;&#101;">&#x74;&#x6A;&#64;&#x65;&#x6E;&#x6F;&#x74;&#105;.&#x6D;&#101;</a> Err codemadness.org 70 i 65793 Tested by: Tom Jones <a href="&#x6D;&#97;&#105;&#x6C;&#x74;&#x6F;:&#116;&#x6A;&#64;&#101;&#x6E;&#111;&#116;&#105;&#x2E;&#x6D;&#101;">&#116;&#x6A;&#64;&#101;&#x6E;&#111;&#116;&#105;&#x2E;&#x6D;&#101;</a>, Grenville Armitage <a href="&#109;&#x61;&#105;&#x6C;&#x74;&#x6F;:&#103;&#97;&#x72;&#109;&#x69;ta&#x67;&#x65;&#64;&#x73;&#119;&#105;&#x6E;.&#x65;d&#117;.&#97;&#117;">&#103;&#97;&#x72;&#109;&#x69;ta&#x67;&#x65;&#64;&#x73;&#119;&#105;&#x6E;.&#x65;d&#117;.&#97;&#117;</a> Err codemadness.org 70 i 65794 Relnotes: Yes Err codemadness.org 70 i 65795 Differential Revision: https://reviews.freebsd.org/D11616 Err codemadness.org 70 i 65796 ```</p> Err codemadness.org 70 i 65797 Err codemadness.org 70 i 65798 <hr /> Err codemadness.org 70 i 65799 <h3><a href="https://undeadly.org/cgi?action=article;sid=20180228225937">Meltdown-mitigation syspatch/errata now available</a></h3> Err codemadness.org 70 i 65800 Err codemadness.org 70 i 65801 <blockquote> Err codemadness.org 70 i 65802 <p>The recent changes in -current mitigating the Meltdown vulnerability have been backported to the 6.1 and 6.2 (amd64) releases, and the syspatch update (for 6.2) is now available.</p> Err codemadness.org 70 i 65803 </blockquote> Err codemadness.org 70 i 65804 Err codemadness.org 70 i 65805 <ul> Err codemadness.org 70 i 65806 <li><a href="https://marc.info/?l=openbsd-cvs&amp;m=151964860620856&amp;w=2">6.1</a></li> Err codemadness.org 70 i 65807 </ul> Err codemadness.org 70 i 65808 Err codemadness.org 70 i 65809 <p>``` Err codemadness.org 70 i 65810 Changes by: bluhm@cvs.openbsd.org 2018/02/26 05:36:18 Err codemadness.org 70 i 65811 Log message: Err codemadness.org 70 i 65812 Implement a workaround against the Meltdown flaw in Intel CPUs. Err codemadness.org 70 i 65813 The following changes have been backported from OpenBSD -current.</p> Err codemadness.org 70 i 65814 Err codemadness.org 70 i 65815 <p>Changes by: guenther@cvs.openbsd.org 2018/01/06 15:03:13 Err codemadness.org 70 i 65816 Log message: Err codemadness.org 70 i 65817 Handle %gs like %[def]s and reset set it in cpu_switchto() instead of on Err codemadness.org 70 i 65818 every return to userspace.</p> Err codemadness.org 70 i 65819 Err codemadness.org 70 i 65820 <p>Changes by: mlarkin@cvs.openbsd.org 2018/01/06 18:08:20 Err codemadness.org 70 i 65821 Log message: Err codemadness.org 70 i 65822 Add identcpu.c and specialreg.h definitions for the new Intel/AMD MSRs Err codemadness.org 70 i 65823 that should help mitigate spectre. This is just the detection piece, these Err codemadness.org 70 i 65824 features are not yet used. Err codemadness.org 70 i 65825 Part of a larger ongoing effort to mitigate meltdown/spectre. i386 will Err codemadness.org 70 i 65826 come later; it needs some machdep.c cleanup first.</p> Err codemadness.org 70 i 65827 Err codemadness.org 70 i 65828 <p>Changes by: mlarkin@cvs.openbsd.org 2018/01/07 12:56:19 Err codemadness.org 70 i 65829 Log message: Err codemadness.org 70 i 65830 remove all PG_G global page mappings from the kernel when running on Err codemadness.org 70 i 65831 Intel CPUs. Part of an ongoing set of commits to mitigate the Intel Err codemadness.org 70 i 65832 "meltdown" CVE. This diff does not confer any immunity to that Err codemadness.org 70 i 65833 vulnerability - subsequent commits are still needed and are being Err codemadness.org 70 i 65834 worked on presently. Err codemadness.org 70 i 65835 ok guenther, deraadt</p> Err codemadness.org 70 i 65836 Err codemadness.org 70 i 65837 <p>Changes by: mlarkin@cvs.openbsd.org 2018/01/12 01:21:30 Err codemadness.org 70 i 65838 Log message: Err codemadness.org 70 i 65839 IBRS -> IBRS,IBPB in identifycpu lines</p> Err codemadness.org 70 i 65840 Err codemadness.org 70 i 65841 <p>Changes by: guenther@cvs.openbsd.org 2018/02/21 12:24:15 Err codemadness.org 70 i 65842 Log message: Err codemadness.org 70 i 65843 Meltdown: implement user/kernel page table separation. Err codemadness.org 70 i 65844 On Intel CPUs which speculate past user/supervisor page permission checks, Err codemadness.org 70 i 65845 use a separate page table for userspace with only the minimum of kernel code Err codemadness.org 70 i 65846 and data required for the transitions to/from the kernel (still marked as Err codemadness.org 70 i 65847 supervisor-only, of course): Err codemadness.org 70 i 65848 - the IDT (RO) Err codemadness.org 70 i 65849 - three pages of kernel text in the .kutext section for interrupt, trap, Err codemadness.org 70 i 65850 and syscall trampoline code (RX) Err codemadness.org 70 i 65851 - one page of kernel data in the .kudata section for TLB flush IPIs (RW) Err codemadness.org 70 i 65852 - the lapic page (RW, uncachable) Err codemadness.org 70 i 65853 - per CPU: one page for the TSS+GDT (RO) and one page for trampoline Err codemadness.org 70 i 65854 stacks (RW) Err codemadness.org 70 i 65855 When a syscall, trap, or interrupt takes a CPU from userspace to kernel the Err codemadness.org 70 i 65856 trampoline code switches page tables, switches stacks to the thread's real Err codemadness.org 70 i 65857 kernel stack, then copies over the necessary bits from the trampoline stack. Err codemadness.org 70 i 65858 On return to userspace the opposite occurs: recreate the iretq frame on the Err codemadness.org 70 i 65859 trampoline stack, switch stack, switch page tables, and return to userspace. Err codemadness.org 70 i 65860 mlarkin@ implemented the pmap bits and did 90% of the debugging, diagnosing Err codemadness.org 70 i 65861 issues on MP in particular, and drove the final push to completion. Err codemadness.org 70 i 65862 Many rounds of testing by naddy@, sthen@, and others Err codemadness.org 70 i 65863 Thanks to Alex Wilson from Joyent for early discussions about trampolines Err codemadness.org 70 i 65864 and their data requirements. Err codemadness.org 70 i 65865 Per-CPU page layout mostly inspired by DragonFlyBSD. Err codemadness.org 70 i 65866 ok mlarkin@ deraadt@</p> Err codemadness.org 70 i 65867 Err codemadness.org 70 i 65868 <p>Changes by: bluhm@cvs.openbsd.org 2018/02/22 13:18:59 Err codemadness.org 70 i 65869 Log message: Err codemadness.org 70 i 65870 The GNU assembler does not understand 1ULL, so replace the constant Err codemadness.org 70 i 65871 with 1. Then it compiles with gcc, sign and size do not matter Err codemadness.org 70 i 65872 here.</p> Err codemadness.org 70 i 65873 Err codemadness.org 70 i 65874 <p>Changes by: bluhm@cvs.openbsd.org 2018/02/22 13:27:14 Err codemadness.org 70 i 65875 Log message: Err codemadness.org 70 i 65876 The compile time assertion for cpu info did not work with gcc. Err codemadness.org 70 i 65877 Rephrase the condition in a way that both gcc and clang accept it.</p> Err codemadness.org 70 i 65878 Err codemadness.org 70 i 65879 <p>Changes by: guenther@cvs.openbsd.org 2018/02/22 13:36:40 Err codemadness.org 70 i 65880 Log message: Err codemadness.org 70 i 65881 Set the PG_G (global) bit on the special page table entries that are shared Err codemadness.org 70 i 65882 between the u-k and u+k tables, because they're actually in <em>all</em> tables.</p> Err codemadness.org 70 i 65883 Err codemadness.org 70 i 65884 <p>OpenBSD 6.1 errata 037 Err codemadness.org 70 i 65885 ```</p> Err codemadness.org 70 i 65886 Err codemadness.org 70 i 65887 <ul> Err codemadness.org 70 i 65888 <li>6.2</li> Err codemadness.org 70 i 65889 </ul> Err codemadness.org 70 i 65890 Err codemadness.org 70 i 65891 <p>``` Err codemadness.org 70 i 65892 Changes by: bluhm@cvs.openbsd.org 2018/02/26 05:29:48 Err codemadness.org 70 i 65893 Log message: Err codemadness.org 70 i 65894 Implement a workaround against the Meltdown flaw in Intel CPUs. Err codemadness.org 70 i 65895 The following changes have been backported from OpenBSD -current.</p> Err codemadness.org 70 i 65896 Err codemadness.org 70 i 65897 <p>Changes by: guenther@cvs.openbsd.org 2018/01/06 15:03:13 Err codemadness.org 70 i 65898 Log message: Err codemadness.org 70 i 65899 Handle %gs like %[def]s and reset set it in cpu_switchto() instead of on Err codemadness.org 70 i 65900 every return to userspace.</p> Err codemadness.org 70 i 65901 Err codemadness.org 70 i 65902 <p>Changes by: mlarkin@cvs.openbsd.org 2018/01/06 18:08:20 Err codemadness.org 70 i 65903 Log message: Err codemadness.org 70 i 65904 Add identcpu.c and specialreg.h definitions for the new Intel/AMD MSRs Err codemadness.org 70 i 65905 that should help mitigate spectre. This is just the detection piece, these Err codemadness.org 70 i 65906 features are not yet used. Err codemadness.org 70 i 65907 Part of a larger ongoing effort to mitigate meltdown/spectre. i386 will Err codemadness.org 70 i 65908 come later; it needs some machdep.c cleanup first.</p> Err codemadness.org 70 i 65909 Err codemadness.org 70 i 65910 <p>Changes by: mlarkin@cvs.openbsd.org 2018/01/07 12:56:19 Err codemadness.org 70 i 65911 Log message: Err codemadness.org 70 i 65912 remove all PG_G global page mappings from the kernel when running on Err codemadness.org 70 i 65913 Intel CPUs. Part of an ongoing set of commits to mitigate the Intel Err codemadness.org 70 i 65914 "meltdown" CVE. This diff does not confer any immunity to that Err codemadness.org 70 i 65915 vulnerability - subsequent commits are still needed and are being Err codemadness.org 70 i 65916 worked on presently.</p> Err codemadness.org 70 i 65917 Err codemadness.org 70 i 65918 <p>Changes by: mlarkin@cvs.openbsd.org 2018/01/12 01:21:30 Err codemadness.org 70 i 65919 Log message: Err codemadness.org 70 i 65920 IBRS -> IBRS,IBPB in identifycpu lines</p> Err codemadness.org 70 i 65921 Err codemadness.org 70 i 65922 <p>Changes by: guenther@cvs.openbsd.org 2018/02/21 12:24:15 Err codemadness.org 70 i 65923 Log message: Err codemadness.org 70 i 65924 Meltdown: implement user/kernel page table separation. Err codemadness.org 70 i 65925 On Intel CPUs which speculate past user/supervisor page permission checks, Err codemadness.org 70 i 65926 use a separate page table for userspace with only the minimum of kernel code Err codemadness.org 70 i 65927 and data required for the transitions to/from the kernel (still marked as Err codemadness.org 70 i 65928 supervisor-only, of course): Err codemadness.org 70 i 65929 - the IDT (RO) Err codemadness.org 70 i 65930 - three pages of kernel text in the .kutext section for interrupt, trap, Err codemadness.org 70 i 65931 and syscall trampoline code (RX) Err codemadness.org 70 i 65932 - one page of kernel data in the .kudata section for TLB flush IPIs (RW) Err codemadness.org 70 i 65933 - the lapic page (RW, uncachable) Err codemadness.org 70 i 65934 - per CPU: one page for the TSS+GDT (RO) and one page for trampoline Err codemadness.org 70 i 65935 stacks (RW) Err codemadness.org 70 i 65936 When a syscall, trap, or interrupt takes a CPU from userspace to kernel the Err codemadness.org 70 i 65937 trampoline code switches page tables, switches stacks to the thread's real Err codemadness.org 70 i 65938 kernel stack, then copies over the necessary bits from the trampoline stack. Err codemadness.org 70 i 65939 On return to userspace the opposite occurs: recreate the iretq frame on the Err codemadness.org 70 i 65940 trampoline stack, switch stack, switch page tables, and return to userspace. Err codemadness.org 70 i 65941 mlarkin@ implemented the pmap bits and did 90% of the debugging, diagnosing Err codemadness.org 70 i 65942 issues on MP in particular, and drove the final push to completion. Err codemadness.org 70 i 65943 Many rounds of testing by naddy@, sthen@, and others Err codemadness.org 70 i 65944 Thanks to Alex Wilson from Joyent for early discussions about trampolines Err codemadness.org 70 i 65945 and their data requirements. Err codemadness.org 70 i 65946 Per-CPU page layout mostly inspired by DragonFlyBSD.</p> Err codemadness.org 70 i 65947 Err codemadness.org 70 i 65948 <p>Changes by: bluhm@cvs.openbsd.org 2018/02/22 13:18:59 Err codemadness.org 70 i 65949 Log message: Err codemadness.org 70 i 65950 The GNU assembler does not understand 1ULL, so replace the constant Err codemadness.org 70 i 65951 with 1. Then it compiles with gcc, sign and size do not matter Err codemadness.org 70 i 65952 here.</p> Err codemadness.org 70 i 65953 Err codemadness.org 70 i 65954 <p>Changes by: bluhm@cvs.openbsd.org 2018/02/22 13:27:14 Err codemadness.org 70 i 65955 Log message: Err codemadness.org 70 i 65956 The compile time assertion for cpu info did not work with gcc. Err codemadness.org 70 i 65957 Rephrase the condition in a way that both gcc and clang accept it.</p> Err codemadness.org 70 i 65958 Err codemadness.org 70 i 65959 <p>Changes by: guenther@cvs.openbsd.org 2018/02/22 13:36:40 Err codemadness.org 70 i 65960 Log message: Err codemadness.org 70 i 65961 Set the PG_G (global) bit on the special page table entries that are shared Err codemadness.org 70 i 65962 between the u-k and u+k tables, because they're actually in <em>all</em> tables.</p> Err codemadness.org 70 i 65963 Err codemadness.org 70 i 65964 <p>OpenBSD 6.2 errata 009 Err codemadness.org 70 i 65965 ```</p> Err codemadness.org 70 i 65966 Err codemadness.org 70 i 65967 <ul> Err codemadness.org 70 i 65968 <li><a href="https://man.openbsd.org/syspatch">syspatch</a></li> Err codemadness.org 70 i 65969 </ul> Err codemadness.org 70 i 65970 Err codemadness.org 70 i 65971 <hr /> Err codemadness.org 70 i 65972 <p><strong>iXsystems</strong></p> Err codemadness.org 70 i 65973 Err codemadness.org 70 i 65974 <h3><a href="https://undeadly.org/cgi?action=article;sid=20180302002131">a2k18 Hackathon Report: Ken Westerback on dhclient and more</a></h3> Err codemadness.org 70 i 65975 Err codemadness.org 70 i 65976 <blockquote> Err codemadness.org 70 i 65977 <p>Ken Westerback (krw@) has sent in the first report from the (recently concluded) a2k18 hackathon:</p> Err codemadness.org 70 i 65978 </blockquote> Err codemadness.org 70 i 65979 Err codemadness.org 70 i 65980 <ul> Err codemadness.org 70 i 65981 <li><p><a href="http://www.gcmap.com/mapui?P=YYZ-YVR-MEL-ZQN-CHC-DUD,DUD-WLG-AKL-SYD-BNE-YVR-YYZ">YYZ -> YVR -> MEL -> ZQN -> CHC -> DUD -> WLG -> AKL -> SYD -> BNE -> YVR -> YYZ</a></p></li> Err codemadness.org 70 i 65982 <li><p>For those of you who don’t speak Airport code:</p></li> Err codemadness.org 70 i 65983 <li>Toronto -> Vancouver -> Melbourne -> Queenstown -> Christchurch -> Dunedin</li> Err codemadness.org 70 i 65984 <li>Then: Dunedin -> Wellington -> Auckland -> Sydney -> Brisbane -> Vancouver -> Toronto</li> Err codemadness.org 70 i 65985 </ul> Err codemadness.org 70 i 65986 Err codemadness.org 70 i 65987 <p>```</p> Err codemadness.org 70 i 65988 Err codemadness.org 70 i 65989 <p>Whew.</p> Err codemadness.org 70 i 65990 Err codemadness.org 70 i 65991 <p>Once in Dunedin the hacking commenced. The background was a regular tick of new meltdown diffs to test in addition to whatever work one was actually engaged in. I was lucky (?) in that none of the problems with the various versions cropped up on my laptop. Err codemadness.org 70 i 65992 ```</p> Err codemadness.org 70 i 65993 Err codemadness.org 70 i 65994 <p>``` Err codemadness.org 70 i 65995 I worked with rpe@ and tb@ to make the install script create the 'correct' FQDN when dhclient was involved. I worked with tb@ on some code cleanup in various bits of the base. dhclient(8) got some nice cleanup, further pruning/improving log messages in particular. In addition the oddball -q option was flipped into the more normal -v. I.e. be quiet by default and verbose on request.</p> Err codemadness.org 70 i 65996 Err codemadness.org 70 i 65997 <p>More substantially the use of recorded leases was made less intrusive by avoiding continual reconfiguration of the interface with the same information. The 'request', 'require' and 'ignore' dhclient.conf(5) statement were changed so they are cumulative, making it easier to build longer lists of affected options.</p> Err codemadness.org 70 i 65998 Err codemadness.org 70 i 65999 <p>I tweaked softraid(4) to remove a handrolled version of duid_format().</p> Err codemadness.org 70 i 66000 Err codemadness.org 70 i 66001 <p>I sprinkled a couple of M_WAITOK into amd64 and i386 mpbios to document that there is really no need to check for NULL being returned from some malloc() calls.</p> Err codemadness.org 70 i 66002 Err codemadness.org 70 i 66003 <p>I continued to help test the new filesystem quiescing logic that deraadt@ committed during the hackathon.</p> Err codemadness.org 70 i 66004 Err codemadness.org 70 i 66005 <p>I only locked myself out of my room once!</p> Err codemadness.org 70 i 66006 Err codemadness.org 70 i 66007 <p>Fueled by the excellent coffee from local institutions The Good Earth Cafe and The Good Oil Cafe, and the excellent hacking facilities and accommodations at the University of Otago it was another enjoyable and productive hackathon south of the equator. And I even saw penguins.</p> Err codemadness.org 70 i 66008 Err codemadness.org 70 i 66009 <p>Thanks to Jim Cheetham and the support from the project and the OpenBSD Foundation that made it all possible Err codemadness.org 70 i 66010 ```</p> Err codemadness.org 70 i 66011 Err codemadness.org 70 i 66012 <hr /> Err codemadness.org 70 i 66013 <h3><a href="https://blog.gerv.net/2018/03/poetic-license/">Poetic License</a></h3> Err codemadness.org 70 i 66014 Err codemadness.org 70 i 66015 <blockquote> Err codemadness.org 70 i 66016 <p>I found this when going through old documents. It looks like I wrote it and never posted it. Perhaps I didn’t consider it finished at the time. But looking at it now, I think it’s good enough to share. It’s a redrafting of the BSD licence, in poetic form. Maybe I had plans to do other licences one day; I can’t remember.</p> Err codemadness.org 70 i 66017 Err codemadness.org 70 i 66018 <p>I’ve interleaved it with the original license text so you can see how true, or otherwise, I’ve been to it. Enjoy :-)</p> Err codemadness.org 70 i 66019 </blockquote> Err codemadness.org 70 i 66020 Err codemadness.org 70 i 66021 <p>``` Err codemadness.org 70 i 66022 Copyright (c) <YEAR>, <OWNER> Err codemadness.org 70 i 66023 All rights reserved.</p> Err codemadness.org 70 i 66024 Err codemadness.org 70 i 66025 <p>Redistribution and use in source and binary forms, with or without Err codemadness.org 70 i 66026 modification, are permitted provided that the following conditions Err codemadness.org 70 i 66027 are met: Err codemadness.org 70 i 66028 ```</p> Err codemadness.org 70 i 66029 Err codemadness.org 70 i 66030 <blockquote> Err codemadness.org 70 i 66031 <p>You may redistribute and use – Err codemadness.org 70 i 66032 as source or binary, as you choose, Err codemadness.org 70 i 66033 and with some changes or without – Err codemadness.org 70 i 66034 this software; let there be no doubt. Err codemadness.org 70 i 66035 But you must meet conditions three, Err codemadness.org 70 i 66036 if in compliance you wish to be.</p> Err codemadness.org 70 i 66037 </blockquote> Err codemadness.org 70 i 66038 Err codemadness.org 70 i 66039 <p><code> Err codemadness.org 70 i 66040 1. Redistributions of source code must retain the above copyright Err codemadness.org 70 i 66041 notice, this list of conditions and the following disclaimer. Err codemadness.org 70 i 66042 2. Redistributions in binary form must reproduce the above copyright Err codemadness.org 70 i 66043 notice, this list of conditions and the following disclaimer in the Err codemadness.org 70 i 66044 documentation and/or other materials provided with the distribution. Err codemadness.org 70 i 66045 3. Neither the name of the nor the names of its Err codemadness.org 70 i 66046 contributors may be used to endorse or promote products derived Err codemadness.org 70 i 66047 from this software without specific prior written permission. Err codemadness.org 70 i 66048 </code></p> Err codemadness.org 70 i 66049 Err codemadness.org 70 i 66050 <blockquote> Err codemadness.org 70 i 66051 <p>The first is obvious, of course – Err codemadness.org 70 i 66052 To keep this text within the source. Err codemadness.org 70 i 66053 The second is for binaries Err codemadness.org 70 i 66054 Place in the docs a copy, please. Err codemadness.org 70 i 66055 A moral lesson from this ode – Err codemadness.org 70 i 66056 Don’t strip the copyright on code.</p> Err codemadness.org 70 i 66057 Err codemadness.org 70 i 66058 <p>The third applies when you promote: Err codemadness.org 70 i 66059 You must not take, from us who wrote, Err codemadness.org 70 i 66060 our names and make it seem as true Err codemadness.org 70 i 66061 we like or love your version too. Err codemadness.org 70 i 66062 (Unless, of course, you contact us Err codemadness.org 70 i 66063 And get our written assensus.)</p> Err codemadness.org 70 i 66064 </blockquote> Err codemadness.org 70 i 66065 Err codemadness.org 70 i 66066 <p><code> Err codemadness.org 70 i 66067 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS Err codemadness.org 70 i 66068 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT Err codemadness.org 70 i 66069 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS Err codemadness.org 70 i 66070 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE Err codemadness.org 70 i 66071 COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, Err codemadness.org 70 i 66072 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, Err codemadness.org 70 i 66073 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; Err codemadness.org 70 i 66074 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER Err codemadness.org 70 i 66075 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT Err codemadness.org 70 i 66076 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN Err codemadness.org 70 i 66077 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE Err codemadness.org 70 i 66078 POSSIBILITY OF SUCH DAMAGE. Err codemadness.org 70 i 66079 </code></p> Err codemadness.org 70 i 66080 Err codemadness.org 70 i 66081 <blockquote> Err codemadness.org 70 i 66082 <p>One final point to be laid out Err codemadness.org 70 i 66083 (You must forgive my need to shout): Err codemadness.org 70 i 66084 THERE IS NO WARRANTY FOR THIS Err codemadness.org 70 i 66085 WHATEVER THING MAY GO AMISS. Err codemadness.org 70 i 66086 EXPRESS, IMPLIED, IT’S ALL THE SAME – Err codemadness.org 70 i 66087 RESPONSIBILITY DISCLAIMED.</p> Err codemadness.org 70 i 66088 Err codemadness.org 70 i 66089 <p>WE ARE NOT LIABLE FOR LOSS Err codemadness.org 70 i 66090 NO MATTER HOW INCURRED THE COST Err codemadness.org 70 i 66091 THE TYPE OR STYLE OF DAMAGE DONE Err codemadness.org 70 i 66092 WHATE’ER THE LEGAL THEORY SPUN. Err codemadness.org 70 i 66093 THIS STILL REMAINS AS TRUE IF YOU Err codemadness.org 70 i 66094 INFORM US WHAT YOU PLAN TO DO.</p> Err codemadness.org 70 i 66095 Err codemadness.org 70 i 66096 <p>When all is told, we sum up thus – Err codemadness.org 70 i 66097 Do what you like, just don’t sue us.</p> Err codemadness.org 70 i 66098 </blockquote> Err codemadness.org 70 i 66099 Err codemadness.org 70 i 66100 <hr /> Err codemadness.org 70 i 66101 <hr /> Err codemadness.org 70 i 66102 <h2>Beastie Bits</h2> Err codemadness.org 70 i 66103 Err codemadness.org 70 i 66104 <ul> Err codemadness.org 70 i 66105 <li><a href="https://www.youtube.com/playlist?list=PLnTFqpZk5ebDZwT-bmYcIwv76yhmTfl0l">AsiaBSDCon 2018 Videos</a></li> Err codemadness.org 70 i 66106 <li><a href="https://www.freebsdfoundation.org/past-issues/storage/">The January/February 2018 FreeBSD Journal is Here</a></li> Err codemadness.org 70 i 66107 <li><a href="https://mail-index.netbsd.org/pkgsrc-users/2018/01/04/msg026073.html">Announcing the pkgsrc-2017Q4 release (2018-01-04)</a></li> Err codemadness.org 70 i 66108 <li><a href="https://www.bsdhh.org/bsdhh-de-index.html">BSD Hamburg Event</a></li> Err codemadness.org 70 i 66109 <li><a href="http://zfs.datto.com/">ZFS User conference</a></li> Err codemadness.org 70 i 66110 <li><a href="https://www.phoronix.com/scan.php?page=news_item&amp;px=Unreal-Engine-4-FreeBSD">Unreal Engine 4 Being Brought Natively To FreeBSD By Independent Developer</a></li> Err codemadness.org 70 i 66111 </ul> Err codemadness.org 70 i 66112 Err codemadness.org 70 i 66113 <hr /> Err codemadness.org 70 i 66114 <p>Tarsnap ad</p> Err codemadness.org 70 i 66115 Err codemadness.org 70 i 66116 <hr /> Err codemadness.org 70 i 66117 <h2>Feedback/Questions</h2> Err codemadness.org 70 i 66118 Err codemadness.org 70 i 66119 <ul> Err codemadness.org 70 i 66120 <li>Philippe - <a href="http://dpaste.com/2643BF5#wrap">I heart FreeBSD and other questions</a></li> Err codemadness.org 70 i 66121 <li>Cyrus - <a href="http://dpaste.com/3NTH14J#wrap">BSD Now is excellent</a></li> Err codemadness.org 70 i 66122 <li>Architect - <a href="http://dpaste.com/317BP8X#wrap">Combined Feedback</a></li> Err codemadness.org 70 i 66123 <li>Dale - <a href="http://dpaste.com/284G4TQ#wrap">ZFS on Linux moving to ZFS on FreeBSD</a></li> Err codemadness.org 70 i 66124 <li>Tommi - <a href="http://dpaste.com/1KGMRGM#wrap">New BUG in Finland</a></li> Err codemadness.org 70 i 66125 </ul> Err codemadness.org 70 i 66126 Err codemadness.org 70 i 66127 <hr /> Err codemadness.org 70 i 66128 <ul> Err codemadness.org 70 i 66129 <li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li> Err codemadness.org 70 i 66130 </ul> Err codemadness.org 70 i 66131 Err codemadness.org 70 i 66132 <hr /> Err codemadness.org 70 i 66133 Err codemadness.org 70 i 66134 BSD,DragonflyBSD,freebsd,guide,howto,Interview,NetBSD,OpenBSD,trueos,tutorial Err codemadness.org 70 i 66135 Err codemadness.org 70 i 66136 OpenBSD firewalling Windows 10, NetBSD’s return to ptrace, TCP Alternative Backoff, the BSD Poetic license, and AsiaBSDcon 2018 videos available.

Err codemadness.org 70 i 66137 Err codemadness.org 70 i 66138

RSS Feeds:

Err codemadness.org 70 i 66139 Err codemadness.org 70 i 66140

MP3 Feed | iTunes Feed | HD Vid Feed | HD Torrent Feed

Err codemadness.org 70 i 66141 Err codemadness.org 70 i 66142

Become a supporter on Patreon:

Err codemadness.org 70 i 66143 Err codemadness.org 70 i 66144

Patreon

Err codemadness.org 70 i 66145 Err codemadness.org 70 i 66146

- Show Notes: -

Err codemadness.org 70 i 66147 Err codemadness.org 70 i 66148

Headlines

Err codemadness.org 70 i 66149 Err codemadness.org 70 i 66150

Preventing Windows 10 and untrusted software from having full access to the internet using OpenBSD

Err codemadness.org 70 i 66151 Err codemadness.org 70 i 66152
Err codemadness.org 70 i 66153

Whilst setting up one of my development laptops to port some software to Windows I noticed Windows 10 doing crazy things like installing or updating apps and games by default after initial setup. The one I noticed in particular was Candy Crush Soda Saga which for those who don't know of it is some cheesy little puzzle game originally for consumer devices. I honestly did not want software like this near to a development machine. It has also been reported that Windows 10 now also updates core system software without notifying the user. Surely this destroys any vaguely deterministic behaviour, in my opinion making Windows 10 by default almost useless for development testbeds.

Err codemadness.org 70 i 66154 Err codemadness.org 70 i 66155

Deciding instead to start from scratch but this time to set the inbuilt Windows Firewall to be very restrictive and only allow a few select programs to communicate. In this case all I really needed to be online was Firefox, Subversion and Putty. To my amusement (and astonishment) I found out that the Windows firewall could be modified to give access very easily by programs during installation (usually because this task needs to be done with admin privileges). It also seems that Windows store Apps can change the windows firewall settings at any point. One way to get around this issue could be to install a 3rd party firewall that most software will not have knowledge about and thus not attempt to break through. However the only decent firewall I have used was Sygate Pro which unfortunately is no longer supported by recent operating systems. The last supported versions was 2003, XP and 2000. In short, I avoid 3rd party firewalls.

Err codemadness.org 70 i 66156 Err codemadness.org 70 i 66157

Instead I decided to trap Windows 10 (and all of it's rogue updaters) behind a virtual machine running OpenBSD. This effectively provided me with a full blown firewall appliance. From here I could then allow specific software I trusted through the firewall (via a proxy) in a safe, controlled and deterministic manner. For other interested developers (and security conscious users) and for my own reference, I have listed the steps taken here:

Err codemadness.org 70 i 66158
Err codemadness.org 70 i 66159 Err codemadness.org 70 i 66160
    Err codemadness.org 70 i 66161
  • 1) First and foremost disable the Windows DHCP service - this is so no IP can be obtained on any interface. This effectively stops any communication with any network on the host system. This can be done by running services.msc with admin privileges and stopping and disabling the service called DHCP Client.

  • Err codemadness.org 70 i 66162
  • 2) Install or enable your favorite virtualization software - I have tested this with both VirtualBox and Hyper-V. Note that on non-server versions of Windows, in order to get Hyper-V working, your processor also needs to support SLAT which is daft so to avoid faffing about, I recommend using VirtualBox to get round this seemingly arbitrary restriction.

  • Err codemadness.org 70 i 66163
  • 3) Install OpenBSD on the VM - Note, if you decide to use Hyper-V, its hardware support isn't 100% perfect to run OpenBSD and you will need to disable a couple of things in the kernel. At the initial boot prompt, run the following commands.

  • Err codemadness.org 70 i 66164
Err codemadness.org 70 i 66165 Err codemadness.org 70 i 66166

Err codemadness.org 70 i 66167 config -e -o /bsd /bsd Err codemadness.org 70 i 66168 disable acpi Err codemadness.org 70 i 66169 disable mpbios Err codemadness.org 70 i 66170

Err codemadness.org 70 i 66171 Err codemadness.org 70 i 66172
    Err codemadness.org 70 i 66173
  • 4) Add a host only virtual adapter to the VM - This is the one which we are going to connect through the VM with. Look at the IP that VirtualBox assigns this in network manager on the host machine. Mine was [b]192.168.56.1[/b]. Set up the adapter in the OpenBSD VM to have a static address on the same subnet. For example [b]192.168.56.2[/b]. If you are using Hyper-V and OpenBSD, make sure you add a "Legacy Interface" because no guest additions are available. Then set up a virtual switch which is host only.

  • Err codemadness.org 70 i 66174
  • 5) Add a bridged adapter to the VM - then assign it to whichever interface you wanted to connect to the external network with. Note that if using Wireless, set the bridged adapters MAC address to the same as your physical device or the access point will reject it. This is not needed (or possible) on Hyper-V because the actual device is "shared" rather than bridged so the same MAC address is used. Again, if you use Hyper-V, then add another virtual switch and attach it to your chosen external interface. VMs in Hyper-V "share" an adapter within a virtual switch and there is the option to also disable the hosts ability to use this interface at the same time which is fine for an additional level of security if those pesky rogue apps and updaters can also enable / disable DHCP service one day which wouldn't be too surprising.

  • Err codemadness.org 70 i 66175
  • 6) Connect to your network in the host OS - In case of Wireless, select the correct network from the list and type in a password if needed. Windows will probably say "no internet available", it also does not assign an IP address which is fine.

  • Err codemadness.org 70 i 66176
  • 7) Install the Squid proxy package on the OpenBSD guest and enable the daemon

  • Err codemadness.org 70 i 66177
Err codemadness.org 70 i 66178 Err codemadness.org 70 i 66179

```

Err codemadness.org 70 i 66180 Err codemadness.org 70 i 66181

pkg_add squid

Err codemadness.org 70 i 66182 Err codemadness.org 70 i 66183

echo 'squid_flags=""' >> /etc/rc.conf.local

Err codemadness.org 70 i 66184 Err codemadness.org 70 i 66185

/etc/rc.d/squid start

Err codemadness.org 70 i 66186 Err codemadness.org 70 i 66187

```

Err codemadness.org 70 i 66188 Err codemadness.org 70 i 66189
Err codemadness.org 70 i 66190

We will use this service for a limited selection of "safe and trusted" programs to connect to the outside world from within the Windows 10 host. You can also use putty on the host to connect to the VM via SSH and create a SOCKS proxy which software like Firefox can also use to connect externally.

Err codemadness.org 70 i 66191
Err codemadness.org 70 i 66192 Err codemadness.org 70 i 66193
    Err codemadness.org 70 i 66194
  • 8) Configure the software you want to be able to access the external network with

    Err codemadness.org 70 i 66195 Err codemadness.org 70 i 66196
    • Firefox - go to the connection settings and specify the VMs IP address for the proxy.
    • Err codemadness.org 70 i 66197
    • Subversion - modify the %HOME%\AppData\Roaming\Subversion\servers file and change the HTTP proxy field to the VMs IP. This is important to communicate with GitHub via https:// (Yes, GitHub also supports Subversion). For svn:// addresses you can use Putty to port forward.
    • Err codemadness.org 70 i 66198
    • Chromium/Chrome - unfortunately uses the global Windows proxy settings which defeats much of the purpose of this exercise if we were going to allow all of Windows access to the internet via the proxy. It would become mayhem again. However we can still use Putty to create a SOCKS proxy and then launch the browser with the following flags:
  • Err codemadness.org 70 i 66199
Err codemadness.org 70 i 66200 Err codemadness.org 70 i 66201

Err codemadness.org 70 i 66202 --proxy-server="socks5://<VM IP>:<SOCKS PORT>" Err codemadness.org 70 i 66203 --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE <VM IP>" Err codemadness.org 70 i 66204

Err codemadness.org 70 i 66205 Err codemadness.org 70 i 66206
    Err codemadness.org 70 i 66207
  • 9) Congratulations, you are now done - Admittedly this process can be a bit fiddly to set up but it completely prevents Windows 10 from making a complete mess. This solution is probably also useful for those who like privacy or don't like the idea of their software "phoning home". Hope you find this useful and if you have any issues, please feel free to leave questions in the comments.
  • Err codemadness.org 70 i 66208
Err codemadness.org 70 i 66209 Err codemadness.org 70 i 66210


Err codemadness.org 70 i 66211 Err codemadness.org 70 i 66212

LLDB restoration and return to ptrace(2)

Err codemadness.org 70 i 66213 Err codemadness.org 70 i 66214
Err codemadness.org 70 i 66215

I've managed to unbreak the LLDB debugger as much as possible with the current kernel and hit problems with ptrace(2) that are causing issues with further work on proper NetBSD support. Meanwhile, I've upstreamed all the planned NetBSD patches to sanitizers and helped other BSDs to gain better or initial support.

Err codemadness.org 70 i 66216
Err codemadness.org 70 i 66217 Err codemadness.org 70 i 66218
    Err codemadness.org 70 i 66219
  • LLDB
  • Err codemadness.org 70 i 66220
Err codemadness.org 70 i 66221 Err codemadness.org 70 i 66222
Err codemadness.org 70 i 66223

Since the last time I worked on LLDB, we have introduced many changes to the kernel interfaces (most notably related to signals) that apparently fixed some bugs in Go and introduced regressions in ptrace(2). Part of the regressions were noted by the existing ATF tests. However, the breakage was only marked as a new problem to resolve. For completeness, the ptrace(2) code was also cleaned up by Christos Zoulas, and we fixed some bugs with compat32.

Err codemadness.org 70 i 66224 Err codemadness.org 70 i 66225

I've fixed a crash in *NetBSD::Factory::Launch(), triggered on startup of the lldb-server application.

Err codemadness.org 70 i 66226 Err codemadness.org 70 i 66227

Here is the commit message:

Err codemadness.org 70 i 66228
Err codemadness.org 70 i 66229 Err codemadness.org 70 i 66230

``` Err codemadness.org 70 i 66231 We cannot call process_up->SetState() inside Err codemadness.org 70 i 66232 the NativeProcessNetBSD::Factory::Launch Err codemadness.org 70 i 66233 function because it triggers a NULL pointer Err codemadness.org 70 i 66234 deference.

Err codemadness.org 70 i 66235 Err codemadness.org 70 i 66236

The generic code for launching a process in: Err codemadness.org 70 i 66237 GDBRemoteCommunicationServerLLGS::LaunchProcess Err codemadness.org 70 i 66238 sets the mdebuggedprocessup pointer after Err codemadness.org 70 i 66239 a successful call to mprocessfactory.Launch(). Err codemadness.org 70 i 66240 If we attempt to call processup->SetState() Err codemadness.org 70 i 66241 inside a platform specific Launch function we Err codemadness.org 70 i 66242 end up dereferencing a NULL pointer in Err codemadness.org 70 i 66243 NativeProcessProtocol::GetCurrentThreadID().

Err codemadness.org 70 i 66244 Err codemadness.org 70 i 66245

Use the proper call processup->SetState(,false) Err codemadness.org 70 i 66246 that sets notifydelegates to false. Err codemadness.org 70 i 66247 ```

Err codemadness.org 70 i 66248 Err codemadness.org 70 i 66249
    Err codemadness.org 70 i 66250
  • Sanitizers
  • Err codemadness.org 70 i 66251
Err codemadness.org 70 i 66252 Err codemadness.org 70 i 66253
Err codemadness.org 70 i 66254

I suspended development of new features in sanitizers last month, but I was still in the process of upstreaming of local patches. This process was time-consuming as it required rebasing patches, adding dedicated tests, and addressing all other requests and comments from the upstream developers.

Err codemadness.org 70 i 66255 Err codemadness.org 70 i 66256

I'm not counting hot fixes, as some changes were triggering build or test issues on !NetBSD hosts. Thankfully all these issues were addressed quickly. The final result is a reduction of local delta size of almost 1MB to less than 100KB (1205 lines of diff). The remaining patches are rescheduled for later, mostly because they depend on extra work with cross-OS tests and prior integration of sanitizers with the basesystem distribution. I didn't want to put extra work here in the current state of affairs and, I've registered as a mentor for Google Summer of Code for the NetBSD Foundation and prepared Software Quality improvement tasks in order to outsource part of the labour.

Err codemadness.org 70 i 66257
Err codemadness.org 70 i 66258 Err codemadness.org 70 i 66259
    Err codemadness.org 70 i 66260
  • Userland changes
  • Err codemadness.org 70 i 66261
Err codemadness.org 70 i 66262 Err codemadness.org 70 i 66263
Err codemadness.org 70 i 66264

I've also improved documentation for some of the features of NetBSD, described in man-pages. These pieces of information were sometimes wrong or incomplete, and this makes covering the NetBSD system with features such as sanitizers harder as there is a mismatch between the actual code and the documented code.

Err codemadness.org 70 i 66265 Err codemadness.org 70 i 66266

Some pieces of software also require better namespacing support, these days mostly for the POSIX standard. I've fixed few low-hanging fruits there and requested pullups to NetBSD-8(BETA).

Err codemadness.org 70 i 66267 Err codemadness.org 70 i 66268

I thank the developers for improving the landed code in order to ship the best solutions for users.

Err codemadness.org 70 i 66269
Err codemadness.org 70 i 66270 Err codemadness.org 70 i 66271
    Err codemadness.org 70 i 66272
  • BSD collaboration in LLVM
  • Err codemadness.org 70 i 66273
Err codemadness.org 70 i 66274 Err codemadness.org 70 i 66275
Err codemadness.org 70 i 66276

A One-man-show in human activity is usually less fun and productive than collaboration in a team. This is also true in software development. Last month I was helping as a reviewer to port LLVM features to FreeBSD and when possible to OpenBSD. This included MSan/FreeBSD, libFuzzer/FreeBSD, XRay/FreeBSD and UBSan/OpenBSD.

Err codemadness.org 70 i 66277 Err codemadness.org 70 i 66278

I've landed most of the submitted and reviewed code to the mainstream LLVM tree.

Err codemadness.org 70 i 66279 Err codemadness.org 70 i 66280

Part of the code also verified the correctness of NetBSD routes in the existing porting efforts and showed new options for improvement. This is the reason why I've landed preliminary XRay/NetBSD code and added missing NetBSD bits to ToolChain::getOSLibName(). The latter produced setup issues with the prebuilt LLVM toolchain, as the directory name with compiler-rt goodies were located in a path like ./lib/clang/7.0.0/lib/netbsd8.99.12 with a varying OS version. This could stop working after upgrades, so I've simplified it to "netbsd", similar to FreeBSD and Solaris.

Err codemadness.org 70 i 66281
Err codemadness.org 70 i 66282 Err codemadness.org 70 i 66283
    Err codemadness.org 70 i 66284
  • Prebuilt toolchain for testers
  • Err codemadness.org 70 i 66285
Err codemadness.org 70 i 66286 Err codemadness.org 70 i 66287
Err codemadness.org 70 i 66288

I've prepared a build of Clang/LLVM with LLDB and compiler-rt features prebuilt on NetBSD/amd64 v. 8.99.12:

Err codemadness.org 70 i 66289
Err codemadness.org 70 i 66290 Err codemadness.org 70 i 66291

llvm-clang-compilerrt-lldb-7.0.0beta_2018-02-28.tar.bz2

Err codemadness.org 70 i 66292 Err codemadness.org 70 i 66293
    Err codemadness.org 70 i 66294
  • Plan for the next milestone
  • Err codemadness.org 70 i 66295
Err codemadness.org 70 i 66296 Err codemadness.org 70 i 66297
Err codemadness.org 70 i 66298

With the approaching NetBSD 8.0 release I plan to finish backporting a few changes there from HEAD:

Err codemadness.org 70 i 66299
Err codemadness.org 70 i 66300 Err codemadness.org 70 i 66301
    Err codemadness.org 70 i 66302
  • Remove one unused feature from ptrace(2), PTSETSIGMASK & PTGETSIGMASK. I've originally introduced these operations with criu/rr-like software in mind, but they are misusing or even abusing ptrace(2) and are not regular process debuggers. I plan to remove this operation from HEAD and backport this to NetBSD-8(BETA), before the release, so no compat will be required for this call. Future ports of criu/rr should involve dedicated kernel support for such requirements. Err codemadness.org 70 i 66303 Finish the backport of UCMACHINE_FP() to NetBSD-8. This will allow use of the same code in sanitizers in HEAD and NetBSD-8.0.
  • Err codemadness.org 70 i 66304
  • By popular demand, improve the regnsub(3) and regasub(3) API, adding support for more or less substitutions than 10.
  • Err codemadness.org 70 i 66305
Err codemadness.org 70 i 66306 Err codemadness.org 70 i 66307
Err codemadness.org 70 i 66308

Once done, I will return to ptrace(2) debugging and corrections.

Err codemadness.org 70 i 66309
Err codemadness.org 70 i 66310 Err codemadness.org 70 i 66311


Err codemadness.org 70 i 66312 Err codemadness.org 70 i 66313

DigitalOcean

Err codemadness.org 70 i 66314 Err codemadness.org 70 i 66315

Working with the NetBSD kernel

Err codemadness.org 70 i 66316 Err codemadness.org 70 i 66317
    Err codemadness.org 70 i 66318
  • Overview
  • Err codemadness.org 70 i 66319
Err codemadness.org 70 i 66320 Err codemadness.org 70 i 66321
Err codemadness.org 70 i 66322

When working on complex systems, such as OS kernels, your attention span and cognitive energy are too valuable to be wasted on inefficiencies pertaining to ancillary tasks. After experimenting with different environmental setups for kernel debugging, some of which were awkward and distracting from my main objectives, I have arrived to my current workflow, which is described here. This approach is mainly oriented towards security research and the study of kernel internals.

Err codemadness.org 70 i 66323 Err codemadness.org 70 i 66324

Before delving into the details, this is the general outline of my environment:

Err codemadness.org 70 i 66325 Err codemadness.org 70 i 66326

My host system runs Linux. My target system is a QEMU guest.

Err codemadness.org 70 i 66327 Err codemadness.org 70 i 66328

I’m tracing and debugging on my host system by attaching GDB (with NetBSD x86-64 ABI support) to QEMU’s built-in GDB server. Err codemadness.org 70 i 66329 I work with NetBSD-current. All sources are built on my host system with the cross-compilation toolchain produced by build.sh. Err codemadness.org 70 i 66330 I use NFS to share the source tree and the build artifacts between the target and the host. Err codemadness.org 70 i 66331 I find IDEs awkward, so for codebase navigation I mainly rely on vim, tmux and ctags. Err codemadness.org 70 i 66332 For non-intrusive instrumentation, such as figuring out control flow, I’m using dtrace.

Err codemadness.org 70 i 66333
Err codemadness.org 70 i 66334 Err codemadness.org 70 i 66335
    Err codemadness.org 70 i 66336
  • Preparing the host system

    Err codemadness.org 70 i 66337 Err codemadness.org 70 i 66338
    • QEMU
    • Err codemadness.org 70 i 66339
    • GDB
    • Err codemadness.org 70 i 66340
    • NFS Exports
  • Err codemadness.org 70 i 66341
  • Building NetBSD-current

  • Err codemadness.org 70 i 66342
  • A word of warning

    Err codemadness.org 70 i 66343 Err codemadness.org 70 i 66344
    • Now is a great time to familiarize yourself with the build.sh tool and its options. Be especially carefull with the following options:
  • Err codemadness.org 70 i 66345
Err codemadness.org 70 i 66346 Err codemadness.org 70 i 66347

Err codemadness.org 70 i 66348 -r Remove contents of TOOLDIR and DESTDIR before building. Err codemadness.org 70 i 66349 -u Set MKUPDATE=yes; do not run "make clean" first. Err codemadness.org 70 i 66350 Without this, everything is rebuilt, including the tools. Err codemadness.org 70 i 66351

Err codemadness.org 70 i 66352 Err codemadness.org 70 i 66353
Err codemadness.org 70 i 66354

Chance are, you do not want to use these options once you’ve successfully built the cross-compilation toolchain and your entire userland, because building those takes time and there aren’t many good reasons to recompile them from scratch. Here’s what to expect:

Err codemadness.org 70 i 66355 Err codemadness.org 70 i 66356

On my desktop, running a quad-core Intel i5-3470 at 3.20GHz with 24GB of RAM and underlying directory structure residing on a SSD drive, the entire process took about 55 minutes. I was running make with -j12, so the machine was quite busy. Err codemadness.org 70 i 66357 On an old Dell D630 laptop, running Intel Core 2 Duo T7500 at 2.20GHz with 4GB of RAM and a slow hard drive (5400RPM), the process took approximatelly 2.5 hours. I was running make with -j4. Based on the temperature alerts and CPU clock throttling messages, it was quite a struggle.

Err codemadness.org 70 i 66358
Err codemadness.org 70 i 66359 Err codemadness.org 70 i 66360
    Err codemadness.org 70 i 66361
  • Acquiring the sources
  • Err codemadness.org 70 i 66362
  • Compiling the sources

    Err codemadness.org 70 i 66363 Err codemadness.org 70 i 66364
    • Preparing the guest system
  • Err codemadness.org 70 i 66365
  • Provisioning your guest
  • Err codemadness.org 70 i 66366
  • Pkgin and NFS shares
  • Err codemadness.org 70 i 66367
  • Tailoring the kernel for debugging
  • Err codemadness.org 70 i 66368
  • Installing the new kernel
  • Err codemadness.org 70 i 66369
  • Configuring DTrace
  • Err codemadness.org 70 i 66370
  • Debugging the guest’s kernel
  • Err codemadness.org 70 i 66371
Err codemadness.org 70 i 66372 Err codemadness.org 70 i 66373


Err codemadness.org 70 i 66374 Err codemadness.org 70 i 66375

News Roundup

Err codemadness.org 70 i 66376 Err codemadness.org 70 i 66377

Add support for the experimental Internet-Draft "TCP Alternative Backoff”

Err codemadness.org 70 i 66378 Err codemadness.org 70 i 66379

``` Err codemadness.org 70 i 66380 Add support for the experimental Internet-Draft "TCP Alternative Backoff with Err codemadness.org 70 i 66381 ECN (ABE)" proposal to the New Reno congestion control algorithm module. Err codemadness.org 70 i 66382 ABE reduces the amount of congestion window reduction in response to Err codemadness.org 70 i 66383 ECN-signalled congestion relative to the loss-inferred congestion response.

Err codemadness.org 70 i 66384 Err codemadness.org 70 i 66385

More details about ABE can be found in the Internet-Draft: Err codemadness.org 70 i 66386 https://tools.ietf.org/html/draft-ietf-tcpm-alternativebackoff-ecn

Err codemadness.org 70 i 66387 Err codemadness.org 70 i 66388

The implementation introduces four new sysctls:

Err codemadness.org 70 i 66389 Err codemadness.org 70 i 66390
    Err codemadness.org 70 i 66391
  • net.inet.tcp.cc.abe defaults to 0 (disabled) and can be set to non-zero to Err codemadness.org 70 i 66392 enable ABE for ECN-enabled TCP connections.

  • Err codemadness.org 70 i 66393
  • net.inet.tcp.cc.newreno.beta and net.inet.tcp.cc.newreno.betaecn set the Err codemadness.org 70 i 66394 multiplicative window decrease factor, specified as a percentage, applied to Err codemadness.org 70 i 66395 the congestion window in response to a loss-based or ECN-based congestion Err codemadness.org 70 i 66396 signal respectively. They default to the values specified in the draft i.e. Err codemadness.org 70 i 66397 beta=50 and betaecn=80.

  • Err codemadness.org 70 i 66398
  • net.inet.tcp.cc.abe_frlossreduce defaults to 0 (disabled) and can be set to Err codemadness.org 70 i 66399 non-zero to enable the use of standard beta (50% by default) when repairing Err codemadness.org 70 i 66400 loss during an ECN-signalled congestion recovery episode. It enables a more Err codemadness.org 70 i 66401 conservative congestion response and is provided for the purposes of Err codemadness.org 70 i 66402 experimentation as a result of some discussion at IETF 100 in Singapore.

  • Err codemadness.org 70 i 66403
Err codemadness.org 70 i 66404 Err codemadness.org 70 i 66405

The values of beta and betaecn can also be set per-connection by way of the Err codemadness.org 70 i 66406 TCPCCALGOOPT TCP-level socket option and the new CCNEWRENOBETA or Err codemadness.org 70 i 66407 CCNEWRENOBETA_ECN CC algo sub-options.

Err codemadness.org 70 i 66408 Err codemadness.org 70 i 66409

Submitted by: Tom Jones tj@enoti.me Err codemadness.org 70 i 66410 Tested by: Tom Jones tj@enoti.me, Grenville Armitage garmitage@swin.edu.au Err codemadness.org 70 i 66411 Relnotes: Yes Err codemadness.org 70 i 66412 Differential Revision: https://reviews.freebsd.org/D11616 Err codemadness.org 70 i 66413 ```

Err codemadness.org 70 i 66414 Err codemadness.org 70 i 66415


Err codemadness.org 70 i 66416 Err codemadness.org 70 i 66417

Meltdown-mitigation syspatch/errata now available

Err codemadness.org 70 i 66418 Err codemadness.org 70 i 66419
Err codemadness.org 70 i 66420

The recent changes in -current mitigating the Meltdown vulnerability have been backported to the 6.1 and 6.2 (amd64) releases, and the syspatch update (for 6.2) is now available.

Err codemadness.org 70 i 66421
Err codemadness.org 70 i 66422 Err codemadness.org 70 i 66423
    Err codemadness.org 70 i 66424
  • 6.1
  • Err codemadness.org 70 i 66425
Err codemadness.org 70 i 66426 Err codemadness.org 70 i 66427

``` Err codemadness.org 70 i 66428 Changes by: bluhm@cvs.openbsd.org 2018/02/26 05:36:18 Err codemadness.org 70 i 66429 Log message: Err codemadness.org 70 i 66430 Implement a workaround against the Meltdown flaw in Intel CPUs. Err codemadness.org 70 i 66431 The following changes have been backported from OpenBSD -current.

Err codemadness.org 70 i 66432 Err codemadness.org 70 i 66433

Changes by: guenther@cvs.openbsd.org 2018/01/06 15:03:13 Err codemadness.org 70 i 66434 Log message: Err codemadness.org 70 i 66435 Handle %gs like %[def]s and reset set it in cpu_switchto() instead of on Err codemadness.org 70 i 66436 every return to userspace.

Err codemadness.org 70 i 66437 Err codemadness.org 70 i 66438

Changes by: mlarkin@cvs.openbsd.org 2018/01/06 18:08:20 Err codemadness.org 70 i 66439 Log message: Err codemadness.org 70 i 66440 Add identcpu.c and specialreg.h definitions for the new Intel/AMD MSRs Err codemadness.org 70 i 66441 that should help mitigate spectre. This is just the detection piece, these Err codemadness.org 70 i 66442 features are not yet used. Err codemadness.org 70 i 66443 Part of a larger ongoing effort to mitigate meltdown/spectre. i386 will Err codemadness.org 70 i 66444 come later; it needs some machdep.c cleanup first.

Err codemadness.org 70 i 66445 Err codemadness.org 70 i 66446

Changes by: mlarkin@cvs.openbsd.org 2018/01/07 12:56:19 Err codemadness.org 70 i 66447 Log message: Err codemadness.org 70 i 66448 remove all PG_G global page mappings from the kernel when running on Err codemadness.org 70 i 66449 Intel CPUs. Part of an ongoing set of commits to mitigate the Intel Err codemadness.org 70 i 66450 "meltdown" CVE. This diff does not confer any immunity to that Err codemadness.org 70 i 66451 vulnerability - subsequent commits are still needed and are being Err codemadness.org 70 i 66452 worked on presently. Err codemadness.org 70 i 66453 ok guenther, deraadt

Err codemadness.org 70 i 66454 Err codemadness.org 70 i 66455

Changes by: mlarkin@cvs.openbsd.org 2018/01/12 01:21:30 Err codemadness.org 70 i 66456 Log message: Err codemadness.org 70 i 66457 IBRS -> IBRS,IBPB in identifycpu lines

Err codemadness.org 70 i 66458 Err codemadness.org 70 i 66459

Changes by: guenther@cvs.openbsd.org 2018/02/21 12:24:15 Err codemadness.org 70 i 66460 Log message: Err codemadness.org 70 i 66461 Meltdown: implement user/kernel page table separation. Err codemadness.org 70 i 66462 On Intel CPUs which speculate past user/supervisor page permission checks, Err codemadness.org 70 i 66463 use a separate page table for userspace with only the minimum of kernel code Err codemadness.org 70 i 66464 and data required for the transitions to/from the kernel (still marked as Err codemadness.org 70 i 66465 supervisor-only, of course): Err codemadness.org 70 i 66466 - the IDT (RO) Err codemadness.org 70 i 66467 - three pages of kernel text in the .kutext section for interrupt, trap, Err codemadness.org 70 i 66468 and syscall trampoline code (RX) Err codemadness.org 70 i 66469 - one page of kernel data in the .kudata section for TLB flush IPIs (RW) Err codemadness.org 70 i 66470 - the lapic page (RW, uncachable) Err codemadness.org 70 i 66471 - per CPU: one page for the TSS+GDT (RO) and one page for trampoline Err codemadness.org 70 i 66472 stacks (RW) Err codemadness.org 70 i 66473 When a syscall, trap, or interrupt takes a CPU from userspace to kernel the Err codemadness.org 70 i 66474 trampoline code switches page tables, switches stacks to the thread's real Err codemadness.org 70 i 66475 kernel stack, then copies over the necessary bits from the trampoline stack. Err codemadness.org 70 i 66476 On return to userspace the opposite occurs: recreate the iretq frame on the Err codemadness.org 70 i 66477 trampoline stack, switch stack, switch page tables, and return to userspace. Err codemadness.org 70 i 66478 mlarkin@ implemented the pmap bits and did 90% of the debugging, diagnosing Err codemadness.org 70 i 66479 issues on MP in particular, and drove the final push to completion. Err codemadness.org 70 i 66480 Many rounds of testing by naddy@, sthen@, and others Err codemadness.org 70 i 66481 Thanks to Alex Wilson from Joyent for early discussions about trampolines Err codemadness.org 70 i 66482 and their data requirements. Err codemadness.org 70 i 66483 Per-CPU page layout mostly inspired by DragonFlyBSD. Err codemadness.org 70 i 66484 ok mlarkin@ deraadt@

Err codemadness.org 70 i 66485 Err codemadness.org 70 i 66486

Changes by: bluhm@cvs.openbsd.org 2018/02/22 13:18:59 Err codemadness.org 70 i 66487 Log message: Err codemadness.org 70 i 66488 The GNU assembler does not understand 1ULL, so replace the constant Err codemadness.org 70 i 66489 with 1. Then it compiles with gcc, sign and size do not matter Err codemadness.org 70 i 66490 here.

Err codemadness.org 70 i 66491 Err codemadness.org 70 i 66492

Changes by: bluhm@cvs.openbsd.org 2018/02/22 13:27:14 Err codemadness.org 70 i 66493 Log message: Err codemadness.org 70 i 66494 The compile time assertion for cpu info did not work with gcc. Err codemadness.org 70 i 66495 Rephrase the condition in a way that both gcc and clang accept it.

Err codemadness.org 70 i 66496 Err codemadness.org 70 i 66497

Changes by: guenther@cvs.openbsd.org 2018/02/22 13:36:40 Err codemadness.org 70 i 66498 Log message: Err codemadness.org 70 i 66499 Set the PG_G (global) bit on the special page table entries that are shared Err codemadness.org 70 i 66500 between the u-k and u+k tables, because they're actually in all tables.

Err codemadness.org 70 i 66501 Err codemadness.org 70 i 66502

OpenBSD 6.1 errata 037 Err codemadness.org 70 i 66503 ```

Err codemadness.org 70 i 66504 Err codemadness.org 70 i 66505
    Err codemadness.org 70 i 66506
  • 6.2
  • Err codemadness.org 70 i 66507
Err codemadness.org 70 i 66508 Err codemadness.org 70 i 66509

``` Err codemadness.org 70 i 66510 Changes by: bluhm@cvs.openbsd.org 2018/02/26 05:29:48 Err codemadness.org 70 i 66511 Log message: Err codemadness.org 70 i 66512 Implement a workaround against the Meltdown flaw in Intel CPUs. Err codemadness.org 70 i 66513 The following changes have been backported from OpenBSD -current.

Err codemadness.org 70 i 66514 Err codemadness.org 70 i 66515

Changes by: guenther@cvs.openbsd.org 2018/01/06 15:03:13 Err codemadness.org 70 i 66516 Log message: Err codemadness.org 70 i 66517 Handle %gs like %[def]s and reset set it in cpu_switchto() instead of on Err codemadness.org 70 i 66518 every return to userspace.

Err codemadness.org 70 i 66519 Err codemadness.org 70 i 66520

Changes by: mlarkin@cvs.openbsd.org 2018/01/06 18:08:20 Err codemadness.org 70 i 66521 Log message: Err codemadness.org 70 i 66522 Add identcpu.c and specialreg.h definitions for the new Intel/AMD MSRs Err codemadness.org 70 i 66523 that should help mitigate spectre. This is just the detection piece, these Err codemadness.org 70 i 66524 features are not yet used. Err codemadness.org 70 i 66525 Part of a larger ongoing effort to mitigate meltdown/spectre. i386 will Err codemadness.org 70 i 66526 come later; it needs some machdep.c cleanup first.

Err codemadness.org 70 i 66527 Err codemadness.org 70 i 66528

Changes by: mlarkin@cvs.openbsd.org 2018/01/07 12:56:19 Err codemadness.org 70 i 66529 Log message: Err codemadness.org 70 i 66530 remove all PG_G global page mappings from the kernel when running on Err codemadness.org 70 i 66531 Intel CPUs. Part of an ongoing set of commits to mitigate the Intel Err codemadness.org 70 i 66532 "meltdown" CVE. This diff does not confer any immunity to that Err codemadness.org 70 i 66533 vulnerability - subsequent commits are still needed and are being Err codemadness.org 70 i 66534 worked on presently.

Err codemadness.org 70 i 66535 Err codemadness.org 70 i 66536

Changes by: mlarkin@cvs.openbsd.org 2018/01/12 01:21:30 Err codemadness.org 70 i 66537 Log message: Err codemadness.org 70 i 66538 IBRS -> IBRS,IBPB in identifycpu lines

Err codemadness.org 70 i 66539 Err codemadness.org 70 i 66540

Changes by: guenther@cvs.openbsd.org 2018/02/21 12:24:15 Err codemadness.org 70 i 66541 Log message: Err codemadness.org 70 i 66542 Meltdown: implement user/kernel page table separation. Err codemadness.org 70 i 66543 On Intel CPUs which speculate past user/supervisor page permission checks, Err codemadness.org 70 i 66544 use a separate page table for userspace with only the minimum of kernel code Err codemadness.org 70 i 66545 and data required for the transitions to/from the kernel (still marked as Err codemadness.org 70 i 66546 supervisor-only, of course): Err codemadness.org 70 i 66547 - the IDT (RO) Err codemadness.org 70 i 66548 - three pages of kernel text in the .kutext section for interrupt, trap, Err codemadness.org 70 i 66549 and syscall trampoline code (RX) Err codemadness.org 70 i 66550 - one page of kernel data in the .kudata section for TLB flush IPIs (RW) Err codemadness.org 70 i 66551 - the lapic page (RW, uncachable) Err codemadness.org 70 i 66552 - per CPU: one page for the TSS+GDT (RO) and one page for trampoline Err codemadness.org 70 i 66553 stacks (RW) Err codemadness.org 70 i 66554 When a syscall, trap, or interrupt takes a CPU from userspace to kernel the Err codemadness.org 70 i 66555 trampoline code switches page tables, switches stacks to the thread's real Err codemadness.org 70 i 66556 kernel stack, then copies over the necessary bits from the trampoline stack. Err codemadness.org 70 i 66557 On return to userspace the opposite occurs: recreate the iretq frame on the Err codemadness.org 70 i 66558 trampoline stack, switch stack, switch page tables, and return to userspace. Err codemadness.org 70 i 66559 mlarkin@ implemented the pmap bits and did 90% of the debugging, diagnosing Err codemadness.org 70 i 66560 issues on MP in particular, and drove the final push to completion. Err codemadness.org 70 i 66561 Many rounds of testing by naddy@, sthen@, and others Err codemadness.org 70 i 66562 Thanks to Alex Wilson from Joyent for early discussions about trampolines Err codemadness.org 70 i 66563 and their data requirements. Err codemadness.org 70 i 66564 Per-CPU page layout mostly inspired by DragonFlyBSD.

Err codemadness.org 70 i 66565 Err codemadness.org 70 i 66566

Changes by: bluhm@cvs.openbsd.org 2018/02/22 13:18:59 Err codemadness.org 70 i 66567 Log message: Err codemadness.org 70 i 66568 The GNU assembler does not understand 1ULL, so replace the constant Err codemadness.org 70 i 66569 with 1. Then it compiles with gcc, sign and size do not matter Err codemadness.org 70 i 66570 here.

Err codemadness.org 70 i 66571 Err codemadness.org 70 i 66572

Changes by: bluhm@cvs.openbsd.org 2018/02/22 13:27:14 Err codemadness.org 70 i 66573 Log message: Err codemadness.org 70 i 66574 The compile time assertion for cpu info did not work with gcc. Err codemadness.org 70 i 66575 Rephrase the condition in a way that both gcc and clang accept it.

Err codemadness.org 70 i 66576 Err codemadness.org 70 i 66577

Changes by: guenther@cvs.openbsd.org 2018/02/22 13:36:40 Err codemadness.org 70 i 66578 Log message: Err codemadness.org 70 i 66579 Set the PG_G (global) bit on the special page table entries that are shared Err codemadness.org 70 i 66580 between the u-k and u+k tables, because they're actually in all tables.

Err codemadness.org 70 i 66581 Err codemadness.org 70 i 66582

OpenBSD 6.2 errata 009 Err codemadness.org 70 i 66583 ```

Err codemadness.org 70 i 66584 Err codemadness.org 70 i 66585
    Err codemadness.org 70 i 66586
  • syspatch
  • Err codemadness.org 70 i 66587
Err codemadness.org 70 i 66588 Err codemadness.org 70 i 66589


Err codemadness.org 70 i 66590 Err codemadness.org 70 i 66591

iXsystems

Err codemadness.org 70 i 66592 Err codemadness.org 70 i 66593

a2k18 Hackathon Report: Ken Westerback on dhclient and more

Err codemadness.org 70 i 66594 Err codemadness.org 70 i 66595
Err codemadness.org 70 i 66596

Ken Westerback (krw@) has sent in the first report from the (recently concluded) a2k18 hackathon:

Err codemadness.org 70 i 66597
Err codemadness.org 70 i 66598 Err codemadness.org 70 i 66599
    Err codemadness.org 70 i 66600
  • YYZ -> YVR -> MEL -> ZQN -> CHC -> DUD -> WLG -> AKL -> SYD -> BNE -> YVR -> YYZ

  • Err codemadness.org 70 i 66601
  • For those of you who don’t speak Airport code:

  • Err codemadness.org 70 i 66602
  • Toronto -> Vancouver -> Melbourne -> Queenstown -> Christchurch -> Dunedin
  • Err codemadness.org 70 i 66603
  • Then: Dunedin -> Wellington -> Auckland -> Sydney -> Brisbane -> Vancouver -> Toronto
  • Err codemadness.org 70 i 66604
Err codemadness.org 70 i 66605 Err codemadness.org 70 i 66606

```

Err codemadness.org 70 i 66607 Err codemadness.org 70 i 66608

Whew.

Err codemadness.org 70 i 66609 Err codemadness.org 70 i 66610

Once in Dunedin the hacking commenced. The background was a regular tick of new meltdown diffs to test in addition to whatever work one was actually engaged in. I was lucky (?) in that none of the problems with the various versions cropped up on my laptop. Err codemadness.org 70 i 66611 ```

Err codemadness.org 70 i 66612 Err codemadness.org 70 i 66613

``` Err codemadness.org 70 i 66614 I worked with rpe@ and tb@ to make the install script create the 'correct' FQDN when dhclient was involved. I worked with tb@ on some code cleanup in various bits of the base. dhclient(8) got some nice cleanup, further pruning/improving log messages in particular. In addition the oddball -q option was flipped into the more normal -v. I.e. be quiet by default and verbose on request.

Err codemadness.org 70 i 66615 Err codemadness.org 70 i 66616

More substantially the use of recorded leases was made less intrusive by avoiding continual reconfiguration of the interface with the same information. The 'request', 'require' and 'ignore' dhclient.conf(5) statement were changed so they are cumulative, making it easier to build longer lists of affected options.

Err codemadness.org 70 i 66617 Err codemadness.org 70 i 66618

I tweaked softraid(4) to remove a handrolled version of duid_format().

Err codemadness.org 70 i 66619 Err codemadness.org 70 i 66620

I sprinkled a couple of M_WAITOK into amd64 and i386 mpbios to document that there is really no need to check for NULL being returned from some malloc() calls.

Err codemadness.org 70 i 66621 Err codemadness.org 70 i 66622

I continued to help test the new filesystem quiescing logic that deraadt@ committed during the hackathon.

Err codemadness.org 70 i 66623 Err codemadness.org 70 i 66624

I only locked myself out of my room once!

Err codemadness.org 70 i 66625 Err codemadness.org 70 i 66626

Fueled by the excellent coffee from local institutions The Good Earth Cafe and The Good Oil Cafe, and the excellent hacking facilities and accommodations at the University of Otago it was another enjoyable and productive hackathon south of the equator. And I even saw penguins.

Err codemadness.org 70 i 66627 Err codemadness.org 70 i 66628

Thanks to Jim Cheetham and the support from the project and the OpenBSD Foundation that made it all possible Err codemadness.org 70 i 66629 ```

Err codemadness.org 70 i 66630 Err codemadness.org 70 i 66631


Err codemadness.org 70 i 66632 Err codemadness.org 70 i 66633

Poetic License

Err codemadness.org 70 i 66634 Err codemadness.org 70 i 66635
Err codemadness.org 70 i 66636

I found this when going through old documents. It looks like I wrote it and never posted it. Perhaps I didn’t consider it finished at the time. But looking at it now, I think it’s good enough to share. It’s a redrafting of the BSD licence, in poetic form. Maybe I had plans to do other licences one day; I can’t remember.

Err codemadness.org 70 i 66637 Err codemadness.org 70 i 66638

I’ve interleaved it with the original license text so you can see how true, or otherwise, I’ve been to it. Enjoy :-)

Err codemadness.org 70 i 66639
Err codemadness.org 70 i 66640 Err codemadness.org 70 i 66641

``` Err codemadness.org 70 i 66642 Copyright (c) , Err codemadness.org 70 i 66643 All rights reserved.

Err codemadness.org 70 i 66644 Err codemadness.org 70 i 66645

Redistribution and use in source and binary forms, with or without Err codemadness.org 70 i 66646 modification, are permitted provided that the following conditions Err codemadness.org 70 i 66647 are met: Err codemadness.org 70 i 66648 ```

Err codemadness.org 70 i 66649 Err codemadness.org 70 i 66650
Err codemadness.org 70 i 66651

You may redistribute and use – Err codemadness.org 70 i 66652 as source or binary, as you choose, Err codemadness.org 70 i 66653 and with some changes or without – Err codemadness.org 70 i 66654 this software; let there be no doubt. Err codemadness.org 70 i 66655 But you must meet conditions three, Err codemadness.org 70 i 66656 if in compliance you wish to be.

Err codemadness.org 70 i 66657
Err codemadness.org 70 i 66658 Err codemadness.org 70 i 66659

Err codemadness.org 70 i 66660 1. Redistributions of source code must retain the above copyright Err codemadness.org 70 i 66661 notice, this list of conditions and the following disclaimer. Err codemadness.org 70 i 66662 2. Redistributions in binary form must reproduce the above copyright Err codemadness.org 70 i 66663 notice, this list of conditions and the following disclaimer in the Err codemadness.org 70 i 66664 documentation and/or other materials provided with the distribution. Err codemadness.org 70 i 66665 3. Neither the name of the nor the names of its Err codemadness.org 70 i 66666 contributors may be used to endorse or promote products derived Err codemadness.org 70 i 66667 from this software without specific prior written permission. Err codemadness.org 70 i 66668

Err codemadness.org 70 i 66669 Err codemadness.org 70 i 66670
Err codemadness.org 70 i 66671

The first is obvious, of course – Err codemadness.org 70 i 66672 To keep this text within the source. Err codemadness.org 70 i 66673 The second is for binaries Err codemadness.org 70 i 66674 Place in the docs a copy, please. Err codemadness.org 70 i 66675 A moral lesson from this ode – Err codemadness.org 70 i 66676 Don’t strip the copyright on code.

Err codemadness.org 70 i 66677 Err codemadness.org 70 i 66678

The third applies when you promote: Err codemadness.org 70 i 66679 You must not take, from us who wrote, Err codemadness.org 70 i 66680 our names and make it seem as true Err codemadness.org 70 i 66681 we like or love your version too. Err codemadness.org 70 i 66682 (Unless, of course, you contact us Err codemadness.org 70 i 66683 And get our written assensus.)

Err codemadness.org 70 i 66684
Err codemadness.org 70 i 66685 Err codemadness.org 70 i 66686

Err codemadness.org 70 i 66687 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS Err codemadness.org 70 i 66688 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT Err codemadness.org 70 i 66689 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS Err codemadness.org 70 i 66690 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE Err codemadness.org 70 i 66691 COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, Err codemadness.org 70 i 66692 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, Err codemadness.org 70 i 66693 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; Err codemadness.org 70 i 66694 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER Err codemadness.org 70 i 66695 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT Err codemadness.org 70 i 66696 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN Err codemadness.org 70 i 66697 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE Err codemadness.org 70 i 66698 POSSIBILITY OF SUCH DAMAGE. Err codemadness.org 70 i 66699

Err codemadness.org 70 i 66700 Err codemadness.org 70 i 66701
Err codemadness.org 70 i 66702

One final point to be laid out Err codemadness.org 70 i 66703 (You must forgive my need to shout): Err codemadness.org 70 i 66704 THERE IS NO WARRANTY FOR THIS Err codemadness.org 70 i 66705 WHATEVER THING MAY GO AMISS. Err codemadness.org 70 i 66706 EXPRESS, IMPLIED, IT’S ALL THE SAME – Err codemadness.org 70 i 66707 RESPONSIBILITY DISCLAIMED.

Err codemadness.org 70 i 66708 Err codemadness.org 70 i 66709

WE ARE NOT LIABLE FOR LOSS Err codemadness.org 70 i 66710 NO MATTER HOW INCURRED THE COST Err codemadness.org 70 i 66711 THE TYPE OR STYLE OF DAMAGE DONE Err codemadness.org 70 i 66712 WHATE’ER THE LEGAL THEORY SPUN. Err codemadness.org 70 i 66713 THIS STILL REMAINS AS TRUE IF YOU Err codemadness.org 70 i 66714 INFORM US WHAT YOU PLAN TO DO.

Err codemadness.org 70 i 66715 Err codemadness.org 70 i 66716

When all is told, we sum up thus – Err codemadness.org 70 i 66717 Do what you like, just don’t sue us.

Err codemadness.org 70 i 66718
Err codemadness.org 70 i 66719 Err codemadness.org 70 i 66720


Err codemadness.org 70 i 66721 Err codemadness.org 70 i 66722


Err codemadness.org 70 i 66723 Err codemadness.org 70 i 66724

Beastie Bits

Err codemadness.org 70 i 66725 Err codemadness.org 70 i 66726 Err codemadness.org 70 i 66734 Err codemadness.org 70 i 66735


Err codemadness.org 70 i 66736 Err codemadness.org 70 i 66737

Tarsnap ad

Err codemadness.org 70 i 66738 Err codemadness.org 70 i 66739


Err codemadness.org 70 i 66740 Err codemadness.org 70 i 66741

Feedback/Questions

Err codemadness.org 70 i 66742 Err codemadness.org 70 i 66743 Err codemadness.org 70 i 66750 Err codemadness.org 70 i 66751


Err codemadness.org 70 i 66752 Err codemadness.org 70 i 66753
    Err codemadness.org 70 i 66754
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 66755
Err codemadness.org 70 i 66756 Err codemadness.org 70 i 66757


]]> Err codemadness.org 70 i 66758
Err codemadness.org 70 i 66759 Err codemadness.org 70 i 66760 OpenBSD firewalling Windows 10, NetBSD’s return to ptrace, TCP Alternative Backoff, the BSD Poetic license, and AsiaBSDcon 2018 videos available.

Err codemadness.org 70 i 66761 Err codemadness.org 70 i 66762

RSS Feeds:

Err codemadness.org 70 i 66763 Err codemadness.org 70 i 66764

MP3 Feed | iTunes Feed | HD Vid Feed | HD Torrent Feed

Err codemadness.org 70 i 66765 Err codemadness.org 70 i 66766

Become a supporter on Patreon:

Err codemadness.org 70 i 66767 Err codemadness.org 70 i 66768

Patreon

Err codemadness.org 70 i 66769 Err codemadness.org 70 i 66770

- Show Notes: -

Err codemadness.org 70 i 66771 Err codemadness.org 70 i 66772

Headlines

Err codemadness.org 70 i 66773 Err codemadness.org 70 i 66774

Preventing Windows 10 and untrusted software from having full access to the internet using OpenBSD

Err codemadness.org 70 i 66775 Err codemadness.org 70 i 66776
Err codemadness.org 70 i 66777

Whilst setting up one of my development laptops to port some software to Windows I noticed Windows 10 doing crazy things like installing or updating apps and games by default after initial setup. The one I noticed in particular was Candy Crush Soda Saga which for those who don't know of it is some cheesy little puzzle game originally for consumer devices. I honestly did not want software like this near to a development machine. It has also been reported that Windows 10 now also updates core system software without notifying the user. Surely this destroys any vaguely deterministic behaviour, in my opinion making Windows 10 by default almost useless for development testbeds.

Err codemadness.org 70 i 66778 Err codemadness.org 70 i 66779

Deciding instead to start from scratch but this time to set the inbuilt Windows Firewall to be very restrictive and only allow a few select programs to communicate. In this case all I really needed to be online was Firefox, Subversion and Putty. To my amusement (and astonishment) I found out that the Windows firewall could be modified to give access very easily by programs during installation (usually because this task needs to be done with admin privileges). It also seems that Windows store Apps can change the windows firewall settings at any point. One way to get around this issue could be to install a 3rd party firewall that most software will not have knowledge about and thus not attempt to break through. However the only decent firewall I have used was Sygate Pro which unfortunately is no longer supported by recent operating systems. The last supported versions was 2003, XP and 2000. In short, I avoid 3rd party firewalls.

Err codemadness.org 70 i 66780 Err codemadness.org 70 i 66781

Instead I decided to trap Windows 10 (and all of it's rogue updaters) behind a virtual machine running OpenBSD. This effectively provided me with a full blown firewall appliance. From here I could then allow specific software I trusted through the firewall (via a proxy) in a safe, controlled and deterministic manner. For other interested developers (and security conscious users) and for my own reference, I have listed the steps taken here:

Err codemadness.org 70 i 66782
Err codemadness.org 70 i 66783 Err codemadness.org 70 i 66784
    Err codemadness.org 70 i 66785
  • 1) First and foremost disable the Windows DHCP service - this is so no IP can be obtained on any interface. This effectively stops any communication with any network on the host system. This can be done by running services.msc with admin privileges and stopping and disabling the service called DHCP Client.

  • Err codemadness.org 70 i 66786
  • 2) Install or enable your favorite virtualization software - I have tested this with both VirtualBox and Hyper-V. Note that on non-server versions of Windows, in order to get Hyper-V working, your processor also needs to support SLAT which is daft so to avoid faffing about, I recommend using VirtualBox to get round this seemingly arbitrary restriction.

  • Err codemadness.org 70 i 66787
  • 3) Install OpenBSD on the VM - Note, if you decide to use Hyper-V, its hardware support isn't 100% perfect to run OpenBSD and you will need to disable a couple of things in the kernel. At the initial boot prompt, run the following commands.

  • Err codemadness.org 70 i 66788
Err codemadness.org 70 i 66789 Err codemadness.org 70 i 66790

Err codemadness.org 70 i 66791 config -e -o /bsd /bsd Err codemadness.org 70 i 66792 disable acpi Err codemadness.org 70 i 66793 disable mpbios Err codemadness.org 70 i 66794

Err codemadness.org 70 i 66795 Err codemadness.org 70 i 66796
    Err codemadness.org 70 i 66797
  • 4) Add a host only virtual adapter to the VM - This is the one which we are going to connect through the VM with. Look at the IP that VirtualBox assigns this in network manager on the host machine. Mine was [b]192.168.56.1[/b]. Set up the adapter in the OpenBSD VM to have a static address on the same subnet. For example [b]192.168.56.2[/b]. If you are using Hyper-V and OpenBSD, make sure you add a "Legacy Interface" because no guest additions are available. Then set up a virtual switch which is host only.

  • Err codemadness.org 70 i 66798
  • 5) Add a bridged adapter to the VM - then assign it to whichever interface you wanted to connect to the external network with. Note that if using Wireless, set the bridged adapters MAC address to the same as your physical device or the access point will reject it. This is not needed (or possible) on Hyper-V because the actual device is "shared" rather than bridged so the same MAC address is used. Again, if you use Hyper-V, then add another virtual switch and attach it to your chosen external interface. VMs in Hyper-V "share" an adapter within a virtual switch and there is the option to also disable the hosts ability to use this interface at the same time which is fine for an additional level of security if those pesky rogue apps and updaters can also enable / disable DHCP service one day which wouldn't be too surprising.

  • Err codemadness.org 70 i 66799
  • 6) Connect to your network in the host OS - In case of Wireless, select the correct network from the list and type in a password if needed. Windows will probably say "no internet available", it also does not assign an IP address which is fine.

  • Err codemadness.org 70 i 66800
  • 7) Install the Squid proxy package on the OpenBSD guest and enable the daemon

  • Err codemadness.org 70 i 66801
Err codemadness.org 70 i 66802 Err codemadness.org 70 i 66803

```

Err codemadness.org 70 i 66804 Err codemadness.org 70 i 66805

pkg_add squid

Err codemadness.org 70 i 66806 Err codemadness.org 70 i 66807

echo 'squid_flags=""' >> /etc/rc.conf.local

Err codemadness.org 70 i 66808 Err codemadness.org 70 i 66809

/etc/rc.d/squid start

Err codemadness.org 70 i 66810 Err codemadness.org 70 i 66811

```

Err codemadness.org 70 i 66812 Err codemadness.org 70 i 66813
Err codemadness.org 70 i 66814

We will use this service for a limited selection of "safe and trusted" programs to connect to the outside world from within the Windows 10 host. You can also use putty on the host to connect to the VM via SSH and create a SOCKS proxy which software like Firefox can also use to connect externally.

Err codemadness.org 70 i 66815
Err codemadness.org 70 i 66816 Err codemadness.org 70 i 66817
    Err codemadness.org 70 i 66818
  • 8) Configure the software you want to be able to access the external network with

    Err codemadness.org 70 i 66819 Err codemadness.org 70 i 66820
    • Firefox - go to the connection settings and specify the VMs IP address for the proxy.
    • Err codemadness.org 70 i 66821
    • Subversion - modify the %HOME%\AppData\Roaming\Subversion\servers file and change the HTTP proxy field to the VMs IP. This is important to communicate with GitHub via https:// (Yes, GitHub also supports Subversion). For svn:// addresses you can use Putty to port forward.
    • Err codemadness.org 70 i 66822
    • Chromium/Chrome - unfortunately uses the global Windows proxy settings which defeats much of the purpose of this exercise if we were going to allow all of Windows access to the internet via the proxy. It would become mayhem again. However we can still use Putty to create a SOCKS proxy and then launch the browser with the following flags:
  • Err codemadness.org 70 i 66823
Err codemadness.org 70 i 66824 Err codemadness.org 70 i 66825

Err codemadness.org 70 i 66826 --proxy-server="socks5://<VM IP>:<SOCKS PORT>" Err codemadness.org 70 i 66827 --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE <VM IP>" Err codemadness.org 70 i 66828

Err codemadness.org 70 i 66829 Err codemadness.org 70 i 66830
    Err codemadness.org 70 i 66831
  • 9) Congratulations, you are now done - Admittedly this process can be a bit fiddly to set up but it completely prevents Windows 10 from making a complete mess. This solution is probably also useful for those who like privacy or don't like the idea of their software "phoning home". Hope you find this useful and if you have any issues, please feel free to leave questions in the comments.
  • Err codemadness.org 70 i 66832
Err codemadness.org 70 i 66833 Err codemadness.org 70 i 66834


Err codemadness.org 70 i 66835 Err codemadness.org 70 i 66836

LLDB restoration and return to ptrace(2)

Err codemadness.org 70 i 66837 Err codemadness.org 70 i 66838
Err codemadness.org 70 i 66839

I've managed to unbreak the LLDB debugger as much as possible with the current kernel and hit problems with ptrace(2) that are causing issues with further work on proper NetBSD support. Meanwhile, I've upstreamed all the planned NetBSD patches to sanitizers and helped other BSDs to gain better or initial support.

Err codemadness.org 70 i 66840
Err codemadness.org 70 i 66841 Err codemadness.org 70 i 66842
    Err codemadness.org 70 i 66843
  • LLDB
  • Err codemadness.org 70 i 66844
Err codemadness.org 70 i 66845 Err codemadness.org 70 i 66846
Err codemadness.org 70 i 66847

Since the last time I worked on LLDB, we have introduced many changes to the kernel interfaces (most notably related to signals) that apparently fixed some bugs in Go and introduced regressions in ptrace(2). Part of the regressions were noted by the existing ATF tests. However, the breakage was only marked as a new problem to resolve. For completeness, the ptrace(2) code was also cleaned up by Christos Zoulas, and we fixed some bugs with compat32.

Err codemadness.org 70 i 66848 Err codemadness.org 70 i 66849

I've fixed a crash in *NetBSD::Factory::Launch(), triggered on startup of the lldb-server application.

Err codemadness.org 70 i 66850 Err codemadness.org 70 i 66851

Here is the commit message:

Err codemadness.org 70 i 66852
Err codemadness.org 70 i 66853 Err codemadness.org 70 i 66854

``` Err codemadness.org 70 i 66855 We cannot call process_up->SetState() inside Err codemadness.org 70 i 66856 the NativeProcessNetBSD::Factory::Launch Err codemadness.org 70 i 66857 function because it triggers a NULL pointer Err codemadness.org 70 i 66858 deference.

Err codemadness.org 70 i 66859 Err codemadness.org 70 i 66860

The generic code for launching a process in: Err codemadness.org 70 i 66861 GDBRemoteCommunicationServerLLGS::LaunchProcess Err codemadness.org 70 i 66862 sets the mdebuggedprocessup pointer after Err codemadness.org 70 i 66863 a successful call to mprocessfactory.Launch(). Err codemadness.org 70 i 66864 If we attempt to call processup->SetState() Err codemadness.org 70 i 66865 inside a platform specific Launch function we Err codemadness.org 70 i 66866 end up dereferencing a NULL pointer in Err codemadness.org 70 i 66867 NativeProcessProtocol::GetCurrentThreadID().

Err codemadness.org 70 i 66868 Err codemadness.org 70 i 66869

Use the proper call processup->SetState(,false) Err codemadness.org 70 i 66870 that sets notifydelegates to false. Err codemadness.org 70 i 66871 ```

Err codemadness.org 70 i 66872 Err codemadness.org 70 i 66873
    Err codemadness.org 70 i 66874
  • Sanitizers
  • Err codemadness.org 70 i 66875
Err codemadness.org 70 i 66876 Err codemadness.org 70 i 66877
Err codemadness.org 70 i 66878

I suspended development of new features in sanitizers last month, but I was still in the process of upstreaming of local patches. This process was time-consuming as it required rebasing patches, adding dedicated tests, and addressing all other requests and comments from the upstream developers.

Err codemadness.org 70 i 66879 Err codemadness.org 70 i 66880

I'm not counting hot fixes, as some changes were triggering build or test issues on !NetBSD hosts. Thankfully all these issues were addressed quickly. The final result is a reduction of local delta size of almost 1MB to less than 100KB (1205 lines of diff). The remaining patches are rescheduled for later, mostly because they depend on extra work with cross-OS tests and prior integration of sanitizers with the basesystem distribution. I didn't want to put extra work here in the current state of affairs and, I've registered as a mentor for Google Summer of Code for the NetBSD Foundation and prepared Software Quality improvement tasks in order to outsource part of the labour.

Err codemadness.org 70 i 66881
Err codemadness.org 70 i 66882 Err codemadness.org 70 i 66883
    Err codemadness.org 70 i 66884
  • Userland changes
  • Err codemadness.org 70 i 66885
Err codemadness.org 70 i 66886 Err codemadness.org 70 i 66887
Err codemadness.org 70 i 66888

I've also improved documentation for some of the features of NetBSD, described in man-pages. These pieces of information were sometimes wrong or incomplete, and this makes covering the NetBSD system with features such as sanitizers harder as there is a mismatch between the actual code and the documented code.

Err codemadness.org 70 i 66889 Err codemadness.org 70 i 66890

Some pieces of software also require better namespacing support, these days mostly for the POSIX standard. I've fixed few low-hanging fruits there and requested pullups to NetBSD-8(BETA).

Err codemadness.org 70 i 66891 Err codemadness.org 70 i 66892

I thank the developers for improving the landed code in order to ship the best solutions for users.

Err codemadness.org 70 i 66893
Err codemadness.org 70 i 66894 Err codemadness.org 70 i 66895
    Err codemadness.org 70 i 66896
  • BSD collaboration in LLVM
  • Err codemadness.org 70 i 66897
Err codemadness.org 70 i 66898 Err codemadness.org 70 i 66899
Err codemadness.org 70 i 66900

A One-man-show in human activity is usually less fun and productive than collaboration in a team. This is also true in software development. Last month I was helping as a reviewer to port LLVM features to FreeBSD and when possible to OpenBSD. This included MSan/FreeBSD, libFuzzer/FreeBSD, XRay/FreeBSD and UBSan/OpenBSD.

Err codemadness.org 70 i 66901 Err codemadness.org 70 i 66902

I've landed most of the submitted and reviewed code to the mainstream LLVM tree.

Err codemadness.org 70 i 66903 Err codemadness.org 70 i 66904

Part of the code also verified the correctness of NetBSD routes in the existing porting efforts and showed new options for improvement. This is the reason why I've landed preliminary XRay/NetBSD code and added missing NetBSD bits to ToolChain::getOSLibName(). The latter produced setup issues with the prebuilt LLVM toolchain, as the directory name with compiler-rt goodies were located in a path like ./lib/clang/7.0.0/lib/netbsd8.99.12 with a varying OS version. This could stop working after upgrades, so I've simplified it to "netbsd", similar to FreeBSD and Solaris.

Err codemadness.org 70 i 66905
Err codemadness.org 70 i 66906 Err codemadness.org 70 i 66907
    Err codemadness.org 70 i 66908
  • Prebuilt toolchain for testers
  • Err codemadness.org 70 i 66909
Err codemadness.org 70 i 66910 Err codemadness.org 70 i 66911
Err codemadness.org 70 i 66912

I've prepared a build of Clang/LLVM with LLDB and compiler-rt features prebuilt on NetBSD/amd64 v. 8.99.12:

Err codemadness.org 70 i 66913
Err codemadness.org 70 i 66914 Err codemadness.org 70 i 66915

llvm-clang-compilerrt-lldb-7.0.0beta_2018-02-28.tar.bz2

Err codemadness.org 70 i 66916 Err codemadness.org 70 i 66917
    Err codemadness.org 70 i 66918
  • Plan for the next milestone
  • Err codemadness.org 70 i 66919
Err codemadness.org 70 i 66920 Err codemadness.org 70 i 66921
Err codemadness.org 70 i 66922

With the approaching NetBSD 8.0 release I plan to finish backporting a few changes there from HEAD:

Err codemadness.org 70 i 66923
Err codemadness.org 70 i 66924 Err codemadness.org 70 i 66925
    Err codemadness.org 70 i 66926
  • Remove one unused feature from ptrace(2), PTSETSIGMASK & PTGETSIGMASK. I've originally introduced these operations with criu/rr-like software in mind, but they are misusing or even abusing ptrace(2) and are not regular process debuggers. I plan to remove this operation from HEAD and backport this to NetBSD-8(BETA), before the release, so no compat will be required for this call. Future ports of criu/rr should involve dedicated kernel support for such requirements. Err codemadness.org 70 i 66927 Finish the backport of UCMACHINE_FP() to NetBSD-8. This will allow use of the same code in sanitizers in HEAD and NetBSD-8.0.
  • Err codemadness.org 70 i 66928
  • By popular demand, improve the regnsub(3) and regasub(3) API, adding support for more or less substitutions than 10.
  • Err codemadness.org 70 i 66929
Err codemadness.org 70 i 66930 Err codemadness.org 70 i 66931
Err codemadness.org 70 i 66932

Once done, I will return to ptrace(2) debugging and corrections.

Err codemadness.org 70 i 66933
Err codemadness.org 70 i 66934 Err codemadness.org 70 i 66935


Err codemadness.org 70 i 66936 Err codemadness.org 70 i 66937

DigitalOcean

Err codemadness.org 70 i 66938 Err codemadness.org 70 i 66939

Working with the NetBSD kernel

Err codemadness.org 70 i 66940 Err codemadness.org 70 i 66941
    Err codemadness.org 70 i 66942
  • Overview
  • Err codemadness.org 70 i 66943
Err codemadness.org 70 i 66944 Err codemadness.org 70 i 66945
Err codemadness.org 70 i 66946

When working on complex systems, such as OS kernels, your attention span and cognitive energy are too valuable to be wasted on inefficiencies pertaining to ancillary tasks. After experimenting with different environmental setups for kernel debugging, some of which were awkward and distracting from my main objectives, I have arrived to my current workflow, which is described here. This approach is mainly oriented towards security research and the study of kernel internals.

Err codemadness.org 70 i 66947 Err codemadness.org 70 i 66948

Before delving into the details, this is the general outline of my environment:

Err codemadness.org 70 i 66949 Err codemadness.org 70 i 66950

My host system runs Linux. My target system is a QEMU guest.

Err codemadness.org 70 i 66951 Err codemadness.org 70 i 66952

I’m tracing and debugging on my host system by attaching GDB (with NetBSD x86-64 ABI support) to QEMU’s built-in GDB server. Err codemadness.org 70 i 66953 I work with NetBSD-current. All sources are built on my host system with the cross-compilation toolchain produced by build.sh. Err codemadness.org 70 i 66954 I use NFS to share the source tree and the build artifacts between the target and the host. Err codemadness.org 70 i 66955 I find IDEs awkward, so for codebase navigation I mainly rely on vim, tmux and ctags. Err codemadness.org 70 i 66956 For non-intrusive instrumentation, such as figuring out control flow, I’m using dtrace.

Err codemadness.org 70 i 66957
Err codemadness.org 70 i 66958 Err codemadness.org 70 i 66959
    Err codemadness.org 70 i 66960
  • Preparing the host system

    Err codemadness.org 70 i 66961 Err codemadness.org 70 i 66962
    • QEMU
    • Err codemadness.org 70 i 66963
    • GDB
    • Err codemadness.org 70 i 66964
    • NFS Exports
  • Err codemadness.org 70 i 66965
  • Building NetBSD-current

  • Err codemadness.org 70 i 66966
  • A word of warning

    Err codemadness.org 70 i 66967 Err codemadness.org 70 i 66968
    • Now is a great time to familiarize yourself with the build.sh tool and its options. Be especially carefull with the following options:
  • Err codemadness.org 70 i 66969
Err codemadness.org 70 i 66970 Err codemadness.org 70 i 66971

Err codemadness.org 70 i 66972 -r Remove contents of TOOLDIR and DESTDIR before building. Err codemadness.org 70 i 66973 -u Set MKUPDATE=yes; do not run "make clean" first. Err codemadness.org 70 i 66974 Without this, everything is rebuilt, including the tools. Err codemadness.org 70 i 66975

Err codemadness.org 70 i 66976 Err codemadness.org 70 i 66977
Err codemadness.org 70 i 66978

Chance are, you do not want to use these options once you’ve successfully built the cross-compilation toolchain and your entire userland, because building those takes time and there aren’t many good reasons to recompile them from scratch. Here’s what to expect:

Err codemadness.org 70 i 66979 Err codemadness.org 70 i 66980

On my desktop, running a quad-core Intel i5-3470 at 3.20GHz with 24GB of RAM and underlying directory structure residing on a SSD drive, the entire process took about 55 minutes. I was running make with -j12, so the machine was quite busy. Err codemadness.org 70 i 66981 On an old Dell D630 laptop, running Intel Core 2 Duo T7500 at 2.20GHz with 4GB of RAM and a slow hard drive (5400RPM), the process took approximatelly 2.5 hours. I was running make with -j4. Based on the temperature alerts and CPU clock throttling messages, it was quite a struggle.

Err codemadness.org 70 i 66982
Err codemadness.org 70 i 66983 Err codemadness.org 70 i 66984
    Err codemadness.org 70 i 66985
  • Acquiring the sources
  • Err codemadness.org 70 i 66986
  • Compiling the sources

    Err codemadness.org 70 i 66987 Err codemadness.org 70 i 66988
    • Preparing the guest system
  • Err codemadness.org 70 i 66989
  • Provisioning your guest
  • Err codemadness.org 70 i 66990
  • Pkgin and NFS shares
  • Err codemadness.org 70 i 66991
  • Tailoring the kernel for debugging
  • Err codemadness.org 70 i 66992
  • Installing the new kernel
  • Err codemadness.org 70 i 66993
  • Configuring DTrace
  • Err codemadness.org 70 i 66994
  • Debugging the guest’s kernel
  • Err codemadness.org 70 i 66995
Err codemadness.org 70 i 66996 Err codemadness.org 70 i 66997


Err codemadness.org 70 i 66998 Err codemadness.org 70 i 66999

News Roundup

Err codemadness.org 70 i 67000 Err codemadness.org 70 i 67001

Add support for the experimental Internet-Draft "TCP Alternative Backoff”

Err codemadness.org 70 i 67002 Err codemadness.org 70 i 67003

``` Err codemadness.org 70 i 67004 Add support for the experimental Internet-Draft "TCP Alternative Backoff with Err codemadness.org 70 i 67005 ECN (ABE)" proposal to the New Reno congestion control algorithm module. Err codemadness.org 70 i 67006 ABE reduces the amount of congestion window reduction in response to Err codemadness.org 70 i 67007 ECN-signalled congestion relative to the loss-inferred congestion response.

Err codemadness.org 70 i 67008 Err codemadness.org 70 i 67009

More details about ABE can be found in the Internet-Draft: Err codemadness.org 70 i 67010 https://tools.ietf.org/html/draft-ietf-tcpm-alternativebackoff-ecn

Err codemadness.org 70 i 67011 Err codemadness.org 70 i 67012

The implementation introduces four new sysctls:

Err codemadness.org 70 i 67013 Err codemadness.org 70 i 67014
    Err codemadness.org 70 i 67015
  • net.inet.tcp.cc.abe defaults to 0 (disabled) and can be set to non-zero to Err codemadness.org 70 i 67016 enable ABE for ECN-enabled TCP connections.

  • Err codemadness.org 70 i 67017
  • net.inet.tcp.cc.newreno.beta and net.inet.tcp.cc.newreno.betaecn set the Err codemadness.org 70 i 67018 multiplicative window decrease factor, specified as a percentage, applied to Err codemadness.org 70 i 67019 the congestion window in response to a loss-based or ECN-based congestion Err codemadness.org 70 i 67020 signal respectively. They default to the values specified in the draft i.e. Err codemadness.org 70 i 67021 beta=50 and betaecn=80.

  • Err codemadness.org 70 i 67022
  • net.inet.tcp.cc.abe_frlossreduce defaults to 0 (disabled) and can be set to Err codemadness.org 70 i 67023 non-zero to enable the use of standard beta (50% by default) when repairing Err codemadness.org 70 i 67024 loss during an ECN-signalled congestion recovery episode. It enables a more Err codemadness.org 70 i 67025 conservative congestion response and is provided for the purposes of Err codemadness.org 70 i 67026 experimentation as a result of some discussion at IETF 100 in Singapore.

  • Err codemadness.org 70 i 67027
Err codemadness.org 70 i 67028 Err codemadness.org 70 i 67029

The values of beta and betaecn can also be set per-connection by way of the Err codemadness.org 70 i 67030 TCPCCALGOOPT TCP-level socket option and the new CCNEWRENOBETA or Err codemadness.org 70 i 67031 CCNEWRENOBETA_ECN CC algo sub-options.

Err codemadness.org 70 i 67032 Err codemadness.org 70 i 67033

Submitted by: Tom Jones tj@enoti.me Err codemadness.org 70 i 67034 Tested by: Tom Jones tj@enoti.me, Grenville Armitage garmitage@swin.edu.au Err codemadness.org 70 i 67035 Relnotes: Yes Err codemadness.org 70 i 67036 Differential Revision: https://reviews.freebsd.org/D11616 Err codemadness.org 70 i 67037 ```

Err codemadness.org 70 i 67038 Err codemadness.org 70 i 67039


Err codemadness.org 70 i 67040 Err codemadness.org 70 i 67041

Meltdown-mitigation syspatch/errata now available

Err codemadness.org 70 i 67042 Err codemadness.org 70 i 67043
Err codemadness.org 70 i 67044

The recent changes in -current mitigating the Meltdown vulnerability have been backported to the 6.1 and 6.2 (amd64) releases, and the syspatch update (for 6.2) is now available.

Err codemadness.org 70 i 67045
Err codemadness.org 70 i 67046 Err codemadness.org 70 i 67047
    Err codemadness.org 70 i 67048
  • 6.1
  • Err codemadness.org 70 i 67049
Err codemadness.org 70 i 67050 Err codemadness.org 70 i 67051

``` Err codemadness.org 70 i 67052 Changes by: bluhm@cvs.openbsd.org 2018/02/26 05:36:18 Err codemadness.org 70 i 67053 Log message: Err codemadness.org 70 i 67054 Implement a workaround against the Meltdown flaw in Intel CPUs. Err codemadness.org 70 i 67055 The following changes have been backported from OpenBSD -current.

Err codemadness.org 70 i 67056 Err codemadness.org 70 i 67057

Changes by: guenther@cvs.openbsd.org 2018/01/06 15:03:13 Err codemadness.org 70 i 67058 Log message: Err codemadness.org 70 i 67059 Handle %gs like %[def]s and reset set it in cpu_switchto() instead of on Err codemadness.org 70 i 67060 every return to userspace.

Err codemadness.org 70 i 67061 Err codemadness.org 70 i 67062

Changes by: mlarkin@cvs.openbsd.org 2018/01/06 18:08:20 Err codemadness.org 70 i 67063 Log message: Err codemadness.org 70 i 67064 Add identcpu.c and specialreg.h definitions for the new Intel/AMD MSRs Err codemadness.org 70 i 67065 that should help mitigate spectre. This is just the detection piece, these Err codemadness.org 70 i 67066 features are not yet used. Err codemadness.org 70 i 67067 Part of a larger ongoing effort to mitigate meltdown/spectre. i386 will Err codemadness.org 70 i 67068 come later; it needs some machdep.c cleanup first.

Err codemadness.org 70 i 67069 Err codemadness.org 70 i 67070

Changes by: mlarkin@cvs.openbsd.org 2018/01/07 12:56:19 Err codemadness.org 70 i 67071 Log message: Err codemadness.org 70 i 67072 remove all PG_G global page mappings from the kernel when running on Err codemadness.org 70 i 67073 Intel CPUs. Part of an ongoing set of commits to mitigate the Intel Err codemadness.org 70 i 67074 "meltdown" CVE. This diff does not confer any immunity to that Err codemadness.org 70 i 67075 vulnerability - subsequent commits are still needed and are being Err codemadness.org 70 i 67076 worked on presently. Err codemadness.org 70 i 67077 ok guenther, deraadt

Err codemadness.org 70 i 67078 Err codemadness.org 70 i 67079

Changes by: mlarkin@cvs.openbsd.org 2018/01/12 01:21:30 Err codemadness.org 70 i 67080 Log message: Err codemadness.org 70 i 67081 IBRS -> IBRS,IBPB in identifycpu lines

Err codemadness.org 70 i 67082 Err codemadness.org 70 i 67083

Changes by: guenther@cvs.openbsd.org 2018/02/21 12:24:15 Err codemadness.org 70 i 67084 Log message: Err codemadness.org 70 i 67085 Meltdown: implement user/kernel page table separation. Err codemadness.org 70 i 67086 On Intel CPUs which speculate past user/supervisor page permission checks, Err codemadness.org 70 i 67087 use a separate page table for userspace with only the minimum of kernel code Err codemadness.org 70 i 67088 and data required for the transitions to/from the kernel (still marked as Err codemadness.org 70 i 67089 supervisor-only, of course): Err codemadness.org 70 i 67090 - the IDT (RO) Err codemadness.org 70 i 67091 - three pages of kernel text in the .kutext section for interrupt, trap, Err codemadness.org 70 i 67092 and syscall trampoline code (RX) Err codemadness.org 70 i 67093 - one page of kernel data in the .kudata section for TLB flush IPIs (RW) Err codemadness.org 70 i 67094 - the lapic page (RW, uncachable) Err codemadness.org 70 i 67095 - per CPU: one page for the TSS+GDT (RO) and one page for trampoline Err codemadness.org 70 i 67096 stacks (RW) Err codemadness.org 70 i 67097 When a syscall, trap, or interrupt takes a CPU from userspace to kernel the Err codemadness.org 70 i 67098 trampoline code switches page tables, switches stacks to the thread's real Err codemadness.org 70 i 67099 kernel stack, then copies over the necessary bits from the trampoline stack. Err codemadness.org 70 i 67100 On return to userspace the opposite occurs: recreate the iretq frame on the Err codemadness.org 70 i 67101 trampoline stack, switch stack, switch page tables, and return to userspace. Err codemadness.org 70 i 67102 mlarkin@ implemented the pmap bits and did 90% of the debugging, diagnosing Err codemadness.org 70 i 67103 issues on MP in particular, and drove the final push to completion. Err codemadness.org 70 i 67104 Many rounds of testing by naddy@, sthen@, and others Err codemadness.org 70 i 67105 Thanks to Alex Wilson from Joyent for early discussions about trampolines Err codemadness.org 70 i 67106 and their data requirements. Err codemadness.org 70 i 67107 Per-CPU page layout mostly inspired by DragonFlyBSD. Err codemadness.org 70 i 67108 ok mlarkin@ deraadt@

Err codemadness.org 70 i 67109 Err codemadness.org 70 i 67110

Changes by: bluhm@cvs.openbsd.org 2018/02/22 13:18:59 Err codemadness.org 70 i 67111 Log message: Err codemadness.org 70 i 67112 The GNU assembler does not understand 1ULL, so replace the constant Err codemadness.org 70 i 67113 with 1. Then it compiles with gcc, sign and size do not matter Err codemadness.org 70 i 67114 here.

Err codemadness.org 70 i 67115 Err codemadness.org 70 i 67116

Changes by: bluhm@cvs.openbsd.org 2018/02/22 13:27:14 Err codemadness.org 70 i 67117 Log message: Err codemadness.org 70 i 67118 The compile time assertion for cpu info did not work with gcc. Err codemadness.org 70 i 67119 Rephrase the condition in a way that both gcc and clang accept it.

Err codemadness.org 70 i 67120 Err codemadness.org 70 i 67121

Changes by: guenther@cvs.openbsd.org 2018/02/22 13:36:40 Err codemadness.org 70 i 67122 Log message: Err codemadness.org 70 i 67123 Set the PG_G (global) bit on the special page table entries that are shared Err codemadness.org 70 i 67124 between the u-k and u+k tables, because they're actually in all tables.

Err codemadness.org 70 i 67125 Err codemadness.org 70 i 67126

OpenBSD 6.1 errata 037 Err codemadness.org 70 i 67127 ```

Err codemadness.org 70 i 67128 Err codemadness.org 70 i 67129
    Err codemadness.org 70 i 67130
  • 6.2
  • Err codemadness.org 70 i 67131
Err codemadness.org 70 i 67132 Err codemadness.org 70 i 67133

``` Err codemadness.org 70 i 67134 Changes by: bluhm@cvs.openbsd.org 2018/02/26 05:29:48 Err codemadness.org 70 i 67135 Log message: Err codemadness.org 70 i 67136 Implement a workaround against the Meltdown flaw in Intel CPUs. Err codemadness.org 70 i 67137 The following changes have been backported from OpenBSD -current.

Err codemadness.org 70 i 67138 Err codemadness.org 70 i 67139

Changes by: guenther@cvs.openbsd.org 2018/01/06 15:03:13 Err codemadness.org 70 i 67140 Log message: Err codemadness.org 70 i 67141 Handle %gs like %[def]s and reset set it in cpu_switchto() instead of on Err codemadness.org 70 i 67142 every return to userspace.

Err codemadness.org 70 i 67143 Err codemadness.org 70 i 67144

Changes by: mlarkin@cvs.openbsd.org 2018/01/06 18:08:20 Err codemadness.org 70 i 67145 Log message: Err codemadness.org 70 i 67146 Add identcpu.c and specialreg.h definitions for the new Intel/AMD MSRs Err codemadness.org 70 i 67147 that should help mitigate spectre. This is just the detection piece, these Err codemadness.org 70 i 67148 features are not yet used. Err codemadness.org 70 i 67149 Part of a larger ongoing effort to mitigate meltdown/spectre. i386 will Err codemadness.org 70 i 67150 come later; it needs some machdep.c cleanup first.

Err codemadness.org 70 i 67151 Err codemadness.org 70 i 67152

Changes by: mlarkin@cvs.openbsd.org 2018/01/07 12:56:19 Err codemadness.org 70 i 67153 Log message: Err codemadness.org 70 i 67154 remove all PG_G global page mappings from the kernel when running on Err codemadness.org 70 i 67155 Intel CPUs. Part of an ongoing set of commits to mitigate the Intel Err codemadness.org 70 i 67156 "meltdown" CVE. This diff does not confer any immunity to that Err codemadness.org 70 i 67157 vulnerability - subsequent commits are still needed and are being Err codemadness.org 70 i 67158 worked on presently.

Err codemadness.org 70 i 67159 Err codemadness.org 70 i 67160

Changes by: mlarkin@cvs.openbsd.org 2018/01/12 01:21:30 Err codemadness.org 70 i 67161 Log message: Err codemadness.org 70 i 67162 IBRS -> IBRS,IBPB in identifycpu lines

Err codemadness.org 70 i 67163 Err codemadness.org 70 i 67164

Changes by: guenther@cvs.openbsd.org 2018/02/21 12:24:15 Err codemadness.org 70 i 67165 Log message: Err codemadness.org 70 i 67166 Meltdown: implement user/kernel page table separation. Err codemadness.org 70 i 67167 On Intel CPUs which speculate past user/supervisor page permission checks, Err codemadness.org 70 i 67168 use a separate page table for userspace with only the minimum of kernel code Err codemadness.org 70 i 67169 and data required for the transitions to/from the kernel (still marked as Err codemadness.org 70 i 67170 supervisor-only, of course): Err codemadness.org 70 i 67171 - the IDT (RO) Err codemadness.org 70 i 67172 - three pages of kernel text in the .kutext section for interrupt, trap, Err codemadness.org 70 i 67173 and syscall trampoline code (RX) Err codemadness.org 70 i 67174 - one page of kernel data in the .kudata section for TLB flush IPIs (RW) Err codemadness.org 70 i 67175 - the lapic page (RW, uncachable) Err codemadness.org 70 i 67176 - per CPU: one page for the TSS+GDT (RO) and one page for trampoline Err codemadness.org 70 i 67177 stacks (RW) Err codemadness.org 70 i 67178 When a syscall, trap, or interrupt takes a CPU from userspace to kernel the Err codemadness.org 70 i 67179 trampoline code switches page tables, switches stacks to the thread's real Err codemadness.org 70 i 67180 kernel stack, then copies over the necessary bits from the trampoline stack. Err codemadness.org 70 i 67181 On return to userspace the opposite occurs: recreate the iretq frame on the Err codemadness.org 70 i 67182 trampoline stack, switch stack, switch page tables, and return to userspace. Err codemadness.org 70 i 67183 mlarkin@ implemented the pmap bits and did 90% of the debugging, diagnosing Err codemadness.org 70 i 67184 issues on MP in particular, and drove the final push to completion. Err codemadness.org 70 i 67185 Many rounds of testing by naddy@, sthen@, and others Err codemadness.org 70 i 67186 Thanks to Alex Wilson from Joyent for early discussions about trampolines Err codemadness.org 70 i 67187 and their data requirements. Err codemadness.org 70 i 67188 Per-CPU page layout mostly inspired by DragonFlyBSD.

Err codemadness.org 70 i 67189 Err codemadness.org 70 i 67190

Changes by: bluhm@cvs.openbsd.org 2018/02/22 13:18:59 Err codemadness.org 70 i 67191 Log message: Err codemadness.org 70 i 67192 The GNU assembler does not understand 1ULL, so replace the constant Err codemadness.org 70 i 67193 with 1. Then it compiles with gcc, sign and size do not matter Err codemadness.org 70 i 67194 here.

Err codemadness.org 70 i 67195 Err codemadness.org 70 i 67196

Changes by: bluhm@cvs.openbsd.org 2018/02/22 13:27:14 Err codemadness.org 70 i 67197 Log message: Err codemadness.org 70 i 67198 The compile time assertion for cpu info did not work with gcc. Err codemadness.org 70 i 67199 Rephrase the condition in a way that both gcc and clang accept it.

Err codemadness.org 70 i 67200 Err codemadness.org 70 i 67201

Changes by: guenther@cvs.openbsd.org 2018/02/22 13:36:40 Err codemadness.org 70 i 67202 Log message: Err codemadness.org 70 i 67203 Set the PG_G (global) bit on the special page table entries that are shared Err codemadness.org 70 i 67204 between the u-k and u+k tables, because they're actually in all tables.

Err codemadness.org 70 i 67205 Err codemadness.org 70 i 67206

OpenBSD 6.2 errata 009 Err codemadness.org 70 i 67207 ```

Err codemadness.org 70 i 67208 Err codemadness.org 70 i 67209
    Err codemadness.org 70 i 67210
  • syspatch
  • Err codemadness.org 70 i 67211
Err codemadness.org 70 i 67212 Err codemadness.org 70 i 67213


Err codemadness.org 70 i 67214 Err codemadness.org 70 i 67215

iXsystems

Err codemadness.org 70 i 67216 Err codemadness.org 70 i 67217

a2k18 Hackathon Report: Ken Westerback on dhclient and more

Err codemadness.org 70 i 67218 Err codemadness.org 70 i 67219
Err codemadness.org 70 i 67220

Ken Westerback (krw@) has sent in the first report from the (recently concluded) a2k18 hackathon:

Err codemadness.org 70 i 67221
Err codemadness.org 70 i 67222 Err codemadness.org 70 i 67223
    Err codemadness.org 70 i 67224
  • YYZ -> YVR -> MEL -> ZQN -> CHC -> DUD -> WLG -> AKL -> SYD -> BNE -> YVR -> YYZ

  • Err codemadness.org 70 i 67225
  • For those of you who don’t speak Airport code:

  • Err codemadness.org 70 i 67226
  • Toronto -> Vancouver -> Melbourne -> Queenstown -> Christchurch -> Dunedin
  • Err codemadness.org 70 i 67227
  • Then: Dunedin -> Wellington -> Auckland -> Sydney -> Brisbane -> Vancouver -> Toronto
  • Err codemadness.org 70 i 67228
Err codemadness.org 70 i 67229 Err codemadness.org 70 i 67230

```

Err codemadness.org 70 i 67231 Err codemadness.org 70 i 67232

Whew.

Err codemadness.org 70 i 67233 Err codemadness.org 70 i 67234

Once in Dunedin the hacking commenced. The background was a regular tick of new meltdown diffs to test in addition to whatever work one was actually engaged in. I was lucky (?) in that none of the problems with the various versions cropped up on my laptop. Err codemadness.org 70 i 67235 ```

Err codemadness.org 70 i 67236 Err codemadness.org 70 i 67237

``` Err codemadness.org 70 i 67238 I worked with rpe@ and tb@ to make the install script create the 'correct' FQDN when dhclient was involved. I worked with tb@ on some code cleanup in various bits of the base. dhclient(8) got some nice cleanup, further pruning/improving log messages in particular. In addition the oddball -q option was flipped into the more normal -v. I.e. be quiet by default and verbose on request.

Err codemadness.org 70 i 67239 Err codemadness.org 70 i 67240

More substantially the use of recorded leases was made less intrusive by avoiding continual reconfiguration of the interface with the same information. The 'request', 'require' and 'ignore' dhclient.conf(5) statement were changed so they are cumulative, making it easier to build longer lists of affected options.

Err codemadness.org 70 i 67241 Err codemadness.org 70 i 67242

I tweaked softraid(4) to remove a handrolled version of duid_format().

Err codemadness.org 70 i 67243 Err codemadness.org 70 i 67244

I sprinkled a couple of M_WAITOK into amd64 and i386 mpbios to document that there is really no need to check for NULL being returned from some malloc() calls.

Err codemadness.org 70 i 67245 Err codemadness.org 70 i 67246

I continued to help test the new filesystem quiescing logic that deraadt@ committed during the hackathon.

Err codemadness.org 70 i 67247 Err codemadness.org 70 i 67248

I only locked myself out of my room once!

Err codemadness.org 70 i 67249 Err codemadness.org 70 i 67250

Fueled by the excellent coffee from local institutions The Good Earth Cafe and The Good Oil Cafe, and the excellent hacking facilities and accommodations at the University of Otago it was another enjoyable and productive hackathon south of the equator. And I even saw penguins.

Err codemadness.org 70 i 67251 Err codemadness.org 70 i 67252

Thanks to Jim Cheetham and the support from the project and the OpenBSD Foundation that made it all possible Err codemadness.org 70 i 67253 ```

Err codemadness.org 70 i 67254 Err codemadness.org 70 i 67255


Err codemadness.org 70 i 67256 Err codemadness.org 70 i 67257

Poetic License

Err codemadness.org 70 i 67258 Err codemadness.org 70 i 67259
Err codemadness.org 70 i 67260

I found this when going through old documents. It looks like I wrote it and never posted it. Perhaps I didn’t consider it finished at the time. But looking at it now, I think it’s good enough to share. It’s a redrafting of the BSD licence, in poetic form. Maybe I had plans to do other licences one day; I can’t remember.

Err codemadness.org 70 i 67261 Err codemadness.org 70 i 67262

I’ve interleaved it with the original license text so you can see how true, or otherwise, I’ve been to it. Enjoy :-)

Err codemadness.org 70 i 67263
Err codemadness.org 70 i 67264 Err codemadness.org 70 i 67265

``` Err codemadness.org 70 i 67266 Copyright (c) , Err codemadness.org 70 i 67267 All rights reserved.

Err codemadness.org 70 i 67268 Err codemadness.org 70 i 67269

Redistribution and use in source and binary forms, with or without Err codemadness.org 70 i 67270 modification, are permitted provided that the following conditions Err codemadness.org 70 i 67271 are met: Err codemadness.org 70 i 67272 ```

Err codemadness.org 70 i 67273 Err codemadness.org 70 i 67274
Err codemadness.org 70 i 67275

You may redistribute and use – Err codemadness.org 70 i 67276 as source or binary, as you choose, Err codemadness.org 70 i 67277 and with some changes or without – Err codemadness.org 70 i 67278 this software; let there be no doubt. Err codemadness.org 70 i 67279 But you must meet conditions three, Err codemadness.org 70 i 67280 if in compliance you wish to be.

Err codemadness.org 70 i 67281
Err codemadness.org 70 i 67282 Err codemadness.org 70 i 67283

Err codemadness.org 70 i 67284 1. Redistributions of source code must retain the above copyright Err codemadness.org 70 i 67285 notice, this list of conditions and the following disclaimer. Err codemadness.org 70 i 67286 2. Redistributions in binary form must reproduce the above copyright Err codemadness.org 70 i 67287 notice, this list of conditions and the following disclaimer in the Err codemadness.org 70 i 67288 documentation and/or other materials provided with the distribution. Err codemadness.org 70 i 67289 3. Neither the name of the nor the names of its Err codemadness.org 70 i 67290 contributors may be used to endorse or promote products derived Err codemadness.org 70 i 67291 from this software without specific prior written permission. Err codemadness.org 70 i 67292

Err codemadness.org 70 i 67293 Err codemadness.org 70 i 67294
Err codemadness.org 70 i 67295

The first is obvious, of course – Err codemadness.org 70 i 67296 To keep this text within the source. Err codemadness.org 70 i 67297 The second is for binaries Err codemadness.org 70 i 67298 Place in the docs a copy, please. Err codemadness.org 70 i 67299 A moral lesson from this ode – Err codemadness.org 70 i 67300 Don’t strip the copyright on code.

Err codemadness.org 70 i 67301 Err codemadness.org 70 i 67302

The third applies when you promote: Err codemadness.org 70 i 67303 You must not take, from us who wrote, Err codemadness.org 70 i 67304 our names and make it seem as true Err codemadness.org 70 i 67305 we like or love your version too. Err codemadness.org 70 i 67306 (Unless, of course, you contact us Err codemadness.org 70 i 67307 And get our written assensus.)

Err codemadness.org 70 i 67308
Err codemadness.org 70 i 67309 Err codemadness.org 70 i 67310

Err codemadness.org 70 i 67311 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS Err codemadness.org 70 i 67312 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT Err codemadness.org 70 i 67313 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS Err codemadness.org 70 i 67314 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE Err codemadness.org 70 i 67315 COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, Err codemadness.org 70 i 67316 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, Err codemadness.org 70 i 67317 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; Err codemadness.org 70 i 67318 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER Err codemadness.org 70 i 67319 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT Err codemadness.org 70 i 67320 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN Err codemadness.org 70 i 67321 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE Err codemadness.org 70 i 67322 POSSIBILITY OF SUCH DAMAGE. Err codemadness.org 70 i 67323

Err codemadness.org 70 i 67324 Err codemadness.org 70 i 67325
Err codemadness.org 70 i 67326

One final point to be laid out Err codemadness.org 70 i 67327 (You must forgive my need to shout): Err codemadness.org 70 i 67328 THERE IS NO WARRANTY FOR THIS Err codemadness.org 70 i 67329 WHATEVER THING MAY GO AMISS. Err codemadness.org 70 i 67330 EXPRESS, IMPLIED, IT’S ALL THE SAME – Err codemadness.org 70 i 67331 RESPONSIBILITY DISCLAIMED.

Err codemadness.org 70 i 67332 Err codemadness.org 70 i 67333

WE ARE NOT LIABLE FOR LOSS Err codemadness.org 70 i 67334 NO MATTER HOW INCURRED THE COST Err codemadness.org 70 i 67335 THE TYPE OR STYLE OF DAMAGE DONE Err codemadness.org 70 i 67336 WHATE’ER THE LEGAL THEORY SPUN. Err codemadness.org 70 i 67337 THIS STILL REMAINS AS TRUE IF YOU Err codemadness.org 70 i 67338 INFORM US WHAT YOU PLAN TO DO.

Err codemadness.org 70 i 67339 Err codemadness.org 70 i 67340

When all is told, we sum up thus – Err codemadness.org 70 i 67341 Do what you like, just don’t sue us.

Err codemadness.org 70 i 67342
Err codemadness.org 70 i 67343 Err codemadness.org 70 i 67344


Err codemadness.org 70 i 67345 Err codemadness.org 70 i 67346


Err codemadness.org 70 i 67347 Err codemadness.org 70 i 67348

Beastie Bits

Err codemadness.org 70 i 67349 Err codemadness.org 70 i 67350 Err codemadness.org 70 i 67358 Err codemadness.org 70 i 67359


Err codemadness.org 70 i 67360 Err codemadness.org 70 i 67361

Tarsnap ad

Err codemadness.org 70 i 67362 Err codemadness.org 70 i 67363


Err codemadness.org 70 i 67364 Err codemadness.org 70 i 67365

Feedback/Questions

Err codemadness.org 70 i 67366 Err codemadness.org 70 i 67367 Err codemadness.org 70 i 67374 Err codemadness.org 70 i 67375


Err codemadness.org 70 i 67376 Err codemadness.org 70 i 67377
    Err codemadness.org 70 i 67378
  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv
  • Err codemadness.org 70 i 67379
Err codemadness.org 70 i 67380 Err codemadness.org 70 i 67381


]]> Err codemadness.org 70 i 67382
Err codemadness.org 70 i 67383 https://fireside.fm/player/v2/FYhhasNR+Rc3pya8- Err codemadness.org 70 i 67384 Err codemadness.org 70 i 67385 ]]> Err codemadness.org 70 i 67386 Err codemadness.org 70 i 67387
Err codemadness.org 70 i 67388
Err codemadness.org 70 i 67389
Err codemadness.org 70 .