BSD Now

BSD Now

Download on the App Store

BSD Now episodes

  • 294: The SSH Tarpit

    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.

    Headlines
    A Pi-Powered Plan 9 Cluster

    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.

    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.

    Endlessh: an SSH Tarpit

    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.

    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.

    News Roundup
    rdist(1) – when Ansible is too much

    The post written about rdist(1) on johan.huldtgren.com sparked

    us to write one as well. It's a great, underappreciated, tool. And we wanted to show how we wrapped doas(1) around it.
    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.
    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.

    Falling in love with OpenBSD again

    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.

    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.
    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.

    How I Created My First FreeBSD Port

    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

    The Tilde Institute of OpenBSD Education

    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.

    Beastie Bits
    • SoloBSD 19.03-STABLE
    • WireGuard for NetBSD
    • [NetBSD - Removing PF](https://mail-index.netbsd.org/tech-kern/2019/03/29/msg024883.html
    • )
    • What does the N in nmake stand for?
    • A Map of the Internet from May 1973
    • NSA-B-Gone : A sketchy hardware security device for your x220
    • Feedback/Questions
      • Jake - A single jail as a VPN client
      • Matt - Surprising BSD Features
      • cia - Routing and ZFS
        • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [email protected]
        • Your browser does not support the HTML5 video tag.
          58 min
        • 293: Booking Jails

          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.

          ###Interview - Michael W. Lucas - [email protected] / @mwlauthor

          FreeBSD Mastery: Jails

          • 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?
          • AJ: How much research did you have to do about jails?
          • BR: The book talks about something called ‘incomplete’ jails. What do you mean by that?
          • AJ: There are a lot of jail management frameworks out there. Why did you chose to write about iocage in the book?
          • BR: How many jails do you run yourself?
          • AJ: Can you tell us a bit about how you handle book sponsorship these days?
          • BR: What other books (fiction and non-fiction) are you currently working on?
          • AJ: Which talks are you looking forward to attend at the upcoming BSDCan conference?
          • BR: How is the BSD user group going?
          • AJ: Anything else you’d like to mention before we release you from our interview jail cell?
            • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [email protected]
            • Your browser does not support the HTML5 video tag.
              1 hr 17 min
            • 292: AsiaBSDcon 2019 Recap

              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.

              ##Headlines

              ###AsiaBSDcon 2019 recap

              • 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.
              • Benedict gave his tutorial about “BSD-based Systems Monitoring with Icinga2 and OpenSSH”, while Allan ran the FreeBSD developer summit.
              • 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.
              • On the third day, Hiroki Sato officially opened the paper session and then people went into individual talks.
              • Benedict attended
              • Adventure in DRMland - Or how to write a FreeBSD ARM64 DRM driver by Emmanuel

                Vadot

                powerpc64 architecture support in FreeBSD ports by Piotr Kubaj

                Managing System Images with ZFS by Allan Jude
                FreeBSD - Improving block I/O compatibility in bhyve by Sergiu Weisz
                Security Fantasies and Realities for the BSDs by George V.
                Neville-Neil
                ZRouter: Remote update of firmware by Hiroki Mori
                Improving security of the FreeBSD boot process by Marcin Wojtas

                • Allan attended
                • Adventures in DRMland by Emmanuel Vadot

                  Intel HAXM by Kamil Rytarowski
                  BSD Solutions in Australian NGOs
                  Container Migration on FreeBSD by Yuhei Takagawa
                  Security Fantasies and Realities for the BSDs by George Neville-Neil

                  ZRouter: Remote update of firmware by Hiroki Mori

                  Improving security of the FreeBSD boot process by Marcin Wojtas

                  • When not in talks, time was spent in the hallway track and conversations would often continue over dinner.
                  • 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.
                  • ###FreeBSD Quarterly Status Report - Fourth Quarter 2018

                    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:

                    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.
                    Additionally, we bring news from some islands further down stream, namely the nosh project, HardenedBSD, ClonOS, and the Polish BSD User-Group.
                    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.

                    ###GhostBSD: A Solid Linux-Like Open Source Alternative

                    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.

                    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.
                    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.
                    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.
                    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.
                    Keep reading to find out what piqued my excitement about Linux-like GhostBSD.

                    ##News Roundup

                    ###SPARCbook 3000ST - The coolest 90s laptop

                    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).

                    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.

                    ###OpenSSH 8.0 Releasing With Quantum Computing Resistant Keys

                    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.

                    • https://twitter.com/damienmiller/status/1111416334737244160
                    • Better Security

                      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:
                      “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.”

                      • Interesting new features
                      • 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.

                        ###Project Trident : 18.12-U8 Available

                        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.

                        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

                        ##Beastie Bits

                        • BSD Router Project - Release 1.92
                        • EuroBSDcon - New Proposals
                        • Funny UNIX shirt (René Magritte art parody)
                        • 51NB’s Thinkpad X210
                        • DragonFly: No more gcc50
                        • “FreeBSD Mastery: Jails” ebook escaping!
                        • FreeBSD talk at the Augsburger Linux Info Days (german)
                        • ##Feedback/Questions

                          • DJ - FuguIta Feedback
                          • Mike - Another Good Show
                          • Alex - GhostBSD and wifi
                            • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [email protected]
                            • Your browser does not support the HTML5 video tag.
                              1 hr 31 min
                            • 291: Storage Changes Software

                              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.

                              ##Headlines

                              ###Tracking a storage issue led to software change

                              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.

                              This migration required several changes in both the software and hardware we use, including switching the operating system on our storage units to FreeBSD.
                              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.

                              • Problem
                              • While migrating virtual disks of Simple Hosting instances from FR-SD2, we noticed high CPU load spikes on the new storage units.

                                ###What Makes Unix Special

                                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.

                                • What Makes Unix Special?
                                • 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.

                                  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.)

                                  ##News Roundup

                                  ###What you need may be “pipeline +Unix commands” only

                                  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.

                                  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.
                                  BTW, if your data set can be disposed by an awk script, it should not be called “big data”.

                                  • Taco Bell Programming
                                  • ###Running a bakery on Emacs and PostgreSQL

                                    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.

                                    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.
                                    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.

                                    ###The Ultimate Guide To Memorable Tech Talks

                                    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.

                                    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.
                                    I think everyone has the ability to deliver stellar conference talks, which is why I took the time to write this post.

                                    • The Ultimate Guide
                                    • 1: Introduction
                                    • 2: Choosing a Topic
                                    • 3: Writing a Conference Proposal (or CFP)
                                    • 4: Tools of the Trade
                                    • 5: Planning and Time Estimation
                                    • 6: Writing a Talk
                                    • 7: Practice and Delivery
                                    • ###Light-weight Contexts: An OS Abstraction for Safety and Performance (2016)

                                      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).

                                      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.”

                                      ##Beastie Bits

                                      • May 7th - BSD Users Stockholm Meetup #6
                                      • sysutils/docker-freebsd: Searching for people to help
                                      • Cat Tax - Ever wonder what Midnight the cat was like?
                                      • Fixing Unix/Linux/POSIX Filenames
                                      • Metasploit on OpenBSD
                                      • Run Your @wn Email Server! with NetBSD
                                      • rdist(1)
                                      • Writing a Book with Unix
                                      • 7 Unix Commands Every Data Scientist Should Know
                                      • Explaining Code using ASCII Art
                                      • FreeBSD Aberdeen Hackathon
                                      • FreeBSD Vienna Hackathon
                                      • ##Feedback/Questions

                                        • Mike - FreeBSD Update and Erased EFI files

                                        • Charles - Volunteer work

                                        • Jake - Bhyve Front Ends

                                        • 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!

                                          • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [email protected]
                                          • Your browser does not support the HTML5 video tag.
                                            1 hr 13 min
                                          • 290: Timestamped Notes

                                            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.

                                            ##Headlines

                                            ###ARM’d and dangerous: FreeBSD on Cavium ThunderX (aarch64)

                                            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.

                                            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.

                                            ###Looking at NetBSD from an OpenBSD user perspective

                                            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.

                                            • What I liked (pros)
                                            • Things I didn’t like (cons)
                                            • Conclusion
                                            • 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.

                                              That said, I’ll keep using my Puffy OS.

                                              ##News Roundup

                                              ###Using Vim to take time-stamped notes

                                              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.

                                              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.
                                              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.

                                              • John Baldwin’s notes on bhyve meetings
                                              • ###OpenBSD 6.5-beta has been tagged

                                                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.

                                                CVSROOT: /cvs

                                                Module name: src
                                                Changes by: [email protected] 2019/02/26 15:24:41

                                                Modified files:
                                                etc/root : root.mail
                                                share/mk : sys.mk
                                                sys/conf : newvers.sh
                                                sys/sys : ktrace.h param.h
                                                usr.bin/signify: signify.1
                                                sys/arch/macppc/stand/tbxidata: bsd.tbxi

                                                Log message:
                                                crank to 6.5-beta

                                                ###The NetBSD Foundation participating in Google Summer of Code 2019

                                                For the 4th year in a row and for the 13th time The NetBSD Foundation will participate in Google Summer of Code 2019!

                                                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.
                                                You can find a list of projects in Google Summer of Code project proposals in the wiki.
                                                Do not hesitate to get in touch with us via #netbsd-code IRC channel on Freenode and via NetBSD mailing lists!

                                                ###SecBSD: an UNIX-like OS for Hackers

                                                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.

                                                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.

                                                ##Beastie Bits

                                                • Why OpenBSD Rocks
                                                • Rich’s sh (POSIX shell) tricks
                                                • Drinking coffee with AWK
                                                • Civilisational HTTP Error Codes
                                                • MidnightBSD Roadmap
                                                • NetBSD on Nintendo64
                                                • From Vimperator to Tridactyl
                                                • ##Feedback/Questions

                                                  • Russell - BSD Now Question :: ZFS & FreeNAS
                                                  • Alan - Tutorial, install ARM *BSD with no other BSD box pls
                                                  • Johnny - New section to add to the show
                                                    • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [email protected]
                                                    • Your browser does not support the HTML5 video tag.
                                                      51 min
                                                    • 289: Microkernel Failure

                                                      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.

                                                      ##Headlines

                                                      ###A Kernel Of Failure -

                                                      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.

                                                      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.

                                                      ###CVE-2019-5597IPv6 fragmentation vulnerability in OpenBSD Packet Filter

                                                      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.

                                                      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.

                                                      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.

                                                      • Kristof Provost, who maintains the port of pf in FreeBSD added a test for the vulnerability in FreeBSD head.
                                                      • ##News Roundup

                                                        ###How I’m still not using GUIs in 2019: A guide to the terminal

                                                        TL;DR: Here are my dotfiles. Use them and have fun.

                                                        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.

                                                        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.
                                                        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.

                                                        • Don’t forget rule number one.
                                                        • Whenever in doubt, read the manual.

                                                          ###Using a Yubikey as smartcard for SSH public key authentication

                                                          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.

                                                          You might have heard of Yubikeys.
                                                          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.
                                                          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.

                                                          ###The 18 Part FreeBSD Desktop Series by Vermaden

                                                          • FreeBSD Desktop – Part 1 – Simplified Boot
                                                          • FreeBSD Desktop – Part 2 – Install (FreeBSD 11)
                                                          • FreeBSD Desktop – Part 2.1 – Install FreeBSD 12
                                                          • FreeBSD Desktop – Part 3 – X11 Window System
                                                          • FreeBSD Desktop – Part 4 – Key Components – Window Manager
                                                          • FreeBSD Desktop – Part 5 – Key Components – Status Bar
                                                          • FreeBSD Desktop – Part 6 – Key Components – Task Bar
                                                          • FreeBSD Desktop – Part 7 – Key Components – Wallpaper Handling
                                                          • FreeBSD Desktop – Part 8 – Key Components – Application Launcher
                                                          • FreeBSD Desktop – Part 9 – Key Components – Keyboard/Mouse Shortcuts
                                                          • FreeBSD Desktop – Part 10 – Key Components – Locking Solution
                                                          • FreeBSD Desktop – Part 11 – Key Components – Blue Light Spectrum Suppress
                                                          • FreeBSD Desktop – Part 12 – Configuration – Openbox
                                                          • FreeBSD Desktop – Part 13 – Configuration – Dzen2
                                                          • FreeBSD Desktop – Part 14 – Configuration – Tint2
                                                          • FreeBSD Desktop – Part 15 – Configuration – Fonts & Frameworks
                                                          • FreeBSD Desktop – Part 16 – Configuration – Pause Any Application
                                                          • FreeBSD Desktop – Part 17 – Automount Removable Media
                                                          • ##Beastie Bits

                                                            • Drist with persistent SSH
                                                            • ARPANET: Celebrating 50 Years Since “LO”
                                                            • Termtris - a tetris game for ANSI/VT220 terminals
                                                            • Poor Man’s CI - Hosted CI for BSD with shell scripting and duct tape
                                                            • Why I use the IBM Model M keyboard that is older than me?
                                                            • A privilege separated and sandboxed IPv6 Stateless Address AutoConfiguration Daemon
                                                            • Google-free Android Setup
                                                            • BSD Users Stockholm Meetup #6
                                                            • ##Feedback/Questions

                                                              • Sijmen - Hi, and a Sunday afternoon toy project
                                                              • Clint - Tuning ZFS for NVME
                                                              • James - Show question
                                                                • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [email protected]
                                                                • Your browser does not support the HTML5 video tag.
                                                                  1 hr 2 min
                                                                • 288: Turing Complete Sed

                                                                  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.

                                                                  ##Headlines

                                                                  ###Google: Software is never going to be able to fix Spectre-type bugs

                                                                  • Spectre is here to stay: An analysis of side-channels and speculative execution
                                                                  • 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.

                                                                    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.
                                                                    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.

                                                                    ###A proof that Unix utility sed is Turing complete

                                                                    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.

                                                                    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.
                                                                    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.

                                                                    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:

                                                                    • Tetris
                                                                    • Sokoban (game)
                                                                    • Calculator
                                                                    • ##News Roundup

                                                                      ###Bastille helps you quickly create and manage FreeBSD Jails.

                                                                      Bastille helps you quickly create and manage FreeBSD Jails.

                                                                      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.
                                                                      Bastille provides an interface to create, manage and destroy these secure virtualized environments.

                                                                      • Current version: 0.3.20190204-beta.
                                                                      • Shell Script Source here: https://github.com/BastilleBSD/bastille/blob/master/usr/local/bin/bastille
                                                                      • ###netdata v1.12 released

                                                                        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.

                                                                        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).
                                                                        Netdata is fast and efficient, designed to permanently run on all systems (physical & virtual servers, containers, IoT devices), without disrupting their core function.

                                                                        • Patch release 1.12.1 contains 22 bug fixes and 8 improvements.
                                                                        • ###Using grep with /dev/null, an old Unix trick

                                                                          Every so often I will find myself writing a grep invocation like this:

                                                                          find .... -exec grep /dev/null '{}' '+'

                                                                          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.

                                                                          ###USING GMAIL WITH MUTT

                                                                          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.

                                                                          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.
                                                                          If you would just like to skip to the end, my mutt configuration file can be found here.

                                                                          ##Beastie Bits

                                                                          • An Extensive UNIX Timeline
                                                                          • Garbage.fm - OEF
                                                                          • brk() to sbrk()
                                                                          • Fred models, found again
                                                                          • Kafe: Can OS Kernels Forward Packets Fast Enough for Software Routers?
                                                                          • ARPANET: Celebrating 50 Years Since “LO”
                                                                          • ##Feedback/Questions

                                                                            • Pablo - Topic suggestion: FreeBSD on a Laptop as daily driver
                                                                            • Ron - ZFS on the fly compression and seek
                                                                            • Dave - two zpool, or not two zpool, that is the question
                                                                              • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [email protected]
                                                                              • Your browser does not support the HTML5 video tag.
                                                                                1 hr
                                                                              • 287: rc.d in NetBSD

                                                                                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.

                                                                                ##Headlines

                                                                                ###The Design and Implementation of the NetBSD rc.d system

                                                                                • Abstract
                                                                                • 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.

                                                                                  • Introduction
                                                                                  • 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.

                                                                                    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.
                                                                                    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.

                                                                                    • History
                                                                                    • 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.

                                                                                      ###First impressions of Project Trident 18.12

                                                                                      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.

                                                                                      +Installing

                                                                                      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.

                                                                                      • Early impressions
                                                                                      • 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.

                                                                                        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.
                                                                                        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.

                                                                                        • Conclusions
                                                                                        • 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.

                                                                                          ##News Roundup

                                                                                          ###PXE booting of a FreeBSD disk image

                                                                                          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.

                                                                                          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) .

                                                                                          • THE BIG PICTURE
                                                                                          • Before explaining all steps and command line, here is the full big picture of the final process.

                                                                                            ###Why I like middle mouse button paste in xterm so much

                                                                                            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:

                                                                                            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.
                                                                                            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).
                                                                                            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.

                                                                                            ###NetBSD Gains Hardware Accelerated Virtualization

                                                                                            • NetBSD Virtual Machine Monitor
                                                                                            • 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.

                                                                                              ##Beastie Bits

                                                                                              • SoloBSD 19.02-STABLE
                                                                                              • Project Trident 18.12-U5 available
                                                                                              • “Sudo Mastery, Second Edition” and Cover Art
                                                                                              • MKSANITIZER - bug detector software integration with the NetBSD userland
                                                                                              • Darn kids nowadays… back in my day we drew rude symbols like normal people. {{top two comments}}
                                                                                              • ShellCheck
                                                                                              • finds bugs in your shell scripts.
                                                                                              • Old School Sean - A history of UNIX
                                                                                              • ##Feedback/Questions

                                                                                                • Ales - OpenBSD, FreeNAS, OpenZFS questions
                                                                                                • Malcolm - Thoughts on Pgsql + ZFS thread?
                                                                                                • Brad - Boot Environments in FreeBSD
                                                                                                  • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [email protected]
                                                                                                  • Your browser does not support the HTML5 video tag.
                                                                                                    1 hr 1 min
                                                                                                  • 286: Old Machine Revival

                                                                                                    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.

                                                                                                    ##Headlines

                                                                                                    ###Adding Glue To a Desktop Environment

                                                                                                    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.

                                                                                                    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.

                                                                                                    • The tools we’ll talk about fall into one of those categories:
                                                                                                    • Debugging
                                                                                                    • Window manipulation
                                                                                                    • Simulation of interaction
                                                                                                    • Extended manipulation
                                                                                                    • Hotkey daemon
                                                                                                    • Layout manager
                                                                                                    • ###Flashing the BIOS on the PC Engines APU4c4

                                                                                                      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.

                                                                                                      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.
                                                                                                      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.
                                                                                                      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.
                                                                                                      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. ;)
                                                                                                      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.

                                                                                                      ##News Roundup

                                                                                                      ###Revive a Cisco IDS into a capable OpenBSD computer!

                                                                                                      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.

                                                                                                      Apparently, this was also the case for the Cisco IDS-4215 Intrusion Detection Sensor that I was given a few months ago.
                                                                                                      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.

                                                                                                      ###An OpenBSD desktop using WindowMaker

                                                                                                      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.

                                                                                                      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.
                                                                                                      And here it is, the NeXT OpenBSD Desktop!

                                                                                                      ###RealTime Data Compression

                                                                                                      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.

                                                                                                      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.
                                                                                                      The previously described opaque type is so secret that it has no size, hence is not suitable for such scenario.
                                                                                                      Fortunately, static opaque types are possible.
                                                                                                      The main idea is to create a “shell type”, with a known size and an alignment, able to host the target (private) structure.
                                                                                                      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.

                                                                                                      ###For the Love of Pipes

                                                                                                      My top used shell command is |. This is called a pipe.

                                                                                                      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.
                                                                                                      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

                                                                                                      ##Beastie Bits

                                                                                                      • Installation Notes for NetBSD/i386 0.9
                                                                                                      • Porting Zig to NetBSD - a fun, speedy port
                                                                                                      • NNN - Tiny, lightning fast, feature-packed file manager Release v2.3
                                                                                                      • eta - A tool for monitoring progress and ETA of an arbitrary process
                                                                                                      • A FreeBSD User Tries Out…NetBSD 8.0
                                                                                                      • Faster vlan(4) forwarding?
                                                                                                      • FuguIta - OpenBSD 6.4 Live System
                                                                                                      • Adding Name-based hosting To Nginx on OpenBSD with Acme-Client
                                                                                                      • HOWTO set up QEMU with HAXM acceleration on NetBSD
                                                                                                      • README: gcc 7 switch coming to a port near you!
                                                                                                      • ##BUG Calendar

                                                                                                        • ChiBUG, Chicago, USA: Tuesday, February 26th 18:00 at the Oak Park Library
                                                                                                        • CharmBUG, Baltimore, USA: Wednesday, February 27, 2019
                                                                                                        • 19:30 at Columbia Ale House
                                                                                                        • NYC*BUG, New York, USA: Wednesday, March 6, 2019 18:45 at Suspenders
                                                                                                        • KnoxBUG, Knoxville, USA: Monday, February 25, 2019 - 18:00 at iX Systems offices
                                                                                                        • BSDPL, Warsaw, Poland: February 28, 2019 18:15 - 21:00 at Wheel Systems Office
                                                                                                        • ##Feedback/Questions

                                                                                                          • Sam - Customizing OpenBSD ports source code
                                                                                                          • Frank - Rivalry Linux & BSD
                                                                                                          • Zach - mysql/mariadb tuning
                                                                                                            • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [email protected]
                                                                                                            • Your browser does not support the HTML5 video tag.
                                                                                                              1 hr 19 min
                                                                                                            • 285: BSD Strategy

                                                                                                              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.

                                                                                                              ##Headlines

                                                                                                              ###Strategic thinking, or what I think what we need to do to keep FreeBSD relevant

                                                                                                              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.

                                                                                                              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.
                                                                                                              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.
                                                                                                              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.
                                                                                                              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.

                                                                                                              ###Reflecting on The Soul of a New Machine

                                                                                                              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.

                                                                                                              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.
                                                                                                              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.

                                                                                                              • See Article for rest…
                                                                                                              • ##News Roundup

                                                                                                                ###Out-Of-The-Box 10GbE Network Benchmarks On Nine Linux Distributions Plus FreeBSD 12

                                                                                                                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.

                                                                                                                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.
                                                                                                                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.
                                                                                                                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.

                                                                                                                ###Integration of the LLVM sanitizers with the NetBSD base system

                                                                                                                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:

                                                                                                                ASan, UBSan, TSan, MSan, libFuzzer, SafeStack, XRay.
                                                                                                                In all supported variations and modes that are supported by the original LLVM compiler-rt package.

                                                                                                                ###Distrowatch FreeNAS 11.2 review

                                                                                                                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.”

                                                                                                                ##Beastie Bits

                                                                                                                • Instructions for installing rEFInd to dual boot a computer with FreeBSD and windows (and possibly other OSes as well).
                                                                                                                • NetBSD desktop pt.6: “vi(1) editor, tmux and unicode $TERM”
                                                                                                                • Unix flowers
                                                                                                                • FreeBSD upgrade procedure using GPT
                                                                                                                • Pull-based Backups using OpenBSD base*
                                                                                                                • Developing WireGuard for NetBSD
                                                                                                                • OpenZFS User Conference, April 18-19, Norwalk CT
                                                                                                                • KnoxBug Feb 25th
                                                                                                                • ##Feedback/Questions

                                                                                                                  • Jake - C Programming
                                                                                                                  • Farhan - Explanation of rtadvd
                                                                                                                  • Nelson - Bug Bounties on Open-Source Software
                                                                                                                    • Send questions, comments, show ideas/topics, or stories you want mentioned on the show to [email protected]
                                                                                                                    • 1 hr 10 min

                                                                                                                    About BSD Now

                                                                                                                    From the publisher's feed

                                                                                                                    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…

                                                                                                                    More shows like BSD Now

                                                                                                                    The Changelog: Software Development, Open Source by Changelog Media

                                                                                                                    The Changelog: Software Development, Open Source

                                                                                                                    286 Listeners

                                                                                                                    Security Now (Audio) by TWiT

                                                                                                                    Security Now (Audio)

                                                                                                                    2,011 Listeners

                                                                                                                    MacBreak Weekly (Audio) by TWiT

                                                                                                                    MacBreak Weekly (Audio)

                                                                                                                    2,018 Listeners

                                                                                                                    Accidental Tech Podcast by Marco Arment, Casey Liss, John Siracusa

                                                                                                                    Accidental Tech Podcast

                                                                                                                    2,144 Listeners

                                                                                                                    LINUX Unplugged by Jupiter Broadcasting

                                                                                                                    LINUX Unplugged

                                                                                                                    272 Listeners

                                                                                                                    Risky Business by Risky Business Media

                                                                                                                    Risky Business

                                                                                                                    374 Listeners

                                                                                                                    Late Night Linux by The Late Night Linux Family

                                                                                                                    Late Night Linux

                                                                                                                    169 Listeners

                                                                                                                    Darknet Diaries by Jack Rhysider

                                                                                                                    Darknet Diaries

                                                                                                                    8,063 Listeners

                                                                                                                    Behind the Bastards by Cool Zone Media and iHeartPodcasts

                                                                                                                    Behind the Bastards

                                                                                                                    15,564 Listeners

                                                                                                                    Linux Dev Time by The Late Night Linux Family

                                                                                                                    Linux Dev Time

                                                                                                                    22 Listeners

                                                                                                                    2.5 Admins by The Late Night Linux Family

                                                                                                                    2.5 Admins

                                                                                                                    98 Listeners

                                                                                                                    Linux After Dark by The Late Night Linux Family

                                                                                                                    Linux After Dark

                                                                                                                    29 Listeners

                                                                                                                    This Day in AI Podcast by Michael Sharkey, Chris Sharkey

                                                                                                                    This Day in AI Podcast

                                                                                                                    221 Listeners

                                                                                                                    Linux Matters by Linux Matters

                                                                                                                    Linux Matters

                                                                                                                    22 Listeners

                                                                                                                    Better Offline by Cool Zone Media and iHeartPodcasts

                                                                                                                    Better Offline

                                                                                                                    608 Listeners