Skip to main content.

Episode 155: Cabling up FreeBSD


Direct Download:

  • Video
  • HD Video
  • MP3 Audio
  • OGG Audio
  • Torrent
  • <

    This episode was brought to you by

    iXsystems - Enterprise Servers and Storage for Open SourceDigitalOcean - Simple Cloud Hosting, Built for DevelopersTarsnap - Online Backups for the Truly Paranoid


    My two year journey to becoming an OS Developer

    • A blog post by Ryan Zezeski about how he ended doing OS Development instead of working on application
    • We have featured his posts before, including The illumos SYSCALL Handler

    It started in the summer of 2014: I had just left Basho after 3.5 years of working on Riak, when I decided I wanted to become an OS developer. I purchased Solaris Internals, cloned illumos-gate, fired up cscope, and got to work. I hardly knew any C, x86 might as well have been Brainfuck, and, frankly, I knew shit about operating systems. But I was determined. I’ve always learned best by beating my head against something until it makes sense. I’m not a fast learner; I’m persistent. What others have in ability I make up for in effort. And when it comes to OS internals it’s all about work ethic. The more you look, the more you realize it’s just another program. The main difference being: it’s the program all the other programs run on. My strategy: to pick something, anything, that looked interesting, and write a post describing how it works. I wrote several of these posts in 2014 and 2015. More important, it put me in touch with Roger Faulkner: the creator of truss(1), the Solaris process model, and the real /proc filesystem. At the time I didn’t like my interaction with Roger. He explained, in what I would later find out to be his typical gruff manner, that I was wrong; so I concluded he is a prick. But over the years I realized that I was being a brat—he was trying to teach me something and I let my ego get in the way. I’ve come to view that interaction as a blessing. I interacted with one of the greats, a mentor of my mentor’s mentor (a Great Great Mentor). A couple of weeks later something even more surreal happened, at illumos Day 2014. Bryan Cantrill was the last speaker of the day. One of my mentors and someone I admire greatly. He was there to regale us with the story of Joyent’s resurrection of lx-branded zones: Linux system call emulation on top of the illumos kernel. But before he would do that he decided to speak about me! I couldn’t believe it. I was so overwhelmed that I don’t remember most of what he said. I was too busy flipping shit—Bryan Cantrill is on stage, in front of other kernel developers I look up to, saying my name. I was in a dream. It turns out, unknown to me at the time, that he wrote the POSIX queue code for both Solaris and QNX, which I wrote about. He compared me to the great expository technical writers Elliott Organick and Richard Stevens. And it was at this moment that I knew I could do this: I could become an OS developer. Never underestimate the effect kind words can have on someone that looks up to you.

    • There is a lot more to the story, and it is definitely worth the read
    • The story then goes on to talk about his recent run in with Bryan Cantrill > A week from now my two year journey to become an OS developer comes to an end; and a new chapter begins. I don’t know what specific things I’m going to work on, but I’m sure it will push me to the limit. I look forward to the challenge.

    Version 1.0 of the Lumina Desktop released

    • After 4 years of development, Lumina Desktop has now hit version 1.0!
    • This release brings with it a slew of new features and support:
    • Completely customizable interface! Rather than having to learn how to use a new layout, change the desktop to suit you instead!
    • Simple shortcuts for any application! The “favorites” system makes it easy to find and launch applications at any time.
    • Extremely lightweight! Allows applications to utilize more of your system hardware and revitalizes older systems!
    • Multiple-monitor support! Each monitor is treated as an independent entity – making it great for presentation systems which use a temporary monitor or for workstations which utilize an array of monitors for various tasks.
    • While originally developed on PC-BSD, it already has been ported to a variety of different platforms, including OpenBSD, DragonFly, NetBSD, Debian and Gentoo
    • Lumina has become the defacto desktop environment for TrueOS (Formerly PC-BSD), and looks like will provide a solid framework to continue growing desktop features.

    n2k16 hackathon report: Ken Westerback on dhclient, bridges, routing and more

    • Next up, we have a report from Ken Westerback talking about the recent OpenBSD hackathon in Prague
    • He starts by telling us about the work in bpf:

    First order of business, stsp@'s weird setup involving bridges and multiple dhclient clients. A bit of bpf(4) programming to restrict dhclient to handling ethernet packets unicast to its interface worked. Cool. Unfortunately it turned out some lazy dhcp servers always use ethernet broadcasts just because some lesser, non-OpenBSD clients ignore unicast packets until they have configured IP. Classic chicken and egg. So this was backed out just before 6.0. Sigh.

    • Next up, he talks about an idea he had on the flight over, specifically with regard to how DHCP leases are stored, and how keeping the SSID information with them could speed up re-connection times, by only trying leases for current SSID’s connected. After a day or so of hacking, it was working! However for $REASONS it was shelved for post 6.0, bummer!
    • He then discusses an on-going project with Peter Hessler on passing along relevant PIDs in response to routing messages generated by kernel from ioctl events. This is something they’ve been hacking at, in order to allow dhclient to recognize its own routing messages. Sounds like they are both still works-in-progress.
    • However, Ken did get something in for 6.0:

    Diving back into dhclient code I discovered that in situations where multiple offers were received the unused offers were not being declined and discarded. Despite a clear comment saying that's what was being done! Thus dhclient might gradually use up more and more memory. And possibly be retrying offers that should have been discarded. The fix for this did make 6.0! Yay!

    In Memoriam Roger Faulkner

    • USENIX has re-released Roger Faulkner’s original paper on /proc as a free download
    • The UNIX community recently lost one of its original pioneers, Roger Faulkner, whom one commenter described as “The godfather of post-AT&T UNIX”
    • In his memory, the USENIX group as re-released his original paper on the /proc file-system from 1991.
    • Roger worked in many area’s of UNIX, however the process file system /proc was his special baby.
    • “/proc began as a debugger interface superseding ptrace(2) but has evolved into a general interface to the process model.”
    • The original /proc only had a file for each process, not a directory. "Data may be transferred from or to any valid locations in the process's address space by applying lseek(2) to position the file at the virtual address of interest followed by read(2) or write(2)."
    • Processes could be controlled using IOCTLs on the file
    • As the USENIX article states:

      Roger believed that terrible things were sometimes required to create beautiful abstractions, and his trailblazing work on /proc embodies this burden: the innards may be delicate and nasty ("vile," as Roger might say in his distinguished Carolinian accent)—but the resulting abstractions are breathtaking in their power, scope and robustness.

    • RIP Roger, and thanks for the wonderful UNIX legacy you’ve left us all.

    Interview - Myke Geiger - / @mWare

    • Using FreeBSD at a DSL/Cable ISP

    News Roundup

    New options in bsdinstall - some sysctls and date/time settings

    • bsdinstall in FreeBSD 11.0 will feature a number of new menus.
    • The first, well allow you to set the date and time. Often on computers that have been in storage, or some embedded type devices that have no RTC, the date will be wildly wrong, and ntpd will refuse to run until the date is correctly set. This feature makes it easy to enter the date and time using dialog(1)
    • The second menu, inspired by the existing ‘services’ menu, offers a number of ‘hardening’ options
    • This menu allows users to easily enable a number of security features, including:
      • Hide processes running as other users/groups
      • Disable reading the kernel message buffer and debugging processes for unprivileged users
      • Randomize the PID of newly created processes
      • Enable the stack guard
      • Erase /tmp at boot
      • Disable remote syslog
      • Disable sendmail
    • All of these options are off by default, so that an install done with the installer will be the same as an install from source, or an upgrade.
    • A number of these options are candidates to become on-by-default in the future, so the hope is that this menu will get more users to test these features and find any negative interactions with applications or general use, so they can be fixed.

    Rawrite32: the NetBSD image writing tool

    • Martin of the NetBSD project has released a new version of his USB imaging tool, rawrite32
    • For those who’ve not used this tool before, it is a Windows Application that allows writing NetBSD images directly to USB media (other other disk media)
    • This update brings with it support for writing .xz file, and binary signing
    • This may come in handy for writing other OS images to memory sticks as well, especially for those locked into a windows environment who need to switch.

    ZFS-Snap-Diff -- A pretty interface for viewing what changed after a ZFS snapshot

    • There are lots of nice little utilities to help create and maintain your ZFS snapshots. However today we have something unique to look at, ‘zfs-snap-diff’.
    • What makes it unique, is that it ships with a built-in golang / angularjs GUI for snapshot management
    • It looks very powerful, including a built-in diff utility, so you can even see the changes in text-files, in addition to downloading files, restoring old versions and more.
    • Its nice to see so many ZFS utilities starting to take off, and evolve file-management further.

    Dtrace Conf 2016 Event Videos

    • The videos from Dtrace.conf 2016 have been posted
    • Some highlights:
      • Useful DTrace Intro
      • CTF Everywhere
      • Distributed DTrace
      • DTrace for Apps
      • DTrace json() subroutine
      • Implementing (or not) fds[] in FreeBSD
      • OpenDTrace
      • DTrace performance improvements with always-on instrumentation
      • D Syntactic Sugar
      • DTrace and Go, DTrace and Postgres
    • dtrace.conf(16) wrap-up by Bryan Cantrill

    Once again, it was an eclectic mix of technologists — and once again, the day got kicked off with me providing an introduction to dtrace.conf and its history. (Just to save you the time filling out your Cantrill Presentation Bingo Card: you can find me punching myself at 16:19, me offering unsolicited personal medical history at 20:11, and me getting trolled by unikernels at 38:25.)

    • The next DTrace.conf isn’t until 2020

    Beastie Bits


    • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to

Latest News

New announcement


We understand that Michael Dexter, Brad Davis, and George Rosamond think there should be more real news....

Two Year Anniversary


We're quickly approaching our two-year anniversary, which will be on episode 105. To celebrate, we've created a unique t-shirt design, available for purchase until the end of August. Shirts will be shipped out around September 1st. Most of the proceeds will support the show, and specifically allow us to buy...

New discussion segment


We're thinking about adding a new segment to the show where we discuss a topic that the listeners suggest. It's meant to be informative like a tutorial, but more of a "free discussion" format. If you have any subjects you want us to explore, or even just a good name...

How did you get into BSD?


We've got a fun idea for the holidays this year: just like we ask during the interviews, we want to hear how all the viewers and listeners first got into BSD. Email us your story, either written or a video version, and we'll read and play some of them for...

Episode 281: EPYC Server battle


Direct Download:MP3 AudioVideo Headlines scp client multiple vulnerabilities Overview SCP clients from multiple vendors are susceptible to a malicious scp server performing unauthorized changes to target directory and/or client output manipulation. Description Many scp clients fail to verify if the objects returned by the scp server match those it asked for. This issue dates back to 1983 and...

Episode 280: FOSS clothing


Direct Download:MP3 AudioVideo Headlines A EULA in FOSS clothing? 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...

Episode 279: Future of ZFS


Direct Download:MP3 AudioVideo Headlines The future of ZFS in FreeBSD 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...

Episode 278: The real McCoy


Direct Download:MP3 AudioVideo Interview - Kirk McKusick - 25 years of FreeBSD How Kirk got started in BSD, at the very beginning Predicting the Future How the code and community grew The leadership of the project, and how it changed over time UFS over the years (reading disks from 1982 in 2018) Conferences The rise and fall of...